aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzsloan2016-01-26 19:08:13 +0000
committerzsloan2016-01-26 19:08:13 +0000
commitfca37195705ac68f21a1f725cf1fe3c59e0d1800 (patch)
tree6263853824e4b9abefdcb2351ee8a25cfb5aa853
parent3078d459efda0f4805fbf3cb18297bcdc74dc420 (diff)
downloadgenenetwork2-fca37195705ac68f21a1f725cf1fe3c59e0d1800.tar.gz
Removed a bunch of files/directories/packages that are no longer used and some corresponding imports
-rw-r--r--wqflask/maintenance/dataset/.gitignore2
-rw-r--r--wqflask/maintenance/dataset/__init__.py0
-rw-r--r--wqflask/maintenance/dataset/calculate.py7
-rw-r--r--wqflask/maintenance/dataset/correlations.py47
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini7
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno12
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini4
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt10
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt4
-rw-r--r--wqflask/maintenance/dataset/datastructure.py155
-rw-r--r--wqflask/maintenance/dataset/fetch.py11
-rw-r--r--wqflask/maintenance/dataset/genotypes.py48
-rw-r--r--wqflask/maintenance/dataset/load_genotypes.py157
-rw-r--r--wqflask/maintenance/dataset/load_phenotypes.py171
-rw-r--r--wqflask/maintenance/dataset/phenotypes.py100
-rw-r--r--wqflask/maintenance/dataset/probesets.py90
-rw-r--r--wqflask/maintenance/dataset/specials1.py53
-rw-r--r--wqflask/maintenance/dataset/specials2.py139
-rw-r--r--wqflask/maintenance/dataset/specials3.py117
-rw-r--r--wqflask/maintenance/dataset/utilities.py89
-rwxr-xr-xwqflask/maintenance/quick_search_table.py509
-rwxr-xr-xwqflask/other_config/nginx_conf/gn2_zach.conf5
-rwxr-xr-xwqflask/wqflask/correlation/corr_scatter_plot.py1
-rwxr-xr-xwqflask/wqflask/correlation/correlation_plot.py53
-rw-r--r--wqflask/wqflask/heatmap/heatmap.py1
-rwxr-xr-xwqflask/wqflask/interval_mapping/__init__.py0
-rwxr-xr-xwqflask/wqflask/interval_mapping/interval_mapping.py183
-rw-r--r--wqflask/wqflask/my_pylmm/README.md37
-rwxr-xr-xwqflask/wqflask/my_pylmm/__init__.py0
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/__init__.py0
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/geno_to_ped.py22
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/genofile_parser.py195
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/load_genotypes_lei.py181
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/prep_data.py80
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/example.py58
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py346
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/pylmmKinship.py186
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/run_pylmm.py77
-rw-r--r--wqflask/wqflask/static/new/css/charts.css28
-rwxr-xr-xwqflask/wqflask/static/new/css/interval_mapping.css32
-rwxr-xr-xwqflask/wqflask/static/new/css/table.css36
-rw-r--r--wqflask/wqflask/static/new/javascript/chr_interval_map.coffee230
-rw-r--r--wqflask/wqflask/static/new/javascript/chr_interval_map.js224
-rw-r--r--wqflask/wqflask/static/new/javascript/create_interval_map.coffee80
-rw-r--r--wqflask/wqflask/static/new/javascript/create_interval_map.js67
-rw-r--r--wqflask/wqflask/static/new/javascript/interval_map_new.coffee91
-rw-r--r--wqflask/wqflask/static/new/javascript/interval_map_new.js53
-rwxr-xr-xwqflask/wqflask/static/new/javascript/interval_mapping.coffee297
-rwxr-xr-xwqflask/wqflask/static/new/javascript/interval_mapping.js297
-rw-r--r--wqflask/wqflask/static/new/javascript/manhattan_plot.coffee372
-rw-r--r--wqflask/wqflask/static/new/javascript/manhattan_plot.js341
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression.coffee512
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression.js454
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression_old.coffee212
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression_old.js218
l---------wqflask/wqflask/static/new/javascript/node_modules/.bin/cake1
l---------wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee1
-rw-r--r--wqflask/wqflask/static/new/javascript/show_corr.coffee4
-rw-r--r--wqflask/wqflask/static/new/javascript/show_corr.js8
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html80
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js27
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttfbin14300 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php6
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.pngbin1546 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php35
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php66
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php12
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php14
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php11
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css140
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css15
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css46
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css55
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css21
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css61
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css11
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html92
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html116
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html145
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html155
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html53
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gifbin1175 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gifbin220 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gifbin43 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gifbin314 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gifbin418 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gifbin223 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html228
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html71
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js1
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gifbin89 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpgbin442 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gifbin664 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gifbin121 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html76
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css457
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css35
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gifbin137 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gifbin2421 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gifbin1668 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gifbin799 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gifbin4527 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.icobin1150 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.pngbin1615 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.pngbin1381 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gifbin2017 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gifbin8363 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.pngbin3745 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gifbin1357 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gifbin1355 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gifbin1362 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gifbin4710 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gifbin1652 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.pngbin793 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gifbin845 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gifbin234 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html242
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js267
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js125
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm291
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css1179
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gifbin73 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html230
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.pngbin538 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css236
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.pngbin5121 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.pngbin1579 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php12
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html412
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js246
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js477
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js519
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css705
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html149
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html152
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html229
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html76
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js1
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gifbin1440 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js11
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css32
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js1
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zipbin805601 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css1058
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css9
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css5774
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css9
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/docs.css1001
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.pngbin8777 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.pngbin12799 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js2027
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js6
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/colorbox.css69
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/border.pngbin112 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/controls.pngbin2893 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/loading_background.pngbin157 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/overlay.pngbin182 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/colorbox.css49
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/images/controls.pngbin570 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/colorbox.css44
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/images/controls.pngbin1633 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/colorbox.css65
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/images/border1.pngbin1057 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/images/border2.pngbin170 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/colorbox.css57
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/border.pngbin163 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/controls.pngbin2033 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/loading_background.pngbin166 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv25
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/ages.json5
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gifbin3208 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/area.html229
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html157
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html229
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html242
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bandedLine.html310
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bar-charts.html219
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html165
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/barTest.html299
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html125
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/blockPlot.html199
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html213
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html264
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html209
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/candlestick.html322
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html231
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/README140
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO14
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.pngbin2195 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.pngbin134 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.pngbin198 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.pngbin382 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.pngbin139 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.pngbin344 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.pngbin78245 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.pngbin135 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.pngbin494 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html85
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css129
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js1654
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html137
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html104
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html212
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dashedLines.html227
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/data-renderers.html144
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/date-axes.html107
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html101
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html292
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/example.js114
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/example.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/examples.css140
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/examples.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html134
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html225
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/images/logo.jpgbin14632 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.pngbin494 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/index.html108
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.pngbin180 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.pngbin178 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.pngbin120 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.pngbin111 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.pngbin110 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.pngbin119 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.pngbin101 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css568
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.pngbin260 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.pngbin251 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.pngbin178 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.pngbin104 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.pngbin125 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.pngbin3762 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.pngbin90 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.pngbin129 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css612
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css10
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css568
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js473
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js11767
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js791
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js80
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js14
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js890
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js32
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery.print.js103
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js28
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jsondata.txt1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp.print.js136
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_area.html284
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html217
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json2
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html351
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html256
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html528
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html387
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html590
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html578
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html859
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php862
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html663
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/line-charts.html193
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html269
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/meritOrder.html103
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/meterGauge.html179
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html131
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/nav.inc40
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html160
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pieTest.html187
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pieTest2.js80
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pieTest4.html258
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/point-labels.html193
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/quintiles.json348
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html196
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html216
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html118
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html157
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html137
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE165
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE20
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js17
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js52
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js69
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js17
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css226
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css328
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css117
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css138
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/theming.html519
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/topbanner.inc9
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/waterfall.html162
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/waterfall2.html231
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/yahooData.js1807
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zoom1.html149
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html176
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html161
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zooming.html209
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore27
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc3
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js106
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md49
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile72
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md105
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json35
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat6
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html198
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js174
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js157
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js159
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js168
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js177
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html171
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js334
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html129
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js222
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html172
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js152
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html83
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html109
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html173
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html137
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js354
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html144
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js218
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html142
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js176
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html99
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html258
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js226
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html162
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js249
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js263
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html110
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js293
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js418
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html167
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js261
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js286
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html183
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html137
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html222
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js297
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html97
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html116
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html167
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html180
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html288
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html200
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html117
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html158
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html106
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html163
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.pngbin290 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.pngbin325 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.pngbin52653 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html127
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html98
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html76
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html96
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html132
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html151
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html115
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html129
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html101
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html87
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html94
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html105
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html389
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html96
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html4125
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html94
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html122
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html96
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html118
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html115
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html62
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html86
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html156
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js35
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js155
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js302
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js1180
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js7033
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js4
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js8436
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js86
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js80
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js192
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js292
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css769
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js14346
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css0
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js6
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json13
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js125
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js251
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js405
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js349
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js104
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js385
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js343
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js754
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js349
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js344
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js148
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js331
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js419
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js337
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js270
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js274
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js465
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js433
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js658
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js200
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js297
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js574
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js461
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js524
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js447
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js461
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js384
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js405
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js452
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js380
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js239
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js409
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js292
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js674
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js628
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js620
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js194
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js295
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js368
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js635
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css769
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js490
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js152
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html256
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html158
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html475
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html148
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html177
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html192
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html102
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html322
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js20
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css39
-rwxr-xr-xwqflask/wqflask/templates/all_results.html134
-rw-r--r--wqflask/wqflask/templates/marker_regression_old.html106
-rwxr-xr-xwqflask/wqflask/templates/quick_search.html300
-rwxr-xr-xwqflask/wqflask/templates/show_trait.html9
-rwxr-xr-xwqflask/wqflask/templates/show_trait_mapping_tools.html2
-rwxr-xr-xwqflask/wqflask/templates/show_trait_statistics.html578
-rwxr-xr-xwqflask/wqflask/templates/show_trait_statistics_new.html155
-rwxr-xr-xwqflask/wqflask/templates/whats_new.html18
-rwxr-xr-xwqflask/wqflask/views.py58
501 files changed, 158 insertions, 132022 deletions
diff --git a/wqflask/maintenance/dataset/.gitignore b/wqflask/maintenance/dataset/.gitignore
deleted file mode 100644
index 4910042e..00000000
--- a/wqflask/maintenance/dataset/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.pyc
-datadir/
diff --git a/wqflask/maintenance/dataset/__init__.py b/wqflask/maintenance/dataset/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/wqflask/maintenance/dataset/__init__.py
+++ /dev/null
diff --git a/wqflask/maintenance/dataset/calculate.py b/wqflask/maintenance/dataset/calculate.py
deleted file mode 100644
index 6aada827..00000000
--- a/wqflask/maintenance/dataset/calculate.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import scipy.stats
-
-def correlation(a1, a2):
- re = []
- re.append(scipy.stats.pearsonr(a1, a2))
- re.append(scipy.stats.spearmanr(a1, a2))
- return re
diff --git a/wqflask/maintenance/dataset/correlations.py b/wqflask/maintenance/dataset/correlations.py
deleted file mode 100644
index b089e446..00000000
--- a/wqflask/maintenance/dataset/correlations.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# Author: Lei Yan
-# Create Date: 2014-01-21
-# Last Update Date: 2014-01-24
-
-# import
-import sys
-import os
-import re
-import MySQLdb
-import ConfigParser
-
-def main(argv):
-
- # load configuration from configuration file
- config = ConfigParser.ConfigParser()
- config.read(argv[1])
- genofile = config.get('configuration', 'genofile')
-
- # parse genofile
- genotypes = []
- file_geno = open(genofile, 'r')
- for line in file_geno:
- line = line.strip()
- if line.startswith('#'):
- continue
- if line.startswith('@'):
- continue
- cells = line.split()
- if line.startswith("Chr"):
- strains = cells[4:]
- continue
- genotype = {}
- genotype['chr'] = cells[0]
- genotype['locus'] = cells[1]
- genotype['cm'] = cells[2]
- genotype['mb'] = cells[3]
- genotype['values'] = cells[4:]
- genotypes.append(genotype)
- print "get %d strains:\t%s" % (len(strains), strains)
- print "load %d genotypes" % len(genotypes)
-
- # phenotypes
-
-# main
-if __name__ == "__main__":
- main(sys.argv)
- print "exit successfully"
diff --git a/wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini b/wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini
deleted file mode 100644
index abff371b..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[config]
-inbredsetid = 1
-genofile = datasampledir/load_genotypes/sample.geno
-genovalue_U = x
-genovalue_H = 0
-genovalue_B = -1
-genovalue_D = 1
diff --git a/wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno b/wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno
deleted file mode 100644
index 0024ffd1..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno
+++ /dev/null
@@ -1,12 +0,0 @@
-@name:BXD
-@type:riset
-@mat:B
-@pat:D
-@het:H
-@unk:U
-Chr Locus cM Mb BXD1 BXD2 BXD5 BXD6 BXD8
-1 rs6269442 0 3.482275 D B D D D
-2 rs6365999 0.3 4.811062 B B D D D
-3 rs6376963 0.895 5.008089 B B D D D
-4 rs3677817 1.185 5.176058 B B D D D
-5 rs8236463 2.081 5.579193 B B D D D
diff --git a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini b/wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini
deleted file mode 100644
index 638c3bd8..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[config]
-inbredsetid = 1
-datafile = datasampledir/load_phenotypes/sample_data.txt
-metafile = datasampledir/load_phenotypes/sample_meta.txt
diff --git a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt b/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt
deleted file mode 100644
index a39fd3be..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-CaseID BXD1 BXD2 BXD3 BXD4 BXD5
-Value 1 2 3 4 5
-SE 6 7 8 9 10
-N 11 12 13 14 15
-Sex 16 17 18 19 20
-SE 21 22 23 24 25
-N 26 27 28 29 30
-Age 31 32 33 34 35
-SE 36 37 38 39 40
-N 41 42 43 44 45
diff --git a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt b/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt
deleted file mode 100644
index 5172223f..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Pubmed ID Pre Publication Description Post Publication Description Original Description Pre Publication Abbreviation Post Publication Abbreviation Lab Code Submitter Owner Authorized Users Authors Title Abstract Journal Volume Pages Month Year Units
-x Pre Publication Description 1 Post Publication Description 1 Original Description 1 Pre Publication Abbreviation 1 Post Publication Abbreviation 1 Lab Code 1 Submitter 1 Owner 1 Authorized Users 1 Authors 1 Title 1 Abstract 1 Journal 1 Volume 1 Pages 1 Month 1 2001 unit 1
-x Pre Publication Description 2 Post Publication Description 2 Original Description 2 Pre Publication Abbreviation 2 Post Publication Abbreviation 2 Lab Code 2 Submitter 2 Owner 2 Authorized Users 2 Authors 2 Title 2 Abstract 2 Journal 2 Volume 2 Pages 2 Month 2 2002 unit 2
-19958391 Pre Publication Description 3 Post Publication Description 3 Original Description 3 Pre Publication Abbreviation 3 Post Publication Abbreviation 3 Lab Code 3 Submitter 3 Owner 3 Authorized Users 3 Authors 3 Title 3 Abstract 3 Journal 3 Volume 3 Pages 3 Month 3 2003 unit 3
diff --git a/wqflask/maintenance/dataset/datastructure.py b/wqflask/maintenance/dataset/datastructure.py
deleted file mode 100644
index 7139856f..00000000
--- a/wqflask/maintenance/dataset/datastructure.py
+++ /dev/null
@@ -1,155 +0,0 @@
-import utilities
-
-def get_probesetfreezes(inbredsetid):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT ProbeSetFreeze.`Id`, ProbeSetFreeze.`Name`, ProbeSetFreeze.`FullName`
- FROM ProbeSetFreeze, ProbeFreeze
- WHERE ProbeSetFreeze.`ProbeFreezeId`=ProbeFreeze.`Id`
- AND ProbeFreeze.`InbredSetId`=%s
- """
- cursor.execute(sql, (inbredsetid))
- return cursor.fetchall()
-
-def get_probesetfreeze(probesetfreezeid):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT ProbeSetFreeze.`Id`, ProbeSetFreeze.`Name`, ProbeSetFreeze.`FullName`
- FROM ProbeSetFreeze
- WHERE ProbeSetFreeze.`Id`=%s
- """
- cursor.execute(sql, (probesetfreezeid))
- return cursor.fetchone()
-
-def get_strains(inbredsetid):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT Strain.`Id`, Strain.`Name`
- FROM StrainXRef, Strain
- WHERE StrainXRef.`InbredSetId`=%s
- AND StrainXRef.`StrainId`=Strain.`Id`
- ORDER BY StrainXRef.`OrderId`
- """
- cursor.execute(sql, (inbredsetid))
- return cursor.fetchall()
-
-def get_inbredset(probesetfreezeid):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT InbredSet.`Id`, InbredSet.`Name`, InbredSet.`FullName`
- FROM InbredSet, ProbeFreeze, ProbeSetFreeze
- WHERE InbredSet.`Id`=ProbeFreeze.`InbredSetId`
- AND ProbeFreeze.`Id`=ProbeSetFreeze.`ProbeFreezeId`
- AND ProbeSetFreeze.`Id`=%s
- """
- cursor.execute(sql, (probesetfreezeid))
- return cursor.fetchone()
-
-def get_species(inbredsetid):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT Species.`Id`, Species.`Name`, Species.`MenuName`, Species.`FullName`
- FROM InbredSet, Species
- WHERE InbredSet.`Id`=%s
- AND InbredSet.`SpeciesId`=Species.`Id`
- """
- cursor.execute(sql, (inbredsetid))
- return cursor.fetchone()
-
-def get_genofreeze_byinbredsetid(inbredsetid):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT GenoFreeze.`Id`, GenoFreeze.`Name`, GenoFreeze.`FullName`, GenoFreeze.`InbredSetId`
- FROM GenoFreeze
- WHERE GenoFreeze.`InbredSetId`=%s
- """
- cursor.execute(sql, (inbredsetid))
- return cursor.fetchone()
-
-def get_nextdataid_genotype():
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT GenoData.`Id`
- FROM GenoData
- ORDER BY GenoData.`Id` DESC
- LIMIT 1
- """
- cursor.execute(sql)
- re = cursor.fetchone()
- dataid = re[0]
- dataid += 1
- return dataid
-
-def get_nextdataid_phenotype():
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT PublishData.`Id`
- FROM PublishData
- ORDER BY PublishData.`Id` DESC
- LIMIT 1
- """
- cursor.execute(sql)
- re = cursor.fetchone()
- dataid = re[0]
- dataid += 1
- return dataid
-
-def insert_strain(inbredsetid, strainname, updatestrainxref=None):
- speciesid = get_species(inbredsetid)[0]
- cursor, con = utilities.get_cursor()
- sql = """
- INSERT INTO Strain
- SET
- Strain.`Name`=%s,
- Strain.`Name2`=%s,
- Strain.`SpeciesId`=%s
- """
- cursor.execute(sql, (strainname, strainname, speciesid))
- strainid = con.insert_id()
- if updatestrainxref:
- sql = """
- SELECT StrainXRef.`OrderId`
- FROM StrainXRef
- where StrainXRef.`InbredSetId`=%s
- ORDER BY StrainXRef.`OrderId` DESC
- LIMIT 1
- """
- cursor.execute(sql, (inbredsetid))
- re = cursor.fetchone()
- orderid = re[0] + 1
- #
- sql = """
- INSERT INTO StrainXRef
- SET
- StrainXRef.`InbredSetId`=%s,
- StrainXRef.`StrainId`=%s,
- StrainXRef.`OrderId`=%s,
- StrainXRef.`Used_for_mapping`=%s,
- StrainXRef.`PedigreeStatus`=%s
- """
- cursor.execute(sql, (inbredsetid, strainid, orderid, "N", None))
-
-def get_strain(inbredsetid, strainname):
- speciesid = get_species(inbredsetid)[0]
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT Strain.`Id`, Strain.`Name`
- FROM Strain
- WHERE Strain.`SpeciesId`=%s
- AND Strain.`Name` LIKE %s
- """
- cursor.execute(sql, (speciesid, strainname))
- return cursor.fetchone()
-
-def get_strain_sure(inbredsetid, strainname, updatestrainxref=None):
- strain = get_strain(inbredsetid, strainname)
- if not strain:
- insert_strain(inbredsetid, strainname, updatestrainxref)
- strain = get_strain(inbredsetid, strainname)
- return strain
-
-def get_strains_bynames(inbredsetid, strainnames, updatestrainxref=None):
- strains = []
- for strainname in strainnames:
- strains.append(get_strain_sure(inbredsetid, strainname, updatestrainxref))
- return strains
diff --git a/wqflask/maintenance/dataset/fetch.py b/wqflask/maintenance/dataset/fetch.py
deleted file mode 100644
index fcb2d2d8..00000000
--- a/wqflask/maintenance/dataset/fetch.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import sys
-
-inputfile = open(sys.argv[1], 'r')
-
-for line in inputfile:
- cells = line.split()
- #print cells[int(sys.argv[2])]
- i = len(cells)
- print i
-
-inputfile.close()
diff --git a/wqflask/maintenance/dataset/genotypes.py b/wqflask/maintenance/dataset/genotypes.py
deleted file mode 100644
index b57d4651..00000000
--- a/wqflask/maintenance/dataset/genotypes.py
+++ /dev/null
@@ -1,48 +0,0 @@
-import utilities
-
-def get_geno(inbredsetid, name):
- cursor = utilities.get_cursor()
- sql = """
- SELECT Geno.`Id`, Geno.`Name`, Geno.`Chr`, Geno.`Mb`
- FROM (Geno, InbredSet)
- WHERE Geno.`SpeciesId`=InbredSet.`SpeciesId`
- AND InbredSet.`Id`=%s
- AND Geno.`Name` LIKE %s
- """
- cursor.execute(sql, (inbredsetid, name))
- return cursor.fetchone()
-
-def load_genos(file):
- genotypes = []
- file_geno = open(file, 'r')
- for line in file_geno:
- line = line.strip()
- if line.startswith('#'):
- continue
- if line.startswith('@'):
- continue
- cells = line.split()
- if line.startswith("Chr"):
- strains = cells[4:]
- strains = [strain.lower() for strain in strains]
- continue
- genotype = {}
- genotype['chr'] = cells[0]
- genotype['locus'] = cells[1]
- genotype['cm'] = cells[2]
- genotype['mb'] = cells[3]
- values = cells[4:]
- values = [to_number(value) for value in values]
- genotype['values'] = values
- genotype['dicvalues'] = utilities.to_dic(strains, values)
- genotypes.append(genotype)
- return strains, genotypes
-
-def to_number(char):
- dic = {
- 'b': -1,
- 'd': 1,
- 'h': 0,
- 'u': None,
- }
- return dic.get(char.lower(), None)
diff --git a/wqflask/maintenance/dataset/load_genotypes.py b/wqflask/maintenance/dataset/load_genotypes.py
deleted file mode 100644
index 4697382b..00000000
--- a/wqflask/maintenance/dataset/load_genotypes.py
+++ /dev/null
@@ -1,157 +0,0 @@
-from __future__ import absolute_import, print_function, division
-
-import sys
-import re
-import argparse
-
-import utilities
-import datastructure
-
-def main(argv):
- config = utilities.get_config(argv[1])
- print("config file:")
- for item in config.items('config'):
- print("\t", str(item))
- parse_genofile(config, fetch_parameters(config))
-
-def fetch_parameters(config):
- config_dic = {}
- config_dic['inbredsetid'] = config.get('config', 'inbredsetid')
- config_dic["speciesid"] = datastructure.get_species(config_dic['inbredsetid'])[0]
- config_dic['genofreezeid'] = datastructure.get_genofreeze_byinbredsetid(config_dic['inbredsetid'])[0]
- config_dic['dataid'] = datastructure.get_nextdataid_genotype()
- config_dic['genofile'] = config.get('config', 'genofile')
- print("config dictionary:")
- for k, v in config_dic.items():
- print("\t%s: %s" % (k, v))
- return config_dic
-
-def parse_genofile(config, config_dic):
- genofile = open(config_dic['genofile'], 'r')
- meta_dic = {}
- for line in genofile:
- line = line.strip()
- if len(line) == 0:
- continue
- if line.startswith('#'):
- continue
- if line.startswith('@'):
- line = line.strip('@')
- items = line.split(';')
- for item in items:
- kv = re.split(':|=', item)
- meta_dic[kv[0].strip()] = kv[1].strip()
- continue
- if line.lower().startswith("chr"):
- #
- print("geno file meta dictionary:")
- for k, v in meta_dic.items():
- print("\t%s: %s" % (k, v))
- #
- print("geno file head:\n\t%s" % line)
- strainnames = line.split()[4:]
- config_dic['strains'] = datastructure.get_strains_bynames(inbredsetid=config_dic['inbredsetid'], strainnames=strainnames, updatestrainxref="yes")
- continue
- # geno file line, marker
- marker_dic = parse_marker(line)
- marker_dic['genoid'] = check_or_insert_geno(config_dic, marker_dic)
- if check_genoxref(config_dic, marker_dic):
- continue
- insert_genodata(config, config_dic, marker_dic)
- insert_genoxref(config_dic, marker_dic)
- config_dic['dataid'] += 1
- genofile.close()
-
-def parse_marker(line):
- marker_dic = {}
- cells = line.split()
- marker_dic['chromosome'] = cells[0]
- marker_dic['locus'] = cells[1]
- marker_dic['cm'] = cells[2]
- marker_dic['mb'] = cells[3]
- marker_dic['values'] = cells[4:]
- return marker_dic
-
-def check_or_insert_geno(config_dic, marker_dic):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT Geno.`Id`
- FROM Geno
- WHERE Geno.`SpeciesId`=%s
- AND Geno.`Name` like %s
- """
- cursor.execute(sql, (config_dic["speciesid"], marker_dic['locus']))
- result = cursor.fetchone()
- if result:
- genoid = result[0]
- print("get geno record: %d" % genoid)
- else:
- sql = """
- INSERT INTO Geno
- SET
- Geno.`SpeciesId`=%s,
- Geno.`Name`=%s,
- Geno.`Marker_Name`=%s,
- Geno.`Chr`=%s,
- Geno.`Mb`=%s
- """
- cursor.execute(sql, (config_dic['speciesid'], marker_dic['locus'], marker_dic['locus'], marker_dic['chromosome'], marker_dic['mb']))
- rowcount = cursor.rowcount
- genoid = con.insert_id()
- print("INSERT INTO Geno: %d record: %d" % (rowcount, genoid))
- return genoid
-
-def check_genoxref(config_dic, marker_dic):
- cursor, con = utilities.get_cursor()
- sql = """
- select GenoXRef.*
- from GenoXRef
- where GenoXRef.`GenoFreezeId`=%s
- AND GenoXRef.`GenoId`=%s
- """
- cursor.execute(sql, (config_dic['genofreezeid'], marker_dic['genoid']))
- rowcount = cursor.rowcount
- return rowcount
-
-def insert_genodata(config, config_dic, marker_dic):
- cursor, con = utilities.get_cursor()
- for index, strain in enumerate(config_dic['strains']):
- strainid = strain[0]
- value = utilities.to_db_string(marker_dic['values'][index], None)
- if not value:
- continue
- value = config.get('config', "genovalue_" + value)
- try:
- number = int(value)
- except:
- continue
- if not number in [-1, 0, 1]:
- continue
- sql = """
- INSERT INTO GenoData
- SET
- GenoData.`Id`=%s,
- GenoData.`StrainId`=%s,
- GenoData.`value`=%s
- """
- cursor.execute(sql, (config_dic['dataid'], strainid, number))
-
-def insert_genoxref(config_dic, marker_dic):
- cursor, con = utilities.get_cursor()
- sql = """
- INSERT INTO GenoXRef
- SET
- GenoXRef.`GenoFreezeId`=%s,
- GenoXRef.`GenoId`=%s,
- GenoXRef.`DataId`=%s,
- GenoXRef.`cM`=%s,
- GenoXRef.`Used_for_mapping`=%s
- """
- cursor.execute(sql, (config_dic['genofreezeid'], marker_dic['genoid'], config_dic['dataid'], marker_dic['cm'], 'N'))
- rowcount = cursor.rowcount
- print("INSERT INTO GenoXRef: %d record" % (rowcount))
-
-if __name__ == "__main__":
- print("command line arguments:\n\t%s" % sys.argv)
- main(sys.argv)
- print("exit successfully")
diff --git a/wqflask/maintenance/dataset/load_phenotypes.py b/wqflask/maintenance/dataset/load_phenotypes.py
deleted file mode 100644
index 27e340f8..00000000
--- a/wqflask/maintenance/dataset/load_phenotypes.py
+++ /dev/null
@@ -1,171 +0,0 @@
-import sys
-import csv
-
-import utilities
-import datastructure
-
-def main(argv):
- # config
- config = utilities.get_config(argv[1])
- print "config:"
- for item in config.items('config'):
- print "\t%s" % (str(item))
- # var
- inbredsetid = config.get('config', 'inbredsetid')
- print "inbredsetid: %s" % inbredsetid
- species = datastructure.get_species(inbredsetid)
- speciesid = species[0]
- print "speciesid: %s" % speciesid
- dataid = datastructure.get_nextdataid_phenotype()
- print "next data id: %s" % dataid
- cursor, con = utilities.get_cursor()
- # datafile
- datafile = open(config.get('config', 'datafile'), 'r')
- phenotypedata = csv.reader(datafile, delimiter='\t', quotechar='"')
- phenotypedata_head = phenotypedata.next()
- print "phenotypedata head:\n\t%s" % phenotypedata_head
- strainnames = phenotypedata_head[1:]
- strains = datastructure.get_strains_bynames(inbredsetid=inbredsetid, strainnames=strainnames, updatestrainxref=None)
- # metafile
- metafile = open(config.get('config', 'metafile'), 'r')
- phenotypemeta = csv.reader(metafile, delimiter='\t', quotechar='"')
- phenotypemeta_head = phenotypemeta.next()
- print "phenotypemeta head:\n\t%s" % phenotypemeta_head
- print
- # load
- for metarow in phenotypemeta:
- #
- datarow_value = phenotypedata.next()
- datarow_se = phenotypedata.next()
- datarow_n = phenotypedata.next()
- # Phenotype
- sql = """
- INSERT INTO Phenotype
- SET
- Phenotype.`Pre_publication_description`=%s,
- Phenotype.`Post_publication_description`=%s,
- Phenotype.`Original_description`=%s,
- Phenotype.`Pre_publication_abbreviation`=%s,
- Phenotype.`Post_publication_abbreviation`=%s,
- Phenotype.`Lab_code`=%s,
- Phenotype.`Submitter`=%s,
- Phenotype.`Owner`=%s,
- Phenotype.`Authorized_Users`=%s,
- Phenotype.`Units`=%s
- """
- cursor.execute(sql, (
- utilities.to_db_string(metarow[1], None),
- utilities.to_db_string(metarow[2], None),
- utilities.to_db_string(metarow[3], None),
- utilities.to_db_string(metarow[4], None),
- utilities.to_db_string(metarow[5], None),
- utilities.to_db_string(metarow[6], None),
- utilities.to_db_string(metarow[7], None),
- utilities.to_db_string(metarow[8], None),
- utilities.to_db_string(metarow[9], ""),
- utilities.to_db_string(metarow[18], None),
- ))
- rowcount = cursor.rowcount
- phenotypeid = con.insert_id()
- print "INSERT INTO Phenotype: %d record: %d" % (rowcount, phenotypeid)
- # Publication
- publicationid = None # reset
- pubmed_id = utilities.to_db_string(metarow[0], None)
- if pubmed_id:
- sql = """
- SELECT Publication.`Id`
- FROM Publication
- WHERE Publication.`PubMed_ID`=%s
- """
- cursor.execute(sql, (pubmed_id))
- re = cursor.fetchone()
- if re:
- publicationid = re[0]
- print "get Publication record: %d" % publicationid
- if not publicationid:
- sql = """
- INSERT INTO Publication
- SET
- Publication.`PubMed_ID`=%s,
- Publication.`Abstract`=%s,
- Publication.`Authors`=%s,
- Publication.`Title`=%s,
- Publication.`Journal`=%s,
- Publication.`Volume`=%s,
- Publication.`Pages`=%s,
- Publication.`Month`=%s,
- Publication.`Year`=%s
- """
- cursor.execute(sql, (
- utilities.to_db_string(metarow[0], None),
- utilities.to_db_string(metarow[12], None),
- utilities.to_db_string(metarow[10], ""),
- utilities.to_db_string(metarow[11], None),
- utilities.to_db_string(metarow[13], None),
- utilities.to_db_string(metarow[14], None),
- utilities.to_db_string(metarow[15], None),
- utilities.to_db_string(metarow[16], None),
- utilities.to_db_string(metarow[17], None),
- ))
- rowcount = cursor.rowcount
- publicationid = con.insert_id()
- print "INSERT INTO Publication: %d record: %d" % (rowcount, publicationid)
- # data
- for index, strain in enumerate(strains):
- #
- strainid = strain[0]
- value = utilities.to_db_float(datarow_value[index+1], None)
- se = utilities.to_db_float(datarow_se[index+1], None)
- n = utilities.to_db_int(datarow_n[index+1], None)
- #
- if value:
- sql = """
- INSERT INTO PublishData
- SET
- PublishData.`Id`=%s,
- PublishData.`StrainId`=%s,
- PublishData.`value`=%s
- """
- cursor.execute(sql, (dataid, strainid, value))
- if se:
- sql = """
- INSERT INTO PublishSE
- SET
- PublishSE.`DataId`=%s,
- PublishSE.`StrainId`=%s,
- PublishSE.`error`=%s
- """
- cursor.execute(sql, (dataid, strainid, se))
- if n:
- sql = """
- INSERT INTO NStrain
- SET
- NStrain.`DataId`=%s,
- NStrain.`StrainId`=%s,
- NStrain.`count`=%s
- """
- cursor.execute(sql, (dataid, strainid, n))
- # PublishXRef
- sql = """
- INSERT INTO PublishXRef
- SET
- PublishXRef.`InbredSetId`=%s,
- PublishXRef.`PhenotypeId`=%s,
- PublishXRef.`PublicationId`=%s,
- PublishXRef.`DataId`=%s,
- PublishXRef.`comments`=%s
- """
- cursor.execute(sql, (inbredsetid, phenotypeid, publicationid, dataid, ""))
- rowcount = cursor.rowcount
- publishxrefid = con.insert_id()
- print "INSERT INTO PublishXRef: %d record: %d" % (rowcount, publishxrefid)
- # for loop next
- dataid += 1
- print
- # release
- con.close()
-
-if __name__ == "__main__":
- print "command line arguments:\n\t%s" % sys.argv
- main(sys.argv)
- print "exit successfully"
diff --git a/wqflask/maintenance/dataset/phenotypes.py b/wqflask/maintenance/dataset/phenotypes.py
deleted file mode 100644
index ed30f33f..00000000
--- a/wqflask/maintenance/dataset/phenotypes.py
+++ /dev/null
@@ -1,100 +0,0 @@
-import utilities
-
-def fetch():
- # parameters
- inbredsetid = 1
- phenotypesfile = open('bxdphenotypes.txt', 'w+')
- #
- phenotypesfile.write("id\tAuthors\tOriginal_description\tPre_publication_description\tPost_publication_description\t")
- # open db
- cursor = utilities.get_cursor()
- # get strain list
- strains = []
- sql = """
- SELECT Strain.`Name`
- FROM StrainXRef, Strain
- WHERE StrainXRef.`StrainId`=Strain.`Id`
- AND StrainXRef.`InbredSetId`=%s
- ORDER BY StrainXRef.`OrderId`
- """
- cursor.execute(sql, (inbredsetid))
- results = cursor.fetchall()
- for row in results:
- strain = row[0]
- strain = strain.lower()
- strains.append(strain)
- print "get %d strains: %s" % (len(strains), strains)
- phenotypesfile.write('\t'.join([strain.upper() for strain in strains]))
- phenotypesfile.write('\n')
- phenotypesfile.flush()
- # phenotypes
- sql = """
- SELECT PublishXRef.`Id`, Publication.`Authors`, Phenotype.`Original_description`, Phenotype.`Pre_publication_description`, Phenotype.`Post_publication_description`
- FROM (PublishXRef, Phenotype, Publication)
- WHERE PublishXRef.`InbredSetId`=%s
- AND PublishXRef.`PhenotypeId`=Phenotype.`Id`
- AND PublishXRef.`PublicationId`=Publication.`Id`
- """
- cursor.execute(sql, (inbredsetid))
- results = cursor.fetchall()
- print "get %d phenotypes" % (len(results))
- for phenotyperow in results:
- publishxrefid = phenotyperow[0]
- authors = utilities.clearspaces(phenotyperow[1])
- original_description = utilities.clearspaces(phenotyperow[2])
- pre_publication_description = utilities.clearspaces(phenotyperow[3])
- post_publication_description = utilities.clearspaces(phenotyperow[4])
- phenotypesfile.write("%s\t%s\t%s\t%s\t%s\t" % (publishxrefid, authors, original_description, pre_publication_description, post_publication_description))
- sql = """
- SELECT Strain.Name, PublishData.value
- FROM (PublishXRef, PublishData, Strain)
- WHERE PublishXRef.`InbredSetId`=%s
- AND PublishXRef.Id=%s
- AND PublishXRef.DataId=PublishData.Id
- AND PublishData.StrainId=Strain.Id
- """
- cursor.execute(sql, (inbredsetid, publishxrefid))
- results = cursor.fetchall()
- print "get %d values" % (len(results))
- strainvaluedic = {}
- for strainvalue in results:
- strainname = strainvalue[0]
- strainname = strainname.lower()
- value = strainvalue[1]
- strainvaluedic[strainname] = value
- for strain in strains:
- if strain in strainvaluedic:
- phenotypesfile.write(str(strainvaluedic[strain]))
- else:
- phenotypesfile.write('x')
- phenotypesfile.write('\t')
- phenotypesfile.write('\n')
- phenotypesfile.flush()
- # release
- phenotypesfile.close()
-
-def delete(publishxrefid, inbredsetid):
- cursor = utilities.get_cursor()
- sql = """
- DELETE Phenotype
- FROM PublishXRef,Phenotype
- WHERE PublishXRef.`Id`=%s
- AND PublishXRef.`InbredSetId`=%s
- AND PublishXRef.`PhenotypeId`=Phenotype.`Id`
- """
- cursor.execute(sql, (publishxrefid, inbredsetid))
- sql = """
- DELETE PublishData
- FROM PublishXRef,PublishData
- WHERE PublishXRef.`Id`=%s
- AND PublishXRef.`InbredSetId`=%s
- AND PublishXRef.`DataId`=PublishData.`Id`
- """
- cursor.execute(sql, (publishxrefid, inbredsetid))
- sql = """
- DELETE PublishXRef
- FROM PublishXRef
- WHERE PublishXRef.`Id`=%s
- AND PublishXRef.`InbredSetId`=%s
- """
- cursor.execute(sql, (publishxrefid, inbredsetid))
diff --git a/wqflask/maintenance/dataset/probesets.py b/wqflask/maintenance/dataset/probesets.py
deleted file mode 100644
index 97bb5bdf..00000000
--- a/wqflask/maintenance/dataset/probesets.py
+++ /dev/null
@@ -1,90 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-
-def get_probesetxref(probesetfreezeid):
- cursor = utilities.get_cursor()
- sql = """
- SELECT ProbeSetXRef.`ProbeSetId`, ProbeSetXRef.`DataId`
- FROM ProbeSetXRef
- WHERE ProbeSetXRef.`ProbeSetFreezeId`=%s
- """
- cursor.execute(sql, (probesetfreezeid))
- return cursor.fetchall()
-
-def get_probeset(probesetid):
- cursor = utilities.get_cursor()
- sql = """
- SELECT ProbeSet.`Id`, ProbeSet.`Name`, ProbeSet.`Symbol`, ProbeSet.`description`, ProbeSet.`Probe_Target_Description`, ProbeSet.`Chr`, ProbeSet.`Mb`
- FROM ProbeSet
- WHERE ProbeSet.`Id`=%s
- """
- cursor.execute(sql, (probesetid))
- return cursor.fetchone()
-
-def get_probesetdata(probesetdataid):
- cursor = utilities.get_cursor()
- sql = """
- SELECT Strain.`Id`, Strain.`Name`, ProbeSetData.`value`
- FROM ProbeSetData, Strain
- WHERE ProbeSetData.`Id`=%s
- AND ProbeSetData.`StrainId`=Strain.`Id`;
- """
- cursor.execute(sql, (probesetdataid))
- return cursor.fetchall()
-
-def get_probesetxref_probesetfreezeid(locus, probesetfreezeid):
- cursor = utilities.get_cursor()
- sql = """
- SELECT ProbeSetXRef.`ProbeSetId`
- FROM ProbeSetXRef
- WHERE ProbeSetXRef.`ProbeSetFreezeId`=%s
- AND ProbeSetXRef.`Locus` LIKE %s
- """
- cursor.execute(sql, (probesetfreezeid, locus))
- return cursor.fetchall()
-
-def get_probesetxref_inbredsetid(locus, inbredsetid):
- cursor = utilities.get_cursor()
- sql = """
- SELECT ProbeSetXRef.`ProbeSetId`, ProbeSetXRef.`mean`, ProbeSetXRef.`LRS`, ProbeSetXRef.`Locus`, ProbeSetXRef.`ProbeSetFreezeId`
- FROM (ProbeSetXRef, ProbeSetFreeze, ProbeFreeze)
- WHERE ProbeSetXRef.`ProbeSetFreezeId`=ProbeSetFreeze.`Id`
- AND ProbeSetFreeze.`ProbeFreezeId`=ProbeFreeze.`Id`
- AND ProbeFreeze.`InbredSetId`=%s
- AND ProbeSetXRef.`Locus` LIKE %s
- """
- cursor.execute(sql, (inbredsetid, locus))
- return cursor.fetchall()
-
-def get_normalized_probeset(locus, inbredsetid):
- normalized_probesets = []
- probesetxrefs = get_probesetxref_inbredsetid(locus, inbredsetid)
- for probesetxref in probesetxrefs:
- normalized_probeset = []
- #
- probesetfreezeid = probesetxref[4]
- probesetfreeze = datastructure.get_probesetfreeze(probesetfreezeid)
- normalized_probeset.append(probesetfreeze[0])
- normalized_probeset.append(probesetfreeze[1])
- normalized_probeset.append(probesetfreeze[2])
- #
- probesetid = probesetxref[0]
- probeset = get_probeset(probesetid)
- normalized_probeset.append(probeset[1])
- normalized_probeset.append(probeset[2])
- normalized_probeset.append(probeset[3])
- normalized_probeset.append(probeset[4])
- normalized_probeset.append(probeset[5])
- normalized_probeset.append(probeset[6])
- #
- normalized_probeset.append(probesetxref[1])
- normalized_probeset.append(probesetxref[2])
- #
- locus = probesetxref[3]
- geno = genotypes.get_geno(inbredsetid=inbredsetid, name=locus)
- normalized_probeset.append(geno[2])
- normalized_probeset.append(geno[3])
- #
- normalized_probesets.append(normalized_probeset)
- return normalized_probesets
diff --git a/wqflask/maintenance/dataset/specials1.py b/wqflask/maintenance/dataset/specials1.py
deleted file mode 100644
index 9159fd7f..00000000
--- a/wqflask/maintenance/dataset/specials1.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-import probesets
-import calculate
-
-"""
-For: Rob, GeneNetwork
-Date: 2014-02-04
-Function:
- For BXD group, fetch probesets with given locus (mapping info).
-
-locus="rs3663871"
-"""
-def bxd_probesets_locus(locus, inbredsetid):
- #
- file = open('probesets_%s.txt' % (locus), 'w+')
- file.write("GN Dataset ID\t")
- file.write("Dataset Full Name\t")
- file.write("ProbeSet Name\t")
- file.write("Symbol\t")
- file.write("ProbeSet Description\t")
- file.write("Probe Target Description\t")
- file.write("ProbeSet Chr\t")
- file.write("ProbeSet Mb\t")
- file.write("Mean\t")
- file.write("LRS\t")
- file.write("Geno Chr\t")
- file.write("Geno Mb\t")
- file.write("\n")
- file.flush()
- #
- results = probesets.get_normalized_probeset(locus=locus, inbredsetid=inbredsetid)
- for row in results:
- file.write("%s\t" % (row[0]))
- file.write("%s\t" % (utilities.clearspaces(row[2], default='')))
- file.write("%s\t" % (utilities.clearspaces(row[3], default='')))
- file.write("%s\t" % (utilities.clearspaces(row[4], default='')))
- file.write("%s\t" % (utilities.clearspaces(row[5], default='')))
- file.write("%s\t" % (utilities.clearspaces(row[6], default='')))
- file.write("%s\t" % (utilities.clearspaces(row[7], default='')))
- file.write("%s\t" % (row[8]))
- file.write("%s\t" % (row[9]))
- file.write("%s\t" % (row[10]))
- file.write("%s\t" % (utilities.clearspaces(row[11], default='')))
- file.write("%s\t" % (row[12]))
- file.write('\n')
- file.flush()
- file.close()
-
-locus='rs3663871'
-inbredsetid=1
-bxd_probesets_locus(locus=locus, inbredsetid=inbredsetid)
diff --git a/wqflask/maintenance/dataset/specials2.py b/wqflask/maintenance/dataset/specials2.py
deleted file mode 100644
index 2438af43..00000000
--- a/wqflask/maintenance/dataset/specials2.py
+++ /dev/null
@@ -1,139 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-import probesets
-import calculate
-
-"""
-For: Ash
-Date: 2014-02-07
-Function:
- For BXD group, get a probesetfreeze name list.
-"""
-def probesetfreeze_list():
- #
- inbredsetid = 1
- outputdir = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output"
- #
- probesetfreezes = datastructure.get_probesetfreezes(inbredsetid)
- print "From DB, get %d probesetfreezes" % (len(probesetfreezes))
- file = open(outputdir + '/' + 'probesetfreezes.txt', 'w+')
- #
- for probesetfreeze in probesetfreezes:
- #
- print probesetfreeze
- probesetfreezeid = probesetfreeze[0]
- probesetfreezename = probesetfreeze[1]
- probesetfreezefullname = probesetfreeze[2]
- #
- file.write("%s\t" % probesetfreezeid)
- file.write("%s" % probesetfreezefullname)
- file.write("\n")
- file.flush()
- #
- file.close()
-
-"""
-For: Ash
-Date: 2014-02-05
-Function:
- For BXD group, calculate correlations with genotypes and probesets.
-"""
-def bxd_correlations():
- #
- inbredsetid = 1
- genofile = "/home/leiyan/gn/web/genotypes/BXD.geno"
- outputdir = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output"
- #
- t = genotypes.load_genos(genofile)
- genostrains = t[0]
- genos = t[1]
- print "From geno file, get %d strains" % (len(genostrains))
- print "From geno file, get %d genos" % (len(genos))
- #
- probesetfreezes = datastructure.get_probesetfreezes(inbredsetid)
- print "From DB, get %d probesetfreezes" % (len(probesetfreezes))
- for probesetfreeze in probesetfreezes:
- correlations(outputdir=outputdir, genos=genos, probesetfreeze=probesetfreeze)
-
-def correlations(outputdir, genos, probesetfreeze):
- print probesetfreeze
- probesetfreezeid = probesetfreeze[0]
- probesetfreezename = probesetfreeze[1]
- probesetfreezefullname = probesetfreeze[2]
- #
- outputfile = open("%s/%d_%s.txt" % (outputdir, probesetfreezeid, probesetfreezename), "w+")
- outputfile.write("%s\t" % "ProbeSet Id")
- outputfile.write("%s\t" % "ProbeSet Name")
- outputfile.write("%s\t" % "Geno Name")
- outputfile.write("%s\t" % "Overlap Number")
- outputfile.write("%s\t" % "Pearson r")
- outputfile.write("%s\t" % "Pearson p")
- outputfile.write("%s\t" % "Spearman r")
- outputfile.write("%s\t" % "Spearman p")
- outputfile.write("\n")
- outputfile.flush()
- #
- probesetxrefs = probesets.get_probesetxref(probesetfreezeid)
- print "Get %d probesetxrefs" % (len(probesetxrefs))
- #
- for probesetxref in probesetxrefs:
- #
- probesetid = probesetxref[0]
- probesetdataid = probesetxref[1]
- probeset = probesets.get_probeset(probesetid)
- probesetname = probeset[1]
- probesetdata = probesets.get_probesetdata(probesetdataid)
- probesetdata = zip(*probesetdata)
- probesetdata = utilities.to_dic([strain.lower() for strain in probesetdata[1]], probesetdata[2])
- #
- for geno in genos:
- genoname = geno['locus']
- outputfile.write("%s\t" % probesetid)
- outputfile.write("%s\t" % probesetname)
- outputfile.write("%s\t" % genoname)
- #
- dic1 = geno['dicvalues']
- dic2 = probesetdata
- keys, values1, values2 = utilities.overlap(dic1, dic2)
- rs = calculate.correlation(values1, values2)
- #
- outputfile.write("%s\t" % len(keys))
- outputfile.write("%s\t" % rs[0][0])
- outputfile.write("%s\t" % rs[0][1])
- outputfile.write("%s\t" % rs[1][0])
- outputfile.write("%s\t" % rs[1][1])
- outputfile.write("\n")
- outputfile.flush()
- #
- outputfile.close()
-
-"""
-For: Ash
-Date: 2014-02-10
-Function:
- For BXD group, calculate correlations with genotypes and probesets.
- given probesetfreezes
-"""
-def bxd_correlations_givenprobesetfreezes(probesetfreezesfile):
- #
- inbredsetid = 1
- genofile = "/home/leiyan/gn/web/genotypes/BXD.geno"
- outputdir = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output"
- #
- t = genotypes.load_genos(genofile)
- genostrains = t[0]
- genos = t[1]
- print "From geno file, get %d strains" % (len(genostrains))
- print "From geno file, get %d genos" % (len(genos))
- #
- file = open(probesetfreezesfile, 'r')
- for line in file:
- line = line.strip()
- cells = line.split()
- probesetfreezeid = cells[0]
- probesetfreeze = datastructure.get_probesetfreeze(probesetfreezeid)
- correlations(outputdir=outputdir, genos=genos, probesetfreeze=probesetfreeze)
- file.close()
-
-bxd_correlations_givenprobesetfreezes('/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output/probesetfreezes_filter.txt')
diff --git a/wqflask/maintenance/dataset/specials3.py b/wqflask/maintenance/dataset/specials3.py
deleted file mode 100644
index 237df27e..00000000
--- a/wqflask/maintenance/dataset/specials3.py
+++ /dev/null
@@ -1,117 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-import probesets
-import calculate
-
-def correlations(outputdir, genos, probesetfreeze):
- print probesetfreeze
- probesetfreezeid = probesetfreeze[0]
- probesetfreezename = probesetfreeze[1]
- probesetfreezefullname = probesetfreeze[2]
- #
- outputfile = open("%s/%d_%s.txt" % (outputdir, probesetfreezeid, probesetfreezename), "w+")
- outputfile.write("%s\t" % "ProbeSet Id")
- outputfile.write("%s\t" % "ProbeSet Name")
- outputfile.write("%s\t" % "Geno Name")
- outputfile.write("%s\t" % "Overlap Number")
- outputfile.write("%s\t" % "Pearson r")
- outputfile.write("%s\t" % "Pearson p")
- outputfile.write("%s\t" % "Spearman r")
- outputfile.write("%s\t" % "Spearman p")
- outputfile.write("\n")
- outputfile.flush()
- #
- probesetxrefs = probesets.get_probesetxref(probesetfreezeid)
- print "Get %d probesetxrefs" % (len(probesetxrefs))
- #
- for probesetxref in probesetxrefs:
- #
- probesetid = probesetxref[0]
- probesetdataid = probesetxref[1]
- probeset = probesets.get_probeset(probesetid)
- probesetname = probeset[1]
- probesetdata = probesets.get_probesetdata(probesetdataid)
- probesetdata = zip(*probesetdata)
- probesetdata = utilities.to_dic([strain.lower() for strain in probesetdata[1]], probesetdata[2])
- #
- for geno in genos:
- genoname = geno['locus']
- outputfile.write("%s\t" % probesetid)
- outputfile.write("%s\t" % probesetname)
- outputfile.write("%s\t" % genoname)
- #
- dic1 = geno['dicvalues']
- dic2 = probesetdata
- keys, values1, values2 = utilities.overlap(dic1, dic2)
- rs = calculate.correlation(values1, values2)
- #
- outputfile.write("%s\t" % len(keys))
- outputfile.write("%s\t" % rs[0][0])
- outputfile.write("%s\t" % rs[0][1])
- outputfile.write("%s\t" % rs[1][0])
- outputfile.write("%s\t" % rs[1][1])
- outputfile.write("\n")
- outputfile.flush()
- #
- outputfile.close()
-
-"""
-For: Ash
-Date: 2014-02-12
-Function:
- Generate probeset data files.
- given probesetfreeze list.
-"""
-def generate_probesets(probesetfreezesfile, outputdir):
- file = open(probesetfreezesfile, 'r')
- for line in file:
- line = line.strip()
- cells = line.split()
- probesetfreezeid = cells[0]
- probesetfreeze = datastructure.get_probesetfreeze(probesetfreezeid)
- probesetfreezeid = probesetfreeze[0]
- probesetfreezename = probesetfreeze[1]
- inbredset = datastructure.get_inbredset(probesetfreezeid)
- inbredsetid = inbredset[0]
- strains = datastructure.get_strains(inbredsetid)
- #
- outputfile = open("%s/%d_%s.txt" % (outputdir, probesetfreezeid, probesetfreezename), "w+")
- outputfile.write("%s\t" % "ProbeSet Id")
- outputfile.write("%s\t" % "ProbeSet Name")
- outputfile.write('\t'.join([strain[1].upper() for strain in strains]))
- outputfile.write("\n")
- outputfile.flush()
- #
- probesetxrefs = probesets.get_probesetxref(probesetfreezeid)
- print probesetfreeze
- print len(probesetxrefs)
- for probesetxref in probesetxrefs:
- probesetid = probesetxref[0]
- probesetdataid = probesetxref[1]
- probeset = probesets.get_probeset(probesetid)
- probesetname = probeset[1]
- probesetdata = probesets.get_probesetdata(probesetdataid)
- probesetdata = zip(*probesetdata)
- probesetdata = utilities.to_dic([strain.lower() for strain in probesetdata[1]], probesetdata[2])
- #
- outputfile.write("%s\t" % probesetid)
- outputfile.write("%s\t" % probesetname)
- #
- for strain in strains:
- strainname = strain[1]
- strainname = strainname.lower()
- if strainname in probesetdata:
- value = probesetdata[strainname]
- else:
- value = 'x'
- outputfile.write("%s\t" % value)
- outputfile.write("\n")
- outputfile.flush()
- #
- outputfile.close()
- file.close()
-
-probesetfreezesfile = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output2/probesetfreezes_filter.txt"
-outputdir = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output2"
-generate_probesets(probesetfreezesfile, outputdir)
diff --git a/wqflask/maintenance/dataset/utilities.py b/wqflask/maintenance/dataset/utilities.py
deleted file mode 100644
index 787c9481..00000000
--- a/wqflask/maintenance/dataset/utilities.py
+++ /dev/null
@@ -1,89 +0,0 @@
-import MySQLdb
-import re
-import ConfigParser
-
-def get_cursor():
- host = 'localhost'
- user = 'gn2'
- passwd = 'UhHJuiS6gC8hj4a'
- db = 'db_webqtl'
- con = MySQLdb.Connect(db=db, host=host, user=user, passwd=passwd)
- cursor = con.cursor()
- return cursor, con
-
-def clearspaces(s, default=None):
- if s:
- s = re.sub('\s+', ' ', s)
- s = s.strip()
- return s
- else:
- return default
-
-def to_dic(keys, values):
- dic = {}
- for i in range(len(keys)):
- key = keys[i]
- value = values[i]
- dic[key] = value
- return dic
-
-def overlap(dic1, dic2):
- keys = []
- values1 = []
- values2 = []
- for key in dic1.keys():
- if key in dic2:
- value1 = dic1[key]
- value2 = dic2[key]
- if value1 and value2:
- keys.append(key)
- values1.append(value1)
- values2.append(value2)
- return keys, values1, values2
-
-def to_db_string(s, default):
- if s:
- s = s.strip()
- if len(s) == 0:
- return default
- elif s == 'x':
- return default
- else:
- return s
- else:
- return default
-
-def to_db_float(s, default):
- if s:
- s = s.strip()
- if len(s) == 0:
- return default
- elif s == 'x':
- return default
- else:
- try:
- return float(s)
- except:
- return default
- else:
- return default
-
-def to_db_int(s, default):
- if s:
- s = s.strip()
- if len(s) == 0:
- return default
- elif s == 'x':
- return default
- else:
- try:
- return int(s)
- except:
- return default
- else:
- return default
-
-def get_config(configfile):
- config = ConfigParser.ConfigParser()
- config.read(configfile)
- return config
diff --git a/wqflask/maintenance/quick_search_table.py b/wqflask/maintenance/quick_search_table.py
deleted file mode 100755
index f0075df0..00000000
--- a/wqflask/maintenance/quick_search_table.py
+++ /dev/null
@@ -1,509 +0,0 @@
-"""Creates a table used for the quick search feature.
-
-One column contains the terms to match the user's search against. Another contains the result
-fields in json format
-
-Results will be returned for each of several trait types: mRNA assays, phenotypes, genotypes, and
-(maybe later) genes
-
-For each trait type, the results for each species should be given This table will then list
-each trait, its dataset, and several columns determined by its trait type (phenotype, genotype, etc)
-
-"""
-
-from __future__ import absolute_import, division, print_function
-
- # We do this here so we can use zach_settings
-# Not to avoid other absoulte_imports
-import sys
-sys.path.append("../../..")
-
-import simplejson as json
-
-import sqlalchemy as sa
-from sqlalchemy.orm import scoped_session, sessionmaker
-from sqlalchemy.ext.declarative import declarative_base
-
-#from pprint import pformat as pf
-
-import zach_settings as settings
-
-Engine = sa.create_engine(settings.SQLALCHEMY_DATABASE_URI,
- #encoding='utf-8',
- #client_encoding='utf-8',
- #echo="debug",w
- )
-
-Session = scoped_session(sessionmaker(bind=Engine)) #, extension=VersionedListener()))
-
-Base = declarative_base(bind=Engine)
-Metadata = sa.MetaData()
-Metadata.bind = Engine
-
-class PublishXRef(Base):
- """Class that corresponds with the PublishXRef table in the database.
-
- The PublishXRef table links phenotype traits and their publications.
-
- This class is used to add phenotype traits to the quick search table.
-
- """
-
- __tablename__ = 'PublishXRef'
-
- Id = sa.Column(sa.Integer, primary_key=True)
- InbredSetId = sa.Column(sa.Integer, primary_key=True)
- PhenotypeId = sa.Column(sa.Integer)
- PublicationId = sa.Column(sa.Integer)
- DataId = sa.Column(sa.Integer)
- Locus = sa.Column(sa.Text)
- LRS = sa.Column(sa.Float)
- additive = sa.Column(sa.Float)
- Sequence = sa.Column(sa.Integer)
- comments = sa.Column(sa.Text)
-
- @classmethod
- def run(cls):
- """Connects to database and inserts phenotype trait info into the Quicksearch table."""
- conn = Engine.connect()
- counter = 0
- for pub_row in page_query(Session.query(cls)): #all()
- values = {}
- values['table_name'] = cls.__tablename__
- values['the_key'] = json.dumps([pub_row.Id, pub_row.InbredSetId])
- values['terms'] = cls.get_unique_terms(pub_row.Id, pub_row.InbredSetId)
- print("terms is:", values['terms'])
- if values['terms']:
- values['result_fields'] = cls.get_result_fields(pub_row.Id, pub_row.InbredSetId)
- ins = QuickSearch.insert().values(**values)
- conn.execute(ins)
- counter += 1
- print("Done:", counter)
-
- @staticmethod
- def get_unique_terms(publishxref_id, inbredset_id):
- """Finds unique terms for each item in the PublishXRef table to match a query against"""
- results = Session.query(
- "pre_publication_description",
- "post_publication_description",
- "pre_publication_abbreviation",
- "post_publication_abbreviation",
- "publication_title"
- ).from_statement(
- "SELECT Phenotype.Pre_publication_description as pre_publication_description, "
- "Phenotype.Post_publication_description as post_publication_description, "
- "Phenotype.Pre_publication_abbreviation as pre_publication_abbreviation, "
- "Phenotype.Post_publication_abbreviation as post_publication_abbreviation, "
- "Publication.Title as publication_title "
- "FROM Phenotype, Publication, PublishXRef "
- "WHERE PublishXRef.Id = :publishxref_id and "
- "PublishXRef.InbredSetId = :inbredset_id and "
- "PublishXRef.PhenotypeId = Phenotype.Id and "
- "PublishXRef.PublicationId = Publication.Id ").params(publishxref_id=publishxref_id,
- inbredset_id=inbredset_id).all()
-
- unique = set()
- print("results: ", results)
- if len(results):
- for item in results[0]:
- #print("locals:", locals())
- if not item:
- continue
- for token in item.split():
- if token.startswith(('(','[')):
- token = token[1:]
- if token.endswith((')', ']')):
- token = token[:-1]
- if token.endswith(';'):
- token = token[:-1]
- if len(token) > 2:
- try:
- # This hopefully ensures that the token is utf-8
- token = token.encode('utf-8')
- print(" ->", token)
- except UnicodeDecodeError:
- print("\n-- UDE \n")
- # Can't get it into utf-8, we won't use it
- continue
-
- unique.add(token)
- #print("\nUnique terms are: {}\n".format(unique))
- return " ".join(unique)
-
- @staticmethod
- def get_result_fields(publishxref_id, inbredset_id):
- """Gets the result fields (columns) that appear on the result page as a json string"""
- results = Session.query(
- "phenotype_id",
- "species",
- "group_name",
- "description",
- "lrs",
- "publication_id",
- "pubmed_id",
- "year",
- "authors"
- ).from_statement(
- "SELECT PublishXRef.PhenotypeId as phenotype_id, "
- "Species.Name as species, "
- "InbredSet.Name as group_name, "
- "Phenotype.Original_description as description, "
- "PublishXRef.LRS as lrs, "
- "PublishXRef.PublicationId as publication_id, "
- "Publication.PubMed_ID as pubmed_id, "
- "Publication.Year as year, "
- "Publication.Authors as authors "
- "FROM PublishXRef, "
- "Phenotype, "
- "Publication, "
- "InbredSet, "
- "Species "
- "WHERE PublishXRef.Id = :publishxref_id and "
- "PublishXRef.InbredSetId = :inbredset_id and "
- "PublishXRef.PhenotypeId = Phenotype.Id and "
- "PublishXRef.PublicationId = Publication.Id and "
- "InbredSet.Id = :inbredset_id and "
- "Species.Id = InbredSet.SpeciesId ").params(publishxref_id=publishxref_id,
- inbredset_id=inbredset_id).all()
-
- assert len(set(result for result in results)) == 1, "Different results or no results"
-
- result = results[0]
- result = row2dict(result)
- try:
- json_results = json.dumps(result, sort_keys=True)
- except UnicodeDecodeError:
- print("\n\nTrying to massage unicode\n\n")
- for key, value in result.iteritems():
- print("\tkey is:", key)
- print("\tvalue is:", value)
- if isinstance(value, basestring):
- result[key] = value.decode('utf-8', errors='ignore')
- json_results = json.dumps(result, sort_keys=True)
-
- return json_results
-
-
-class GenoXRef(Base):
- """Class that corresponds with the GenoXRef table in the database.
-
- The GenoXRef table links genotype traits and their data.
-
- This class is used to add genotype traits to the quick search table.
-
- """
-
- __tablename__ = 'GenoXRef'
-
- GenoFreezeId = sa.Column(sa.Integer, primary_key=True)
- GenoId = sa.Column(sa.Integer, primary_key=True)
- DataId = sa.Column(sa.Integer)
- cM = sa.Column(sa.Float)
- Used_for_mapping = sa.Column(sa.Text)
-
- @classmethod
- def run(cls):
- """Connects to database and inserts genotype trait info into the Quicksearch table."""
- conn = Engine.connect()
- counter = 0
- for item in page_query(Session.query(cls)): #all()
- values = {}
- values['table_name'] = cls.__tablename__
- values['the_key'] = json.dumps([item.GenoId, item.GenoFreezeId])
- values['terms'] = cls.get_unique_terms(item.GenoId)
- print("terms is:", values['terms'])
- if values['terms']:
- values['result_fields'] = cls.get_result_fields(item.GenoId, item.GenoFreezeId)
- ins = QuickSearch.insert().values(**values)
- conn.execute(ins)
- counter += 1
- print("Done:", counter)
-
- @staticmethod
- def get_unique_terms(geno_id):
- """Finds unique terms for each item in the GenoXRef table to match a query against"""
- print("geno_id: ", geno_id)
- results = Session.query(
- "name",
- "marker_name"
- ).from_statement(
- "SELECT Geno.Name as name, "
- "Geno.Marker_Name as marker_name "
- "FROM Geno "
- "WHERE Geno.Id = :geno_id ").params(geno_id=geno_id).all()
-
- unique = set()
- if len(results):
- for item in results[0]:
- #print("locals:", locals())
- if not item:
- continue
- for token in item.split():
- if len(token) > 2:
- try:
- # This hopefully ensures that the token is utf-8
- token = token.encode('utf-8')
- print(" ->", token)
- except UnicodeDecodeError:
- print("\n-- UDE \n")
- # Can't get it into utf-8, we won't use it
- continue
-
- unique.add(token)
- return " ".join(unique)
-
-
- @staticmethod
- def get_result_fields(geno_id, dataset_id):
- """Gets the result fields (columns) that appear on the result page as a json string"""
- results = Session.query(
- "name",
- "marker_name",
- "group_name",
- "species",
- "dataset",
- "dataset_name",
- "chr", "mb",
- "source"
- ).from_statement(
- "SELECT Geno.Name as name, "
- "Geno.Marker_Name as marker_name, "
- "InbredSet.Name as group_name, "
- "Species.Name as species, "
- "GenoFreeze.Name as dataset, "
- "GenoFreeze.FullName as dataset_name, "
- "Geno.Chr as chr, "
- "Geno.Mb as mb, "
- "Geno.Source as source "
- "FROM Geno, "
- "GenoXRef, "
- "GenoFreeze, "
- "InbredSet, "
- "Species "
- "WHERE Geno.Id = :geno_id and "
- "GenoXRef.GenoId = Geno.Id and "
- "GenoFreeze.Id = :dataset_id and "
- "GenoXRef.GenoFreezeId = GenoFreeze.Id and "
- "InbredSet.Id = GenoFreeze.InbredSetId and "
- "InbredSet.SpeciesId = Species.Id ").params(geno_id=geno_id,
- dataset_id=dataset_id).all()
- assert len(set(result for result in results)) == 1, "Different results"
-
- result = results[0]
- result = row2dict(result)
- try:
- json_results = json.dumps(result, sort_keys=True)
- except UnicodeDecodeError:
- print("\n\nTrying to massage unicode\n\n")
- for key, value in result.iteritems():
- print("\tkey is:", key)
- print("\tvalue is:", value)
- if isinstance(value, basestring):
- result[key] = value.decode('utf-8', errors='ignore')
- json_results = json.dumps(result, sort_keys=True)
-
- return json_results
-
-class ProbeSetXRef(Base):
- """Class that corresponds with the ProbeSetXRef table in the database.
-
- The ProbeSetXRef table links mRNA expression traits and their sample data.
-
- This class is used to add mRNA expression traits to the quick search table.
-
- """
-
- __tablename__ = 'ProbeSetXRef'
-
- ProbeSetFreezeId = sa.Column(sa.Integer, primary_key=True)
- ProbeSetId = sa.Column(sa.Integer, primary_key=True)
- DataId = sa.Column(sa.Integer, unique=True)
- Locus_old = sa.Column(sa.Text)
- LRS_old = sa.Column(sa.Float)
- pValue_old = sa.Column(sa.Float)
- mean = sa.Column(sa.Float)
- se = sa.Column(sa.Float)
- Locus = sa.Column(sa.Text)
- LRS = sa.Column(sa.Float)
- pValue = sa.Column(sa.Float)
- additive = sa.Column(sa.Float)
- h2 = sa.Column(sa.Float)
-
- @classmethod
- def run(cls):
- """Connects to db and inserts mRNA expression trait info into the Quicksearch table."""
- conn = Engine.connect()
- counter = 0
- for ps_row in page_query(Session.query(cls)): #all()
- values = {}
- values['table_name'] = cls.__tablename__
- values['the_key'] = json.dumps([ps_row.ProbeSetId, ps_row.ProbeSetFreezeId])
- values['terms'] = cls.get_unique_terms(ps_row.ProbeSetId)
- print("terms is:", values['terms'])
- values['result_fields'] = cls.get_result_fields(ps_row.ProbeSetId,
- ps_row.ProbeSetFreezeId)
- if values['result_fields'] == None:
- continue
- ins = QuickSearch.insert().values(**values)
- conn.execute(ins)
- counter += 1
- print("Done:", counter)
-
- @staticmethod
- def get_unique_terms(probeset_id):
- """Finds unique terms for each item in the ProbeSetXRef table to match a query against"""
- results = Session.query(
- "name",
- "symbol",
- "description",
- "alias"
- ).from_statement(
- "SELECT ProbeSet.Name as name, "
- "ProbeSet.Symbol as symbol, "
- "ProbeSet.description as description, "
- "ProbeSet.alias as alias "
- "FROM ProbeSet "
- "WHERE ProbeSet.Id = :probeset_id ").params(probeset_id=probeset_id).all()
-
- unique = set()
- if len(results):
- for item in results[0]:
- if not item:
- continue
- for token in item.split():
- if token.startswith(('(','[')):
- token = token[1:]
- if token.endswith((')', ']')):
- token = token[:-1]
- if token.endswith(';'):
- token = token[:-1]
- if len(token) > 2:
- try:
- # This hopefully ensures that the token is utf-8
- token = token.encode('utf-8')
- print(" ->", token)
- except UnicodeDecodeError:
- print("\n-- UDE \n")
- # Can't get it into utf-8, we won't use it
- continue
-
- unique.add(token)
- return " ".join(unique)
-
-
- @staticmethod
- def get_result_fields(probeset_id, dataset_id):
- """Gets the result fields (columns) that appear on the result page as a json string"""
- print("probeset_id: ", probeset_id)
- print("dataset_id: ", dataset_id)
- results = Session.query(
- "name",
- "species",
- "group_name",
- "dataset",
- "dataset_name",
- "symbol",
- "description",
- "chr", "mb",
- "lrs", "mean",
- "genbank_id",
- "gene_id",
- "chip_id",
- "chip_name"
- ).from_statement(
- "SELECT ProbeSet.Name as name, "
- "Species.Name as species, "
- "InbredSet.Name as group_name, "
- "ProbeSetFreeze.Name as dataset, "
- "ProbeSetFreeze.FullName as dataset_name, "
- "ProbeSet.Symbol as symbol, "
- "ProbeSet.description as description, "
- "ProbeSet.Chr as chr, "
- "ProbeSet.Mb as mb, "
- "ProbeSetXRef.LRS as lrs, "
- "ProbeSetXRef.mean as mean, "
- "ProbeSet.GenbankId as genbank_id, "
- "ProbeSet.GeneId as gene_id, "
- "ProbeSet.ChipId as chip_id, "
- "GeneChip.Name as chip_name "
- "FROM ProbeSet, "
- "ProbeSetXRef, "
- "ProbeSetFreeze, "
- "ProbeFreeze, "
- "InbredSet, "
- "Species, "
- "GeneChip "
- "WHERE ProbeSetXRef.ProbeSetId = :probeset_id and "
- "ProbeSetXRef.ProbeSetFreezeId = :dataset_id and "
- "ProbeSetXRef.ProbeSetId = ProbeSet.Id and "
- "ProbeSet.ChipId = GeneChip.Id and "
- "ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id and "
- "ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and "
- "ProbeFreeze.InbredSetId = InbredSet.Id and "
- "InbredSet.SpeciesId = Species.Id ").params(probeset_id=probeset_id,
- dataset_id=dataset_id).all()
-
- if len(set(result for result in results)) != 1:
- return None
-
- result = results[0]
- result = row2dict(result)
- try:
- json_results = json.dumps(result, sort_keys=True)
- except UnicodeDecodeError:
- print("\n\nTrying to massage unicode\n\n")
- for key, value in result.iteritems():
- print("\tkey is:", key)
- print("\tvalue is:", value)
- if isinstance(value, basestring):
- result[key] = value.decode('utf-8', errors='ignore')
- json_results = json.dumps(result, sort_keys=True)
-
- return json_results
-
-QuickSearch = sa.Table("QuickSearch", Metadata,
- # table_name is the table that item is inserted from
- sa.Column('table_name', sa.String(15),
- primary_key=True, nullable=False, autoincrement=False),
- sa.Column('the_key', sa.String(30),
- primary_key=True, nullable=False, autoincrement=False), # key in database table
- sa.Column('terms', sa.Text), # terms to compare search string with
- sa.Column('result_fields', sa.Text), # json
- mysql_engine = 'MyISAM',
- )
-
-QuickSearch.drop(Engine, checkfirst=True)
-Metadata.create_all(Engine)
-
-
-def row2dict(row):
- """From http://stackoverflow.com/a/2848519/1175849"""
- return dict(zip(row.keys(), row))
-
-
-def page_query(query):
- """From http://stackoverflow.com/a/1217947/1175849"""
- offset = 0
- while True:
- rrr = False
- for elem in query.limit(1000).offset(offset):
- rrr = True
- yield elem
- offset += 1000
- if not rrr:
- break
-
-
-def main():
- """Populate the QuickSearch table that is used with the quick search features.
-
- Add all items from the ProbeSetXRef, GenoXRef, and PublishXRef tables to the QuickSearch tables.
-
- """
-
- GenoXRef.run()
- PublishXRef.run()
- ProbeSetXRef.run()
-
-if __name__ == "__main__":
- main()
diff --git a/wqflask/other_config/nginx_conf/gn2_zach.conf b/wqflask/other_config/nginx_conf/gn2_zach.conf
index 23f3995f..1614bcb4 100755
--- a/wqflask/other_config/nginx_conf/gn2_zach.conf
+++ b/wqflask/other_config/nginx_conf/gn2_zach.conf
@@ -33,6 +33,11 @@ server {
autoindex on;
}
+ location /download/ {
+ root /home/zas1024/gene/wqflask/wqflask/;
+ autoindex on;
+ }
+
location / {
proxy_pass http://127.0.0.1:5002/;
proxy_redirect off;
diff --git a/wqflask/wqflask/correlation/corr_scatter_plot.py b/wqflask/wqflask/correlation/corr_scatter_plot.py
index eef1cdc0..702ff723 100755
--- a/wqflask/wqflask/correlation/corr_scatter_plot.py
+++ b/wqflask/wqflask/correlation/corr_scatter_plot.py
@@ -7,6 +7,7 @@ from scipy import stats
import numpy as np
class CorrScatterPlot(object):
+ """Page that displays a correlation scatterplot with a line fitted to it"""
def __init__(self, params):
self.data_set_1 = data_set.create_dataset(params['dataset_1'])
diff --git a/wqflask/wqflask/correlation/correlation_plot.py b/wqflask/wqflask/correlation/correlation_plot.py
deleted file mode 100755
index c2b64d70..00000000
--- a/wqflask/wqflask/correlation/correlation_plot.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/python
-
-from __future__ import print_function, division
-
-from base.trait import GeneralTrait
-from base import data_set
-from wqflask.show_trait.SampleList import SampleList
-
-class CorrelationPlot(object):
- """Page that displays a correlation scatterplot with a line fitted to it"""
-
- def __init__(self, start_vars):
- self.dataset1 = data_set.create_dataset(start_vars['dataset1'])
- self.trait1 = GeneralTrait(dataset=self.dataset1.name,
- name=start_vars['trait1'])
-
- self.dataset2 = data_set.create_dataset(start_vars['dataset2'])
- self.trait2 = GeneralTrait(dataset=self.dataset2.name,
- name=start_vars['trait2'])
-
- sample_names_1 = self.get_sample_names(self.dataset1)
- sample_names_2 = self.get_sample_names(self.dataset2)
-
- self.samples_1 = self.get_samples(self.dataset1, sample_names_1, self.trait1)
- self.samples_2 = self.get_samples(self.dataset2, sample_names_2, self.trait2)
-
- coords = {}
- for sample in self.samples_1:
- coords[sample.name] = (sample.val)
-
-
- def get_sample_names(self, dataset):
- if dataset.group.parlist:
- sample_names = (dataset.group.parlist +
- dataset.group.f1list +
- dataset.group.samplelist)
- elif dataset.group.f1list:
- sample_names = dataset.group.f1list + dataset.group.samplelist
- else:
- sample_names = dataset.group.samplelist
-
- return sample_names
-
-
- def get_samples(self, dataset, sample_names, trait):
- samples = SampleList(dataset = dataset,
- sample_names=sample_names,
- this_trait=trait,
- sample_group_type='primary',
- header="%s Only" % (dataset.group.name))
-
- return samples
- \ No newline at end of file
diff --git a/wqflask/wqflask/heatmap/heatmap.py b/wqflask/wqflask/heatmap/heatmap.py
index 035736fd..40f518f0 100644
--- a/wqflask/wqflask/heatmap/heatmap.py
+++ b/wqflask/wqflask/heatmap/heatmap.py
@@ -28,7 +28,6 @@ from base import data_set
from base import species
from base import webqtlConfig
from utility import webqtlUtil
-from wqflask.my_pylmm.data import prep_data
# from wqflask.my_pylmm.pyLMM import lmm
# from wqflask.my_pylmm.pyLMM import input
from utility import helper_functions
diff --git a/wqflask/wqflask/interval_mapping/__init__.py b/wqflask/wqflask/interval_mapping/__init__.py
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/interval_mapping/__init__.py
+++ /dev/null
diff --git a/wqflask/wqflask/interval_mapping/interval_mapping.py b/wqflask/wqflask/interval_mapping/interval_mapping.py
deleted file mode 100755
index e8ac99d7..00000000
--- a/wqflask/wqflask/interval_mapping/interval_mapping.py
+++ /dev/null
@@ -1,183 +0,0 @@
-from __future__ import absolute_import, print_function, division
-
-from base.trait import GeneralTrait
-from base import data_set #import create_dataset
-
-from pprint import pformat as pf
-
-import string
-import sys
-import os
-import collections
-
-import numpy as np
-from scipy import linalg
-import rpy2.robjects
-
-import simplejson as json
-
-#from redis import Redis
-
-
-from base.trait import GeneralTrait
-from base import data_set
-from base import species
-from base import webqtlConfig
-from utility import webqtlUtil
-from utility import helper_functions
-from utility import Plot, Bunch
-from utility import temp_data
-
-from utility.benchmark import Bench
-
-
-class IntervalMapping(object):
-
- def __init__(self, start_vars, temp_uuid):
-
- #Currently only getting trait data for one trait, but will need
- #to change this to accept multiple traits once the collection page is implemented
- helper_functions.get_species_dataset_trait(self, start_vars)
-
- tempdata = temp_data.TempData(temp_uuid)
-
- self.samples = [] # Want only ones with values
- self.vals = []
-
- for sample in self.dataset.group.samplelist:
- value = start_vars['value:' + sample]
- self.samples.append(str(sample))
- self.vals.append(value)
-
- print("start_vars:", start_vars)
-
- self.set_options(start_vars)
-
- self.score_type = "LRS"
- self.cutoff = 3
-
- self.json_data = {}
- self.json_data['lodnames'] = ['lod.hk']
- self.gen_reaper_results()
-
- #Get chromosome lengths for drawing the interval map plot
- chromosome_mb_lengths = {}
- self.json_data['chrnames'] = []
- for key in self.species.chromosomes.chromosomes.keys():
- self.json_data['chrnames'].append([self.species.chromosomes.chromosomes[key].name, self.species.chromosomes.chromosomes[key].mb_length])
-
- chromosome_mb_lengths[key] = self.species.chromosomes.chromosomes[key].mb_length
-
- print("JSON DATA:", self.json_data)
-
- json_filename = webqtlUtil.genRandStr(prefix="intmap_")
- json.dumps(self.json_data, webqtlConfig.TMPDIR + json_filename)
-
- self.js_data = dict(
- result_score_type = self.score_type,
- manhattan_plot = self.manhattan_plot,
- chromosomes = chromosome_mb_lengths,
- qtl_results = self.qtl_results,
- json_data = self.json_data
- )
-
- def set_options(self, start_vars):
- """Sets various options (physical/genetic mapping, # permutations, which chromosome"""
-
- if start_vars['num_perm'] == "":
- self.num_permutations = 0
- else:
- self.num_permutations = int(start_vars['num_perm'])
- if start_vars['manhattan_plot'] == "true":
- self.manhattan_plot = True
- else:
- self.manhattan_plot = False
- #ZS: Commenting this out until we can fix the issue with positive/negative additive effects being colored properly
- #if start_vars['display_additive'] == "yes":
- # self.additive = True
- #else:
- self.additive = False
- if 'control_locus' in start_vars:
- self.control_locus = start_vars['control_locus']
- else:
- self.control_locus = None
-
-
- def gen_reaper_results(self):
- genotype = self.dataset.group.read_genotype_file()
-
- samples, values, variances = self.this_trait.export_informative()
-
- trimmed_samples = []
- trimmed_values = []
- for i in range(0, len(samples)):
- if samples[i] in self.dataset.group.samplelist:
- trimmed_samples.append(samples[i])
- trimmed_values.append(values[i])
-
- self.lrs_array = genotype.permutation(strains = trimmed_samples,
- trait = trimmed_values,
- nperm= self.num_permutations)
-
- self.suggestive = self.lrs_array[int(self.num_permutations*0.37-1)]
- self.significant = self.lrs_array[int(self.num_permutations*0.95-1)]
- self.json_data['suggestive'] = self.suggestive
- self.json_data['significant'] = self.significant
-
- print("samples:", trimmed_samples)
-
- if self.control_locus:
- reaper_results = genotype.regression(strains = trimmed_samples,
- trait = trimmed_values,
- control = self.control_locus)
- else:
- reaper_results = genotype.regression(strains = trimmed_samples,
- trait = trimmed_values)
-
- self.json_data['chr'] = []
- self.json_data['pos'] = []
- self.json_data['lod.hk'] = []
- self.json_data['markernames'] = []
- if self.additive:
- self.json_data['additive'] = []
-
- #Need to convert the QTL objects that qtl reaper returns into a json serializable dictionary
- self.qtl_results = []
- for qtl in reaper_results:
- reaper_locus = qtl.locus
- self.json_data['chr'].append(reaper_locus.chr)
- self.json_data['pos'].append(reaper_locus.Mb)
- self.json_data['lod.hk'].append(qtl.lrs)
- self.json_data['markernames'].append(reaper_locus.name)
- if self.additive:
- self.json_data['additive'].append(qtl.additive)
- locus = {"name":reaper_locus.name, "chr":reaper_locus.chr, "cM":reaper_locus.cM, "Mb":reaper_locus.Mb}
- qtl = {"lrs_value": qtl.lrs, "chr":reaper_locus.chr, "Mb":reaper_locus.Mb,
- "cM":reaper_locus.cM, "name":reaper_locus.name, "additive":qtl.additive, "dominance":qtl.dominance}
- self.qtl_results.append(qtl)
-
-
- def identify_empty_samples(self):
- no_val_samples = []
- for sample_count, val in enumerate(self.vals):
- if val == "x":
- no_val_samples.append(sample_count)
- return no_val_samples
-
-
- def trim_genotypes(self, genotype_data, no_value_samples):
- trimmed_genotype_data = []
- for marker in genotype_data:
- new_genotypes = []
- for item_count, genotype in enumerate(marker):
- if item_count in no_value_samples:
- continue
- try:
- genotype = float(genotype)
- except ValueError:
- genotype = np.nan
- pass
- new_genotypes.append(genotype)
- trimmed_genotype_data.append(new_genotypes)
- return trimmed_genotype_data
-
diff --git a/wqflask/wqflask/my_pylmm/README.md b/wqflask/wqflask/my_pylmm/README.md
deleted file mode 100644
index b844c845..00000000
--- a/wqflask/wqflask/my_pylmm/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Genenetwork2/pylmm RELEASE NOTES
-
-## 0.51-gn2 (April 19, 2015)
-
-- Improved GN2 integration
-- Less matrix transposes
-- Able to run pylmm standalone without Redis again (still requires
- the modules)
-
-## 0.50-gn2 (April 2nd, 2015)
-
-- Replaced the GN2 genotype normalization
-
-## 0.50-gn2-pre2 (March 18, 2015)
-
-- Added abstractions for progress meter and info/debug statements;
- Redis perc_complete is now updated through a lambda
-
-## 0.50-gn2-pre1 (release, March 17, 2015)
-
-- This is the first test release of multi-core pylmm into GN2. Both
- kinship calculation and GWAS have been made multi-threaded by
- introducing the Python multiprocessing module. Note that only
- run_other has been updated to use the new routines (so human is
- still handled the old way). I have taken care that we can still run
- both old-style and new-style LMM (through passing the 'new_code'
- boolean). This could be an option in the web server for users to
- select and test for any unexpected differences (of which there
- should be none, naturally ;).
-
-- The current version can handle missing phenotypes, but as they are
- removed there is no way for GN2 to know what SNPs the P-values
- belong to. A future version will pass a SNP index to allow for
- missing phenotypes.
-
-
- \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/__init__.py b/wqflask/wqflask/my_pylmm/__init__.py
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/my_pylmm/__init__.py
+++ /dev/null
diff --git a/wqflask/wqflask/my_pylmm/data/__init__.py b/wqflask/wqflask/my_pylmm/data/__init__.py
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/my_pylmm/data/__init__.py
+++ /dev/null
diff --git a/wqflask/wqflask/my_pylmm/data/geno_to_ped.py b/wqflask/wqflask/my_pylmm/data/geno_to_ped.py
deleted file mode 100755
index 9091ad9a..00000000
--- a/wqflask/wqflask/my_pylmm/data/geno_to_ped.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from __future__ import absolute_import, division, print_function
-
-import csv
-
-class ConvertToPed(object):
-
- def __init__(self, input_file, output_file):
- self.input_file = input_file
- self.output_file = output_file
-
- def convert(self):
-
- self.haplotype_notation = {
- '@mat': "1",
- '@pat': "0",
- '@het': "0.5",
- '@unk': "NA"
- }
-
- with open(self.output_file, "w") as self.output_fh:
- self.process_csv()
- \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/data/genofile_parser.py b/wqflask/wqflask/my_pylmm/data/genofile_parser.py
deleted file mode 100755
index 61a00136..00000000
--- a/wqflask/wqflask/my_pylmm/data/genofile_parser.py
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/usr/bin/python
-
-"""
-Convert .geno files to json
-
-This file goes through all of the genofiles in the genofile directory (.geno)
-and converts them to json files that are used when running the marker regression
-code
-
-"""
-
-from __future__ import print_function, division, absolute_import
-import sys
-sys.path.append("..")
-import os
-import glob
-import traceback
-import gzip
-
-#import numpy as np
-#from pyLMM import lmm
-
-import simplejson as json
-
-from pprint import pformat as pf
-
-class EmptyConfigurations(Exception): pass
-
-
-
-class Marker(object):
- def __init__(self):
- self.name = None
- self.chr = None
- self.cM = None
- self.Mb = None
- self.genotypes = []
-
-class ConvertGenoFile(object):
-
- def __init__(self, input_file, output_file):
-
- self.input_file = input_file
- self.output_file = output_file
-
- self.mb_exists = False
- self.cm_exists = False
- self.markers = []
-
- self.latest_row_pos = None
- self.latest_col_pos = None
-
- self.latest_row_value = None
- self.latest_col_value = None
-
- def convert(self):
-
- self.haplotype_notation = {
- '@mat': "1",
- '@pat': "0",
- '@het': "0.5",
- '@unk': "NA"
- }
-
- self.configurations = {}
- #self.skipped_cols = 3
-
- #if self.input_file.endswith(".geno.gz"):
- # print("self.input_file: ", self.input_file)
- # self.input_fh = gzip.open(self.input_file)
- #else:
- self.input_fh = open(self.input_file)
-
- with open(self.output_file, "w") as self.output_fh:
- #if self.file_type == "geno":
- self.process_csv()
- #elif self.file_type == "snps":
- # self.process_snps_file()
-
-
- def process_csv(self):
- for row_count, row in enumerate(self.process_rows()):
- row_items = row.split("\t")
-
- this_marker = Marker()
- this_marker.name = row_items[1]
- this_marker.chr = row_items[0]
- if self.cm_exists and self.mb_exists:
- this_marker.cM = row_items[2]
- this_marker.Mb = row_items[3]
- genotypes = row_items[4:]
- elif self.cm_exists:
- this_marker.cM = row_items[2]
- genotypes = row_items[3:]
- elif self.mb_exists:
- this_marker.Mb = row_items[2]
- genotypes = row_items[3:]
- else:
- genotypes = row_items[2:]
- for item_count, genotype in enumerate(genotypes):
- if genotype.upper() in self.configurations:
- this_marker.genotypes.append(self.configurations[genotype.upper()])
- else:
- this_marker.genotypes.append("NA")
-
- #print("this_marker is:", pf(this_marker.__dict__))
- #if this_marker.chr == "14":
- self.markers.append(this_marker.__dict__)
-
- with open(self.output_file, 'w') as fh:
- json.dump(self.markers, fh, indent=" ", sort_keys=True)
-
- # print('configurations:', str(configurations))
- #self.latest_col_pos = item_count + self.skipped_cols
- #self.latest_col_value = item
-
- #if item_count != 0:
- # self.output_fh.write(" ")
- #self.output_fh.write(self.configurations[item.upper()])
-
- #self.output_fh.write("\n")
-
-
- def process_rows(self):
- for self.latest_row_pos, row in enumerate(self.input_fh):
- #if self.input_file.endswith(".geno.gz"):
- # print("row: ", row)
- self.latest_row_value = row
- # Take care of headers
- if not row.strip():
- continue
- if row.startswith('#'):
- continue
- if row.startswith('Chr'):
- if 'Mb' in row.split():
- self.mb_exists = True
- if 'cM' in row.split():
- self.cm_exists = True
- continue
- if row.startswith('@'):
- key, _separater, value = row.partition(':')
- key = key.strip()
- value = value.strip()
- if key in self.haplotype_notation:
- self.configurations[value] = self.haplotype_notation[key]
- continue
- if not len(self.configurations):
- raise EmptyConfigurations
- yield row
-
- @classmethod
- def process_all(cls, old_directory, new_directory):
- os.chdir(old_directory)
- for input_file in glob.glob("*"):
- if not input_file.endswith(('geno', '.geno.gz')):
- continue
- group_name = input_file.split('.')[0]
- output_file = os.path.join(new_directory, group_name + ".json")
- print("%s -> %s" % (
- os.path.join(old_directory, input_file), output_file))
- convertob = ConvertGenoFile(input_file, output_file)
- try:
- convertob.convert()
- except EmptyConfigurations as why:
- print(" No config info? Continuing...")
- #excepted = True
- continue
- except Exception as why:
-
- print(" Exception:", why)
- print(traceback.print_exc())
- print(" Found in row %s at tabular column %s" % (convertob.latest_row_pos,
- convertob.latest_col_pos))
- print(" Column is:", convertob.latest_col_value)
- print(" Row is:", convertob.latest_row_value)
- break
-
- #def process_snps_file(cls, snps_file, new_directory):
- # output_file = os.path.join(new_directory, "mouse_families.json")
- # print("%s -> %s" % (snps_file, output_file))
- # convertob = ConvertGenoFile(input_file, output_file)
-
-
-
-if __name__=="__main__":
- Old_Geno_Directory = """/home/zas1024/gene/genotype_files/genotypes/"""
- New_Geno_Directory = """/home/zas1024/gene/genotype_files/new_genotypes/"""
- #Input_File = """/home/zas1024/gene/genotype_files/genotypes/BXD.geno"""
- #Output_File = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/bxd.snps"""
- #convertob = ConvertGenoFile("/home/zas1024/gene/genotype_files/genotypes/SRxSHRSPF2.geno", "/home/zas1024/gene/genotype_files/new_genotypes/SRxSHRSPF2.json")
- #convertob.convert()
- ConvertGenoFile.process_all(Old_Geno_Directory, New_Geno_Directory)
- #ConvertGenoFiles(Geno_Directory)
-
- #process_csv(Input_File, Output_File) \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/data/load_genotypes_lei.py b/wqflask/wqflask/my_pylmm/data/load_genotypes_lei.py
deleted file mode 100755
index e3144733..00000000
--- a/wqflask/wqflask/my_pylmm/data/load_genotypes_lei.py
+++ /dev/null
@@ -1,181 +0,0 @@
-"""
-Do whatever else is needed with the Marker object
-Probably create Genofile object as well
-Make sure rest of code works with params object (though
-everything in the params object should probably just be the parameters of
-the Genofile object)
-
-Continue to rename variables in ways that make sense and to add underscores between words
-
-Look at genofile_parser.py that I (Zach) wrote a while back and how much of it can just be reused
-
-Get rid of/improve uninformative comments
-
-"""
-
-
-from __future__ import absolute_import, print_function, division
-
-import sys
-import re
-import argparse
-
-import utilities
-import datastructure
-
-def main():
- parser = argparse.ArgumentParser(description='Load Genotypes')
- parser.add_argument('-c', '--config')
- opts = parser.parse_args()
- config = opts.config
- # config
- config = utilities.get_config(config)
- print("config:")
- for item in config.items('config'):
- print("\t", str(item))
- parse_genofile(fetch_parameters(config))
-
-def fetch_parameters(config):
- # variables
- params = {}
- params['inbredsetid'] = config.get('config', 'inbredsetid')
- species = datastructure.get_species(params['inbredsetid'])
- params["speciesid"] = species[0]
- genofreeze = datastructure.get_genofreeze_byinbredsetid(params['inbredsetid'])
- params['genofreezeid'] = genofreeze[0]
- params['dataid'] = datastructure.get_nextdataid_genotype()
- params['genofile'] = config.get('config', 'genofile')
-
- return params
-
-def parse_genofile(params):
- # genofile
- with open(params['genofile']) as genofile:
- meta_data = {}
- print()
- # parse genofile
- for line in genofile:
- line = line.strip()
- if not line:
- pass
- elif line.startswith('#'):
- pass
- elif line.startswith('@'):
- line = line.strip('@')
- for item in line.split(';'):
- kv = re.split(':|=', item)
- meta_data[kv[0].strip()] = kv[1].strip()
-
- elif line.lower().startswith("chr"):
- print("geno file meta:")
- for key, value in meta_data.iteritems():
- print("\t{}: {}".format(key, value))
- print("geno file head:\n\t{}\n".format(line))
- strain_names = line.split()[4:]
- strains = datastructure.get_strains_bynames(inbredsetid=inbredsetid,
- strain_names=strain_names,
- updatestrainxref="yes")
-
- else:
- # geno file line
- marker = Marker(line)
- #
- geno_id = check_or_insert_geno(params, marker)
-
- if check_genoxref(params): #Check if this can go earlier
- continue
-
- insert_genodata(params)
- insert_genoxref(params)
- data_id += 1
-
-
-class Marker(object):
- def __init__(self, line):
- self.cells = line.split()
- self.chromosome = cells[0]
- self.locus = cells[1]
- self.cm = cells[2]
- self.mb = cells[3]
- self.values = cells[4:]
-
-def check_or_insert_geno(params, marker):
- cursor, con = utilities.get_cursor()
- sql = """
- SELECT Geno.`Id`
- FROM Geno
- WHERE Geno.`SpeciesId`=%s
- AND Geno.`Name` like %s
- """
- cursor.execute(sql, (speciesid, locus)) #This is correct
- result = cursor.fetchone()
- if result:
- geno_id = result[0]
- print("get geno record: ", geno_id)
- else:
- sql = """
- INSERT INTO Geno
- SET
- Geno.`SpeciesId`=%s,
- Geno.`Name`=%s,
- Geno.`Marker_Name`=%s,
- Geno.`Chr`=%s,
- Geno.`Mb`=%s
- """
- cursor.execute(sql, (species_id, locus, locus, chr, mb))
- row_count = cursor.rowcount
- geno_id = con.insert_id()
- print("INSERT INTO Geno: %d record: %d" % (row_count, geno_id))
- return geno_id
-
-def check_GenoXRef():
- sql = """
- select GenoXRef.*
- from GenoXRef
- where GenoXRef.`GenoFreezeId`=%s
- AND GenoXRef.`GenoId`=%s
- """
- cursor.execute(sql, (geno_freeze_id, geno_id))
- row_count = cursor.rowcount
- return row_count
-
-def insert_genodata():
- for index, strain in enumerate(strains):
- strain_id = strain[0]
- value = utilities.to_db_string(values[index], None)
- if not value:
- continue
- value = config.get('config', "genovalue_" + value)
- try:
- number = int(value)
- except ValueError:
- continue
- if number not in [-1, 0, 1]:
- continue
- sql = """
- INSERT INTO GenoData
- SET
- GenoData.`Id`=%s,
- GenoData.`StrainId`=%s,
- GenoData.`value`=%s
- """
- cursor.execute(sql, (dataid, strainid, number))
-
-def insert_genoxref():
- sql = """
- INSERT INTO GenoXRef
- SET
- GenoXRef.`GenoFreezeId`=%s,
- GenoXRef.`GenoId`=%s,
- GenoXRef.`DataId`=%s,
- GenoXRef.`cM`=%s,
- GenoXRef.`Used_for_mapping`=%s
- """
- cursor.execute(sql, (genofreezeid, genoid, dataid, cm, 'N'))
- rowcount = cursor.rowcount
- print("INSERT INTO GenoXRef: %d record" % (rowcount))
-
-if __name__ == "__main__":
- print("command line arguments:\n\t%s" % sys.argv)
- main()
- print("exit successfully")
diff --git a/wqflask/wqflask/my_pylmm/data/prep_data.py b/wqflask/wqflask/my_pylmm/data/prep_data.py
deleted file mode 100755
index ef42a297..00000000
--- a/wqflask/wqflask/my_pylmm/data/prep_data.py
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/python
-
-from __future__ import absolute_import, print_function, division
-import os
-
-import numpy
-
-from base import webqtlConfig
-
-
-class PrepData(object):
- def __init__(self, pheno_vector, group_name):
- self.pheno_vector = pheno_vector
- self.group_name = group_name
- self.no_val_samples = set()
- #self.identify_no_genotype_samples()
- self.identify_empty_samples()
- self.trim_files()
-
- def identify_empty_samples(self):
- for sample_count, val in enumerate(self.pheno_vector):
- if val == "x":
- self.no_val_samples.add(sample_count)
- print("self.no_val_samples:", self.no_val_samples)
- #nums = set(range(0, 176))
- #print("not included:", nums-self.empty_columns)
-
- #def identify_no_genotype_samples(self):
- # #for this_file in (self.exprs_file, self.snps_file):
- # #with open(this_file) as fh:
- # no_geno_samples = []
- # has_genotypes = False
- # with open(self.snps_file) as fh:
- # for line in fh:
- # num_samples = len(line.split())
- # break
- # for sample in range (num_samples):
- # for line in fh:
- # if line.split()[sample] != "NA":
- # has_genotypes = True
- # break
- # if has_genotypes == False:
- # no_geno_samples.append(sample)
- #
- # print(no_geno_samples)
-
- def trim_files(self):
- input_file = open(os.path.join(webqtlConfig.NEWGENODIR, self.group_name+'.snps'))
- output_file = os.path.join(webqtlConfig.TMPDIR, self.group_name + '.snps.new')
- with open(output_file, "w") as output_file:
- for line in input_file:
- data_to_write = []
- for pos, item in enumerate(line.split()):
- if pos in self.no_val_samples:
- continue
- else:
- data_to_write.append("%s" % (item))
- output_file.write(" ".join(data_to_write) + "\n")
-
- print("Done writing:", output_file)
-
- #for this_file in (self.exprs_file, self.genotype_file):
- # input_file = open(this_file)
- # this_file_name_output = this_file + ".new"
- # with open(this_file_name_output, "w") as output_file:
- # for line in input_file:
- # data_wanted = []
- # for pos, item in enumerate(line.split()):
- # if pos in self.empty_columns:
- # continue
- # else:
- # data_wanted.append("%2s" % (item))
- # #print("data_wanted is", data_wanted)
- # output_file.write(" ".join(data_wanted) + "\n")
- # print("Done writing file:", this_file_name_output)
-
-if __name__=="__main__":
- exprs_file = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.exprs.1"""
- genotype_file = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.snps.1000"""
- PrepData(pheno_vector, genotype_file) \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/scripts/example.py b/wqflask/wqflask/my_pylmm/scripts/example.py
deleted file mode 100755
index 8b30debd..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/example.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/python
-
-from __future__ import absolute_import, print_function, division
-
-import sys
-import time
-
-import numpy as np
-from pyLMM import lmm
-
-from pprint import pformat as pf
-
-
-Y = np.genfromtxt('data/mdp.exprs.1.new')
-print("exprs is:", pf(Y.shape))
-
-# Loading npdump and first 1000 snps for speed
-#K = np.load('data/hmdp.liver.K.npdump')
-#snps = np.load('data/hmdp.liver.snps.1000.npdump').T
-
-# These three lines will load all SNPs (from npdump or from txt) and
-# calculate the kinship
-snps = np.genfromtxt('/home/zas1024/gene/web/new_genotypers/mdp.snps.1000.new').T
-print("snps is:", pf(snps.shape))
-#snps = snps[~np.isnan(snps).all(axis=1)]
-#print ("snps is now:", pf(snps))
-np.savetxt("/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.snps.trimmed", snps, fmt='%s', delimiter=' ')
-#snps = np.load('data/hmdp.liver.snps.npdump').T
-K = lmm.calculateKinship(snps)
-#print("K is:", pf(K))
-#print("Y is:", pf(Y.shape))
-
-# Instantiate a LMM object for the phentoype Y and fit the null model
-L = lmm.LMM(Y,K)
-L.fit()
-
-# Manually calculate the association at one SNP
-X = snps[:,0]
-X[np.isnan(X)] = X[True - np.isnan(X)].mean() # Fill missing with MAF
-X = X.reshape(len(X),1)
-if X.var() == 0: ts,ps = (np.nan,np.nan)
-else: ts,ps = L.association(X)
-
-# If I want to refit the variance component
-L.fit(X=X)
-ts,ps = L.association(X)
-
-# If I want to do a genome-wide scan over the 1000 SNPs.
-# This call will use REML (REML = False means use ML).
-# It will also refit the variance components for each SNP.
-# Setting refit = False will cause the program to fit the model once
-# and hold those variance component estimates for each SNP.
-begin = time.time()
-TS,PS = lmm.GWAS(Y,snps,K,REML=True,refit=False)
-print("TS is:", pf(TS))
-print("PS is:", pf(PS))
-end = time.time()
-sys.stderr.write("Total time for 1000 SNPs: %0.3f\n" % (end- begin)) \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py b/wqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py
deleted file mode 100755
index 74b58dd6..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py
+++ /dev/null
@@ -1,346 +0,0 @@
-#!/usr/bin/python
-
-# pylmm is a python-based linear mixed-model solver with applications to GWAS
-
-# Copyright (C) 2013 Nicholas A. Furlotte (nick.furlotte@gmail.com)
-
-#The program is free for academic use. Please contact Nick Furlotte
-#<nick.furlotte@gmail.com> if you are interested in using the software for
-#commercial purposes.
-
-#The software must not be modified and distributed without prior
-#permission of the author.
-
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-#EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-#PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-#PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-#NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import pdb
-import time
-import sys
-
-def printOutHead(): out.write("\t".join(["SNP_ID","BETA","BETA_SD","F_STAT","P_VALUE"]) + "\n")
-
-def formatResult(id,beta,betaSD,ts,ps):
- return "\t".join([str(x) for x in [id,beta,betaSD,ts,ps]]) + "\n"
-
-def outputResult(id,beta,betaSD,ts,ps):
- out.write(formatResult(id,beta,betaSD,ts,ps))
-
-from optparse import OptionParser,OptionGroup
-usage = """usage: %prog [options] --kfile kinshipFile --[tfile | bfile] plinkFileBase outfileBase
-
-This program provides basic genome-wide association (GWAS) functionality. You provide a phenotype and genotype file as well as a pre-computed (use pylmmKinship.py) kinship matrix and the program outputs a result file with information about each SNP, including the association p-value.
-The input file are all standard plink formatted with the first two columns specifiying the individual and family ID. For the phenotype file, we accept either NA or -9 to denote missing values.
-
-Basic usage:
-
- python pylmmGWAS.py -v --bfile plinkFile --kfile preComputedKinship.kin --phenofile plinkFormattedPhenotypeFile resultFile
-
- """
-parser = OptionParser(usage=usage)
-
-basicGroup = OptionGroup(parser, "Basic Options")
-advancedGroup = OptionGroup(parser, "Advanced Options")
-experimentalGroup = OptionGroup(parser, "Experimental Options")
-
-#basicGroup.add_option("--pfile", dest="pfile",
-# help="The base for a PLINK ped file")
-basicGroup.add_option("--tfile", dest="tfile",
- help="The base for a PLINK tped file")
-basicGroup.add_option("--bfile", dest="bfile",
- help="The base for a PLINK binary bed file")
-basicGroup.add_option("--phenofile", dest="phenoFile", default=None,
- help="Without this argument the program will look for a file with .pheno that has the plinkFileBase root. If you want to specify an alternative phenotype file, then use this argument. This file should be in plink format. ")
-
-# EMMA Options
-basicGroup.add_option("--emmaSNP", dest="emmaFile", default=None,
- help="For backwards compatibility with emma, we allow for \"EMMA\" file formats. This is just a text file with individuals on the columns and snps on the rows.")
-basicGroup.add_option("--emmaPHENO", dest="emmaPheno", default=None,
- help="For backwards compatibility with emma, we allow for \"EMMA\" file formats. This is just a text file with each phenotype as one row.")
-basicGroup.add_option("--emmaCOV", dest="emmaCov", default=None,
- help="For backwards compatibility with emma, we allow for \"EMMA\" file formats. This is just a text file with each covariate as one row.")
-
-basicGroup.add_option("--kfile", dest="kfile",
- help="The location of a kinship file. This is an nxn plain text file and can be computed with the pylmmKinship program.")
-basicGroup.add_option("--covfile", dest="covfile",
- help="The location of a covariate file file. This is a plink formatted covariate file.")
-basicGroup.add_option("-p", type="int", dest="pheno", help="The phenotype index to be used in association.", default=0)
-
-
-
-advancedGroup.add_option("--removeMissingGenotypes",
- action="store_false", dest="normalizeGenotype", default=True,
- help="By default the program replaces missing genotypes with the minor allele frequency. This option overrides that behavior making the program remove missing individuals. NOTE: This can increase running time due to the need to recompute the eigendecomposition for each SNP with missing values.")
-advancedGroup.add_option("--refit",
- action="store_true", dest="refit", default=False,
- help="Refit the variance components at each SNP (default is to lock in the variance components under the null).")
-
-advancedGroup.add_option("--REML",
- action="store_true", dest="REML", default=False,
- help="Use restricted maximum-likelihood (REML) (default is maximum-likelihood).")
-#advancedGroup.add_option("-e", "--efile", dest="saveEig", help="Save eigendecomposition to this file.")
-advancedGroup.add_option("--eigen", dest="eigenfile",
- help="The location of the precomputed eigendecomposition for the kinship file. These can be computed with pylmmKinship.py.")
-advancedGroup.add_option("--noMean", dest="noMean", default=False,action="store_true",
- help="This option only applies when --cofile is used. When covfile is provided, the program will automatically add a global mean covariate to the model unless this option is specified.")
-
-basicGroup.add_option("-t", "--nthreads", dest="numThreads", help="maximum number of threads to use")
-
-advancedGroup.add_option("-v", "--verbose",
- action="store_true", dest="verbose", default=False,
- help="Print extra info")
-
-# Experimental Group Options
-experimentalGroup.add_option("--kfile2", dest="kfile2",
- help="The location of a second kinship file. This file has the same format as the first kinship. This might be used if you want to correct for another form of confounding.")
-
-parser.add_option_group(basicGroup)
-parser.add_option_group(advancedGroup)
-parser.add_option_group(experimentalGroup)
-
-(options, args) = parser.parse_args()
-
-import sys
-import os
-import numpy as np
-from scipy import linalg
-from pylmm.lmm import LMM
-from pylmm import input
-
-import multiprocessing as mp # Multiprocessing is part of the Python stdlib
-import Queue
-
-if len(args) != 1:
- parser.print_help()
- sys.exit()
-
-outFile = args[0]
-
-if not options.tfile and not options.bfile and not options.emmaFile:
-#if not options.pfile and not options.tfile and not options.bfile:
- parser.error("You must provide at least one PLINK input file base (--tfile or --bfile) or an EMMA formatted file (--emmaSNP).")
-if not options.kfile:
- parser.error("Please provide a pre-computed kinship file")
-
-numThreads = None
-if options.numThreads:
- numThreads = int(options.numThreads)
-
-# READING PLINK input
-if options.verbose: sys.stderr.write("Reading SNP input...\n")
-if options.bfile: IN = input.plink(options.bfile,type='b', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-elif options.tfile: IN = input.plink(options.tfile,type='t', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-#elif options.pfile: IN = input.plink(options.pfile,type='p', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-elif options.emmaFile: IN = input.plink(options.emmaFile,type='emma', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-else: parser.error("You must provide at least one PLINK input file base")
-
-if not os.path.isfile(options.phenoFile or IN.fbase + '.phenos') and not os.path.isfile(options.emmaPheno):
- parser.error("No .pheno file exist for %s. Please provide a phenotype file using the --phenofile or --emmaPHENO argument." % (options.phenoFile or IN.fbase + '.phenos'))
-
-# Read the emma phenotype file if provided.
-# Format should be rows are phenotypes and columns are individuals.
-if options.emmaPheno:
- f = open(options.emmaPheno,'r')
- P = []
- for line in f:
- v = line.strip().split()
- p = []
- for x in v:
- try:
- p.append(float(x))
- except: p.append(np.nan)
- P.append(p)
- f.close()
- IN.phenos = np.array(P).T
-
-# READING Covariate File
-if options.covfile:
- if options.verbose:
- sys.stderr.write("Reading covariate file...\n")
- P = IN.getCovariates(options.covfile)
- if options.noMean:
- X0 = P
- else:
- X0 = np.hstack([np.ones((IN.phenos.shape[0],1)),P])
-elif options.emmaCov:
- if options.verbose:
- sys.stderr.write("Reading covariate file...\n")
- P = IN.getCovariatesEMMA(options.emmaCov)
- if options.noMean:
- X0 = P
- else:
- X0 = np.hstack([np.ones((IN.phenos.shape[0],1)),P])
-else:
- X0 = np.ones((IN.phenos.shape[0],1))
-
-if np.isnan(X0).sum():
- parser.error("The covariate file %s contains missing values. At this time we are not dealing with this case. Either remove those individuals with missing values or replace them in some way.")
-
-# READING Kinship - major bottleneck for large datasets
-if options.verbose: sys.stderr.write("Reading kinship...\n")
-begin = time.time()
-# This method seems to be the fastest and works if you already know the size of the matrix
-if options.kfile[-3:] == '.gz':
- import gzip
- f = gzip.open(options.kfile,'r')
- F = f.read() # might exhaust mem if the file is huge
- K = np.fromstring(F,sep=' ') # Assume that space separated
- f.close()
-else:
- K = np.fromfile(open(options.kfile,'r'),sep=" ")
-K.resize((len(IN.indivs),len(IN.indivs)))
-end = time.time()
-# Other slower ways
-#K = np.loadtxt(options.kfile)
-#K = np.genfromtxt(options.kfile)
-if options.verbose: sys.stderr.write("Read the %d x %d kinship matrix in %0.3fs \n" % (K.shape[0],K.shape[1],end-begin))
-
-if options.kfile2:
- if options.verbose: sys.stderr.write("Reading second kinship...\n")
- begin = time.time()
- # This method seems to be the fastest and works if you already know the size of the matrix
- if options.kfile2[-3:] == '.gz':
- import gzip
- f = gzip.open(options.kfile2,'r')
- F = f.read() # might exhaust mem if the file is huge
- K2 = np.fromstring(F,sep=' ') # Assume that space separated
- f.close()
- else: K2 = np.fromfile(open(options.kfile2,'r'),sep=" ")
- K2.resize((len(IN.indivs),len(IN.indivs)))
- end = time.time()
- if options.verbose: sys.stderr.write("Read the %d x %d second kinship matrix in %0.3fs \n" % (K2.shape[0],K2.shape[1],end-begin))
-
-# PROCESS the phenotype data -- Remove missing phenotype values
-# Keep will now index into the "full" data to select what we keep (either everything or a subset of non missing data
-Y = IN.phenos[:,options.pheno]
-v = np.isnan(Y)
-keep = True - v
-if v.sum():
- if options.verbose: sys.stderr.write("Cleaning the phenotype vector by removing %d individuals...\n" % (v.sum()))
- Y = Y[keep]
- X0 = X0[keep,:]
- K = K[keep,:][:,keep]
- if options.kfile2: K2 = K2[keep,:][:,keep]
- Kva = []
- Kve = []
-
-# Only load the decomposition if we did not remove individuals.
-# Otherwise it would not be correct and we would have to compute it again.
-if not v.sum() and options.eigenfile:
- if options.verbose: sys.stderr.write("Loading pre-computed eigendecomposition...\n")
- Kva = np.load(options.eigenfile + ".Kva")
- Kve = np.load(options.eigenfile + ".Kve")
-else:
- Kva = []
- Kve = []
-
-# CREATE LMM object for association
-n = K.shape[0]
-if not options.kfile2: L = LMM(Y,K,Kva,Kve,X0,verbose=options.verbose)
-else: L = LMM_withK2(Y,K,Kva,Kve,X0,verbose=options.verbose,K2=K2)
-
-# Fit the null model -- if refit is true we will refit for each SNP, so no reason to run here
-if not options.refit:
- if options.verbose: sys.stderr.write("Computing fit for null model\n")
- L.fit()
- if options.verbose and not options.kfile2: sys.stderr.write("\t heritability=%0.3f, sigma=%0.3f\n" % (L.optH,L.optSigma))
- if options.verbose and options.kfile2: sys.stderr.write("\t heritability=%0.3f, sigma=%0.3f, w=%0.3f\n" % (L.optH,L.optSigma,L.optW))
-
-def compute_snp(collect):
- snp = collect[0]
- id = collect[1]
- # result = []
- # Check SNPs for missing values
- x = snp[keep].reshape((n,1)) # all the SNPs
- v = np.isnan(x).reshape((-1,))
- if v.sum():
- keeps = True - v
- xs = x[keeps,:]
- if keeps.sum() <= 1 or xs.var() <= 1e-6:
- # PS.append(np.nan)
- # TS.append(np.nan)
- # result.append(formatResult(id,np.nan,np.nan,np.nan,np.nan))
- # continue
- return formatResult(id,np.nan,np.nan,np.nan,np.nan)
-
- # Its ok to center the genotype - I used options.normalizeGenotype to
- # force the removal of missing genotypes as opposed to replacing them with MAF.
- if not options.normalizeGenotype:
- xs = (xs - xs.mean()) / np.sqrt(xs.var())
- Ys = Y[keeps]
- X0s = X0[keeps,:]
- Ks = K[keeps,:][:,keeps]
- if options.kfile2:
- K2s = K2[keeps,:][:,keeps]
- Ls = LMM_withK2(Ys,Ks,X0=X0s,verbose=options.verbose,K2=K2s)
- else:
- Ls = LMM(Ys,Ks,X0=X0s,verbose=options.verbose)
- if options.refit:
- Ls.fit(X=xs,REML=options.REML)
- else:
- #try:
- Ls.fit(REML=options.REML)
- #except: pdb.set_trace()
- ts,ps,beta,betaVar = Ls.association(xs,REML=options.REML,returnBeta=True)
- else:
- if x.var() == 0:
- # PS.append(np.nan)
- # TS.append(np.nan)
- # result.append(formatResult(id,np.nan,np.nan,np.nan,np.nan)) # writes nan values
- return formatResult(id,np.nan,np.nan,np.nan,np.nan)
- # continue
-
- if options.refit:
- L.fit(X=x,REML=options.REML)
- # This is where it happens
- ts,ps,beta,betaVar = L.association(x,REML=options.REML,returnBeta=True)
-
- return formatResult(id,beta,np.sqrt(betaVar).sum(),ts,ps)
- # PS.append(ps)
- # TS.append(ts)
- # return len(result)
- # compute.q.put(result)
- # return None
-
-def f_init(q):
- compute_snp.q = q
-
-# Set up the pool
-# mp.set_start_method('spawn')
-q = mp.Queue()
-p = mp.Pool(numThreads, f_init, [q])
-collect = []
-
-# Buffers for pvalues and t-stats
-# PS = []
-# TS = []
-count = 0
-out = open(outFile,'w')
-printOutHead()
-
-for snp_id in IN:
- count += 1
- if count % 1000 == 0:
- if options.verbose:
- sys.stderr.write("At SNP %d\n" % count)
- # if count>8000 :
- # break # for testing only
- if count % 100 == 0:
- for line in p.imap(compute_snp,collect):
- out.write(line)
- collect = []
-
- collect.append(snp_id)
-for line in p.imap(compute_snp,collect):
- out.write(line)
-
-
diff --git a/wqflask/wqflask/my_pylmm/scripts/pylmmKinship.py b/wqflask/wqflask/my_pylmm/scripts/pylmmKinship.py
deleted file mode 100755
index c9a73ece..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/pylmmKinship.py
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/usr/bin/python
-
-# pylmm is a python-based linear mixed-model solver with applications to GWAS
-
-# Copyright (C) 2013 Nicholas A. Furlotte (nick.furlotte@gmail.com)
-
-#The program is free for academic use. Please contact Nick Furlotte
-#<nick.furlotte@gmail.com> if you are interested in using the software for
-#commercial purposes.
-
-#The software must not be modified and distributed without prior
-#permission of the author.
-
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-#EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-#PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-#PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-#NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import sys
-import pdb
-
-from optparse import OptionParser,OptionGroup
-usage = """usage: %prog [options] --[tfile | bfile] plinkFileBase outfile
-
-"""
-
-parser = OptionParser(usage=usage)
-
-basicGroup = OptionGroup(parser, "Basic Options")
-#advancedGroup = OptionGroup(parser, "Advanced Options")
-
-#basicGroup.add_option("--pfile", dest="pfile",
-# help="The base for a PLINK ped file")
-basicGroup.add_option("--tfile", dest="tfile",
- help="The base for a PLINK tped file")
-basicGroup.add_option("--bfile", dest="bfile",
- help="The base for a PLINK binary ped file")
-basicGroup.add_option("--emmaSNP", dest="emmaFile", default=None,
- help="For backwards compatibility with emma, we allow for \"EMMA\" file formats. This is just a text file with individuals on the rows and snps on the columns.")
-basicGroup.add_option("--emmaNumSNPs", dest="numSNPs", type="int", default=0,
- help="When providing the emmaSNP file you need to specify how many snps are in the file")
-
-basicGroup.add_option("-e", "--efile", dest="saveEig", help="Save eigendecomposition to this file.")
-basicGroup.add_option("-n", default=1000,dest="computeSize", type="int", help="The maximum number of SNPs to read into memory at once (default 1000). This is important when there is a large number of SNPs, because memory could be an issue.")
-basicGroup.add_option("-t", "--nthreads", dest="numThreads", help="maximum number of threads to use")
-
-basicGroup.add_option("-v", "--verbose",
- action="store_true", dest="verbose", default=False,
- help="Print extra info")
-
-parser.add_option_group(basicGroup)
-#parser.add_option_group(advancedGroup)
-
-(options, args) = parser.parse_args()
-if len(args) != 1:
- parser.print_help()
- sys.exit()
-
-outFile = args[0]
-
-import sys
-import os
-import numpy as np
-from scipy import linalg
-from pylmm.lmm import calculateKinship
-from pylmm import input
-import multiprocessing as mp # Multiprocessing is part of the Python stdlib
-import Queue
-
-if not options.tfile and not options.bfile and not options.emmaFile:
- parser.error("You must provide at least one PLINK input file base (--tfile or --bfile) or an emma formatted file (--emmaSNP).")
-
-numThreads = None
-if options.numThreads:
- numThreads = int(options.numThreads)
-
-if options.verbose: sys.stderr.write("Reading PLINK input...\n")
-if options.bfile: IN = input.plink(options.bfile,type='b')
-elif options.tfile: IN = input.plink(options.tfile,type='t')
-#elif options.pfile: IN = input.plink(options.pfile,type='p')
-elif options.emmaFile:
- if not options.numSNPs: parser.error("You must provide the number of SNPs when specifying an emma formatted file.")
- IN = input.plink(options.emmaFile,type='emma')
-else: parser.error("You must provide at least one PLINK input file base (--tfile or --bfile) or an emma formatted file (--emmaSNP).")
-
-def compute_W(job):
- """
- Read 1000 SNPs at a time into matrix and return the result
- """
- n = len(IN.indivs)
- m = options.computeSize
- W = np.ones((n,m)) * np.nan # W matrix has dimensions individuals x SNPs (initially all NaNs)
- for j in range(0,options.computeSize):
- row = job*m + j
- if row >= IN.numSNPs:
- W = W[:,range(0,j)]
- break
- snp,id = IN.next()
- if snp.var() == 0:
- continue
- W[:,j] = snp # set row to list of SNPs
- return W
-
-def compute_dgemm(job,W):
- """
- Compute Kinship(W)*j
-
- For every set of SNPs dgemm is used to multiply matrices T(W)*W
- """
- res = None
- try:
- res = linalg.fblas.dgemm(alpha=1.,a=W.T,b=W.T,trans_a=True,trans_b=False)
- except AttributeError:
- res = np.dot(W,W.T)
- compute_dgemm.q.put([job,res])
- return job
-
-def f_init(q):
- compute_dgemm.q = q
-
-n = len(IN.indivs)
-# m = options.computeSize
-# jobsize=m
-
-IN.getSNPIterator()
-# Annoying hack to get around the fact that it is expensive to determine the number of SNPs in an emma file
-if options.emmaFile: IN.numSNPs = options.numSNPs
-# i = 0
-
-# mp.set_start_method('spawn')
-q = mp.Queue()
-p = mp.Pool(numThreads, f_init, [q])
-iterations = IN.numSNPs/options.computeSize+1
-# jobs = range(0,8) # range(0,iterations)
-
-results = []
-
-K = np.zeros((n,n)) # The Kinship matrix has dimension individuals x individuals
-
-completed = 0
-
-# for job in range(8):
-for job in range(iterations):
- if options.verbose:
- sys.stderr.write("Processing job %d first %d SNPs\n" % (job, ((job+1)*options.computeSize)))
- W = compute_W(job)
- results.append(p.apply_async(compute_dgemm, (job,W)))
- # Do we have a result?
- try:
- j,x = q.get_nowait()
- if options.verbose: sys.stderr.write("Job "+str(j)+" finished\n")
- K_j = x
- # print j,K_j[:,0]
- K = K + K_j
- completed += 1
- except Queue.Empty:
- pass
-
-for job in range(len(results)-completed):
- j,x = q.get()
- if options.verbose: sys.stderr.write("Job "+str(j)+" finished\n")
- K_j = x
- # print j,K_j[:,0]
- K = K + K_j
-
-K = K / float(IN.numSNPs)
-if options.verbose: sys.stderr.write("Saving Kinship file to %s\n" % outFile)
-np.savetxt(outFile,K)
-
-if options.saveEig:
- if options.verbose: sys.stderr.write("Obtaining Eigendecomposition\n")
- Kva,Kve = linalg.eigh(K)
- if options.verbose: sys.stderr.write("Saving eigendecomposition to %s.[kva | kve]\n" % outFile)
- np.savetxt(outFile+".kva",Kva)
- np.savetxt(outFile+".kve",Kve)
-
-
-
-
diff --git a/wqflask/wqflask/my_pylmm/scripts/run_pylmm.py b/wqflask/wqflask/my_pylmm/scripts/run_pylmm.py
deleted file mode 100755
index 0c96d986..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/run_pylmm.py
+++ /dev/null
@@ -1,77 +0,0 @@
-from __future__ import absolute_import, print_function, division
-
-from base import data_set
-from base.species import TheSpecies
-
- def run(dataset_name, vals, temp_uuid):
- """Generates p-values for each marker"""
-
- tempdata = temp_data.TempData(temp_uuid)
-
- dataset = data_set.create_dataset(dataset_name)
- species = TheSpecies(dataset=dataset)
-
- samples = [] # Want only ones with values
- vals = vals
-
- for sample in dataset.group.samplelist:
- samples.append(str(sample))
-
- gen_data(dataset, vals, tempdata)
-
-
- def gen_data(dataset, vals)
- dataset.group.get_markers()
-
- pheno_vector = np.array([val == "x" and np.nan or float(val) for val in vals])
-
- if dataset.group.species == "human":
- p_values, t_stats = gen_human_results(pheno_vector, tempdata)
- else:
- genotype_data = [marker['genotypes'] for marker in dataset.group.markers.markers]
-
- no_val_samples = self.identify_empty_samples()
- trimmed_genotype_data = self.trim_genotypes(genotype_data, no_val_samples)
-
- genotype_matrix = np.array(trimmed_genotype_data).T
-
- #print("pheno_vector: ", pf(pheno_vector))
- #print("genotype_matrix: ", pf(genotype_matrix))
- #print("genotype_matrix.shape: ", pf(genotype_matrix.shape))
-
- t_stats, p_values = lmm.run(
- pheno_vector,
- genotype_matrix,
- restricted_max_likelihood=True,
- refit=False,
- temp_data=tempdata
- )
- #print("p_values:", p_values)
-
- self.dataset.group.markers.add_pvalues(p_values)
- return self.dataset.group.markers.markers
-
-
- def gen_human_results(self, pheno_vector, tempdata):
- file_base = os.path.join(webqtlConfig.PYLMM_PATH, self.dataset.group.name)
-
- plink_input = input.plink(file_base, type='b')
- input_file_name = os.path.join(webqtlConfig.SNP_PATH, self.dataset.group.name + ".snps.gz")
-
- pheno_vector = pheno_vector.reshape((len(pheno_vector), 1))
- covariate_matrix = np.ones((pheno_vector.shape[0],1))
- kinship_matrix = np.fromfile(open(file_base + '.kin','r'),sep=" ")
- kinship_matrix.resize((len(plink_input.indivs),len(plink_input.indivs)))
-
- p_values, t_stats = lmm.run_human(
- pheno_vector,
- covariate_matrix,
- input_file_name,
- kinship_matrix,
- loading_progress=tempdata
- )
-
- return p_values, t_stats
-
-if __name__ == '__main__':
- run(dataset_name, vals, temp_uuid) \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/css/charts.css b/wqflask/wqflask/static/new/css/charts.css
deleted file mode 100644
index 0ce88c15..00000000
--- a/wqflask/wqflask/static/new/css/charts.css
+++ /dev/null
@@ -1,28 +0,0 @@
-body {
- font-family: sans-serif;
-}
-
-svg {
- margin-top: 10px;
- margin-left: 50px;
-}
-
-.line {
- stroke-width: 1;
- fill: none;
-}
-
-text {
- font-family: sans-serif;
- font-size: 11pt;
-}
-
-p {
- font-family: sans-serif;
- font-size: 12pt;
-}
-
-p#caption {
- margin-left: 100px;
- width: 500px;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/css/interval_mapping.css b/wqflask/wqflask/static/new/css/interval_mapping.css
deleted file mode 100755
index 4a55d2e3..00000000
--- a/wqflask/wqflask/static/new/css/interval_mapping.css
+++ /dev/null
@@ -1,32 +0,0 @@
-.chr_interval_map .y_axis path,
-.chr_interval_map .y_axis line {
- fill: none;
- stroke: black;
- shape-rendering: crispEdges;
-}
-.chr_interval_map .y_axis text {
- font-family: sans-serif;
- font-size: 14px;
-}
-
-.chr_interval_map .x_axis path,
-.chr_interval_map .x_axis line {
- fill: none;
- stroke: black;
- shape-rendering: crispEdges;
-}
-.chr_interval_map .x_axis text {
- text-anchor: end;
- font-family: sans-serif;
- font-size: 8px;
-}
-/*
-interval_map rect {
- stroke: WhiteSmoke;
- fill: white;
-}
-
-interval_map path {
- stroke: steelblue;
- stroke-width: 1;
-}*/ \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/css/table.css b/wqflask/wqflask/static/new/css/table.css
deleted file mode 100755
index 1910ef88..00000000
--- a/wqflask/wqflask/static/new/css/table.css
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Adapted from http://coding.smashingmagazine.com/2008/08/13/top-10-css-table-designs/ */
-
-.one-column-emphasis
-{
- font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
- font-size: 12px;
- line-height: 1.6em;
- margin: 45px;
- width: 480px;
- text-align: left;
- border-collapse: collapse;
-}
-.one-column-emphasis th
-{
- font-size: 14px;
- font-weight: normal;
- padding: 12px 15px;
- color: #039;
-}
-.one-column-emphasis td
-{
- padding: 10px 15px;
- color: #669;
- border-top: 1px solid #e8edff;
-}
-.oce-first
-{
- background: #d0dafd;
- border-right: 10px solid transparent;
- border-left: 10px solid transparent;
-}
-.one-column-emphasis tr:hover td
-{
- color: #339;
- background: #eff2ff;
-}
diff --git a/wqflask/wqflask/static/new/javascript/chr_interval_map.coffee b/wqflask/wqflask/static/new/javascript/chr_interval_map.coffee
deleted file mode 100644
index e1993032..00000000
--- a/wqflask/wqflask/static/new/javascript/chr_interval_map.coffee
+++ /dev/null
@@ -1,230 +0,0 @@
-class Chr_Interval_Map
- constructor: (@plot_height, @plot_width, @chr) ->
- @qtl_results = js_data.qtl_results
- console.log("qtl_results are:", @qtl_results)
- console.log("chr is:", @chr)
-
- @get_max_chr()
-
- @filter_qtl_results()
- console.log("filtered results:", @these_results)
- @get_qtl_count()
-
- @x_coords = []
- @y_coords = []
- @marker_names = []
-
- console.time('Create coordinates')
- @create_coordinates()
- console.log("@x_coords: ", @x_coords)
- console.log("@y_coords: ", @y_coords)
- console.timeEnd('Create coordinates')
-
- # Buffer to allow for the ticks/labels to be drawn
- @x_buffer = @plot_width/30
- @y_buffer = @plot_height/20
-
- @x_max = d3.max(@x_coords)
- @y_max = d3.max(@y_coords) * 1.2
-
- @y_threshold = @get_lod_threshold()
-
- @svg = @create_svg()
-
- @plot_coordinates = _.zip(@x_coords, @y_coords, @marker_names)
- console.log("coordinates:", @plot_coordinates)
-
- @plot_height -= @y_buffer
-
- @create_scales()
-
- console.time('Create graph')
- @create_graph()
- console.timeEnd('Create graph')
-
- get_max_chr: () ->
- @max_chr = 0
- for key of js_data.chromosomes
- console.log("key is:", key)
- if parseInt(key) > @max_chr
- @max_chr = parseInt(key)
-
- filter_qtl_results: () ->
- @these_results = []
- this_chr = 100
- for result in @qtl_results
- if result.chr == "X"
- this_chr = @max_chr
- else
- this_chr = result.chr
- console.log("this_chr is:", this_chr)
- console.log("@chr[0] is:", parseInt(@chr[0]))
- if this_chr > parseInt(@chr[0])
- break
- if parseInt(this_chr) == parseInt(@chr[0])
- @these_results.push(result)
-
- get_qtl_count: () ->
- high_qtl_count = 0
- for result in @these_results
- if result.lrs_value > 1
- high_qtl_count += 1
- console.log("high_qtl_count:", high_qtl_count)
-
- #if high_qtl_count > 10000
- @y_axis_filter = 2
- #else if high_qtl_count > 1000
- # @y_axis_filter = 1
- #else
- # @y_axis_filter = 0
-
- create_coordinates: () ->
- for result in @these_results
- @x_coords.push(parseFloat(result.Mb))
- @y_coords.push(result.lrs_value)
- @marker_names.push(result.name)
-
- create_svg: () ->
- svg = d3.select("#topchart")
- .append("svg")
- .attr("class", "chr_interval_map")
- .attr("width", @plot_width+@x_buffer)
- .attr("height", @plot_height+@y_buffer)
- .append("g")
- return svg
-
- create_scales: () ->
- console.log("chr[1] is:", @chr[1])
- @x_scale = d3.scale.linear()
- .domain([0, @chr[1]])
- .range([@x_buffer, @plot_width])
- @y_scale = d3.scale.linear()
- .domain([0, @y_max])
- .range([@plot_height, @y_buffer])
-
- get_lod_threshold: () ->
- if @y_max/2 > 2
- return @y_max/2
- else
- return 2
-
- create_graph: () ->
- @add_border()
- @add_x_axis()
- @add_y_axis()
- @add_title()
- @add_back_button()
- @add_path()
-
- add_border: () ->
- border_coords = [[@y_buffer, @plot_height, @x_buffer, @x_buffer],
- [@y_buffer, @plot_height, @plot_width, @plot_width],
- [@y_buffer, @y_buffer, @x_buffer, @plot_width],
- [@plot_height, @plot_height, @x_buffer, @plot_width]]
-
- @svg.selectAll("line")
- .data(border_coords)
- .enter()
- .append("line")
- .attr("y1", (d) =>
- return d[0]
- )
- .attr("y2", (d) =>
- return d[1]
- )
- .attr("x1", (d) =>
- return d[2]
- )
- .attr("x2", (d) =>
- return d[3]
- )
- .style("stroke", "#000")
-
- add_x_axis: () ->
- @xAxis = d3.svg.axis()
- .scale(@x_scale)
- .orient("bottom")
- .ticks(20)
-
- @xAxis.tickFormat((d) =>
- d3.format("d") #format as integer
- return (d)
- )
-
- @svg.append("g")
- .attr("class", "x_axis")
- .attr("transform", "translate(0," + @plot_height + ")")
- .call(@xAxis)
- .selectAll("text")
- .attr("text-anchor", "right")
- .attr("font-size", "12px")
- .attr("dx", "-1.6em")
- .attr("transform", (d) =>
- return "translate(-12,0) rotate(-90)"
- )
-
- add_y_axis: () ->
- @yAxis = d3.svg.axis()
- .scale(@y_scale)
- .orient("left")
- .ticks(5)
-
- @svg.append("g")
- .attr("class", "y_axis")
- .attr("transform", "translate(" + @x_buffer + ",0)")
- .call(@yAxis)
-
- add_title: () ->
- @svg.append("text")
- .attr("class", "title")
- .text("Chr " + @chr[0])
- .attr("x", (d) =>
- return (@plot_width + @x_buffer)/2
- )
- .attr("y", @y_buffer + 20)
- .attr("dx", "0em")
- .attr("text-anchor", "middle")
- .attr("font-family", "sans-serif")
- .attr("font-size", "18px")
- .attr("fill", "black")
-
- add_back_button: () ->
- @svg.append("text")
- .attr("class", "back")
- .text("Return to full view")
- .attr("x", @x_buffer*2)
- .attr("y", @y_buffer/2)
- .attr("dx", "0em")
- .attr("text-anchor", "middle")
- .attr("font-family", "sans-serif")
- .attr("font-size", "18px")
- .attr("cursor", "pointer")
- .attr("fill", "black")
- .on("click", @return_to_full_view)
-
- add_path: () ->
- line_function = d3.svg.line()
- .x( (d) => return @x_scale(d[0]))
- .y( (d) => return @y_scale(d[1]))
- .interpolate("linear")
-
- line_graph = @svg.append("path")
- .attr("d", line_function(@plot_coordinates))
- .attr("stroke", "blue")
- .attr("stroke-width", 1)
- .attr("fill", "none")
-
- return_to_full_view: () ->
- $('#topchart').remove()
- $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>')
- create_interval_map()
-
- show_marker_in_table: (marker_info) ->
- console.log("in show_marker_in_table")
- ### Searches for the select marker in the results table below ###
- if marker_info
- marker_name = marker_info[2]
- $("#qtl_results_filter").find("input:first").val(marker_name).change()
- #else
- # marker_name = ""
- #$("#qtl_results_filter").find("input:first").val(marker_name).change()
diff --git a/wqflask/wqflask/static/new/javascript/chr_interval_map.js b/wqflask/wqflask/static/new/javascript/chr_interval_map.js
deleted file mode 100644
index d1caed7b..00000000
--- a/wqflask/wqflask/static/new/javascript/chr_interval_map.js
+++ /dev/null
@@ -1,224 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var Chr_Interval_Map;
-
-Chr_Interval_Map = (function() {
- function Chr_Interval_Map(plot_height, plot_width, chr) {
- this.plot_height = plot_height;
- this.plot_width = plot_width;
- this.chr = chr;
- this.qtl_results = js_data.qtl_results;
- console.log("qtl_results are:", this.qtl_results);
- console.log("chr is:", this.chr);
- this.get_max_chr();
- this.filter_qtl_results();
- console.log("filtered results:", this.these_results);
- this.get_qtl_count();
- this.x_coords = [];
- this.y_coords = [];
- this.marker_names = [];
- console.time('Create coordinates');
- this.create_coordinates();
- console.log("@x_coords: ", this.x_coords);
- console.log("@y_coords: ", this.y_coords);
- console.timeEnd('Create coordinates');
- this.x_buffer = this.plot_width / 30;
- this.y_buffer = this.plot_height / 20;
- this.x_max = d3.max(this.x_coords);
- this.y_max = d3.max(this.y_coords) * 1.2;
- this.y_threshold = this.get_lod_threshold();
- this.svg = this.create_svg();
- this.plot_coordinates = _.zip(this.x_coords, this.y_coords, this.marker_names);
- console.log("coordinates:", this.plot_coordinates);
- this.plot_height -= this.y_buffer;
- this.create_scales();
- console.time('Create graph');
- this.create_graph();
- console.timeEnd('Create graph');
- }
-
- Chr_Interval_Map.prototype.get_max_chr = function() {
- var key, _results;
- this.max_chr = 0;
- _results = [];
- for (key in js_data.chromosomes) {
- console.log("key is:", key);
- if (parseInt(key) > this.max_chr) {
- _results.push(this.max_chr = parseInt(key));
- } else {
- _results.push(void 0);
- }
- }
- return _results;
- };
-
- Chr_Interval_Map.prototype.filter_qtl_results = function() {
- var result, this_chr, _i, _len, _ref, _results;
- this.these_results = [];
- this_chr = 100;
- _ref = this.qtl_results;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- if (result.chr === "X") {
- this_chr = this.max_chr;
- } else {
- this_chr = result.chr;
- }
- console.log("this_chr is:", this_chr);
- console.log("@chr[0] is:", parseInt(this.chr[0]));
- if (this_chr > parseInt(this.chr[0])) {
- break;
- }
- if (parseInt(this_chr) === parseInt(this.chr[0])) {
- _results.push(this.these_results.push(result));
- } else {
- _results.push(void 0);
- }
- }
- return _results;
- };
-
- Chr_Interval_Map.prototype.get_qtl_count = function() {
- var high_qtl_count, result, _i, _len, _ref;
- high_qtl_count = 0;
- _ref = this.these_results;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- if (result.lrs_value > 1) {
- high_qtl_count += 1;
- }
- }
- console.log("high_qtl_count:", high_qtl_count);
- return this.y_axis_filter = 2;
- };
-
- Chr_Interval_Map.prototype.create_coordinates = function() {
- var result, _i, _len, _ref, _results;
- _ref = this.these_results;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- this.x_coords.push(parseFloat(result.Mb));
- this.y_coords.push(result.lrs_value);
- _results.push(this.marker_names.push(result.name));
- }
- return _results;
- };
-
- Chr_Interval_Map.prototype.create_svg = function() {
- var svg;
- svg = d3.select("#topchart").append("svg").attr("class", "chr_interval_map").attr("width", this.plot_width + this.x_buffer).attr("height", this.plot_height + this.y_buffer).append("g");
- return svg;
- };
-
- Chr_Interval_Map.prototype.create_scales = function() {
- console.log("chr[1] is:", this.chr[1]);
- this.x_scale = d3.scale.linear().domain([0, this.chr[1]]).range([this.x_buffer, this.plot_width]);
- return this.y_scale = d3.scale.linear().domain([0, this.y_max]).range([this.plot_height, this.y_buffer]);
- };
-
- Chr_Interval_Map.prototype.get_lod_threshold = function() {
- if (this.y_max / 2 > 2) {
- return this.y_max / 2;
- } else {
- return 2;
- }
- };
-
- Chr_Interval_Map.prototype.create_graph = function() {
- this.add_border();
- this.add_x_axis();
- this.add_y_axis();
- this.add_title();
- this.add_back_button();
- return this.add_path();
- };
-
- Chr_Interval_Map.prototype.add_border = function() {
- var border_coords;
- border_coords = [[this.y_buffer, this.plot_height, this.x_buffer, this.x_buffer], [this.y_buffer, this.plot_height, this.plot_width, this.plot_width], [this.y_buffer, this.y_buffer, this.x_buffer, this.plot_width], [this.plot_height, this.plot_height, this.x_buffer, this.plot_width]];
- return this.svg.selectAll("line").data(border_coords).enter().append("line").attr("y1", (function(_this) {
- return function(d) {
- return d[0];
- };
- })(this)).attr("y2", (function(_this) {
- return function(d) {
- return d[1];
- };
- })(this)).attr("x1", (function(_this) {
- return function(d) {
- return d[2];
- };
- })(this)).attr("x2", (function(_this) {
- return function(d) {
- return d[3];
- };
- })(this)).style("stroke", "#000");
- };
-
- Chr_Interval_Map.prototype.add_x_axis = function() {
- this.xAxis = d3.svg.axis().scale(this.x_scale).orient("bottom").ticks(20);
- this.xAxis.tickFormat((function(_this) {
- return function(d) {
- d3.format("d");
- return d;
- };
- })(this));
- return this.svg.append("g").attr("class", "x_axis").attr("transform", "translate(0," + this.plot_height + ")").call(this.xAxis).selectAll("text").attr("text-anchor", "right").attr("font-size", "12px").attr("dx", "-1.6em").attr("transform", (function(_this) {
- return function(d) {
- return "translate(-12,0) rotate(-90)";
- };
- })(this));
- };
-
- Chr_Interval_Map.prototype.add_y_axis = function() {
- this.yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5);
- return this.svg.append("g").attr("class", "y_axis").attr("transform", "translate(" + this.x_buffer + ",0)").call(this.yAxis);
- };
-
- Chr_Interval_Map.prototype.add_title = function() {
- return this.svg.append("text").attr("class", "title").text("Chr " + this.chr[0]).attr("x", (function(_this) {
- return function(d) {
- return (_this.plot_width + _this.x_buffer) / 2;
- };
- })(this)).attr("y", this.y_buffer + 20).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px").attr("fill", "black");
- };
-
- Chr_Interval_Map.prototype.add_back_button = function() {
- return this.svg.append("text").attr("class", "back").text("Return to full view").attr("x", this.x_buffer * 2).attr("y", this.y_buffer / 2).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px").attr("cursor", "pointer").attr("fill", "black").on("click", this.return_to_full_view);
- };
-
- Chr_Interval_Map.prototype.add_path = function() {
- var line_function, line_graph;
- line_function = d3.svg.line().x((function(_this) {
- return function(d) {
- return _this.x_scale(d[0]);
- };
- })(this)).y((function(_this) {
- return function(d) {
- return _this.y_scale(d[1]);
- };
- })(this)).interpolate("linear");
- return line_graph = this.svg.append("path").attr("d", line_function(this.plot_coordinates)).attr("stroke", "blue").attr("stroke-width", 1).attr("fill", "none");
- };
-
- Chr_Interval_Map.prototype.return_to_full_view = function() {
- $('#topchart').remove();
- $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>');
- return create_interval_map();
- };
-
- Chr_Interval_Map.prototype.show_marker_in_table = function(marker_info) {
- var marker_name;
- console.log("in show_marker_in_table");
-
- /* Searches for the select marker in the results table below */
- if (marker_info) {
- marker_name = marker_info[2];
- return $("#qtl_results_filter").find("input:first").val(marker_name).change();
- }
- };
-
- return Chr_Interval_Map;
-
-})();
diff --git a/wqflask/wqflask/static/new/javascript/create_interval_map.coffee b/wqflask/wqflask/static/new/javascript/create_interval_map.coffee
deleted file mode 100644
index b01e2651..00000000
--- a/wqflask/wqflask/static/new/javascript/create_interval_map.coffee
+++ /dev/null
@@ -1,80 +0,0 @@
-create_interval_map = () ->
- h = 500
- w = 1200
- margin = {left:60, top:40, right:40, bottom: 40, inner:5}
- halfh = (h+margin.top+margin.bottom)
- totalh = halfh*2
- totalw = (w+margin.left+margin.right)
-
- # simplest use
- #d3.json "data.json", (data) ->
- mychart = lodchart().lodvarname("lod.hk")
- .height(h)
- .width(w)
- .margin(margin)
-
- data = js_data.json_data
-
- d3.select("div#topchart")
- .datum(data)
- .call(mychart)
-
- # grab chromosome rectangles; color pink on hover
- chrrect = mychart.chrSelect()
- chrrect.on "mouseover", ->
- d3.select(this).attr("fill", "#E9CFEC")
- .on "mouseout", (d,i) ->
- d3.select(this).attr("fill", ->
- return "#F1F1F9" if i % 2
- "#FBFBFF")
-
- # animate points at markers on click
- mychart.markerSelect()
- .on "click", (d) ->
- r = d3.select(this).attr("r")
- d3.select(this)
- .transition().duration(500).attr("r", r*3)
- .transition().duration(500).attr("r", r)
-
-create_interval_map()
-
-$("#export").click =>
-
- #Get d3 SVG element
- svg = $("#topchart").find("svg")[0]
-
- #Extract SVG text string
- svg_xml = (new XMLSerializer).serializeToString(svg)
- console.log("svg_xml:", svg_xml)
-
- #Set filename
- filename = "interval_map_" + js_data.this_trait
-
- #Make a form with the SVG data
- form = $("#exportform")
- form.find("#data").val(svg_xml)
- form.find("#filename").val(filename)
- form.submit()
-
-
-$("#export_pdf").click =>
-
- #$('#topchart').remove()
- #$('#chart_container').append('<div class="qtlcharts" id="topchart"></div>')
- #create_interval_map()
-
- #Get d3 SVG element
- svg = $("#topchart").find("svg")[0]
-
- #Extract SVG text string
- svg_xml = (new XMLSerializer).serializeToString(svg)
- console.log("svg_xml:", svg_xml)
-
- #Set filename
- filename = "interval_map_pdf"
-
- #Make a form with the SVG data
- form = $("#exportpdfform")
- form.find("#data").val(svg_xml)
- form.find("#filename").val(filename)
- form.submit()
diff --git a/wqflask/wqflask/static/new/javascript/create_interval_map.js b/wqflask/wqflask/static/new/javascript/create_interval_map.js
deleted file mode 100644
index b06a27a0..00000000
--- a/wqflask/wqflask/static/new/javascript/create_interval_map.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var create_interval_map;
-
-create_interval_map = function() {
- var chrrect, data, h, halfh, margin, mychart, totalh, totalw, w;
- h = 500;
- w = 1200;
- margin = {
- left: 60,
- top: 40,
- right: 40,
- bottom: 40,
- inner: 5
- };
- halfh = h + margin.top + margin.bottom;
- totalh = halfh * 2;
- totalw = w + margin.left + margin.right;
- mychart = lodchart().lodvarname("lod.hk").height(h).width(w).margin(margin);
- data = js_data.json_data;
- d3.select("div#topchart").datum(data).call(mychart);
- chrrect = mychart.chrSelect();
- chrrect.on("mouseover", function() {
- return d3.select(this).attr("fill", "#E9CFEC");
- }).on("mouseout", function(d, i) {
- return d3.select(this).attr("fill", function() {
- if (i % 2) {
- return "#F1F1F9";
- }
- return "#FBFBFF";
- });
- });
- return mychart.markerSelect().on("click", function(d) {
- var r;
- r = d3.select(this).attr("r");
- return d3.select(this).transition().duration(500).attr("r", r * 3).transition().duration(500).attr("r", r);
- });
-};
-
-create_interval_map();
-
-$("#export").click((function(_this) {
- return function() {
- var filename, form, svg, svg_xml;
- svg = $("#topchart").find("svg")[0];
- svg_xml = (new XMLSerializer).serializeToString(svg);
- console.log("svg_xml:", svg_xml);
- filename = "interval_map_" + js_data.this_trait;
- form = $("#exportform");
- form.find("#data").val(svg_xml);
- form.find("#filename").val(filename);
- return form.submit();
- };
-})(this));
-
-$("#export_pdf").click((function(_this) {
- return function() {
- var filename, form, svg, svg_xml;
- svg = $("#topchart").find("svg")[0];
- svg_xml = (new XMLSerializer).serializeToString(svg);
- console.log("svg_xml:", svg_xml);
- filename = "interval_map_pdf";
- form = $("#exportpdfform");
- form.find("#data").val(svg_xml);
- form.find("#filename").val(filename);
- return form.submit();
- };
-})(this));
diff --git a/wqflask/wqflask/static/new/javascript/interval_map_new.coffee b/wqflask/wqflask/static/new/javascript/interval_map_new.coffee
deleted file mode 100644
index d60b900d..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_map_new.coffee
+++ /dev/null
@@ -1,91 +0,0 @@
-create_interval_map = ->
- h = 500
- w = 1200
- margin = {left:60, top:40, right:40, bottom: 40, inner:5}
- halfh = (h+margin.top+margin.bottom)
- totalh = halfh*2
- totalw = (w+margin.left+margin.right)
-
- # simplest use
- #d3.json "data.json", (data) ->
- mychart = lodchart().lodvarname("lod.hk")
- .height(h)
- .width(w)
- .margin(margin)
-
- data = js_data.json_data
-
- d3.select("div#topchart")
- .datum(data)
- .call(mychart)
-
- # grab chromosome rectangles; color pink on hover
- chrrect = mychart.chrSelect()
- chrrect.on "mouseover", ->
- d3.select(this).attr("fill", "#E9CFEC")
- .on "mouseout", (d,i) ->
- d3.select(this).attr("fill", ->
- return "#F1F1F9" if i % 2
- "#FBFBFF")
-
- # animate points at markers on click
- mychart.markerSelect()
- .on "click", (d) ->
- r = d3.select(this).attr("r")
- d3.select(this)
- .transition().duration(500).attr("r", r*3)
- .transition().duration(500).attr("r", r)
-
-create_interval_map()
-
-$("#export").click =>
- #Get d3 SVG element
- svg = $("#topchart").find("svg")[0]
-
- #Extract SVG text string
- svg_xml = (new XMLSerializer).serializeToString(svg)
- console.log("svg_xml:", svg_xml)
-
- #Set filename
- filename = "manhattan_plot_" + js_data.this_trait
-
- #Make a form with the SVG data
- form = $("#exportform")
- form.find("#data").val(svg_xml)
- form.find("#filename").val(filename)
- form.submit()
-
-# two LOD charts within one SVG
-#d3.json "data.json", (data) ->
-# mychart_em = lodchart().lodvarname("lod.em")
-# .height(h)
-# .width(w)
-# .margin(margin)
-# .ylab("LOD score (by EM)")
-# .pointsize(1)
-# .nyticks(9)
-# .title("Standard interval mapping")
-# mychart_hk = lodchart().lodvarname("lod.hk")
-# .height(h)
-# .width(w)
-# .margin(margin)
-# .ylab("LOD score (by H-K)")
-# .linecolor("Crimson")
-# .yticks([0, 1, 2, 4, 6, 8])
-# .title("Haley-Knott regression")
-#
-# svg = d3.select("div#bottomchart")
-# .append("svg")
-# .attr("height", totalh)
-# .attr("width", totalw)
-#
-# chart1 = svg.append("g").attr("id", "chart1")
-#
-# chart2 = svg.append("g").attr("id", "chart2")
-# .attr("transform", "translate(0, #{halfh})")
-#
-# chart1.datum(data)
-# .call(mychart_em)
-#
-# chart2.datum(data)
-# .call(mychart_hk) \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/interval_map_new.js b/wqflask/wqflask/static/new/javascript/interval_map_new.js
deleted file mode 100644
index 002f592d..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_map_new.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var create_interval_map;
-
-create_interval_map = function() {
- var chrrect, data, h, halfh, margin, mychart, totalh, totalw, w;
- h = 500;
- w = 1200;
- margin = {
- left: 60,
- top: 40,
- right: 40,
- bottom: 40,
- inner: 5
- };
- halfh = h + margin.top + margin.bottom;
- totalh = halfh * 2;
- totalw = w + margin.left + margin.right;
- mychart = lodchart().lodvarname("lod.hk").height(h).width(w).margin(margin);
- data = js_data.json_data;
- d3.select("div#topchart").datum(data).call(mychart);
- chrrect = mychart.chrSelect();
- chrrect.on("mouseover", function() {
- return d3.select(this).attr("fill", "#E9CFEC");
- }).on("mouseout", function(d, i) {
- return d3.select(this).attr("fill", function() {
- if (i % 2) {
- return "#F1F1F9";
- }
- return "#FBFBFF";
- });
- });
- return mychart.markerSelect().on("click", function(d) {
- var r;
- r = d3.select(this).attr("r");
- return d3.select(this).transition().duration(500).attr("r", r * 3).transition().duration(500).attr("r", r);
- });
-};
-
-create_interval_map();
-
-$("#export").click((function(_this) {
- return function() {
- var filename, form, svg, svg_xml;
- svg = $("#topchart").find("svg")[0];
- svg_xml = (new XMLSerializer).serializeToString(svg);
- console.log("svg_xml:", svg_xml);
- filename = "manhattan_plot_" + js_data.this_trait;
- form = $("#exportform");
- form.find("#data").val(svg_xml);
- form.find("#filename").val(filename);
- return form.submit();
- };
-})(this));
diff --git a/wqflask/wqflask/static/new/javascript/interval_mapping.coffee b/wqflask/wqflask/static/new/javascript/interval_mapping.coffee
deleted file mode 100755
index 81db186b..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_mapping.coffee
+++ /dev/null
@@ -1,297 +0,0 @@
-$ ->
-
- class Interval_Map
- constructor: (@plot_height, @plot_width) ->
- @qtl_results = js_data.qtl_results
- console.log("qtl_results are:", @qtl_results)
- @chromosomes = js_data.chromosomes
-
- @total_length = 0
-
- @max_chr = @get_max_chr()
-
- @x_coords = []
- @y_coords = []
- @marker_names = []
- console.time('Create coordinates')
- @create_coordinates()
- console.log("@x_coords: ", @x_coords)
- console.log("@y_coords: ", @y_coords)
- console.timeEnd('Create coordinates')
- [@chr_lengths, @cumulative_chr_lengths] = @get_chr_lengths()
-
- # Buffer to allow for the ticks/labels to be drawn
- @x_buffer = @plot_width/30
- @y_buffer = @plot_height/20
-
- #@x_max = d3.max(@x_coords)
- @x_max = @total_length
- console.log("@x_max: ", @x_max)
- console.log("@x_buffer: ", @x_buffer)
- @y_max = d3.max(@y_coords) * 1.2
-
- @svg = @create_svg()
- @plot_coordinates = _.zip(@x_coords, @y_coords, @marker_names)
-
- @plot_height -= @y_buffer
- @create_scales()
- console.time('Create graph')
- @create_graph()
- console.timeEnd('Create graph')
-
- get_max_chr: () ->
- max_chr = 0
- for result in @qtl_results
- chr = parseInt(result.chr)
- if not _.isNaN(chr)
- if chr > max_chr
- max_chr = chr
- return max_chr
-
- get_chr_lengths: () ->
- ###
- #Gets a list of both individual and cumulative (the position of one on the graph
- #is its own length plus the lengths of all preceding chromosomes) lengths in order
- #to draw the vertical lines separating chromosomes and the chromosome labels
- #
- ###
-
- console.log("@chromosomes: ", @chromosomes)
-
- cumulative_chr_lengths = []
- chr_lengths = []
- total_length = 0
- for key of @chromosomes
- this_length = @chromosomes[key]
- chr_lengths.push(this_length)
- cumulative_chr_lengths.push(total_length + this_length)
- total_length += this_length
-
- console.log("chr_lengths: ", chr_lengths)
-
- return [chr_lengths, cumulative_chr_lengths]
-
- create_coordinates: () ->
- chr_lengths = []
- chr_seen = []
- for result in js_data.qtl_results
- if result.chr == "X"
- chr_length = parseFloat(@chromosomes[20])
- else
- chr_length = parseFloat(@chromosomes[result.chr])
- if not(result.chr in chr_seen)
- chr_seen.push(result.chr)
- chr_lengths.push(chr_length)
- if result.chr != "1"
- @total_length += parseFloat(chr_lengths[chr_lengths.length - 2])
- @x_coords.push(@total_length + parseFloat(result.Mb))
- @y_coords.push(result.lrs_value)
- @marker_names.push(result.name)
- @total_length += parseFloat(chr_lengths[chr_lengths.length-1])
- #console.log("chr_lengths: ", chr_lengths)
-
- create_svg: () ->
- svg = d3.select("#interval_map")
- .append("svg")
- .attr("class", "interval_map")
- .attr("width", @plot_width+@x_buffer)
- .attr("height", @plot_height+@y_buffer)
-
- return svg
-
- create_graph: () ->
- @add_border()
- @add_x_axis()
- @add_y_axis()
- @add_chr_lines()
- @fill_chr_areas()
- @add_chr_labels()
- @connect_markers()
-
- add_border: () ->
- border_coords = [[@y_buffer, @plot_height, @x_buffer, @x_buffer],
- [@y_buffer, @plot_height, @plot_width, @plot_width],
- [@y_buffer, @y_buffer, @x_buffer, @plot_width],
- [@plot_height, @plot_height, @x_buffer, @plot_width]]
-
- @svg.selectAll("line")
- .data(border_coords)
- .enter()
- .append("line")
- .attr("y1", (d) =>
- return d[0]
- )
- .attr("y2", (d) =>
- return d[1]
- )
- .attr("x1", (d) =>
- return d[2]
- )
- .attr("x2", (d) =>
- return d[3]
- )
- .style("stroke", "#000")
-
- create_scales: () ->
- @x_scale = d3.scale.linear()
- .domain([0, d3.max(@x_coords)])
- .range([@x_buffer, @plot_width])
-
- @y_scale = d3.scale.linear()
- .domain([0, @y_max])
- .range([@plot_height, @y_buffer])
-
- create_x_axis_tick_values: () ->
- tick_vals = []
- for val in [25..@cumulative_chr_lengths[0]] when val%25 == 0
- tick_vals.push(val)
-
- for length, i in @cumulative_chr_lengths
- if i == 0
- continue
- chr_ticks = []
- tick_count = Math.floor(@chr_lengths[i]/25)
- tick_val = parseInt(@cumulative_chr_lengths[i-1])
- for tick in [0..(tick_count-1)]
- tick_val += 25
- chr_ticks.push(tick_val)
- Array::push.apply tick_vals, chr_ticks
-
- #console.log("tick_vals:", tick_vals)
- return tick_vals
-
- add_x_axis: () ->
- xAxis = d3.svg.axis()
- .scale(@x_scale)
- .orient("bottom")
- .tickValues(@create_x_axis_tick_values())
-
- next_chr = 1
- tmp_tick_val = 0
- xAxis.tickFormat((d) =>
- d3.format("d") #format as integer
- if d < @cumulative_chr_lengths[0]
- tick_val = d
- else
- next_chr_length = @cumulative_chr_lengths[next_chr]
- if d > next_chr_length
- next_chr += 1
- tmp_tick_val = 25
- tick_val = tmp_tick_val
- else
- tmp_tick_val += 25
- tick_val = tmp_tick_val
- return (tick_val)
- )
-
- @svg.append("g")
- .attr("class", "x_axis")
- .attr("transform", "translate(0," + @plot_height + ")")
- .call(xAxis)
- .selectAll("text")
- .attr("text-anchor", "right")
- .attr("dx", "-1.6em")
- .attr("transform", (d) =>
- return "translate(-12,0) rotate(-90)"
- )
- #.attr("dy", "-1.0em")
-
-
- add_y_axis: () ->
- yAxis = d3.svg.axis()
- .scale(@y_scale)
- .orient("left")
- .ticks(5)
-
- @svg.append("g")
- .attr("class", "y_axis")
- .attr("transform", "translate(" + @x_buffer + ",0)")
- .call(yAxis)
-
- add_chr_lines: () ->
- @svg.selectAll("line")
- .data(@cumulative_chr_lengths, (d) =>
- return d
- )
- .enter()
- .append("line")
- .attr("y1", @y_buffer)
- .attr("y2", @plot_height)
- .attr("x1", @x_scale)
- .attr("x2", @x_scale)
- .style("stroke", "#ccc")
-
- fill_chr_areas: () ->
- @svg.selectAll("rect.chr_fill_area_1")
- .data(_.zip(@chr_lengths, @cumulative_chr_lengths), (d) =>
- return d
- )
- .enter()
- .append("rect")
- .attr("class", "chr_fill_area_1")
- .attr("x", (d, i) =>
- if i == 0
- return @x_scale(0)
- else
- return @x_scale(@cumulative_chr_lengths[i-1])
- )
- .attr("y", @y_buffer)
- .attr("width", (d) =>
- return @x_scale(d[0])
- )
- .attr("height", @plot_height-@y_buffer)
- .attr("fill", "white")
-
- add_chr_labels: () ->
- chr_names = []
- for key of @chromosomes
- chr_names.push(key)
- chr_info = _.zip(chr_names, @chr_lengths, @cumulative_chr_lengths)
- @svg.selectAll("text")
- .data(chr_info, (d) =>
- return d
- )
- .enter()
- .append("text")
- .text((d) =>
- return d[0]
- )
- .attr("x", (d) =>
- return @x_scale(d[2] - d[1]/2)
- )
- .attr("y", @plot_height * 0.1)
- .attr("dx", "0em")
- .attr("text-anchor", "middle")
- .attr("font-family", "sans-serif")
- .attr("font-size", "18px")
- #.attr("fill", "grey")
-
- connect_markers: () ->
- @svg.selectAll("line")
- .data(@plot_coordinates)
- .enter()
- .append("line")
- .attr("x1", (d, i) =>
- if i == 0
- return @x_buffer
- else
- return parseFloat(@x_buffer) + ((parseFloat(@plot_width)-parseFloat(@x_buffer)) * @plot_coordinates[i-1][0]/parseFloat(@x_max))
- )
- .attr("y1", (d, i) =>
- if i == 0
- return @plot_height
- else
- return @plot_height - ((@plot_height-@y_buffer) * @plot_coordinates[i-1][1]/@y_max)
- )
- .attr("x2", (d) =>
- return parseFloat(@x_buffer) + ((parseFloat(@plot_width)-parseFloat(@x_buffer)) * d[0]/parseFloat(@x_max))
- )
- .attr("y2", (d) =>
- return @plot_height - ((@plot_height-@y_buffer) * d[1]/@y_max)
- )
- .style("stroke", "black")
-
- console.time('Create interval map')
- console.log("TESTING")
- new Interval_Map(600, 1200)
- console.timeEnd('Create interval map') \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/interval_mapping.js b/wqflask/wqflask/static/new/javascript/interval_mapping.js
deleted file mode 100755
index aa9cc228..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_mapping.js
+++ /dev/null
@@ -1,297 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-$(function() {
- var Interval_Map;
- Interval_Map = (function() {
- function Interval_Map(plot_height, plot_width) {
- var _ref;
- this.plot_height = plot_height;
- this.plot_width = plot_width;
- this.qtl_results = js_data.qtl_results;
- console.log("qtl_results are:", this.qtl_results);
- this.chromosomes = js_data.chromosomes;
- this.total_length = 0;
- this.max_chr = this.get_max_chr();
- this.x_coords = [];
- this.y_coords = [];
- this.marker_names = [];
- console.time('Create coordinates');
- this.create_coordinates();
- console.log("@x_coords: ", this.x_coords);
- console.log("@y_coords: ", this.y_coords);
- console.timeEnd('Create coordinates');
- _ref = this.get_chr_lengths(), this.chr_lengths = _ref[0], this.cumulative_chr_lengths = _ref[1];
- this.x_buffer = this.plot_width / 30;
- this.y_buffer = this.plot_height / 20;
- this.x_max = this.total_length;
- console.log("@x_max: ", this.x_max);
- console.log("@x_buffer: ", this.x_buffer);
- this.y_max = d3.max(this.y_coords) * 1.2;
- this.svg = this.create_svg();
- this.plot_coordinates = _.zip(this.x_coords, this.y_coords, this.marker_names);
- this.plot_height -= this.y_buffer;
- this.create_scales();
- console.time('Create graph');
- this.create_graph();
- console.timeEnd('Create graph');
- }
-
- Interval_Map.prototype.get_max_chr = function() {
- var chr, max_chr, result, _i, _len, _ref;
- max_chr = 0;
- _ref = this.qtl_results;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- chr = parseInt(result.chr);
- if (!_.isNaN(chr)) {
- if (chr > max_chr) {
- max_chr = chr;
- }
- }
- }
- return max_chr;
- };
-
- Interval_Map.prototype.get_chr_lengths = function() {
-
- /*
- *Gets a list of both individual and cumulative (the position of one on the graph
- *is its own length plus the lengths of all preceding chromosomes) lengths in order
- *to draw the vertical lines separating chromosomes and the chromosome labels
- *
- */
- var chr_lengths, cumulative_chr_lengths, key, this_length, total_length;
- console.log("@chromosomes: ", this.chromosomes);
- cumulative_chr_lengths = [];
- chr_lengths = [];
- total_length = 0;
- for (key in this.chromosomes) {
- this_length = this.chromosomes[key];
- chr_lengths.push(this_length);
- cumulative_chr_lengths.push(total_length + this_length);
- total_length += this_length;
- }
- console.log("chr_lengths: ", chr_lengths);
- return [chr_lengths, cumulative_chr_lengths];
- };
-
- Interval_Map.prototype.create_coordinates = function() {
- var chr_length, chr_lengths, chr_seen, result, _i, _len, _ref, _ref1;
- chr_lengths = [];
- chr_seen = [];
- _ref = js_data.qtl_results;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- if (result.chr === "X") {
- chr_length = parseFloat(this.chromosomes[20]);
- } else {
- chr_length = parseFloat(this.chromosomes[result.chr]);
- }
- if (!(_ref1 = result.chr, __indexOf.call(chr_seen, _ref1) >= 0)) {
- chr_seen.push(result.chr);
- chr_lengths.push(chr_length);
- if (result.chr !== "1") {
- this.total_length += parseFloat(chr_lengths[chr_lengths.length - 2]);
- }
- }
- this.x_coords.push(this.total_length + parseFloat(result.Mb));
- this.y_coords.push(result.lrs_value);
- this.marker_names.push(result.name);
- }
- return this.total_length += parseFloat(chr_lengths[chr_lengths.length - 1]);
- };
-
- Interval_Map.prototype.create_svg = function() {
- var svg;
- svg = d3.select("#interval_map").append("svg").attr("class", "interval_map").attr("width", this.plot_width + this.x_buffer).attr("height", this.plot_height + this.y_buffer);
- return svg;
- };
-
- Interval_Map.prototype.create_graph = function() {
- this.add_border();
- this.add_x_axis();
- this.add_y_axis();
- this.add_chr_lines();
- this.fill_chr_areas();
- this.add_chr_labels();
- return this.connect_markers();
- };
-
- Interval_Map.prototype.add_border = function() {
- var border_coords;
- border_coords = [[this.y_buffer, this.plot_height, this.x_buffer, this.x_buffer], [this.y_buffer, this.plot_height, this.plot_width, this.plot_width], [this.y_buffer, this.y_buffer, this.x_buffer, this.plot_width], [this.plot_height, this.plot_height, this.x_buffer, this.plot_width]];
- return this.svg.selectAll("line").data(border_coords).enter().append("line").attr("y1", (function(_this) {
- return function(d) {
- return d[0];
- };
- })(this)).attr("y2", (function(_this) {
- return function(d) {
- return d[1];
- };
- })(this)).attr("x1", (function(_this) {
- return function(d) {
- return d[2];
- };
- })(this)).attr("x2", (function(_this) {
- return function(d) {
- return d[3];
- };
- })(this)).style("stroke", "#000");
- };
-
- Interval_Map.prototype.create_scales = function() {
- this.x_scale = d3.scale.linear().domain([0, d3.max(this.x_coords)]).range([this.x_buffer, this.plot_width]);
- return this.y_scale = d3.scale.linear().domain([0, this.y_max]).range([this.plot_height, this.y_buffer]);
- };
-
- Interval_Map.prototype.create_x_axis_tick_values = function() {
- var chr_ticks, i, length, tick, tick_count, tick_val, tick_vals, val, _i, _j, _k, _len, _ref, _ref1, _ref2;
- tick_vals = [];
- for (val = _i = 25, _ref = this.cumulative_chr_lengths[0]; 25 <= _ref ? _i <= _ref : _i >= _ref; val = 25 <= _ref ? ++_i : --_i) {
- if (val % 25 === 0) {
- tick_vals.push(val);
- }
- }
- _ref1 = this.cumulative_chr_lengths;
- for (i = _j = 0, _len = _ref1.length; _j < _len; i = ++_j) {
- length = _ref1[i];
- if (i === 0) {
- continue;
- }
- chr_ticks = [];
- tick_count = Math.floor(this.chr_lengths[i] / 25);
- tick_val = parseInt(this.cumulative_chr_lengths[i - 1]);
- for (tick = _k = 0, _ref2 = tick_count - 1; 0 <= _ref2 ? _k <= _ref2 : _k >= _ref2; tick = 0 <= _ref2 ? ++_k : --_k) {
- tick_val += 25;
- chr_ticks.push(tick_val);
- }
- Array.prototype.push.apply(tick_vals, chr_ticks);
- }
- return tick_vals;
- };
-
- Interval_Map.prototype.add_x_axis = function() {
- var next_chr, tmp_tick_val, xAxis;
- xAxis = d3.svg.axis().scale(this.x_scale).orient("bottom").tickValues(this.create_x_axis_tick_values());
- next_chr = 1;
- tmp_tick_val = 0;
- xAxis.tickFormat((function(_this) {
- return function(d) {
- var next_chr_length, tick_val;
- d3.format("d");
- if (d < _this.cumulative_chr_lengths[0]) {
- tick_val = d;
- } else {
- next_chr_length = _this.cumulative_chr_lengths[next_chr];
- if (d > next_chr_length) {
- next_chr += 1;
- tmp_tick_val = 25;
- tick_val = tmp_tick_val;
- } else {
- tmp_tick_val += 25;
- tick_val = tmp_tick_val;
- }
- }
- return tick_val;
- };
- })(this));
- return this.svg.append("g").attr("class", "x_axis").attr("transform", "translate(0," + this.plot_height + ")").call(xAxis).selectAll("text").attr("text-anchor", "right").attr("dx", "-1.6em").attr("transform", (function(_this) {
- return function(d) {
- return "translate(-12,0) rotate(-90)";
- };
- })(this));
- };
-
- Interval_Map.prototype.add_y_axis = function() {
- var yAxis;
- yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5);
- return this.svg.append("g").attr("class", "y_axis").attr("transform", "translate(" + this.x_buffer + ",0)").call(yAxis);
- };
-
- Interval_Map.prototype.add_chr_lines = function() {
- return this.svg.selectAll("line").data(this.cumulative_chr_lengths, (function(_this) {
- return function(d) {
- return d;
- };
- })(this)).enter().append("line").attr("y1", this.y_buffer).attr("y2", this.plot_height).attr("x1", this.x_scale).attr("x2", this.x_scale).style("stroke", "#ccc");
- };
-
- Interval_Map.prototype.fill_chr_areas = function() {
- return this.svg.selectAll("rect.chr_fill_area_1").data(_.zip(this.chr_lengths, this.cumulative_chr_lengths), (function(_this) {
- return function(d) {
- return d;
- };
- })(this)).enter().append("rect").attr("class", "chr_fill_area_1").attr("x", (function(_this) {
- return function(d, i) {
- if (i === 0) {
- return _this.x_scale(0);
- } else {
- return _this.x_scale(_this.cumulative_chr_lengths[i - 1]);
- }
- };
- })(this)).attr("y", this.y_buffer).attr("width", (function(_this) {
- return function(d) {
- return _this.x_scale(d[0]);
- };
- })(this)).attr("height", this.plot_height - this.y_buffer).attr("fill", "white");
- };
-
- Interval_Map.prototype.add_chr_labels = function() {
- var chr_info, chr_names, key;
- chr_names = [];
- for (key in this.chromosomes) {
- chr_names.push(key);
- }
- chr_info = _.zip(chr_names, this.chr_lengths, this.cumulative_chr_lengths);
- return this.svg.selectAll("text").data(chr_info, (function(_this) {
- return function(d) {
- return d;
- };
- })(this)).enter().append("text").text((function(_this) {
- return function(d) {
- return d[0];
- };
- })(this)).attr("x", (function(_this) {
- return function(d) {
- return _this.x_scale(d[2] - d[1] / 2);
- };
- })(this)).attr("y", this.plot_height * 0.1).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px");
- };
-
- Interval_Map.prototype.connect_markers = function() {
- return this.svg.selectAll("line").data(this.plot_coordinates).enter().append("line").attr("x1", (function(_this) {
- return function(d, i) {
- if (i === 0) {
- return _this.x_buffer;
- } else {
- return parseFloat(_this.x_buffer) + ((parseFloat(_this.plot_width) - parseFloat(_this.x_buffer)) * _this.plot_coordinates[i - 1][0] / parseFloat(_this.x_max));
- }
- };
- })(this)).attr("y1", (function(_this) {
- return function(d, i) {
- if (i === 0) {
- return _this.plot_height;
- } else {
- return _this.plot_height - ((_this.plot_height - _this.y_buffer) * _this.plot_coordinates[i - 1][1] / _this.y_max);
- }
- };
- })(this)).attr("x2", (function(_this) {
- return function(d) {
- return parseFloat(_this.x_buffer) + ((parseFloat(_this.plot_width) - parseFloat(_this.x_buffer)) * d[0] / parseFloat(_this.x_max));
- };
- })(this)).attr("y2", (function(_this) {
- return function(d) {
- return _this.plot_height - ((_this.plot_height - _this.y_buffer) * d[1] / _this.y_max);
- };
- })(this)).style("stroke", "black");
- };
-
- return Interval_Map;
-
- })();
- console.time('Create interval map');
- console.log("TESTING");
- new Interval_Map(600, 1200);
- return console.timeEnd('Create interval map');
-});
diff --git a/wqflask/wqflask/static/new/javascript/manhattan_plot.coffee b/wqflask/wqflask/static/new/javascript/manhattan_plot.coffee
deleted file mode 100644
index d637183d..00000000
--- a/wqflask/wqflask/static/new/javascript/manhattan_plot.coffee
+++ /dev/null
@@ -1,372 +0,0 @@
-lodchart = () ->
- width = 800
- height = 500
- margin = {left:60, top:40, right:40, bottom: 40, inner:5}
- axispos = {xtitle:25, ytitle:30, xlabel:5, ylabel:5}
- titlepos = 20
- ylim = null
- nyticks = 5
- yticks = null
- chrGap = 8
- darkrect = "#F1F1F9"
- lightrect = "#FBFBFF"
- lodlinecolor = "darkslateblue"
- linewidth = 2
- pointcolor = "darkslateblue" # pink
- pointhover = "#E9CFEC" # pink
- pointsize = 2 # default = no visible points at markers
- pointstroke = "black"
- title = ""
- xlab = "Chromosome"
- ylab = "LOD score"
- rotate_ylab = null
- yscale = d3.scale.linear()
- xscale = null
- pad4heatmap = false
- lodcurve = null
- lodvarname = null
- markerSelect = null
- chrSelect = null
- pointsAtMarkers = true
-
- ## the main function
- chart = (selection) ->
- selection.each (data) ->
-
-
- lodvarname = lodvarname ? data.lodnames[0]
- data[lodvarname] = (Math.abs(x) for x in data[lodvarname]) # take absolute values
- ylim = ylim ? [0, d3.max(data[lodvarname])]
- lodvarnum = data.lodnames.indexOf(lodvarname)
-
- # Select the svg element, if it exists.
- svg = d3.select(this).selectAll("svg").data([data])
-
- # Otherwise, create the skeletal chart.
- gEnter = svg.enter().append("svg").append("g")
-
- # Update the outer dimensions.
- svg.attr("width", width+margin.left+margin.right)
- .attr("height", height+margin.top+margin.bottom)
-
- # Update the inner dimensions.
- g = svg.select("g")
-
- # box
- g.append("rect")
- .attr("x", margin.left)
- .attr("y", margin.top)
- .attr("height", height)
- .attr("width", width)
- .attr("fill", darkrect)
- .attr("stroke", "none")
-
- yscale.domain(ylim)
- .range([height+margin.top, margin.top+margin.inner])
-
- # if yticks not provided, use nyticks to choose pretty ones
- yticks = yticks ? yscale.ticks(nyticks)
-
- console.log("data:", data)
-
- # reorganize lod,pos by chromosomes
- data = reorgLodData(data, lodvarname)
-
- # add chromosome scales (for x-axis)
- data = chrscales(data, width, chrGap, margin.left, pad4heatmap)
- xscale = data.xscale
-
- # chr rectangles
- chrSelect =
- g.append("g").attr("class", "chrRect")
- .selectAll("empty")
- .data(data.chrnames)
- .enter()
- .append("rect")
- .attr("id", (d) -> "chrrect#{d[0]}")
- .attr("x", (d,i) ->
- return data.chrStart[i] if i==0 and pad4heatmap
- data.chrStart[i]-chrGap/2)
- .attr("width", (d,i) ->
- return data.chrEnd[i] - data.chrStart[i]+chrGap/2 if (i==0 or i+1 == data.chrnames.length) and pad4heatmap
- data.chrEnd[i] - data.chrStart[i]+chrGap)
- .attr("y", margin.top)
- .attr("height", height)
- .attr("fill", (d,i) ->
- return darkrect if i % 2
- lightrect)
- .attr("stroke", "none")
- .on("click", (d) ->
- redraw_plot(d)
- )
-
- # x-axis labels
- xaxis = g.append("g").attr("class", "x axis")
- xaxis.selectAll("empty")
- .data(data.chrnames)
- .enter()
- .append("text")
- .text((d) -> d[0])
- .attr("x", (d,i) -> (data.chrStart[i]+data.chrEnd[i])/2)
- .attr("y", margin.top+height+axispos.xlabel)
- .attr("dominant-baseline", "hanging")
- .attr("text-anchor", "middle")
- .attr("cursor", "pointer")
- .on("click", (d) ->
- redraw_plot(d)
- )
-
- xaxis.append("text").attr("class", "title")
- .attr("y", margin.top+height+axispos.xtitle)
- .attr("x", margin.left+width/2)
- .attr("fill", "slateblue")
- .text(xlab)
-
-
- redraw_plot = (chr_ob) ->
- console.log("chr_name is:", chr_ob[0])
- console.log("chr_length is:", chr_ob[1])
- $('#topchart').remove()
- $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>')
- chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob)
-
-
- # y-axis
- rotate_ylab = rotate_ylab ? (ylab.length > 1)
- yaxis = g.append("g").attr("class", "y axis")
- yaxis.selectAll("empty")
- .data(yticks)
- .enter()
- .append("line")
- .attr("y1", (d) -> yscale(d))
- .attr("y2", (d) -> yscale(d))
- .attr("x1", margin.left)
- .attr("x2", margin.left+7)
- .attr("fill", "none")
- .attr("stroke", "white")
- .attr("stroke-width", 1)
- .style("pointer-events", "none")
-
- yaxis.selectAll("empty")
- .data(yticks)
- .enter()
- .append("text")
- .attr("y", (d) -> yscale(d))
- .attr("x", margin.left-axispos.ylabel)
- .attr("fill", "blue")
- .attr("dominant-baseline", "middle")
- .attr("text-anchor", "end")
- .text((d) -> formatAxis(yticks)(d))
-
- yaxis.append("text").attr("class", "title")
- .attr("y", margin.top+height/2)
- .attr("x", margin.left-axispos.ytitle)
- .text(ylab)
- .attr("transform", if rotate_ylab then "rotate(270,#{margin.left-axispos.ytitle},#{margin.top+height/2})" else "")
- .attr("text-anchor", "middle")
- .attr("fill", "slateblue")
-
-
- # points at markers
- if pointsize > 0
- markerpoints = g.append("g").attr("id", "markerpoints_visible")
- markerpoints.selectAll("empty")
- .data(data.markers)
- .enter()
- .append("circle")
- .attr("cx", (d) -> xscale[d.chr](d.pos))
- .attr("cy", (d) -> yscale(d.lod))
- .attr("r", pointsize)
- .attr("fill", pointcolor)
- .attr("stroke", pointstroke)
- .attr("pointer-events", "hidden")
-
- # title
- titlegrp = g.append("g").attr("class", "title")
- .append("text")
- .attr("x", margin.left+width/2)
- .attr("y", margin.top-titlepos)
- .text(title)
-
- # another box around edge
- g.append("rect")
- .attr("x", margin.left)
- .attr("y", margin.top)
- .attr("height", height)
- .attr("width", () ->
- return(data.chrEnd[-1..][0]-margin.left) if pad4heatmap
- data.chrEnd[-1..][0]-margin.left+chrGap/2)
- .attr("fill", "none")
- .attr("stroke", "black")
- .attr("stroke-width", "none")
-
- if pointsAtMarkers
- # these hidden points are what gets selected...a bit larger
- hiddenpoints = g.append("g").attr("id", "markerpoints_hidden")
-
- markertip = d3.tip()
- .attr('class', 'd3-tip')
- .html((d) ->
- [d.name, " LOD = #{d3.format('.2f')(d.lod)}"])
- .direction("e")
- .offset([0,10])
- svg.call(markertip)
-
- markerSelect =
- hiddenpoints.selectAll("empty")
- .data(data.markers)
- .enter()
- .append("circle")
- .attr("cx", (d) -> xscale[d.chr](d.pos))
- .attr("cy", (d) -> yscale(d.lod))
- .attr("id", (d) -> d.name)
- .attr("r", d3.max([pointsize*2, 3]))
- .attr("opacity", 0)
- .attr("fill", pointhover)
- .attr("stroke", pointstroke)
- .attr("stroke-width", "1")
- .on "mouseover.paneltip", (d) ->
- d3.select(this).attr("opacity", 1)
- markertip.show(d)
- .on "mouseout.paneltip", ->
- d3.select(this).attr("opacity", 0)
- .call(markertip.hide)
-
- ## configuration parameters
- chart.width = (value) ->
- return width unless arguments.length
- width = value
- chart
-
- chart.height = (value) ->
- return height unless arguments.length
- height = value
- chart
-
- chart.margin = (value) ->
- return margin unless arguments.length
- margin = value
- chart
-
- chart.titlepos = (value) ->
- return titlepos unless arguments.length
- titlepos
- chart
-
- chart.axispos = (value) ->
- return axispos unless arguments.length
- axispos = value
- chart
-
- chart.ylim = (value) ->
- return ylim unless arguments.length
- ylim = value
- chart
-
- chart.nyticks = (value) ->
- return nyticks unless arguments.length
- nyticks = value
- chart
-
- chart.yticks = (value) ->
- return yticks unless arguments.length
- yticks = value
- chart
-
- chart.chrGap = (value) ->
- return chrGap unless arguments.length
- chrGap = value
- chart
-
- chart.darkrect = (value) ->
- return darkrect unless arguments.length
- darkrect = value
- chart
-
- chart.lightrect = (value) ->
- return lightrect unless arguments.length
- lightrect = value
- chart
-
- chart.linecolor = (value) ->
- return linecolor unless arguments.length
- linecolor = value
- chart
-
- chart.linewidth = (value) ->
- return linewidth unless arguments.length
- linewidth = value
- chart
-
- chart.pointcolor = (value) ->
- return pointcolor unless arguments.length
- pointcolor = value
- chart
-
- chart.pointhover = (value) ->
- return pointhover unless arguments.length
- pointhover = value
- chart
-
- chart.pointsize = (value) ->
- return pointsize unless arguments.length
- pointsize = value
- chart
-
- chart.pointstroke = (value) ->
- return pointstroke unless arguments.length
- pointstroke = value
- chart
-
- chart.title = (value) ->
- return title unless arguments.length
- title = value
- chart
-
- chart.xlab = (value) ->
- return xlab unless arguments.length
- xlab = value
- chart
-
- chart.ylab = (value) ->
- return ylab unless arguments.length
- ylab = value
- chart
-
- chart.rotate_ylab = (value) ->
- return rotate_ylab if !arguments.length
- rotate_ylab = value
- chart
-
- chart.lodvarname = (value) ->
- return lodvarname unless arguments.length
- lodvarname = value
- chart
-
- chart.pad4heatmap = (value) ->
- return pad4heatmap unless arguments.length
- pad4heatmap = value
- chart
-
- chart.pointsAtMarkers = (value) ->
- return pointsAtMarkers unless arguments.length
- pointsAtMarkers = value
- chart
-
- chart.yscale = () ->
- return yscale
-
- chart.xscale = () ->
- return xscale
-
- #chart.lodcurve = () ->
- # return lodcurve
-
- chart.markerSelect = () ->
- return markerSelect
-
- chart.chrSelect = () ->
- return chrSelect
-
- # return the chart function
- chart
diff --git a/wqflask/wqflask/static/new/javascript/manhattan_plot.js b/wqflask/wqflask/static/new/javascript/manhattan_plot.js
deleted file mode 100644
index 06004a1b..00000000
--- a/wqflask/wqflask/static/new/javascript/manhattan_plot.js
+++ /dev/null
@@ -1,341 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var lodchart;
-
-lodchart = function() {
- var axispos, chart, chrGap, chrSelect, darkrect, height, lightrect, linewidth, lodcurve, lodlinecolor, lodvarname, margin, markerSelect, nyticks, pad4heatmap, pointcolor, pointhover, pointsAtMarkers, pointsize, pointstroke, rotate_ylab, title, titlepos, width, xlab, xscale, ylab, ylim, yscale, yticks;
- width = 800;
- height = 500;
- margin = {
- left: 60,
- top: 40,
- right: 40,
- bottom: 40,
- inner: 5
- };
- axispos = {
- xtitle: 25,
- ytitle: 30,
- xlabel: 5,
- ylabel: 5
- };
- titlepos = 20;
- ylim = null;
- nyticks = 5;
- yticks = null;
- chrGap = 8;
- darkrect = "#F1F1F9";
- lightrect = "#FBFBFF";
- lodlinecolor = "darkslateblue";
- linewidth = 2;
- pointcolor = "darkslateblue";
- pointhover = "#E9CFEC";
- pointsize = 2;
- pointstroke = "black";
- title = "";
- xlab = "Chromosome";
- ylab = "LOD score";
- rotate_ylab = null;
- yscale = d3.scale.linear();
- xscale = null;
- pad4heatmap = false;
- lodcurve = null;
- lodvarname = null;
- markerSelect = null;
- chrSelect = null;
- pointsAtMarkers = true;
- chart = function(selection) {
- return selection.each(function(data) {
- var g, gEnter, hiddenpoints, lodvarnum, markerpoints, markertip, redraw_plot, svg, titlegrp, x, xaxis, yaxis;
- lodvarname = lodvarname != null ? lodvarname : data.lodnames[0];
- data[lodvarname] = (function() {
- var _i, _len, _ref, _results;
- _ref = data[lodvarname];
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- x = _ref[_i];
- _results.push(Math.abs(x));
- }
- return _results;
- })();
- ylim = ylim != null ? ylim : [0, d3.max(data[lodvarname])];
- lodvarnum = data.lodnames.indexOf(lodvarname);
- svg = d3.select(this).selectAll("svg").data([data]);
- gEnter = svg.enter().append("svg").append("g");
- svg.attr("width", width + margin.left + margin.right).attr("height", height + margin.top + margin.bottom);
- g = svg.select("g");
- g.append("rect").attr("x", margin.left).attr("y", margin.top).attr("height", height).attr("width", width).attr("fill", darkrect).attr("stroke", "none");
- yscale.domain(ylim).range([height + margin.top, margin.top + margin.inner]);
- yticks = yticks != null ? yticks : yscale.ticks(nyticks);
- console.log("data:", data);
- data = reorgLodData(data, lodvarname);
- data = chrscales(data, width, chrGap, margin.left, pad4heatmap);
- xscale = data.xscale;
- chrSelect = g.append("g").attr("class", "chrRect").selectAll("empty").data(data.chrnames).enter().append("rect").attr("id", function(d) {
- return "chrrect" + d[0];
- }).attr("x", function(d, i) {
- if (i === 0 && pad4heatmap) {
- return data.chrStart[i];
- }
- return data.chrStart[i] - chrGap / 2;
- }).attr("width", function(d, i) {
- if ((i === 0 || i + 1 === data.chrnames.length) && pad4heatmap) {
- return data.chrEnd[i] - data.chrStart[i] + chrGap / 2;
- }
- return data.chrEnd[i] - data.chrStart[i] + chrGap;
- }).attr("y", margin.top).attr("height", height).attr("fill", function(d, i) {
- if (i % 2) {
- return darkrect;
- }
- return lightrect;
- }).attr("stroke", "none").on("click", function(d) {
- return redraw_plot(d);
- });
- xaxis = g.append("g").attr("class", "x axis");
- xaxis.selectAll("empty").data(data.chrnames).enter().append("text").text(function(d) {
- return d[0];
- }).attr("x", function(d, i) {
- return (data.chrStart[i] + data.chrEnd[i]) / 2;
- }).attr("y", margin.top + height + axispos.xlabel).attr("dominant-baseline", "hanging").attr("text-anchor", "middle").attr("cursor", "pointer").on("click", function(d) {
- return redraw_plot(d);
- });
- xaxis.append("text").attr("class", "title").attr("y", margin.top + height + axispos.xtitle).attr("x", margin.left + width / 2).attr("fill", "slateblue").text(xlab);
- redraw_plot = function(chr_ob) {
- var chr_plot;
- console.log("chr_name is:", chr_ob[0]);
- console.log("chr_length is:", chr_ob[1]);
- $('#topchart').remove();
- $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>');
- return chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob);
- };
- rotate_ylab = rotate_ylab != null ? rotate_ylab : ylab.length > 1;
- yaxis = g.append("g").attr("class", "y axis");
- yaxis.selectAll("empty").data(yticks).enter().append("line").attr("y1", function(d) {
- return yscale(d);
- }).attr("y2", function(d) {
- return yscale(d);
- }).attr("x1", margin.left).attr("x2", margin.left + 7).attr("fill", "none").attr("stroke", "white").attr("stroke-width", 1).style("pointer-events", "none");
- yaxis.selectAll("empty").data(yticks).enter().append("text").attr("y", function(d) {
- return yscale(d);
- }).attr("x", margin.left - axispos.ylabel).attr("fill", "blue").attr("dominant-baseline", "middle").attr("text-anchor", "end").text(function(d) {
- return formatAxis(yticks)(d);
- });
- yaxis.append("text").attr("class", "title").attr("y", margin.top + height / 2).attr("x", margin.left - axispos.ytitle).text(ylab).attr("transform", rotate_ylab ? "rotate(270," + (margin.left - axispos.ytitle) + "," + (margin.top + height / 2) + ")" : "").attr("text-anchor", "middle").attr("fill", "slateblue");
- if (pointsize > 0) {
- markerpoints = g.append("g").attr("id", "markerpoints_visible");
- markerpoints.selectAll("empty").data(data.markers).enter().append("circle").attr("cx", function(d) {
- return xscale[d.chr](d.pos);
- }).attr("cy", function(d) {
- return yscale(d.lod);
- }).attr("r", pointsize).attr("fill", pointcolor).attr("stroke", pointstroke).attr("pointer-events", "hidden");
- }
- titlegrp = g.append("g").attr("class", "title").append("text").attr("x", margin.left + width / 2).attr("y", margin.top - titlepos).text(title);
- g.append("rect").attr("x", margin.left).attr("y", margin.top).attr("height", height).attr("width", function() {
- if (pad4heatmap) {
- return data.chrEnd.slice(-1)[0] - margin.left;
- }
- return data.chrEnd.slice(-1)[0] - margin.left + chrGap / 2;
- }).attr("fill", "none").attr("stroke", "black").attr("stroke-width", "none");
- if (pointsAtMarkers) {
- hiddenpoints = g.append("g").attr("id", "markerpoints_hidden");
- markertip = d3.tip().attr('class', 'd3-tip').html(function(d) {
- return [d.name, " LOD = " + (d3.format('.2f')(d.lod))];
- }).direction("e").offset([0, 10]);
- svg.call(markertip);
- return markerSelect = hiddenpoints.selectAll("empty").data(data.markers).enter().append("circle").attr("cx", function(d) {
- return xscale[d.chr](d.pos);
- }).attr("cy", function(d) {
- return yscale(d.lod);
- }).attr("id", function(d) {
- return d.name;
- }).attr("r", d3.max([pointsize * 2, 3])).attr("opacity", 0).attr("fill", pointhover).attr("stroke", pointstroke).attr("stroke-width", "1").on("mouseover.paneltip", function(d) {
- d3.select(this).attr("opacity", 1);
- return markertip.show(d);
- }).on("mouseout.paneltip", function() {
- return d3.select(this).attr("opacity", 0).call(markertip.hide);
- });
- }
- });
- };
- chart.width = function(value) {
- if (!arguments.length) {
- return width;
- }
- width = value;
- return chart;
- };
- chart.height = function(value) {
- if (!arguments.length) {
- return height;
- }
- height = value;
- return chart;
- };
- chart.margin = function(value) {
- if (!arguments.length) {
- return margin;
- }
- margin = value;
- return chart;
- };
- chart.titlepos = function(value) {
- if (!arguments.length) {
- return titlepos;
- }
- titlepos;
- return chart;
- };
- chart.axispos = function(value) {
- if (!arguments.length) {
- return axispos;
- }
- axispos = value;
- return chart;
- };
- chart.ylim = function(value) {
- if (!arguments.length) {
- return ylim;
- }
- ylim = value;
- return chart;
- };
- chart.nyticks = function(value) {
- if (!arguments.length) {
- return nyticks;
- }
- nyticks = value;
- return chart;
- };
- chart.yticks = function(value) {
- if (!arguments.length) {
- return yticks;
- }
- yticks = value;
- return chart;
- };
- chart.chrGap = function(value) {
- if (!arguments.length) {
- return chrGap;
- }
- chrGap = value;
- return chart;
- };
- chart.darkrect = function(value) {
- if (!arguments.length) {
- return darkrect;
- }
- darkrect = value;
- return chart;
- };
- chart.lightrect = function(value) {
- if (!arguments.length) {
- return lightrect;
- }
- lightrect = value;
- return chart;
- };
- chart.linecolor = function(value) {
- var linecolor;
- if (!arguments.length) {
- return linecolor;
- }
- linecolor = value;
- return chart;
- };
- chart.linewidth = function(value) {
- if (!arguments.length) {
- return linewidth;
- }
- linewidth = value;
- return chart;
- };
- chart.pointcolor = function(value) {
- if (!arguments.length) {
- return pointcolor;
- }
- pointcolor = value;
- return chart;
- };
- chart.pointhover = function(value) {
- if (!arguments.length) {
- return pointhover;
- }
- pointhover = value;
- return chart;
- };
- chart.pointsize = function(value) {
- if (!arguments.length) {
- return pointsize;
- }
- pointsize = value;
- return chart;
- };
- chart.pointstroke = function(value) {
- if (!arguments.length) {
- return pointstroke;
- }
- pointstroke = value;
- return chart;
- };
- chart.title = function(value) {
- if (!arguments.length) {
- return title;
- }
- title = value;
- return chart;
- };
- chart.xlab = function(value) {
- if (!arguments.length) {
- return xlab;
- }
- xlab = value;
- return chart;
- };
- chart.ylab = function(value) {
- if (!arguments.length) {
- return ylab;
- }
- ylab = value;
- return chart;
- };
- chart.rotate_ylab = function(value) {
- if (!arguments.length) {
- return rotate_ylab;
- }
- rotate_ylab = value;
- return chart;
- };
- chart.lodvarname = function(value) {
- if (!arguments.length) {
- return lodvarname;
- }
- lodvarname = value;
- return chart;
- };
- chart.pad4heatmap = function(value) {
- if (!arguments.length) {
- return pad4heatmap;
- }
- pad4heatmap = value;
- return chart;
- };
- chart.pointsAtMarkers = function(value) {
- if (!arguments.length) {
- return pointsAtMarkers;
- }
- pointsAtMarkers = value;
- return chart;
- };
- chart.yscale = function() {
- return yscale;
- };
- chart.xscale = function() {
- return xscale;
- };
- chart.markerSelect = function() {
- return markerSelect;
- };
- chart.chrSelect = function() {
- return chrSelect;
- };
- return chart;
-};
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression.coffee b/wqflask/wqflask/static/new/javascript/marker_regression.coffee
deleted file mode 100755
index d522b667..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression.coffee
+++ /dev/null
@@ -1,512 +0,0 @@
-root = exports ? this
-
-class Lod_Chart
-
- darkrect = "#F1F1F9"
- lightrect = "#FBFBFF"
- hoverrect = "#E9CFEC"
-
- constructor: (@height = 800, @width = 1200) ->
- @qtl_results = js_data.qtl_results
- console.log("qtl_results are:", @qtl_results)
- @chromosomes = js_data.chromosomes
- console.log("chromosomes are:", @chromosomes)
-
- #For the description in the legend
- @this_trait = js_data.this_trait
- @data_set = js_data.data_set
- @maf = js_data.maf #Minor allele frequency
-
- @suggestive = js_data.suggestive
- @significant = js_data.significant
-
- @total_length = 0
-
- @max_chr = @get_max_chr()
-
- @x_coords = []
- @y_coords = []
- @marker_names = []
- console.time('Create coordinates')
- @get_qtl_count()
- @create_coordinates()
- console.log("@x_coords: ", @x_coords)
- console.log("@y_coords: ", @y_coords)
- console.timeEnd('Create coordinates')
- [@chr_lengths, @cumulative_chr_lengths] = @get_chr_lengths()
-
- # Buffer to allow for the ticks/labels to be drawn
- @x_buffer = @width/30
- @y_buffer = @height/20
- @legend_buffer = 30 #Height minus buffer for legend
-
- #@x_max = d3.max(@x_coords)
- @x_max = @total_length
- console.log("@x_max: ", @x_max)
- console.log("@x_buffer: ", @x_buffer)
- @y_max = d3.max(@y_coords) * 1.2
-
- #@y_threshold = @get_lod_threshold()
-
- @svg = @create_svg()
- console.log("svg created")
-
- @plot_coordinates = _.zip(@x_coords, @y_coords, @marker_names)
- console.log("coordinates:", @plot_coordinates)
-
- @height -= @y_buffer
-
- @create_scales()
-
- console.time('Create graph')
- @create_graph()
- console.timeEnd('Create graph')
-
- get_max_chr: () ->
- max_chr = 0
- for result in @qtl_results
- chr = parseInt(result.chr)
- if not _.isNaN(chr)
- if chr > max_chr
- max_chr = chr
-
- console.log("max_chr", max_chr)
- return max_chr
-
- get_chr_lengths: () ->
- ###
- #Gets a list of both individual and cumulative (the position of one on the graph
- #is its own length plus the lengths of all preceding chromosomes) lengths in order
- #to draw the vertical lines separating chromosomes and the chromosome labels
- #
- ###
-
- cumulative_chr_lengths = []
- chr_lengths = []
- total_length = 0
- for key of @chromosomes
- this_length = @chromosomes[key]
- chr_lengths.push(this_length)
- cumulative_chr_lengths.push(total_length + this_length)
- total_length += this_length
-
- console.log("chr_lengths: ", chr_lengths)
-
- return [chr_lengths, cumulative_chr_lengths]
-
- get_qtl_count: () ->
- high_qtl_count = 0
- for result in js_data.qtl_results
- if result.lod_score > 1
- high_qtl_count += 1
- console.log("high_qtl_count:", high_qtl_count)
-
- #if high_qtl_count > 10000
- @y_axis_filter = 0
- #else if high_qtl_count > 1000
- # @y_axis_filter = 1
- #else
- # @y_axis_filter = 0
-
-
- create_coordinates: () ->
- chr_lengths = []
- chr_seen = []
- for result in js_data.qtl_results
- if result.chr == "X"
- chr_length = parseFloat(@chromosomes[13])
- else
- chr_length = parseFloat(@chromosomes[result.chr])
- if not(result.chr in chr_seen)
- chr_seen.push(result.chr)
- chr_lengths.push(chr_length)
- console.log("result.chr:", result.chr)
- console.log("total_length:", @total_length)
- if parseInt(result.chr) != 1
- console.log("plus:", chr_lengths.length - 2)
- console.log("chr_lengths.length", chr_lengths.length)
- @total_length += parseFloat(chr_lengths[chr_lengths.length - 2])
- if result.lod_score > @y_axis_filter
- @x_coords.push(@total_length + parseFloat(result.Mb))
- @y_coords.push(result.lod_score)
- @marker_names.push(result.name)
- @total_length += parseFloat(chr_lengths[chr_lengths.length-1])
-
- show_marker_in_table: (marker_info) ->
- console.log("in show_marker_in_table")
- ### Searches for the select marker in the results table below ###
- if marker_info
- marker_name = marker_info[2]
- $("#qtl_results_filter").find("input:first").val(marker_name).trigger('change')
- #else
- # marker_name = ""
- #$("#qtl_results_filter").find("input:first").val(marker_name).change()
-
- create_svg: () ->
- svg = d3.select("#manhattan_plot")
- .append("svg")
- .attr("class", "manhattan_plot")
- .attr("width", @width+@x_buffer)
- .attr("height", @height+@y_buffer)
- .append("g")
- #.call(d3.behavior.zoom().x(@x_scale).y(@y_scale).scaleExtent([1,8]).on("zoom", () ->
- # @svg.selectAll("circle")
- # .attr("transform", transform)
- #))
- return svg
-
- #zoom: () ->
- # #@svg.selectAll.attr("transform", @transform)
- # @svg.selectAll("circle")
- # .attr("transform", transform)
- #
- #transform: (d) ->
- # return "translate(" + @x_scale(d[0]) + "," + @y_scale(d[1]) + ")"
-
- create_graph: () ->
- @create_legend()
- @add_border()
- @add_x_axis()
- @add_y_axis()
- @add_axis_labels()
- @add_chr_lines()
- @fill_chr_areas()
- @add_chr_labels()
- @add_plot_points()
-
- #@create_zoom_pane()
-
- create_legend: () ->
- @svg.append("text")
- .attr("class", "legend")
- .text("Trait: " + @this_trait + " : " + @data_set)
- .attr("x", @x_buffer)
- .attr("y", 20)
- .attr("dx", "0em")
- .attr("text-anchor", "left")
- .attr("font-family", "sans-serif")
- .attr("font-size", "16px")
- .attr("fill", "black")
-
- @svg.append("text")
- .attr("class", "legend")
- .text("MAF: " + @maf)
- .attr("x", @x_buffer)
- .attr("y", 38)
- .attr("dx", "0em")
- .attr("text-anchor", "left")
- .attr("font-family", "sans-serif")
- .attr("font-size", "16px")
- .attr("fill", "black")
-
-
- add_border: () ->
- border_coords = [[@y_buffer + @legend_buffer, @height, @x_buffer, @x_buffer],
- [@y_buffer + @legend_buffer, @height, @width, @width],
- [@y_buffer + @legend_buffer, @y_buffer + @legend_buffer, @x_buffer, @width],
- [@height, @height, @x_buffer, @width]]
-
- @svg.selectAll("line")
- .data(border_coords)
- .enter()
- .append("line")
- .attr("y1", (d) =>
- return d[0]
- )
- .attr("y2", (d) =>
- return d[1]
- )
- .attr("x1", (d) =>
- return d[2]
- )
- .attr("x2", (d) =>
- return d[3]
- )
- .style("stroke", "#000")
-
- create_scales: () ->
- #@x_scale = d3.scale.linear()
- # .domain([0, d3.max(@x_coords)])
- # .range([@x_buffer, @width])
- console.log("y_axis_filter:", @y_axis_filter)
- if '24' of @chromosomes
- console.log("@chromosomes[24]:", @chromosomes['24'])
- console.log("@chromosomes[23]:", @chromosomes['23'])
- console.log("@total_length:", @total_length)
- console.log("d3.max(@xcoords):", d3.max(@x_coords))
- @x_scale = d3.scale.linear()
- .domain([0, (@total_length + @chromosomes['24'])])
- .range([@x_buffer, @width])
- else
- @x_scale = d3.scale.linear()
- .domain([0, (@total_length + @chromosomes['20'])])
- .range([@x_buffer, @width])
- @y_scale = d3.scale.linear()
- .domain([@y_axis_filter, @y_max])
- .range([@height, @y_buffer + @legend_buffer])
-
- create_x_axis_tick_values: () ->
- tick_vals = []
- for val in [25..@cumulative_chr_lengths[0]] when val%25 == 0
- tick_vals.push(val)
-
- for length, i in @cumulative_chr_lengths
- if i == 0
- continue
- chr_ticks = []
- tick_count = Math.floor(@chr_lengths[i]/25)
- tick_val = parseInt(@cumulative_chr_lengths[i-1])
- for tick in [0..(tick_count-1)]
- tick_val += 25
- chr_ticks.push(tick_val)
- Array::push.apply tick_vals, chr_ticks
-
- #console.log("tick_vals:", tick_vals)
- return tick_vals
-
- add_x_axis: () ->
- @xAxis = d3.svg.axis()
- .scale(@x_scale)
- .orient("bottom")
- .tickValues(@create_x_axis_tick_values())
-
- next_chr = 1
- tmp_tick_val = 0
- @xAxis.tickFormat((d) =>
- d3.format("d") #format as integer
- if d < @cumulative_chr_lengths[0]
- tick_val = d
- else
- next_chr_length = @cumulative_chr_lengths[next_chr]
- if d > next_chr_length
- next_chr += 1
- tmp_tick_val = 25
- tick_val = tmp_tick_val
- else
- tmp_tick_val += 25
- tick_val = tmp_tick_val
- return (tick_val)
- )
-
- @svg.append("g")
- .attr("class", "x_axis")
- .attr("transform", "translate(0," + @height + ")")
- .call(@xAxis)
- .selectAll("text")
- .attr("text-anchor", "right")
- .attr("dx", "-1.6em")
- .attr("transform", (d) =>
- return "translate(-12,0) rotate(-90)"
- )
- #.attr("dy", "-1.0em")
-
- add_y_axis: () ->
- @yAxis = d3.svg.axis()
- .scale(@y_scale)
- .orient("left")
- .ticks(5)
-
- @svg.append("g")
- .attr("class", "y_axis")
- .attr("transform", "translate(" + @x_buffer + ",0)")
- .call(@yAxis)
-
- add_axis_labels: () ->
- @svg.append("text")
- .attr("transform","rotate(-90)")
- .attr("y", 0 - (@height / 2))
- .attr("x", @x_buffer)
- .attr("dy", "1em")
- .style("text-anchor", "middle")
- .text("LOD Score")
-
- add_chr_lines: () ->
- @svg.selectAll("line")
- .data(@cumulative_chr_lengths, (d) =>
- return d
- )
- .enter()
- .append("line")
- .attr("x1", @x_scale)
- .attr("x2", @x_scale)
- .attr("y1", @y_buffer + @legend_buffer)
- .attr("y2", @height)
- .style("stroke", "#ccc")
-
-
- fill_chr_areas: () ->
- console.log("cumu_chr_lengths:", @cumulative_chr_lengths)
- console.log("example:", @x_scale(@cumulative_chr_lengths[0]))
- @svg.selectAll("rect.chr_fill_area")
- .data(_.zip(@chr_lengths, @cumulative_chr_lengths), (d) =>
- return d
- )
- .enter()
- .append("rect")
- .attr("id", (d, i) =>
- return "chr_fill_area_" + i)
- .attr("x", (d, i) =>
- return @x_scale(d[1] - d[0])
- )
- .attr("y", @y_buffer + @legend_buffer + 2)
- .attr("width", (d, i) =>
- starting = @x_scale(d[1] - d[0])
- ending = @x_scale(@cumulative_chr_lengths[i])
- width = ending - starting
- console.log("width:", d[0])
- return width
- )
- .attr("height", @height-@y_buffer - @legend_buffer-3)
- .attr("fill", (d, i) =>
- if (i+1)%2
- return darkrect
- else
- return lightrect
- )
- .on("mouseover", (d, i) =>
- this_id = "chr_fill_area_" + i
- console.log("this_id:", this_id)
- d3.select("#" + this_id)
- .attr("fill", hoverrect)
- )
- .on("mouseout", (d, i) =>
- this_id = "chr_fill_area_" + i
- d3.select("#" + this_id)
- .attr("fill", () =>
- if (i+1)%2
- return darkrect
- else
- return lightrect
- )
- )
-
- add_chr_labels: () ->
- chr_names = []
- for key of @chromosomes
- chr_names.push(key)
- chr_info = _.zip(chr_names, @chr_lengths, @cumulative_chr_lengths)
- @svg.selectAll("text")
- .data(chr_info, (d) =>
- return d
- )
- .enter()
- .append("text")
- .attr("class", "chr_label")
- .text((d) =>
- if @max_chr == 23
- if d[0] == "23"
- return "X"
- else if d[0] == "24"
- return "X/Y"
- else
- return d[0]
- else if @max_chr == 19
- if d[0] == "20"
- return "X"
- else
- return d[0]
- )
- .attr("x", (d) =>
- return @x_scale(d[2] - d[1]/2)
- )
- .attr("y", @height * 0.1 + @legend_buffer)
- .attr("dx", "0em")
- .attr("text-anchor", "middle")
- .attr("font-family", "sans-serif")
- .attr("font-size", "18px")
- .attr("cursor", "pointer")
- .attr("fill", "black")
- .on("click", (d) =>
- @redraw_plot(d)
- )
-
- add_plot_points: () ->
- @plot_point = @svg.selectAll("circle")
- .data(@plot_coordinates)
- .enter()
- .append("circle")
- .attr("cx", (d) =>
- return @x_scale(d[0])
- )
- .attr("cy", (d) =>
- return @y_scale(d[1])
- )
- .attr("r", (d) =>
- #if d[1] > 3
- # return 3
- #else
- return 2
- )
- .attr("fill", (d) =>
- #if d[1] > 3
- # return "white"
- #else
- return "black"
- )
- .attr("stroke", "black")
- .attr("stroke-width", "1")
- .attr("id", (d) =>
- return "point_" + String(d[2])
- )
- .classed("circle", true)
- .on("mouseover", (d) =>
- console.log("d3.event is:", d3.event)
- console.log("d is:", d)
- this_id = "point_" + String(d[2])
- d3.select("#" + this_id).classed("d3_highlight", true)
- .attr("r", 5)
- .attr("stroke", "none")
- .attr("fill", "blue")
- .call(@show_marker_in_table(d))
- )
- .on("mouseout", (d) =>
- this_id = "point_" + String(d[2])
- d3.select("#" + this_id).classed("d3_highlight", false)
- .attr("r", (d) =>
- #if d[1] > 2
- # return 3
- #else
- return 2
- )
- .attr("fill", (d) =>
- #if d[1] > 2
- # return "white"
- #else
- return "black"
- )
- .attr("stroke", "black")
- .attr("stroke-width", "1")
- )
- .append("svg:title")
- .text((d) =>
- return d[2]
- )
-
- redraw_plot: (chr_ob) ->
- console.log("chr_name is:", chr_ob[0])
- console.log("chr_length is:", chr_ob[1])
- $('#manhattan_plot').remove()
- $('#manhattan_plot_container').append('<div id="manhattan_plot"></div>')
- root.chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob)
-
-
- create_zoom_pane: () ->
- zoom = d3.behavior.zoom()
- .on("zoom", draw);
-
- @svg.append("rect")
- .attr("class", "pane")
- .attr("width", @width)
- .attr("height", @height)
- .call(zoom)
-
- draw: () ->
- @svg.select("g.x_axis").call(@xAxis);
- @svg.select("g.y_axis").call(@yAxis);
- @svg.select("path.area").attr("d", area);
- @svg.select("path.line").attr("d", line);
-
-
-#root.LodChart = Lod_Chart
-
-new Lod_Chart(600, 1200) \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression.js b/wqflask/wqflask/static/new/javascript/marker_regression.js
deleted file mode 100755
index ba79df67..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression.js
+++ /dev/null
@@ -1,454 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var Lod_Chart, root,
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-root = typeof exports !== "undefined" && exports !== null ? exports : this;
-
-Lod_Chart = (function() {
- var darkrect, hoverrect, lightrect;
-
- darkrect = "#F1F1F9";
-
- lightrect = "#FBFBFF";
-
- hoverrect = "#E9CFEC";
-
- function Lod_Chart(height, width) {
- var _ref;
- this.height = height != null ? height : 800;
- this.width = width != null ? width : 1200;
- this.qtl_results = js_data.qtl_results;
- console.log("qtl_results are:", this.qtl_results);
- this.chromosomes = js_data.chromosomes;
- console.log("chromosomes are:", this.chromosomes);
- this.this_trait = js_data.this_trait;
- this.data_set = js_data.data_set;
- this.maf = js_data.maf;
- this.suggestive = js_data.suggestive;
- this.significant = js_data.significant;
- this.total_length = 0;
- this.max_chr = this.get_max_chr();
- this.x_coords = [];
- this.y_coords = [];
- this.marker_names = [];
- console.time('Create coordinates');
- this.get_qtl_count();
- this.create_coordinates();
- console.log("@x_coords: ", this.x_coords);
- console.log("@y_coords: ", this.y_coords);
- console.timeEnd('Create coordinates');
- _ref = this.get_chr_lengths(), this.chr_lengths = _ref[0], this.cumulative_chr_lengths = _ref[1];
- this.x_buffer = this.width / 30;
- this.y_buffer = this.height / 20;
- this.legend_buffer = 30;
- this.x_max = this.total_length;
- console.log("@x_max: ", this.x_max);
- console.log("@x_buffer: ", this.x_buffer);
- this.y_max = d3.max(this.y_coords) * 1.2;
- this.svg = this.create_svg();
- console.log("svg created");
- this.plot_coordinates = _.zip(this.x_coords, this.y_coords, this.marker_names);
- console.log("coordinates:", this.plot_coordinates);
- this.height -= this.y_buffer;
- this.create_scales();
- console.time('Create graph');
- this.create_graph();
- console.timeEnd('Create graph');
- }
-
- Lod_Chart.prototype.get_max_chr = function() {
- var chr, max_chr, result, _i, _len, _ref;
- max_chr = 0;
- _ref = this.qtl_results;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- chr = parseInt(result.chr);
- if (!_.isNaN(chr)) {
- if (chr > max_chr) {
- max_chr = chr;
- }
- }
- }
- console.log("max_chr", max_chr);
- return max_chr;
- };
-
- Lod_Chart.prototype.get_chr_lengths = function() {
-
- /*
- *Gets a list of both individual and cumulative (the position of one on the graph
- *is its own length plus the lengths of all preceding chromosomes) lengths in order
- *to draw the vertical lines separating chromosomes and the chromosome labels
- *
- */
- var chr_lengths, cumulative_chr_lengths, key, this_length, total_length;
- cumulative_chr_lengths = [];
- chr_lengths = [];
- total_length = 0;
- for (key in this.chromosomes) {
- this_length = this.chromosomes[key];
- chr_lengths.push(this_length);
- cumulative_chr_lengths.push(total_length + this_length);
- total_length += this_length;
- }
- console.log("chr_lengths: ", chr_lengths);
- return [chr_lengths, cumulative_chr_lengths];
- };
-
- Lod_Chart.prototype.get_qtl_count = function() {
- var high_qtl_count, result, _i, _len, _ref;
- high_qtl_count = 0;
- _ref = js_data.qtl_results;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- if (result.lod_score > 1) {
- high_qtl_count += 1;
- }
- }
- console.log("high_qtl_count:", high_qtl_count);
- return this.y_axis_filter = 0;
- };
-
- Lod_Chart.prototype.create_coordinates = function() {
- var chr_length, chr_lengths, chr_seen, result, _i, _len, _ref, _ref1;
- chr_lengths = [];
- chr_seen = [];
- _ref = js_data.qtl_results;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- if (result.chr === "X") {
- chr_length = parseFloat(this.chromosomes[13]);
- } else {
- chr_length = parseFloat(this.chromosomes[result.chr]);
- }
- if (!(_ref1 = result.chr, __indexOf.call(chr_seen, _ref1) >= 0)) {
- chr_seen.push(result.chr);
- chr_lengths.push(chr_length);
- console.log("result.chr:", result.chr);
- console.log("total_length:", this.total_length);
- if (parseInt(result.chr) !== 1) {
- console.log("plus:", chr_lengths.length - 2);
- console.log("chr_lengths.length", chr_lengths.length);
- this.total_length += parseFloat(chr_lengths[chr_lengths.length - 2]);
- }
- }
- if (result.lod_score > this.y_axis_filter) {
- this.x_coords.push(this.total_length + parseFloat(result.Mb));
- this.y_coords.push(result.lod_score);
- this.marker_names.push(result.name);
- }
- }
- return this.total_length += parseFloat(chr_lengths[chr_lengths.length - 1]);
- };
-
- Lod_Chart.prototype.show_marker_in_table = function(marker_info) {
- var marker_name;
- console.log("in show_marker_in_table");
-
- /* Searches for the select marker in the results table below */
- if (marker_info) {
- marker_name = marker_info[2];
- return $("#qtl_results_filter").find("input:first").val(marker_name).trigger('change');
- }
- };
-
- Lod_Chart.prototype.create_svg = function() {
- var svg;
- svg = d3.select("#manhattan_plot").append("svg").attr("class", "manhattan_plot").attr("width", this.width + this.x_buffer).attr("height", this.height + this.y_buffer).append("g");
- return svg;
- };
-
- Lod_Chart.prototype.create_graph = function() {
- this.create_legend();
- this.add_border();
- this.add_x_axis();
- this.add_y_axis();
- this.add_axis_labels();
- this.add_chr_lines();
- this.fill_chr_areas();
- this.add_chr_labels();
- return this.add_plot_points();
- };
-
- Lod_Chart.prototype.create_legend = function() {
- this.svg.append("text").attr("class", "legend").text("Trait: " + this.this_trait + " : " + this.data_set).attr("x", this.x_buffer).attr("y", 20).attr("dx", "0em").attr("text-anchor", "left").attr("font-family", "sans-serif").attr("font-size", "16px").attr("fill", "black");
- return this.svg.append("text").attr("class", "legend").text("MAF: " + this.maf).attr("x", this.x_buffer).attr("y", 38).attr("dx", "0em").attr("text-anchor", "left").attr("font-family", "sans-serif").attr("font-size", "16px").attr("fill", "black");
- };
-
- Lod_Chart.prototype.add_border = function() {
- var border_coords;
- border_coords = [[this.y_buffer + this.legend_buffer, this.height, this.x_buffer, this.x_buffer], [this.y_buffer + this.legend_buffer, this.height, this.width, this.width], [this.y_buffer + this.legend_buffer, this.y_buffer + this.legend_buffer, this.x_buffer, this.width], [this.height, this.height, this.x_buffer, this.width]];
- return this.svg.selectAll("line").data(border_coords).enter().append("line").attr("y1", (function(_this) {
- return function(d) {
- return d[0];
- };
- })(this)).attr("y2", (function(_this) {
- return function(d) {
- return d[1];
- };
- })(this)).attr("x1", (function(_this) {
- return function(d) {
- return d[2];
- };
- })(this)).attr("x2", (function(_this) {
- return function(d) {
- return d[3];
- };
- })(this)).style("stroke", "#000");
- };
-
- Lod_Chart.prototype.create_scales = function() {
- console.log("y_axis_filter:", this.y_axis_filter);
- if ('24' in this.chromosomes) {
- console.log("@chromosomes[24]:", this.chromosomes['24']);
- console.log("@chromosomes[23]:", this.chromosomes['23']);
- console.log("@total_length:", this.total_length);
- console.log("d3.max(@xcoords):", d3.max(this.x_coords));
- this.x_scale = d3.scale.linear().domain([0, this.total_length + this.chromosomes['24']]).range([this.x_buffer, this.width]);
- } else {
- this.x_scale = d3.scale.linear().domain([0, this.total_length + this.chromosomes['20']]).range([this.x_buffer, this.width]);
- }
- return this.y_scale = d3.scale.linear().domain([this.y_axis_filter, this.y_max]).range([this.height, this.y_buffer + this.legend_buffer]);
- };
-
- Lod_Chart.prototype.create_x_axis_tick_values = function() {
- var chr_ticks, i, length, tick, tick_count, tick_val, tick_vals, val, _i, _j, _k, _len, _ref, _ref1, _ref2;
- tick_vals = [];
- for (val = _i = 25, _ref = this.cumulative_chr_lengths[0]; 25 <= _ref ? _i <= _ref : _i >= _ref; val = 25 <= _ref ? ++_i : --_i) {
- if (val % 25 === 0) {
- tick_vals.push(val);
- }
- }
- _ref1 = this.cumulative_chr_lengths;
- for (i = _j = 0, _len = _ref1.length; _j < _len; i = ++_j) {
- length = _ref1[i];
- if (i === 0) {
- continue;
- }
- chr_ticks = [];
- tick_count = Math.floor(this.chr_lengths[i] / 25);
- tick_val = parseInt(this.cumulative_chr_lengths[i - 1]);
- for (tick = _k = 0, _ref2 = tick_count - 1; 0 <= _ref2 ? _k <= _ref2 : _k >= _ref2; tick = 0 <= _ref2 ? ++_k : --_k) {
- tick_val += 25;
- chr_ticks.push(tick_val);
- }
- Array.prototype.push.apply(tick_vals, chr_ticks);
- }
- return tick_vals;
- };
-
- Lod_Chart.prototype.add_x_axis = function() {
- var next_chr, tmp_tick_val;
- this.xAxis = d3.svg.axis().scale(this.x_scale).orient("bottom").tickValues(this.create_x_axis_tick_values());
- next_chr = 1;
- tmp_tick_val = 0;
- this.xAxis.tickFormat((function(_this) {
- return function(d) {
- var next_chr_length, tick_val;
- d3.format("d");
- if (d < _this.cumulative_chr_lengths[0]) {
- tick_val = d;
- } else {
- next_chr_length = _this.cumulative_chr_lengths[next_chr];
- if (d > next_chr_length) {
- next_chr += 1;
- tmp_tick_val = 25;
- tick_val = tmp_tick_val;
- } else {
- tmp_tick_val += 25;
- tick_val = tmp_tick_val;
- }
- }
- return tick_val;
- };
- })(this));
- return this.svg.append("g").attr("class", "x_axis").attr("transform", "translate(0," + this.height + ")").call(this.xAxis).selectAll("text").attr("text-anchor", "right").attr("dx", "-1.6em").attr("transform", (function(_this) {
- return function(d) {
- return "translate(-12,0) rotate(-90)";
- };
- })(this));
- };
-
- Lod_Chart.prototype.add_y_axis = function() {
- this.yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5);
- return this.svg.append("g").attr("class", "y_axis").attr("transform", "translate(" + this.x_buffer + ",0)").call(this.yAxis);
- };
-
- Lod_Chart.prototype.add_axis_labels = function() {
- return this.svg.append("text").attr("transform", "rotate(-90)").attr("y", 0 - (this.height / 2)).attr("x", this.x_buffer).attr("dy", "1em").style("text-anchor", "middle").text("LOD Score");
- };
-
- Lod_Chart.prototype.add_chr_lines = function() {
- return this.svg.selectAll("line").data(this.cumulative_chr_lengths, (function(_this) {
- return function(d) {
- return d;
- };
- })(this)).enter().append("line").attr("x1", this.x_scale).attr("x2", this.x_scale).attr("y1", this.y_buffer + this.legend_buffer).attr("y2", this.height).style("stroke", "#ccc");
- };
-
- Lod_Chart.prototype.fill_chr_areas = function() {
- console.log("cumu_chr_lengths:", this.cumulative_chr_lengths);
- console.log("example:", this.x_scale(this.cumulative_chr_lengths[0]));
- return this.svg.selectAll("rect.chr_fill_area").data(_.zip(this.chr_lengths, this.cumulative_chr_lengths), (function(_this) {
- return function(d) {
- return d;
- };
- })(this)).enter().append("rect").attr("id", (function(_this) {
- return function(d, i) {
- return "chr_fill_area_" + i;
- };
- })(this)).attr("x", (function(_this) {
- return function(d, i) {
- return _this.x_scale(d[1] - d[0]);
- };
- })(this)).attr("y", this.y_buffer + this.legend_buffer + 2).attr("width", (function(_this) {
- return function(d, i) {
- var ending, starting, width;
- starting = _this.x_scale(d[1] - d[0]);
- ending = _this.x_scale(_this.cumulative_chr_lengths[i]);
- width = ending - starting;
- console.log("width:", d[0]);
- return width;
- };
- })(this)).attr("height", this.height - this.y_buffer - this.legend_buffer - 3).attr("fill", (function(_this) {
- return function(d, i) {
- if ((i + 1) % 2) {
- return darkrect;
- } else {
- return lightrect;
- }
- };
- })(this)).on("mouseover", (function(_this) {
- return function(d, i) {
- var this_id;
- this_id = "chr_fill_area_" + i;
- console.log("this_id:", this_id);
- return d3.select("#" + this_id).attr("fill", hoverrect);
- };
- })(this)).on("mouseout", (function(_this) {
- return function(d, i) {
- var this_id;
- this_id = "chr_fill_area_" + i;
- return d3.select("#" + this_id).attr("fill", function() {
- if ((i + 1) % 2) {
- return darkrect;
- } else {
- return lightrect;
- }
- });
- };
- })(this));
- };
-
- Lod_Chart.prototype.add_chr_labels = function() {
- var chr_info, chr_names, key;
- chr_names = [];
- for (key in this.chromosomes) {
- chr_names.push(key);
- }
- chr_info = _.zip(chr_names, this.chr_lengths, this.cumulative_chr_lengths);
- return this.svg.selectAll("text").data(chr_info, (function(_this) {
- return function(d) {
- return d;
- };
- })(this)).enter().append("text").attr("class", "chr_label").text((function(_this) {
- return function(d) {
- if (_this.max_chr === 23) {
- if (d[0] === "23") {
- return "X";
- } else if (d[0] === "24") {
- return "X/Y";
- } else {
- return d[0];
- }
- } else if (_this.max_chr === 19) {
- if (d[0] === "20") {
- return "X";
- } else {
- return d[0];
- }
- }
- };
- })(this)).attr("x", (function(_this) {
- return function(d) {
- return _this.x_scale(d[2] - d[1] / 2);
- };
- })(this)).attr("y", this.height * 0.1 + this.legend_buffer).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px").attr("cursor", "pointer").attr("fill", "black").on("click", (function(_this) {
- return function(d) {
- return _this.redraw_plot(d);
- };
- })(this));
- };
-
- Lod_Chart.prototype.add_plot_points = function() {
- return this.plot_point = this.svg.selectAll("circle").data(this.plot_coordinates).enter().append("circle").attr("cx", (function(_this) {
- return function(d) {
- return _this.x_scale(d[0]);
- };
- })(this)).attr("cy", (function(_this) {
- return function(d) {
- return _this.y_scale(d[1]);
- };
- })(this)).attr("r", (function(_this) {
- return function(d) {
- return 2;
- };
- })(this)).attr("fill", (function(_this) {
- return function(d) {
- return "black";
- };
- })(this)).attr("stroke", "black").attr("stroke-width", "1").attr("id", (function(_this) {
- return function(d) {
- return "point_" + String(d[2]);
- };
- })(this)).classed("circle", true).on("mouseover", (function(_this) {
- return function(d) {
- var this_id;
- console.log("d3.event is:", d3.event);
- console.log("d is:", d);
- this_id = "point_" + String(d[2]);
- return d3.select("#" + this_id).classed("d3_highlight", true).attr("r", 5).attr("stroke", "none").attr("fill", "blue").call(_this.show_marker_in_table(d));
- };
- })(this)).on("mouseout", (function(_this) {
- return function(d) {
- var this_id;
- this_id = "point_" + String(d[2]);
- return d3.select("#" + this_id).classed("d3_highlight", false).attr("r", function(d) {
- return 2;
- }).attr("fill", function(d) {
- return "black";
- }).attr("stroke", "black").attr("stroke-width", "1");
- };
- })(this)).append("svg:title").text((function(_this) {
- return function(d) {
- return d[2];
- };
- })(this));
- };
-
- Lod_Chart.prototype.redraw_plot = function(chr_ob) {
- console.log("chr_name is:", chr_ob[0]);
- console.log("chr_length is:", chr_ob[1]);
- $('#manhattan_plot').remove();
- $('#manhattan_plot_container').append('<div id="manhattan_plot"></div>');
- return root.chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob);
- };
-
- Lod_Chart.prototype.create_zoom_pane = function() {
- var zoom;
- zoom = d3.behavior.zoom().on("zoom", draw);
- return this.svg.append("rect").attr("class", "pane").attr("width", this.width).attr("height", this.height).call(zoom);
- };
-
- Lod_Chart.prototype.draw = function() {
- this.svg.select("g.x_axis").call(this.xAxis);
- this.svg.select("g.y_axis").call(this.yAxis);
- this.svg.select("path.area").attr("d", area);
- return this.svg.select("path.line").attr("d", line);
- };
-
- return Lod_Chart;
-
-})();
-
-new Lod_Chart(600, 1200);
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee b/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee
deleted file mode 100755
index 7eb62ec1..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee
+++ /dev/null
@@ -1,212 +0,0 @@
-$ ->
- sort_number = (a, b) ->
- return a - b
-
-
- class Permutation_Histogram
- constructor: ->
- @process_data()
- @display_graph()
-
- process_data: ->
- # Put the data in a format needed for graphing
- # The permutation count for a particular integer range (10-11 or 12-13 for example)
- # will be on the y-axis; LRS values will be on the x-axis
- lrs_array = js_data.lrs_array
- bars = {}
- for lrs in lrs_array
- floored = Math.floor(lrs)
- if floored not of bars
- bars[floored] = 0
- bars[floored] += 1
-
- # Now we need to take the unordered hash
- # And order the keys
- keys = []
- for key of bars
- keys.push(key)
-
- keys.sort(sort_number)
-
-
- # Now that we have the ordered keys above
- # We can build an array of arrays that jqPlot will use
- @bars_ordered = []
- for key in keys
- @bars_ordered.push([parseInt(key), bars[key]])
-
- console.log("bars is:", bars)
- console.log("keys are:", keys)
- console.log("bars_ordered are:", @bars_ordered)
- #return bars_ordered
-
- display_graph: ->
-
- $.jqplot('permutation_histogram', [@bars_ordered],
- title: 'Permutation Histogram'
- seriesDefaults:
- renderer:$.jqplot.BarRenderer
- rendererOptions:
- barWidth: 15
- pointLabels:
- show: true
- axesDefaults:
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- axes:
- xaxis:
- min: 0
- label: "LRS"
- pad: 1.1
- yaxis:
- min: 0
- label: "Frequency"
- )
-
- #process_qtl_results = ->
- # qtl_results = js_data.qtl_results
-
- #display_manhattan_plot = ->
-
-
-
- #bars_ordered = process_lrs_array()
- #display_permutation_histogram(bars_ordered)
-
- class Chromosome
- constructor: (@name) ->
- @max_mb = 0
- @plot_points = []
-
- process_point: (mb, lrs) ->
- if mb > @max_mb
- @max_mb = mb
- @plot_points.push([mb, lrs])
-
- display_graph: (max_lrs) ->
- div_name = 'manhattan_plot_' + @name
- console.log("div_name:", div_name)
-
- #console.log("max_lrs is", max_lrs)
-
-
- x_axis_max = Math.ceil(@max_mb/25) * 25
- x_axis_ticks = []
- x_tick = 0
- while (x_tick <= x_axis_max)
- x_axis_ticks.push(x_tick)
- x_tick += 25
-
-
- plot_options =
- title: @name
- seriesDefaults:
- showLine: false
- markerRenderer: $.jqplot.MarkerRenderer
- markerOptions:
- style: "filledCircle"
- size: 3
- axesDefaults:
- tickRenderer: $.jqplot.CanvasAxisTickRenderer
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- axes:
- xaxis:
- min: 0
- max: x_axis_max
- ticks: x_axis_ticks
- tickOptions:
- angle: 90
- showGridline: false
- formatString: '%d'
- label: "Megabases"
-
-
- if @name == "1"
- plot_options.axes.yaxis =
- min: 0
- max: Math.floor(max_lrs + 0.1 * max_lrs)
- tickInterval: 1
- label: "LRS"
- tickOptions:
- formatString: '%d'
- showGridline: false
- else
- plot_options.axes.yaxis =
- show: false
- min: 0
- max: Math.floor(max_lrs + 0.1 * max_lrs)
- tickInterval: 1
- tickOptions:
- formatString: '%d'
- showGridline: false
-
- $.jqplot(div_name, [@plot_points], plot_options)
-
- class Manhattan_Plot
- constructor: ->
- @max_lrs = 0
-
- @chromosomes = {}
- @build_chromosomes()
-
- @display_graphs()
-
- build_chromosomes: ->
- for result in js_data.qtl_results
- #if result.locus.chromosome == '1'
- chromosome = result.locus.chromosome
- if chromosome not of @chromosomes
- @chromosomes[chromosome] = new Chromosome(chromosome)
- mb = parseInt(result.locus.mb)
- if result.lrs > @max_lrs
- @max_lrs = result.lrs
- @chromosomes[chromosome].process_point(mb, result.lrs)
-
- display_graphs: ->
- ### Call display_graph for each chromosome ###
-
- # First get everything in the right order
- numbered_keys = []
- extra_keys = []
- for key of @chromosomes
- if isNaN(key)
- extra_keys.push(key)
- else
- numbered_keys.push(key)
-
- numbered_keys.sort(sort_number)
- extra_keys.sort()
- keys = numbered_keys.concat(extra_keys)
- console.log("keys are:", keys)
-
- for key in keys
- this_class = "manhattan_plot_segment"
- if key != "1"
- this_class += " no_y_axis"
- html = """<div id="manhattan_plot_#{ key }" class=#{ this_class }></div>"""
- console.log("html is:", html)
- $("#manhattan_plots").append(html)
- @chromosomes[key].display_graph(@max_lrs)
-
- $('.jqplot-yaxis').hide()
- $('#manhattan_plot_1').find('.jqplot-yaxis').show()
-
- #$(".jqplot-yaxis").hide()
- #$(".jqplot-yaxis-tick").hide()
-
-
- #process_data: ->
- # qtl_results = js_data.qtl_results
- # #console.log("qtl_results: ", qtl_results)
- # @plot_points = []
- # @max_mb = 0
- # for result in qtl_results
- # if result.locus.chromosome == '1'
- # mb = parseInt(result.locus.mb)
- # if mb > @max_mb
- # @max_mb = mb
- # @plot_points.push([mb, result.lrs])
-
-
-
- new Permutation_Histogram
- new Manhattan_Plot \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression_old.js b/wqflask/wqflask/static/new/javascript/marker_regression_old.js
deleted file mode 100755
index c2d41863..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression_old.js
+++ /dev/null
@@ -1,218 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-$(function() {
- var Chromosome, Manhattan_Plot, Permutation_Histogram, sort_number;
- sort_number = function(a, b) {
- return a - b;
- };
- Permutation_Histogram = (function() {
- function Permutation_Histogram() {
- this.process_data();
- this.display_graph();
- }
-
- Permutation_Histogram.prototype.process_data = function() {
- var bars, floored, key, keys, lrs, lrs_array, _i, _j, _len, _len1;
- lrs_array = js_data.lrs_array;
- bars = {};
- for (_i = 0, _len = lrs_array.length; _i < _len; _i++) {
- lrs = lrs_array[_i];
- floored = Math.floor(lrs);
- if (!(floored in bars)) {
- bars[floored] = 0;
- }
- bars[floored] += 1;
- }
- keys = [];
- for (key in bars) {
- keys.push(key);
- }
- keys.sort(sort_number);
- this.bars_ordered = [];
- for (_j = 0, _len1 = keys.length; _j < _len1; _j++) {
- key = keys[_j];
- this.bars_ordered.push([parseInt(key), bars[key]]);
- }
- console.log("bars is:", bars);
- console.log("keys are:", keys);
- return console.log("bars_ordered are:", this.bars_ordered);
- };
-
- Permutation_Histogram.prototype.display_graph = function() {
- return $.jqplot('permutation_histogram', [this.bars_ordered], {
- title: 'Permutation Histogram',
- seriesDefaults: {
- renderer: $.jqplot.BarRenderer,
- rendererOptions: {
- barWidth: 15
- },
- pointLabels: {
- show: true
- }
- },
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- axes: {
- xaxis: {
- min: 0,
- label: "LRS",
- pad: 1.1
- },
- yaxis: {
- min: 0,
- label: "Frequency"
- }
- }
- });
- };
-
- return Permutation_Histogram;
-
- })();
- Chromosome = (function() {
- function Chromosome(name) {
- this.name = name;
- this.max_mb = 0;
- this.plot_points = [];
- }
-
- Chromosome.prototype.process_point = function(mb, lrs) {
- if (mb > this.max_mb) {
- this.max_mb = mb;
- }
- return this.plot_points.push([mb, lrs]);
- };
-
- Chromosome.prototype.display_graph = function(max_lrs) {
- var div_name, plot_options, x_axis_max, x_axis_ticks, x_tick;
- div_name = 'manhattan_plot_' + this.name;
- console.log("div_name:", div_name);
- x_axis_max = Math.ceil(this.max_mb / 25) * 25;
- x_axis_ticks = [];
- x_tick = 0;
- while (x_tick <= x_axis_max) {
- x_axis_ticks.push(x_tick);
- x_tick += 25;
- }
- plot_options = {
- title: this.name,
- seriesDefaults: {
- showLine: false,
- markerRenderer: $.jqplot.MarkerRenderer,
- markerOptions: {
- style: "filledCircle",
- size: 3
- }
- },
- axesDefaults: {
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- axes: {
- xaxis: {
- min: 0,
- max: x_axis_max,
- ticks: x_axis_ticks,
- tickOptions: {
- angle: 90,
- showGridline: false,
- formatString: '%d'
- },
- label: "Megabases"
- }
- }
- };
- if (this.name === "1") {
- plot_options.axes.yaxis = {
- min: 0,
- max: Math.floor(max_lrs + 0.1 * max_lrs),
- tickInterval: 1,
- label: "LRS",
- tickOptions: {
- formatString: '%d',
- showGridline: false
- }
- };
- } else {
- plot_options.axes.yaxis = {
- show: false,
- min: 0,
- max: Math.floor(max_lrs + 0.1 * max_lrs),
- tickInterval: 1,
- tickOptions: {
- formatString: '%d',
- showGridline: false
- }
- };
- }
- return $.jqplot(div_name, [this.plot_points], plot_options);
- };
-
- return Chromosome;
-
- })();
- Manhattan_Plot = (function() {
- function Manhattan_Plot() {
- this.max_lrs = 0;
- this.chromosomes = {};
- this.build_chromosomes();
- this.display_graphs();
- }
-
- Manhattan_Plot.prototype.build_chromosomes = function() {
- var chromosome, mb, result, _i, _len, _ref, _results;
- _ref = js_data.qtl_results;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- chromosome = result.locus.chromosome;
- if (!(chromosome in this.chromosomes)) {
- this.chromosomes[chromosome] = new Chromosome(chromosome);
- }
- mb = parseInt(result.locus.mb);
- if (result.lrs > this.max_lrs) {
- this.max_lrs = result.lrs;
- }
- _results.push(this.chromosomes[chromosome].process_point(mb, result.lrs));
- }
- return _results;
- };
-
- Manhattan_Plot.prototype.display_graphs = function() {
-
- /* Call display_graph for each chromosome */
- var extra_keys, html, key, keys, numbered_keys, this_class, _i, _len;
- numbered_keys = [];
- extra_keys = [];
- for (key in this.chromosomes) {
- if (isNaN(key)) {
- extra_keys.push(key);
- } else {
- numbered_keys.push(key);
- }
- }
- numbered_keys.sort(sort_number);
- extra_keys.sort();
- keys = numbered_keys.concat(extra_keys);
- console.log("keys are:", keys);
- for (_i = 0, _len = keys.length; _i < _len; _i++) {
- key = keys[_i];
- this_class = "manhattan_plot_segment";
- if (key !== "1") {
- this_class += " no_y_axis";
- }
- html = "<div id=\"manhattan_plot_" + key + "\" class=" + this_class + "></div>";
- console.log("html is:", html);
- $("#manhattan_plots").append(html);
- this.chromosomes[key].display_graph(this.max_lrs);
- }
- $('.jqplot-yaxis').hide();
- return $('#manhattan_plot_1').find('.jqplot-yaxis').show();
- };
-
- return Manhattan_Plot;
-
- })();
- new Permutation_Histogram;
- return new Manhattan_Plot;
-});
diff --git a/wqflask/wqflask/static/new/javascript/node_modules/.bin/cake b/wqflask/wqflask/static/new/javascript/node_modules/.bin/cake
deleted file mode 120000
index d95f32af..00000000
--- a/wqflask/wqflask/static/new/javascript/node_modules/.bin/cake
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/cake \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee b/wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee
deleted file mode 120000
index b57f275d..00000000
--- a/wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/coffee \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/show_corr.coffee b/wqflask/wqflask/static/new/javascript/show_corr.coffee
deleted file mode 100644
index 727d3d86..00000000
--- a/wqflask/wqflask/static/new/javascript/show_corr.coffee
+++ /dev/null
@@ -1,4 +0,0 @@
-root = exports ? this
-
-$ ->
- root.scatter_plot = new Scatter_Plot()
diff --git a/wqflask/wqflask/static/new/javascript/show_corr.js b/wqflask/wqflask/static/new/javascript/show_corr.js
deleted file mode 100644
index 900b2033..00000000
--- a/wqflask/wqflask/static/new/javascript/show_corr.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var root;
-
-root = typeof exports !== "undefined" && exports !== null ? exports : this;
-
-$(function() {
- return root.scatter_plot = new Scatter_Plot();
-});
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html
deleted file mode 100755
index 14bdb5a6..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-<style type="text/css">
-.warning { color: red; }
-</style>
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../lib/jquery.form.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
- jQuery(function() {
- // show a simple loading indicator
- var loader = jQuery('<div id="loader"><img src="images/loading.gif" alt="loading..." /></div>')
- .css({position: "relative", top: "1em", left: "25em", display: "inline"})
- .appendTo("body")
- .hide();
- jQuery().ajaxStart(function() {
- loader.show();
- }).ajaxStop(function() {
- loader.hide();
- }).ajaxError(function(a, b, e) {
- throw e;
- });
-
- var v = jQuery("#form").validate({
- submitHandler: function(form) {
- jQuery(form).ajaxSubmit({
- target: "#result"
- });
- }
- });
-
- jQuery("#reset").click(function() {
- v.resetForm();
- });
- });
-</script>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form method="post" class="cmxform" id="form" action="form.php">
- <fieldset>
- <legend>Login Form (Enter "foobar" as password)</legend>
- <p>
- <label for="user">Username</label>
- <input id="user" name="user" title="Please enter your username (at least 3 characters)" class="required" minlength="3" />
- </p>
- <p>
- <label for="pass">Password</label>
- <input type="password" name="password" id="password" class="required" minlength"5" />
- </p>
- <p>
- <input class="submit" type="submit" value="Login"/>
- </p>
- </fieldset>
-</form>
-
-<div id="result">Please login!</div>
-
-<br/>
-
-<button id="reset">Programmatically reset above form!</button>
-
-<p>Backend file: <a href="form.phps">form.phps</a></p>
-
-<a href="index.html">Back to main page</a>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js
deleted file mode 100755
index 245bc45a..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js
+++ /dev/null
@@ -1,27 +0,0 @@
-$(function(){
- $("#refreshimg").click(function(){
- $.post('newsession.php');
- $("#captchaimage").load('image_req.php');
- return false;
- });
-
- $("#captchaform").validate({
- rules: {
- captcha: {
- required: true,
- remote: "process.php"
- }
- },
- messages: {
- captcha: "Correct captcha is required. Click the captcha to generate a new one"
- },
- submitHandler: function() {
- alert("Correct captcha!");
- },
- success: function(label) {
- label.addClass("valid").text("Valid captcha!")
- },
- onkeyup: false
- });
-
-});
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttf b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttf
deleted file mode 100755
index 453eeb00..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttf
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php
deleted file mode 100755
index 6a65774c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-// Echo the image - timestamp appended to prevent caching
-echo '<a href="index.php" onclick="refreshimg(); return false;" title="Click to refresh image"><img src="images/image.jpg?' . time() . '" width="132" height="46" alt="Captcha image" /></a>';
-
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.png
deleted file mode 100755
index 7ef79de5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php
deleted file mode 100755
index bc571ab5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-// Begin the session
-session_start();
-
-// If the session is not present, set the variable to an error message
-if(!isset($_SESSION['captcha_id']))
- $str = 'ERROR!';
-// Else if it is present, set the variable to the session contents
-else
- $str = $_SESSION['captcha_id'];
-
-// Set the content type
-//header('Content-type: image/png');
-header('Cache-control: no-cache');
-
-// Create an image from button.png
-$image = imagecreatefrompng('button.png');
-
-// Set the font colour
-$colour = imagecolorallocate($image, 183, 178, 152);
-
-// Set the font
-$font = '../fonts/Anorexia.ttf';
-
-// Set a random integer for the rotation between -15 and 15 degrees
-$rotate = rand(-15, 15);
-
-// Create an image using our original image and adding the detail
-imagettftext($image, 14, $rotate, 18, 30, $colour, $font, $str);
-
-// Output the image as a png
-imagepng($image);
-
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php
deleted file mode 100755
index 74bd54f5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-// Make the page validate
-ini_set('session.use_trans_sid', '0');
-
-// Include the random string file
-require 'rand.php';
-
-// Begin the session
-session_start();
-
-// Set the session contents
-$_SESSION['captcha_id'] = $str;
-
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
- <title>AJAX CAPTCHA</title>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
- <meta name="keywords" content="AJAX,JHR,PHP,CAPTCHA,download,PHP CAPTCHA,AJAX CAPTCHA,AJAX PHP CAPTCHA,download AJAX CAPTCHA,download AJAX PHP CAPTCHA" />
- <meta name="description" content="An AJAX CAPTCHA script, written in PHP" />
-
- <script type="text/javascript" src="../../lib/jquery.js"></script>
- <script type="text/javascript" src="../../jquery.validate.js"></script>
- <script type="text/javascript" src="captcha.js"></script>
-
- <link rel="stylesheet" type="text/css" href="style.css" />
- <style type="text/css">
- img { border: 1px solid #eee; }
- p#statusgreen { font-size: 1.2em; background-color: #fff; color: #0a0; }
- p#statusred { font-size: 1.2em; background-color: #fff; color: #a00; }
- fieldset label { display: block; }
- fieldset div#captchaimage { float: left; margin-right: 15px; }
- fieldset input#captcha { width: 25%; border: 1px solid #ddd; padding: 2px; }
- fieldset input#submit { display: block; margin: 2% 0% 0% 0%; }
- #captcha.success {
- border: 1px solid #49c24f;
- background: #bcffbf;
- }
- #captcha.error {
- border: 1px solid #c24949;
- background: #ffbcbc;
- }
- </style>
-</head>
-
-<body>
-
-<h1><acronym title="Asynchronous JavaScript And XML">AJAX</acronym> <acronym title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</acronym>, based on <a href="http://psyrens.com/captcha/">http://psyrens.com/captcha/</a></h1>
-
-<form id="captchaform" action="">
-<fieldset>
- <div id="captchaimage"><a href="<?php echo $_SERVER['PHP_SELF']; ?>" id="refreshimg" title="Click to refresh image"><img src="images/image.php?<?php echo time(); ?>" width="132" height="46" alt="Captcha image" /></a></div>
- <label for="captcha">Enter the characters as seen on the image above (case insensitive):</label>
- <input type="text" maxlength="6" name="captcha" id="captcha" />
- <input type="submit" name="submit" id="submit" value="Check" />
-</fieldset>
-</form>
-
-<p>If you can&#39;t decipher the text on the image, click it to dynamically generate a new one.</p>
-
-</body>
-
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php
deleted file mode 100755
index 36ff45e2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-// Include the random string file
-require 'rand.php';
-
-// Begin a new session
-session_start();
-
-// Set the session contents
-$_SESSION['captcha_id'] = $str;
-
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php
deleted file mode 100755
index 24fe3a8b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-// Begin the session
-session_start();
-
-// To avoid case conflicts, make the input uppercase and check against the session value
-// If it's correct, echo '1' as a string
-if(strtoupper($_GET['captcha']) == $_SESSION['captcha_id'])
- echo 'true';
-// Else echo '0' as a string
-else
- echo 'false';
-
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php
deleted file mode 100755
index 88b595e7..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-// Create a random string, leaving out 'o' to avoid confusion with '0'
-$char = strtoupper(substr(str_shuffle('abcdefghjkmnpqrstuvwxyz'), 0, 4));
-
-// Concatenate the random string onto the random numbers
-// The font 'Anorexia' doesn't have a character for '8', so the numbers will only go up to 7
-// '0' is left out to avoid confusion with 'O'
-$str = rand(1, 7) . rand(1, 7) . $char;
-
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css
deleted file mode 100755
index c0bbe5f9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css
+++ /dev/null
@@ -1,140 +0,0 @@
-body {
- margin: 3% 5%;
- padding: 0;
- background-color: #fff;
- color: #333;
- font: 0.9em/1.3 Helvetica, Arial, Verdana, Sans-serif;
-}
-
-a:link, a:visited {
- background-color: #fff;
- color: #333;
- text-decoration: underline;
-}
-
-a:hover, a:focus, a:active {
- background-color: #ffb;
- color: #454545;
- text-decoration: underline;
-}
-
-h1 {
- margin: 2% 0%;
- padding: 1%;
- border-bottom: 1px solid #ddd;
- background-color: #f8f8f8;
- color: #666;
- font: normal 1.5em Helvetica, Arial, Verdana, Sans-serif;
-}
-
-h2 {
- margin: 2% 0%;
- padding: 1%;
- border-bottom: 1px solid #ddd;
- background-color: #f8f8f8;
- color: #666;
- font: normal 1.3em Helvetica, Arial, Verdana, Sans-serif;
-}
-
-h3 {
- margin: 2% 0%;
- padding: 1%;
- border-bottom: 1px solid #ddd;
- background-color: #f8f8f8;
- color: #666;
- font: normal 1.2em Helvetica, Arial, Verdana, Sans-serif;
-}
-
-table {
- margin: 0;
- padding: 0;
- width: 100%;
-}
-
-table th {
- border: 1px solid #ddd;
- font-weight: bold;
- text-align: left;
- padding: 1%;
-}
-
-table td {
- border: 1px solid #ddd;
- padding: 1%;
-}
-
-dl, dt, dd {
- margin: 0;
- padding: 0;
-}
-
-form {
- margin: 0;
- padding: 0;
-}
-
-fieldset {
- border: 1px solid #ddd;
- margin: 0% 0% 2% 0%;
- padding: 2%;
-}
-
-fieldset legend {
- margin: 0;
- padding: 0 4px;
- background-color: inherit;
- color: #333;
-}
-
-code {
- font: 1em "Courier New", Courier, Monospace;
-}
-
-pre code {
- font: 1.1em "Courier New", Courier, Monospace;
- border-bottom: 1px solid #eee;
-}
-
-img {
- border: 1px solid #eee;
-}
-
-p#statusgreen {
- font-size: 1.2em;
- background-color: #fff;
- color: #0a0;
-}
-
-p#statusred {
- font-size: 1.2em;
- background-color: #fff;
- color: #a00;
-}
-
-fieldset label {
- display: block;
-}
-
-fieldset label.error {
- color: red;
-}
-
-fieldset label.valid {
- color: green;
-}
-
-fieldset div#captchaimage {
- float: left;
- margin-right: 15px;
-}
-
-fieldset input#captcha {
- width: 25%;
- border: 1px solid #ddd;
- padding: 2px;
-}
-
-fieldset input#submit {
- display: block;
- margin: 2% 0% 0% 0%;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css
deleted file mode 100755
index 6990449f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css
+++ /dev/null
@@ -1,15 +0,0 @@
-.jscom, .mix htcom { color: #4040c2; }
-.com { color: green; }
-.regexp { color: maroon; }
-.string { color: teal; }
-.keywords { color: blue; }
-.global { color: #008; }
-.numbers { color: #880; }
-.comm { color: green; }
-.tag { color: blue; }
-.entity { color: blue; }
-.string { color: teal; }
-.aname { color: maroon; }
-.avalue { color: maroon; }
-.jquery { color: #00a; }
-.plugin { color: red; } \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css
deleted file mode 100755
index 120f5a47..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css
+++ /dev/null
@@ -1,46 +0,0 @@
-/**********************************
-
-Name: cmxform Styles
-
-***********************************/
-form.cmxform {
- width: 370px;
- font-size: 1.0em;
- color: #333;
-}
-
-form.cmxform legend {
- padding-left: 0;
-}
-
-form.cmxform legend, form.cmxform label {
- color: #333;
-}
-
-form.cmxform fieldset {
- border: none;
- border-top: 1px solid #C9DCA6;
- background: url(../images/cmxform-fieldset.gif) left bottom repeat-x;
- background-color: #F8FDEF;
-}
-
-form.cmxform fieldset fieldset {
- background: none;
-}
-
-form.cmxform fieldset p, form.cmxform fieldset fieldset {
- padding: 5px 10px 7px;
- background: url(../images/cmxform-divider.gif) left bottom repeat-x;
-}
-
-form.cmxform label.error, label.error {
- /* remove the next line when you have trouble in IE6 with labels in list */
- color: red;
- font-style: italic
-}
-div.error { display: none; }
-input { border: 1px solid black; }
-input.checkbox { border: none }
-input:focus { border: 1px dotted black; }
-input.error { border: 1px dotted red; }
-form.cmxform .gray * { color: gray; } \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css
deleted file mode 100755
index ac52f71b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css
+++ /dev/null
@@ -1,55 +0,0 @@
-/**********************************
-
-Use: cmxform template
-
-***********************************/
-form.cmxform fieldset {
- margin-bottom: 10px;
-}
-
-form.cmxform legend {
- padding: 0 2px;
- font-weight: bold;
- _margin: 0 -7px; /* IE Win */
-}
-
-form.cmxform label {
- display: inline-block;
- line-height: 1.8;
- vertical-align: top;
- cursor: hand;
-}
-
-form.cmxform fieldset p {
- list-style: none;
- padding: 5px;
- margin: 0;
-}
-
-form.cmxform fieldset fieldset {
- border: none;
- margin: 3px 0 0;
-}
-
-form.cmxform fieldset fieldset legend {
- padding: 0 0 5px;
- font-weight: normal;
-}
-
-form.cmxform fieldset fieldset label {
- display: block;
- width: auto;
-}
-
-form.cmxform label { width: 100px; } /* Width of labels */
-form.cmxform fieldset fieldset label { margin-left: 103px; } /* Width plus 3 (html space) */
-form.cmxform label.error {
- margin-left: 103px;
- width: 220px;
-}
-
-form.cmxform input.submit {
- margin-left: 103px;
-}
-
-/*\*//*/ form.cmxform legend { display: inline-block; } /* IE Mac legend fix */ \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css
deleted file mode 100755
index 84494e87..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css
+++ /dev/null
@@ -1,21 +0,0 @@
-body, div { font-family: 'lucida grande', helvetica, verdana, arial, sans-serif }
-body { margin: 0; padding: 0; font-size: small; color: #333 }
-h1, h2 { font-family: 'trebuchet ms', verdana, arial; padding: 10px; margin: 0 }
-h1 { font-size: large }
-#main { padding: 1em; }
-#banner { padding: 15px; background-color: #06b; color: white; font-size: large; border-bottom: 1px solid #ccc;
- background: url(../images/bg.gif) repeat-x; text-align: center }
-#banner a { color: white; }
-
-p { margin: 10px 0; }
-
-li { margin-left: 10px; }
-
-h3 { margin: 1em 0 0; }
-
-h1 { font-size: 2em; }
-h2 { font-size: 1.8em; }
-h3 { font-size: 1.6em; }
-h4 { font-size: 1.4em; }
-h5 { font-size: 1.2em; }
-
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css
deleted file mode 100755
index 5c376b37..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css
+++ /dev/null
@@ -1,61 +0,0 @@
-/**********************************
-
-Use: Reset Styles for all browsers
-
-***********************************/
-
-body, p, blockquote {
- margin: 0;
- padding: 0;
-}
-
-a img, iframe { border: none; }
-
-/* Headers
-------------------------------*/
-
-h1, h2, h3, h4, h5, h6 {
- margin: 0;
- padding: 0;
- font-size: 100%;
-}
-
-/* Lists
-------------------------------*/
-
-ul, ol, dl, li, dt, dd {
- margin: 0;
- padding: 0;
-}
-
-/* Links
-------------------------------*/
-
-a, a:link {}
-a:visited {}
-a:hover {}
-a:active {}
-
-/* Forms
-------------------------------*/
-
-form, fieldset {
- margin: 0;
- padding: 0;
-}
-
-fieldset { border: 1px solid #000; }
-
-legend {
- padding: 0;
- color: #000;
-}
-
-input, textarea, select {
- margin: 0;
- padding: 1px;
- font-size: 100%;
- font-family: inherit;
-}
-
-select { padding: 0; } \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css
deleted file mode 100755
index 840f572b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/**********************************
-
-Use: Main Screen Import
-
-***********************************/
-
-@import "reset.css";
-@import "core.css";
-
-@import "cmxformTemplate.css";
-@import "cmxform.css"; \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html
deleted file mode 100755
index 13952654..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - comment form example</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-<script src="../lib/jquery.metadata.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-$(document).ready(function() {
- $("#commentForm").validate({meta: "validate"});
- $("#commentForm2").validate();
- $("#commentForm3").validate({
- messages: {
- email: {
- required: 'Enter this!'
- }
- }
- });
-
-});
-</script>
-
-<style type="text/css">
-form { width: 500px; }
-form label { width: 250px; }
-form label.error,
-form input.submit { margin-left: 253px; }
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<p>Take a look at the source to see how messages can be customized with metadata.</p>
-
-<!-- Custom messages with custom "meta" setting -->
-<form class="cmxform" id="commentForm" method="post" action="">
- <fieldset>
- <legend>Please enter your email address</legend>
- <p>
-
- <label for="cemail">E-Mail *</label>
- <input id="cemail" name="email" class="{validate:{required:true, email:true, messages:{required:'Please enter your email address', email:'Please enter a valid email address'}}}"/>
- </p>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- </p>
- </fieldset>
-</form>
-<!-- Custom messages with default "meta" setting -->
-<form class="cmxform" id="commentForm2" method="post" action="">
- <fieldset>
- <legend>Please enter your email address</legend>
- <p>
-
- <label for="cemail">E-Mail *</label>
- <input id="cemail" name="email" class="{required:true, email:true, messages:{required:'Please enter your email address', email:'Please enter a valid email address'}}"/>
- </p>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- </p>
- </fieldset>
-</form>
-<!-- Custom message for "required" in metadata is overriden by a validate option -->
-<form class="cmxform" id="commentForm3" method="post" action="">
- <fieldset>
- <legend>Please enter your email address</legend>
- <p>
-
- <label for="cemail">E-Mail *</label>
- <input id="cemail" name="email" class="{required:true, email:true, messages:{email:'Please enter a valid email address'}}"/>
- </p>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- </p>
- </fieldset>
-</form>
-
-<a href="index.html">Back to main page</a>
-
-<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
-<script type="text/javascript">_uacct = "UA-2623402-1";urchinTracker();</script>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html
deleted file mode 100755
index 12397888..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
- // extend the current rules with new groovy ones
-
- // this one requires the text "buga", we define a default message, too
- $.validator.addMethod("buga", function(value) {
- return value == "buga";
- }, 'Please enter "buga"!');
-
- // this one requires the value to be the same as the first parameter
- $.validator.methods.equal = function(value, element, param) {
- return value == param;
- };
-
- $().ready(function() {
- var validator = $("#texttests").bind("invalid-form.validate", function() {
- $("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors, see details below.");
- }).validate({
- debug: true,
- errorElement: "em",
- errorContainer: $("#warning, #summary"),
- errorPlacement: function(error, element) {
- error.appendTo( element.parent("td").next("td") );
- },
- success: function(label) {
- label.text("ok!").addClass("success");
- },
- rules: {
- number: {
- required:true,
- minlength:3,
- maxlength:15,
- number:true
- },
- secret: "buga",
- math: {
- equal: 11
- }
- }
- });
-
- });
-</script>
-
-<style type="text/css">
-form.cmxform { width: 50em; }
-em.error {
- background:url("images/unchecked.gif") no-repeat 0px 0px;
- padding-left: 16px;
-}
-em.success {
- background:url("images/checked.gif") no-repeat 0px 0px;
- padding-left: 16px;
-}
-
-form.cmxform label.error {
- margin-left: auto;
- width: 250px;
-}
-em.error { color: black; }
-#warning { display: none; }
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form class="cmxform" id="texttests" method="get" action="foo.html">
- <h2 id="summary"></h2>
-
- <fieldset>
- <legend>Example with custom methods and heavily customized error display</legend>
- <table>
- <tr>
- <td><label for="number">textarea</label></td>
- <td><input id="number" name="number"
- title="Please enter a number with at least 3 and max 15 characters!" />
- </td>
- <td></td>
- </tr>
- <tr>
- <td><label for="secret">Secret</label></td>
- <td><input name="secret" id="secret" /></td>
- <td></td>
- </tr>
- <tr>
- <td><label for="math">7 + 4 = </label></td>
- <td><input id="math" name="math" title="Please enter the correct result!" /></td>
- <td></td>
- </tr>
- </table>
- <input class="submit" type="submit" value="Submit"/>
- </fieldset>
-</form>
-
-<h3 id="warning">Your form contains tons of errors! Please try again.</h3>
-
-<p><a href="index.html">Back to main page</a></p>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html
deleted file mode 100755
index 95e8c0a6..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - dynamic forms demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-// only for demo purposes
-$.validator.setDefaults({
- submitHandler: function() {
- alert("submitted!");
- }
-});
-$.validator.messages.max = jQuery.format("Your totals musn't exceed {0}!");
-
-$.validator.addMethod("quantity", function(value, element) {
- return !this.optional(element) && !this.optional($(element).parent().prev().children("select")[0]);
-}, "Please select both the item and its amount.");
-
-$().ready(function() {
- $("#orderform").validate({
- errorPlacement: function(error, element) {
- error.appendTo( element.parent().next() );
- },
- highlight: function(element, errorClass) {
- $(element).addClass(errorClass).parent().prev().children("select").addClass(errorClass);
- }
- });
-
- var template = jQuery.format($("#template").val());
- function addRow() {
- $(template(i++)).appendTo("#orderitems tbody");
- }
-
- var i = 1;
- // start with one row
- addRow();
- // add more rows on click
- $("#add").click(addRow);
-
- // check keyup on quantity inputs to update totals field
- $("#orderform").validateDelegate("input.quantity", "keyup", function(event) {
- var totals = 0;
- $("#orderitems input.quantity").each(function() {
- totals += +this.value;
- });
- $("#totals").attr("value", totals).valid();
- });
-
-});
-</script>
-
-<style type="text/css">
-form.cmxform { width: 50em; }
-em.error {
- background:url("images/unchecked.gif") no-repeat 0px 0px;
- padding-left: 16px;
-}
-em.success {
- background:url("images/checked.gif") no-repeat 0px 0px;
- padding-left: 16px;
-}
-
-form.cmxform label.error {
- margin-left: auto;
- width: 250px;
-}
-form.cmxform input.submit {
- margin-left: 0;
-}
-em.error { color: black; }
-#warning { display: none; }
-select.error {
- border: 1px dotted red;
-}
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<textarea style="display:none" id="template">
- <tr>
- <td>
- <label>{0}. Item</label>
- </td>
- <td class='type'>
- <select name="item-type-{0}">
- <option value="">Select...</option>
- <option value="0">Learning jQuery</option>
- <option value="1">jQuery Reference Guide</option>
- <option value="2">jQuery Cookbook</option>
- <option vlaue="3">jQuery In Action</option>
- <option value="4">jQuery For Designers</option>
- </select>
- </td>
- <td class='quantity'>
- <input size='4' class="quantity" min="1" id="item-quantity-{0}" name="item-quantity-{0}" />
- </td>
- <td class='quantity-error'></td>
- </tr>
-</textarea>
-
-<form id="orderform" class="cmxform" method="get" action="foo.html">
- <h2 id="summary"></h2>
-
- <fieldset>
- <legend>Example with custom methods and heavily customized error display</legend>
- <table id="orderitems">
- <tbody>
-
- </tbody>
- <tfoot>
- <tr>
- <td colspan="2"><label>Totals (max 25)</label></td>
- <td class="totals"><input id="totals" name="totals" value="0" max="25" readonly="readonly" size='4' /></td>
- <td class="totals-error"></td>
- </tr>
- <tr>
- <td colspan="2">&nbsp;</td>
- <td><input class="submit" type="submit" value="Submit"/></td>
- </tr>
- </tfoot>
- </table>
- </fieldset>
-</form>
-
-<button id="add">Add another input to the form</button>
-
-<h1 id="warning">Your form contains tons of errors! Please try again.</h1>
-
-<p><a href="index.html">Back to main page</a></p>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html
deleted file mode 100755
index 58230261..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../lib/jquery.metadata.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<style type="text/css">
-.cmxform fieldset p.error label { color: red; }
-div.container {
- background-color: #eee;
- border: 1px solid red;
- margin: 5px;
- padding: 5px;
-}
-div.container ol li {
- list-style-type: disc;
- margin-left: 20px;
-}
-div.container { display: none }
-.container label.error {
- display: inline;
-}
-form.cmxform { width: 30em; }
-form.cmxform label.error {
- display: block;
- margin-left: 1em;
- width: auto;
-}
-</style>
-
-<script type="text/javascript">
-// only for demo purposes
-$.validator.setDefaults({
- submitHandler: function() {
- alert("submitted! (skipping validation for cancel button)");
- }
-});
-
-$().ready(function() {
- $("#form1").validate({
- errorLabelContainer: $("#form1 div.error")
- });
-
- var container = $('div.container');
- // validate the form when it is submitted
- var validator = $("#form2").validate({
- errorContainer: container,
- errorLabelContainer: $("ol", container),
- wrapper: 'li',
- meta: "validate"
- });
-
- $(".cancel").click(function() {
- validator.resetForm();
- });
-});
-</script>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form method="get" class="cmxform" id="form1" action="">
- <fieldset>
- <legend>Login Form</legend>
- <p>
- <label>Username</label>
- <input name="user" title="Please enter your username (at least 3 characters)" class="{required:true,minlength:3}" />
- </p>
- <p>
- <label>Password</label>
- <input type="password" maxlength="12" name="password" title="Please enter your password, between 5 and 12 characters" class="{required:true,minlength:5}" />
- </p>
- <div class="error">
- </div>
- <p>
- <input class="submit" type="submit" value="Login"/>
- </p>
- </fieldset>
-</form>
-
-<!-- our error container -->
-<div class="container">
- <h4>There are serious errors in your form submission, please see below for details.</h4>
- <ol>
- <li><label for="email" class="error">Please enter your email address</label></li>
- <li><label for="phone" class="error">Please enter your phone <b>number</b> (between 2 and 8 characters)</label></li>
- <li><label for="address" class="error">Please enter your address (at least 3 characters)</label></li>
- <li><label for="avatar" class="error">Please select an image (png, jpg, jpeg, gif)</label></li>
- <li><label for="cv" class="error">Please select a document (doc, docx, txt, pdf)</label></li>
- </ol>
-</div>
-
-<form class="cmxform" id="form2" method="get" action="">
- <fieldset>
- <legend>Validating a complete form</legend>
- <p>
- <label for="email">Email</label>
- <input id="email" name="email" class="{validate:{required:true,email:true}}" />
- </p>
- <p>
- <label for="agree">Favorite Color</label>
- <select id="color" name="color" title="Please select your favorite color!" class="{validate:{required:true}}">
- <option></option>
- <option>Red</option>
- <option>Blue</option>
- <option>Yellow</option>
- </select>
- </p>
- <p>
- <label for="phone">Phone</label>
- <input id="phone" name="phone" class="some styles {validate:{required:true,number:true, rangelength:[2,8]}}" />
- </p>
- <p>
- <label for="address">Address</label>
- <input id="address" name="address" class="some other styles {validate:{required:true,minlength:3}}" />
- </p>
- <p>
- <label for="avatar">Avatar</label>
- <input type="file" id="avatar" name="avatar" class="{validate:{required:true,accept:true}}" />
- </p>
- <p>
- <label for="agree">Please agree to our policy</label>
- <input type="checkbox" class="checkbox" id="agree" title="Please agree to our policy!" name="agree" class="{validate:{required:true}}" />
- </p>
- <p>
- <label for="cv">CV</label>
- <input type="file" id="cv" name="cv" class="{validate:{required:true,accept:'docx?|txt|pdf'}}" />
- </p>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- <input class="cancel" type="submit" value="Cancel"/>
- </p>
- </fieldset>
-</form>
-
-<div class="container">
- <h4>There are serious errors in your form submission, please see details above the form!</h4>
-</div>
-
-<a href="index.html">Back to main page</a>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html
deleted file mode 100755
index a162aaf0..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - comment form example</title>
-
-<link rel="stylesheet" href="css/screen.css" />
-<link rel="stylesheet" href="css/cmxform.css" />
-
-<script src="../lib/jquery.js"></script>
-<script src="../jquery.validate.js"></script>
-<script src="../additional-methods.js"></script>
-
-<script type="text/javascript">
-$(document).ready(function() {
- $("#fileForm").validate();
-});
-</script>
-
-</head>
-<body>
-
-<form class="cmxform" id="fileForm" method="post" action="">
- <fieldset>
- <legend>Select the indicated type of files?</legend>
- <p>
- <label for="file1">Select a plain text file (e.g. *.txt)</label>
- <input type="file" id="file1" name="file1" class="required" accept="text/plain" />
- </p>
- <p>
- <label for="file2">Select any image file</label>
- <input type="file" id="file2" name="file2" class="required" accept="image/*"/>
- </p>
- <p>
- <label for="file3">Select either a PDF or a EPS file</label>
- <input type="file" id="file3" name="file3" class="required" accept="image/x-eps,application/pdf"/>
- </p>
- <p>
- <label for="file4">Select any audio or image file</label>
- <input type="file" id="file4" name="file4" class="required" accept="image/*,audio/*"/>
- </p>
- <p>
- <label for="file5">Select one or more plain text files (e.g. *.txt)</label>
- <input type="file" id="file5" name="file5" class="required" multiple accept="text/plain" />
- </p>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- </p>
- </fieldset>
-</form>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php
deleted file mode 100755
index b25c6ef4..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-// wait a second to simulate a some latency
-usleep(500000);
-$user = $_REQUEST['user'];
-$pw = $_REQUEST['password'];
-if($user && $pw && $pw == "foobar")
- echo "Hi $user, welcome back.";
-else
- echo "Your password is wrong (must be foobar).";
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps
deleted file mode 100755
index b25c6ef4..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-// wait a second to simulate a some latency
-usleep(500000);
-$user = $_REQUEST['user'];
-$pw = $_REQUEST['password'];
-if($user && $pw && $pw == "foobar")
- echo "Hi $user, welcome back.";
-else
- echo "Your password is wrong (must be foobar).";
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gif
deleted file mode 100755
index 846add07..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gif
deleted file mode 100755
index 5e33a78d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gif
deleted file mode 100755
index 718a977c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gif
deleted file mode 100755
index 9c48ea4b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gif
deleted file mode 100755
index 93c46a6c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gif
deleted file mode 100755
index 06ecaba1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html
deleted file mode 100755
index ff8040f1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - main demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery-1.7.2.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-$.validator.setDefaults({
- submitHandler: function() { alert("submitted!"); }
-});
-
-$().ready(function() {
- // validate the comment form when it is submitted
- $("#commentForm").validate();
-
- // validate signup form on keyup and submit
- $("#signupForm").validate({
- rules: {
- firstname: "required",
- lastname: "required",
- username: {
- required: true,
- minlength: 2
- },
- password: {
- required: true,
- minlength: 5
- },
- confirm_password: {
- required: true,
- minlength: 5,
- equalTo: "#password"
- },
- email: {
- required: true,
- email: true
- },
- topic: {
- required: "#newsletter:checked",
- minlength: 2
- },
- agree: "required"
- },
- messages: {
- firstname: "Please enter your firstname",
- lastname: "Please enter your lastname",
- username: {
- required: "Please enter a username",
- minlength: "Your username must consist of at least 2 characters"
- },
- password: {
- required: "Please provide a password",
- minlength: "Your password must be at least 5 characters long"
- },
- confirm_password: {
- required: "Please provide a password",
- minlength: "Your password must be at least 5 characters long",
- equalTo: "Please enter the same password as above"
- },
- email: "Please enter a valid email address",
- agree: "Please accept our policy"
- }
- });
-
- // propose username by combining first- and lastname
- $("#username").focus(function() {
- var firstname = $("#firstname").val();
- var lastname = $("#lastname").val();
- if(firstname && lastname && !this.value) {
- this.value = firstname + "." + lastname;
- }
- });
-
- //code to hide topic selection, disable for demo
- var newsletter = $("#newsletter");
- // newsletter topics are optional, hide at first
- var inital = newsletter.is(":checked");
- var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
- var topicInputs = topics.find("input").attr("disabled", !inital);
- // show when newsletter is checked
- newsletter.click(function() {
- topics[this.checked ? "removeClass" : "addClass"]("gray");
- topicInputs.attr("disabled", !this.checked);
- });
-});
-</script>
-
-<style type="text/css">
-#commentForm { width: 500px; }
-#commentForm label { width: 250px; }
-#commentForm label.error, #commentForm input.submit { margin-left: 253px; }
-#signupForm { width: 670px; }
-#signupForm label.error {
- margin-left: 10px;
- width: auto;
- display: inline;
-}
-#newsletter_topics label.error {
- display: none;
- margin-left: 103px;
-}
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<p>Default submitHandler is set to display an alert into of submitting the form</p>
-
-<form class="cmxform" id="commentForm" method="get" action="">
- <fieldset>
- <legend>Please provide your name, email address (won't be published) and a comment</legend>
- <p>
- <label for="cname">Name (required, at least 2 characters)</label>
- <input id="cname" name="name" minlength="2" type="text" required />
- <p>
- <label for="cemail">E-Mail (required)</label>
- <input id="cemail" type="email" name="email" required />
- </p>
- <p>
- <label for="curl">URL (optional)</label>
- <input id="curl" type="url" name="url" />
- </p>
- <p>
- <label for="ccomment">Your comment (required)</label>
- <textarea id="ccomment" name="comment" required></textarea>
- </p>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- </p>
- </fieldset>
-</form>
-
-<form class="cmxform" id="signupForm" method="get" action="">
- <fieldset>
- <legend>Validating a complete form</legend>
- <p>
- <label for="firstname">Firstname</label>
- <input id="firstname" name="firstname" type="text" />
- </p>
- <p>
- <label for="lastname">Lastname</label>
- <input id="lastname" name="lastname" type="text" />
- </p>
- <p>
- <label for="username">Username</label>
- <input id="username" name="username" type="text" />
- </p>
- <p>
- <label for="password">Password</label>
- <input id="password" name="password" type="password" />
- </p>
- <p>
- <label for="confirm_password">Confirm password</label>
- <input id="confirm_password" name="confirm_password" type="password" />
- </p>
- <p>
- <label for="email">Email</label>
- <input id="email" name="email" type="email" />
- </p>
- <p>
- <label for="agree">Please agree to our policy</label>
- <input type="checkbox" class="checkbox" id="agree" name="agree" />
- </p>
- <p>
- <label for="newsletter">I'd like to receive the newsletter</label>
- <input type="checkbox" class="checkbox" id="newsletter" name="newsletter" />
- </p>
- <fieldset id="newsletter_topics">
- <legend>Topics (select at least two) - note: would be hidden when newsletter isn't selected, but is visible here for the demo</legend>
- <label for="topic_marketflash">
- <input type="checkbox" id="topic_marketflash" value="marketflash" name="topic" />
- Marketflash
- </label>
- <label for="topic_fuzz">
- <input type="checkbox" id="topic_fuzz" value="fuzz" name="topic" />
- Latest fuzz
- </label>
- <label for="topic_digester">
- <input type="checkbox" id="topic_digester" value="digester" name="topic" />
- Mailing list digester
- </label>
- <label for="topic" class="error">Please select at least two topics you'd like to receive.</label>
- </fieldset>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- </p>
- </fieldset>
-</form>
-
-<h3>Syntetic examples</h3>
-<ul>
- <li><a href="errorcontainer-demo.html">Error message containers in action</a></li>
- <li><a href="custom-messages-metadata-demo.html">Custom Messages as Metadata</a></li>
- <li><a href="radio-checkbox-select-demo.html">Radio and checkbox buttons and selects</a></li>
- <li><a href="ajaxSubmit-intergration-demo.html">Integration with Form Plugin (AJAX submit)</a></li>
- <li><a href="custom-methods-demo.html">Custom methods and message display.</a></li>
- <li><a href="dynamic-totals.html">Dynamic forms</a></li>
- <li><a href="themerollered.html">Forms styled with jQuery UI Themeroller</a></li>
- <li><a href="tinymce/">TinyMCE Demo</a></li>
- <li><a href="file_input.html">File inputs</a></li>
- <li><a href="jquerymobile.html">jQuery Mobile Form Validation</a></li>
-</ul>
-<h3>Real-world examples</h3>
-<ul>
- <li><a href="milk/">Remember The Milk signup form</a></li>
- <li><a href="marketo/">Marketo signup form</a></li>
- <li><a href="multipart/">Buy and Sell a House multipart form</a></li>
- <li><a href="captcha/">Remote captcha validation</a></li>
-</ul>
-
-<h3>Testsuite</h3>
-<ul>
- <li><a href="../test/">Validation Testsuite</a></li>
-</ul>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html
deleted file mode 100755
index 90a84577..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>My Page</title>
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
- <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
- <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
- <script src="../jquery.validate.js"></script>
- <style>
- label.error {
- color: red;
- font-size: 16px;
- font-weight: normal;
- line-height: 1.4;
- margin-top: 0.5em;
- width: 100%;
- float: none;
- }
-
- @media screen and (orientation: portrait){
- label.error { margin-left: 0; display: block; }
- }
-
- @media screen and (orientation: landscape){
- label.error { display: inline-block; margin-left: 22%; }
- }
-
- em { color: red; font-weight: bold; padding-right: .25em; }
- </style>
-</head>
-<body>
-
- <div id="page1" data-role="page">
-
- <div data-role="header">
- <h1>Welcome</h1>
- </div>
-
- <div data-role="content">
- <form method="GET">
- <div data-role="fieldcontain">
- <label for="email">Email:</label>
- <input type="email" name="email" id="email" />
- </div>
- <div data-role="fieldcontain">
- <label for="password">Password:</label>
- <input type="password" name="password" id="password" />
- </div>
- <input data-role="submit" type="submit" value="Login" />
- </form>
- </div>
-
- </div>
-
- <script>
- $('#page1').bind('pageinit', function(event) {
- $('form').validate({
- rules: {
- email: {
- required: true
- },
- password: {
- required: true
- }
- }
- });
- });
- </script>
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js
deleted file mode 100755
index 90e7735c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8={3b:"1.6",2o:"1B.1Y,1B.23,1B.2e",2i:"",2H:1a,12:"",2C:1a,Z:"",2a:\'<H V="$0">$$</H>\',R:"&#F;",1j:"&#F;&#F;&#F;&#F;",1f:"&#F;<1W/>",3c:5(){9 $(y).39("1k")[0]},I:{},N:{}};(5($){$(5(){5 1J(l,a){5 2I(A,h){4 3=(1v h.3=="1h")?h.3:h.3.1w;k.1m({A:A,3:"("+3+")",u:1+(3.c(/\\\\./g,"%").c(/\\[.*?\\]/g,"%").3a(/\\((?!\\?)/g)||[]).u,z:(h.z)?h.z:8.2a})}5 2z(){4 1E=0;4 1x=x 2A;Q(4 i=0;i<k.u;i++){4 3=k[i].3;3=3.c(/\\\\\\\\|\\\\(\\d+)/g,5(m,1F){9!1F?m:"\\\\"+(1E+1+1t(1F))});1x.1m(3);1E+=k[i].u}4 1w=1x.3d("|");9 x 1u(1w,(a.3g)?"2j":"g")}5 1S(o){9 o.c(/&/g,"&3h;").c(/</g,"&3e;")}5 1R(o){9 o.c(/ +/g,5(1X){9 1X.c(/ /g,R)})}5 G(o){o=1S(o);7(R){o=1R(o)}9 o}5 2m(2E){4 i=0;4 j=1;4 h;19(h=k[i++]){4 1b=D;7(1b[j]){4 1U=/(\\\\\\$)|(?:\\$\\$)|(?:\\$(\\d+))/g;4 z=h.z.c(1U,5(m,1V,K){4 3f=\'\';7(1V){9"$"}v 7(!K){9 G(1b[j])}v 7(K=="0"){9 h.A}v{9 G(1b[j+1t(K,10)])}});4 1A=D[D.u-2];4 2h=D[D.u-1];4 2G=2h.2v(11,1A);11=1A+2E.u;14+=G(2G)+z;9 z}v{j+=h.u}}}4 R=8.R;4 k=x 2A;Q(4 A 2r a.k){2I(A,a.k[A])}4 14="";4 11=0;l.c(2z(),2m);4 2y=l.2v(11,l.u);14+=G(2y);9 14}5 2B(X){7(!8.N[X]){4 Y=\'<Y 32="1p" 33="p/2u"\'+\' 30="\'+X+\'">\';8.N[X]=1H;7($.31.34){4 W=J.1L(Y);4 $W=$(W);$("2d").1O($W)}v{$("2d").1O(Y)}}}5 1q(e,a){4 l=e&&e.1g&&e.1g[0]&&e.1g[0].37;7(!l)l="";l=l.c(/\\r\\n?/g,"\\n");4 C=1J(l,a);7(8.1j){C=C.c(/\\t/g,8.1j)}7(8.1f){C=C.c(/\\n/g,8.1f)}$(e).38(C)}5 1o(q,13){4 1l={12:8.12,2x:q+".1d",Z:8.Z,2w:q+".2u"};4 B;7(13&&1v 13=="2l")B=$.35(1l,13);v B=1l;9{a:B.12+B.2x,1p:B.Z+B.2w}}7($.2q)$.2q({36:"2l.15"});4 2n=x 1u("\\\\b"+8.2i+"\\\\b","2j");4 1e=[];$(8.2o).2D(5(){4 e=y;4 1n=$(e).3i("V");7(!1n){9}4 q=$.3u(1n.c(2n,""));7(\'\'!=q){1e.1m(e);4 f=1o(q,e.15);7(8.2H||e.15){7(!8.N[f.a]){1D{8.N[f.a]=1H;$.3v(f.a,5(M){M.f=f.a;8.I[f.a]=M;7(8.2C){2B(f.1p)}$("."+q).2D(5(){4 f=1o(q,y.15);7(M.f==f.a){1q(y,M)}})})}1I(3s){3t("a 3w Q: "+q+\'@\'+3z)}}}v{4 a=8.I[f.a];7(a){1q(e,a)}}}});7(J.1i&&J.1i.29){5 22(p){7(\'\'==p){9""}1z{4 16=(x 3A()).2k()}19(p.3x(16)>-1);p=p.c(/\\<1W[^>]*?\\>/3y,16);4 e=J.1L(\'<1k>\');e.3l=p;p=e.3m.c(x 1u(16,"g"),\'\\r\\n\');9 p}4 T="";4 18=1G;$(1e).3j().G("1k").U("2c",5(){18=y}).U("1M",5(){7(18==y)T=J.1i.29().3k});$("3n").U("3q",5(){7(\'\'!=T){2p.3r.3o(\'3p\',22(T));2V.2R=1a}}).U("2c",5(){T=""}).U("1M",5(){18=1G})}})})(1Z);8.I["1Y.1d"]={k:{2M:{3:/\\/\\*[^*]*\\*+(?:[^\\/][^*]*\\*+)*\\//},25:{3:/\\<!--(?:.|\\n)*?--\\>/},2f:{3:/\\/\\/.*/},2P:{3:/2L|2T|2J|2O|2N|2X|2K|2Z|2U|2S|2W|2Y|2Q|51|c-50/},53:{3:/\\/[^\\/\\\\\\n]*(?:\\\\.[^\\/\\\\\\n]*)*\\/[52]*/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},4X:{3:/\\b(D|1N|1K|1I|2t|2s|4W|1z|v|1a|Q|5|7|2r|4Z|x|1G|9|1Q|y|1H|1D|1v|4|4Y|19|59)\\b/},1y:{3:/\\b(58|2k|2p|5b|5a|55|J|54|57|1t|56|4L|4K|4N|4M|4H|4G|4J)\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/},4I:{3:/(\\$|1Z)/}}};8.I["23.1d"]={k:{25:{3:/\\<!--(?:.|\\n)*?--\\>/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/}}};8.I["2e.1d"]={k:{4S:{3:/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\//},2f:{3:/(?:\\/\\/.*)|(?:[^\\\\]\\#.*)/},4V:{3:/\\\'[^\\\'\\\\]*(?:\\\\.[^\\\'\\\\]*)*\\\'/},4U:{3:/\\"[^\\"\\\\]*(?:\\\\.[^\\"\\\\]*)*\\"/},4P:{3:/\\b(?:[4O][2b][1s][1s]|[4R][4Q][2b][1P]|[5c][5v][1s][5u][1P])\\b/},5x:{3:/\\b[+-]?(\\d*\\.?\\d+|\\d+\\.?\\d*)([1r][+-]?\\d+)?\\b/},5y:{3:/\\b(?:5z|5w(?:5A|5E(?:5F(?:17|1c)|5G(?:17|1c))|17|1T|5B|5C|5D(?:17|1T|1c)|1c)|P(?:5h(?:5k|5j)|5e(?:5d|5g(?:5f|5l)|5r|E(?:5t|5s)|5n(?:5m|5p)|L(?:3X|3W)|O(?:S|3Y(?:3T|3S|3V))|3U|S(?:44|47|46)|41))|40)\\b/},1y:{3:/(?:\\$43|\\$42|\\$3R|\\$3G|\\$3F|\\$3I|\\$3H|\\$3C|\\$3B|\\$3D)\\b/},28:{3:/\\b(?:3O|3N|3P|3K|3J|3M|3L|48|4v|1N|1K|1I|4u|V|4x|4w|2t|4r|2s|4q|1z|4t|v|4s|4D|4C|4F|4E|4z|4y|4B|4A|4p|4d|2F|2F|4g|Q|4f|5|1y|7|4a|4m|4l|4o|4i|4k|x|4j|4h|4n|4b|4c|49|4e|3Q|3E|9|45|1Q|y|3Z|1D|5o|5q|4|19|5i)\\b/},2g:{3:/\\$(\\w+)/,z:\'<H V="28">$</H><H V="2g">$1</H>\'},1C:{3:/(?:\\<\\?[24][4T][24])|(?:\\<\\?)|(?:\\?\\>)/}}}',62,353,'|||exp|var|function||if|ChiliBook|return|recipe||replace||el|path||step|||steps|ingredients|||str|text|recipeName||||length|else||new|this|replacement|stepName|settings|dish|arguments||160|filter|span|recipes|document|||recipeLoaded|required|||for|replaceSpace||insidePRE|bind|class|domLink|stylesheetPath|link|stylesheetFolder||lastIndex|recipeFolder|options|perfect|chili|newline|ERROR|downPRE|while|false|aux|WARNING|js|codes|replaceNewLine|childNodes|string|selection|replaceTab|pre|settingsDef|push|elClass|getPath|stylesheet|makeDish|eE|Ll|parseInt|RegExp|typeof|source|exps|global|do|offset|code|tag|try|prevLength|aNum|null|true|catch|cook|case|createElement|mouseup|break|append|Ee|switch|replaceSpaces|escapeHTML|NOTICE|pattern|escaped|br|spaces|mix|jQuery|avalue|entity|preformatted|xml|Pp|htcom|aname|numbers|keyword|createRange|defaultReplacement|Uu|mousedown|head|php|com|variable|input|elementClass|gi|valueOf|object|chef|selectClass|elementPath|window|metaobjects|in|default|continue|css|substring|stylesheetFile|recipeFile|lastUnmatched|knowHow|Array|checkCSS|stylesheetLoading|each|matched|extends|unmatched|recipeLoading|prepareStep|unblockUI|ajaxSubmit|silverlight|jscom|unblock|block|plugin|clearFields|returnValue|fieldValue|blockUI|formSerialize|event|resetForm|ajaxForm|clearForm|fieldSerialize|href|browser|rel|type|msie|extend|selector|data|html|next|match|version|getPRE|join|lt|bit|ignoreCase|amp|attr|parents|htmlText|innerHTML|innerText|body|setData|Text|copy|clipboardData|recipeNotAvailable|alert|trim|getJSON|unavailable|indexOf|ig|recipePath|Date|_SESSION|_SERVER|php_errormsg|require_once|_GET|_FILES|_REQUEST|_POST|__METHOD__|__LINE__|and|abstract|__FILE__|__CLASS__|__FUNCTION__|require|_ENV|END|CONT|PREFIX|START|OCALSTATEDIR|IBDIR|UTPUT_HANDLER_|throw|__COMPILER_HALT_OFFSET__|VERSION|_COOKIE|GLOBALS|API|static|YSCONFDIR|HLIB_SUFFIX|array|protected|implements|print|private|exit|public|foreach|final|or|isset|old_function|list|include_once|include|php_user_filter|interface|exception|die|declare|elseif|echo|cfunction|as|const|clone|endswitch|endif|eval|endwhile|enddeclare|empty|endforeach|endfor|isNaN|NaN|jquery|Infinity|clearTimeout|setTimeout|clearInterval|setInterval|Nn|value|Rr|Tt|mlcom|Hh|string2|string1|delete|keywords|void|instanceof|content|taconite|gim|regexp|escape|constructor|parseFloat|unescape|toString|with|prototype|element|Ff|BINDIR|HP_|PATH|CONFIG_FILE_|EAR_|xor|INSTALL_DIR|EXTENSION_DIR|SCAN_DIR|MAX|INT_|unset|SIZE|use|DATADIR|XTENSION_DIR|OL|Ss|Aa|E_|number|const1|DEFAULT_INCLUDE_PATH|ALL|PARSE|STRICT|USER_|CO|MPILE_|RE_'.split('|'),0,{}))
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gif
deleted file mode 100755
index 12662a47..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpg b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpg
deleted file mode 100755
index 70986716..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpg
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gif
deleted file mode 100755
index 1717731b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gif
deleted file mode 100755
index e4c16ebf..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html
deleted file mode 100755
index 63ae90f6..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Login Form with Email Password Link</title>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <link rel="stylesheet" type="text/css" media="screen" href="screen.css" />
-
- <script type="text/javascript" src="../../lib/jquery.js"></script>
- <script type="text/javascript" src="../../jquery.validate.js"></script>
-
- <script type="text/javascript">
-
- $(function() {
- // highlight
- var elements = $("input[type!='submit'], textarea, select");
- elements.focus(function(){
- $(this).parents('li').addClass('highlight');
- });
- elements.blur(function(){
- $(this).parents('li').removeClass('highlight');
- });
-
- $("#forgotpassword").click(function() {
- $("#password").removeClass("required");
- $("#login").submit();
- $("#password").addClass("required");
- return false;
- });
-
- $("#login").validate()
- });
- </script>
-
-</head>
-<body>
- <div id="page">
-
- <div id="header">
- <h1>Login</h1>
- </div>
-
- <div id="content">
- <p id="status"></p>
- <form action="" method="get" id="login">
- <fieldset>
- <legend>User details</legend>
- <ul>
- <li>
- <label for="email"><span class="required">Email address</span></label>
- <input id="email" name="email" class="text required email" type="text" />
- <label for="email" class="error">This must be a valid email address</label>
- </li>
-
- <li>
- <label for="password"><span class="required">Password</span></label>
- <input name="password" type="password" class="text required" id="password" minlength="4" maxlength="20" />
- </li>
-
- <li>
- <label class="centered info"><a id="forgotpassword" href="#">Email my password...</a></label>
- </li>
- </ul>
- </fieldset>
-
- <fieldset class="submit">
- <input type="submit" class="button" value="Login..." />
- </fieldset>
-
- <div class="clear"></div>
- </form>
-
- </div>
- </div>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css
deleted file mode 100755
index e023a533..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css
+++ /dev/null
@@ -1,457 +0,0 @@
-/*******************************************************************************
-********************************************************************************
-**
-* - GENERAL
-*
-* - PAGE CONTAINERS
-*
-* - HEADER
-*
-* - CONTENT
-**
-********************************************************************************
- ******************************************************************************/
-
-
-
-
-/* GENERAL ------------------------------------------------------------------ */
-
- html
- {
- height: 100%;
- }
-
- /* Zero default margin & padding around common elements */
- body, dd, dl, dt, form, h1, h2, h3, h4, h5, h6, ul, ol, li, p
- {
- margin: 0;
- border: none;
- padding: 0;
- }
-
- body
- {
- height: 100%;
- background-color: #333333;
- background-image: url(images/bg.gif);
- background-position: 0% 0;
- color: #000000;
- line-height: 1.5;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 62.5%;
- text-align: center;
- overflow:auto;
- }
-
- a:link
- {
- color: #003399;
- }
-
- a:visited
- {
- color: #B266B2;
- }
-
- a:hover
- {
- text-decoration: none;
- }
-
-
-
-
- /* PAGE CONTAINERS ---------------------------------------------------------- */
-
- #page
- {
- width: 636px;
- w\idth: 600px;
- min-height: 100%;
- margin: 17px auto;
- padding: 0 18px;
- background-image: url(images/page.gif);
- background-repeat: repeat-y;
- text-align: left;
- }
-
- * html #page
- {
- height: 100%;
- }
-
-
-
-
- /* HEADER ------------------------------------------------------------------- */
-
- #header
- {
- height: 90px;
- background-color: #B2DD32;
- background-image: url(images/header1.jpg);
- background-repeat: repeat-x;
- }
-
- h1
- {
- padding: 0 35px;
- font-size: 2.2em;
- font-weight: normal;
- line-height: 82px;
- }
-
-
-
-
- /* CONTENT ------------------------------------------------------------------ */
-
- #content
- {
- padding: 0 25px;
- }
-
- p
- {
- font-size:1.1em;
- margin-top: 1.5em;
- }
-
- form
- {
- margin-top: 1.5em;
- }
-
-
-
- /*** MASTER FORM WIDTHS - CUSTOMIZE THIS TO CHANGE THE FORM LAYOUT ***/
-
- /*
- form width: 550px
- left column: 190px / 180px + 10px padding
- mid column: 200px
- right column: 160px
- */
-
- form{
- width:550px !important;
- }
-
- fieldset.submit
- {
- padding-left: 190px !important;
- }
-
- form label{
- padding:0px 10px;
- width: 160px;
- }
-
- form label.error,
- form input.submit
- {
- margin-left:180px !important;
- }
-
- form fieldset fieldset label.error
- {
- margin-left:0px !important;
- width:200px !important;
- }
-
-
- form .centered{
- margin-left:180px !important;
- width:200px !important;
- }
-
- form .text,
- form .button,
- form .group,
- form .control,
- form .submit,
- form textarea,
- form select
- {
- width: 200px !important;
- }
-
-
-
-
-/*** FIELDSETS AND LEGENDS ***/
-
- form{
- width:550px;
- margin-bottom:25px;
- clear:both;
- }
-
- form fieldset
- {
- margin: 0 0 1.5em 0;
- padding: 0 0 10px 0px;
-
- border: 1px solid #BFBAB0;
-
- background-color: #F2EFE9;
- background-image: url(images/fieldset_gradient.jpg);
- background-repeat: repeat-x;
-
- background-color: #fff;
- background-image: url(images/fieldset-gradient-02.jpg);
- background-position:bottom;
-
- float: left;
- clear: both;
- width: 100%;
-
- }
-
- form fieldset.submit
- {
- padding: 0px 10px 10px 190px;
- border-style: none;
-
- background-color: transparent;
- background-image: none;
-
- float: none;
- width: auto;
-
- }
-
- form legend
- {
- color: #000000;
-
- font-size:1.3em;
- font-weight: bold;
- font-variant:small-caps;
-
- margin-left: 1em;
- padding:0px 5px;
- }
-
- form fieldset p{
- margin:10px 0px 0px 10px;
- }
-
-/*** FORM BLOCKS ***/
-
- form ul
- {
- padding:5px 10px;
- list-style: none;
- }
-
- form li
- {
- width: 100%;
-
- padding:5px 0px 10px 0;
- border-top:1px dotted #ccc;
-
- display:block;
- float: left;
- clear: left;
- }
-
- form li:first-child
- {
- border:none;
- }
-
-
-/*** FORM BLOCK ELEMENTS ***/
-
- form label
- {
- padding:0px 10px;
- width: 160px;
- float: left;
- }
-
- form .error{
- color: #c00;
- }
-
- form label.error
- {
- color: #c00;
-
- font-size: 100%;
- font-weight: bold;
- font-variant:small-caps;
-
- width:308px;
- display: none;
-
- margin:8px 0px 0px 180px;
- padding:3px 0px 0px 5px;
- border-top:1px dotted #ccc;
-
- clear:both;
- }
-
- form label.info{
- font-size: 100%;
- font-weight: bold;
- font-variant:small-caps;
-
- margin:8px 0px 0px 180px;
- padding:3px 0px 0px 5px;
- }
-
- form fieldset fieldset,
- form .group
- {
- width:200px;
-
- margin: 0;
- border:none;
-
- background:none;
-
- float:left;
- clear: none;
-
- }
-
- form fieldset fieldset label
- {
- width:auto !important;
- white-space:nowrap;
- padding:0px;
- margin:0px;
- display:block;
- clear:both;
- }
-
- form label label.error{
- margin-left:0px;
- }
-
- form label.centered{
- padding:0px 0px;
- width:200px !important;
- }
-
- /* see also the error class at the foot of the page */
-
- form fieldset fieldset label.spaced
- {
- margin-bottom:3px;
- }
-
-/*** FORM ELEMENT COLUMNS ***/
-
- .col-1,
- fieldset fieldset.col-1 label
- {
- width:100%;
- }
-
- .col-2,
- fieldset fieldset.col-2 label
- {
- width:50%;
- }
-
- .col-3,
- fieldset fieldset.col-3 label
- {
- width:33%;
- }
-
- .col-4,
- fieldset fieldset.col-4 label
- {
- width:25%;
- }
-
-
-
-
-/*** FORM ELEMENTS ***/
-
- form input.submit{
- margin:10px 0px 10px 180px;
- padding:0px 2px;
- }
-
- form input, textarea, select,
- form label
- {
- font-size:1.1em;
- line-height:1.6em;
- }
-
- form input, textarea, select
- {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- }
-
- form .input[type="text"],
- form textarea
- {
- padding:1px;
- }
-
- form .input[type="radio"],
- form .input[type="checkbox"]
- {
- margin:0px;
- padding:0px;
- position:relative;
- top:3px;
- }
-
-/*** SUPPORTING CLASSES ***/
-
- form label.required{
- background-image:url(images/required_star.gif);
- background-position:right;
- background-repeat:no-repeat;
- }
-
- form span.required{
- padding-right:15px;
- }
-
- form .clean
- {
- border:none;
- }
-
- form .info{
- padding-top:0.5em;
- font-size:80%;
- line-height:100%;
- color:#aaa;
- }
-
- form .indent{
- padding:2px 20px;
- width:auto !important;
- white-space:nowrap;
- padding-left: 25px !important;
- }
-
- form label.disabled{
- color:#aaa;
- }
-
- form .highlight{
- background-color:#e2e2e2;
- }
-
- .off{
- display:none !important;
- }
-
- .clear{
- clear:both;
- }
- \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php
deleted file mode 100755
index fc45dbd2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['email']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
- if( strtolower($email) == $request )
- $valid = 'false';
-}
-echo $valid;
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps
deleted file mode 100755
index d2219cc9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['value']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
- if( strtolower($email) == $request )
- $valid = 'false';
-}
-echo $valid;
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css
deleted file mode 100755
index a1a24b4f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css
+++ /dev/null
@@ -1,35 +0,0 @@
-img.png {
- background-image: expression(
- this.runtimeStyle.backgroundImage = "none",
- this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')",
- this.src = "images/blank.gif"
- );
-}
-
-
-
-.hidden {
- display:none
-}
-
-
-
-div.login { width: 120px;}
-div.nav-global LI,
-div.nav-global LI A { display:inline !important; zoom: 1;}
-
-div.nav-global LI A:hover,
-div.nav-left li a:hover { text-decoration: none;}
-
-div.buttonSubmit { height: 36px;}
-
-div.buttonSubmit input { position: absolute;}
-
-div.offerHeader {margin-left: 3px;}
-
-#col-left { height: 340px;}
-
-span#cancellation {
- position: relative;
- top: 20px;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gif
deleted file mode 100755
index 61d29adf..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gif
deleted file mode 100755
index 30774527..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gif
deleted file mode 100755
index 3d3da3a8..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gif
deleted file mode 100755
index 3b042d8b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gif
deleted file mode 100755
index 54d291cd..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.ico b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.ico
deleted file mode 100755
index 0f57c530..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.png
deleted file mode 100755
index 73817ffb..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.png
deleted file mode 100755
index c5b8fad7..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gif
deleted file mode 100755
index 799b1960..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gif
deleted file mode 100755
index 62663bca..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.png
deleted file mode 100755
index 962bf2a5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gif
deleted file mode 100755
index 9ddf1e36..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gif
deleted file mode 100755
index bada27f1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gif
deleted file mode 100755
index 8a45393f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gif
deleted file mode 100755
index 048b9b00..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gif
deleted file mode 100755
index ef1c0847..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.png
deleted file mode 100755
index 911da3f1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gif
deleted file mode 100755
index ad1bf0fa..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gif
deleted file mode 100755
index 60da04c2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html
deleted file mode 100755
index f3d659bb..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-200000126/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="title" content="Subscription Signup | Marketo" />
-<meta name="robots" content="index, follow" />
-<meta name="description" content="Marketo Search Marketing application" />
-<meta name="keywords" content="Marketo, Search Marketing" />
-<meta name="language" content="en" />
-<title>Subscription Signup | Marketo</title>
-
-<link rel="shortcut icon" href="/favicon.ico" />
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="jquery.maskedinput.js"></script>
-<script type="text/javascript" src="mktSignup.js"></script>
-
-<link rel="stylesheet" type="text/css" media="screen" href="stylesheet.css" />
-</head>
-<body>
-<!--[if lte IE 6]>
- <link rel="stylesheet" type="text/css" media="all" href="ie6.css" />
-<![endif]-->
-
-<!-- start page wrapper --><div id="letterbox">
-
-<!-- start header container -->
-<div id="header-background">
- <div class="nav-global-container">
-
- <div class="login"><a href="#"><span></span>Customer Login</a></div>
- <div class="logo"><a href="#"><img src="images/logo_marketo.gif" width="168" height="73" alt="Marketo" /></a></div>
- <div class="nav-global">
- <ul>
- <li><a href="#" class="nav-g01"><span></span>Home</a></li>
- <li><a href="#" class="nav-g02"><span></span>Products</a></li>
- <li><a href="#" class="nav-g04"><span></span>B2B Marketing Resources</a></li>
-
- <li><a href="#" class="nav-g05"><span></span>About Marketo</a></li>
- </ul>
- </div>
-
- </div>
-</div>
-<!-- end header container -->
-<div class="line-grey-tier"></div>
-
-<!-- start page container 2 div-->
-<div id="page-container" class="resize"><div id="page-content-inner" class="resize">
-
-<!-- start col-main -->
-
-<div id="col-main" class="resize" style="">
-
-
-
- <!-- start main content -->
- <div class="main-content resize">
-
- <div class="action-container" style="display:none;"></div>
-
-
-<h1>Step 1 of 2 </h1>
-<p>
-</p>
-<br clear="all" />
-<div>
- <form id="profileForm" type="actionForm" action="step2.htm" method="get" >
-
-
- <div class="error" style="display:none;">
- <img src="images/warning.gif" alt="Warning!" width="24" height="24" style="float:left; margin: -5px 10px 0px 0px; " />
-
- <span></span>.<br clear="all"/>
- </div>
-
-
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td class="label"><label for="co_name">Company Name:</label></td>
- <td class="field">
- <input id="co_name" class="required" maxlength="40" name="co_name" size="20" type="text" tabindex="1" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="co_url">Company URL:</label></td>
- <td class="field">
- <input id="co_url" class="required defaultInvalid url" maxlength="40" name="co_url" style="width:163px" type="text" tabindex="2" value="http://" />
- </td>
- </tr>
- <tr>
- <td/><td/>
- </tr>
- <tr>
- <td class="label"><label for="first_name">First Name:</label></td>
- <td class="field">
- <input id="first_name" class="required" maxlength="40" name="first_name" size="20" type="text" tabindex="3" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="last_name">Last Name:</label></td>
- <td class="field">
- <input id="last_name" class="required" maxlength="40" name="last_name" size="20" type="text" tabindex="4" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="address1">Company Address:</label></td>
- <td class="field">
- <input maxlength="40" class="required" name="address1" size="20" type="text" tabindex="5" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"></td>
- <td class="field">
- <input maxlength="40" name="address2" size="20" type="text" tabindex="6" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="city">City:</label></td>
- <td class="field">
- <input maxlength="40" class="required" name="city" size="20" type="text" tabindex="7" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="state">State:</label></td>
- <td class="field">
- <select id="state" class="required" name="state" style="margin-left: 4px;" tabindex="8">
- <option value="">Choose State:</option>
- <option value="AL">Alabama</option><option value="AK">Alaska</option><option value="AZ">Arizona</option><option value="AR">Arkansas</option><option value="CA">California</option><option value="CO">Colorado</option><option value="CT">Connecticut</option><option value="DE">Delaware</option><option value="FL">Florida</option><option value="GA">Georgia</option><option value="HI">Hawaii</option><option value="ID">Idaho</option><option value="IL">Illinois</option><option value="IN">Indiana</option><option value="IA">Iowa</option><option value="KS">Kansas</option><option value="KY">Kentucky</option><option value="LA">Louisiana</option><option value="ME">Maine</option><option value="MD">Maryland</option><option value="MA">Massachusetts</option><option value="MI">Michigan</option><option value="MN">Minnesota</option><option value="MS">Mississippi</option><option value="MO">Missouri</option><option value="MT">Montana</option><option value="NE">Nebraska</option><option value="NV">Nevada</option><option value="NH">New Hampshire</option><option value="NJ">New Jersey</option><option value="NM">New Mexico</option><option value="NY">New York</option><option value="NC">North Carolina</option><option value="ND">North Dakota</option><option value="OH">Ohio</option><option value="OK">Oklahoma</option><option value="OR">Oregon</option><option value="PA">Pennsylvania</option><option value="RI">Rhode Island</option><option value="SC">South Carolina</option><option value="SD">South Dakota</option><option value="TN">Tennessee</option><option value="TX">Texas</option><option value="UT">Utah</option><option value="VT">Vermont</option><option value="VA">Virginia</option><option value="WA">Washington</option><option value="WV">West Virginia</option><option value="WI">Wisconsin</option><option value="WY">Wyoming</option>
- </select>
- </td>
- </tr>
-
- <tr>
- <td class="label"><label for="zip">Zip:</label></td>
- <td class="field">
- <input maxlength="10" name="zip" style="width: 100px" type="text" class="required zipcode" tabindex="9" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="phone">Phone:</label></td>
- <td class="field">
- <input id="phone" maxlength="14" name="phone" type="text" class="required phone" tabindex="10" value="" />
- </td>
- </tr>
-
-
-
- <tr>
- <td colspan="2">
- <h2 style="border-bottom: 1px solid #CCCCCC;">Login Information</h2>
- </td>
- </tr>
-
-
- <tr>
- <td class="label"><label for="email">Email:</label></td>
- <td class="field">
- <input id="email" class="required email" remote="emails.php" maxlength="40" name="email" size="20" type="text" tabindex="11" value="" />
- </td>
- </tr>
-
- <tr>
- <td class="label"><label for="password1">Password:</label></td>
- <td class="field">
- <input id="password1" class="required password" maxlength="40" name="password1" size="20" type="password" tabindex="12" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="password2">Retype Password:</label></td>
- <td class="field">
- <input id="password2" class="required" equalTo="#password1" maxlength="40" name="password2" size="20" type="password" tabindex="13" value="" />
- <div class="formError"></div>
- </td>
- </tr>
- <tr>
- <td></td>
- <td>
- <div class="buttonSubmit">
- <span></span>
- <input class="formButton" type="submit" value="Next" style="width: 140px" tabindex="14" />
- </div>
-
- </td>
- </tr>
- </table><br /><br />
- </form>
- <br clear="all"/>
-
-
-</div>
-
-
-
- </div> <!-- end main content -->
- <br />
-</div> <!-- end col-main -->
-
-<!-- start left col -->
-<div id="col-left" class="nav-left-back empty resize" style="position: absolute; min-height: 450px;">
- <div class="col-left-header-tab" style="position: absolute;">Signup</div>
- <div class="nav-left">
-
- </div>
-
-
- <div class="left-nav-callout png" style="top: 15px; margin-bottom: 100px;">
- <img src="images/left-nav-callout-long.png" class="png" alt="" />
- <h6>Sign Up Process</h6>
- <a style="background-image: url(images/step1-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Sign up with a valid credit card.</a>
- <a style="background-image: url(images/step2-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Connect to your Google AdWords account. You will need your AdWords Customer ID.</a>
- <a style="background-image: url(images/step3-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Start your 30 day trial. No payments until trial ends.</a>
- </div>
-
-<div class="footerAddress">
-<b>Marketo Inc.</b><br />
-1710 S. Amphlett Blvd.<br />
-San Mateo, CA 94402 USA<br />
-</div>
-<br clear="all"/>
-</div> <!-- end left col -->
-
-</div> </div> <!-- end page container 2 divs-->
-
- <div id="footer-container" align="center">
- <div class="footer">
- <ul>
- <li><a href="..">Home</a></li>
- <li class="line-off"><a href="step2.htm">Second step</a></li>
- </ul>
- </div></div>
-
-
-
-<!-- end page wrapper -->
-</div>
-
- </body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js
deleted file mode 100755
index 0cd5cfcd..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright (c) 2007 Josh Bush (digitalbush.com)
- *
- * 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.
- */
-
-/*
- * Version: 1.1
- * Release: 2007-09-08
- */
-(function($) {
- //Helper Functions for Caret positioning
- function getCaretPosition(ctl){
- var res = {begin: 0, end: 0 };
- if (ctl.setSelectionRange){
- res.begin = ctl.selectionStart;
- res.end = ctl.selectionEnd;
- }else if (document.selection && document.selection.createRange){
- var range = document.selection.createRange();
- res.begin = 0 - range.duplicate().moveStart('character', -100000);
- res.end = res.begin + range.text.length;
- }
- return res;
- };
-
- function setCaretPosition(ctl, pos){
- if(ctl.setSelectionRange){
- ctl.focus();
- ctl.setSelectionRange(pos,pos);
- }else if (ctl.createTextRange){
- var range = ctl.createTextRange();
- range.collapse(true);
- range.moveEnd('character', pos);
- range.moveStart('character', pos);
- range.select();
- }
- };
-
- //Predefined character definitions
- var charMap={
- '9':"[0-9]",
- 'a':"[A-Za-z]",
- '*':"[A-Za-z0-9]"
- };
-
- //Helper method to inject character definitions
- $.mask={
- addPlaceholder : function(c,r){
- charMap[c]=r;
- }
- };
-
- $.fn.unmask=function(){
- return this.trigger("unmask");
- };
-
- //Main Method
- $.fn.mask = function(mask,settings) {
- settings = $.extend({
- placeholder: "_",
- completed: null
- }, settings);
-
- //Build Regex for format validation
- var reString="^";
- for(var i=0;i<mask.length;i++)
- reString+=(charMap[mask.charAt(i)] || ("\\"+mask.charAt(i)));
- reString+="$";
- var re = new RegExp(reString);
-
- return this.each(function(){
- var input=$(this);
- var buffer=new Array(mask.length);
- var locked=new Array(mask.length);
-
- //Build buffer layout from mask
- for(var i=0;i<mask.length;i++){
- locked[i]=charMap[mask.charAt(i)]==null;
- buffer[i]=locked[i]?mask.charAt(i):settings.placeholder;
- }
-
- /*Event Bindings*/
- function focusEvent(){
- checkVal();
- writeBuffer();
- setTimeout(function(){
- setCaretPosition(input[0],0);
- },0);
- };
- input.bind("focus",focusEvent);
-
- input.bind("blur",checkVal);
-
- //Paste events for IE and Mozilla thanks to Kristinn Sigmundsson
- if ($.browser.msie)
- this.onpaste= function(){setTimeout(checkVal,0);};
- else if ($.browser.mozilla)
- this.addEventListener('input',checkVal,false);
-
- var ignore=false; //Variable for ignoring control keys
-
- function keydownEvent(e){
- var pos=getCaretPosition(this);
- var k = e.keyCode;
- ignore=(k < 16 || (k > 16 && k < 32 ) || (k > 32 && k < 41));
-
- //delete selection before proceeding
- if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){
- clearBuffer(pos.begin,pos.end);
- }
- //backspace and delete get special treatment
- if(k==8){//backspace
- while(pos.begin-->=0){
- if(!locked[pos.begin]){
- buffer[pos.begin]=settings.placeholder;
- if($.browser.opera){
- //Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character.
- writeBuffer(pos.begin);
- setCaretPosition(this,pos.begin+1);
- }else{
- writeBuffer();
- setCaretPosition(this,pos.begin);
- }
- return false;
- }
- }
- }else if(k==46){//delete
- clearBuffer(pos.begin,pos.begin+1);
- writeBuffer();
- setCaretPosition(this,pos.begin);
- return false;
- }else if (k==27){
- clearBuffer(0,mask.length);
- writeBuffer();
- setCaretPosition(this,0);
- return false;
- }
-
- };
- input.bind("keydown",keydownEvent);
-
- function keypressEvent(e){
- if(ignore){
- ignore=false;
- return;
- }
- e=e||window.event;
- var k=e.charCode||e.keyCode||e.which;
-
- var pos=getCaretPosition(this);
- var caretPos=pos.begin;
-
- if(e.ctrlKey || e.altKey){//Ignore
- return true;
- }else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters
- while(pos.begin<mask.length){
- var reString=charMap[mask.charAt(pos.begin)];
- var match;
- if(reString){
- var reChar=new RegExp(reString);
- match=String.fromCharCode(k).match(reChar);
- }else{//we're on a mask char, go forward and try again
- pos.begin+=1;
- pos.end=pos.begin;
- caretPos+=1;
- continue;
- }
-
- if(match)
- buffer[pos.begin]=String.fromCharCode(k);
- else
- return false;//reject char
-
- while(++caretPos<mask.length){//seek forward to next typable position
- if(!locked[caretPos])
- break;
- }
- break;
- }
- }else
- return false;
-
- writeBuffer();
- if(settings.completed && caretPos>=buffer.length)
- settings.completed.call(input);
- else
- setCaretPosition(this,caretPos);
-
- return false;
- };
- input.bind("keypress",keypressEvent);
-
- /*Helper Methods*/
- function clearBuffer(start,end){
- for(var i=start;i<end;i++){
- if(!locked[i])
- buffer[i]=settings.placeholder;
- }
- };
-
- function writeBuffer(pos){
- var s="";
- for(var i=0;i<mask.length;i++){
- s+=buffer[i];
- if(i==pos)
- s+=settings.placeholder;
- }
- input.val(s);
- return s;
- };
-
- function checkVal(){
- //try to place charcters where they belong
- var test=input.val();
- var pos=0;
- for(var i=0;i<mask.length;i++){
- if(!locked[i]){
- while(pos++<test.length){
- //Regex Test each char here.
- var reChar=new RegExp(charMap[mask.charAt(i)]);
- if(test.charAt(pos-1).match(reChar)){
- buffer[i]=test.charAt(pos-1);
- break;
- }
- }
- }
- }
- var s=writeBuffer();
- if(!s.match(re)){
- input.val("");
- clearBuffer(0,mask.length);
- }
- };
-
- input.one("unmask",function(){
- input.unbind("focus",focusEvent);
- input.unbind("blur",checkVal);
- input.unbind("keydown",keydownEvent);
- input.unbind("keypress",keypressEvent);
- if ($.browser.msie)
- this.onpaste= null;
- else if ($.browser.mozilla)
- this.removeEventListener('input',checkVal,false);
- });
-
- });
- };
-})(jQuery); \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js
deleted file mode 100755
index b86a43f4..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js
+++ /dev/null
@@ -1,125 +0,0 @@
- $(document).ready(function(){
-
- jQuery.validator.addMethod("password", function( value, element ) {
- var result = this.optional(element) || value.length >= 6 && /\d/.test(value) && /[a-z]/i.test(value);
- if (!result) {
- element.value = "";
- var validator = this;
- setTimeout(function() {
- validator.blockFocusCleanup = true;
- element.focus();
- validator.blockFocusCleanup = false;
- }, 1);
- }
- return result;
- }, "Your password must be at least 6 characters long and contain at least one number and one character.");
-
- // a custom method making the default value for companyurl ("http://") invalid, without displaying the "invalid url" message
- jQuery.validator.addMethod("defaultInvalid", function(value, element) {
- return value != element.defaultValue;
- }, "");
-
- jQuery.validator.addMethod("billingRequired", function(value, element) {
- if ($("#bill_to_co").is(":checked"))
- return $(element).parents(".subTable").length;
- return !this.optional(element);
- }, "");
-
- jQuery.validator.messages.required = "";
- $("form").validate({
- invalidHandler: function(e, validator) {
- var errors = validator.numberOfInvalids();
- if (errors) {
- var message = errors == 1
- ? 'You missed 1 field. It has been highlighted below'
- : 'You missed ' + errors + ' fields. They have been highlighted below';
- $("div.error span").html(message);
- $("div.error").show();
- } else {
- $("div.error").hide();
- }
- },
- onkeyup: false,
- submitHandler: function() {
- $("div.error").hide();
- alert("submit! use link below to go to the other step");
- },
- messages: {
- password2: {
- required: " ",
- equalTo: "Please enter the same password as above"
- },
- email: {
- required: " ",
- email: "Please enter a valid email address, example: you@yourdomain.com",
- remote: jQuery.validator.format("{0} is already taken, please enter a different address.")
- }
- },
- debug:true
- });
-
- $(".resize").vjustify();
- $("div.buttonSubmit").hoverClass("buttonSubmitHover");
-
- if ($.browser.safari) {
- $("body").addClass("safari");
- }
-
- $("input.phone").mask("(999) 999-9999");
- $("input.zipcode").mask("99999");
- var creditcard = $("#creditcard").mask("9999 9999 9999 9999");
-
- $("#cc_type").change(
- function() {
- switch ($(this).val()){
- case 'amex':
- creditcard.unmask().mask("9999 999999 99999");
- break;
- default:
- creditcard.unmask().mask("9999 9999 9999 9999");
- break;
- }
- }
- );
-
- // toggle optional billing address
- var subTableDiv = $("div.subTableDiv");
- var toggleCheck = $("input.toggleCheck");
- toggleCheck.is(":checked")
- ? subTableDiv.hide()
- : subTableDiv.show();
- $("input.toggleCheck").click(function() {
- if (this.checked == true) {
- subTableDiv.slideUp("medium");
- $("form").valid();
- } else {
- subTableDiv.slideDown("medium");
- }
- });
-
-
-});
-
-$.fn.vjustify = function() {
- var maxHeight=0;
- $(".resize").css("height","auto");
- this.each(function(){
- if (this.offsetHeight > maxHeight) {
- maxHeight = this.offsetHeight;
- }
- });
- this.each(function(){
- $(this).height(maxHeight);
- if (this.offsetHeight > maxHeight) {
- $(this).height((maxHeight-(this.offsetHeight-maxHeight)));
- }
- });
-};
-
-$.fn.hoverClass = function(classname) {
- return this.hover(function() {
- $(this).addClass(classname);
- }, function() {
- $(this).removeClass(classname);
- });
-}; \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm
deleted file mode 100755
index 933d6826..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-200000126/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="title" content="Subscription Signup | Marketo" />
-<meta name="robots" content="index, follow" />
-<meta name="description" content="Marketo Search Marketing application" />
-<meta name="keywords" content="Marketo, Search Marketing" />
-<meta name="language" content="en" />
-<title>Subscription Signup | Marketo</title>
-
-<link rel="shortcut icon" href="/favicon.ico" />
-
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="../../lib/jquery.metadata.js" type="text/javascript"></script>
-<script src="../../lib/jquery.ajaxQueue.js" type="text/javascript"></script>
-<script src="../../lib/jquery.delegate.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="jquery.maskedinput.js"></script>
-<script type="text/javascript" src="mktSignup.js"></script>
-
-<link rel="stylesheet" type="text/css" media="screen" href="stylesheet.css" />
-</head>
-<body>
-<!--[if lte IE 6]>
- <link rel="stylesheet" type="text/css" media="all" href="ie6.css" />
-<![endif]-->
-
-
-
-<!-- start page wrapper --><div id="letterbox">
-
-<!-- start header container -->
-<div id="header-background">
- <div class="nav-global-container">
-
- <div class="login"><a href="https://app.marketo.com"><span></span>Customer Login</a></div>
- <div class="logo"><a href="#"><img src="images/logo_marketo.gif" width="168" height="73" alt="Marketo" /></a></div>
- <div class="nav-global">
- <ul>
- <li><a href="#" class="nav-g01"><span></span>Home</a></li>
- <li><a href="#" class="nav-g02"><span></span>Products</a></li>
- <li><a href="#" class="nav-g04"><span></span>B2B Marketing Resources</a></li>
-
- <li><a href="#" class="nav-g05"><span></span>About Marketo</a></li>
- </ul>
- </div>
-
- </div>
-</div>
-<!-- end header container -->
-<div class="line-grey-tier"></div>
-
-<!-- start page container 2 div-->
-<div id="page-container" class="resize"><div id="page-content-inner" class="resize">
-
-<!-- start col-main -->
-
-<div id="col-main" class="resize" style="">
-
-
-
- <!-- start main content -->
- <div class="main-content resize">
-
- <div class="action-container" style="display:none;"></div>
-
-
-<h1>Step 2 of 2</h1>
-<h2>Billing Information</h2>
-<p>
-</p>
-<br clear="all" />
-<div>
- <form id="billingForm" action="" method="get" >
-
- <div class="error" style="display:none;">
- <img src="images/warning.gif" alt="Warning!" width="24" height="24" style="float:left; margin: -5px 10px 0px 0px; " />
-
- <span></span>.<br clear="all" />
- </div>
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td class="label" style="vertical-align: top; padding-top: 8px;">Billing Address:</td>
- <td class="field" style="font-weight: normal">
- <div class="billingAddressControl">
-
- <input type="checkbox" id="bill_to_co" name="bill_to_co" class="toggleCheck" checked="checked" style="width: auto;" tabindex="1" />
- <label for="bill_to_co" style="cursor:pointer">Same as Company Address</label>
- </div>
- </td>
- </tr>
- <tr class="subTable">
- <td colspan="2">
- <div style="background-color: #EEEEEE; border: 1px solid #CCCCCC; padding: 10px;" class="subTableDiv">
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td class="label"><label for="bill_first_name">First Name:</label></td>
- <td class="field">
- <input maxlength="40" class="billingRequired" name="bill_first_name" size="20" type="text" tabindex="2" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="bill_last_name">Last Name:</label></td>
- <td class="field">
- <input maxlength="40" class="billingRequired" name="bill_last_name" size="20" type="text" tabindex="3" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="bill_email">Email:</label></td>
- <td class="field">
- <input maxlength="40" class="billingRequired email" remote="emails.php" name="email" size="20" type="text" tabindex="4" value="" />
- <div class="formError"></div>
- </td>
- </tr>
- <tr>
- <td class="label"><label for="bill_address1">Address:</label></td>
- <td class="field">
- <input maxlength="40" class="billingRequired" name="bill_address1" size="20" type="text" tabindex="5" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"></td>
- <td class="field">
- <input maxlength="40" name="bill_address2" size="20" type="text" tabindex="6" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="bill_city">City:</label></td>
- <td class="field">
- <input maxlength="40" class="billingRequired" name="bill_city" size="20" type="text" tabindex="7" value="" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="bill_state">State:</label></td>
- <td class="field">
- <select id="bill_state" class="billingRequired" name="bill_state" style="margin-left: 4px;" tabindex="8">
- <option value="">Choose State</option>
- <option value="AL">Alabama</option><option value="AK">Alaska</option><option value="AZ">Arizona</option><option value="AR">Arkansas</option><option value="CA">California</option><option value="CO">Colorado</option><option value="CT">Connecticut</option><option value="DE">Delaware</option><option value="FL">Florida</option><option value="GA">Georgia</option><option value="HI">Hawaii</option><option value="ID">Idaho</option><option value="IL">Illinois</option><option value="IN">Indiana</option><option value="IA">Iowa</option><option value="KS">Kansas</option><option value="KY">Kentucky</option><option value="LA">Louisiana</option><option value="ME">Maine</option><option value="MD">Maryland</option><option value="MA">Massachusetts</option><option value="MI">Michigan</option><option value="MN">Minnesota</option><option value="MS">Mississippi</option><option value="MO">Missouri</option><option value="MT">Montana</option><option value="NE">Nebraska</option><option value="NV">Nevada</option><option value="NH">New Hampshire</option><option value="NJ">New Jersey</option><option value="NM">New Mexico</option><option value="NY">New York</option><option value="NC">North Carolina</option><option value="ND">North Dakota</option><option value="OH">Ohio</option><option value="OK">Oklahoma</option><option value="OR">Oregon</option><option value="PA">Pennsylvania</option><option value="RI">Rhode Island</option><option value="SC">South Carolina</option><option value="SD">South Dakota</option><option value="TN">Tennessee</option><option value="TX">Texas</option><option value="UT">Utah</option><option value="VT">Vermont</option><option value="VA">Virginia</option><option value="WA">Washington</option><option value="WV">West Virginia</option><option value="WI">Wisconsin</option><option value="WY">Wyoming</option>
- </select>
- </td>
- </tr>
-
- <tr>
- <td class="label"><label for="bill_zip">Zip:</label></td>
- <td class="field">
- <input maxlength="10" class="billingRequired zipcode" name="bill_zip" style="width: 100px" type="text" class="zipcode" tabindex="9" value="" />
- </td>
- </tr>
-
- <tr>
- <td class="label"><label for="bill_phone">Phone:</label></td>
- <td class="field">
- <input maxlength="14" class="billingRequired phone" name="bill_phone" style="width: 100px" type="text" class="phone" tabindex="10" value="" />
- </td>
- </tr>
- </table>
- </div>
- </td>
- </tr>
- <tr>
- <td class="label">Credit Card Type:</td>
- <td class="field">
- <select id="cc_type" class="required" name="cc_type" class="creditCardType" tabindex="11">
- <option value="">Choose Credit Card</option>
- <option value="amex">American Express</option>
- <option value="discover">Discover</option>
- <option value="mastercard">MasterCard</option>
- <option value="visa">Visa</option>
- </select>
- </td>
- </tr>
- <tr>
- <td class="label">Expiration:</td>
- <td class="field">
- <select id="cc_exp_month" name="cc_exp_month" title="ExpirationMonth" tabindex="12">
- <option value="01">01 - Jan</option>
- <option value="02">02 - Feb</option>
- <option value="03">03 - Mar</option>
- <option value="04">04 - Apr</option>
- <option value="05">05 - May</option>
- <option value="06">06 - Jun</option>
- <option value="07">07 - Jul</option>
- <option value="08">08 - Aug</option>
- <option value="09">09 - Sep</option>
- <option value="10">10 - Oct</option>
- <option value="11">11 - Nov</option>
- <option value="12">12 - Dec</option>
- </select>
- <select id="cc_exp_year" name="cc_exp_year" title="ExpirationYear" tabindex="13">
- <option value="2007">2007</option>
- <option value="2008" selected="selected">2008</option>
- <option value="2009">2009</option>
- <option value="2010">2010</option>
- <option value="2011">2011</option>
- <option value="2012">2012</option>
- <option value="2013">2013</option>
- <option value="2014">2014</option>
- <option value="2015">2015</option>
- <option value="2016">2016</option>
- </select>
- </td>
- </tr>
- <tr>
- <td class="label"><label for="credit_card">Credit Card Number:</label></td>
- <td class="field">
- <input maxlength="40" id="creditcard" class="required" name="credit_card" size="20" type="text" tabindex="14" />
- </td>
- </tr>
- <tr>
- <td class="label"><label for="cc_cvv">Security Code:</label></td>
- <td class="field">
- <input id="ccNumber" class="required" maxlength="4" name="cc_cvv" style="width: 30px;" type="text" style="vertical-align: top;" tabindex="16" value="" />
- </td>
- </tr>
- <tr>
- <td></td>
- <td>
- <div class="buttonSubmit">
- <span></span>
- <input class="formButton" type="submit" value="Finish" style="width: 180px" />
- </div><br clear="all"/>
-
- </td>
- </tr>
- </table>
- </form>
- <br clear="all" />
-
-</div>
-
-
-
- </div> <!-- end main content -->
- <br />
-</div> <!-- end col-main -->
-
-<!-- start left col -->
-<div id="col-left" class="nav-left-back empty resize" style="position: absolute; min-height: 450px;">
- <div class="col-left-header-tab" style="position: absolute;">Signup</div>
- <div class="nav-left">
-
-
- </div>
-
-
- <div class="left-nav-callout png" style="top: 15px; margin-bottom: 100px;">
- <img src="images/left-nav-callout-long.png" class="png" alt="" />
- <h6>Sign Up Process</h6>
- <a style="background-image: url(images/step1-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Sign up with a valid credit card.</a>
- <a style="background-image: url(images/step2-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Connect to your Google AdWords account. You will need your AdWords Customer ID.</a>
-
- <a target="_blank" style="background-image: url(images/step3-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Start your 30 day trial. No payments until trial ends.</a>
- </div>
-
-<div class="footerAddress">
-<b>Marketo Inc.</b><br />
-1710 S. Amphlett Blvd.<br />
-San Mateo, CA 94402 USA<br />
-</div>
-<br clear="all"/>
-</div> <!-- end left col -->
-
-</div> </div> <!-- end page container 2 divs-->
-
- <div id="footer-container" align="center">
- <div class="footer">
- <ul>
- <li><a href="..">Home</a></li>
- <li class="line-off"><a href=".">Back to first step</a></li>
- </ul>
- </div></div>
-
-
-
-<!-- end page wrapper -->
-</div>
-
-
-<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
-</script>
-<script type="text/javascript">
-_uacct = "UA-2623402-1";
-urchinTracker();
-</script>
-
- </body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css
deleted file mode 100755
index 7040c4fb..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css
+++ /dev/null
@@ -1,1179 +0,0 @@
-:-moz-any-link :focus {
- outline: none;
-}
-
-:focus {
- -moz-outline-style: none;
- outline: none;
-}
-
-body {
- font-size: 80%;
- margin: 0;
- padding: 0;
- font-family: tahoma, geneva, sans-serif;
- background-color: #000000;
-}
-
-a {
- color: #0653AB;
- outline: 0px;
- text-decoration: none;
-}
-
-a:hover {
- outline: 0px;
- text-decoration: underline;
-}
-
-img {
- border: 0px;
-}
-
-/* s1.0 - Page Containers */
-#letterbox {
- margin: 10px auto;
- width: 883px;
- background-color: #364158;
- border: 8px solid #D4D4D4;
- padding: 1px 1px 10px 1px;
-}
-
-#header-background {
- background: url(images/back_nav_blue.gif) repeat-x;
- margin: 0px auto;
- padding: 0px;
- height: 73px;
- width: 883px;
- border-top: 4px solid #CCEAFE;
- border-bottom: 4px solid #D4D4D4;
-}
-
-#page-container {
- width: 866px;
- margin: 0px auto;
- margin-top: 33px; /* pad from top menu to actions buts*/
- margin-bottom: -11px;
- padding-top: 8px;
- padding-bottom: 8px;
- background-color: #D4D4D4; /* light grey*/
- border-right: 1px solid #464646;
-}
-
-#page-content-inner {
- width: 849px;
- margin: 0px auto;
- border-top: 1px solid #9F9FA0;
- border-left: 1px solid #A2A09A;
- background-color: #F4F1E9;
- position: relative;
-}
-
-#page-content-inner #col-left {
- width: 210px;
- float: left;
- background-color: #F4F1E9;
-}
-
-#page-content-inner #col-main {
- width: 639px;
- background-color: #ffffff;
- position: absolute;
- right: 0px;
- top: 0px;
-}
-
-#footer-container {
- width: 866px;
- position: relative;
- left: 8px;
- padding: 2px 0px 10px 0px;
- background-color: #D4D4D4; /* light grey*/
-}
-
-/* s2.0 - Global navigation bar */
-.nav-global-container {
- width: 880px;
- margin: 0px auto;
- position: relative;
-}
-
-* html .nav-global-container { /* ie6 fix*/
- margin-bottom: -6px;
-}
-
-.login {
- position: absolute;
- right: 20px;
- text-align: center;
-}
-
-.login a,.login a span {
- display: block;
- height: 18px;
- font-size: 11px;
- background: url(images/login-sprite.gif) right -5px no-repeat;
- text-decoration: none;
- font-weight: bold;
- padding: 5px 10px 5px 10px;
- position: relative;
-}
-
-.login a:hover {
- color: #000000;
- text-decoration: underline;
-}
-
-div.login a span {
- background-position: left -105px;
- width: 4px;
- position: absolute;
- top: 0px;
- left: 0px;
- padding: 5px 0px 5px 0px;;
-}
-
-div.login a:hover span {
-
-}
-
-.logo {
- float: left;
- margin: 0px 0px -5px 0px; /* neg marging for ie6 */
-}
-
-.logo img {
- border: 0px;
- margin-left: -1px;
-}
-
-.nav-global {
- float: left;
- width: 645px;
- margin: 40px 0px 0px 40px;
- background-color: transparent;
-}
-
-.nav-global ul {
- margin: 0px;
- padding: 0px;
- list-style: none;
-}
-
-.nav-global li {
- float: left;
- white-space: nowrap;
-}
-
-div.nav-global li a,div.nav-global li a span {
- background-image: url(images/tab-sprite.gif);
- background-position: right 100px;
- background-repeat: no-repeat;
- height: 32px;
- color: #666666;
- text-decoration: none;
- font: bold 16px 'trebuchet ms';
- margin-right: 15px;
- display: block;
- position: relative;
- padding: 7px 15px 0px 15px;
-}
-
-div.nav-global li a:hover {
- background-position: right 0px;
- color: #333333;
-}
-
-div.nav-global li a:hover span {
- background-position: left -100px;
- display: block !important;
-}
-
-div.nav-global li a span {
- background-position: left 150px;
- width: 4px;
- position: absolute;
- left: 0px;
- top: 0px;
- padding: 7px 0px 0px 0px;
-}
-
-body.safari div.nav-global li a span {
- display: none;
-}
-
-div.nav-global li a.on,div.nav-global li a.on:hover {
- background-position: right -55px;
- color: #FFFFFF;
-}
-
-div.nav-global li a.on span,div.nav-global li a.on:hover span {
- background-position: left -155px;
- display: block !important;
-}
-
-div.action-container {
- position: relative;
- top: -45px;
- cursor: pointer;
-}
-
-div.action-icon-container {
- position: absolute;
- top: -17px;
- left: -17px;
- z-index: 10;
- width: 100px;
- height: 100px;
- overflow: hidden;
-}
-
-div.action-icon {
- border: 0px;
- position: absolute;
- top: -0px;
- left: 0px;
-}
-
-div.action-button-container {
- height: 106px;
- width: 180px;
- overflow: hidden;
- position: absolute;
- top: 0px;
- left: 0px;
- z-index: 5;
-}
-
-img.action-icon {
- border: 0px;
- position: absolute;
- top: 0px;
- left: 0px;
- z-index: 0
-}
-
-div.action-text {
- z-index: 20;
- color: #FFFFFF;
- position: absolute;
- left: 40px;
- top: 12px;
- font: 14px tahoma, geneva;
- padding-top: 30px;
-}
-
-div.bigbuttons {
- top: -20px;
-}
-
-div.action-header {
- z-index: 21;
- position: absolute;
- left: 40px;
- top: 10px;
-}
-
-div.action-header b {
- font: bold 17px tahoma, geneva;
- display: block;
- margin-bottom: 10px;
- color: #0b2c89;
- position: absolute;
- top: 0px;
- left: 0px;
- width: 130px;
-}
-
-div.action-header b.shadow {
- top: 1px;
- left: 1px;
- color: #d5d5d5;
-}
-
-img.action-button {
- position: relative;
-}
-
-div.hover img.action-button {
- top: -131px;
-}
-
-div.on img.action-button {
- top: -261px;
-}
-
-/* s3.0 - top of content Action Buttons */
-.action-buttons {
- width: 100%; /* ie6 requires */
-}
-
-.action-buttons ul {
- position: relative;
- padding: 0px;
-}
-
-.action-buttons li {
- position: relative; /* ie6 fix */
- float: left;
- list-style: none;
- text-align: center;
- line-height: 16px;
- margin: -61px 0px 0px 0px;
-}
-
-.action-home li {
- margin: -49px 0px 0px 0px;
-}
-
-.action-buttons a {
- display: block;
- height: 110px;
- width: 175px;
- padding: 14px 0px 0px 25px;
- text-decoration: none;
- font-size: 12px;
- font-weight: bold;
- color: #ffffff;
-}
-
-.action-buttons li span {
- color: #053880;
- line-height: 47px;
- font-size: 17px;
-}
-
-div.action-bottom {
- margin: 15px 0px 10px 0px;
- float: left;
-}
-
-div.action-bottom a {
- height: 61px;
- width: 178px;
- border: 0px;
- background: url(images/action-bottom.gif) no-repeat 0px 0px;
- color: #0b2c89;
- float: left;
- position: relative;
- font: bold 17px tahoma, geneva;
- text-decoration: none;
- margin-right: 10px;
-}
-
-div.action-bottom a span {
- position: absolute;
- top: 15px;
- left: 40px;
-}
-
-div.action-bottom a span.shadow {
- top: 16px;
- left: 41px;
- color: #d4d4d4;
-}
-
-.line-grey {
- background: url(images/line-grey.gif) 0 0 repeat-x;
- height: 2px;
- margin: 8px 25px 20px 0;
-}
-
-/* s4.0 - Home Hero Area */
-.hero-background {
- position: relative;
- width: 880px;
- background: url(images/back_home-hero.jpg) 10px 0px no-repeat;
- height: 211px;
- margin: -20px 0px 45px 0px;
-}
-
-.hero-text {
- float: right;
- width: 626px;
- margin-top: 26px;
-}
-
-.hero-text a { /* Sign Up Now Button */
- padding: 5px 32px 0px 0px;
- float: right;
-}
-
-.hero-text h1 {
- font-size: 2.3em;
- line-height: 1.2em;
- color: #333333;
- font-family: Trebuchet MS;
- margin: 12px 0px 10px 10px;
-}
-
-.hero-text h2 {
- margin: 0px;
- font-weight: normal;
- font-size: 1.35em;
- margin: 5px 0px 13px 10px
-}
-
-/* s4.1 - Home Left Header tab */
-.col-left-header-tab {
- position: relative; /* ie6 fix */
- background: url(images/tab_green.gif) 0 0 no-repeat;
- height: 30px;
- width: 166px;
- text-align: center;
- color: #ffffff;
- font: 20px 'trebuchet ms';
- padding-top: 2px;
- margin-top: -41px;
- margin-left: 20px;
- line-height: 29px;
- margin-bottom: 8px;
- display: block;
-}
-
-.col-left-header-tab a {
- color: #FFFFFF;
-}
-
-.callout-green {
- background: url(images/back_green-fade.gif) 0 0 repeat-x;
- font-size: 1.2em;
- padding: 10px 15px 20px 13px;
- color: #303B52;
- line-height: 1.4em;
-}
-
-/* s4.2 - Home Left Quote */
-.callout-tan {
- color: #666666;
-}
-
-.callout-tan h1 {
- background: #F4F1E9 url(images/back_tan-fade.gif) 0 0 repeat-y;
- font-size: 1.1em;
- text-align: center;
- margin: 0px;
- padding: 11px 5px 11px 2px;
- color: #333333;
-}
-
-.callout-tan p {
- margin: 0px;
- margin-top: 5px;
- line-height: 1.4em;
- padding: 5px 10px 7px 13px;
-}
-
-.callout-tan p img {
- float: left;
- margin: 5px 10px 5px 0px;
-}
-
-.callout-tan div {
- text-align: left;
- padding: 5px 10px 7px 0px;
- font-weight: bold;
-}
-
-/* s4.3 - purple home boxes */
-.box-purple {
- background: #C6C8E3 url(images/back_home-icons.png) 0px 0px repeat-x;
- border-left: 1px solid #ffffff;
- color: #333333;
- width: 581px;
- padding: 10px 15px 20px 15px;
-}
-
-div.box-purple a {
-
-}
-
-.box-purple h1 {
- font-size: 1.5em;
- margin: 10px 0px -15px 0px;
-}
-
-.box-purple li {
- margin: 0px 0px 0px -23px;
- line-height: 1.6em;
- font-size: 1em;
-}
-
-.box-purple div {
- padding: 0px 0px 0px 110px;
-}
-
-.icon-text01 {
- background-image: url(images/icon_search-engine-market.png);
- background-repeat: no-repeat;
-}
-
-* html .icon-text01 {
- width: 460px; /* must have a width or heigh tag for ie6*/
- background-image: none;
- filter: progid : DXImageTransform . Microsoft .
- AlphaImageLoader(src = "images/icon_search-engine-market.png",
- sizingMethod = "crop");
-}
-
-.icon-text02 {
- background: url(images/icon_landing-pages.png) 0 0 no-repeat;
-}
-
-* html .icon-text02 {
- width: 460px; /* must have a width or heigh tag for ie6*/
- background-image: none;
- filter: progid : DXImageTransform . Microsoft .
- AlphaImageLoader(src = "images/icon_landing-pages.png", sizingMethod =
- "crop");
-}
-
-.icon-text03 {
- background: url(images/icon_salesforce.png) 0 0 no-repeat;
-}
-
-* html .icon-text03 {
- width: 460px; /* must have a width or heigh tag for ie6*/
- background-image: none;
- filter: progid : DXImageTransform . Microsoft .
- AlphaImageLoader(src = "images/icon_salesforce.png", sizingMethod =
- "crop");
-}
-
-/* s4.4 - news home boxes */
-.callout-news {
- color: #555555;
- float: left;
- width: 49%;
- margin: 10px 1px 0px 0px;
- padding-bottom: 20px;
- text-align: left;
-}
-
-.line-news-r {
- border-right: 1px solid #D4D4D4;
-}
-
-.callout-news h1 {
- background-color: #EEEEEE;
- font-size: 1.2em;
- margin: 0px;
- padding: 11px 5px 11px 15px;
- color: #333333;
-}
-
-.callout-news p {
- margin: 10px 0px 0px 10px;
- padding: 0px 10px 7px 20px;
- background: url(images/news.gif) no-repeat left 1px;
-}
-
-.callout-news p a {
-
-}
-
-.callout-news ul {
- list-style-type: none;
- padding: 0;
- margin: 10px 0 0 10px;
-}
-
-.callout-news li {
- background: url(images/icon_news.gif) no-repeat left 2px;
- padding: 0px 5px 5px 20px;
-}
-
-.callout-news li a {
- display: block;
- margin-bottom: 5px;
-}
-
-.callout-news div {
- text-align: right;
-}
-
-#scrollup {
- position: relative;
- overflow: hidden;
- height: 440px;
- width: 200px
-}
-
-.headline {
- position: absolute;
- top: 600px;
- left: 5px;
- height: 585px;
- width: 190px;
- font: normal 12px tahoma, geneva !important;
-}
-
-div.more {
- margin: 5px 0px 0px 0px;
- padding: 0px 10px 0px 0px;
- letter-spacing: inherit;
-}
-
-div.more a {
- background: transparent url(images/arrow_r-blue.gif) no-repeat right 2px
- ;
- font-weight: bold;
- padding: 0px 20px 0px 0px;
- font-weight: bold;
- text-decoration: none;
-}
-
-div.more a:hover {
- text-decoration: underline;
-}
-
-/* sX.0 - Left Nav */
-.nav-left-back {
- background: url(images/back_nav_side.gif) 0 0 repeat-x;
-}
-
-div.empty {
- background: #F1F0E5 url(images/back_green-fade.gif) 0 0 repeat-x;
-}
-
-div.empty div.callout-green {
-
-}
-
-.nav-left {
- padding-top: 12px;
- /*background: url(images/logo_marketo_square.gif) 0 0 no-repeat;*/
- width: 210px;
-}
-
-.nav-left ul {
- margin: 0px;
- padding: 0px;
- list-style: none;
-}
-
-.nav-left li a {
- display: block;
- height: 24px;
- text-decoration: none;
- font-size: 12px;
- font-weight: bold;
- color: #ffffff;
- border-top: 1px solid #B3D38D;
- border-bottom: 1px solid #7CA84E;
- border-left: 1px solid #97B973;
- padding: 6px 0px 0px 20px;
-}
-
-.nav-left a:hover,.nav-left a.active:hover,#nav-left-sub a:hover {
- color: #4C6F28;
- background-color: #F4F1E9;
-}
-
-.nav-left a.open {
- background-image: url(images/arrow_d-green.gif);
- background-repeat: no-repeat;
- background-position: 6px 11px;
-}
-
-.nav-left-header-tab {
- position: relative; /* ie6 fix */
- background: url(images/tab_green.gif) 0 0 no-repeat;
- height: 32px;
- width: 166px;
- text-align: center;
- color: #ffffff;
- margin: -41px 0px 0px 22px;
- line-height: 22px;
- margin-bottom: 8px;
- display: block;
-}
-
-div.empty div.nav-left-header-tab {
- background: url(images/tab_green2.gif) 0 0 no-repeat;
-}
-
-.nav-left a.active {
- /* background: url(images/arrow_d-green.gif) 5px 10px no-repeat; */
- display: block;
- height: 24px;
- text-decoration: none;
- font-size: 12px;
- font-weight: bold;
- background-color: #F4F1E9;
- color: #4C6F28;
- border-top: 1px solid #D1E5BB;
- border-bottom: 1px solid #B0CB95;
- border-left: 1px solid #DADADA;
- padding: 6px 0px 0px 20px;
-}
-
-#nav-left-sub a {
- display: block;
- height: 24px;
- text-decoration: none;
- font-size: 12px;
- font-weight: bold;
- background-color: #D6E8C4;
- color: #4C6F28;
- border-top: 1px solid #D6E8C4;
- border-bottom: 1px solid #B0CB95;
- border-left: 1px solid #97B973;
- border-right: 1px solid #8DBE5A;
- padding: 6px 0px 0px 30px;
-}
-
-* html #nav-left-sub { /* ie6 fix */
- margin-top: -1px;
-}
-
-*+html #nav-left-sub { /* ie7 fix */
- margin-top: -1px;
-}
-
-#nav-left-sub a.active-page {
- display: block;
- height: 24px;
- text-decoration: none;
- font-size: 12px;
- font-weight: bold;
- background-color: #ffffff;
- color: #666666;
- border-top: 0px solid #7CA84E;
- border-bottom: 1px solid #B0CB95;
- border-left: 1px solid #97B973;
- border-right: 0px solid #8DBE5A;
- padding: 6px 0px 0px 30px;
- cursor: default; /* turns off hand icon for link */
-}
-
-/* sX.0 - Main Content */
-.main-content {
- color: #666666;
- position: absolute;
- right: 20px;
- padding-top: 20px;
- width: 585px;
- padding-bottom: 20px;
-}
-
-div.main-content div.main-content {
-
-}
-
-.main-content h1 {
- color: #5890D1;
- font-size: 1.9em;
- font-family: Trebuchet MS;
- border-bottom: 1px solid #cccccc;
- margin: 0px 10px 0px 0px;
-}
-
-.main-content h2 {
- color: #666666;
- font-size: 1.3em;
- font-weight: normal;
- margin: 10px 10px 5px 0px;
-}
-
-.main-content p {
- margin: 10px 10px 10px 0px;
- line-height: 1.55em;
-}
-
-/* sX.1 - Main Content Sub Styles */
-.sub-grey {
- border-top: 1px solid #D4D4D4;
- border-bottom: 1px solid #D4D4D4;
- background-color: #F4F4F4;
- margin: 10px 10px 0px 0px;
- padding: 0px 10px 20px 15px;
-}
-
-.sub-white {
- margin: 10px 10px 0px 0px;
- padding: 0px 10px 20px 15px;
-}
-
-img.screen-grab-r {
- margin-right: -8px;
- text-align: right;
- padding: 0px 0px 0px 10px;
-}
-
-div.main-content a.screenshot {
- float: right;
- padding: 10px 10px 0px 0px
-}
-
-.content-foot {
- border-top: 1px solid #D4D4D4;
- font-size: .9em;
- line-height: 1.45em;
- margin: 10px 20px 0px 0px;
- padding: 10px 10px 30px 0px;
-}
-
-div.main-content ul {
- position: relative;
- left: -25px;
-}
-
-div.main-content li {
- margin-bottom: 5px;
- list-style-type: disc
-}
-
-div.main-content li a {
- color: #6A6CB0;
-}
-
-/* sX.0 - Footer */
-div.footer {
- color: #666666;
- font-size: .85em;
- font-weight: normal;
- height: 18px;
- margin: 0px auto;
- font-family: Tahoma, Geneva, sans-serif;
- margin-top: 10px;
-}
-
-.footer ul {
- list-style-type: none;
-}
-
-.footer li {
- float: left;
- border-right: 1px solid #666666;
- padding: 0px 7px 0px 7px;
- margin-top: 3px;
-}
-
-.footer a {
- color: #666666;
- text-decoration: none;
-}
-
-.footer a:hover {
- color: #0653AB;
- text-decoration: none;
-}
-
-.footer li.line-off {
- border-right: 0px solid #ffffff;
-}
-
-div.footer strong {
- font-weight: normal;
-}
-
-/* sX.0 - General Colors */
-.line-grey,.line-grey-tier {
- border-top: 1px solid #A3A3A2;
-}
-
-.line-grey-tier {
- padding-bottom: 25px;
-}
-
-.bottom {
- height: 10px;
-}
-
-div.p10bottom {
- padding-bottom: 10px;
-}
-
-.clear {
- clear: both;
-}
-
-table.grid {
- background: #EEEEEE;
-}
-
-table.grid th {
- background-color: #F4F4F4;
-}
-
-table.grid td {
- background-color: #FFFFFF;
-}
-
-div.buttonSubmit {
- position: relative;
-}
-
-div.buttonSubmit input,div.buttonSubmit span {
- height: 36px;
- position: relative;
- background-image: url(images/button-submit.gif);
- background-repeat: no-repeat;
- background-position: right 0px;
- float: left;
- color: #FFFFFF;
- font-weight: bold;
- padding: 0px 15px 2px 15px;
- margin: 20px 0px 20px 0px;
- border: 0px;
- cursor: pointer;
- z-index: 5;
-}
-
-div.buttonSubmit input {
- width: auto;
-}
-
-div.buttonSubmit span {
- width: 4px;
- position: absolute;
- left: 0px;
- top: 0px;
- background-position: left -36px;
- padding: 0px 0px 0px 0px;
- z-index: 10;
-}
-
-body.safari div.buttonSubmit span {
- display: none
-}
-
-div.buttonSubmitHover input {
- background-position: right -72px;
-}
-
-div.buttonSubmitHover span {
- background-position: left -108px;
-}
-
-a.demoLink {
- padding: 1px 10px 0px 17px;
- height: 24px;
- background: url(images/bullet_triangle_blue.gif) no-repeat 0px 4px;
- display: block;
- float: left;
-}
-
-div.callout-tan a {
- background: none;
- color: #0653AB;
- margin: auto;
- display: block;
-}
-
-div.callout-tan a:hover {
- background: none;
- color: #0653AB;
-}
-
-label.error {
- display: block;
- color: red;
- font-style: italic;
- font-weight: normal;
-}
-
-input.error {
- border: 2px solid red;
-}
-
-p.demoBlock {
- border-bottom: 1px solid #DDDDDD;
- padding-bottom: 10px;
-}
-
-div.left-nav-callout {
- height: 200px;
- width: 190px;
- top: 55px;
- left: 5px;
- position: relative;
- padding-left: 9px;
- padding-top: 13px;
-}
-
-div.left-nav-callout img.png {
- position: absolute;
- z-index: 0;
- top: 0px;
- left: 0px;
-}
-
-div.left-nav-callout h6 {
- font: bold 14px tahoma, geneva;
- color: #333333;
- height: 36px;
- padding-left: 5px;
- margin: 0px;
- position: relative;
- z-index: 10;
-}
-
-div.left-nav-callout a {
- background: url(images/monitor24.gif) no-repeat 0px center;
- padding: 5px 0px 5px 30px;
- display: block;
- font: bold 12px tahoma, geneva;
- color: #336699;
- margin-bottom: 5px;
- position: relative;
- z-index: 10;
- width: 140px;
-}
-
-form table td {
- padding: 5px;
-}
-
-form table input {
- width: 200px;
- padding: 3px;
- margin: 0px;
-}
-
-textarea {
- width: 400px
-}
-
-td.label {
- width: 150px;
-}
-
-tr.required td.label {
- font-weight: bold;
- background: url(/images/forms/backRequiredGray.gif) no-repeat right
- center;
-}
-
-div.subTableDiv {
- width: 500px;
-}
-
-div.subTableDiv td.label {
- width: 135px;
-}
-
-ul#homeBlog li div.description {
- display: none;
-}
-
-td.field input.error, td.field select.error, tr.errorRow td.field input,tr.errorRow td.field select {
- border: 2px solid red;
- background-color: #FFFFD5;
- margin: 0px;
- color: red;
-}
-
-tr td.field div.formError {
- display: none;
- color: #FF0000;
-}
-
-tr.errorRow td.field div.formError {
- display: block;
- font-weight: normal;
-}
-
-div.error {
- color: red;
-}
-
-div.error a {
- color: #336699;
- font-size: 12px;
- text-decoration: underline
-}
-
-div.tooltip {
- position: absolute;
- left: 30px;
- bottom: 0px;
- display: none; /* in case javascript is disabled */
- width: 170px;
- background-color: #F4F1E9;
- z-index: 100;
- padding: 10px;
- border: 1px solid #CCCCCC;
-}
-
-div.offerbox {
- width: 125px;
- float: left;
- position: relative;
-}
-
-div.offerbox h3 {
- font: bold 17px tahoma, geneva;
- color: #333333;
- height: 55px;
- margin: 0px auto;
- text-align: center;
-}
-
-div.offerbox h4 {
- height: 100px;
- font: normal 13px tahoma, geneva;
- margin: 0px;
-}
-
-div.offerbox h5 {
- font: bold 14px tahoma, geneva;
- margin: 0px;
- height: 55px;
-}
-
-div.offerbox h5 small {
- float: left;
- font-weight: normal;
- font-size: 10px;
-}
-
-div.offerbox div.learnmore {
- padding-left: 25px;
-}
-
-div#marketoEditions {
- background: url(images/buynowBack.gif) no-repeat;
- width: 584px;
- height: 376px;
- float: left;
- position: relative;
- margin-bottom: 10px;
-}
-
-div.offerHeader {
- background: #0D8BBD;
- position: absolute;
- top: 20px;
- width: 266px;
- height: 34px;
- border: 1px solid #e1e4e2;
-}
-
-div.offerHeader span {
- font: 20px 'trebuchet ms';
- color: #FFFFFF;
- position: absolute;
- left: 0px;
- top: 0px;
-}
-
-div.offerHeader span.shadow {
- font: 20px 'trebuchet ms';
- color: #333333;
- position: absolute;
-}
-
-div.offerbox div.buttonSubmit {
- margin: 5px 0px 0px 10px;
-}
-
-div.footerAddress {
- position: absolute;
- bottom: 30px;
- left: 20px;
- color: #666666;
- font-size: 11px;
- display: none;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gif
deleted file mode 100755
index 2c7c3587..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php
deleted file mode 100755
index 059ac14d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['email']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
- if( strtolower($email) == $request )
- $valid = '"Thats already taken."';
-}
-echo $valid;
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps
deleted file mode 100755
index d2219cc9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['value']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
- if( strtolower($email) == $request )
- $valid = 'false';
-}
-echo $valid;
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html
deleted file mode 100755
index dcc7836d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Remember The Milk signup form - jQuery Validate plugin demo - with friendly permission from the RTM team</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="milk.css" />
-<link rel="stylesheet" type="text/css" media="screen" href="../css/chili.css" />
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<style type="text/css">
- pre { text-align: left; }
-</style>
-
-<script id="demo" type="text/javascript">
-$(document).ready(function() {
- // validate signup form on keyup and submit
- var validator = $("#signupform").validate({
- rules: {
- firstname: "required",
- lastname: "required",
- username: {
- required: true,
- minlength: 2,
- remote: "users.php"
- },
- password: {
- required: true,
- minlength: 5
- },
- password_confirm: {
- required: true,
- minlength: 5,
- equalTo: "#password"
- },
- email: {
- required: true,
- email: true,
- remote: "emails.php"
- },
- dateformat: "required",
- terms: "required"
- },
- messages: {
- firstname: "Enter your firstname",
- lastname: "Enter your lastname",
- username: {
- required: "Enter a username",
- minlength: jQuery.format("Enter at least {0} characters"),
- remote: jQuery.format("{0} is already in use")
- },
- password: {
- required: "Provide a password",
- rangelength: jQuery.format("Enter at least {0} characters")
- },
- password_confirm: {
- required: "Repeat your password",
- minlength: jQuery.format("Enter at least {0} characters"),
- equalTo: "Enter the same password as above"
- },
- email: {
- required: "Please enter a valid email address",
- minlength: "Please enter a valid email address",
- remote: jQuery.format("{0} is already in use")
- },
- dateformat: "Choose your preferred dateformat",
- terms: " "
- },
- // the errorPlacement has to take the table layout into account
- errorPlacement: function(error, element) {
- if ( element.is(":radio") )
- error.appendTo( element.parent().next().next() );
- else if ( element.is(":checkbox") )
- error.appendTo ( element.next() );
- else
- error.appendTo( element.parent().next() );
- },
- // specifying a submitHandler prevents the default submit, good for the demo
- submitHandler: function() {
- alert("submitted!");
- },
- // set this class to error-labels to indicate valid fields
- success: function(label) {
- // set &nbsp; as text for IE
- label.html("&nbsp;").addClass("checked");
- }
- });
-
- // propose username by combining first- and lastname
- $("#username").focus(function() {
- var firstname = $("#firstname").val();
- var lastname = $("#lastname").val();
- if(firstname && lastname && !this.value) {
- this.value = firstname + "." + lastname;
- }
- });
-
-});
-</script>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<div id="content">
-
-<div id="header">
- <div id="headerlogo"><img src="milk.png" alt="Remember The Milk" /></div>
-</div>
-<div style="clear: both;"><div></div></div>
-
-
-<div class="content">
- <div id="signupbox">
- <div id="signuptab">
- <ul>
- <li id="signupcurrent"><a href=" ">Signup</a></li>
- </ul>
- </div>
- <div id="signupwrap">
- <form id="signupform" autocomplete="off" method="get" action="">
- <table>
- <tr>
- <td class="label"><label id="lfirstname" for="firstname">First Name</label></td>
- <td class="field"><input id="firstname" name="firstname" type="text" value="" maxlength="100" /></td>
- <td class="status"></td>
- </tr>
- <tr>
- <td class="label"><label id="llastname" for="lastname">Last Name</label></td>
- <td class="field"><input id="lastname" name="lastname" type="text" value="" maxlength="100" /></td>
- <td class="status"></td>
- </tr>
- <tr>
- <td class="label"><label id="lusername" for="username">Username</label></td>
- <td class="field"><input id="username" name="username" type="text" value="" maxlength="50" /></td>
- <td class="status"></td>
- </tr>
- <tr>
- <td class="label"><label id="lpassword" for="password">Password</label></td>
- <td class="field"><input id="password" name="password" type="password" maxlength="50" value="" /></td>
- <td class="status"></td>
- </tr>
- <tr>
- <td class="label"><label id="lpassword_confirm" for="password_confirm">Confirm Password</label></td>
- <td class="field"><input id="password_confirm" name="password_confirm" type="password" maxlength="50" value="" /></td>
- <td class="status"></td>
- </tr>
- <tr>
- <td class="label"><label id="lemail" for="email">Email Address</label></td>
- <td class="field"><input id="email" name="email" type="text" value="" maxlength="150" /></td>
- <td class="status"></td>
- </tr>
- <tr>
- <td class="label"><label>Which Looks Right</label></td>
- <td class="field" colspan="2" style="vertical-align: top; padding-top: 2px;">
- <table>
- <tbody>
-
- <tr>
- <td style="padding-right: 5px;">
- <input id="dateformat_eu" name="dateformat" type="radio" value="0" />
- <label id="ldateformat_eu" for="dateformat_eu">14/02/07</label>
- </td>
- <td style="padding-left: 5px;">
- <input id="dateformat_am" name="dateformat" type="radio" value="1" />
- <label id="ldateformat_am" for="dateformat_am">02/14/07</label>
- </td>
- <td>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
-
- <tr>
- <td class="label">&nbsp;</td>
- <td class="field" colspan="2">
- <div id="termswrap">
- <input id="terms" type="checkbox" name="terms" />
- <label id="lterms" for="terms">I have read and accept the Terms of Use.</label>
- </div> <!-- /termswrap -->
- </td>
- </tr>
- <tr>
- <td class="label"><label id="lsignupsubmit" for="signupsubmit">Signup</label></td>
- <td class="field" colspan="2">
- <input id="signupsubmit" name="signup" type="submit" value="Signup" />
- </td>
- </tr>
-
- </table>
- </form>
- </div>
- </div>
-</div>
-
-</div>
-
-</div>
-
-
-
-<script type="text/javascript">
-$(document).ready(function() {
- $("<a href='#'>Show script used on this page</a><br/>").appendTo("body").click(function() {
- script.toggle();
- return false;
- });
- $("<a href='#'>Show serverside script</a>").appendTo("body").click(function() {
- serverscript.toggle();
- return false;
- });
- var script = $("<code class='mix'>").html( $("#demo").html() ).wrap("<pre></pre>").parent().hide().appendTo("body");
- var serverscript;
- $.get("users.phps", function(response) {
- serverscript = $("<pre>").hide().html( response ).appendTo("body");
- })
-
-});
-</script>
-
-<script src="../js/chili-1.7.pack.js" type="text/javascript"></script>
-
-</body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.png
deleted file mode 100755
index b889960c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css
deleted file mode 100755
index d5f128bf..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css
+++ /dev/null
@@ -1,236 +0,0 @@
-/* GENERAL ELEMENTS */
-
-* { margin: 0; padding: 0; }
-
-body, input, select, textarea { font-family: verdana, arial, helvetica, sans-serif; font-size: 11px; }
-body { color: #333; background-color: #fff; text-align: center; }
-
-a:link { color:#0060BF; text-decoration: underline; }
-a:visited { color:#0060BF; text-decoration: underline; }
-a:active { color:#0060BF; text-decoration: underline; }
-a:hover { color:#000000; text-decoration: underline; }
-
-h1, h2, h3, h4, h5, h6 { font-family: "Lucida Grande", "Lucida Sans Unicode", geneva, verdana, arial, helvetica, sans-serif; font-weight: bold; color: #666; }
-h1 { font-size: 1.8em; margin: 0em 0em 0.6em 0em; color: #EC5800; }
-h2 { font-size: 1.5em; margin: 1.2em 0em 0.4em 0em; }
-h3 { font-size: 1.4em; margin: 1.2em 0em 0.4em 0em; color: #EC5800; }
-h4 { font-size: 1.2em; margin: 1.2em 0em 0.4em 0em; }
-h5 { font-size: 1.0em; margin: 1.2em 0em 0.4em 0em; }
-h6 { font-size: 0.8em; margin: 1.2em 0em 0.4em 0em; }
-
-img { border: 0px; }
-
-p { font-size: 1.0em; line-height: 1.3em; margin: 1.2em 0em 1.2em 0em; }
-li > p { margin-top: 0.2em; }
-pre { font-family: monospace; font-size: 1.0em; }
-strong, b { font-weight: bold; }
-
-/* PAGE ELEMENTS */
-
-/* Content */
-
-#content { margin: 0em auto; width: 765px; padding: 10px 0 10px 0; text-align: left; /* Win IE5 */ }
-.content { margin-left: 4.5em; margin-right: 4.5em; }
-.content ol, .content ul, .content li { font-size: 1.0em; line-height: 1.3em; margin: 0.2em 0 0.1em 1.5em; }
-.content ol.terms li { margin-bottom: 1em; }
-
-/* Header */
-
-#header { padding-bottom: 10em; }
-#headerlogo { float: left; }
-#headerlogo img { width: 188px; height: 83px; }
-#headernav { float: right; }
-
-label { font-weight: bold; }
-#reminders label { font-weight: normal; }
-
-table.tabbedtable { padding-left: 3em; }
-table.tabbedtable td { padding-bottom: 5px; }
-table.tabbedtable label { text-align: right; padding-right: 9px; }
-.hiddenlabel { visibility: hidden; }
-.largelink { border: 1px solid #cacaca; padding: 10px; background-color: #E8EEF7; font-size: 1.2em; font-weight: bold; }
-.largelinkwrap { padding-top: 10px; padding-bottom: 10px; }
-
-
-
-#signuptab {
- float:left;
- width:100%;
- background:#fff url("bg.gif") repeat-x bottom;
- font-size: 1.0em;
- line-height: normal;
-}
-#signuptab ul {
- margin:0;
- padding: 0px 10px 0px 10px;
- list-style:none;
-}
-#signuptab li {
- float:left;
- background:url("left_white.png") no-repeat left top;
- margin:0;
- padding:0 3px 0 9px;
- border-bottom:1px solid #CACACA;
-}
-#signuptab a {
- float:left;
- display:block;
- width:.1em;
- background:url("right_white.png") no-repeat right top;
- padding:2px 15px 0px 6px;
- text-decoration:none;
- font-weight:bold;
- color:#fff;
- white-space: nowrap;
-}
-#signuptab > ul a {width:auto;}
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-#signuptab a {float:none;}
-/* End IE5-Mac hack */
-#signuptab a:hover {
- color:#333;
-}
-#signuptab #signupcurrent {
- background-position:0 -150px;
- border-width:0;
-}
-#signuptab #signupcurrent a {
- background-position:100% -150px;
- padding-bottom:1px;
- color:#000;
-}
-#signuptab li:hover, #signuptab li:hover a {
- background-position:0% -150px;
- color:#000;
-}
-#signuptab li:hover a {
- background-position:100% -150px;
-}
-
-/* Signup box */
-
-#signupbox {
- width: 100%;
- text-align: center;
- margin: 0em auto;
-}
-
-#signupwrap {
- border: 1px solid #CACACA;
- border-top: 0;
- text-align: left;
- padding: 35px 10px 20px 30px;
- clear: both;
-}
-
-/* Unsupported browsers */
-
-.orange_rbcontent { padding: 0.4em; }
-.orange_rbroundbox { width: 100%; }
-
-#unsupported {
- font-weight: bold;
- text-align: left;
-}
-
-/*#content {
- padding-top: 15px;
-}*/
-
-/* Signup form */
-
-#signupform table {
- border-spacing: 0px;
- border-collapse: collapse;
- empty-cells: show;
-}
-
-#signupform .label {
- padding-top: 2px;
- padding-right: 8px;
- vertical-align: top;
- text-align: right;
- width: 125px;
- white-space: nowrap;
-}
-
-#signupform .field {
- padding-bottom: 10px;
- white-space: nowrap;
-}
-
-#signupform .status {
- padding-top: 2px;
- padding-left: 8px;
- vertical-align: top;
- width: 246px;
- white-space: nowrap;
-}
-
-#signupform .textfield {
- width: 150px;
-}
-
-#signupform label.error {
- background:url("../images/unchecked.gif") no-repeat 0px 0px;
- padding-left: 16px;
- padding-bottom: 2px;
- font-weight: bold;
- color: #EA5200;
-}
-
-#signupform label.checked {
- background:url("../images/checked.gif") no-repeat 0px 0px;
-}
-
-#signupform .success_msg {
- font-weight: bold;
- color: #0060BF;
- margin-left: 19px;
-}
-
-#signupform #dateformatStatus, #signupform #termsStatus {
- margin-left: 6px;
-}
-
-#signupform #dateformat_eu {
- vertical-align: middle;
-}
-
-#signupform #ldateformat_eu {
- font-weight: normal;
- vertical-align: middle;
-}
-
-#signupform #dateformat_am {
- vertical-align: middle;
-}
-
-#signupform #ldateformat_am {
- font-weight: normal;
- vertical-align: middle;
-}
-
-#signupform #termswrap {
- float: left;
-}
-
-#signupform #terms {
- vertical-align: middle;
- float: left;
- display: block;
- margin-right: 5px;
-}
-
-#signupform #lterms {
- font-weight: normal;
- vertical-align: middle;
- float: left;
- display: block;
- width: 350px;
- white-space: normal;
-}
-
-#signupform #lsignupsubmit {
- visibility: hidden;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.png
deleted file mode 100755
index b5e71515..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.png
deleted file mode 100755
index 393bbe2b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php
deleted file mode 100755
index 4fef967f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['username']));
-//sleep(2);
-usleep(150000);
-$users = array('asdf', 'Peter', 'Peter2', 'George');
-$valid = 'true';
-foreach($users as $user) {
- if( strtolower($user) == $request )
- $valid = 'false';
-}
-echo $valid;
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps
deleted file mode 100755
index dfe4c8e9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['value']));
-$users = array('asdf', 'Peter', 'Peter2', 'George');
-$valid = 'true';
-foreach($users as $user) {
- if( strtolower($user) == $request )
- $valid = 'false';
-}
-echo $valid;
-?> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html
deleted file mode 100755
index 2fc5973d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html
+++ /dev/null
@@ -1,412 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-
-<title>jQuery accordion form with validation</title>
-
-<link rel="stylesheet" href="../assets/demo_blue.css" type="text/css" />
-
-<script type="text/javascript" src="../../lib/jquery.js"></script>
-<script type="text/javascript" src="../../jquery.validate.js"></script>
-<script type="text/javascript" src="js/jquery.maskedinput-1.0.js"></script>
-<script type="text/javascript" src="js/ui.core.js"></script>
-<script type="text/javascript" src="js/ui.accordion.js"></script>
-
-<script type="text/javascript">
-$(document).ready(function(){
-
- $("#recordClientPhone").mask("(999) 999-9999");
- $("#recordClientPhoneAlt").mask("(999) 999-9999");
- $("#recordClientZip").mask("99999");
- $("#recordPropertyZip").mask("99999");
- $("#recordPurchaseZip").mask("99999");
-
- // add * to required field labels
- $('label.required').append('&nbsp;<strong>*</strong>&nbsp;');
-
- // accordion functions
- var accordion = $("#stepForm").accordion();
- var current = 0;
-
- $.validator.addMethod("pageRequired", function(value, element) {
- var $element = $(element)
- function match(index) {
- return current == index && $(element).parents("#sf" + (index + 1)).length;
- }
- if (match(0) || match(1) || match(2)) {
- return !this.optional(element);
- }
- return "dependency-mismatch";
- }, $.validator.messages.required)
-
- var v = $("#cmaForm").validate({
- errorClass: "warning",
- onkeyup: false,
- onblur: false,
- submitHandler: function() {
- alert("Submitted, thanks!");
- }
- });
-
- // back buttons do not need to run validation
- $("#sf2 .prevbutton").click(function(){
- accordion.accordion("activate", 0);
- current = 0;
- });
- $("#sf3 .prevbutton").click(function(){
- accordion.accordion("activate", 1);
- current = 1;
- });
- // these buttons all run the validation, overridden by specific targets above
- $(".open2").click(function() {
- if (v.form()) {
- accordion.accordion("activate", 2);
- current = 2;
- }
- });
- $(".open1").click(function() {
- if (v.form()) {
- accordion.accordion("activate", 1);
- current = 1;
- }
- });
- $(".open0").click(function() {
- if (v.form()) {
- accordion.accordion("activate", 0);
- current = 0;
- }
- });
-
-});
-</script>
-
-<link rel="stylesheet" type="text/css" media="screen" href="style.css" />
-</head>
-<body>
-
-<div id="wrap">
-<div id="main">
-
-<h1 class="top bottom"><span>Help me</span> Buy and Sell a House</h1>
-<h2>This form is quick &amp; easy to complete - in only 3 steps!</h2>
-<form name="cmaForm" id="cmaForm" method="post">
-<input type="hidden" name="recordRequestPrimaryServiceID" id="recordRequestPrimaryServiceID" value="100" />
-<input type="hidden" name="recordClientServices" id="recordClientServices" value="1,3" />
-<ul id="stepForm" class="ui-accordion-container">
- <li id="sf1"><a href='#' class="ui-accordion-link"> </a>
- <div>
- <fieldset><legend> Step 1 of 3 </legend>
- <div class="requiredNotice">*Required Field</div>
- <h3 class="stepHeader">Tell us about the property you're buying</h3>
- <label for="recordPurchaseMetRealtor" class="input required">Are you currently working with a<br />
- real estate agent? </label> &nbsp;&nbsp;No: <input name="recordPurchaseMetRealtor" type="radio" checked="checked" class="inputclass" value="0" /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes: <input name="recordPurchaseMetRealtor" type="radio" class="inputclass pageRequired" value="1" title="Please choose Yes or No" />
- <div class="formspacer"></div>
- <label for="recordPurchaseTimeFrameID" class="input required">When would you like to move?</label> <select name="recordPurchaseTimeFrameID" id="recordPurchaseTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
- <option value="">-Select-</option>
- <option value="1">Less than 3 months</option>
- <option value="2">3-6 months</option>
- <option value="3">6-9 months</option>
- <option value="4">9-12 months</option>
- <option value="5">Over 12 months</option>
- </select> <br />
- <label for="recordPurchasePriceRangeID" class="input required">Purchase price range:</label> <select name="recordPurchasePriceRangeID" id="recordPurchasePriceRangeID" class="inputclass pageRequired" title="Select a Price Range">
- <option value="">-Select-</option>
- <option value="1"></option>
- <option value="2">$75,000 - $100,000</option>
- <option value="3">$100,000 - $125,000</option>
- <option value="4">$125,000 - $150,000</option>
- <option value="5">$150,000 - $200,000</option>
- <option value="6">$200,000 - $250,000</option>
- <option value="7">$250,000 - $300,000</option>
- <option value="8">$300,000 - $350,000</option>
- <option value="9">$350,000 - $400,000</option>
- <option value="10">$400,000 - $500,000</option>
- <option value="11">$500,000 - $700,000</option>
- <option value="12">$700,000 - $900,000</option>
- <option value="13">> $900,000</option>
- </select> <br />
- <label for="recordPurchaseState" class="input required">State:</label> <select name="recordPurchaseState" id="recordPurchaseState" class="inputclass pageRequired" title="Select a State">
- <option value="">-Select-</option>
- <option value="AL">Alabama</option>
- <option value="AK">Alaska</option>
- <option value="AZ">Arizona</option>
- <option value="AR">Arkansas</option>
- <option value="CA">California</option>
- <option value="CO">Colorado</option>
- <option value="CT">Connecticut</option>
- <option value="DE">Delaware</option>
- <option value="DC">Dist of Columbia</option>
- <option value="FL">Florida</option>
- <option value="GA">Georgia</option>
- <option value="HI">Hawaii</option>
- <option value="ID">Idaho</option>
- <option value="IL">Illinois</option>
- <option value="IN">Indiana</option>
- <option value="IA">Iowa</option>
- <option value="KS">Kansas</option>
- <option value="KY">Kentucky</option>
- <option value="LA">Louisiana</option>
- <option value="ME">Maine</option>
- <option value="MD">Maryland</option>
- <option value="MA">Massachusetts</option>
- <option value="MI">Michigan</option>
- <option value="MN">Minnesota</option>
- <option value="MS">Mississippi</option>
- <option value="MO">Missouri</option>
- <option value="MT">Montana</option>
- <option value="NE">Nebraska</option>
- <option value="NV">Nevada</option>
- <option value="NH">New Hampshire</option>
- <option value="NJ">New Jersey</option>
- <option value="NM">New Mexico</option>
- <option value="NY">New York</option>
- <option value="NC">North Carolina</option>
- <option value="ND">North Dakota</option>
- <option value="OH">Ohio</option>
- <option value="OK">Oklahoma</option>
- <option value="OR">Oregon</option>
- <option value="PA" selected="selected">Pennsylvania</option>
- <option value="RI">Rhode Island</option>
- <option value="SC">South Carolina</option>
- <option value="SD">South Dakota</option>
- <option value="TN">Tennessee</option>
- <option value="TX">Texas</option>
- <option value="UT">Utah</option>
- <option value="VT">Vermont</option>
- <option value="VA">Virginia</option>
- <option value="WA">Washington</option>
- <option value="WV">West Virginia</option>
- <option value="WI">Wisconsin</option>
- <option value="WY">Wyoming</option>
- </select> <br />
-
- <label for="recordPurchasePropertyTypeID" class="input">Desired property type:</label> <select name="recordPurchasePropertyTypeID" id="recordPurchasePropertyTypeID" class="inputclass" title="Select a Property Type">
- <option value="">-Select-</option>
- <option value="1">Single Family Detached</option>
- <option value="2">Condo</option>
- <option value="3">Townhouse</option>
- <option value="4">Rental</option>
- <option value="5">Multi-Family</option>
- <option value="6">Vacation Home</option>
- <option value="7">Other</option>
- </select> <br />
- <div class="buttonWrapper"><input name="formNext1" type="button" class="open1 nextbutton" value="Next" alt="Next" title="Next" /></div>
- </fieldset>
- </div>
- </li>
- <li id="sf2">
- <a href='#' class="ui-accordion-link">
- </a>
- <div>
- <fieldset><legend> Step 2 of 3 </legend>
- <div class="requiredNotice">*Required Field</div>
- <h3 class="stepHeader">Tell us about the property you're selling</h3>
- <label for="recordClientTimeFrameID" class="input required">When would you like to sell?</label> <select name="recordClientTimeFrameID" id="recordClientTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
- <option value="">-Select-</option>
- <option value="1">Less than 3 months</option>
- <option value="2">3-6 months</option>
- <option value="3">6-9 months</option>
- <option value="4">9-12 months</option>
- <option value="5">Over 12 months</option>
- </select> <br />
- <label for="recordClientHomeTypeID" class="input required">Type of property you are selling:</label> <select name="recordClientHomeTypeID" id="recordClientHomeTypeID" class="inputclass pageRequired" title="Select a Property Type">
- <option value="">-Select-</option>
- <option value="1">Single Family Detached</option>
- <option value="2">Condo</option>
- <option value="3">Townhouse</option>
- <option value="4">Rental</option>
- <option value="5">Multi-Family</option>
- <option value="6">Vacation Home</option>
- <option value="7">Other</option>
- </select> <br />
- <label for="recordPropertyAddress1" class="input required">Property Street Address:</label> <input name="recordPropertyAddress1" id="recordPropertyAddress1" class="inputclass pageRequired" title="Street Address is required" maxlength="254" onblur="recordClientAddress1.value = this.value" /><br />
- <label for="recordPropertyAddress2" class="input">Address (2):</label> <input name="recordPropertyAddress2" id="recordPropertyAddress2" class="inputclass" maxlength="254" onblur="recordClientAddress2.value = this.value" /><br />
- <label for="recordPropertyCity" class="input required">City:</label> <input name="recordPropertyCity" id="recordPropertyCity" class="inputclass pageRequired" title="City is required" maxlength="254" onblur="recordClientCity.value = this.value" /><br />
- <label for="recordPropertyState" class="input required">State:</label> <select name="recordPropertyState" id="recordPropertyState" class="inputclass pageRequired" title="Select a State" onchange="recordClientState.value = this.value">
- <option value="">-Select-</option>
- <option value="AL">Alabama</option>
- <option value="AK">Alaska</option>
- <option value="AZ">Arizona</option>
- <option value="AR">Arkansas</option>
- <option value="CA">California</option>
- <option value="CO">Colorado</option>
- <option value="CT">Connecticut</option>
- <option value="DE">Delaware</option>
- <option value="DC">Dist of Columbia</option>
- <option value="FL">Florida</option>
- <option value="GA">Georgia</option>
- <option value="HI">Hawaii</option>
- <option value="ID">Idaho</option>
- <option value="IL">Illinois</option>
- <option value="IN">Indiana</option>
- <option value="IA">Iowa</option>
- <option value="KS">Kansas</option>
- <option value="KY">Kentucky</option>
- <option value="LA">Louisiana</option>
- <option value="ME">Maine</option>
- <option value="MD">Maryland</option>
- <option value="MA">Massachusetts</option>
- <option value="MI">Michigan</option>
- <option value="MN">Minnesota</option>
- <option value="MS">Mississippi</option>
- <option value="MO">Missouri</option>
- <option value="MT">Montana</option>
- <option value="NE">Nebraska</option>
- <option value="NV">Nevada</option>
- <option value="NH">New Hampshire</option>
- <option value="NJ">New Jersey</option>
- <option value="NM">New Mexico</option>
- <option value="NY">New York</option>
- <option value="NC">North Carolina</option>
- <option value="ND">North Dakota</option>
- <option value="OH">Ohio</option>
- <option value="OK">Oklahoma</option>
- <option value="OR">Oregon</option>
- <option value="PA" selected="selected">Pennsylvania</option>
- <option value="RI">Rhode Island</option>
- <option value="SC">South Carolina</option>
- <option value="SD">South Dakota</option>
- <option value="TN">Tennessee</option>
- <option value="TX">Texas</option>
- <option value="UT">Utah</option>
- <option value="VT">Vermont</option>
- <option value="VA">Virginia</option>
- <option value="WA">Washington</option>
- <option value="WV">West Virginia</option>
- <option value="WI">Wisconsin</option>
- <option value="WY">Wyoming</option>
- </select> <br />
- <label for="recordPropertyZip" class="input required">Zip:</label> <input name="recordPropertyZip" id="recordPropertyZip" class="inputclass pageRequired" title="Zip Code is required" maxlength="254" onblur="recordClientZip.value = this.value" /><br />
-
- <label for="recordClientPropertyValueID" class="input required">Estimated Market Value:</label> <select name="recordClientPropertyValueID" id="recordClientPropertyValueID" class="inputclass pageRequired" title="Select a Price Range">
- <option value="">-Select-</option>
- <option value="1">Less Than $75K</option>
- <option value="2">$75-$100K</option>
- <option value="3">$100-$125K</option>
- <option value="4">$125-$150K</option>
- <option value="5">$150-$200K</option>
- <option value="6">$200-$250K</option>
- <option value="7">$250-$300K</option>
- <option value="8">$300-$350K</option>
- <option value="9">$350-$400K</option>
- <option value="10">$400-$500K</option>
- <option value="11">$500-$700K</option>
- <option value="12">$700-$900K</option>
- <option value="13">Over $900K</option>
- </select> <br />
- <label for="recordPropertyBedroomsID" class="input">Bedrooms:</label> <select name="recordPropertyBedroomsID" id="recordPropertyBedroomsID" class="inputclass">
- <option value="">-Select-</option>
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="5">5+</option>
- </select> <br />
- <label for="recordPropertyBathroomsId" class="input">Bathrooms:</label> <select name="recordPropertyBathroomsId" id="recordPropertyBathroomsId" class="inputclass">
- <option value="">-Select-</option>
- <option value="1">1</option>
- <option value="2">1.5</option>
- <option value="3">2</option>
- <option value="4">2.5</option>
- <option value="5">3</option>
- <option value="6">3.5</option>
- <option value="7">4+</option>
- </select> <br />
- <label for="recordPropertyAgeId" class="input">Approx. Age of Home:</label> <select name="recordPropertyAgeId" id="recordPropertyAgeId" class="inputclass">
- <option value="">-Select-</option>
- <option value="1">Less Than 1 year</option>
- <option value="2">1-5 years</option>
- <option value="3">6-10 years</option>
- <option value="4">11-15 years</option>
- <option value="5">More than 15 years</option>
- </select> <br />
- <label for="recordPropertySqFt" class="input">Approx. Square Footage:</label> <input name="recordPropertySqFt" id="recordPropertySqFt" class="inputclass" maxlength="254" /><br />
- <div class="buttonWrapper"><input name="formBack0" type="button" class="open0 prevbutton" value="Back" alt="Back" title="Back" /> <input name="formNext2" type="button" class="open2 nextbutton" value="Next" alt="Next" title="Next" /></div>
- </fieldset>
- </div>
- </li>
- <li id="sf3">
- <a href='#' class="ui-accordion-link">
- </a>
- <div>
- <fieldset><legend> Step 3 of 3 </legend>
- <div class="requiredNotice">*Required Field</div>
- <h3 class="stepHeader">Tell us about yourself</h3>
- <label for="recordClientNameFirst" class="input required">First Name:</label> <input name="recordClientNameFirst" id="recordClientNameFirst" class="inputclass pageRequired" title="First Name is required" maxlength="254" /> <br />
- <label for="recordClientNameLast" class="input required">Last Name:</label> <input name="recordClientNameLast" id="recordClientNameLast" class="inputclass pageRequired" maxlength="254" title="Last Name is required" /> <br />
- <label for="recordClientAddress1" class="input required">Current Address:</label> <input name="recordClientAddress1" id="recordClientAddress1" class="inputclass pageRequired" maxlength="254" title="Address is required" /> <br />
- <label for="recordClientAddress2" class="input">Address (2):</label> <input name="recordClientAddress2" id="recordClientAddress2" class="inputclass" maxlength="254" /> <br />
- <label for="recordClientCity" class="input required">City:</label> <input name="recordClientCity" id="recordClientCity" class="inputclass pageRequired" maxlength="254" title="City is required" /> <br />
- <label for="recordClientState" class="input required">State:</label> <select name="recordClientState" id="recordClientState" class="inputclass pageRequired" title="Select a State">
- <option value="">-Select-</option>
- <option value="AL">Alabama</option>
- <option value="AK">Alaska</option>
- <option value="AZ">Arizona</option>
- <option value="AR">Arkansas</option>
- <option value="CA">California</option>
- <option value="CO">Colorado</option>
- <option value="CT">Connecticut</option>
- <option value="DE">Delaware</option>
- <option value="DC">Dist of Columbia</option>
- <option value="FL">Florida</option>
- <option value="GA">Georgia</option>
- <option value="HI">Hawaii</option>
- <option value="ID">Idaho</option>
- <option value="IL">Illinois</option>
- <option value="IN">Indiana</option>
- <option value="IA">Iowa</option>
- <option value="KS">Kansas</option>
- <option value="KY">Kentucky</option>
- <option value="LA">Louisiana</option>
- <option value="ME">Maine</option>
- <option value="MD">Maryland</option>
- <option value="MA">Massachusetts</option>
- <option value="MI">Michigan</option>
- <option value="MN">Minnesota</option>
- <option value="MS">Mississippi</option>
- <option value="MO">Missouri</option>
- <option value="MT">Montana</option>
- <option value="NE">Nebraska</option>
- <option value="NV">Nevada</option>
- <option value="NH">New Hampshire</option>
- <option value="NJ">New Jersey</option>
- <option value="NM">New Mexico</option>
- <option value="NY">New York</option>
- <option value="NC">North Carolina</option>
- <option value="ND">North Dakota</option>
- <option value="OH">Ohio</option>
- <option value="OK">Oklahoma</option>
- <option value="OR">Oregon</option>
- <option value="PA" selected="selected">Pennsylvania</option>
- <option value="RI">Rhode Island</option>
- <option value="SC">South Carolina</option>
- <option value="SD">South Dakota</option>
- <option value="TN">Tennessee</option>
- <option value="TX">Texas</option>
- <option value="UT">Utah</option>
- <option value="VT">Vermont</option>
- <option value="VA">Virginia</option>
- <option value="WA">Washington</option>
- <option value="WV">West Virginia</option>
- <option value="WI">Wisconsin</option>
- <option value="WY">Wyoming</option>
- </select> <br />
- <label for="recordClientZip" class="input required">Zip:</label> <input name="recordClientZip" id="recordClientZip" class="inputclass pageRequired" maxlength="12" title="Zip Code is required" /> <br />
- <label for="recordClientPhone" class="input required">Phone Number:</label> <input name="recordClientPhone" id="recordClientPhone" class="inputclass pageRequired" maxlength="254" title="Phone Number is required" /> <br />
- <label for="recordClientPhoneAlt" class="input">Alternate Number:</label> <input name="recordClientPhoneAlt" id="recordClientPhoneAlt" class="inputclass" maxlength="254" /> <br />
- <label for="recordClientEmail" class="input required">Email Address:</label> <input name="recordClientEmail" id="recordClientEmail" class="inputclass pageRequired email" maxlength="254" title="Email address is required" /> <br />
- <label for="recordClientEmail1" class="input required">Confirm Email:</label> <input name="recordClientEmail1" id="recordClientEmail1" class="inputclass pageRequired" equalTo:"'#recordClientEmail" maxlength="254" title="Please confirm your email address" /> <br />
- <br />
- <p class="formDisclaimer">This is a sample form, no information is sent anywhere.</p>
- <div class="buttonWrapper"><input name="formBack1" type="button" class="open1 prevbutton" value="Back" alt="Back" title="Back" /> <input name="submit" type="submit" id="submit" value="Submit" class="submitbutton" alt="Submit" title="Submit"></div>
- </fieldset>
- </div>
- </li>
-</ul>
-</form>
-
-</div>
-</div>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js
deleted file mode 100755
index 9ba3ecfa..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (c) 2007 Josh Bush (digitalbush.com)
- *
- * 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.
- */
-
-/*
- * Version: 1.0
- * Release: 2007-07-25
- */
-(function($) {
- //Helper Functions for Caret positioning
- function getCaretPosition(ctl){
- var res = {begin: 0, end: 0 };
- if (ctl.setSelectionRange){
- res.begin = ctl.selectionStart;
- res.end = ctl.selectionEnd;
- }else if (document.selection && document.selection.createRange){
- var range = document.selection.createRange();
- res.begin = 0 - range.duplicate().moveStart('character', -100000);
- res.end = res.begin + range.text.length;
- }
- return res;
- };
-
- function setCaretPosition(ctl, pos){
- if(ctl.setSelectionRange){
- ctl.focus();
- ctl.setSelectionRange(pos,pos);
- }else if (ctl.createTextRange){
- var range = ctl.createTextRange();
- range.collapse(true);
- range.moveEnd('character', pos);
- range.moveStart('character', pos);
- range.select();
- }
- };
-
- //Predefined character definitions
- var charMap={
- '9':"[0-9]",
- 'a':"[A-Za-z]",
- '*':"[A-Za-z0-9]"
- };
-
- //Helper method to inject character definitions
- $.mask={
- addPlaceholder : function(c,r){
- charMap[c]=r;
- }
- };
-
- //Main Method
- $.fn.mask = function(mask,settings) {
- settings = $.extend({
- placeholder: "_",
- completed: null
- }, settings);
-
- //Build Regex for format validation
- var reString="^";
- for(var i=0;i<mask.length;i++)
- reString+=(charMap[mask.charAt(i)] || ("\\"+mask.charAt(i)));
- reString+="$";
- var re = new RegExp(reString);
-
- return this.each(function(){
- var input=$(this);
- var buffer=new Array(mask.length);
- var locked=new Array(mask.length);
-
- //Build buffer layout from mask
- for(var i=0;i<mask.length;i++){
- locked[i]=charMap[mask.charAt(i)]==null;
- buffer[i]=locked[i]?mask.charAt(i):settings.placeholder;
- }
-
- /*Event Bindings*/
- input.focus(function(){
- checkVal();
- writeBuffer();
- setCaretPosition(this,0);
- });
-
- input.blur(checkVal);
-
- //Paste events for IE and Mozilla thanks to Kristinn Sigmundsson
- if ($.browser.msie)
- this.onpaste= function(){setTimeout(checkVal,0);};
- else if ($.browser.mozilla)
- this.addEventListener('input',checkVal,false);
-
- var ignore=false; //Variable for ignoring control keys
-
- input.keydown(function(e){
- var pos=getCaretPosition(this);
- var k = e.keyCode;
- ignore=(k < 16 || (k > 16 && k < 32 ) || (k > 32 && k < 41));
-
- //delete selection before proceeding
- if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){
- clearBuffer(pos.begin,pos.end);
- }
- //backspace and delete get special treatment
- if(k==8){//backspace
- while(pos.begin-->=0){
- if(!locked[pos.begin]){
- buffer[pos.begin]=settings.placeholder;
- if($.browser.opera){
- //Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character.
- writeBuffer(pos.begin);
- setCaretPosition(this,pos.begin+1);
- }else{
- writeBuffer();
- setCaretPosition(this,pos.begin);
- }
- return false;
- }
- }
- }else if(k==46){//delete
- clearBuffer(pos.begin,pos.begin+1);
- writeBuffer();
- setCaretPosition(this,pos.begin);
- return false;
- }else if (k==27){
- clearBuffer(0,mask.length);
- writeBuffer();
- setCaretPosition(this,0);
- return false;
- }
-
- });
-
- input.keypress(function(e){
- if(ignore){
- ignore=false;
- return;
- }
- e=e||window.event;
- var k=e.charCode||e.keyCode||e.which;
-
- var pos=getCaretPosition(this);
- var caretPos=pos.begin;
-
- if(e.ctrlKey || e.altKey){//Ignore
- return true;
- }else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters
- while(pos.begin<mask.length){
- var reString=charMap[mask.charAt(pos.begin)];
- var match;
- if(reString){
- var reChar=new RegExp(reString);
- match=String.fromCharCode(k).match(reChar);
- }else{//we're on a mask char, go forward and try again
- pos.begin+=1;
- pos.end=pos.begin;
- caretPos+=1;
- continue;
- }
-
- if(match)
- buffer[pos.begin]=String.fromCharCode(k);
- else
- return false;//reject char
-
- while(++caretPos<mask.length){//seek forward to next typable position
- if(!locked[caretPos])
- break;
- }
- break;
- }
- }else
- return false;
-
- writeBuffer();
- if(settings.completed && caretPos>=buffer.length)
- settings.completed.call(input);
- else
- setCaretPosition(this,caretPos);
-
- return false;
- });
-
- /*Helper Methods*/
- function clearBuffer(start,end){
- for(var i=start;i<end;i++){
- if(!locked[i])
- buffer[i]=settings.placeholder;
- }
- };
-
- function writeBuffer(pos){
- var s="";
- for(var i=0;i<mask.length;i++){
- s+=buffer[i];
- if(i==pos)
- s+=settings.placeholder;
- }
- input.val(s);
- return s;
- };
-
- function checkVal(){
- //try to place charcters where they belong
- var test=input.val();
- var pos=0;
- for(var i=0;i<mask.length;i++){
- if(!locked[i]){
- while(pos++<test.length){
- //Regex Test each char here.
- var reChar=new RegExp(charMap[mask.charAt(i)]);
- if(test.charAt(pos-1).match(reChar)){
- buffer[i]=test.charAt(pos-1);
- break;
- }
- }
- }
- }
- var s=writeBuffer();
- if(!s.match(re)){
- input.val("");
- clearBuffer(0,mask.length);
- }
- };
- });
- };
-})(jQuery); \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js
deleted file mode 100755
index 0e94df16..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * jQuery UI Accordion 1.7.1
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- * ui.core.js
- */
-(function($) {
-
-$.widget("ui.accordion", {
-
- _init: function() {
-
- var o = this.options, self = this;
- this.running = 0;
-
- // if the user set the alwaysOpen option on init
- // then we need to set the collapsible option
- // if they set both on init, collapsible will take priority
- if (o.collapsible == $.ui.accordion.defaults.collapsible &&
- o.alwaysOpen != $.ui.accordion.defaults.alwaysOpen) {
- o.collapsible = !o.alwaysOpen;
- }
-
- if ( o.navigation ) {
- var current = this.element.find("a").filter(o.navigationFilter);
- if ( current.length ) {
- if ( current.filter(o.header).length ) {
- this.active = current;
- } else {
- this.active = current.parent().parent().prev();
- current.addClass("ui-accordion-content-active");
- }
- }
- }
-
- this.element.addClass("ui-accordion ui-widget ui-helper-reset");
-
- // in lack of child-selectors in CSS we need to mark top-LIs in a UL-accordion for some IE-fix
- if (this.element[0].nodeName == "UL") {
- this.element.children("li").addClass("ui-accordion-li-fix");
- }
-
- this.headers = this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
- .bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); })
- .bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); })
- .bind("focus.accordion", function(){ $(this).addClass('ui-state-focus'); })
- .bind("blur.accordion", function(){ $(this).removeClass('ui-state-focus'); });
-
- this.headers
- .next()
- .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-
- this.active = this._findActive(this.active || o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
- this.active.next().addClass('ui-accordion-content-active');
-
- //Append icon elements
- $("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
- this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
-
- // IE7-/Win - Extra vertical space in lists fixed
- if ($.browser.msie) {
- this.element.find('a').css('zoom', '1');
- }
-
- this.resize();
-
- //ARIA
- this.element.attr('role','tablist');
-
- this.headers
- .attr('role','tab')
- .bind('keydown', function(event) { return self._keydown(event); })
- .next()
- .attr('role','tabpanel');
-
- this.headers
- .not(this.active || "")
- .attr('aria-expanded','false')
- .attr("tabIndex", "-1")
- .next()
- .hide();
-
- // make sure at least one header is in the tab order
- if (!this.active.length) {
- this.headers.eq(0).attr('tabIndex','0');
- } else {
- this.active
- .attr('aria-expanded','true')
- .attr('tabIndex', '0');
- }
-
- // only need links in taborder for Safari
- if (!$.browser.safari)
- this.headers.find('a').attr('tabIndex','-1');
-
- if (o.event) {
- this.headers.bind((o.event) + ".accordion", function(event) { return self._clickHandler.call(self, event, this); });
- }
-
- },
-
- destroy: function() {
- var o = this.options;
-
- this.element
- .removeClass("ui-accordion ui-widget ui-helper-reset")
- .removeAttr("role")
- .unbind('.accordion')
- .removeData('accordion');
-
- this.headers
- .unbind(".accordion")
- .removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
- .removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");
-
- this.headers.find("a").removeAttr("tabindex");
- this.headers.children(".ui-icon").remove();
- var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
- if (o.autoHeight || o.fillHeight) {
- contents.css("height", "");
- }
- },
-
- _setData: function(key, value) {
- if(key == 'alwaysOpen') { key = 'collapsible'; value = !value; }
- $.widget.prototype._setData.apply(this, arguments);
- },
-
- _keydown: function(event) {
-
- var o = this.options, keyCode = $.ui.keyCode;
-
- if (o.disabled || event.altKey || event.ctrlKey)
- return;
-
- var length = this.headers.length;
- var currentIndex = this.headers.index(event.target);
- var toFocus = false;
-
- switch(event.keyCode) {
- case keyCode.RIGHT:
- case keyCode.DOWN:
- toFocus = this.headers[(currentIndex + 1) % length];
- break;
- case keyCode.LEFT:
- case keyCode.UP:
- toFocus = this.headers[(currentIndex - 1 + length) % length];
- break;
- case keyCode.SPACE:
- case keyCode.ENTER:
- return this._clickHandler({ target: event.target }, event.target);
- }
-
- if (toFocus) {
- $(event.target).attr('tabIndex','-1');
- $(toFocus).attr('tabIndex','0');
- toFocus.focus();
- return false;
- }
-
- return true;
-
- },
-
- resize: function() {
-
- var o = this.options, maxHeight;
-
- if (o.fillSpace) {
-
- if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); }
- maxHeight = this.element.parent().height();
- if($.browser.msie) { this.element.parent().css('overflow', defOverflow); }
-
- this.headers.each(function() {
- maxHeight -= $(this).outerHeight();
- });
-
- var maxPadding = 0;
- this.headers.next().each(function() {
- maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
- }).height(Math.max(0, maxHeight - maxPadding))
- .css('overflow', 'auto');
-
- } else if ( o.autoHeight ) {
- maxHeight = 0;
- this.headers.next().each(function() {
- maxHeight = Math.max(maxHeight, $(this).outerHeight());
- }).height(maxHeight);
- }
-
- },
-
- activate: function(index) {
- // call clickHandler with custom event
- var active = this._findActive(index)[0];
- this._clickHandler({ target: active }, active);
- },
-
- _findActive: function(selector) {
- return selector
- ? typeof selector == "number"
- ? this.headers.filter(":eq(" + selector + ")")
- : this.headers.not(this.headers.not(selector))
- : selector === false
- ? $([])
- : this.headers.filter(":eq(0)");
- },
-
- _clickHandler: function(event, target) {
-
- var o = this.options;
- if (o.disabled) return false;
-
- // called only when using activate(false) to close all parts programmatically
- if (!event.target && o.collapsible) {
- this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
- .find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
- this.active.next().addClass('ui-accordion-content-active');
- var toHide = this.active.next(),
- data = {
- options: o,
- newHeader: $([]),
- oldHeader: o.active,
- newContent: $([]),
- oldContent: toHide
- },
- toShow = (this.active = $([]));
- this._toggle(toShow, toHide, data);
- return false;
- }
-
- // get the click target
- var clicked = $(event.currentTarget || target);
- var clickedIsActive = clicked[0] == this.active[0];
-
- // if animations are still active, or the active header is the target, ignore click
- if (this.running || (!o.collapsible && clickedIsActive)) {
- return false;
- }
-
- // switch classes
- this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
- .find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
- this.active.next().addClass('ui-accordion-content-active');
- if (!clickedIsActive) {
- clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
- .find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
- clicked.next().addClass('ui-accordion-content-active');
- }
-
- // find elements to show and hide
- var toShow = clicked.next(),
- toHide = this.active.next(),
- data = {
- options: o,
- newHeader: clickedIsActive && o.collapsible ? $([]) : clicked,
- oldHeader: this.active,
- newContent: clickedIsActive && o.collapsible ? $([]) : toShow.find('> *'),
- oldContent: toHide.find('> *')
- },
- down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
-
- this.active = clickedIsActive ? $([]) : clicked;
- this._toggle(toShow, toHide, data, clickedIsActive, down);
-
- return false;
-
- },
-
- _toggle: function(toShow, toHide, data, clickedIsActive, down) {
-
- var o = this.options, self = this;
-
- this.toShow = toShow;
- this.toHide = toHide;
- this.data = data;
-
- var complete = function() { if(!self) return; return self._completed.apply(self, arguments); };
-
- // trigger changestart event
- this._trigger("changestart", null, this.data);
-
- // count elements to animate
- this.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
- if (o.animated) {
-
- var animOptions = {};
-
- if ( o.collapsible && clickedIsActive ) {
- animOptions = {
- toShow: $([]),
- toHide: toHide,
- complete: complete,
- down: down,
- autoHeight: o.autoHeight || o.fillSpace
- };
- } else {
- animOptions = {
- toShow: toShow,
- toHide: toHide,
- complete: complete,
- down: down,
- autoHeight: o.autoHeight || o.fillSpace
- };
- }
-
- if (!o.proxied) {
- o.proxied = o.animated;
- }
-
- if (!o.proxiedDuration) {
- o.proxiedDuration = o.duration;
- }
-
- o.animated = $.isFunction(o.proxied) ?
- o.proxied(animOptions) : o.proxied;
-
- o.duration = $.isFunction(o.proxiedDuration) ?
- o.proxiedDuration(animOptions) : o.proxiedDuration;
-
- var animations = $.ui.accordion.animations,
- duration = o.duration,
- easing = o.animated;
-
- if (!animations[easing]) {
- animations[easing] = function(options) {
- this.slide(options, {
- easing: easing,
- duration: duration || 700
- });
- };
- }
-
- animations[easing](animOptions);
-
- } else {
-
- if (o.collapsible && clickedIsActive) {
- toShow.toggle();
- } else {
- toHide.hide();
- toShow.show();
- }
-
- complete(true);
-
- }
-
- toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur();
- toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus();
-
- },
-
- _completed: function(cancel) {
-
- var o = this.options;
-
- this.running = cancel ? 0 : --this.running;
- if (this.running) return;
-
- if (o.clearStyle) {
- this.toShow.add(this.toHide).css({
- height: "",
- overflow: ""
- });
- }
-
- this._trigger('change', null, this.data);
- }
-
-});
-
-
-$.extend($.ui.accordion, {
- version: "1.7.1",
- defaults: {
- active: null,
- alwaysOpen: true, //deprecated, use collapsible
- animated: 'slide',
- autoHeight: true,
- clearStyle: false,
- collapsible: false,
- event: "click",
- fillSpace: false,
- header: "> li > :first-child,> :not(li):even",
- icons: {
- header: "ui-icon-triangle-1-e",
- headerSelected: "ui-icon-triangle-1-s"
- },
- navigation: false,
- navigationFilter: function() {
- return this.href.toLowerCase() == location.href.toLowerCase();
- }
- },
- animations: {
- slide: function(options, additions) {
- options = $.extend({
- easing: "swing",
- duration: 300
- }, options, additions);
- if ( !options.toHide.size() ) {
- options.toShow.animate({height: "show"}, options);
- return;
- }
- if ( !options.toShow.size() ) {
- options.toHide.animate({height: "hide"}, options);
- return;
- }
- var overflow = options.toShow.css('overflow'),
- percentDone,
- showProps = {},
- hideProps = {},
- fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
- originalWidth;
- // fix width before calculating height of hidden element
- var s = options.toShow;
- originalWidth = s[0].style.width;
- s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) );
-
- $.each(fxAttrs, function(i, prop) {
- hideProps[prop] = 'hide';
-
- var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/);
- showProps[prop] = {
- value: parts[1],
- unit: parts[2] || 'px'
- };
- });
- options.toShow.css({ height: 0, overflow: 'hidden' }).show();
- options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{
- step: function(now, settings) {
- // only calculate the percent when animating height
- // IE gets very inconsistent results when animating elements
- // with small values, which is common for padding
- if (settings.prop == 'height') {
- percentDone = (settings.now - settings.start) / (settings.end - settings.start);
- }
-
- options.toShow[0].style[settings.prop] =
- (percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit;
- },
- duration: options.duration,
- easing: options.easing,
- complete: function() {
- if ( !options.autoHeight ) {
- options.toShow.css("height", "");
- }
- options.toShow.css("width", originalWidth);
- options.toShow.css({overflow: overflow});
- options.complete();
- }
- });
- },
- bounceslide: function(options) {
- this.slide(options, {
- easing: options.down ? "easeOutBounce" : "swing",
- duration: options.down ? 1000 : 200
- });
- },
- easeslide: function(options) {
- this.slide(options, {
- easing: "easeinout",
- duration: 700
- });
- }
- }
-});
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js
deleted file mode 100755
index 6be9993b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * jQuery UI 1.7.1
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI
- */
-;jQuery.ui || (function($) {
-
-var _remove = $.fn.remove,
- isFF2 = $.browser.mozilla && (parseFloat($.browser.version) < 1.9);
-
-//Helper functions and ui object
-$.ui = {
- version: "1.7.1",
-
- // $.ui.plugin is deprecated. Use the proxy pattern instead.
- plugin: {
- add: function(module, option, set) {
- var proto = $.ui[module].prototype;
- for(var i in set) {
- proto.plugins[i] = proto.plugins[i] || [];
- proto.plugins[i].push([option, set[i]]);
- }
- },
- call: function(instance, name, args) {
- var set = instance.plugins[name];
- if(!set || !instance.element[0].parentNode) { return; }
-
- for (var i = 0; i < set.length; i++) {
- if (instance.options[set[i][0]]) {
- set[i][1].apply(instance.element, args);
- }
- }
- }
- },
-
- contains: function(a, b) {
- return document.compareDocumentPosition
- ? a.compareDocumentPosition(b) & 16
- : a !== b && a.contains(b);
- },
-
- hasScroll: function(el, a) {
-
- //If overflow is hidden, the element might have extra content, but the user wants to hide it
- if ($(el).css('overflow') == 'hidden') { return false; }
-
- var scroll = (a && a == 'left') ? 'scrollLeft' : 'scrollTop',
- has = false;
-
- if (el[scroll] > 0) { return true; }
-
- // TODO: determine which cases actually cause this to happen
- // if the element doesn't have the scroll set, see if it's possible to
- // set the scroll
- el[scroll] = 1;
- has = (el[scroll] > 0);
- el[scroll] = 0;
- return has;
- },
-
- isOverAxis: function(x, reference, size) {
- //Determines when x coordinate is over "b" element axis
- return (x > reference) && (x < (reference + size));
- },
-
- isOver: function(y, x, top, left, height, width) {
- //Determines when x, y coordinates is over "b" element
- return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
- },
-
- keyCode: {
- BACKSPACE: 8,
- CAPS_LOCK: 20,
- COMMA: 188,
- CONTROL: 17,
- DELETE: 46,
- DOWN: 40,
- END: 35,
- ENTER: 13,
- ESCAPE: 27,
- HOME: 36,
- INSERT: 45,
- LEFT: 37,
- NUMPAD_ADD: 107,
- NUMPAD_DECIMAL: 110,
- NUMPAD_DIVIDE: 111,
- NUMPAD_ENTER: 108,
- NUMPAD_MULTIPLY: 106,
- NUMPAD_SUBTRACT: 109,
- PAGE_DOWN: 34,
- PAGE_UP: 33,
- PERIOD: 190,
- RIGHT: 39,
- SHIFT: 16,
- SPACE: 32,
- TAB: 9,
- UP: 38
- }
-};
-
-// WAI-ARIA normalization
-if (isFF2) {
- var attr = $.attr,
- removeAttr = $.fn.removeAttr,
- ariaNS = "http://www.w3.org/2005/07/aaa",
- ariaState = /^aria-/,
- ariaRole = /^wairole:/;
-
- $.attr = function(elem, name, value) {
- var set = value !== undefined;
-
- return (name == 'role'
- ? (set
- ? attr.call(this, elem, name, "wairole:" + value)
- : (attr.apply(this, arguments) || "").replace(ariaRole, ""))
- : (ariaState.test(name)
- ? (set
- ? elem.setAttributeNS(ariaNS,
- name.replace(ariaState, "aaa:"), value)
- : attr.call(this, elem, name.replace(ariaState, "aaa:")))
- : attr.apply(this, arguments)));
- };
-
- $.fn.removeAttr = function(name) {
- return (ariaState.test(name)
- ? this.each(function() {
- this.removeAttributeNS(ariaNS, name.replace(ariaState, ""));
- }) : removeAttr.call(this, name));
- };
-}
-
-//jQuery plugins
-$.fn.extend({
- remove: function() {
- // Safari has a native remove event which actually removes DOM elements,
- // so we have to use triggerHandler instead of trigger (#3037).
- $("*", this).add(this).each(function() {
- $(this).triggerHandler("remove");
- });
- return _remove.apply(this, arguments );
- },
-
- enableSelection: function() {
- return this
- .attr('unselectable', 'off')
- .css('MozUserSelect', '')
- .unbind('selectstart.ui');
- },
-
- disableSelection: function() {
- return this
- .attr('unselectable', 'on')
- .css('MozUserSelect', 'none')
- .bind('selectstart.ui', function() { return false; });
- },
-
- scrollParent: function() {
- var scrollParent;
- if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
- scrollParent = this.parents().filter(function() {
- return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- } else {
- scrollParent = this.parents().filter(function() {
- return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- }
-
- return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
- }
-});
-
-
-//Additional selectors
-$.extend($.expr[':'], {
- data: function(elem, i, match) {
- return !!$.data(elem, match[3]);
- },
-
- focusable: function(element) {
- var nodeName = element.nodeName.toLowerCase(),
- tabIndex = $.attr(element, 'tabindex');
- return (/input|select|textarea|button|object/.test(nodeName)
- ? !element.disabled
- : 'a' == nodeName || 'area' == nodeName
- ? element.href || !isNaN(tabIndex)
- : !isNaN(tabIndex))
- // the element and all of its ancestors must be visible
- // the browser may report that the area is hidden
- && !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
- },
-
- tabbable: function(element) {
- var tabIndex = $.attr(element, 'tabindex');
- return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
- }
-});
-
-
-// $.widget is a factory to create jQuery plugins
-// taking some boilerplate code out of the plugin code
-function getter(namespace, plugin, method, args) {
- function getMethods(type) {
- var methods = $[namespace][plugin][type] || [];
- return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods);
- }
-
- var methods = getMethods('getter');
- if (args.length == 1 && typeof args[0] == 'string') {
- methods = methods.concat(getMethods('getterSetter'));
- }
- return ($.inArray(method, methods) != -1);
-}
-
-$.widget = function(name, prototype) {
- var namespace = name.split(".")[0];
- name = name.split(".")[1];
-
- // create plugin method
- $.fn[name] = function(options) {
- var isMethodCall = (typeof options == 'string'),
- args = Array.prototype.slice.call(arguments, 1);
-
- // prevent calls to internal methods
- if (isMethodCall && options.substring(0, 1) == '_') {
- return this;
- }
-
- // handle getter methods
- if (isMethodCall && getter(namespace, name, options, args)) {
- var instance = $.data(this[0], name);
- return (instance ? instance[options].apply(instance, args)
- : undefined);
- }
-
- // handle initialization and non-getter methods
- return this.each(function() {
- var instance = $.data(this, name);
-
- // constructor
- (!instance && !isMethodCall &&
- $.data(this, name, new $[namespace][name](this, options))._init());
-
- // method call
- (instance && isMethodCall && $.isFunction(instance[options]) &&
- instance[options].apply(instance, args));
- });
- };
-
- // create widget constructor
- $[namespace] = $[namespace] || {};
- $[namespace][name] = function(element, options) {
- var self = this;
-
- this.namespace = namespace;
- this.widgetName = name;
- this.widgetEventPrefix = $[namespace][name].eventPrefix || name;
- this.widgetBaseClass = namespace + '-' + name;
-
- this.options = $.extend({},
- $.widget.defaults,
- $[namespace][name].defaults,
- $.metadata && $.metadata.get(element)[name],
- options);
-
- this.element = $(element)
- .bind('setData.' + name, function(event, key, value) {
- if (event.target == element) {
- return self._setData(key, value);
- }
- })
- .bind('getData.' + name, function(event, key) {
- if (event.target == element) {
- return self._getData(key);
- }
- })
- .bind('remove', function() {
- return self.destroy();
- });
- };
-
- // add widget prototype
- $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
-
- // TODO: merge getter and getterSetter properties from widget prototype
- // and plugin prototype
- $[namespace][name].getterSetter = 'option';
-};
-
-$.widget.prototype = {
- _init: function() {},
- destroy: function() {
- this.element.removeData(this.widgetName)
- .removeClass(this.widgetBaseClass + '-disabled' + ' ' + this.namespace + '-state-disabled')
- .removeAttr('aria-disabled');
- },
-
- option: function(key, value) {
- var options = key,
- self = this;
-
- if (typeof key == "string") {
- if (value === undefined) {
- return this._getData(key);
- }
- options = {};
- options[key] = value;
- }
-
- $.each(options, function(key, value) {
- self._setData(key, value);
- });
- },
- _getData: function(key) {
- return this.options[key];
- },
- _setData: function(key, value) {
- this.options[key] = value;
-
- if (key == 'disabled') {
- this.element
- [value ? 'addClass' : 'removeClass'](
- this.widgetBaseClass + '-disabled' + ' ' +
- this.namespace + '-state-disabled')
- .attr("aria-disabled", value);
- }
- },
-
- enable: function() {
- this._setData('disabled', false);
- },
- disable: function() {
- this._setData('disabled', true);
- },
-
- _trigger: function(type, event, data) {
- var callback = this.options[type],
- eventName = (type == this.widgetEventPrefix
- ? type : this.widgetEventPrefix + type);
-
- event = $.Event(event);
- event.type = eventName;
-
- // copy original event properties over to the new event
- // this would happen if we could call $.event.fix instead of $.Event
- // but we don't have a way to force an event to be fixed multiple times
- if (event.originalEvent) {
- for (var i = $.event.props.length, prop; i;) {
- prop = $.event.props[--i];
- event[prop] = event.originalEvent[prop];
- }
- }
-
- this.element.trigger(event, data);
-
- return !($.isFunction(callback) && callback.call(this.element[0], event, data) === false
- || event.isDefaultPrevented());
- }
-};
-
-$.widget.defaults = {
- disabled: false
-};
-
-
-/** Mouse Interaction Plugin **/
-
-$.ui.mouse = {
- _mouseInit: function() {
- var self = this;
-
- this.element
- .bind('mousedown.'+this.widgetName, function(event) {
- return self._mouseDown(event);
- })
- .bind('click.'+this.widgetName, function(event) {
- if(self._preventClickEvent) {
- self._preventClickEvent = false;
- event.stopImmediatePropagation();
- return false;
- }
- });
-
- // Prevent text selection in IE
- if ($.browser.msie) {
- this._mouseUnselectable = this.element.attr('unselectable');
- this.element.attr('unselectable', 'on');
- }
-
- this.started = false;
- },
-
- // TODO: make sure destroying one instance of mouse doesn't mess with
- // other instances of mouse
- _mouseDestroy: function() {
- this.element.unbind('.'+this.widgetName);
-
- // Restore text selection in IE
- ($.browser.msie
- && this.element.attr('unselectable', this._mouseUnselectable));
- },
-
- _mouseDown: function(event) {
- // don't let more than one widget handle mouseStart
- // TODO: figure out why we have to use originalEvent
- event.originalEvent = event.originalEvent || {};
- if (event.originalEvent.mouseHandled) { return; }
-
- // we may have missed mouseup (out of window)
- (this._mouseStarted && this._mouseUp(event));
-
- this._mouseDownEvent = event;
-
- var self = this,
- btnIsLeft = (event.which == 1),
- elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
- if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
- return true;
- }
-
- this.mouseDelayMet = !this.options.delay;
- if (!this.mouseDelayMet) {
- this._mouseDelayTimer = setTimeout(function() {
- self.mouseDelayMet = true;
- }, this.options.delay);
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted = (this._mouseStart(event) !== false);
- if (!this._mouseStarted) {
- event.preventDefault();
- return true;
- }
- }
-
- // these delegates are required to keep context
- this._mouseMoveDelegate = function(event) {
- return self._mouseMove(event);
- };
- this._mouseUpDelegate = function(event) {
- return self._mouseUp(event);
- };
- $(document)
- .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- // preventDefault() is used to prevent the selection of text here -
- // however, in Safari, this causes select boxes not to be selectable
- // anymore, so this fix is needed
- ($.browser.safari || event.preventDefault());
-
- event.originalEvent.mouseHandled = true;
- return true;
- },
-
- _mouseMove: function(event) {
- // IE mouseup check - mouseup happened when mouse was out of window
- if ($.browser.msie && !event.button) {
- return this._mouseUp(event);
- }
-
- if (this._mouseStarted) {
- this._mouseDrag(event);
- return event.preventDefault();
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted =
- (this._mouseStart(this._mouseDownEvent, event) !== false);
- (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
- }
-
- return !this._mouseStarted;
- },
-
- _mouseUp: function(event) {
- $(document)
- .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- if (this._mouseStarted) {
- this._mouseStarted = false;
- this._preventClickEvent = (event.target == this._mouseDownEvent.target);
- this._mouseStop(event);
- }
-
- return false;
- },
-
- _mouseDistanceMet: function(event) {
- return (Math.max(
- Math.abs(this._mouseDownEvent.pageX - event.pageX),
- Math.abs(this._mouseDownEvent.pageY - event.pageY)
- ) >= this.options.distance
- );
- },
-
- _mouseDelayMet: function(event) {
- return this.mouseDelayMet;
- },
-
- // These are placeholder methods, to be overriden by extending plugin
- _mouseStart: function(event) {},
- _mouseDrag: function(event) {},
- _mouseStop: function(event) {},
- _mouseCapture: function(event) { return true; }
-};
-
-$.ui.mouse.defaults = {
- cancel: null,
- distance: 1,
- delay: 0
-};
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css
deleted file mode 100755
index fbf08c24..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css
+++ /dev/null
@@ -1,705 +0,0 @@
-/********************************************
- AUTHOR: Erwin Aligam
- WEBSITE: http://www.styleshout.com/
- TEMPLATE NAME: Techmania 1.0
- TEMPLATE CODE: S-0003
- VERSION: 1.1
- *******************************************/
- /********************************************
- HTML ELEMENTS
-********************************************/ /* Top elements */
- /** { margin:0; padding: 0; }*/
-body {
- background-color: #000;
- color: #555;
- font: 78%/ 1.6 Verdana, 'Trebuchet MS', arial, sans-serif;
- text-align: center;
- margin: 15px 0;
-}
-
-/* links */
-a {
- color: #213540;
- background: inherit;
- text-decoration: none;
-}
-
-a:hover {
- color: #3e4255;
- text-decoration: underline;
- background: inherit;
-}
-
-/* headers */
-h1,h2,h3 {
- font-family: 'Trebuchet MS', Arial, sans-serif;
- font-weight: bold;
-}
-
-h1 {
- font-size: 1.5em;
- margin: 10px 15px;
-}
-
-h2 {
- font-size: 1.3em;
- text-transform: uppercase;
- color: #339900;
- margin: 10px 15px;
-}
-
-h3 {
- font-size: 1.1em;
- color: #333;
- margin: 16px 0 0 18px;
-}
-
-h1,h2,h3 {
- padding: 0;
-}
-
-p {
- line-height: 1.4em;
- padding: 0 15px;
-}
-
-p.error {
- color: #CC0033;
-}
-
-ul,ol {
- margin: 10px 6px;
- padding: 0 15px;
- color: #006699;
-}
-
-ul span,ol span {
- color: #666666;
-}
-
-/* images */
-img {
- border: 2px solid #CCC;
-}
-
-img.float-right {
- margin: 5px 0px 10px 10px;
-}
-
-img.float-left {
- margin: 5px 10px 10px 0px;
-}
-
-code {
- margin: 5px 0;
- padding: 10px;
- text-align: left;
- display: block;
- overflow: auto;
- font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
- /* white-space: pre; */
- background: #FAFAFA;
- border: 1px solid #EAEAEA;
- border-left: 5px solid #72A545;
-}
-
-acronym {
- cursor: help;
- border-bottom: 1px solid #777;
-}
-
-blockquote {
- margin: 15px;
- padding: 0 0 0 32px;
- background: #FAFAFA url(quote.gif) no-repeat 5px 10px !important;
- background-position: 8px 10px;
- border: 1px solid #EAEAEA;
- border-left: 5px solid #72A545;
- font-weight: bold;
-}
-
-/* form elements */
-fieldset {
- margin: 12px 12px 18px;
- padding-left: 6px;
- border: 1px solid #004080;
- color: #006699;
-}
-
-fieldset fieldset {
- border: 1px solid #9ea190;
- margin: 17px 14px;
-}
-
-form {
- margin: 10px 15px;
- padding: 0;
-}
-
-label {
- font-weight: bold;
- margin: 5px 3px 0 0;
- width: 160px;
- text-align: right;
- float: left;
-}
-
-legend {
- font-size: 1.2em;
- padding: 0 12px;
- font-weight: 900;
- background-color: #F9F9F9;
-}
-
-fieldset fieldset legend {
- font-size: 1em;
- color: #1a2129;
- padding: 0 18px;
- margin-left: 75px;
-}
-
-input {
- padding: 3px;
- margin: 4px 0;
- border: 1px solid #CFCED3;
- font: normal 1em Verdana, sans-serif;
- color: #777;
-}
-
-textarea {
- width: 400px;
- padding: 4px;
- font: normal 1em Verdana, sans-serif;
- border: 1px solid #eee;
- height: 100px;
- display: block;
- color: #777;
-}
-
-input.button {
- margin: 0;
- font: bold 12px Arial, Sans-serif;
- border: 1px solid #EAEAEA;
- padding: 3px 4px;
- background: #CCC url(buttonbg.gif) repeat-x left bottom;
- color: #333; /* color: #339900; */
- cursor: pointer;
-}
-
-input.submitbutton {
- background-color: #006699;
- color: #FFF;
- background-image: none;
- font-weight: 900;
- border: 1px solid #EAEAEA;
- margin: 0 0 0 200px;
-}
-
-/* search */
-#sidebar #search {
- background: #f2f2f2;
- margin: 0 15px;
- padding: 5px 0;
-}
-
-#sidebar #search img {
- vertical-align: bottom;
-}
-
-#sidebar #search .textbox {
- background: #FFF url(input.png) no-repeat top left;
- border: 1px solid #EAEAEA;
- font-size: 11px;
- padding: 3px;
- width: 110px;
-}
-
-#sidebar #search input.searchbutton {
- margin: 0;
- font: bold 100% Arial, Sans-serif;
- border: 1px solid #CCC;
- background: #CCC url(buttonbg.gif) repeat-x left bottom;
- padding: 1px;
- height: 25px;
- color: #333;
- width: 55px;
-}
-
-/*****************************
- LAYOUT
-******************************/
-#wrap {
- margin: 0 auto;
- padding: 0;
- text-align: left;
- background-color: #FFF;
- width: 790px;
-}
-
-#content-wrap {
- clear: both;
- margin: 0;
- padding: 0;
- width: 790px;
-}
-
-/* header */
-#header {
- position: relative;
- clear: left;
- width: 790px;
- height: 137px;
- margin: 0;
- padding: 0;
- background: #000 url(headerbg.jpg) no-repeat left bottom;
-}
-
-#header h1#logo-text {
- float: right;
- margin: 39px 58px 0 0;
- padding: 0;
- font: bolder 3.2em 'Trebuchet MS', Arial, Sans-serif;
- letter-spacing: -2px;
- color: #FFF;
- text-transform: none;
- /* change the values of top and right to adjust the position of the logo*/
- top: 35px;
- right: 30px;
-}
-
-#header h2#slogan {
- float: right;
- margin: 0 38px 0 0;
- padding: 0;
- font: bold 1.5em 'Trebuchet MS', Arial, Sans-serif;
- text-transform: none;
- letter-spacing: 1px;
- color: #FFF;
- clear: both;
- text-align: right;
-}
-
-#header h1#logo-text span {
- color: #CFCED3;
-}
-
-/* menu tabs */
-#header #header-tabs {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 25px;
- background: #000;
- font: bold 1.1em Verdana, Tahoma, 'Trebuchet MS', Sans-serif;
-}
-
-#header-tabs ul {
- margin: 0;
- padding: 2px 0px 0px 0px;
- list-style: none;
-}
-
-#header-tabs li {
- display: inline;
- margin: 0;
- padding: 0;
-}
-
-#header-tabs a {
- float: left;
- background: url(tableft.gif) no-repeat left top;
- margin: 0;
- padding: 0 0 0 4px;
- text-decoration: none;
-}
-
-#header-tabs a span {
- float: left;
- display: block;
- background: url(tabright.gif) no-repeat right top;
- padding: 7px 15px 4px 8px;
- color: #CCC;
-}
-
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-#header-tabs a span {
- float: none;
-}
-
-/* End IE5-Mac hack */
-#header-tabs a:hover span {
- color: #FFF;
-}
-
-#header-tabs a:hover {
- background-position: 0% -42px;
-}
-
-#header-tabs a:hover span {
- background-position: 100% -42px;
-}
-
-#header-tabs #current a {
- background-position: 0% -42px;
-}
-
-#header-tabs #current a span {
- background-position: 100% -42px;
- color: #FFF;
-}
-
-/* main content */
-#main {
- width: 748px;
- margin: 0;
- padding: 8px 16px;
- background-color: #F9F9F9;
- border-left: 5px solid #000;
- border-right: 5px solid #000;
-}
-
-#main h1 {
- padding: 8px 0 3px 25px;
- text-transform: none;
- border-bottom: 2px solid #f2f2f2;
- color: #339900;
-}
-
-/* sidebar */
-#sidebar { /* float: right;
- width: 245px;
- margin: 0 0 10px 0; padding: 0;
- background-color: inherit; */
- display: none;
-}
-
-#sidebar h1 {
- padding: 8px 0px 3px 25px;
- background: url(square_arrow.gif) no-repeat 0% .7em;
- text-transform: none;
- color: #339900;
-}
-
-#sidebar ul.sidemenu {
- list-style: none;
- margin: 10px 15px;
- padding: 0;
-}
-
-#sidebar ul.sidemenu li {
- margin-bottom: 1px;
- border: 1px solid #f2f2f2;
-}
-
-#sidebar ul.sidemenu a {
- display: block;
- font-weight: bold;
- color: #333;
- text-decoration: none;
- padding: 2px 5px 2px 10px;
- background: #f2f2f2;
- border-left: 5px solid #CCC;
- min-height: 18px;
-}
-
-* html body #sidebar ul.sidemenu a {
- height: 18px;
-}
-
-#sidebar ul.sidemenu a:hover {
- padding: 2px 5px 2px 10px;
- background: #f2f2f2;
- color: #339900;
- border-left: 5px solid #72A545;
-}
-
-/* footer */
-#footer {
- clear: both;
- height: 40px;
- color: #CCC;
- background: #000;
- margin: 0;
- font-size: 92%;
-}
-
-#footer a {
- text-decoration: none;
- font-weight: bold;
- color: #FFF;
-}
-
-#footer #footer-left {
- width: 68%;
- float: left;
- text-align: left;
- margin: 0;
- padding: 10px;
-}
-
-#footer #footer-right {
- width: 25%;
- float: right;
- text-align: right;
- margin: 0;
- padding: 10px;
-}
-
-/* alignment classes */
-.float-left {
- float: left;
-}
-
-.float-right {
- float: right;
-}
-
-.align-left {
- text-align: left;
-}
-
-.align-right {
- text-align: right;
-}
-
-/* additional classes */
-.clear {
- clear: both;
-}
-
-.hide {
- display: none;
-}
-
-.gray {
- color: #CCC;
-}
-
-.comments {
- color: #333;
- background: #FFF;
- text-align: right;
- border-top: 1px dashed #EFF0F1;
- border-bottom: 1px dashed #EFF0F1;
- padding: 5px 0;
- margin-top: 20px;
-}
-
-html {
- min-height: 100.1%;
-}
-
-/* ------ one ------------*/
-body .mainText {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 12px;
-}
-
-#demoText h1,.mainText h1 {
- font-size: 130%;
- color: #0099FF;
- text-decoration: none;
- font-family: Arial, Helvetica, sans-serif;
- margin: 5px 4px 5px 24px;
- background: none;
- padding: 0;
- border: none;
- text-transform: capitalize;
-}
-
-.mainText h2 {
- font-size: 110%;
- color: #000033;
- font-family: Arial, Helvetica, sans-serif;
- text-decoration: none;
- background: none;
- margin: 4px 32px 6px 22px;
- text-transform: capitalize;
-}
-
-.mainText h3 {
- font-size: 120%;
- font-weight: 900;
- margin: 14px 0 0 0;
- text-align: center;
- color: #000033;
-}
-
-.mainText table {
- width: 95%;
- border: 1px solid #0099FF;
- border-collapse: collapse;
- margin: 18px 7px;
-}
-
-.mainText table td {
- background-color: #99CCFF;
- color: #000033;
- padding: 4px;
-}
-
-.mainText table th {
- background-color: #000033;
- color: #99CCFF;
- padding: 4px;
-}
-
-.mainText .linkPar a {
- color: #000033;
- text-decoration: underline;
-}
-
-.mainText .linkPar a:hover {
- color: #660033;
- text-decoration: none;
- font-weight: 900;
-}
-
-.pusher {
- cursor: pointer;
- padding: 3px 10px 3px 22px;
- font-weight: 900;
- font-size: 14px;
-}
-
-/* ------------- form specific styles are here -------------- */
-fieldset {
- margin: 0;
- border: 1px solid #C3DE00;
- padding: 10px;
- /*border:none;
-padding:0;*/
- color: #7563A5;
-}
-
-legend {
- background-color: #FFFFFF;
- text-align: center;
- color: #097981;
- padding: 0 12px;
-}
-
-label {
- text-align: right;
- width: 298px;
- border-right: 1px dotted #099;
- padding-right: 5px;
- margin: 0 0 8px 0;
- float: left;
- clear: left;
- display: block;
- color: #7563A5;
-}
-
-label.checkbox,label.textarea {
- border: none;
-}
-
-label.lgfield {
- border: none;
- text-align: center;
- clear: both;
- float: none;
- width: 100%;
-}
-
-fieldset input,fieldset select,fieldset textarea {
- margin-left: 10px;
- margin-bottom: 8px;
-}
-
-select.longfield {
- margin: 0 0 0 115px;
-}
-
-input [type="radio"],input [type="checkbox"] {
- margin: 2px 0 0 4px;
-}
-
-textarea {
- width: 250px;
- float: left;
-}
-
-/*Get Help Form Styles*/
-p.formDisclaimer {
- text-align: center;
- margin: 32px 24px 12px 0;
- font-style: italic;
-}
-
-div.buttonWrapper {
- margin: 28px 0 14px 0;
- clear: both;
- text-align: center;
-}
-
-.formspacer {
- height: 1em;
- clear: both;
-}
-
-.hideField {
- display: none;
-}
-
-.pushOpen {
- height: 18em;
-}
-
-/* ----- error message for field validation ----- */
-#stepForm label.warning {
- text-align: left;
- width: auto;
- padding: 0;
- margin: 0 0 0 10px;
- float: none;
- clear: none;
- display: inline;
- color: #CC3366;
- font-size: 10px;
- border: none;
- border-top: 1px dotted #CC3366;
-}
-
-div.requiredNotice {
- width: 140px;
- float: right;
- margin: 0 24px 0 0;
- padding: 0;
-}
-
-h3.stepHeader {
- text-align: left;
- font-size: 16px;
- font-weight: bold;
- margin: 0 0 24px 24px;
- color: #676cac;
-}
-
-ul#stepForm,ul#stepForm li {
- margin: 0;
- padding: 0;
-}
-
-ul#stepForm li {
- list-style: none;
-}
-
-/* Form Buttons */
-input.submitbutton,.nextbutton,.prevbutton {
- width: 100px;
- height: 40px;
- background-color: #663399;
- padding: 4px;
- border: 1px solid #339933;
- cursor: pointer;
- text-align: center;
- color: #FFFFFF;
- margin: 7px;
-}
-
-input.submitbutton {
- background-color: #006699;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html
deleted file mode 100755
index f8e128b2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../lib/jquery.metadata.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-// only for demo purposes
-$.validator.setDefaults({
- submitHandler: function() {
- alert("submitted!");
- }
-});
-
-$.metadata.setType("attr", "validate");
-
-$(document).ready(function() {
- $("#form1").validate();
- $("#selecttest").validate();
-});
-</script>
-
-<style type="text/css">
-.block { display: block; }
-form.cmxform label.error { display: none; }
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form class="cmxform" id="form1" method="get" action="">
- <fieldset>
- <legend>Validating a form with a radio and checkbox buttons</legend>
- <fieldset>
- <legend>Gender</legend>
- <label for="gender_male">
- <input type="radio" id="gender_male" value="m" name="gender" validate="required:true" />
- Male
- </label>
- <label for="gender_female">
- <input type="radio" id="gender_female" value="f" name="gender"/>
- Female
- </label>
- <label for="gender" class="error">Please select your gender</label>
- </fieldset>
- <fieldset>
- <legend>Family</legend>
- <label for="family_single">
- <input type="radio" id="family_single" value="s" name="family" validate="required:true" />
- Single
- </label>
- <label for="family_married">
- <input type="radio" id="family_married" value="m" name="family" />
- Married
- </label>
- <label for="family_other">
- <input type="radio" id="family_other" value="o" name="family" />
- Other
- </label>
- <label for="family" class="error">Please select your family status.</label>
- </fieldset>
- <p>
- <label for="agree">Please agree to our policy</label>
- <input type="checkbox" class="checkbox" id="agree" name="agree" validate="required:true" />
- <br/>
- <label for="agree" class="error block">Please agree to our policy!</label>
- </p>
- <fieldset>
- <legend>Spam</legend>
- <label for="spam_email">
- <input type="checkbox" class="checkbox" id="spam_email" value="email" name="spam[]" validate="required:true, minlength:2" />
- Spam via E-Mail
- </label>
- <label for="spam_phone">
- <input type="checkbox" class="checkbox" id="spam_phone" value="phone" name="spam[]" />
- Spam via Phone
- </label>
- <label for="spam_mail">
- <input type="checkbox" class="checkbox" id="spam_mail" value="mail" name="spam[]" />
- Spam via Mail
- </label>
- <label for="spam[]" class="error">Please select at least two types of spam.</label>
- </fieldset>
- <p>
- <input class="submit" type="submit" value="Submit"/>
- </p>
- </fieldset>
-</form>
-
-<form id="selecttest">
- <h2>Some tests with selects</h2>
- <p>
- <label for="jungle">Please select a jungle noun</label><br/>
- <select id="jungle" name="jungle" title="Please select something!" validate="required:true">
- <option value=""></option>
- <option value="1">Buga</option>
- <option value="2">Baga</option>
- <option value="3">Oi</option>
- </select>
- </p>
-
- <p>
- <label for="fruit">Please select at least two fruits</label><br/>
- <select id="fruit" name="fruit" title="Please select at least two fruits" validate="required:true, minlength:2" multiple="multiple">
- <option value="b">Banana</option>
- <option value="a">Apple</option>
- <option value="p">Peach</option>
- <option value="t">Turtle</option>
- </select>
- </p>
-
- <p>
- <label for="vegetables">Please select no more than two vergetables</label><br/>
- <select id="vegetables" name="vegetables" title="Please select no more than two vergetables" validate="required:true, maxlength:2" multiple="multiple">
- <option value="p">Potato</option>
- <option value="t">Tomato</option>
- <option value="s">Salad</option>
- </select>
- </p>
-
- <p>
- <label for="cars">Please select at least two cars, but no more than three</label><br/>
- <select id="cars" name="cars" title="Please select at least two cars, but no more than three" validate="required:true, rangelength:[2,3]" multiple="multiple">
- <option value="m_sl">Mercedes SL</option>
- <option value="o_c">Opel Corsa</option>
- <option value="vw_p">VW Polo</option>
- <option value="t_s">Titanic Skoda</option>
- </select>
- </p>
-
- <p><input type="submit" value="Validate Selecttests"/></p>
-</form>
-
-<a href="index.html">Back to main page</a>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html
deleted file mode 100755
index fe58499d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<title>jQuery UI tabs integration demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css" />
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<script id="demo" type="text/javascript">
-$(document).ready(function() {
- var tabs = $("#tabs").tabs();
- var validator = $("#signupform").validate({
- groups: {
- birthdate: "birthdateDay birthdateMonth birthdateYear"
- },
- errorPlacement: function(label, element) {
- if (/^birthdate/.test(element[0].name)) {
- label.insertAfter("#birthdateYear");
- } else {
- label.insertAfter(element);
- }
- }
- });
-
- // validate the other two selects when one changes to update the whole group
- var birthdaySelects = $("#birthdateGroup select").click(function() {
- birthdaySelects.not(this).valid();
- })
-
- // overwrite focusInvalid to activate tab with invalid elements
- validator.focusInvalid = function() {
- if( this.settings.focusInvalid ) {
- try {
- var focused = $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible");
- tabs.tabs("select", tabs.find(">div").index(focused.parent().parent()));
- focused.focus();
- } catch(e) {
- // ignore IE throwing errors when focusing hidden elements
- }
- }
- };
-});
-</script>
-
-<style>
- body { font-size: 65.2% }
- label { display: inline-block; width: 8em; }
- label.error { color: red; margin-left: 0.5em; width: 20em; }
-</style>
-
-</head>
-<body>
-
-<form id="signupform">
-
- <div id="tabs">
- <ul>
- <li><a href="#logindata">Login data</a></li>
- <li><a href="#personaldata">Personal data</a></li>
- <li><a href="#subscriptions">Subscriptions</a></li>
- </ul>
- <div id="logindata">
- <p>
- <label for="username">Username</label>
- <input id="username" name="username" class="required" minlength="3" maxlength="20" type="text" />
- </p>
- <p>
- <label for="email">Email address</label>
- <input id="email" name="email" class="required email" type="text" />
- </p>
- <p>
- <label for="password">Password</label>
- <input name="password" type="password" class="required" id="password" minlength="4" maxlength="50" />
- </p>
- <p>
- <label for="confirmpassword">Confirm Password</label>
- <input name="confirmpassword" type="password" class="required" equalTo="#password" id="confirmpassword" />
- </p>
- </div>
- <div id="personaldata">
- <p>
- <label for="street">Street</label>
- <input id="street" name="street" class="required" minlength="3" maxlength="50" type="text" />
- </p>
- <p>
- <label for="city">City</label>
- <input id="city" name="city" class="required" minlength="3" maxlength="50" type="text" />
- </p>
- <p id="birthdateGroup">
- <label for="birthdateDay">Birthdate</label>
- <select id="birthdateDay" name="birthdateDay" class="required">
- <option value="">Day</option>
- <option>1</option>
- <option>2</option>
- <option>3</option>
- <option>...</option>
- </select>
- <select id="birthdateMonth" name="birthdateMonth" class="required">
- <option value="">Month</option>
- <option>1</option>
- <option>2</option>
- <option>3</option>
- <option>4</option>
- <option>5</option>
- <option>6</option>
- <option>7</option>
- <option>8</option>
- <option>9</option>
- <option>10</option>
- <option>11</option>
- <option>12</option>
- </select>
- <select id="birthdateYear" name="birthdateYear" class="required">
- <option value="">Year</option>
- <option>1950</option>
- <option>1951</option>
- <option>1952</option>
- <option>1953</option>
- <option>1954</option>
- <option>1955</option>
- <option>...</option>
- </select>
- </p>
- </div>
- <div id="subscriptions">
- <p>
- <label for="weekly">Weekly Newsletter</label>
- <input id="weekly" name="weekly" type="checkbox" />
- </p>
- <p>
- <label for="updates">Product Updates</label>
- <input id="updates" name="updates" type="checkbox" />
- </p>
- <p>
- <label for="terms">Terms and conditions</label>
- <input id="terms" name="terms" class="required" type="checkbox" />
- </p>
- </div>
- </div>
-
- <input type="submit" />
-</form>
-
-
-
-
-</body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html
deleted file mode 100755
index fe58a1af..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - ThemeRolldered demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="http://code.jquery.com/ui/jquery-ui-git.css" />
-
-<style type="text/css">
-body { font-size: 62.5%; }
-label { display: inline-block; width: 100px; }
-legend { padding: 0.5em; }
-fieldset fieldset label { display: block; }
-#commentForm { width: 500px; }
-#commentForm label { width: 250px; }
-#commentForm label.error, #commentForm button.submit { margin-left: 253px; }
-#signupForm { width: 670px; }
-#signupForm label.error {
- margin-left: 10px;
- width: auto;
- display: inline;
-}
-#newsletter_topics label.error {
- display: none;
- margin-left: 103px;
-}
-</style>
-
-</head>
-<body>
-
-<form class="cmxform" id="commentForm" method="get" action="">
- <fieldset class="ui-widget ui-widget-content ui-corner-all">
- <legend class="ui-widget ui-widget-header ui-corner-all">Please provide your name, email address (won't be published) and a comment</legend>
- <p>
- <label for="cname">Name (required, at least 2 characters)</label>
- <input id="cname" name="name" class="ui-widget-content" minlength="2" required type="text" />
- <p>
- <label for="cemail">E-Mail (required)</label>
- <input id="cemail" name="email" class="ui-widget-content" type="email" required />
- </p>
- <p>
- <label for="curl">URL (optional)</label>
- <input id="curl" name="url" class="ui-widget-content" value="" type="url" />
- </p>
- <p>
- <label for="ccomment">Your comment (required)</label>
- <textarea id="ccomment" name="comment" class="ui-widget-content" required></textarea>
- </p>
- <p>
- <button class="submit" type="submit">Submit</button>
- </p>
- </fieldset>
-</form>
-
-<form class="cmxform" id="signupForm" method="get" action="">
- <fieldset class="ui-widget ui-widget-content ui-corner-all">
- <legend class="ui-widget ui-widget-header ui-corner-all">Validating a complete form</legend>
- <p>
- <label for="firstname">Firstname</label>
- <input id="firstname" name="firstname" type="text" />
- </p>
- <p>
- <label for="lastname">Lastname</label>
- <input id="lastname" name="lastname" type="text" />
- </p>
- <p>
- <label for="username">Username</label>
- <input id="username" name="username" type="text" />
- </p>
- <p>
- <label for="password">Password</label>
- <input id="password" name="password" type="password" />
- </p>
- <p>
- <label for="confirm_password">Confirm password</label>
- <input id="confirm_password" name="confirm_password" type="password" />
- </p>
- <p>
- <label for="email">Email</label>
- <input id="email" name="email" type="email" />
- </p>
- <p>
- <label for="agree">Please agree to our policy</label>
- <input type="checkbox" class="checkbox" id="agree" name="agree" />
- </p>
- <p>
- <label for="newsletter">I'd like to receive the newsletter</label>
- <input type="checkbox" class="checkbox" id="newsletter" name="newsletter" />
- </p>
- <fieldset id="newsletter_topics" class="ui-widget-content ui-corner-all">
- <legend class="ui-widget-header ui-corner-all">Topics (select at least two) - note: would be hidden when newsletter isn't selected, but is visible here for the demo</legend>
- <label for="topic_marketflash">
- <input type="checkbox" id="topic_marketflash" value="marketflash" name="topic" />
- Marketflash
- </label>
- <label for="topic_fuzz">
- <input type="checkbox" id="topic_fuzz" value="fuzz" name="topic" />
- Latest fuzz
- </label>
- <label for="topic_digester">
- <input type="checkbox" id="topic_digester" value="digester" name="topic" />
- Mailing list digester
- </label>
- <label for="topic" class="error">Please select at least two topics you'd like to receive.</label>
- </fieldset>
- <p>
- <button class="submit" type="submit">Submit</button>
- </p>
- </fieldset>
-</form>
-
-<script src="../lib/jquery-1.6.1.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-<script src="http://code.jquery.com/ui/jquery-ui-git.js"></script>
-<script type="text/javascript">
-$.validator.setDefaults({
- submitHandler: function() { alert("submitted!"); },
- showErrors: function(map, list) {
- // there's probably a way to simplify this
- var focussed = document.activeElement;
- if (focussed && $(focussed).is("input, textarea")) {
- $(this.currentForm).tooltip("close", { currentTarget: focussed }, true)
- }
- this.currentElements.removeAttr("title").removeClass("ui-state-highlight");
- $.each(list, function(index, error) {
- $(error.element).attr("title", error.message).addClass("ui-state-highlight");
- });
- if (focussed && $(focussed).is("input, textarea")) {
- $(this.currentForm).tooltip("open", { target: focussed });
- }
- }
-});
-
-(function() {
- // use custom tooltip; disable animations for now to work around lack of refresh method on tooltip
- $("#commentForm, #signupForm").tooltip({
- show: false,
- hide: false
- });
-
- // validate the comment form when it is submitted
- $("#commentForm").validate();
-
- // validate signup form on keyup and submit
- $("#signupForm").validate({
- rules: {
- firstname: "required",
- lastname: "required",
- username: {
- required: true,
- minlength: 2
- },
- password: {
- required: true,
- minlength: 5
- },
- confirm_password: {
- required: true,
- minlength: 5,
- equalTo: "#password"
- },
- email: {
- required: true,
- email: true
- },
- topic: {
- required: "#newsletter:checked",
- minlength: 2
- },
- agree: "required"
- },
- messages: {
- firstname: "Please enter your firstname",
- lastname: "Please enter your lastname",
- username: {
- required: "Please enter a username",
- minlength: "Your username must consist of at least 2 characters"
- },
- password: {
- required: "Please provide a password",
- minlength: "Your password must be at least 5 characters long"
- },
- confirm_password: {
- required: "Please provide a password",
- minlength: "Your password must be at least 5 characters long",
- equalTo: "Please enter the same password as above"
- },
- email: "Please enter a valid email address",
- agree: "Please accept our policy"
- }
- });
-
- // propose username by combining first- and lastname
- $("#username").focus(function() {
- var firstname = $("#firstname").val();
- var lastname = $("#lastname").val();
- if(firstname && lastname && !this.value) {
- this.value = firstname + "." + lastname;
- }
- });
-
- //code to hide topic selection, disable for demo
- var newsletter = $("#newsletter");
- // newsletter topics are optional, hide at first
- var inital = newsletter.is(":checked");
- var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
- var topicInputs = topics.find("input").attr("disabled", !inital);
- // show when newsletter is checked
- newsletter.click(function() {
- topics[this.checked ? "removeClass" : "addClass"]("gray");
- topicInputs.attr("disabled", !this.checked);
- });
-
- $("#signupForm input:not(:submit)").addClass("ui-widget-content");
-
- $(":submit").button();
-})();
-</script>
-<script src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
-<script>
-$.fn.themeswitcher && $('<div/>').css({
- position: "absolute",
- right: 10,
- top: 10
- }).appendTo(document.body).themeswitcher();
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html
deleted file mode 100755
index 54ac852e..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>jQuery Validation plugin: integration with TinyMCE</title>
-
-<script type="text/javascript" src="../../lib/jquery.js"></script>
-<script type="text/javascript" src="../../jquery.validate.js"></script>
-<script type="text/javascript" src="tiny_mce.js"></script>
-<script type="text/javascript">
- tinyMCE.init({
- mode : "textareas",
- theme : "simple",
- // update validation status on change
- onchange_callback: function(editor) {
- tinyMCE.triggerSave();
- $("#" + editor.id).valid();
- }
- });
- $(function() {
- var validator = $("#myform").submit(function() {
- // update underlying textarea before submit validation
- tinyMCE.triggerSave();
- }).validate({
- ignore: "",
- rules: {
- title: "required",
- content: "required"
- },
- errorPlacement: function(label, element) {
- // position error label after generated textarea
- if (element.is("textarea")) {
- label.insertAfter(element.next());
- } else {
- label.insertAfter(element)
- }
- }
- });
- validator.focusInvalid = function() {
- // put focus on tinymce on submit validation
- if( this.settings.focusInvalid ) {
- try {
- var toFocus = $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []);
- if (toFocus.is("textarea")) {
- tinyMCE.get(toFocus.attr("id")).focus();
- } else {
- toFocus.filter(":visible").focus();
- }
- } catch(e) {
- // ignore IE throwing errors when focusing hidden elements
- }
- }
- }
- })
-</script>
-<!-- /TinyMCE -->
-
-</head>
-<body>
-
-<form id="myform" action="">
- <h3>TinyMCE and Validation Plugin integration example</h3>
-
- <label>Some other field</label>
- <input name="title" />
-
- <br/>
-
- <label>Some richt text</label>
- <textarea id="content" name="content" rows="15" cols="80" style="width: 80%"></textarea>
-
- <br />
- <input type="submit" name="save" value="Submit" />
-</form>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js
deleted file mode 100755
index d19fb53f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var DOM=tinymce.DOM;tinymce.ThemeManager.requireLangPack('simple');tinymce.create('tinymce.themes.SimpleTheme',{init:function(ed,url){var t=this,states=['Bold','Italic','Underline','Strikethrough','InsertUnorderedList','InsertOrderedList'],s=ed.settings;t.editor=ed;ed.onInit.add(function(){ed.onNodeChange.add(function(ed,cm){tinymce.each(states,function(c){cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));});});ed.dom.loadCSS(url+"/skins/"+s.skin+"/content.css");});DOM.loadCSS((s.editor_css?ed.documentBaseURI.toAbsolute(s.editor_css):'')||url+"/skins/"+s.skin+"/ui.css");},renderUI:function(o){var t=this,n=o.targetNode,ic,tb,ed=t.editor,cf=ed.controlManager,sc;n=DOM.insertAfter(DOM.create('span',{id:ed.id+'_container','class':'mceEditor '+ed.settings.skin+'SimpleSkin'}),n);n=sc=DOM.add(n,'table',{cellPadding:0,cellSpacing:0,'class':'mceLayout'});n=tb=DOM.add(n,'tbody');n=DOM.add(tb,'tr');n=ic=DOM.add(DOM.add(n,'td'),'div',{'class':'mceIframeContainer'});n=DOM.add(DOM.add(tb,'tr',{'class':'last'}),'td',{'class':'mceToolbar mceLast',align:'center'});tb=t.toolbar=cf.createToolbar("tools1");tb.add(cf.createButton('bold',{title:'simple.bold_desc',cmd:'Bold'}));tb.add(cf.createButton('italic',{title:'simple.italic_desc',cmd:'Italic'}));tb.add(cf.createButton('underline',{title:'simple.underline_desc',cmd:'Underline'}));tb.add(cf.createButton('strikethrough',{title:'simple.striketrough_desc',cmd:'Strikethrough'}));tb.add(cf.createSeparator());tb.add(cf.createButton('undo',{title:'simple.undo_desc',cmd:'Undo'}));tb.add(cf.createButton('redo',{title:'simple.redo_desc',cmd:'Redo'}));tb.add(cf.createSeparator());tb.add(cf.createButton('cleanup',{title:'simple.cleanup_desc',cmd:'mceCleanup'}));tb.add(cf.createSeparator());tb.add(cf.createButton('insertunorderedlist',{title:'simple.bullist_desc',cmd:'InsertUnorderedList'}));tb.add(cf.createButton('insertorderedlist',{title:'simple.numlist_desc',cmd:'InsertOrderedList'}));tb.renderTo(n);return{iframeContainer:ic,editorContainer:ed.id+'_container',sizeContainer:sc,deltaHeight:-20};},getInfo:function(){return{longname:'Simple theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add('simple',tinymce.themes.SimpleTheme);})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gif
deleted file mode 100755
index 16af141f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js
deleted file mode 100755
index 6f095311..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js
+++ /dev/null
@@ -1,11 +0,0 @@
-tinyMCE.addI18n('en.simple',{
-bold_desc:"Bold (Ctrl+B)",
-italic_desc:"Italic (Ctrl+I)",
-underline_desc:"Underline (Ctrl+U)",
-striketrough_desc:"Strikethrough",
-bullist_desc:"Unordered list",
-numlist_desc:"Ordered list",
-undo_desc:"Undo (Ctrl+Z)",
-redo_desc:"Redo (Ctrl+Y)",
-cleanup_desc:"Cleanup messy code"
-}); \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css
deleted file mode 100755
index 32feae62..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Reset */
-.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}
-
-/* Containers */
-.defaultSimpleSkin {position:relative}
-.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;}
-.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;}
-.defaultSimpleSkin .mceToolbar {height:24px;}
-
-/* Layout */
-.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px}
-.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
-
-/* Button */
-.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px}
-.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}
-.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0}
-.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
-
-/* Separator */
-.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px}
-
-/* Theme */
-.defaultSimpleSkin span.mce_bold {background-position:0 0}
-.defaultSimpleSkin span.mce_italic {background-position:-60px 0}
-.defaultSimpleSkin span.mce_underline {background-position:-140px 0}
-.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0}
-.defaultSimpleSkin span.mce_undo {background-position:-160px 0}
-.defaultSimpleSkin span.mce_redo {background-position:-100px 0}
-.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0}
-.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}
-.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0}
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js
deleted file mode 100755
index 55aba6e3..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js
+++ /dev/null
@@ -1 +0,0 @@
-var tinymce={majorVersion:'3',minorVersion:'2.1.1',releaseDate:'2008-11-27',_init:function(){var t=this,d=document,w=window,na=navigator,ua=na.userAgent,i,nl,n,base,p,v;t.isOpera=w.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!w.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(na.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;t.isAir=/adobeair/i.test(ua);if(w.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;t.query=tinyMCEPreInit.query;return;}t.suffix='';nl=d.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(v=nl[i].href){if(/^https?:\/\/[^\/]+$/.test(v))v+='/';base=v?v.match(/.*\//)[0]:'';}}function getBase(n){if(n.src&&/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';if((p=n.src.indexOf('?'))!=-1)t.query=n.src.substring(p+1);t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&&t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=d.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}n=d.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&&(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i<a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}return o;},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');},create:function(s,p){var t=this,sp,ns,cn,scn,c,de=0;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i<n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i<l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window;f={func:f,scope:s||this};if(!t.unloads){function unload(){var li=t.unloads,o,n;if(li){for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope,1);}if(w.detachEvent){w.detachEvent('onbeforeunload',fakeUnload);w.detachEvent('onunload',unload);}else if(w.removeEventListener)w.removeEventListener('unload',unload,false);t.unloads=o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();}};function fakeUnload(){var d=document;if(d.readyState=='interactive'){function stop(){d.detachEvent('onstop',stop);unload();d=null;};d.attachEvent('onstop',stop);window.setTimeout(function(){d.detachEvent('onstop',stop);},0);}};if(w.attachEvent){w.attachEvent('onunload',unload);w.attachEvent('onbeforeunload',fakeUnload);}else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return s?tinymce.map(s.split(d||','),tinymce.trim):s;},_addVer:function(u){var v;if(!this.query)return u;v=(u.indexOf('?')==-1?'?':'&')+this.query;if(u.indexOf('#')==-1)return u+v;return u.replace('#',v+'#');}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments,i,li=this.listeners,c;for(i=0;i<li.length;i++){c=li[i];s=c.cb.apply(c.scope,a);if(s===false)break;}return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&&u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf(':/')===-1&&u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&&t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;if(u==="./")return u;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&&t.host!=u.host&&u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i,l;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length>=items.length){for(i=0,l=base.length;i<l;i++){if(i>=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length<items.length){for(i=0,l=items.length;i<l;i++){if(i>=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0,l=base.length-(bp-1);i<l;i++)out+="../";for(i=bp-1,l=items.length;i<l;i++){if(i!=bp-1)out+="/"+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i>=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);function ready(){if(!o.async||x.readyState==4||c++>10000){if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}else w.setTimeout(ready,10);};if(!o.async)return ready();t=w.setTimeout(ready,10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,sr;e=t.get(e);p=t.getPos(e);sr=t.getSize(e);return{x:p.x,y:p.y,w:sr.w,h:sr.h};},getSize:function(e){var t=this,w,h;e=t.get(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName.toUpperCase()==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(e&&this.doc&&typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n,xp;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(!t.selectorRe)t.selectorRe=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i;;if(tinymce.isAir){each(tinymce.explode(pa),function(v){if(!(xp=t.cache[v])){xp='';each(v.split(' '),function(v){v=t.selectorRe.exec(v);xp+=v[1]?'//'+v[1]:'//*';if(v[2])xp+="[@id='"+v[2]+"']";if(v[3]){each(v[3].split('.'),function(n){xp+="[@class = '"+n+"' or contains(concat(' ', @class, ' '), ' "+n+" ')]";});}});t.cache[v]=xp;}xp=t.doc.evaluate(xp,s,null,4,null);while(n=xp.iterateNext())o.push(n);});return o;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i<l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i<l;i++){n=x[i];if(n.className&&(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i<l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=t.selectorRe.exec(v);p[1]=p[1]||'*';cs+='find("'+p[1]+'", function(n) {';if(p[2])cs+='if (n.id !== "'+p[2]+'") return;';if(p[3]){cs+='var c = " " + n.className + " ";';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(" '+v+' ") === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i>=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;t.setAttribs(e,a);if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'</'+n+'>';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(!e||!n)return;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(!is(v,'string')){each(v,function(v,n){t.setStyle(e,n,v);});return;}if(s.keep_values){if(v&&!t._isRes(v))e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;case"shape":e.setAttribute('mce_style',v);break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e||e.nodeType!==1)return false;if(!is(dv))dv='';if(/^(src|href|style|coords|shape)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}if(isIE&&t.props[n]){v=e[t.props[n]];v=v&&v.nodeValue?v.nodeValue:v;}if(!v)v=e.getAttribute(n,2);if(n==='style'){v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values&&!t._isRes(v))e.setAttribute('mce_style',v);}}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0'||v===20)v='';break;case'width':case'height':case'vspace':case'checked':case'disabled':case'readonly':if(v===0)v='';break;case'hspace':if(v===-1)v='';break;case'maxlength':case'tabindex':if(v===32768||v===2147483647||v==='32768')v='';break;case'compact':case'noshade':case'nowrap':if(v===65535)return n;return dv;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v!==undefined&&v!==null&&v!=='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=t.win.self!=t.win.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};st=st.replace(/&(#?[a-z0-9]+);/g,'&$1_MCE_SEMI_');each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/_MCE_SEMI_/g,';');v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null)+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){if(tinymce.isGecko&&k.indexOf('-moz-')===0)return;switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:tinymce._addVer(u)});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return!e||e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='<br />'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='<br />'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true">&nbsp;</p>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/<p ([^>]+)>|<p>/g,'<div $1 mce_tmp="1">');h=h.replace(/<\/p>/g,'</div>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x<n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|<em( [^>]+)>/gi,'<$1i$2>');}else if(isIE){h=h.replace(/&apos;/g,'&#39;');h=h.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi,'');}h=h.replace(/<a( )([^>]+)\/>|<a\/>/gi,'<a$1$2></a>');if(s.keep_values){if(/<script|style/.test(h)){function trim(s){s=s.replace(/(<!--\[CDATA\[|\]\]-->)/g,'\n');s=s.replace(/^[\r\n]*|[\r\n]*$/g,'');s=s.replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g,'');s=s.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->|\]\]-->)\s*$/g,'');return s;};h=h.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/g,function(v,a,b){b=trim(b);if(!a)a=' type="text/javascript"';if(b)b='<!--\n'+b+'\n// -->';return'<mce:script'+a+'>'+b+'</mce:script>';});h=h.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/g,function(v,a,b){b=trim(b);return'<mce:style'+a+'><!--\n'+b+'\n--></mce:style><style'+a+' mce_bogus="1">'+b+'</style>';});}h=h.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g,'<!--[CDATA[$1]]-->');h=h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(t._isRes(c))return m;if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'&&b!='shape'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e,n,v;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;n=e.firstChild;v='';if(n){do{v+=n.nodeValue;}while(n.nextSibling);}return v||s;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&amp;';case'"':return'&quot;';case'<':return'&lt;';case'>':return'&gt;';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&&typeof(e)==='string')e=t.get(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i>=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;if(e.domLoaded)return;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded){Event.domLoaded=1;return;}if(isIE&&document.location.protocol!='https:'){document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');DOM.get("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){Event._pageInit();DOM.get("__ie_onload").onreadystatechange=null;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&&t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:""'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){function trimNl(s){return s.replace(/[\n\r]+/g,'');};var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;each(['onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent'],function(e){t[e]=new tinymce.util.Dispatcher(t);});tinymce.addUnload(t.destroy,t);},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create("body"),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';t.onBeforeGetContent.dispatch(t,s);if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;s.content=t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;t.onGetContent.dispatch(t,s);return s.content;},setContent:function(h,s){var t=this,r=t.getRng(),c,d=t.win.document;s=s||{format:'html'};s.set=true;h=s.content=t.dom.processHTML(h);t.onBeforeSetContent.dispatch(t,s);h=s.content;if(r.insertNode){h+='<span id="__caret">_</span>';r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));c=t.dom.get('__caret');r=d.createRange();r.setStartBefore(c);r.setEndAfter(c);t.setRng(r);d.execCommand('Delete',false,null);t.dom.remove('__caret');}else{if(r.item){d.execCommand('Delete',false,null);r=t.getRng();}r.pasteHTML(h);}t.onSetContent.dispatch(t,s);},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&&e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=trimNl(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};trimNl(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nvl=trimNl(nv).length;p+=nvl;if(p>=sp&&!d.startNode){o=sp-(p-nvl);if(b.beg&&o>=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start<0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&&is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&&ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||r.collapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount>0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(tinymce.isWebKit&&s.anchorNode&&s.anchorNode.nodeType==1)return s.anchorNode.childNodes[s.anchorOffset];if(r.startContainer==r.endContainer){if(r.startOffset-r.endOffset<2){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();},destroy:function(s){var t=this;t.win=null;if(!s)tinymce.removeUnload(t.destroy);}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement("html"));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(""));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){if(tinymce.isIE)v=v.replace(/^\-|\-$/g,' ');this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g,' ')));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,'');h=h.replace(/ ?\/>/g,' />');if(this.valid)h=h.replace(/\%MCGT%/g,'&gt;');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str="";this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('<'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(" "+t.encode(n)+'="'+t.encode(v)+'"');},writeEndElement:function(){var n;if(this.tags.length>0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('</'+n+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw('</'+this.tags.pop()+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('<![CDATA['+v+']]>');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('<!-- '+v+'-->');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[<>&"]/g,function(v){switch(v){case'<':return'&lt;';case'>':return'&gt;';case'&':return'&amp;';case'"':return'&quot;';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&&this.elementCount==this.count){this.writeRaw(' />');return false;}this.writeRaw('>');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE,isGecko=tinymce.isGecko;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&&tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:'named',entities:'160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',bool_attrs:/(checked|disabled|readonly|selected|nowrap)/,valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1,element_format:'xhtml'},s);t.dom=s.dom;if(s.remove_redundant_brs){t.onPostProcess.add(function(se,o){o.content=o.content.replace(/<br \/>(\s*<\/li>)/g,'$1');});}if(s.element_format=='html'){t.onPostProcess.add(function(se,o){o.content=o.content.replace(/<([^>]+) \/>/g,'<$1>');});}if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x<a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML='&nbsp;';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i>=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i<a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';intr='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';bloc='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length>1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i<at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'<':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i<rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i<wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p;if(o.format=='html'){p=t._protect({content:h,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},{pattern:/(<!--\[CDATA\[)(.*?)(\]\]-->)/g}]});h=p.content;if(s.entity_encoding!=='raw')h=t._encode(h);if(!o.set){h=h.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,s.entity_encoding=='numeric'?'<p$1>&#160;</p>':'<p$1>&nbsp;</p>');if(s.remove_linebreaks){h=h.replace(/\r?\n|\r/g,' ');h=h.replace(/(<[^>]+>)\s+/g,'$1 ');h=h.replace(/\s+(<\/[^>]+>)/g,' $1');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,'<$1 $2>');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,'<$1>');h=h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,'</$1>');}if(s.apply_source_formatting&&s.indent_mode=='simple'){h=h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,'\n<$1$2$3>\n');h=h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,'\n<$1$2>');h=h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,'</$1>\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);h=h.replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g,'<![CDATA[$1]]>');if(s.entity_encoding=='raw')h=h.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g,'<p$1>\u00a0</p>');}o.content=h;},_serializeNode:function(n,inn){var t=this,s=t.settings,w=t.writer,hc,el,cn,i,l,a,at,no,v,nn,ru,ar,iv;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&&n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&&t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}else if(isGecko){if(n.nodeName==='BR'&&n.getAttribute('type')=='_moz')return;}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&&ru.noEmpty)||(isIE&&!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i>=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i<l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(ru.padd){if(hc&&(cn=n.firstChild)&&cn.nodeType===1&&n.childNodes.length===1){if(cn.hasAttribute?cn.hasAttribute('mce_bogus'):cn.getAttribute('mce_bogus'))w.writeText('\u00a0');}else if(!hc)w.writeText('\u00a0');}break;case 3:if(t.childRules&&t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){var t=this;o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p.pattern,function(x,a,b,c){b=dec(b);if(p.encode)b=t._encode(b);o.items.push(b);return a+'<!--mce:'+(o.items.length-1)+'-->'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\<!--mce:([0-9]+)--\>/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_encode:function(h){var t=this,s=t.settings,l;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&#'+a.charCodeAt(0)+';';});}}return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(/,/g,'|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&&(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);if(this.settings.bool_attrs.test(na)&&v){v=(''+v).toLowerCase();if(v==='false'||v==='0')return null;v=na;}switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i>=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&&typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&&this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each,Event=tinymce.dom.Event;tinymce.create('tinymce.dom.ScriptLoader',{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={};},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0;},markDone:function(u){this.lookup[u]={state:2,url:u};},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2)cb.call(s||this);return o;}o={state:0,url:u,func:cb,scope:s||this};if(pr)t.queue.unshift(o);else t.queue.push(o);lo[u]=o;return o;},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&&o.state==2)cb.call(s||t);return o;}function loadScript(u){if(Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co);}});}else document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"></script>');};if(!tinymce.is(u,'string')){each(u,function(u){loadScript(u);});if(cb)cb.call(s||t);}else{loadScript(u);if(cb)cb.call(s||t);}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb)cb.call(s||t);each(t.queueCallbacks,function(o){o.func.call(o.scope);});});}else if(cb)t.queueCallbacks.push({func:cb,scope:s||t});},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co);}catch(ex){eval(co,w);}}else w.execScript(co);},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func)o.func.call(o.scope||t);};function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--;}else load(o);});if(l===0&&cb){cb.call(s||t);cb=0;}};function load(o){if(o.state>0)return;o.state=1;tinymce.dom.ScriptLoader.loadScript(o.url,function(){done(o);allDone();});};each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o);}else o=lo[u];if(o.state>0)return;if(!Event.domLoaded&&!t.settings.strict_mode){var ix,ol='';if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone();});if(tinymce.isIE)ol=' onreadystatechange="';else ol=' onload="';ol+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');"';}document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"'+ol+'></script>');if(!o.func)done(o);}else load(o);});allDone();},'static':{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1;},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=='complete')this._funcs[ix].call(this);},loadScript:function(u,cb){var id=tinymce.DOM.uniqueId(),e;function done(){Event.clear(id);tinymce.DOM.remove(id);if(cb){cb.call(document,u);cb=0;}};if(tinymce.isIE){tinymce.util.XHR.send({url:tinymce._addVer(u),async:false,success:function(co){window.execScript(co);done();}});}else{e=tinymce.DOM.create('script',{id:id,type:'text/javascript',src:tinymce._addVer(u)});Event.add(e,'load',done);(document.getElementsByTagName('head')[0]||document.body).appendChild(e);}}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&&this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+": "+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},remove:function(){DOM.remove(this.id);this.destroy();},destroy:function(){tinymce.dom.Event.clear(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{Separator:function(id,s){this.parent(id,s);this.classPrefix='mceSeparator';},renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':this.classPrefix});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();else o.remove();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||DOM.doc.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&&!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight<s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb,cp=t.classPrefix;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)>mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)>my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,'click',function(e){var m;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))&&!DOM.hasClass(e,cp+'ItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&&DOM.hasClass(e,cp+'ItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,cp+'ItemActive');}}});}t.onShowMenu.dispatch(t);if(s.keyboard_focus){Event.add(co,'keydown',t._keyHandler,t);DOM.select('a','menu_'+t.id)[0].focus();t._focusIdx=0;}},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);Event.remove(co,'keydown',t._keyHandler);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,t.classPrefix+'ItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&&(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);this.destroy();return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,'class':s['class'],'style':'position:absolute;left:0;top:0;z-index:200000'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':t.classPrefix+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':t.classPrefix+'Line'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_keyHandler:function(e){var t=this,kc=e.keyCode;function focus(d){var i=t._focusIdx+d,e=DOM.select('a','menu_'+t.id)[i];if(e){t._focusIdx=i;e.focus();}};switch(kc){case 38:focus(-1);return;case 40:focus(1);return;case 13:return;case 27:return this.hideMenu();}},_add:function(tb,o){var n,s=o.settings,a,ro,it,cp=this.classPrefix,ic;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'ItemSeparator'});DOM.add(ro,'td',{'class':cp+'ItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'Item '+cp+'ItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:"return false;",onmousedown:'return false;'});DOM.addClass(it,s['class']);ic=DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});if(s.icon_src)DOM.add(ic,'img',{src:s.icon_src});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&&DOM.hasClass(n,cp+'ItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,cp+'ItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var cp=this.classPrefix,s=this.settings,h,l;l=DOM.encode(s.label||'');h='<a id="'+this.id+'" href="javascript:;" class="'+cp+' '+cp+'Enabled '+s['class']+(l?' '+cp+'Labeled':'')+'" onmousedown="return false;" onclick="return false;" title="'+DOM.encode(s.title)+'">';if(s.image)h+='<img class="mceIcon" src="'+s.image+'" />'+l+'</a>';else h+='<span class="mceIcon '+s['class']+'"></span>'+(l?'<span class="'+cp+'Label">'+l+'</span>':'')+'</a>';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){var t=this;t.parent(id,s);t.items=[];t.onChange=new Dispatcher(t);t.onPostRender=new Dispatcher(t);t.onAdd=new Dispatcher(t);t.onRenderMenu=new tinymce.util.Dispatcher(this);t.classPrefix='mceListBox';},select:function(va){var t=this,fv,f;if(va==undefined)return t.selectByIndex(-1);if(va&&va.call)f=va;else{f=function(v){return v==va;};}if(va!=t.selectedValue){each(t.items,function(o,i){if(f(o.value)){fv=1;t.selectByIndex(i);return false;}});if(!fv)t.selectByIndex(-1);}},selectByIndex:function(idx){var t=this,e,o;if(idx!=t.selectedIndex){e=DOM.get(t.id+'_text');o=t.items[idx];if(o){t.selectedValue=o.value;t.selectedIndex=idx;DOM.setHTML(e,DOM.encode(o.title));DOM.removeClass(e,'mceTitle');}else{DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');t.selectedValue=t.selectedIndex=null;}e=0;}else t.selectedValue=t.selectedIndex=null;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings,cp=t.classPrefix;h='<table id="'+t.id+'" cellpadding="0" cellspacing="0" class="'+cp+' '+cp+'Enabled'+(s['class']?(' '+s['class']):'')+'"><tbody><tr>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:"return false;",onmousedown:'return false;'},DOM.encode(t.settings.title))+'</td>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',tabindex:-1,href:'javascript:;','class':'mceOpen',onclick:"return false;",onmousedown:'return false;'},'<span></span>')+'</td>';h+='</tr></tbody></table>';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(t.menu&&t.menu.isMenuVisible)return t.hideMenu();if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.keyboard_focus=!tinymce.isOpera;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);DOM.addClass(t.id,t.classPrefix+'Selected');},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&(e.target.id==t.id+'_text'||e.target.id==t.id+'_open'))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,t.classPrefix+'Selected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':t.classPrefix+'Menu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle',onclick:function(){if(t.settings.onselect('')!==false)t.select('');}});each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this,cp=t.classPrefix;Event.add(t.id,'click',t.showMenu,t);Event.add(t.id+'_text','focus',function(e){if(!t._focused){t.keyDownHandler=Event.add(t.id+'_text','keydown',function(e){var idx=-1,v,kc=e.keyCode;each(t.items,function(v,i){if(t.selectedValue==v.value)idx=i;});if(kc==38)v=t.items[idx-1];else if(kc==40)v=t.items[idx+1];else if(kc==13){v=t.selectedValue;t.selectedValue=null;t.settings.onselect(v);return Event.cancel(e);}if(v){t.hideMenu();t.select(v.value);}});}t._focused=1;});Event.add(t.id+'_text','blur',function(){Event.remove(t.id+'_text','keydown',t.keyDownHandler);t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.addClass(t.id,cp+'Hover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.removeClass(t.id,cp+'Hover');});}t.onPostRender.dispatch(t,DOM.get(t.id));},destroy:function(){this.parent();Event.clear(this.id+'_text');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(va){var t=this,fv,f;if(va==undefined)return t.selectByIndex(-1);if(va&&va.call)f=va;else{f=function(v){return v==va;};}if(va!=t.selectedValue){each(t.items,function(o,i){if(f(o.value)){fv=1;t.selectByIndex(i);return false;}});if(!fv)t.selectByIndex(-1);}},selectByIndex:function(idx){DOM.get(this.id).selectedIndex=idx+1;this.selectedValue=this.items[idx]?this.items[idx].value:null;},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=t.items[e.target.selectedIndex-1];if(v&&(v=v.value)){t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);}};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button',{MenuButton:function(id,s){this.parent(id,s);this.onRenderMenu=new tinymce.util.Dispatcher(this);s.menu_container=s.menu_container||DOM.doc.body;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.settings.keyboard_focus=t._focused;m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);t.setState('Selected',1);t.isMenuVisible=1;},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id||e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}t.isMenuVisible=0;},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='<tbody><tr>';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']},'');h+='<td>'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h+='</tr></tbody>';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);Event.add(t.id+'_open','focus',function(){t._focused=1;});Event.add(t.id+'_open','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}},destroy:function(){this.parent();Event.clear(this.id+'_action');Event.clear(this.id+'_open');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',grid_width:8,default_color:'#888888'},t.settings);t.onShowMenu=new tinymce.util.Dispatcher(t);t.onHideMenu=new tinymce.util.Dispatcher(t);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e,p2;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:200000});e=0;Event.add(DOM.doc,'mousedown',t.hideMenu,t);if(t._focused){t._keyHandler=Event.add(t.id+'_menu','keydown',function(e){if(e.keyCode==27)t.hideMenu();});DOM.select('a',t.id+'_menu')[0].focus();}t.onShowMenu.dispatch(t);t.isMenuVisible=1;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);Event.remove(t.id+'_menu','keydown',t._keyHandler);DOM.hide(t.id+'_menu');}t.onHideMenu.dispatch(t);t.isMenuVisible=0;},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c},mce_color:'#'+c});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{id:t.id+'_more',href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');Event.add(t.id+'_menu','click',function(e){var c;e=e.target;if(e.nodeName=='A'&&(c=e.getAttribute('mce_color')))t.setColor(c);return Event.cancel(e);});return w;},setColor:function(c){var t=this;DOM.setStyle(t.id+'_preview','backgroundColor',c);t.value=c;t.hideMenu();t.settings.onselect(c);},postRender:function(){var t=this,id=t.id;t.parent();DOM.add(id+'_action','div',{id:id+'_preview','class':'mceColorPreview'});DOM.setStyle(t.id+'_preview','backgroundColor',t.value);},destroy:function(){this.parent();Event.clear(this.id+'_menu');Event.clear(this.id+'_more');DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i<cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));}if(pr&&co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'<!-- IE -->'));}if(dom.stdMode)h+='<td style="position: relative">'+co.renderHTML()+'</td>';else h+='<td>'+co.renderHTML()+'</td>';if(nx&&co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'<!-- IE -->'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));return dom.createHTML('table',{id:t.id,'class':'mceToolbar'+(s['class']?' '+s['class']:''),cellpadding:'0',cellspacing:'0',align:t.settings.align||''},'<tbody><tr>'+h+'</tr></tbody>');}});(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s=tinymce.EditorManager.settings;if(s&&s.language){u=this.urls[n]+'/langs/'+s.language+'.js';if(!tinymce.dom.Event.domLoaded&&!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){var t=this;if(t.urls[n])return;if(u.indexOf('/')!=0&&u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;t.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){var each=tinymce.each,extend=tinymce.extend,DOM=tinymce.DOM,Event=tinymce.dom.Event,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,explode=tinymce.explode;tinymce.create('static tinymce.EditorManager',{editors:{},i18n:{},activeEditor:null,preInit:function(){var t=this,lo=window.location;tinymce.documentBaseURL=lo.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(document.domain&&lo.hostname!=document.domain)tinymce.relaxedDomain=document.domain;if(!tinymce.relaxedDomain&&tinymce.EditorManager.baseURI.host!=lo.hostname&&lo.hostname)document.domain=tinymce.relaxedDomain=lo.hostname.replace(/.*\.(.+\..+)$/,'$1');t.onBeforeUnload=new tinymce.util.Dispatcher(t);Event.add(window,'beforeunload',function(e){t.onBeforeUnload.dispatch(t,e);});},init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c,e,el=[],ed;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:"simple",language:"en",strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&&!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&&s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&&v.charAt(0)!='-'&&!PluginManager.urls[v]){if(!tinymce.isWebKit&&v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case"exact":l=s.elements||'';if(l.length>0){each(explode(l),function(v){if(DOM.get(v)){ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}});});}});}break;case"textareas":case"specific_textareas":function hasClass(n,c){return c.constructor===RegExp?c.test(n.className):DOM.hasClass(n,c);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&&hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector)){e=DOM.get(v.name);if(!v.id&&!e)v.id=v.name;if(!v.id||t.get(v.id))v.id=DOM.uniqueId();ed=new tinymce.Editor(v.id,s);el.push(ed);ed.render(1);}});break;}if(s.oninit){l=co=0;each(el,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e.destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v),w;switch(c){case"mceFocus":ed.focus();return true;case"mceAddEditor":case"mceAddControl":if(!t.get(v))new tinymce.Editor(v,t.settings).render();return true;case"mceAddFrameControl":w=v.window;w.tinyMCE=tinyMCE;w.tinymce=tinymce;tinymce.DOM.doc=w.document;tinymce.DOM.win=w;ed=new tinymce.Editor(v.element_id,v);ed.render();if(tinymce.isIE){function clr(){ed.destroy();w.detachEvent('onunload',clr);w=w.tinyMCE=w.tinymce=null;};w.attachEvent('onunload',clr);}v.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":if(ed)ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.EditorManager.preInit();})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};each(['onPreInit','onBeforeRenderUI','onPostRender','onInit','onRemove','onActivate','onDeactivate','onClick','onEvent','onMouseUp','onMouseDown','onDblClick','onKeyDown','onKeyUp','onKeyPress','onContextMenu','onSubmit','onReset','onPaste','onPreProcess','onPostProcess','onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent','onLoadContent','onSaveContent','onNodeChange','onChange','onBeforeExecCommand','onExecCommand','onUndo','onRedo','onVisualAid','onSetProgressState'],function(e){t[e]=new Dispatcher(t);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',apply_source_formatting:1,directionality:'ltr',forced_root_block:'p',valid_elements:'@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:'30px',keep_styles:1},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&s.hidden_input&&DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.save)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger&&!s.ask){t._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(t.initialized&&!t.destroyed&&!t.isHidden())t.save({format:'raw',no_events:true});});}tinymce.addUnload(t.destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&&!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&&p.charAt(0)!='-'&&!PluginManager.urls[p]){if(!isWebKit&&p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){window.setTimeout(function(){Event.remove(t.id,'focus',ask);t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();});},0);};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&&s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css!==false){if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute("themes/"+s.theme+"/skins/"+s.skin+"/dialog.css");}if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){if(!l.initial)return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&&cmd!='Redo'&&cmd!='mceRepaint'&&(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.offsetWidth;h=s.height||e.style.height||e.offsetHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+(typeof(h)=='number'?(o.deltaHeight||0):'');if(h<100)h=100;t.iframeHTML=s.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+t.documentBaseURI.getURI()+'" />';t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(tinymce.relaxedDomain)t.iframeHTML+='<script type="text/javascript">document.domain = "'+tinymce.relaxedDomain+'";</script>';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='</head><body id="'+bi+'" class="mceContentBody '+bc+'"></body></html>';if(tinymce.relaxedDomain){if(isIE||(tinymce.isOpera&&parseFloat(opera.version())>=9.5))u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{if(!s.readonly)d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);if(!s.readonly)b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,element_format:s.element_format,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;if(!s.readonly)t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('</('+v+')>','g'),'</'+n+'>');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'<br />');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*<pre.*?>/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='<pre class="mceItemHidden">'+o.content+'</pre>';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,'');});}if(isGecko&&!s.readonly){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this,ce=t.settings.content_editable;if(!sf){if(!ce&&(!isIE||t.selection.getNode().ownerDocument!=t.getDoc()))t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language||'en',i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[(this.settings.language||'en')+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')>0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o,st;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){st=o.func.call(o.scope,ui,val);if(st!==true){t.onExecCommand.dispatch(t,cmd,ui,val,a);return st;}}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryStateCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryValueCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;if(e){o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;}},save:function(o){var t=this,e=t.getElement(),h,f;if(!e||!t.initialized)return;o=o||{};o.save=true;if(!o.no_events){t.undoManager.typing=0;t.undoManager.add();}o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'<br mce_bogus="1" />');o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o.content=h;if(!o.no_events)t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();if(!t.settings.content_editable){Event.clear(t.getWin());Event.clear(t.getDoc());}Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getBody(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getBody(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko&&!s.readonly){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())try{d.execCommand("useCSS",0,true);}catch(ex){}}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){var c=e.keyCode;if((c>=33&&c<=36)||(c>=37&&c<=40)||c==13||c==45||c==46||c==8||(tinymce.isMac&&(c==91||c==93))||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i<el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i>=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'<h'+i+'>']);t.addShortcut('ctrl+7','',['FormatBlock',false,'<p>']);t.addShortcut('ctrl+8','',['FormatBlock',false,'<div>']);t.addShortcut('ctrl+9','',['FormatBlock',false,'<address>']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(tinymce.isMac&&o.ctrl!=e.metaKey)return;else if(!tinymce.isMac&&o.ctrl!=e.ctrlKey)return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':n.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(n,'mce_style','');dom.setAttrib(n,'mce_name','span');break;}});}else if(o.set){each(t.dom.select('table,span',o.node).reverse(),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onSetContent.add(function(ed,o){if(o.initial)convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function process(no){var n,sp,nl,x;if(!s.inline_styles)return;nl=t.dom.select('font',no);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}};t.onPreProcess.add(function(ed,o){if(o.get)process(o.node);});t.onSetContent.add(function(ed,o){if(o.initial)process(o.node);});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'</'+d[d.length-1].tag+'>';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='</'+d[i].tag+'>';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;function isBlock(n){return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n.nodeName);};tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,s=ed.selection,e=ed.dom.getParent(s.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else{if(ed.settings.convert_fonts_to_spans)t._applyInlineStyle('span',{style:{fontFamily:v}});else ed.getDoc().execCommand('FontName',false,v);}},FontSize:function(u,v){var ed=this.editor,s=ed.settings,fc,fs;if(s.convert_fonts_to_spans&&v>=1&&v<=7){fs=tinymce.explode(s.font_size_style_values);fc=tinymce.explode(s.font_size_classes);if(fc)v=fc[v-1]||v;else v=fs[v-1]||v;}if(v>=1&&v<=7)ed.getDoc().execCommand('FontSize',false,v);else this._applyInlineStyle('span',{style:{fontSize:v}});},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'SPAN'))v=p.style.fontSize;if(!v&&(isOpera||isWebKit)){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return v||this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(p=ed.dom.getParent(ed.selection.getNode(),'SPAN'))v=p.style.fontFamily.replace(/, /g,',').replace(/[\'\"]/g,'').toLowerCase();if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(bl||n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(bl&&/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(bl||n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('<hr />');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if((e=t.getSelectedElement())&&!ed.settings.force_span_wrappers)set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(ed.settings.force_span_wrappers&&p.nodeName!='SPAN')return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length<=1&&n.className==='')){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return this._queryState(c);},ForeColor:function(ui,v){var ed=this.editor;if(ed.settings.convert_fonts_to_spans){this._applyInlineStyle('span',{style:{color:v}});return;}else ed.getDoc().execCommand('ForeColor',false,v);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();if(ed.settings.convert_fonts_to_spans){this._applyInlineStyle('span',{style:{backgroundColor:val}});return;}function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,bl,nb,b;function isBlock(n){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);};bl=dom.getParent(s.getNode(),function(n){return isBlock(n);});if(bl){if((isIE&&isBlock(bl.parentNode))||bl.nodeName=='DIV'){nb=ed.dom.create(val);each(dom.getAttribs(bl),function(v){dom.setAttrib(nb,v.nodeName,dom.getAttrib(bl,v.nodeName));});b=s.getBookmark();dom.replace(nb,bl,1);s.moveToBookmark(b);ed.nodeChanged();return;}}val=ed.settings.forced_root_block?(val||'<p>'):val;if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n=ed.selection.getNode();if(n&&n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList()||(!ed.settings.inline_styles&&!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE'));},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),isBlock);eb=dom.getParent(s.getEnd(),isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_applyInlineStyle:function(na,at,op){var t=this,ed=t.editor,dom=ed.dom,bm,lo={},kh;na=na.toUpperCase();if(op&&op.check_classes&&at['class'])op.check_classes.push(at['class']);function replaceFonts(){var bm;each(dom.select(tinymce.isWebKit&&!tinymce.isAir?'span':'font'),function(n){if(n.style.fontFamily=='mceinline'||n.face=='mceinline'){if(!bm)bm=ed.selection.getBookmark();at._mce_new='1';dom.replace(dom.create(na,at),n,1);}});each(dom.select(na),function(n){if(n.getAttribute('_mce_new')){function removeStyle(n){if(n.nodeType==1){each(at.style,function(v,k){dom.setStyle(n,k,'');});if(at['class']&&n.className&&op){each(op.check_classes,function(c){if(dom.hasClass(n,c))dom.removeClass(n,c);});}}};each(dom.select(na,n),removeStyle);if(n.parentNode&&n.parentNode.nodeType==1&&n.parentNode.childNodes.length==1)removeStyle(n.parentNode);dom.getParent(n.parentNode,function(pn){if(pn.nodeType==1){if(at.style){each(at.style,function(v,k){var sv;if(!lo[k]&&(sv=dom.getStyle(pn,k))){if(sv===v)dom.setStyle(n,k,'');lo[k]=1;}});}if(at['class']&&pn.className&&op){each(op.check_classes,function(c){if(dom.hasClass(pn,c))dom.removeClass(n,c);});}}return false;});n.removeAttribute('_mce_new');}});each(dom.select(na).reverse(),function(n){var c=0;each(dom.getAttribs(n),function(an){if(an.nodeName.substring(0,1)!='_'&&dom.getAttrib(n,an.nodeName)!=''){c++;}});if(c==0)dom.remove(n,1);});ed.selection.moveToBookmark(bm);return!!bm;};ed.focus();ed.getDoc().execCommand('FontName',false,'mceinline');replaceFonts();if(kh=t._applyInlineStyle.keyhandler){ed.onKeyUp.remove(kh);ed.onKeyPress.remove(kh);ed.onKeyDown.remove(kh);ed.onSetContent.remove(t._applyInlineStyle.chandler);}if(ed.selection.isCollapsed()){t._pendingStyles=tinymce.extend(t._pendingStyles||{},at.style);t._applyInlineStyle.chandler=ed.onSetContent.add(function(){delete t._pendingStyles;});t._applyInlineStyle.keyhandler=kh=function(e){if(t._pendingStyles){at.style=t._pendingStyles;delete t._pendingStyles;}if(replaceFonts()){ed.onKeyDown.remove(t._applyInlineStyle.keyhandler);ed.onKeyPress.remove(t._applyInlineStyle.keyhandler);}if(e.type=='keyup')ed.onKeyUp.remove(t._applyInlineStyle.keyhandler);};ed.onKeyDown.add(kh);ed.onKeyPress.add(kh);ed.onKeyUp.add(kh);}else t._pendingStyles=0;},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),isBlock);eb=dom.getParent(en||s.getEnd(),isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0&&(t.index==0||t.index==t.data.length)?t.index-1:t.index];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i<t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&&!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index<t.data.length)t.index++;if(t.data.length===0&&!l.initial)return null;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&&t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index>0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index<t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index<this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\\u00a0|&#160;|&nbsp;)<\/'+elm+'>','gi');t.rePadd=new RegExp('<p( )([^>]+)><\\\/p>|<p( )([^>]+)\\\/>|<p( )([^>]+)>\\s+<\\\/p>|<p><\\\/p>|<p\\\/>|<p>\\s+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR1=new RegExp('<p( )([^>]+)>[\\s\\u00a0]+<\\\/p>|<p>[\\s\\u00a0]+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR2=new RegExp('<p( )([^>]+)>(&nbsp;|&#160;)<\\\/p>|<p>(&nbsp;|&#160;)<\\\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp('<p( )([^>]+)>\\s*<br \\\/>\\s*<\\\/p>|<p>\\s*<br \\\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\\s*<br \\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'</'+elm+'>');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0</'+elm+'>');if(!isIE&&!isOpera&&o.set){o.content=o.content.replace(t.reNbsp2BR1,'<'+elm+'$1$2><br /></'+elm+'>');o.content=o.content.replace(t.reNbsp2BR2,'<'+elm+'$1$2><br /></'+elm+'>');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0</'+elm+'>');o.content=o.content.replace(t.reTrailBr,'</'+elm+'>');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('<br id="__" /> ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i,n,eid;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&&nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){if(r.startContainer.nodeType==1&&(n=r.startContainer.childNodes[r.startOffset])&&n.nodeType==1){eid=n.getAttribute("id");n.setAttribute("id","__mce");}else{if(ed.dom.getParent(r.startContainer,function(e){return e===b;})){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}}}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=b.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}else if(!isIE&&(n=ed.dom.get('__mce'))){if(eid)n.setAttribute('id',eid);else n.removeAttribute('id');r=d.createRange();r.setStartBefore(n);r.setEndBefore(n);se.setRng(r);}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,dom=ed.dom,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n,vp=dom.getViewPort(ed.getWin()),y,ch,car;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn===en&&/^(TD|TH)$/.test(sn.nodeName)){dom.remove(sn.firstChild);ed.dom.add(sn,se.element,null,'<br />');aft=ed.dom.add(sn,se.element,null,'<br />');r=d.createRange();r.selectNodeContents(aft);r.collapse(1);ed.selection.setRng(r);return false;}if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='<br />';function appendStyles(e,en){var nl=[],nn,n,i;e.innerHTML='';if(se.keep_styles){n=en;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(n.nodeName)){nn=n.cloneNode(false);dom.setAttrib(nn,'id','');nl.push(nn);}}while(n=n.parentNode);}if(nl.length>0){for(i=nl.length-1,nn=e;i>=0;i--)nn=nn.appendChild(nl[i]);nl[0].innerHTML=isOpera?'&nbsp;':'<br />';return nl[0];}else e.innerHTML=isOpera?'&nbsp;':'<br />';};if(isEmpty(aft))car=appendStyles(aft,en);if(isOpera&&parseFloat(opera.version())<9.5){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();function first(n){return d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode()||n;};r=d.createRange();r.selectNodeContents(isGecko?first(car||aft):car||aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(y<vp.y||y+ch>vp.y+vp.h){ed.getWin().scrollTo(0,y<vp.y?y:y-vp.h+25);}return false;},backspaceDelete:function(e,bs){var t=this,ed=t.editor,b=ed.getBody(),n,se=ed.selection,r=se.getRng(),sc=r.startContainer,n,w,tn;if(sc&&ed.dom.isBlock(sc)&&!/^(TD|TH)$/.test(sc.nodeName)&&bs){if(sc.childNodes.length==0||(sc.childNodes.length==1&&sc.firstChild.nodeName=='BR')){n=sc;while((n=n.previousSibling)&&!ed.dom.isBlock(n));if(n){if(sc!=b.firstChild){w=ed.dom.doc.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(tn=w.nextNode())n=tn;r=ed.getDoc().createRange();r.setStart(n,n.nodeValue?n.nodeValue.length:0);r.setEnd(n,n.nodeValue?n.nodeValue.length:0);se.setRng(r);ed.dom.remove(sc);}return Event.cancel(e);}}}function handler(e){var pr;e=e.target;if(e&&e.parentNode&&e.nodeName=='BR'&&(n=t.getParentBlock(e))){pr=e.previousSibling;Event.remove(b,'DOMNodeInserted',handler);if(pr&&pr.nodeType==3&&/\s+$/.test(pr.nodeValue))return;if(e.previousSibling||e.nextSibling)ed.dom.remove(e);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t._cls={};t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case"|":case"separator":return t.createSeparator();}if(!c&&ed.buttons&&(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s,cc){var t=this,ed=t.editor,c,bm,v,cls;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;cls=cc||t._cls.dropmenu||tinymce.ui.DropMenu;c=t.controls[id]=new cls(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else{cls=cc||t._cls.listbox||tinymce.ui.ListBox;c=new cls(id,s);}t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s,cc){var t=this,ed=t.editor,o,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.label=ed.translate(s.label);s.scope=s.scope||ed;if(!s.onclick&&!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){cls=cc||t._cls.menubutton||tinymce.ui.MenuButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);}else{cls=t._cls.button||tinymce.ui.Button;c=new cls(id,s);}return t.add(c);},createMenuButton:function(id,s,cc){s=s||{};s.menu_button=1;return this.createButton(id,s,cc);},createSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;cls=cc||t._cls.splitbutton||tinymce.ui.SplitButton;c=t.add(new cls(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls,bm;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;cls=cc||t._cls.colorsplitbutton||tinymce.ui.ColorSplitButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm){ed.selection.moveToBookmark(bm);bm=0;}});}return t.add(c);},createToolbar:function(id,s,cc){var c,t=this,cls;id=t.prefix+id;cls=cc||t._cls.toolbar||tinymce.ui.Toolbar;c=new cls(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(cc){var cls=cc||this._cls.separator||tinymce.ui.Separator;return new cls();},setControlType:function(n,c){return this._cls[n.toLowerCase()]=c;},destroy:function(){each(this.controls,function(c){c.destroy();});this.controls=null;}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&&mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);try{if(isIE&&mo){w=1;window.showModalDialog(u,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s,w){w=w||window;cb.call(s||this,w.confirm(this._decode(this.editor.getLang(t,t))));},alert:function(tx,cb,s,w){var t=this;w=w||window;w.alert(t._decode(t.editor.getLang(tx,tx)));if(cb)cb.call(s||t);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}()); \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zip b/wqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zip
deleted file mode 100755
index ffb75973..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zip
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css
deleted file mode 100755
index 9259d26d..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css
+++ /dev/null
@@ -1,1058 +0,0 @@
-/*!
- * Bootstrap Responsive v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-.clearfix {
- *zoom: 1;
-}
-
-.clearfix:before,
-.clearfix:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.clearfix:after {
- clear: both;
-}
-
-.hide-text {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-
-.input-block-level {
- display: block;
- width: 100%;
- min-height: 30px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-.hidden {
- display: none;
- visibility: hidden;
-}
-
-.visible-phone {
- display: none !important;
-}
-
-.visible-tablet {
- display: none !important;
-}
-
-.hidden-desktop {
- display: none !important;
-}
-
-.visible-desktop {
- display: inherit !important;
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
- .hidden-desktop {
- display: inherit !important;
- }
- .visible-desktop {
- display: none !important ;
- }
- .visible-tablet {
- display: inherit !important;
- }
- .hidden-tablet {
- display: none !important;
- }
-}
-
-@media (max-width: 767px) {
- .hidden-desktop {
- display: inherit !important;
- }
- .visible-desktop {
- display: none !important;
- }
- .visible-phone {
- display: inherit !important;
- }
- .hidden-phone {
- display: none !important;
- }
-}
-
-@media (min-width: 1200px) {
- .row {
- margin-left: -30px;
- *zoom: 1;
- }
- .row:before,
- .row:after {
- display: table;
- line-height: 0;
- content: "";
- }
- .row:after {
- clear: both;
- }
- [class*="span"] {
- float: left;
- min-height: 1px;
- margin-left: 30px;
- }
- .container,
- .navbar-static-top .container,
- .navbar-fixed-top .container,
- .navbar-fixed-bottom .container {
- width: 1170px;
- }
- .span12 {
- width: 1170px;
- }
- .span11 {
- width: 1070px;
- }
- .span10 {
- width: 970px;
- }
- .span9 {
- width: 870px;
- }
- .span8 {
- width: 770px;
- }
- .span7 {
- width: 670px;
- }
- .span6 {
- width: 570px;
- }
- .span5 {
- width: 470px;
- }
- .span4 {
- width: 370px;
- }
- .span3 {
- width: 270px;
- }
- .span2 {
- width: 170px;
- }
- .span1 {
- width: 70px;
- }
- .offset12 {
- margin-left: 1230px;
- }
- .offset11 {
- margin-left: 1130px;
- }
- .offset10 {
- margin-left: 1030px;
- }
- .offset9 {
- margin-left: 930px;
- }
- .offset8 {
- margin-left: 830px;
- }
- .offset7 {
- margin-left: 730px;
- }
- .offset6 {
- margin-left: 630px;
- }
- .offset5 {
- margin-left: 530px;
- }
- .offset4 {
- margin-left: 430px;
- }
- .offset3 {
- margin-left: 330px;
- }
- .offset2 {
- margin-left: 230px;
- }
- .offset1 {
- margin-left: 130px;
- }
- .row-fluid {
- width: 100%;
- *zoom: 1;
- }
- .row-fluid:before,
- .row-fluid:after {
- display: table;
- line-height: 0;
- content: "";
- }
- .row-fluid:after {
- clear: both;
- }
- .row-fluid [class*="span"] {
- display: block;
- float: left;
- width: 100%;
- min-height: 30px;
- margin-left: 2.564102564102564%;
- *margin-left: 2.5109110747408616%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- .row-fluid [class*="span"]:first-child {
- margin-left: 0;
- }
- .row-fluid .span12 {
- width: 100%;
- *width: 99.94680851063829%;
- }
- .row-fluid .span11 {
- width: 91.45299145299145%;
- *width: 91.39979996362975%;
- }
- .row-fluid .span10 {
- width: 82.90598290598291%;
- *width: 82.8527914166212%;
- }
- .row-fluid .span9 {
- width: 74.35897435897436%;
- *width: 74.30578286961266%;
- }
- .row-fluid .span8 {
- width: 65.81196581196582%;
- *width: 65.75877432260411%;
- }
- .row-fluid .span7 {
- width: 57.26495726495726%;
- *width: 57.21176577559556%;
- }
- .row-fluid .span6 {
- width: 48.717948717948715%;
- *width: 48.664757228587014%;
- }
- .row-fluid .span5 {
- width: 40.17094017094017%;
- *width: 40.11774868157847%;
- }
- .row-fluid .span4 {
- width: 31.623931623931625%;
- *width: 31.570740134569924%;
- }
- .row-fluid .span3 {
- width: 23.076923076923077%;
- *width: 23.023731587561375%;
- }
- .row-fluid .span2 {
- width: 14.52991452991453%;
- *width: 14.476723040552828%;
- }
- .row-fluid .span1 {
- width: 5.982905982905983%;
- *width: 5.929714493544281%;
- }
- .row-fluid .offset12 {
- margin-left: 105.12820512820512%;
- *margin-left: 105.02182214948171%;
- }
- .row-fluid .offset12:first-child {
- margin-left: 102.56410256410257%;
- *margin-left: 102.45771958537915%;
- }
- .row-fluid .offset11 {
- margin-left: 96.58119658119658%;
- *margin-left: 96.47481360247316%;
- }
- .row-fluid .offset11:first-child {
- margin-left: 94.01709401709402%;
- *margin-left: 93.91071103837061%;
- }
- .row-fluid .offset10 {
- margin-left: 88.03418803418803%;
- *margin-left: 87.92780505546462%;
- }
- .row-fluid .offset10:first-child {
- margin-left: 85.47008547008548%;
- *margin-left: 85.36370249136206%;
- }
- .row-fluid .offset9 {
- margin-left: 79.48717948717949%;
- *margin-left: 79.38079650845607%;
- }
- .row-fluid .offset9:first-child {
- margin-left: 76.92307692307693%;
- *margin-left: 76.81669394435352%;
- }
- .row-fluid .offset8 {
- margin-left: 70.94017094017094%;
- *margin-left: 70.83378796144753%;
- }
- .row-fluid .offset8:first-child {
- margin-left: 68.37606837606839%;
- *margin-left: 68.26968539734497%;
- }
- .row-fluid .offset7 {
- margin-left: 62.393162393162385%;
- *margin-left: 62.28677941443899%;
- }
- .row-fluid .offset7:first-child {
- margin-left: 59.82905982905982%;
- *margin-left: 59.72267685033642%;
- }
- .row-fluid .offset6 {
- margin-left: 53.84615384615384%;
- *margin-left: 53.739770867430444%;
- }
- .row-fluid .offset6:first-child {
- margin-left: 51.28205128205128%;
- *margin-left: 51.175668303327875%;
- }
- .row-fluid .offset5 {
- margin-left: 45.299145299145295%;
- *margin-left: 45.1927623204219%;
- }
- .row-fluid .offset5:first-child {
- margin-left: 42.73504273504273%;
- *margin-left: 42.62865975631933%;
- }
- .row-fluid .offset4 {
- margin-left: 36.75213675213675%;
- *margin-left: 36.645753773413354%;
- }
- .row-fluid .offset4:first-child {
- margin-left: 34.18803418803419%;
- *margin-left: 34.081651209310785%;
- }
- .row-fluid .offset3 {
- margin-left: 28.205128205128204%;
- *margin-left: 28.0987452264048%;
- }
- .row-fluid .offset3:first-child {
- margin-left: 25.641025641025642%;
- *margin-left: 25.53464266230224%;
- }
- .row-fluid .offset2 {
- margin-left: 19.65811965811966%;
- *margin-left: 19.551736679396257%;
- }
- .row-fluid .offset2:first-child {
- margin-left: 17.094017094017094%;
- *margin-left: 16.98763411529369%;
- }
- .row-fluid .offset1 {
- margin-left: 11.11111111111111%;
- *margin-left: 11.004728132387708%;
- }
- .row-fluid .offset1:first-child {
- margin-left: 8.547008547008547%;
- *margin-left: 8.440625568285142%;
- }
- input,
- textarea,
- .uneditable-input {
- margin-left: 0;
- }
- .controls-row [class*="span"] + [class*="span"] {
- margin-left: 30px;
- }
- input.span12,
- textarea.span12,
- .uneditable-input.span12 {
- width: 1156px;
- }
- input.span11,
- textarea.span11,
- .uneditable-input.span11 {
- width: 1056px;
- }
- input.span10,
- textarea.span10,
- .uneditable-input.span10 {
- width: 956px;
- }
- input.span9,
- textarea.span9,
- .uneditable-input.span9 {
- width: 856px;
- }
- input.span8,
- textarea.span8,
- .uneditable-input.span8 {
- width: 756px;
- }
- input.span7,
- textarea.span7,
- .uneditable-input.span7 {
- width: 656px;
- }
- input.span6,
- textarea.span6,
- .uneditable-input.span6 {
- width: 556px;
- }
- input.span5,
- textarea.span5,
- .uneditable-input.span5 {
- width: 456px;
- }
- input.span4,
- textarea.span4,
- .uneditable-input.span4 {
- width: 356px;
- }
- input.span3,
- textarea.span3,
- .uneditable-input.span3 {
- width: 256px;
- }
- input.span2,
- textarea.span2,
- .uneditable-input.span2 {
- width: 156px;
- }
- input.span1,
- textarea.span1,
- .uneditable-input.span1 {
- width: 56px;
- }
- .thumbnails {
- margin-left: -30px;
- }
- .thumbnails > li {
- margin-left: 30px;
- }
- .row-fluid .thumbnails {
- margin-left: 0;
- }
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
- .row {
- margin-left: -20px;
- *zoom: 1;
- }
- .row:before,
- .row:after {
- display: table;
- line-height: 0;
- content: "";
- }
- .row:after {
- clear: both;
- }
- [class*="span"] {
- float: left;
- min-height: 1px;
- margin-left: 20px;
- }
- .container,
- .navbar-static-top .container,
- .navbar-fixed-top .container,
- .navbar-fixed-bottom .container {
- width: 724px;
- }
- .span12 {
- width: 724px;
- }
- .span11 {
- width: 662px;
- }
- .span10 {
- width: 600px;
- }
- .span9 {
- width: 538px;
- }
- .span8 {
- width: 476px;
- }
- .span7 {
- width: 414px;
- }
- .span6 {
- width: 352px;
- }
- .span5 {
- width: 290px;
- }
- .span4 {
- width: 228px;
- }
- .span3 {
- width: 166px;
- }
- .span2 {
- width: 104px;
- }
- .span1 {
- width: 42px;
- }
- .offset12 {
- margin-left: 764px;
- }
- .offset11 {
- margin-left: 702px;
- }
- .offset10 {
- margin-left: 640px;
- }
- .offset9 {
- margin-left: 578px;
- }
- .offset8 {
- margin-left: 516px;
- }
- .offset7 {
- margin-left: 454px;
- }
- .offset6 {
- margin-left: 392px;
- }
- .offset5 {
- margin-left: 330px;
- }
- .offset4 {
- margin-left: 268px;
- }
- .offset3 {
- margin-left: 206px;
- }
- .offset2 {
- margin-left: 144px;
- }
- .offset1 {
- margin-left: 82px;
- }
- .row-fluid {
- width: 100%;
- *zoom: 1;
- }
- .row-fluid:before,
- .row-fluid:after {
- display: table;
- line-height: 0;
- content: "";
- }
- .row-fluid:after {
- clear: both;
- }
- .row-fluid [class*="span"] {
- display: block;
- float: left;
- width: 100%;
- min-height: 30px;
- margin-left: 2.7624309392265194%;
- *margin-left: 2.709239449864817%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- .row-fluid [class*="span"]:first-child {
- margin-left: 0;
- }
- .row-fluid .span12 {
- width: 100%;
- *width: 99.94680851063829%;
- }
- .row-fluid .span11 {
- width: 91.43646408839778%;
- *width: 91.38327259903608%;
- }
- .row-fluid .span10 {
- width: 82.87292817679558%;
- *width: 82.81973668743387%;
- }
- .row-fluid .span9 {
- width: 74.30939226519337%;
- *width: 74.25620077583166%;
- }
- .row-fluid .span8 {
- width: 65.74585635359117%;
- *width: 65.69266486422946%;
- }
- .row-fluid .span7 {
- width: 57.18232044198895%;
- *width: 57.12912895262725%;
- }
- .row-fluid .span6 {
- width: 48.61878453038674%;
- *width: 48.56559304102504%;
- }
- .row-fluid .span5 {
- width: 40.05524861878453%;
- *width: 40.00205712942283%;
- }
- .row-fluid .span4 {
- width: 31.491712707182323%;
- *width: 31.43852121782062%;
- }
- .row-fluid .span3 {
- width: 22.92817679558011%;
- *width: 22.87498530621841%;
- }
- .row-fluid .span2 {
- width: 14.3646408839779%;
- *width: 14.311449394616199%;
- }
- .row-fluid .span1 {
- width: 5.801104972375691%;
- *width: 5.747913483013988%;
- }
- .row-fluid .offset12 {
- margin-left: 105.52486187845304%;
- *margin-left: 105.41847889972962%;
- }
- .row-fluid .offset12:first-child {
- margin-left: 102.76243093922652%;
- *margin-left: 102.6560479605031%;
- }
- .row-fluid .offset11 {
- margin-left: 96.96132596685082%;
- *margin-left: 96.8549429881274%;
- }
- .row-fluid .offset11:first-child {
- margin-left: 94.1988950276243%;
- *margin-left: 94.09251204890089%;
- }
- .row-fluid .offset10 {
- margin-left: 88.39779005524862%;
- *margin-left: 88.2914070765252%;
- }
- .row-fluid .offset10:first-child {
- margin-left: 85.6353591160221%;
- *margin-left: 85.52897613729868%;
- }
- .row-fluid .offset9 {
- margin-left: 79.8342541436464%;
- *margin-left: 79.72787116492299%;
- }
- .row-fluid .offset9:first-child {
- margin-left: 77.07182320441989%;
- *margin-left: 76.96544022569647%;
- }
- .row-fluid .offset8 {
- margin-left: 71.2707182320442%;
- *margin-left: 71.16433525332079%;
- }
- .row-fluid .offset8:first-child {
- margin-left: 68.50828729281768%;
- *margin-left: 68.40190431409427%;
- }
- .row-fluid .offset7 {
- margin-left: 62.70718232044199%;
- *margin-left: 62.600799341718584%;
- }
- .row-fluid .offset7:first-child {
- margin-left: 59.94475138121547%;
- *margin-left: 59.838368402492065%;
- }
- .row-fluid .offset6 {
- margin-left: 54.14364640883978%;
- *margin-left: 54.037263430116376%;
- }
- .row-fluid .offset6:first-child {
- margin-left: 51.38121546961326%;
- *margin-left: 51.27483249088986%;
- }
- .row-fluid .offset5 {
- margin-left: 45.58011049723757%;
- *margin-left: 45.47372751851417%;
- }
- .row-fluid .offset5:first-child {
- margin-left: 42.81767955801105%;
- *margin-left: 42.71129657928765%;
- }
- .row-fluid .offset4 {
- margin-left: 37.01657458563536%;
- *margin-left: 36.91019160691196%;
- }
- .row-fluid .offset4:first-child {
- margin-left: 34.25414364640884%;
- *margin-left: 34.14776066768544%;
- }
- .row-fluid .offset3 {
- margin-left: 28.45303867403315%;
- *margin-left: 28.346655695309746%;
- }
- .row-fluid .offset3:first-child {
- margin-left: 25.69060773480663%;
- *margin-left: 25.584224756083227%;
- }
- .row-fluid .offset2 {
- margin-left: 19.88950276243094%;
- *margin-left: 19.783119783707537%;
- }
- .row-fluid .offset2:first-child {
- margin-left: 17.12707182320442%;
- *margin-left: 17.02068884448102%;
- }
- .row-fluid .offset1 {
- margin-left: 11.32596685082873%;
- *margin-left: 11.219583872105325%;
- }
- .row-fluid .offset1:first-child {
- margin-left: 8.56353591160221%;
- *margin-left: 8.457152932878806%;
- }
- input,
- textarea,
- .uneditable-input {
- margin-left: 0;
- }
- .controls-row [class*="span"] + [class*="span"] {
- margin-left: 20px;
- }
- input.span12,
- textarea.span12,
- .uneditable-input.span12 {
- width: 710px;
- }
- input.span11,
- textarea.span11,
- .uneditable-input.span11 {
- width: 648px;
- }
- input.span10,
- textarea.span10,
- .uneditable-input.span10 {
- width: 586px;
- }
- input.span9,
- textarea.span9,
- .uneditable-input.span9 {
- width: 524px;
- }
- input.span8,
- textarea.span8,
- .uneditable-input.span8 {
- width: 462px;
- }
- input.span7,
- textarea.span7,
- .uneditable-input.span7 {
- width: 400px;
- }
- input.span6,
- textarea.span6,
- .uneditable-input.span6 {
- width: 338px;
- }
- input.span5,
- textarea.span5,
- .uneditable-input.span5 {
- width: 276px;
- }
- input.span4,
- textarea.span4,
- .uneditable-input.span4 {
- width: 214px;
- }
- input.span3,
- textarea.span3,
- .uneditable-input.span3 {
- width: 152px;
- }
- input.span2,
- textarea.span2,
- .uneditable-input.span2 {
- width: 90px;
- }
- input.span1,
- textarea.span1,
- .uneditable-input.span1 {
- width: 28px;
- }
-}
-
-@media (max-width: 767px) {
- body {
- padding-right: 20px;
- padding-left: 20px;
- }
- .navbar-fixed-top,
- .navbar-fixed-bottom,
- .navbar-static-top {
- margin-right: -20px;
- margin-left: -20px;
- }
- .container-fluid {
- padding: 0;
- }
- .dl-horizontal dt {
- float: none;
- width: auto;
- clear: none;
- text-align: left;
- }
- .dl-horizontal dd {
- margin-left: 0;
- }
- .container {
- width: auto;
- }
- .row-fluid {
- width: 100%;
- }
- .row,
- .thumbnails {
- margin-left: 0;
- }
- .thumbnails > li {
- float: none;
- margin-left: 0;
- }
- [class*="span"],
- .row-fluid [class*="span"] {
- display: block;
- float: none;
- width: 100%;
- margin-left: 0;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- .span12,
- .row-fluid .span12 {
- width: 100%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- .input-large,
- .input-xlarge,
- .input-xxlarge,
- input[class*="span"],
- select[class*="span"],
- textarea[class*="span"],
- .uneditable-input {
- display: block;
- width: 100%;
- min-height: 30px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- .input-prepend input,
- .input-append input,
- .input-prepend input[class*="span"],
- .input-append input[class*="span"] {
- display: inline-block;
- width: auto;
- }
- .controls-row [class*="span"] + [class*="span"] {
- margin-left: 0;
- }
- .modal {
- position: fixed;
- top: 20px;
- right: 20px;
- left: 20px;
- width: auto;
- margin: 0;
- }
- .modal.fade.in {
- top: auto;
- }
-}
-
-@media (max-width: 480px) {
- .nav-collapse {
- -webkit-transform: translate3d(0, 0, 0);
- }
- .page-header h1 small {
- display: block;
- line-height: 20px;
- }
- input[type="checkbox"],
- input[type="radio"] {
- border: 1px solid #ccc;
- }
- .form-horizontal .control-label {
- float: none;
- width: auto;
- padding-top: 0;
- text-align: left;
- }
- .form-horizontal .controls {
- margin-left: 0;
- }
- .form-horizontal .control-list {
- padding-top: 0;
- }
- .form-horizontal .form-actions {
- padding-right: 10px;
- padding-left: 10px;
- }
- .modal {
- top: 10px;
- right: 10px;
- left: 10px;
- }
- .modal-header .close {
- padding: 10px;
- margin: -10px;
- }
- .carousel-caption {
- position: static;
- }
-}
-
-@media (max-width: 979px) {
- body {
- padding-top: 0;
- }
- .navbar-fixed-top,
- .navbar-fixed-bottom {
- position: static;
- }
- .navbar-fixed-top {
- margin-bottom: 20px;
- }
- .navbar-fixed-bottom {
- margin-top: 20px;
- }
- .navbar-fixed-top .navbar-inner,
- .navbar-fixed-bottom .navbar-inner {
- padding: 5px;
- }
- .navbar .container {
- width: auto;
- padding: 0;
- }
- .navbar .brand {
- padding-right: 10px;
- padding-left: 10px;
- margin: 0 0 0 -5px;
- }
- .nav-collapse {
- clear: both;
- }
- .nav-collapse .nav {
- float: none;
- margin: 0 0 10px;
- }
- .nav-collapse .nav > li {
- float: none;
- }
- .nav-collapse .nav > li > a {
- margin-bottom: 2px;
- }
- .nav-collapse .nav > .divider-vertical {
- display: none;
- }
- .nav-collapse .nav .nav-header {
- color: #777777;
- text-shadow: none;
- }
- .nav-collapse .nav > li > a,
- .nav-collapse .dropdown-menu a {
- padding: 9px 15px;
- font-weight: bold;
- color: #777777;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- }
- .nav-collapse .btn {
- padding: 4px 10px 4px;
- font-weight: normal;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- }
- .nav-collapse .dropdown-menu li + li a {
- margin-bottom: 2px;
- }
- .nav-collapse .nav > li > a:hover,
- .nav-collapse .dropdown-menu a:hover {
- background-color: #f2f2f2;
- }
- .navbar-inverse .nav-collapse .nav > li > a:hover,
- .navbar-inverse .nav-collapse .dropdown-menu a:hover {
- background-color: #111111;
- }
- .nav-collapse.in .btn-group {
- padding: 0;
- margin-top: 5px;
- }
- .nav-collapse .dropdown-menu {
- position: static;
- top: auto;
- left: auto;
- display: block;
- float: none;
- max-width: none;
- padding: 0;
- margin: 0 15px;
- background-color: transparent;
- border: none;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
- }
- .nav-collapse .dropdown-menu:before,
- .nav-collapse .dropdown-menu:after {
- display: none;
- }
- .nav-collapse .dropdown-menu .divider {
- display: none;
- }
- .nav-collapse .nav > li > .dropdown-menu:before,
- .nav-collapse .nav > li > .dropdown-menu:after {
- display: none;
- }
- .nav-collapse .navbar-form,
- .nav-collapse .navbar-search {
- float: none;
- padding: 10px 15px;
- margin: 10px 0;
- border-top: 1px solid #f2f2f2;
- border-bottom: 1px solid #f2f2f2;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
- -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
- }
- .navbar-inverse .nav-collapse .navbar-form,
- .navbar-inverse .nav-collapse .navbar-search {
- border-top-color: #111111;
- border-bottom-color: #111111;
- }
- .navbar .nav-collapse .nav.pull-right {
- float: none;
- margin-left: 0;
- }
- .nav-collapse,
- .nav-collapse.collapse {
- height: 0;
- overflow: hidden;
- }
- .navbar .btn-navbar {
- display: block;
- }
- .navbar-static .navbar-inner {
- padding-right: 10px;
- padding-left: 10px;
- }
-}
-
-@media (min-width: 980px) {
- .nav-collapse.collapse {
- height: auto !important;
- overflow: visible !important;
- }
-}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css
deleted file mode 100755
index 7b0158da..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap Responsive v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade.in{top:auto}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css
deleted file mode 100755
index 9fa6f766..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css
+++ /dev/null
@@ -1,5774 +0,0 @@
-/*!
- * Bootstrap v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section {
- display: block;
-}
-
-audio,
-canvas,
-video {
- display: inline-block;
- *display: inline;
- *zoom: 1;
-}
-
-audio:not([controls]) {
- display: none;
-}
-
-html {
- font-size: 100%;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
-}
-
-a:focus {
- outline: thin dotted #333;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-
-a:hover,
-a:active {
- outline: 0;
-}
-
-sub,
-sup {
- position: relative;
- font-size: 75%;
- line-height: 0;
- vertical-align: baseline;
-}
-
-sup {
- top: -0.5em;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-img {
- width: auto\9;
- height: auto;
- max-width: 100%;
- vertical-align: middle;
- border: 0;
- -ms-interpolation-mode: bicubic;
-}
-
-#map_canvas img {
- max-width: none;
-}
-
-button,
-input,
-select,
-textarea {
- margin: 0;
- font-size: 100%;
- vertical-align: middle;
-}
-
-button,
-input {
- *overflow: visible;
- line-height: normal;
-}
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- padding: 0;
- border: 0;
-}
-
-button,
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- cursor: pointer;
- -webkit-appearance: button;
-}
-
-input[type="search"] {
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- -webkit-appearance: textfield;
-}
-
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button {
- -webkit-appearance: none;
-}
-
-textarea {
- overflow: auto;
- vertical-align: top;
-}
-
-.clearfix {
- *zoom: 1;
-}
-
-.clearfix:before,
-.clearfix:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.clearfix:after {
- clear: both;
-}
-
-.hide-text {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-
-.input-block-level {
- display: block;
- width: 100%;
- min-height: 30px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-body {
- margin: 0;
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 14px;
- line-height: 20px;
- color: #333333;
- background-color: #ffffff;
-}
-
-a {
- color: #0088cc;
- text-decoration: none;
-}
-
-a:hover {
- color: #005580;
- text-decoration: underline;
-}
-
-.img-rounded {
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
-}
-
-.img-polaroid {
- padding: 4px;
- background-color: #fff;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, 0.2);
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-}
-
-.img-circle {
- -webkit-border-radius: 500px;
- -moz-border-radius: 500px;
- border-radius: 500px;
-}
-
-.row {
- margin-left: -20px;
- *zoom: 1;
-}
-
-.row:before,
-.row:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.row:after {
- clear: both;
-}
-
-[class*="span"] {
- float: left;
- min-height: 1px;
- margin-left: 20px;
-}
-
-.container,
-.navbar-static-top .container,
-.navbar-fixed-top .container,
-.navbar-fixed-bottom .container {
- width: 940px;
-}
-
-.span12 {
- width: 940px;
-}
-
-.span11 {
- width: 860px;
-}
-
-.span10 {
- width: 780px;
-}
-
-.span9 {
- width: 700px;
-}
-
-.span8 {
- width: 620px;
-}
-
-.span7 {
- width: 540px;
-}
-
-.span6 {
- width: 460px;
-}
-
-.span5 {
- width: 380px;
-}
-
-.span4 {
- width: 300px;
-}
-
-.span3 {
- width: 220px;
-}
-
-.span2 {
- width: 140px;
-}
-
-.span1 {
- width: 60px;
-}
-
-.offset12 {
- margin-left: 980px;
-}
-
-.offset11 {
- margin-left: 900px;
-}
-
-.offset10 {
- margin-left: 820px;
-}
-
-.offset9 {
- margin-left: 740px;
-}
-
-.offset8 {
- margin-left: 660px;
-}
-
-.offset7 {
- margin-left: 580px;
-}
-
-.offset6 {
- margin-left: 500px;
-}
-
-.offset5 {
- margin-left: 420px;
-}
-
-.offset4 {
- margin-left: 340px;
-}
-
-.offset3 {
- margin-left: 260px;
-}
-
-.offset2 {
- margin-left: 180px;
-}
-
-.offset1 {
- margin-left: 100px;
-}
-
-.row-fluid {
- width: 100%;
- *zoom: 1;
-}
-
-.row-fluid:before,
-.row-fluid:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.row-fluid:after {
- clear: both;
-}
-
-.row-fluid [class*="span"] {
- display: block;
- float: left;
- width: 100%;
- min-height: 30px;
- margin-left: 2.127659574468085%;
- *margin-left: 2.074468085106383%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-.row-fluid [class*="span"]:first-child {
- margin-left: 0;
-}
-
-.row-fluid .span12 {
- width: 100%;
- *width: 99.94680851063829%;
-}
-
-.row-fluid .span11 {
- width: 91.48936170212765%;
- *width: 91.43617021276594%;
-}
-
-.row-fluid .span10 {
- width: 82.97872340425532%;
- *width: 82.92553191489361%;
-}
-
-.row-fluid .span9 {
- width: 74.46808510638297%;
- *width: 74.41489361702126%;
-}
-
-.row-fluid .span8 {
- width: 65.95744680851064%;
- *width: 65.90425531914893%;
-}
-
-.row-fluid .span7 {
- width: 57.44680851063829%;
- *width: 57.39361702127659%;
-}
-
-.row-fluid .span6 {
- width: 48.93617021276595%;
- *width: 48.88297872340425%;
-}
-
-.row-fluid .span5 {
- width: 40.42553191489362%;
- *width: 40.37234042553192%;
-}
-
-.row-fluid .span4 {
- width: 31.914893617021278%;
- *width: 31.861702127659576%;
-}
-
-.row-fluid .span3 {
- width: 23.404255319148934%;
- *width: 23.351063829787233%;
-}
-
-.row-fluid .span2 {
- width: 14.893617021276595%;
- *width: 14.840425531914894%;
-}
-
-.row-fluid .span1 {
- width: 6.382978723404255%;
- *width: 6.329787234042553%;
-}
-
-.row-fluid .offset12 {
- margin-left: 104.25531914893617%;
- *margin-left: 104.14893617021275%;
-}
-
-.row-fluid .offset12:first-child {
- margin-left: 102.12765957446808%;
- *margin-left: 102.02127659574467%;
-}
-
-.row-fluid .offset11 {
- margin-left: 95.74468085106382%;
- *margin-left: 95.6382978723404%;
-}
-
-.row-fluid .offset11:first-child {
- margin-left: 93.61702127659574%;
- *margin-left: 93.51063829787232%;
-}
-
-.row-fluid .offset10 {
- margin-left: 87.23404255319149%;
- *margin-left: 87.12765957446807%;
-}
-
-.row-fluid .offset10:first-child {
- margin-left: 85.1063829787234%;
- *margin-left: 84.99999999999999%;
-}
-
-.row-fluid .offset9 {
- margin-left: 78.72340425531914%;
- *margin-left: 78.61702127659572%;
-}
-
-.row-fluid .offset9:first-child {
- margin-left: 76.59574468085106%;
- *margin-left: 76.48936170212764%;
-}
-
-.row-fluid .offset8 {
- margin-left: 70.2127659574468%;
- *margin-left: 70.10638297872339%;
-}
-
-.row-fluid .offset8:first-child {
- margin-left: 68.08510638297872%;
- *margin-left: 67.9787234042553%;
-}
-
-.row-fluid .offset7 {
- margin-left: 61.70212765957446%;
- *margin-left: 61.59574468085106%;
-}
-
-.row-fluid .offset7:first-child {
- margin-left: 59.574468085106375%;
- *margin-left: 59.46808510638297%;
-}
-
-.row-fluid .offset6 {
- margin-left: 53.191489361702125%;
- *margin-left: 53.085106382978715%;
-}
-
-.row-fluid .offset6:first-child {
- margin-left: 51.063829787234035%;
- *margin-left: 50.95744680851063%;
-}
-
-.row-fluid .offset5 {
- margin-left: 44.68085106382979%;
- *margin-left: 44.57446808510638%;
-}
-
-.row-fluid .offset5:first-child {
- margin-left: 42.5531914893617%;
- *margin-left: 42.4468085106383%;
-}
-
-.row-fluid .offset4 {
- margin-left: 36.170212765957444%;
- *margin-left: 36.06382978723405%;
-}
-
-.row-fluid .offset4:first-child {
- margin-left: 34.04255319148936%;
- *margin-left: 33.93617021276596%;
-}
-
-.row-fluid .offset3 {
- margin-left: 27.659574468085104%;
- *margin-left: 27.5531914893617%;
-}
-
-.row-fluid .offset3:first-child {
- margin-left: 25.53191489361702%;
- *margin-left: 25.425531914893618%;
-}
-
-.row-fluid .offset2 {
- margin-left: 19.148936170212764%;
- *margin-left: 19.04255319148936%;
-}
-
-.row-fluid .offset2:first-child {
- margin-left: 17.02127659574468%;
- *margin-left: 16.914893617021278%;
-}
-
-.row-fluid .offset1 {
- margin-left: 10.638297872340425%;
- *margin-left: 10.53191489361702%;
-}
-
-.row-fluid .offset1:first-child {
- margin-left: 8.51063829787234%;
- *margin-left: 8.404255319148938%;
-}
-
-[class*="span"].hide,
-.row-fluid [class*="span"].hide {
- display: none;
-}
-
-[class*="span"].pull-right,
-.row-fluid [class*="span"].pull-right {
- float: right;
-}
-
-.container {
- margin-right: auto;
- margin-left: auto;
- *zoom: 1;
-}
-
-.container:before,
-.container:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.container:after {
- clear: both;
-}
-
-.container-fluid {
- padding-right: 20px;
- padding-left: 20px;
- *zoom: 1;
-}
-
-.container-fluid:before,
-.container-fluid:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.container-fluid:after {
- clear: both;
-}
-
-p {
- margin: 0 0 10px;
-}
-
-.lead {
- margin-bottom: 20px;
- font-size: 21px;
- font-weight: 200;
- line-height: 30px;
-}
-
-small {
- font-size: 85%;
-}
-
-strong {
- font-weight: bold;
-}
-
-em {
- font-style: italic;
-}
-
-cite {
- font-style: normal;
-}
-
-.muted {
- color: #999999;
-}
-
-.text-warning {
- color: #c09853;
-}
-
-.text-error {
- color: #b94a48;
-}
-
-.text-info {
- color: #3a87ad;
-}
-
-.text-success {
- color: #468847;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- margin: 10px 0;
- font-family: inherit;
- font-weight: bold;
- line-height: 1;
- color: inherit;
- text-rendering: optimizelegibility;
-}
-
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small {
- font-weight: normal;
- line-height: 1;
- color: #999999;
-}
-
-h1 {
- font-size: 36px;
- line-height: 40px;
-}
-
-h2 {
- font-size: 30px;
- line-height: 40px;
-}
-
-h3 {
- font-size: 24px;
- line-height: 40px;
-}
-
-h4 {
- font-size: 18px;
- line-height: 20px;
-}
-
-h5 {
- font-size: 14px;
- line-height: 20px;
-}
-
-h6 {
- font-size: 12px;
- line-height: 20px;
-}
-
-h1 small {
- font-size: 24px;
-}
-
-h2 small {
- font-size: 18px;
-}
-
-h3 small {
- font-size: 14px;
-}
-
-h4 small {
- font-size: 14px;
-}
-
-.page-header {
- padding-bottom: 9px;
- margin: 20px 0 30px;
- border-bottom: 1px solid #eeeeee;
-}
-
-ul,
-ol {
- padding: 0;
- margin: 0 0 10px 25px;
-}
-
-ul ul,
-ul ol,
-ol ol,
-ol ul {
- margin-bottom: 0;
-}
-
-li {
- line-height: 20px;
-}
-
-ul.unstyled,
-ol.unstyled {
- margin-left: 0;
- list-style: none;
-}
-
-dl {
- margin-bottom: 20px;
-}
-
-dt,
-dd {
- line-height: 20px;
-}
-
-dt {
- font-weight: bold;
-}
-
-dd {
- margin-left: 10px;
-}
-
-.dl-horizontal {
- *zoom: 1;
-}
-
-.dl-horizontal:before,
-.dl-horizontal:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.dl-horizontal:after {
- clear: both;
-}
-
-.dl-horizontal dt {
- float: left;
- width: 160px;
- overflow: hidden;
- clear: left;
- text-align: right;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.dl-horizontal dd {
- margin-left: 180px;
-}
-
-hr {
- margin: 20px 0;
- border: 0;
- border-top: 1px solid #eeeeee;
- border-bottom: 1px solid #ffffff;
-}
-
-abbr[title] {
- cursor: help;
- border-bottom: 1px dotted #999999;
-}
-
-abbr.initialism {
- font-size: 90%;
- text-transform: uppercase;
-}
-
-blockquote {
- padding: 0 0 0 15px;
- margin: 0 0 20px;
- border-left: 5px solid #eeeeee;
-}
-
-blockquote p {
- margin-bottom: 0;
- font-size: 16px;
- font-weight: 300;
- line-height: 25px;
-}
-
-blockquote small {
- display: block;
- line-height: 20px;
- color: #999999;
-}
-
-blockquote small:before {
- content: '\2014 \00A0';
-}
-
-blockquote.pull-right {
- float: right;
- padding-right: 15px;
- padding-left: 0;
- border-right: 5px solid #eeeeee;
- border-left: 0;
-}
-
-blockquote.pull-right p,
-blockquote.pull-right small {
- text-align: right;
-}
-
-blockquote.pull-right small:before {
- content: '';
-}
-
-blockquote.pull-right small:after {
- content: '\00A0 \2014';
-}
-
-q:before,
-q:after,
-blockquote:before,
-blockquote:after {
- content: "";
-}
-
-address {
- display: block;
- margin-bottom: 20px;
- font-style: normal;
- line-height: 20px;
-}
-
-code,
-pre {
- padding: 0 3px 2px;
- font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
- font-size: 12px;
- color: #333333;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-code {
- padding: 2px 4px;
- color: #d14;
- background-color: #f7f7f9;
- border: 1px solid #e1e1e8;
-}
-
-pre {
- display: block;
- padding: 9.5px;
- margin: 0 0 10px;
- font-size: 13px;
- line-height: 20px;
- word-break: break-all;
- word-wrap: break-word;
- white-space: pre;
- white-space: pre-wrap;
- background-color: #f5f5f5;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, 0.15);
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-pre.prettyprint {
- margin-bottom: 20px;
-}
-
-pre code {
- padding: 0;
- color: inherit;
- background-color: transparent;
- border: 0;
-}
-
-.pre-scrollable {
- max-height: 340px;
- overflow-y: scroll;
-}
-
-form {
- margin: 0 0 20px;
-}
-
-fieldset {
- padding: 0;
- margin: 0;
- border: 0;
-}
-
-legend {
- display: block;
- width: 100%;
- padding: 0;
- margin-bottom: 20px;
- font-size: 21px;
- line-height: 40px;
- color: #333333;
- border: 0;
- border-bottom: 1px solid #e5e5e5;
-}
-
-legend small {
- font-size: 15px;
- color: #999999;
-}
-
-label,
-input,
-button,
-select,
-textarea {
- font-size: 14px;
- font-weight: normal;
- line-height: 20px;
-}
-
-input,
-button,
-select,
-textarea {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-
-label {
- display: block;
- margin-bottom: 5px;
-}
-
-select,
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="date"],
-input[type="month"],
-input[type="time"],
-input[type="week"],
-input[type="number"],
-input[type="email"],
-input[type="url"],
-input[type="search"],
-input[type="tel"],
-input[type="color"],
-.uneditable-input {
- display: inline-block;
- height: 20px;
- padding: 4px 6px;
- margin-bottom: 9px;
- font-size: 14px;
- line-height: 20px;
- color: #555555;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-input,
-textarea,
-.uneditable-input {
- width: 206px;
-}
-
-textarea {
- height: auto;
-}
-
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="date"],
-input[type="month"],
-input[type="time"],
-input[type="week"],
-input[type="number"],
-input[type="email"],
-input[type="url"],
-input[type="search"],
-input[type="tel"],
-input[type="color"],
-.uneditable-input {
- background-color: #ffffff;
- border: 1px solid #cccccc;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
- -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
- -o-transition: border linear 0.2s, box-shadow linear 0.2s;
- transition: border linear 0.2s, box-shadow linear 0.2s;
-}
-
-textarea:focus,
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="datetime"]:focus,
-input[type="datetime-local"]:focus,
-input[type="date"]:focus,
-input[type="month"]:focus,
-input[type="time"]:focus,
-input[type="week"]:focus,
-input[type="number"]:focus,
-input[type="email"]:focus,
-input[type="url"]:focus,
-input[type="search"]:focus,
-input[type="tel"]:focus,
-input[type="color"]:focus,
-.uneditable-input:focus {
- border-color: rgba(82, 168, 236, 0.8);
- outline: 0;
- outline: thin dotted \9;
- /* IE6-9 */
-
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-}
-
-input[type="radio"],
-input[type="checkbox"] {
- margin: 4px 0 0;
- margin-top: 1px \9;
- *margin-top: 0;
- line-height: normal;
- cursor: pointer;
-}
-
-input[type="file"],
-input[type="image"],
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-input[type="radio"],
-input[type="checkbox"] {
- width: auto;
-}
-
-select,
-input[type="file"] {
- height: 30px;
- /* In IE7, the height of the select element cannot be changed by height, only font-size */
-
- *margin-top: 4px;
- /* For IE7, add top margin to align select with labels */
-
- line-height: 30px;
-}
-
-select {
- width: 220px;
- background-color: #ffffff;
- border: 1px solid #cccccc;
-}
-
-select[multiple],
-select[size] {
- height: auto;
-}
-
-select:focus,
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
- outline: thin dotted #333;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-
-.uneditable-input,
-.uneditable-textarea {
- color: #999999;
- cursor: not-allowed;
- background-color: #fcfcfc;
- border-color: #cccccc;
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
- -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-}
-
-.uneditable-input {
- overflow: hidden;
- white-space: nowrap;
-}
-
-.uneditable-textarea {
- width: auto;
- height: auto;
-}
-
-input:-moz-placeholder,
-textarea:-moz-placeholder {
- color: #999999;
-}
-
-input:-ms-input-placeholder,
-textarea:-ms-input-placeholder {
- color: #999999;
-}
-
-input::-webkit-input-placeholder,
-textarea::-webkit-input-placeholder {
- color: #999999;
-}
-
-.radio,
-.checkbox {
- min-height: 18px;
- padding-left: 18px;
-}
-
-.radio input[type="radio"],
-.checkbox input[type="checkbox"] {
- float: left;
- margin-left: -18px;
-}
-
-.controls > .radio:first-child,
-.controls > .checkbox:first-child {
- padding-top: 5px;
-}
-
-.radio.inline,
-.checkbox.inline {
- display: inline-block;
- padding-top: 5px;
- margin-bottom: 0;
- vertical-align: middle;
-}
-
-.radio.inline + .radio.inline,
-.checkbox.inline + .checkbox.inline {
- margin-left: 10px;
-}
-
-.input-mini {
- width: 60px;
-}
-
-.input-small {
- width: 90px;
-}
-
-.input-medium {
- width: 150px;
-}
-
-.input-large {
- width: 210px;
-}
-
-.input-xlarge {
- width: 270px;
-}
-
-.input-xxlarge {
- width: 530px;
-}
-
-input[class*="span"],
-select[class*="span"],
-textarea[class*="span"],
-.uneditable-input[class*="span"],
-.row-fluid input[class*="span"],
-.row-fluid select[class*="span"],
-.row-fluid textarea[class*="span"],
-.row-fluid .uneditable-input[class*="span"] {
- float: none;
- margin-left: 0;
-}
-
-.input-append input[class*="span"],
-.input-append .uneditable-input[class*="span"],
-.input-prepend input[class*="span"],
-.input-prepend .uneditable-input[class*="span"],
-.row-fluid input[class*="span"],
-.row-fluid select[class*="span"],
-.row-fluid textarea[class*="span"],
-.row-fluid .uneditable-input[class*="span"],
-.row-fluid .input-prepend [class*="span"],
-.row-fluid .input-append [class*="span"] {
- display: inline-block;
-}
-
-input,
-textarea,
-.uneditable-input {
- margin-left: 0;
-}
-
-.controls-row [class*="span"] + [class*="span"] {
- margin-left: 20px;
-}
-
-input.span12,
-textarea.span12,
-.uneditable-input.span12 {
- width: 926px;
-}
-
-input.span11,
-textarea.span11,
-.uneditable-input.span11 {
- width: 846px;
-}
-
-input.span10,
-textarea.span10,
-.uneditable-input.span10 {
- width: 766px;
-}
-
-input.span9,
-textarea.span9,
-.uneditable-input.span9 {
- width: 686px;
-}
-
-input.span8,
-textarea.span8,
-.uneditable-input.span8 {
- width: 606px;
-}
-
-input.span7,
-textarea.span7,
-.uneditable-input.span7 {
- width: 526px;
-}
-
-input.span6,
-textarea.span6,
-.uneditable-input.span6 {
- width: 446px;
-}
-
-input.span5,
-textarea.span5,
-.uneditable-input.span5 {
- width: 366px;
-}
-
-input.span4,
-textarea.span4,
-.uneditable-input.span4 {
- width: 286px;
-}
-
-input.span3,
-textarea.span3,
-.uneditable-input.span3 {
- width: 206px;
-}
-
-input.span2,
-textarea.span2,
-.uneditable-input.span2 {
- width: 126px;
-}
-
-input.span1,
-textarea.span1,
-.uneditable-input.span1 {
- width: 46px;
-}
-
-.controls-row {
- *zoom: 1;
-}
-
-.controls-row:before,
-.controls-row:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.controls-row:after {
- clear: both;
-}
-
-.controls-row [class*="span"] {
- float: left;
-}
-
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
- cursor: not-allowed;
- background-color: #eeeeee;
-}
-
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-input[type="radio"][readonly],
-input[type="checkbox"][readonly] {
- background-color: transparent;
-}
-
-.control-group.warning > label,
-.control-group.warning .help-block,
-.control-group.warning .help-inline {
- color: #c09853;
-}
-
-.control-group.warning .checkbox,
-.control-group.warning .radio,
-.control-group.warning input,
-.control-group.warning select,
-.control-group.warning textarea {
- color: #c09853;
-}
-
-.control-group.warning input,
-.control-group.warning select,
-.control-group.warning textarea {
- border-color: #c09853;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.warning input:focus,
-.control-group.warning select:focus,
-.control-group.warning textarea:focus {
- border-color: #a47e3c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
-}
-
-.control-group.warning .input-prepend .add-on,
-.control-group.warning .input-append .add-on {
- color: #c09853;
- background-color: #fcf8e3;
- border-color: #c09853;
-}
-
-.control-group.error > label,
-.control-group.error .help-block,
-.control-group.error .help-inline {
- color: #b94a48;
-}
-
-.control-group.error .checkbox,
-.control-group.error .radio,
-.control-group.error input,
-.control-group.error select,
-.control-group.error textarea {
- color: #b94a48;
-}
-
-.control-group.error input,
-.control-group.error select,
-.control-group.error textarea {
- border-color: #b94a48;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.error input:focus,
-.control-group.error select:focus,
-.control-group.error textarea:focus {
- border-color: #953b39;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
-}
-
-.control-group.error .input-prepend .add-on,
-.control-group.error .input-append .add-on {
- color: #b94a48;
- background-color: #f2dede;
- border-color: #b94a48;
-}
-
-.control-group.success > label,
-.control-group.success .help-block,
-.control-group.success .help-inline {
- color: #468847;
-}
-
-.control-group.success .checkbox,
-.control-group.success .radio,
-.control-group.success input,
-.control-group.success select,
-.control-group.success textarea {
- color: #468847;
-}
-
-.control-group.success input,
-.control-group.success select,
-.control-group.success textarea {
- border-color: #468847;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.success input:focus,
-.control-group.success select:focus,
-.control-group.success textarea:focus {
- border-color: #356635;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
-}
-
-.control-group.success .input-prepend .add-on,
-.control-group.success .input-append .add-on {
- color: #468847;
- background-color: #dff0d8;
- border-color: #468847;
-}
-
-.control-group.info > label,
-.control-group.info .help-block,
-.control-group.info .help-inline {
- color: #3a87ad;
-}
-
-.control-group.info .checkbox,
-.control-group.info .radio,
-.control-group.info input,
-.control-group.info select,
-.control-group.info textarea {
- color: #3a87ad;
-}
-
-.control-group.info input,
-.control-group.info select,
-.control-group.info textarea {
- border-color: #3a87ad;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.info input:focus,
-.control-group.info select:focus,
-.control-group.info textarea:focus {
- border-color: #2d6987;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
-}
-
-.control-group.info .input-prepend .add-on,
-.control-group.info .input-append .add-on {
- color: #3a87ad;
- background-color: #d9edf7;
- border-color: #3a87ad;
-}
-
-input:focus:required:invalid,
-textarea:focus:required:invalid,
-select:focus:required:invalid {
- color: #b94a48;
- border-color: #ee5f5b;
-}
-
-input:focus:required:invalid:focus,
-textarea:focus:required:invalid:focus,
-select:focus:required:invalid:focus {
- border-color: #e9322d;
- -webkit-box-shadow: 0 0 6px #f8b9b7;
- -moz-box-shadow: 0 0 6px #f8b9b7;
- box-shadow: 0 0 6px #f8b9b7;
-}
-
-.form-actions {
- padding: 19px 20px 20px;
- margin-top: 20px;
- margin-bottom: 20px;
- background-color: #f5f5f5;
- border-top: 1px solid #e5e5e5;
- *zoom: 1;
-}
-
-.form-actions:before,
-.form-actions:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.form-actions:after {
- clear: both;
-}
-
-.help-block,
-.help-inline {
- color: #595959;
-}
-
-.help-block {
- display: block;
- margin-bottom: 10px;
-}
-
-.help-inline {
- display: inline-block;
- *display: inline;
- padding-left: 5px;
- vertical-align: middle;
- *zoom: 1;
-}
-
-.input-append,
-.input-prepend {
- margin-bottom: 5px;
- font-size: 0;
- white-space: nowrap;
-}
-
-.input-append input,
-.input-prepend input,
-.input-append select,
-.input-prepend select,
-.input-append .uneditable-input,
-.input-prepend .uneditable-input {
- position: relative;
- margin-bottom: 0;
- *margin-left: 0;
- font-size: 14px;
- vertical-align: top;
- -webkit-border-radius: 0 3px 3px 0;
- -moz-border-radius: 0 3px 3px 0;
- border-radius: 0 3px 3px 0;
-}
-
-.input-append input:focus,
-.input-prepend input:focus,
-.input-append select:focus,
-.input-prepend select:focus,
-.input-append .uneditable-input:focus,
-.input-prepend .uneditable-input:focus {
- z-index: 2;
-}
-
-.input-append .add-on,
-.input-prepend .add-on {
- display: inline-block;
- width: auto;
- height: 20px;
- min-width: 16px;
- padding: 4px 5px;
- font-size: 14px;
- font-weight: normal;
- line-height: 20px;
- text-align: center;
- text-shadow: 0 1px 0 #ffffff;
- background-color: #eeeeee;
- border: 1px solid #ccc;
-}
-
-.input-append .add-on,
-.input-prepend .add-on,
-.input-append .btn,
-.input-prepend .btn {
- vertical-align: top;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.input-append .active,
-.input-prepend .active {
- background-color: #a9dba9;
- border-color: #46a546;
-}
-
-.input-prepend .add-on,
-.input-prepend .btn {
- margin-right: -1px;
-}
-
-.input-prepend .add-on:first-child,
-.input-prepend .btn:first-child {
- -webkit-border-radius: 3px 0 0 3px;
- -moz-border-radius: 3px 0 0 3px;
- border-radius: 3px 0 0 3px;
-}
-
-.input-append input,
-.input-append select,
-.input-append .uneditable-input {
- -webkit-border-radius: 3px 0 0 3px;
- -moz-border-radius: 3px 0 0 3px;
- border-radius: 3px 0 0 3px;
-}
-
-.input-append .add-on,
-.input-append .btn {
- margin-left: -1px;
-}
-
-.input-append .add-on:last-child,
-.input-append .btn:last-child {
- -webkit-border-radius: 0 3px 3px 0;
- -moz-border-radius: 0 3px 3px 0;
- border-radius: 0 3px 3px 0;
-}
-
-.input-prepend.input-append input,
-.input-prepend.input-append select,
-.input-prepend.input-append .uneditable-input {
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.input-prepend.input-append .add-on:first-child,
-.input-prepend.input-append .btn:first-child {
- margin-right: -1px;
- -webkit-border-radius: 3px 0 0 3px;
- -moz-border-radius: 3px 0 0 3px;
- border-radius: 3px 0 0 3px;
-}
-
-.input-prepend.input-append .add-on:last-child,
-.input-prepend.input-append .btn:last-child {
- margin-left: -1px;
- -webkit-border-radius: 0 3px 3px 0;
- -moz-border-radius: 0 3px 3px 0;
- border-radius: 0 3px 3px 0;
-}
-
-input.search-query {
- padding-right: 14px;
- padding-right: 4px \9;
- padding-left: 14px;
- padding-left: 4px \9;
- /* IE7-8 doesn't have border-radius, so don't indent the padding */
-
- margin-bottom: 0;
- -webkit-border-radius: 15px;
- -moz-border-radius: 15px;
- border-radius: 15px;
-}
-
-/* Allow for input prepend/append in search forms */
-
-.form-search .input-append .search-query,
-.form-search .input-prepend .search-query {
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.form-search .input-append .search-query {
- -webkit-border-radius: 14px 0 0 14px;
- -moz-border-radius: 14px 0 0 14px;
- border-radius: 14px 0 0 14px;
-}
-
-.form-search .input-append .btn {
- -webkit-border-radius: 0 14px 14px 0;
- -moz-border-radius: 0 14px 14px 0;
- border-radius: 0 14px 14px 0;
-}
-
-.form-search .input-prepend .search-query {
- -webkit-border-radius: 0 14px 14px 0;
- -moz-border-radius: 0 14px 14px 0;
- border-radius: 0 14px 14px 0;
-}
-
-.form-search .input-prepend .btn {
- -webkit-border-radius: 14px 0 0 14px;
- -moz-border-radius: 14px 0 0 14px;
- border-radius: 14px 0 0 14px;
-}
-
-.form-search input,
-.form-inline input,
-.form-horizontal input,
-.form-search textarea,
-.form-inline textarea,
-.form-horizontal textarea,
-.form-search select,
-.form-inline select,
-.form-horizontal select,
-.form-search .help-inline,
-.form-inline .help-inline,
-.form-horizontal .help-inline,
-.form-search .uneditable-input,
-.form-inline .uneditable-input,
-.form-horizontal .uneditable-input,
-.form-search .input-prepend,
-.form-inline .input-prepend,
-.form-horizontal .input-prepend,
-.form-search .input-append,
-.form-inline .input-append,
-.form-horizontal .input-append {
- display: inline-block;
- *display: inline;
- margin-bottom: 0;
- vertical-align: middle;
- *zoom: 1;
-}
-
-.form-search .hide,
-.form-inline .hide,
-.form-horizontal .hide {
- display: none;
-}
-
-.form-search label,
-.form-inline label,
-.form-search .btn-group,
-.form-inline .btn-group {
- display: inline-block;
-}
-
-.form-search .input-append,
-.form-inline .input-append,
-.form-search .input-prepend,
-.form-inline .input-prepend {
- margin-bottom: 0;
-}
-
-.form-search .radio,
-.form-search .checkbox,
-.form-inline .radio,
-.form-inline .checkbox {
- padding-left: 0;
- margin-bottom: 0;
- vertical-align: middle;
-}
-
-.form-search .radio input[type="radio"],
-.form-search .checkbox input[type="checkbox"],
-.form-inline .radio input[type="radio"],
-.form-inline .checkbox input[type="checkbox"] {
- float: left;
- margin-right: 3px;
- margin-left: 0;
-}
-
-.control-group {
- margin-bottom: 10px;
-}
-
-legend + .control-group {
- margin-top: 20px;
- -webkit-margin-top-collapse: separate;
-}
-
-.form-horizontal .control-group {
- margin-bottom: 20px;
- *zoom: 1;
-}
-
-.form-horizontal .control-group:before,
-.form-horizontal .control-group:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.form-horizontal .control-group:after {
- clear: both;
-}
-
-.form-horizontal .control-label {
- float: left;
- width: 160px;
- padding-top: 5px;
- text-align: right;
-}
-
-.form-horizontal .controls {
- *display: inline-block;
- *padding-left: 20px;
- margin-left: 180px;
- *margin-left: 0;
-}
-
-.form-horizontal .controls:first-child {
- *padding-left: 180px;
-}
-
-.form-horizontal .help-block {
- margin-bottom: 0;
-}
-
-.form-horizontal input + .help-block,
-.form-horizontal select + .help-block,
-.form-horizontal textarea + .help-block {
- margin-top: 10px;
-}
-
-.form-horizontal .form-actions {
- padding-left: 180px;
-}
-
-table {
- max-width: 100%;
- background-color: transparent;
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-.table {
- width: 100%;
- margin-bottom: 20px;
-}
-
-.table th,
-.table td {
- padding: 8px;
- line-height: 20px;
- text-align: left;
- vertical-align: top;
- border-top: 1px solid #dddddd;
-}
-
-.table th {
- font-weight: bold;
-}
-
-.table thead th {
- vertical-align: bottom;
-}
-
-.table caption + thead tr:first-child th,
-.table caption + thead tr:first-child td,
-.table colgroup + thead tr:first-child th,
-.table colgroup + thead tr:first-child td,
-.table thead:first-child tr:first-child th,
-.table thead:first-child tr:first-child td {
- border-top: 0;
-}
-
-.table tbody + tbody {
- border-top: 2px solid #dddddd;
-}
-
-.table-condensed th,
-.table-condensed td {
- padding: 4px 5px;
-}
-
-.table-bordered {
- border: 1px solid #dddddd;
- border-collapse: separate;
- *border-collapse: collapse;
- border-left: 0;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-.table-bordered th,
-.table-bordered td {
- border-left: 1px solid #dddddd;
-}
-
-.table-bordered caption + thead tr:first-child th,
-.table-bordered caption + tbody tr:first-child th,
-.table-bordered caption + tbody tr:first-child td,
-.table-bordered colgroup + thead tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child td,
-.table-bordered thead:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child td {
- border-top: 0;
-}
-
-.table-bordered thead:first-child tr:first-child th:first-child,
-.table-bordered tbody:first-child tr:first-child td:first-child {
- -webkit-border-top-left-radius: 4px;
- border-top-left-radius: 4px;
- -moz-border-radius-topleft: 4px;
-}
-
-.table-bordered thead:first-child tr:first-child th:last-child,
-.table-bordered tbody:first-child tr:first-child td:last-child {
- -webkit-border-top-right-radius: 4px;
- border-top-right-radius: 4px;
- -moz-border-radius-topright: 4px;
-}
-
-.table-bordered thead:last-child tr:last-child th:first-child,
-.table-bordered tbody:last-child tr:last-child td:first-child,
-.table-bordered tfoot:last-child tr:last-child td:first-child {
- -webkit-border-radius: 0 0 0 4px;
- -moz-border-radius: 0 0 0 4px;
- border-radius: 0 0 0 4px;
- -webkit-border-bottom-left-radius: 4px;
- border-bottom-left-radius: 4px;
- -moz-border-radius-bottomleft: 4px;
-}
-
-.table-bordered thead:last-child tr:last-child th:last-child,
-.table-bordered tbody:last-child tr:last-child td:last-child,
-.table-bordered tfoot:last-child tr:last-child td:last-child {
- -webkit-border-bottom-right-radius: 4px;
- border-bottom-right-radius: 4px;
- -moz-border-radius-bottomright: 4px;
-}
-
-.table-bordered caption + thead tr:first-child th:first-child,
-.table-bordered caption + tbody tr:first-child td:first-child,
-.table-bordered colgroup + thead tr:first-child th:first-child,
-.table-bordered colgroup + tbody tr:first-child td:first-child {
- -webkit-border-top-left-radius: 4px;
- border-top-left-radius: 4px;
- -moz-border-radius-topleft: 4px;
-}
-
-.table-bordered caption + thead tr:first-child th:last-child,
-.table-bordered caption + tbody tr:first-child td:last-child,
-.table-bordered colgroup + thead tr:first-child th:last-child,
-.table-bordered colgroup + tbody tr:first-child td:last-child {
- -webkit-border-top-right-radius: 4px;
- border-top-right-radius: 4px;
- -moz-border-radius-topleft: 4px;
-}
-
-.table-striped tbody tr:nth-child(odd) td,
-.table-striped tbody tr:nth-child(odd) th {
- background-color: #f9f9f9;
-}
-
-.table-hover tbody tr:hover td,
-.table-hover tbody tr:hover th {
- background-color: #f5f5f5;
-}
-
-table [class*=span],
-.row-fluid table [class*=span] {
- display: table-cell;
- float: none;
- margin-left: 0;
-}
-
-.table .span1 {
- float: none;
- width: 44px;
- margin-left: 0;
-}
-
-.table .span2 {
- float: none;
- width: 124px;
- margin-left: 0;
-}
-
-.table .span3 {
- float: none;
- width: 204px;
- margin-left: 0;
-}
-
-.table .span4 {
- float: none;
- width: 284px;
- margin-left: 0;
-}
-
-.table .span5 {
- float: none;
- width: 364px;
- margin-left: 0;
-}
-
-.table .span6 {
- float: none;
- width: 444px;
- margin-left: 0;
-}
-
-.table .span7 {
- float: none;
- width: 524px;
- margin-left: 0;
-}
-
-.table .span8 {
- float: none;
- width: 604px;
- margin-left: 0;
-}
-
-.table .span9 {
- float: none;
- width: 684px;
- margin-left: 0;
-}
-
-.table .span10 {
- float: none;
- width: 764px;
- margin-left: 0;
-}
-
-.table .span11 {
- float: none;
- width: 844px;
- margin-left: 0;
-}
-
-.table .span12 {
- float: none;
- width: 924px;
- margin-left: 0;
-}
-
-.table .span13 {
- float: none;
- width: 1004px;
- margin-left: 0;
-}
-
-.table .span14 {
- float: none;
- width: 1084px;
- margin-left: 0;
-}
-
-.table .span15 {
- float: none;
- width: 1164px;
- margin-left: 0;
-}
-
-.table .span16 {
- float: none;
- width: 1244px;
- margin-left: 0;
-}
-
-.table .span17 {
- float: none;
- width: 1324px;
- margin-left: 0;
-}
-
-.table .span18 {
- float: none;
- width: 1404px;
- margin-left: 0;
-}
-
-.table .span19 {
- float: none;
- width: 1484px;
- margin-left: 0;
-}
-
-.table .span20 {
- float: none;
- width: 1564px;
- margin-left: 0;
-}
-
-.table .span21 {
- float: none;
- width: 1644px;
- margin-left: 0;
-}
-
-.table .span22 {
- float: none;
- width: 1724px;
- margin-left: 0;
-}
-
-.table .span23 {
- float: none;
- width: 1804px;
- margin-left: 0;
-}
-
-.table .span24 {
- float: none;
- width: 1884px;
- margin-left: 0;
-}
-
-.table tbody tr.success td {
- background-color: #dff0d8;
-}
-
-.table tbody tr.error td {
- background-color: #f2dede;
-}
-
-.table tbody tr.warning td {
- background-color: #fcf8e3;
-}
-
-.table tbody tr.info td {
- background-color: #d9edf7;
-}
-
-.table-hover tbody tr.success:hover td {
- background-color: #d0e9c6;
-}
-
-.table-hover tbody tr.error:hover td {
- background-color: #ebcccc;
-}
-
-.table-hover tbody tr.warning:hover td {
- background-color: #faf2cc;
-}
-
-.table-hover tbody tr.info:hover td {
- background-color: #c4e3f3;
-}
-
-[class^="icon-"],
-[class*=" icon-"] {
- display: inline-block;
- width: 14px;
- height: 14px;
- margin-top: 1px;
- *margin-right: .3em;
- line-height: 14px;
- vertical-align: text-top;
- background-image: url("../img/glyphicons-halflings.png");
- background-position: 14px 14px;
- background-repeat: no-repeat;
-}
-
-/* White icons with optional class, or on hover/active states of certain elements */
-
-.icon-white,
-.nav-tabs > .active > a > [class^="icon-"],
-.nav-tabs > .active > a > [class*=" icon-"],
-.nav-pills > .active > a > [class^="icon-"],
-.nav-pills > .active > a > [class*=" icon-"],
-.nav-list > .active > a > [class^="icon-"],
-.nav-list > .active > a > [class*=" icon-"],
-.navbar-inverse .nav > .active > a > [class^="icon-"],
-.navbar-inverse .nav > .active > a > [class*=" icon-"],
-.dropdown-menu > li > a:hover > [class^="icon-"],
-.dropdown-menu > li > a:hover > [class*=" icon-"],
-.dropdown-menu > .active > a > [class^="icon-"],
-.dropdown-menu > .active > a > [class*=" icon-"] {
- background-image: url("../img/glyphicons-halflings-white.png");
-}
-
-.icon-glass {
- background-position: 0 0;
-}
-
-.icon-music {
- background-position: -24px 0;
-}
-
-.icon-search {
- background-position: -48px 0;
-}
-
-.icon-envelope {
- background-position: -72px 0;
-}
-
-.icon-heart {
- background-position: -96px 0;
-}
-
-.icon-star {
- background-position: -120px 0;
-}
-
-.icon-star-empty {
- background-position: -144px 0;
-}
-
-.icon-user {
- background-position: -168px 0;
-}
-
-.icon-film {
- background-position: -192px 0;
-}
-
-.icon-th-large {
- background-position: -216px 0;
-}
-
-.icon-th {
- background-position: -240px 0;
-}
-
-.icon-th-list {
- background-position: -264px 0;
-}
-
-.icon-ok {
- background-position: -288px 0;
-}
-
-.icon-remove {
- background-position: -312px 0;
-}
-
-.icon-zoom-in {
- background-position: -336px 0;
-}
-
-.icon-zoom-out {
- background-position: -360px 0;
-}
-
-.icon-off {
- background-position: -384px 0;
-}
-
-.icon-signal {
- background-position: -408px 0;
-}
-
-.icon-cog {
- background-position: -432px 0;
-}
-
-.icon-trash {
- background-position: -456px 0;
-}
-
-.icon-home {
- background-position: 0 -24px;
-}
-
-.icon-file {
- background-position: -24px -24px;
-}
-
-.icon-time {
- background-position: -48px -24px;
-}
-
-.icon-road {
- background-position: -72px -24px;
-}
-
-.icon-download-alt {
- background-position: -96px -24px;
-}
-
-.icon-download {
- background-position: -120px -24px;
-}
-
-.icon-upload {
- background-position: -144px -24px;
-}
-
-.icon-inbox {
- background-position: -168px -24px;
-}
-
-.icon-play-circle {
- background-position: -192px -24px;
-}
-
-.icon-repeat {
- background-position: -216px -24px;
-}
-
-.icon-refresh {
- background-position: -240px -24px;
-}
-
-.icon-list-alt {
- background-position: -264px -24px;
-}
-
-.icon-lock {
- background-position: -287px -24px;
-}
-
-.icon-flag {
- background-position: -312px -24px;
-}
-
-.icon-headphones {
- background-position: -336px -24px;
-}
-
-.icon-volume-off {
- background-position: -360px -24px;
-}
-
-.icon-volume-down {
- background-position: -384px -24px;
-}
-
-.icon-volume-up {
- background-position: -408px -24px;
-}
-
-.icon-qrcode {
- background-position: -432px -24px;
-}
-
-.icon-barcode {
- background-position: -456px -24px;
-}
-
-.icon-tag {
- background-position: 0 -48px;
-}
-
-.icon-tags {
- background-position: -25px -48px;
-}
-
-.icon-book {
- background-position: -48px -48px;
-}
-
-.icon-bookmark {
- background-position: -72px -48px;
-}
-
-.icon-print {
- background-position: -96px -48px;
-}
-
-.icon-camera {
- background-position: -120px -48px;
-}
-
-.icon-font {
- background-position: -144px -48px;
-}
-
-.icon-bold {
- background-position: -167px -48px;
-}
-
-.icon-italic {
- background-position: -192px -48px;
-}
-
-.icon-text-height {
- background-position: -216px -48px;
-}
-
-.icon-text-width {
- background-position: -240px -48px;
-}
-
-.icon-align-left {
- background-position: -264px -48px;
-}
-
-.icon-align-center {
- background-position: -288px -48px;
-}
-
-.icon-align-right {
- background-position: -312px -48px;
-}
-
-.icon-align-justify {
- background-position: -336px -48px;
-}
-
-.icon-list {
- background-position: -360px -48px;
-}
-
-.icon-indent-left {
- background-position: -384px -48px;
-}
-
-.icon-indent-right {
- background-position: -408px -48px;
-}
-
-.icon-facetime-video {
- background-position: -432px -48px;
-}
-
-.icon-picture {
- background-position: -456px -48px;
-}
-
-.icon-pencil {
- background-position: 0 -72px;
-}
-
-.icon-map-marker {
- background-position: -24px -72px;
-}
-
-.icon-adjust {
- background-position: -48px -72px;
-}
-
-.icon-tint {
- background-position: -72px -72px;
-}
-
-.icon-edit {
- background-position: -96px -72px;
-}
-
-.icon-share {
- background-position: -120px -72px;
-}
-
-.icon-check {
- background-position: -144px -72px;
-}
-
-.icon-move {
- background-position: -168px -72px;
-}
-
-.icon-step-backward {
- background-position: -192px -72px;
-}
-
-.icon-fast-backward {
- background-position: -216px -72px;
-}
-
-.icon-backward {
- background-position: -240px -72px;
-}
-
-.icon-play {
- background-position: -264px -72px;
-}
-
-.icon-pause {
- background-position: -288px -72px;
-}
-
-.icon-stop {
- background-position: -312px -72px;
-}
-
-.icon-forward {
- background-position: -336px -72px;
-}
-
-.icon-fast-forward {
- background-position: -360px -72px;
-}
-
-.icon-step-forward {
- background-position: -384px -72px;
-}
-
-.icon-eject {
- background-position: -408px -72px;
-}
-
-.icon-chevron-left {
- background-position: -432px -72px;
-}
-
-.icon-chevron-right {
- background-position: -456px -72px;
-}
-
-.icon-plus-sign {
- background-position: 0 -96px;
-}
-
-.icon-minus-sign {
- background-position: -24px -96px;
-}
-
-.icon-remove-sign {
- background-position: -48px -96px;
-}
-
-.icon-ok-sign {
- background-position: -72px -96px;
-}
-
-.icon-question-sign {
- background-position: -96px -96px;
-}
-
-.icon-info-sign {
- background-position: -120px -96px;
-}
-
-.icon-screenshot {
- background-position: -144px -96px;
-}
-
-.icon-remove-circle {
- background-position: -168px -96px;
-}
-
-.icon-ok-circle {
- background-position: -192px -96px;
-}
-
-.icon-ban-circle {
- background-position: -216px -96px;
-}
-
-.icon-arrow-left {
- background-position: -240px -96px;
-}
-
-.icon-arrow-right {
- background-position: -264px -96px;
-}
-
-.icon-arrow-up {
- background-position: -289px -96px;
-}
-
-.icon-arrow-down {
- background-position: -312px -96px;
-}
-
-.icon-share-alt {
- background-position: -336px -96px;
-}
-
-.icon-resize-full {
- background-position: -360px -96px;
-}
-
-.icon-resize-small {
- background-position: -384px -96px;
-}
-
-.icon-plus {
- background-position: -408px -96px;
-}
-
-.icon-minus {
- background-position: -433px -96px;
-}
-
-.icon-asterisk {
- background-position: -456px -96px;
-}
-
-.icon-exclamation-sign {
- background-position: 0 -120px;
-}
-
-.icon-gift {
- background-position: -24px -120px;
-}
-
-.icon-leaf {
- background-position: -48px -120px;
-}
-
-.icon-fire {
- background-position: -72px -120px;
-}
-
-.icon-eye-open {
- background-position: -96px -120px;
-}
-
-.icon-eye-close {
- background-position: -120px -120px;
-}
-
-.icon-warning-sign {
- background-position: -144px -120px;
-}
-
-.icon-plane {
- background-position: -168px -120px;
-}
-
-.icon-calendar {
- background-position: -192px -120px;
-}
-
-.icon-random {
- width: 16px;
- background-position: -216px -120px;
-}
-
-.icon-comment {
- background-position: -240px -120px;
-}
-
-.icon-magnet {
- background-position: -264px -120px;
-}
-
-.icon-chevron-up {
- background-position: -288px -120px;
-}
-
-.icon-chevron-down {
- background-position: -313px -119px;
-}
-
-.icon-retweet {
- background-position: -336px -120px;
-}
-
-.icon-shopping-cart {
- background-position: -360px -120px;
-}
-
-.icon-folder-close {
- background-position: -384px -120px;
-}
-
-.icon-folder-open {
- width: 16px;
- background-position: -408px -120px;
-}
-
-.icon-resize-vertical {
- background-position: -432px -119px;
-}
-
-.icon-resize-horizontal {
- background-position: -456px -118px;
-}
-
-.icon-hdd {
- background-position: 0 -144px;
-}
-
-.icon-bullhorn {
- background-position: -24px -144px;
-}
-
-.icon-bell {
- background-position: -48px -144px;
-}
-
-.icon-certificate {
- background-position: -72px -144px;
-}
-
-.icon-thumbs-up {
- background-position: -96px -144px;
-}
-
-.icon-thumbs-down {
- background-position: -120px -144px;
-}
-
-.icon-hand-right {
- background-position: -144px -144px;
-}
-
-.icon-hand-left {
- background-position: -168px -144px;
-}
-
-.icon-hand-up {
- background-position: -192px -144px;
-}
-
-.icon-hand-down {
- background-position: -216px -144px;
-}
-
-.icon-circle-arrow-right {
- background-position: -240px -144px;
-}
-
-.icon-circle-arrow-left {
- background-position: -264px -144px;
-}
-
-.icon-circle-arrow-up {
- background-position: -288px -144px;
-}
-
-.icon-circle-arrow-down {
- background-position: -312px -144px;
-}
-
-.icon-globe {
- background-position: -336px -144px;
-}
-
-.icon-wrench {
- background-position: -360px -144px;
-}
-
-.icon-tasks {
- background-position: -384px -144px;
-}
-
-.icon-filter {
- background-position: -408px -144px;
-}
-
-.icon-briefcase {
- background-position: -432px -144px;
-}
-
-.icon-fullscreen {
- background-position: -456px -144px;
-}
-
-.dropup,
-.dropdown {
- position: relative;
-}
-
-.dropdown-toggle {
- *margin-bottom: -3px;
-}
-
-.dropdown-toggle:active,
-.open .dropdown-toggle {
- outline: 0;
-}
-
-.caret {
- display: inline-block;
- width: 0;
- height: 0;
- vertical-align: top;
- border-top: 4px solid #000000;
- border-right: 4px solid transparent;
- border-left: 4px solid transparent;
- content: "";
-}
-
-.dropdown .caret {
- margin-top: 8px;
- margin-left: 2px;
-}
-
-.dropdown-menu {
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 1000;
- display: none;
- float: left;
- min-width: 160px;
- padding: 5px 0;
- margin: 2px 0 0;
- list-style: none;
- background-color: #ffffff;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, 0.2);
- *border-right-width: 2px;
- *border-bottom-width: 2px;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding;
- background-clip: padding-box;
-}
-
-.dropdown-menu.pull-right {
- right: 0;
- left: auto;
-}
-
-.dropdown-menu .divider {
- *width: 100%;
- height: 1px;
- margin: 9px 1px;
- *margin: -5px 0 5px;
- overflow: hidden;
- background-color: #e5e5e5;
- border-bottom: 1px solid #ffffff;
-}
-
-.dropdown-menu a {
- display: block;
- padding: 3px 20px;
- clear: both;
- font-weight: normal;
- line-height: 20px;
- color: #333333;
- white-space: nowrap;
-}
-
-.dropdown-menu li > a:hover,
-.dropdown-menu li > a:focus,
-.dropdown-submenu:hover > a {
- color: #ffffff;
- text-decoration: none;
- background-color: #0088cc;
- background-color: #0081c2;
- background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
- background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
- background-image: -o-linear-gradient(top, #0088cc, #0077b3);
- background-image: linear-gradient(to bottom, #0088cc, #0077b3);
- background-repeat: repeat-x;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
-}
-
-.dropdown-menu .active > a,
-.dropdown-menu .active > a:hover {
- color: #ffffff;
- text-decoration: none;
- background-color: #0088cc;
- background-color: #0081c2;
- background-image: linear-gradient(to bottom, #0088cc, #0077b3);
- background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
- background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
- background-image: -o-linear-gradient(top, #0088cc, #0077b3);
- background-repeat: repeat-x;
- outline: 0;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
-}
-
-.dropdown-menu .disabled > a,
-.dropdown-menu .disabled > a:hover {
- color: #999999;
-}
-
-.dropdown-menu .disabled > a:hover {
- text-decoration: none;
- cursor: default;
- background-color: transparent;
-}
-
-.open {
- *z-index: 1000;
-}
-
-.open > .dropdown-menu {
- display: block;
-}
-
-.pull-right > .dropdown-menu {
- right: 0;
- left: auto;
-}
-
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
- border-top: 0;
- border-bottom: 4px solid #000000;
- content: "";
-}
-
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
- top: auto;
- bottom: 100%;
- margin-bottom: 1px;
-}
-
-.dropdown-submenu {
- position: relative;
-}
-
-.dropdown-submenu > .dropdown-menu {
- top: 0;
- left: 100%;
- margin-top: -6px;
- margin-left: -1px;
- -webkit-border-radius: 0 6px 6px 6px;
- -moz-border-radius: 0 6px 6px 6px;
- border-radius: 0 6px 6px 6px;
-}
-
-.dropdown-submenu:hover > .dropdown-menu {
- display: block;
-}
-
-.dropdown-submenu > a:after {
- display: block;
- float: right;
- width: 0;
- height: 0;
- margin-top: 5px;
- margin-right: -10px;
- border-color: transparent;
- border-left-color: #cccccc;
- border-style: solid;
- border-width: 5px 0 5px 5px;
- content: " ";
-}
-
-.dropdown-submenu:hover > a:after {
- border-left-color: #ffffff;
-}
-
-.dropdown .dropdown-menu .nav-header {
- padding-right: 20px;
- padding-left: 20px;
-}
-
-.typeahead {
- margin-top: 2px;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-.well {
- min-height: 20px;
- padding: 19px;
- margin-bottom: 20px;
- background-color: #f5f5f5;
- border: 1px solid #e3e3e3;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-}
-
-.well blockquote {
- border-color: #ddd;
- border-color: rgba(0, 0, 0, 0.15);
-}
-
-.well-large {
- padding: 24px;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
-}
-
-.well-small {
- padding: 9px;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-.fade {
- opacity: 0;
- -webkit-transition: opacity 0.15s linear;
- -moz-transition: opacity 0.15s linear;
- -o-transition: opacity 0.15s linear;
- transition: opacity 0.15s linear;
-}
-
-.fade.in {
- opacity: 1;
-}
-
-.collapse {
- position: relative;
- height: 0;
- overflow: hidden;
- -webkit-transition: height 0.35s ease;
- -moz-transition: height 0.35s ease;
- -o-transition: height 0.35s ease;
- transition: height 0.35s ease;
-}
-
-.collapse.in {
- height: auto;
-}
-
-.close {
- float: right;
- font-size: 20px;
- font-weight: bold;
- line-height: 20px;
- color: #000000;
- text-shadow: 0 1px 0 #ffffff;
- opacity: 0.2;
- filter: alpha(opacity=20);
-}
-
-.close:hover {
- color: #000000;
- text-decoration: none;
- cursor: pointer;
- opacity: 0.4;
- filter: alpha(opacity=40);
-}
-
-button.close {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-
-.btn {
- display: inline-block;
- *display: inline;
- padding: 4px 14px;
- margin-bottom: 0;
- *margin-left: .3em;
- font-size: 14px;
- line-height: 20px;
- *line-height: 20px;
- color: #333333;
- text-align: center;
- text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
- vertical-align: middle;
- cursor: pointer;
- background-color: #f5f5f5;
- *background-color: #e6e6e6;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
- background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
- background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
- background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
- background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
- background-repeat: repeat-x;
- border: 1px solid #bbbbbb;
- *border: 0;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- border-color: #e6e6e6 #e6e6e6 #bfbfbf;
- border-bottom-color: #a2a2a2;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
- *zoom: 1;
- -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);
-}
-
-.btn:hover,
-.btn:active,
-.btn.active,
-.btn.disabled,
-.btn[disabled] {
- color: #333333;
- background-color: #e6e6e6;
- *background-color: #d9d9d9;
-}
-
-.btn:active,
-.btn.active {
- background-color: #cccccc \9;
-}
-
-.btn:first-child {
- *margin-left: 0;
-}
-
-.btn:hover {
- color: #333333;
- text-decoration: none;
- background-color: #e6e6e6;
- *background-color: #d9d9d9;
- /* Buttons in IE7 don't get borders, so darken on hover */
-
- background-position: 0 -15px;
- -webkit-transition: background-position 0.1s linear;
- -moz-transition: background-position 0.1s linear;
- -o-transition: background-position 0.1s linear;
- transition: background-position 0.1s linear;
-}
-
-.btn:focus {
- outline: thin dotted #333;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-
-.btn.active,
-.btn:active {
- background-color: #e6e6e6;
- background-color: #d9d9d9 \9;
- background-image: none;
- outline: 0;
- -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn.disabled,
-.btn[disabled] {
- cursor: default;
- background-color: #e6e6e6;
- background-image: none;
- opacity: 0.65;
- filter: alpha(opacity=65);
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-
-.btn-large {
- padding: 9px 14px;
- font-size: 16px;
- line-height: normal;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
-}
-
-.btn-large [class^="icon-"] {
- margin-top: 2px;
-}
-
-.btn-small {
- padding: 3px 9px;
- font-size: 12px;
- line-height: 18px;
-}
-
-.btn-small [class^="icon-"] {
- margin-top: 0;
-}
-
-.btn-mini {
- padding: 2px 6px;
- font-size: 11px;
- line-height: 17px;
-}
-
-.btn-block {
- display: block;
- width: 100%;
- padding-right: 0;
- padding-left: 0;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-.btn-block + .btn-block {
- margin-top: 5px;
-}
-
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
- width: 100%;
-}
-
-.btn-primary.active,
-.btn-warning.active,
-.btn-danger.active,
-.btn-success.active,
-.btn-info.active,
-.btn-inverse.active {
- color: rgba(255, 255, 255, 0.75);
-}
-
-.btn {
- border-color: #c5c5c5;
- border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
-}
-
-.btn-primary {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #006dcc;
- *background-color: #0044cc;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
- background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
- background-image: -o-linear-gradient(top, #0088cc, #0044cc);
- background-image: linear-gradient(to bottom, #0088cc, #0044cc);
- background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
- background-repeat: repeat-x;
- border-color: #0044cc #0044cc #002a80;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-primary:hover,
-.btn-primary:active,
-.btn-primary.active,
-.btn-primary.disabled,
-.btn-primary[disabled] {
- color: #ffffff;
- background-color: #0044cc;
- *background-color: #003bb3;
-}
-
-.btn-primary:active,
-.btn-primary.active {
- background-color: #003399 \9;
-}
-
-.btn-warning {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #faa732;
- *background-color: #f89406;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
- background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
- background-image: -o-linear-gradient(top, #fbb450, #f89406);
- background-image: linear-gradient(to bottom, #fbb450, #f89406);
- background-image: -moz-linear-gradient(top, #fbb450, #f89406);
- background-repeat: repeat-x;
- border-color: #f89406 #f89406 #ad6704;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-warning:hover,
-.btn-warning:active,
-.btn-warning.active,
-.btn-warning.disabled,
-.btn-warning[disabled] {
- color: #ffffff;
- background-color: #f89406;
- *background-color: #df8505;
-}
-
-.btn-warning:active,
-.btn-warning.active {
- background-color: #c67605 \9;
-}
-
-.btn-danger {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #da4f49;
- *background-color: #bd362f;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
- background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
- background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
- background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
- background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
- background-repeat: repeat-x;
- border-color: #bd362f #bd362f #802420;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-danger:hover,
-.btn-danger:active,
-.btn-danger.active,
-.btn-danger.disabled,
-.btn-danger[disabled] {
- color: #ffffff;
- background-color: #bd362f;
- *background-color: #a9302a;
-}
-
-.btn-danger:active,
-.btn-danger.active {
- background-color: #942a25 \9;
-}
-
-.btn-success {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #5bb75b;
- *background-color: #51a351;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
- background-image: -webkit-linear-gradient(top, #62c462, #51a351);
- background-image: -o-linear-gradient(top, #62c462, #51a351);
- background-image: linear-gradient(to bottom, #62c462, #51a351);
- background-image: -moz-linear-gradient(top, #62c462, #51a351);
- background-repeat: repeat-x;
- border-color: #51a351 #51a351 #387038;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-success:hover,
-.btn-success:active,
-.btn-success.active,
-.btn-success.disabled,
-.btn-success[disabled] {
- color: #ffffff;
- background-color: #51a351;
- *background-color: #499249;
-}
-
-.btn-success:active,
-.btn-success.active {
- background-color: #408140 \9;
-}
-
-.btn-info {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #49afcd;
- *background-color: #2f96b4;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
- background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
- background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
- background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
- background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
- background-repeat: repeat-x;
- border-color: #2f96b4 #2f96b4 #1f6377;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-info:hover,
-.btn-info:active,
-.btn-info.active,
-.btn-info.disabled,
-.btn-info[disabled] {
- color: #ffffff;
- background-color: #2f96b4;
- *background-color: #2a85a0;
-}
-
-.btn-info:active,
-.btn-info.active {
- background-color: #24748c \9;
-}
-
-.btn-inverse {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #363636;
- *background-color: #222222;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
- background-image: -webkit-linear-gradient(top, #444444, #222222);
- background-image: -o-linear-gradient(top, #444444, #222222);
- background-image: linear-gradient(to bottom, #444444, #222222);
- background-image: -moz-linear-gradient(top, #444444, #222222);
- background-repeat: repeat-x;
- border-color: #222222 #222222 #000000;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-inverse:hover,
-.btn-inverse:active,
-.btn-inverse.active,
-.btn-inverse.disabled,
-.btn-inverse[disabled] {
- color: #ffffff;
- background-color: #222222;
- *background-color: #151515;
-}
-
-.btn-inverse:active,
-.btn-inverse.active {
- background-color: #080808 \9;
-}
-
-button.btn,
-input[type="submit"].btn {
- *padding-top: 3px;
- *padding-bottom: 3px;
-}
-
-button.btn::-moz-focus-inner,
-input[type="submit"].btn::-moz-focus-inner {
- padding: 0;
- border: 0;
-}
-
-button.btn.btn-large,
-input[type="submit"].btn.btn-large {
- *padding-top: 7px;
- *padding-bottom: 7px;
-}
-
-button.btn.btn-small,
-input[type="submit"].btn.btn-small {
- *padding-top: 3px;
- *padding-bottom: 3px;
-}
-
-button.btn.btn-mini,
-input[type="submit"].btn.btn-mini {
- *padding-top: 1px;
- *padding-bottom: 1px;
-}
-
-.btn-link,
-.btn-link:active,
-.btn-link[disabled] {
- background-color: transparent;
- background-image: none;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-
-.btn-link {
- color: #0088cc;
- cursor: pointer;
- border-color: transparent;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.btn-link:hover {
- color: #005580;
- text-decoration: underline;
- background-color: transparent;
-}
-
-.btn-link[disabled]:hover {
- color: #333333;
- text-decoration: none;
-}
-
-.btn-group {
- position: relative;
- *margin-left: .3em;
- font-size: 0;
- white-space: nowrap;
- vertical-align: middle;
-}
-
-.btn-group:first-child {
- *margin-left: 0;
-}
-
-.btn-group + .btn-group {
- margin-left: 5px;
-}
-
-.btn-toolbar {
- margin-top: 10px;
- margin-bottom: 10px;
- font-size: 0;
-}
-
-.btn-toolbar .btn-group {
- display: inline-block;
- *display: inline;
- /* IE7 inline-block hack */
-
- *zoom: 1;
-}
-
-.btn-toolbar .btn + .btn,
-.btn-toolbar .btn-group + .btn,
-.btn-toolbar .btn + .btn-group {
- margin-left: 5px;
-}
-
-.btn-group > .btn {
- position: relative;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.btn-group > .btn + .btn {
- margin-left: -1px;
-}
-
-.btn-group > .btn,
-.btn-group > .dropdown-menu {
- font-size: 14px;
-}
-
-.btn-group > .btn-mini {
- font-size: 11px;
-}
-
-.btn-group > .btn-small {
- font-size: 12px;
-}
-
-.btn-group > .btn-large {
- font-size: 16px;
-}
-
-.btn-group > .btn:first-child {
- margin-left: 0;
- -webkit-border-bottom-left-radius: 4px;
- border-bottom-left-radius: 4px;
- -webkit-border-top-left-radius: 4px;
- border-top-left-radius: 4px;
- -moz-border-radius-bottomleft: 4px;
- -moz-border-radius-topleft: 4px;
-}
-
-.btn-group > .btn:last-child,
-.btn-group > .dropdown-toggle {
- -webkit-border-top-right-radius: 4px;
- border-top-right-radius: 4px;
- -webkit-border-bottom-right-radius: 4px;
- border-bottom-right-radius: 4px;
- -moz-border-radius-topright: 4px;
- -moz-border-radius-bottomright: 4px;
-}
-
-.btn-group > .btn.large:first-child {
- margin-left: 0;
- -webkit-border-bottom-left-radius: 6px;
- border-bottom-left-radius: 6px;
- -webkit-border-top-left-radius: 6px;
- border-top-left-radius: 6px;
- -moz-border-radius-bottomleft: 6px;
- -moz-border-radius-topleft: 6px;
-}
-
-.btn-group > .btn.large:last-child,
-.btn-group > .large.dropdown-toggle {
- -webkit-border-top-right-radius: 6px;
- border-top-right-radius: 6px;
- -webkit-border-bottom-right-radius: 6px;
- border-bottom-right-radius: 6px;
- -moz-border-radius-topright: 6px;
- -moz-border-radius-bottomright: 6px;
-}
-
-.btn-group > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group > .btn:active,
-.btn-group > .btn.active {
- z-index: 2;
-}
-
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
- outline: 0;
-}
-
-.btn-group > .btn + .dropdown-toggle {
- *padding-top: 5px;
- padding-right: 8px;
- *padding-bottom: 5px;
- padding-left: 8px;
- -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn-group > .btn-mini + .dropdown-toggle {
- *padding-top: 2px;
- padding-right: 5px;
- *padding-bottom: 2px;
- padding-left: 5px;
-}
-
-.btn-group > .btn-small + .dropdown-toggle {
- *padding-top: 5px;
- *padding-bottom: 4px;
-}
-
-.btn-group > .btn-large + .dropdown-toggle {
- *padding-top: 7px;
- padding-right: 12px;
- *padding-bottom: 7px;
- padding-left: 12px;
-}
-
-.btn-group.open .dropdown-toggle {
- background-image: none;
- -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn-group.open .btn.dropdown-toggle {
- background-color: #e6e6e6;
-}
-
-.btn-group.open .btn-primary.dropdown-toggle {
- background-color: #0044cc;
-}
-
-.btn-group.open .btn-warning.dropdown-toggle {
- background-color: #f89406;
-}
-
-.btn-group.open .btn-danger.dropdown-toggle {
- background-color: #bd362f;
-}
-
-.btn-group.open .btn-success.dropdown-toggle {
- background-color: #51a351;
-}
-
-.btn-group.open .btn-info.dropdown-toggle {
- background-color: #2f96b4;
-}
-
-.btn-group.open .btn-inverse.dropdown-toggle {
- background-color: #222222;
-}
-
-.btn .caret {
- margin-top: 8px;
- margin-left: 0;
-}
-
-.btn-mini .caret,
-.btn-small .caret,
-.btn-large .caret {
- margin-top: 6px;
-}
-
-.btn-large .caret {
- border-top-width: 5px;
- border-right-width: 5px;
- border-left-width: 5px;
-}
-
-.dropup .btn-large .caret {
- border-top: 0;
- border-bottom: 5px solid #000000;
-}
-
-.btn-primary .caret,
-.btn-warning .caret,
-.btn-danger .caret,
-.btn-info .caret,
-.btn-success .caret,
-.btn-inverse .caret {
- border-top-color: #ffffff;
- border-bottom-color: #ffffff;
-}
-
-.btn-group-vertical {
- display: inline-block;
- *display: inline;
- /* IE7 inline-block hack */
-
- *zoom: 1;
-}
-
-.btn-group-vertical .btn {
- display: block;
- float: none;
- width: 100%;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.btn-group-vertical .btn + .btn {
- margin-top: -1px;
- margin-left: 0;
-}
-
-.btn-group-vertical .btn:first-child {
- -webkit-border-radius: 4px 4px 0 0;
- -moz-border-radius: 4px 4px 0 0;
- border-radius: 4px 4px 0 0;
-}
-
-.btn-group-vertical .btn:last-child {
- -webkit-border-radius: 0 0 4px 4px;
- -moz-border-radius: 0 0 4px 4px;
- border-radius: 0 0 4px 4px;
-}
-
-.btn-group-vertical .btn-large:first-child {
- -webkit-border-radius: 6px 6px 0 0;
- -moz-border-radius: 6px 6px 0 0;
- border-radius: 6px 6px 0 0;
-}
-
-.btn-group-vertical .btn-large:last-child {
- -webkit-border-radius: 0 0 6px 6px;
- -moz-border-radius: 0 0 6px 6px;
- border-radius: 0 0 6px 6px;
-}
-
-.alert {
- padding: 8px 35px 8px 14px;
- margin-bottom: 20px;
- color: #c09853;
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
- background-color: #fcf8e3;
- border: 1px solid #fbeed5;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-.alert h4 {
- margin: 0;
-}
-
-.alert .close {
- position: relative;
- top: -2px;
- right: -21px;
- line-height: 20px;
-}
-
-.alert-success {
- color: #468847;
- background-color: #dff0d8;
- border-color: #d6e9c6;
-}
-
-.alert-danger,
-.alert-error {
- color: #b94a48;
- background-color: #f2dede;
- border-color: #eed3d7;
-}
-
-.alert-info {
- color: #3a87ad;
- background-color: #d9edf7;
- border-color: #bce8f1;
-}
-
-.alert-block {
- padding-top: 14px;
- padding-bottom: 14px;
-}
-
-.alert-block > p,
-.alert-block > ul {
- margin-bottom: 0;
-}
-
-.alert-block p + p {
- margin-top: 5px;
-}
-
-.nav {
- margin-bottom: 20px;
- margin-left: 0;
- list-style: none;
-}
-
-.nav > li > a {
- display: block;
-}
-
-.nav > li > a:hover {
- text-decoration: none;
- background-color: #eeeeee;
-}
-
-.nav > .pull-right {
- float: right;
-}
-
-.nav-header {
- display: block;
- padding: 3px 15px;
- font-size: 11px;
- font-weight: bold;
- line-height: 20px;
- color: #999999;
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
- text-transform: uppercase;
-}
-
-.nav li + .nav-header {
- margin-top: 9px;
-}
-
-.nav-list {
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 0;
-}
-
-.nav-list > li > a,
-.nav-list .nav-header {
- margin-right: -15px;
- margin-left: -15px;
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-}
-
-.nav-list > li > a {
- padding: 3px 15px;
-}
-
-.nav-list > .active > a,
-.nav-list > .active > a:hover {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
- background-color: #0088cc;
-}
-
-.nav-list [class^="icon-"] {
- margin-right: 2px;
-}
-
-.nav-list .divider {
- *width: 100%;
- height: 1px;
- margin: 9px 1px;
- *margin: -5px 0 5px;
- overflow: hidden;
- background-color: #e5e5e5;
- border-bottom: 1px solid #ffffff;
-}
-
-.nav-tabs,
-.nav-pills {
- *zoom: 1;
-}
-
-.nav-tabs:before,
-.nav-pills:before,
-.nav-tabs:after,
-.nav-pills:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.nav-tabs:after,
-.nav-pills:after {
- clear: both;
-}
-
-.nav-tabs > li,
-.nav-pills > li {
- float: left;
-}
-
-.nav-tabs > li > a,
-.nav-pills > li > a {
- padding-right: 12px;
- padding-left: 12px;
- margin-right: 2px;
- line-height: 14px;
-}
-
-.nav-tabs {
- border-bottom: 1px solid #ddd;
-}
-
-.nav-tabs > li {
- margin-bottom: -1px;
-}
-
-.nav-tabs > li > a {
- padding-top: 8px;
- padding-bottom: 8px;
- line-height: 20px;
- border: 1px solid transparent;
- -webkit-border-radius: 4px 4px 0 0;
- -moz-border-radius: 4px 4px 0 0;
- border-radius: 4px 4px 0 0;
-}
-
-.nav-tabs > li > a:hover {
- border-color: #eeeeee #eeeeee #dddddd;
-}
-
-.nav-tabs > .active > a,
-.nav-tabs > .active > a:hover {
- color: #555555;
- cursor: default;
- background-color: #ffffff;
- border: 1px solid #ddd;
- border-bottom-color: transparent;
-}
-
-.nav-pills > li > a {
- padding-top: 8px;
- padding-bottom: 8px;
- margin-top: 2px;
- margin-bottom: 2px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
-}
-
-.nav-pills > .active > a,
-.nav-pills > .active > a:hover {
- color: #ffffff;
- background-color: #0088cc;
-}
-
-.nav-stacked > li {
- float: none;
-}
-
-.nav-stacked > li > a {
- margin-right: 0;
-}
-
-.nav-tabs.nav-stacked {
- border-bottom: 0;
-}
-
-.nav-tabs.nav-stacked > li > a {
- border: 1px solid #ddd;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.nav-tabs.nav-stacked > li:first-child > a {
- -webkit-border-top-right-radius: 4px;
- border-top-right-radius: 4px;
- -webkit-border-top-left-radius: 4px;
- border-top-left-radius: 4px;
- -moz-border-radius-topright: 4px;
- -moz-border-radius-topleft: 4px;
-}
-
-.nav-tabs.nav-stacked > li:last-child > a {
- -webkit-border-bottom-right-radius: 4px;
- border-bottom-right-radius: 4px;
- -webkit-border-bottom-left-radius: 4px;
- border-bottom-left-radius: 4px;
- -moz-border-radius-bottomright: 4px;
- -moz-border-radius-bottomleft: 4px;
-}
-
-.nav-tabs.nav-stacked > li > a:hover {
- z-index: 2;
- border-color: #ddd;
-}
-
-.nav-pills.nav-stacked > li > a {
- margin-bottom: 3px;
-}
-
-.nav-pills.nav-stacked > li:last-child > a {
- margin-bottom: 1px;
-}
-
-.nav-tabs .dropdown-menu {
- -webkit-border-radius: 0 0 6px 6px;
- -moz-border-radius: 0 0 6px 6px;
- border-radius: 0 0 6px 6px;
-}
-
-.nav-pills .dropdown-menu {
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
-}
-
-.nav .dropdown-toggle .caret {
- margin-top: 6px;
- border-top-color: #0088cc;
- border-bottom-color: #0088cc;
-}
-
-.nav .dropdown-toggle:hover .caret {
- border-top-color: #005580;
- border-bottom-color: #005580;
-}
-
-/* move down carets for tabs */
-
-.nav-tabs .dropdown-toggle .caret {
- margin-top: 8px;
-}
-
-.nav .active .dropdown-toggle .caret {
- border-top-color: #fff;
- border-bottom-color: #fff;
-}
-
-.nav-tabs .active .dropdown-toggle .caret {
- border-top-color: #555555;
- border-bottom-color: #555555;
-}
-
-.nav > .dropdown.active > a:hover {
- cursor: pointer;
-}
-
-.nav-tabs .open .dropdown-toggle,
-.nav-pills .open .dropdown-toggle,
-.nav > li.dropdown.open.active > a:hover {
- color: #ffffff;
- background-color: #999999;
- border-color: #999999;
-}
-
-.nav li.dropdown.open .caret,
-.nav li.dropdown.open.active .caret,
-.nav li.dropdown.open a:hover .caret {
- border-top-color: #ffffff;
- border-bottom-color: #ffffff;
- opacity: 1;
- filter: alpha(opacity=100);
-}
-
-.tabs-stacked .open > a:hover {
- border-color: #999999;
-}
-
-.tabbable {
- *zoom: 1;
-}
-
-.tabbable:before,
-.tabbable:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.tabbable:after {
- clear: both;
-}
-
-.tab-content {
- overflow: auto;
-}
-
-.tabs-below > .nav-tabs,
-.tabs-right > .nav-tabs,
-.tabs-left > .nav-tabs {
- border-bottom: 0;
-}
-
-.tab-content > .tab-pane,
-.pill-content > .pill-pane {
- display: none;
-}
-
-.tab-content > .active,
-.pill-content > .active {
- display: block;
-}
-
-.tabs-below > .nav-tabs {
- border-top: 1px solid #ddd;
-}
-
-.tabs-below > .nav-tabs > li {
- margin-top: -1px;
- margin-bottom: 0;
-}
-
-.tabs-below > .nav-tabs > li > a {
- -webkit-border-radius: 0 0 4px 4px;
- -moz-border-radius: 0 0 4px 4px;
- border-radius: 0 0 4px 4px;
-}
-
-.tabs-below > .nav-tabs > li > a:hover {
- border-top-color: #ddd;
- border-bottom-color: transparent;
-}
-
-.tabs-below > .nav-tabs > .active > a,
-.tabs-below > .nav-tabs > .active > a:hover {
- border-color: transparent #ddd #ddd #ddd;
-}
-
-.tabs-left > .nav-tabs > li,
-.tabs-right > .nav-tabs > li {
- float: none;
-}
-
-.tabs-left > .nav-tabs > li > a,
-.tabs-right > .nav-tabs > li > a {
- min-width: 74px;
- margin-right: 0;
- margin-bottom: 3px;
-}
-
-.tabs-left > .nav-tabs {
- float: left;
- margin-right: 19px;
- border-right: 1px solid #ddd;
-}
-
-.tabs-left > .nav-tabs > li > a {
- margin-right: -1px;
- -webkit-border-radius: 4px 0 0 4px;
- -moz-border-radius: 4px 0 0 4px;
- border-radius: 4px 0 0 4px;
-}
-
-.tabs-left > .nav-tabs > li > a:hover {
- border-color: #eeeeee #dddddd #eeeeee #eeeeee;
-}
-
-.tabs-left > .nav-tabs .active > a,
-.tabs-left > .nav-tabs .active > a:hover {
- border-color: #ddd transparent #ddd #ddd;
- *border-right-color: #ffffff;
-}
-
-.tabs-right > .nav-tabs {
- float: right;
- margin-left: 19px;
- border-left: 1px solid #ddd;
-}
-
-.tabs-right > .nav-tabs > li > a {
- margin-left: -1px;
- -webkit-border-radius: 0 4px 4px 0;
- -moz-border-radius: 0 4px 4px 0;
- border-radius: 0 4px 4px 0;
-}
-
-.tabs-right > .nav-tabs > li > a:hover {
- border-color: #eeeeee #eeeeee #eeeeee #dddddd;
-}
-
-.tabs-right > .nav-tabs .active > a,
-.tabs-right > .nav-tabs .active > a:hover {
- border-color: #ddd #ddd #ddd transparent;
- *border-left-color: #ffffff;
-}
-
-.nav > .disabled > a {
- color: #999999;
-}
-
-.nav > .disabled > a:hover {
- text-decoration: none;
- cursor: default;
- background-color: transparent;
-}
-
-.navbar {
- *position: relative;
- *z-index: 2;
- margin-bottom: 20px;
- overflow: visible;
- color: #777777;
-}
-
-.navbar-inner {
- min-height: 40px;
- padding-right: 20px;
- padding-left: 20px;
- background-color: #fafafa;
- background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
- background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
- background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
- background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
- background-repeat: repeat-x;
- border: 1px solid #d4d4d4;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
- *zoom: 1;
- -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
- -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-}
-
-.navbar-inner:before,
-.navbar-inner:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.navbar-inner:after {
- clear: both;
-}
-
-.navbar .container {
- width: auto;
-}
-
-.nav-collapse.collapse {
- height: auto;
-}
-
-.navbar .brand {
- display: block;
- float: left;
- padding: 10px 20px 10px;
- margin-left: -20px;
- font-size: 20px;
- font-weight: 200;
- color: #777777;
- text-shadow: 0 1px 0 #ffffff;
-}
-
-.navbar .brand:hover {
- text-decoration: none;
-}
-
-.navbar-text {
- margin-bottom: 0;
- line-height: 40px;
-}
-
-.navbar-link {
- color: #777777;
-}
-
-.navbar-link:hover {
- color: #333333;
-}
-
-.navbar .divider-vertical {
- height: 40px;
- margin: 0 9px;
- border-right: 1px solid #ffffff;
- border-left: 1px solid #f2f2f2;
-}
-
-.navbar .btn,
-.navbar .btn-group {
- margin-top: 5px;
-}
-
-.navbar .btn-group .btn,
-.navbar .input-prepend .btn,
-.navbar .input-append .btn {
- margin-top: 0;
-}
-
-.navbar-form {
- margin-bottom: 0;
- *zoom: 1;
-}
-
-.navbar-form:before,
-.navbar-form:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.navbar-form:after {
- clear: both;
-}
-
-.navbar-form input,
-.navbar-form select,
-.navbar-form .radio,
-.navbar-form .checkbox {
- margin-top: 5px;
-}
-
-.navbar-form input,
-.navbar-form select,
-.navbar-form .btn {
- display: inline-block;
- margin-bottom: 0;
-}
-
-.navbar-form input[type="image"],
-.navbar-form input[type="checkbox"],
-.navbar-form input[type="radio"] {
- margin-top: 3px;
-}
-
-.navbar-form .input-append,
-.navbar-form .input-prepend {
- margin-top: 6px;
- white-space: nowrap;
-}
-
-.navbar-form .input-append input,
-.navbar-form .input-prepend input {
- margin-top: 0;
-}
-
-.navbar-search {
- position: relative;
- float: left;
- margin-top: 5px;
- margin-bottom: 0;
-}
-
-.navbar-search .search-query {
- padding: 4px 14px;
- margin-bottom: 0;
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 13px;
- font-weight: normal;
- line-height: 1;
- -webkit-border-radius: 15px;
- -moz-border-radius: 15px;
- border-radius: 15px;
-}
-
-.navbar-static-top {
- position: static;
- width: 100%;
- margin-bottom: 0;
-}
-
-.navbar-static-top .navbar-inner {
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- position: fixed;
- right: 0;
- left: 0;
- z-index: 1030;
- margin-bottom: 0;
-}
-
-.navbar-fixed-top .navbar-inner,
-.navbar-static-top .navbar-inner {
- border-width: 0 0 1px;
-}
-
-.navbar-fixed-bottom .navbar-inner {
- border-width: 1px 0 0;
-}
-
-.navbar-fixed-top .navbar-inner,
-.navbar-fixed-bottom .navbar-inner {
- padding-right: 0;
- padding-left: 0;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
-}
-
-.navbar-static-top .container,
-.navbar-fixed-top .container,
-.navbar-fixed-bottom .container {
- width: 940px;
-}
-
-.navbar-fixed-top {
- top: 0;
-}
-
-.navbar-fixed-top .navbar-inner,
-.navbar-static-top .navbar-inner {
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
-}
-
-.navbar-fixed-bottom {
- bottom: 0;
-}
-
-.navbar-fixed-bottom .navbar-inner {
- -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
-}
-
-.navbar .nav {
- position: relative;
- left: 0;
- display: block;
- float: left;
- margin: 0 10px 0 0;
-}
-
-.navbar .nav.pull-right {
- float: right;
- margin-right: 0;
-}
-
-.navbar .nav > li {
- float: left;
-}
-
-.navbar .nav > li > a {
- float: none;
- padding: 10px 15px 10px;
- color: #777777;
- text-decoration: none;
- text-shadow: 0 1px 0 #ffffff;
-}
-
-.navbar .nav .dropdown-toggle .caret {
- margin-top: 8px;
-}
-
-.navbar .nav > li > a:focus,
-.navbar .nav > li > a:hover {
- color: #333333;
- text-decoration: none;
- background-color: transparent;
-}
-
-.navbar .nav > .active > a,
-.navbar .nav > .active > a:hover,
-.navbar .nav > .active > a:focus {
- color: #555555;
- text-decoration: none;
- background-color: #e5e5e5;
- -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
- -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
-}
-
-.navbar .btn-navbar {
- display: none;
- float: right;
- padding: 7px 10px;
- margin-right: 5px;
- margin-left: 5px;
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #ededed;
- *background-color: #e5e5e5;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
- background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
- background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
- background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
- background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
- background-repeat: repeat-x;
- border-color: #e5e5e5 #e5e5e5 #bfbfbf;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
- -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
-}
-
-.navbar .btn-navbar:hover,
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active,
-.navbar .btn-navbar.disabled,
-.navbar .btn-navbar[disabled] {
- color: #ffffff;
- background-color: #e5e5e5;
- *background-color: #d9d9d9;
-}
-
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active {
- background-color: #cccccc \9;
-}
-
-.navbar .btn-navbar .icon-bar {
- display: block;
- width: 18px;
- height: 2px;
- background-color: #f5f5f5;
- -webkit-border-radius: 1px;
- -moz-border-radius: 1px;
- border-radius: 1px;
- -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.btn-navbar .icon-bar + .icon-bar {
- margin-top: 3px;
-}
-
-.navbar .nav > li > .dropdown-menu:before {
- position: absolute;
- top: -7px;
- left: 9px;
- display: inline-block;
- border-right: 7px solid transparent;
- border-bottom: 7px solid #ccc;
- border-left: 7px solid transparent;
- border-bottom-color: rgba(0, 0, 0, 0.2);
- content: '';
-}
-
-.navbar .nav > li > .dropdown-menu:after {
- position: absolute;
- top: -6px;
- left: 10px;
- display: inline-block;
- border-right: 6px solid transparent;
- border-bottom: 6px solid #ffffff;
- border-left: 6px solid transparent;
- content: '';
-}
-
-.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
- top: auto;
- bottom: -7px;
- border-top: 7px solid #ccc;
- border-bottom: 0;
- border-top-color: rgba(0, 0, 0, 0.2);
-}
-
-.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
- top: auto;
- bottom: -6px;
- border-top: 6px solid #ffffff;
- border-bottom: 0;
-}
-
-.navbar .nav li.dropdown.open > .dropdown-toggle,
-.navbar .nav li.dropdown.active > .dropdown-toggle,
-.navbar .nav li.dropdown.open.active > .dropdown-toggle {
- color: #555555;
- background-color: #e5e5e5;
-}
-
-.navbar .nav li.dropdown > .dropdown-toggle .caret {
- border-top-color: #777777;
- border-bottom-color: #777777;
-}
-
-.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
-.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
-.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
- border-top-color: #555555;
- border-bottom-color: #555555;
-}
-
-.navbar .pull-right > li > .dropdown-menu,
-.navbar .nav > li > .dropdown-menu.pull-right {
- right: 0;
- left: auto;
-}
-
-.navbar .pull-right > li > .dropdown-menu:before,
-.navbar .nav > li > .dropdown-menu.pull-right:before {
- right: 12px;
- left: auto;
-}
-
-.navbar .pull-right > li > .dropdown-menu:after,
-.navbar .nav > li > .dropdown-menu.pull-right:after {
- right: 13px;
- left: auto;
-}
-
-.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
-.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
- right: 100%;
- left: auto;
- margin-right: -1px;
- margin-left: 0;
- -webkit-border-radius: 6px 0 6px 6px;
- -moz-border-radius: 6px 0 6px 6px;
- border-radius: 6px 0 6px 6px;
-}
-
-.navbar-inverse {
- color: #999999;
-}
-
-.navbar-inverse .navbar-inner {
- background-color: #1b1b1b;
- background-image: -moz-linear-gradient(top, #222222, #111111);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
- background-image: -webkit-linear-gradient(top, #222222, #111111);
- background-image: -o-linear-gradient(top, #222222, #111111);
- background-image: linear-gradient(to bottom, #222222, #111111);
- background-repeat: repeat-x;
- border-color: #252525;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
-}
-
-.navbar-inverse .brand,
-.navbar-inverse .nav > li > a {
- color: #999999;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.navbar-inverse .brand:hover,
-.navbar-inverse .nav > li > a:hover {
- color: #ffffff;
-}
-
-.navbar-inverse .nav > li > a:focus,
-.navbar-inverse .nav > li > a:hover {
- color: #ffffff;
- background-color: transparent;
-}
-
-.navbar-inverse .nav .active > a,
-.navbar-inverse .nav .active > a:hover,
-.navbar-inverse .nav .active > a:focus {
- color: #ffffff;
- background-color: #111111;
-}
-
-.navbar-inverse .navbar-link {
- color: #999999;
-}
-
-.navbar-inverse .navbar-link:hover {
- color: #ffffff;
-}
-
-.navbar-inverse .divider-vertical {
- border-right-color: #222222;
- border-left-color: #111111;
-}
-
-.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
-.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
-.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
- color: #ffffff;
- background-color: #111111;
-}
-
-.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
- border-top-color: #999999;
- border-bottom-color: #999999;
-}
-
-.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
-.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
-.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
- border-top-color: #ffffff;
- border-bottom-color: #ffffff;
-}
-
-.navbar-inverse .navbar-search .search-query {
- color: #ffffff;
- background-color: #515151;
- border-color: #111111;
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
- -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
- -webkit-transition: none;
- -moz-transition: none;
- -o-transition: none;
- transition: none;
-}
-
-.navbar-inverse .navbar-search .search-query:-moz-placeholder {
- color: #cccccc;
-}
-
-.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
- color: #cccccc;
-}
-
-.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
- color: #cccccc;
-}
-
-.navbar-inverse .navbar-search .search-query:focus,
-.navbar-inverse .navbar-search .search-query.focused {
- padding: 5px 15px;
- color: #333333;
- text-shadow: 0 1px 0 #ffffff;
- background-color: #ffffff;
- border: 0;
- outline: 0;
- -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
- -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
- box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-}
-
-.navbar-inverse .btn-navbar {
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #0e0e0e;
- *background-color: #040404;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
- background-image: -webkit-linear-gradient(top, #151515, #040404);
- background-image: -o-linear-gradient(top, #151515, #040404);
- background-image: linear-gradient(to bottom, #151515, #040404);
- background-image: -moz-linear-gradient(top, #151515, #040404);
- background-repeat: repeat-x;
- border-color: #040404 #040404 #000000;
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.navbar-inverse .btn-navbar:hover,
-.navbar-inverse .btn-navbar:active,
-.navbar-inverse .btn-navbar.active,
-.navbar-inverse .btn-navbar.disabled,
-.navbar-inverse .btn-navbar[disabled] {
- color: #ffffff;
- background-color: #040404;
- *background-color: #000000;
-}
-
-.navbar-inverse .btn-navbar:active,
-.navbar-inverse .btn-navbar.active {
- background-color: #000000 \9;
-}
-
-.breadcrumb {
- padding: 8px 15px;
- margin: 0 0 20px;
- list-style: none;
- background-color: #f5f5f5;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-.breadcrumb li {
- display: inline-block;
- *display: inline;
- text-shadow: 0 1px 0 #ffffff;
- *zoom: 1;
-}
-
-.breadcrumb .divider {
- padding: 0 5px;
- color: #ccc;
-}
-
-.breadcrumb .active {
- color: #999999;
-}
-
-.pagination {
- height: 40px;
- margin: 20px 0;
-}
-
-.pagination ul {
- display: inline-block;
- *display: inline;
- margin-bottom: 0;
- margin-left: 0;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- *zoom: 1;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
- -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.pagination ul > li {
- display: inline;
-}
-
-.pagination ul > li > a,
-.pagination ul > li > span {
- float: left;
- padding: 0 14px;
- line-height: 38px;
- text-decoration: none;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-left-width: 0;
-}
-
-.pagination ul > li > a:hover,
-.pagination ul > .active > a,
-.pagination ul > .active > span {
- background-color: #f5f5f5;
-}
-
-.pagination ul > .active > a,
-.pagination ul > .active > span {
- color: #999999;
- cursor: default;
-}
-
-.pagination ul > .disabled > span,
-.pagination ul > .disabled > a,
-.pagination ul > .disabled > a:hover {
- color: #999999;
- cursor: default;
- background-color: transparent;
-}
-
-.pagination ul > li:first-child > a,
-.pagination ul > li:first-child > span {
- border-left-width: 1px;
- -webkit-border-radius: 3px 0 0 3px;
- -moz-border-radius: 3px 0 0 3px;
- border-radius: 3px 0 0 3px;
-}
-
-.pagination ul > li:last-child > a,
-.pagination ul > li:last-child > span {
- -webkit-border-radius: 0 3px 3px 0;
- -moz-border-radius: 0 3px 3px 0;
- border-radius: 0 3px 3px 0;
-}
-
-.pagination-centered {
- text-align: center;
-}
-
-.pagination-right {
- text-align: right;
-}
-
-.pager {
- margin: 20px 0;
- text-align: center;
- list-style: none;
- *zoom: 1;
-}
-
-.pager:before,
-.pager:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.pager:after {
- clear: both;
-}
-
-.pager li {
- display: inline;
-}
-
-.pager a,
-.pager span {
- display: inline-block;
- padding: 5px 14px;
- background-color: #fff;
- border: 1px solid #ddd;
- -webkit-border-radius: 15px;
- -moz-border-radius: 15px;
- border-radius: 15px;
-}
-
-.pager a:hover {
- text-decoration: none;
- background-color: #f5f5f5;
-}
-
-.pager .next a,
-.pager .next span {
- float: right;
-}
-
-.pager .previous a {
- float: left;
-}
-
-.pager .disabled a,
-.pager .disabled a:hover,
-.pager .disabled span {
- color: #999999;
- cursor: default;
- background-color: #fff;
-}
-
-.modal-open .modal .dropdown-menu {
- z-index: 2050;
-}
-
-.modal-open .modal .dropdown.open {
- *z-index: 2050;
-}
-
-.modal-open .modal .popover {
- z-index: 2060;
-}
-
-.modal-open .modal .tooltip {
- z-index: 2080;
-}
-
-.modal-backdrop {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1040;
- background-color: #000000;
-}
-
-.modal-backdrop.fade {
- opacity: 0;
-}
-
-.modal-backdrop,
-.modal-backdrop.fade.in {
- opacity: 0.8;
- filter: alpha(opacity=80);
-}
-
-.modal {
- position: fixed;
- top: 50%;
- left: 50%;
- z-index: 1050;
- width: 560px;
- margin: -250px 0 0 -280px;
- overflow: auto;
- background-color: #ffffff;
- border: 1px solid #999;
- border: 1px solid rgba(0, 0, 0, 0.3);
- *border: 1px solid #999;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
- -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
- box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding-box;
- background-clip: padding-box;
-}
-
-.modal.fade {
- top: -25%;
- -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
- -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
- -o-transition: opacity 0.3s linear, top 0.3s ease-out;
- transition: opacity 0.3s linear, top 0.3s ease-out;
-}
-
-.modal.fade.in {
- top: 50%;
-}
-
-.modal-header {
- padding: 9px 15px;
- border-bottom: 1px solid #eee;
-}
-
-.modal-header .close {
- margin-top: 2px;
-}
-
-.modal-header h3 {
- margin: 0;
- line-height: 30px;
-}
-
-.modal-body {
- max-height: 400px;
- padding: 15px;
- overflow-y: auto;
-}
-
-.modal-form {
- margin-bottom: 0;
-}
-
-.modal-footer {
- padding: 14px 15px 15px;
- margin-bottom: 0;
- text-align: right;
- background-color: #f5f5f5;
- border-top: 1px solid #ddd;
- -webkit-border-radius: 0 0 6px 6px;
- -moz-border-radius: 0 0 6px 6px;
- border-radius: 0 0 6px 6px;
- *zoom: 1;
- -webkit-box-shadow: inset 0 1px 0 #ffffff;
- -moz-box-shadow: inset 0 1px 0 #ffffff;
- box-shadow: inset 0 1px 0 #ffffff;
-}
-
-.modal-footer:before,
-.modal-footer:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.modal-footer:after {
- clear: both;
-}
-
-.modal-footer .btn + .btn {
- margin-bottom: 0;
- margin-left: 5px;
-}
-
-.modal-footer .btn-group .btn + .btn {
- margin-left: -1px;
-}
-
-.tooltip {
- position: absolute;
- z-index: 1030;
- display: block;
- padding: 5px;
- font-size: 11px;
- opacity: 0;
- filter: alpha(opacity=0);
- visibility: visible;
-}
-
-.tooltip.in {
- opacity: 0.8;
- filter: alpha(opacity=80);
-}
-
-.tooltip.top {
- margin-top: -3px;
-}
-
-.tooltip.right {
- margin-left: 3px;
-}
-
-.tooltip.bottom {
- margin-top: 3px;
-}
-
-.tooltip.left {
- margin-left: -3px;
-}
-
-.tooltip-inner {
- max-width: 200px;
- padding: 3px 8px;
- color: #ffffff;
- text-align: center;
- text-decoration: none;
- background-color: #000000;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-.tooltip-arrow {
- position: absolute;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
-}
-
-.tooltip.top .tooltip-arrow {
- bottom: 0;
- left: 50%;
- margin-left: -5px;
- border-top-color: #000000;
- border-width: 5px 5px 0;
-}
-
-.tooltip.right .tooltip-arrow {
- top: 50%;
- left: 0;
- margin-top: -5px;
- border-right-color: #000000;
- border-width: 5px 5px 5px 0;
-}
-
-.tooltip.left .tooltip-arrow {
- top: 50%;
- right: 0;
- margin-top: -5px;
- border-left-color: #000000;
- border-width: 5px 0 5px 5px;
-}
-
-.tooltip.bottom .tooltip-arrow {
- top: 0;
- left: 50%;
- margin-left: -5px;
- border-bottom-color: #000000;
- border-width: 0 5px 5px;
-}
-
-.popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 1010;
- display: none;
- width: 236px;
- padding: 1px;
- background-color: #ffffff;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, 0.2);
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding;
- background-clip: padding-box;
-}
-
-.popover.top {
- margin-bottom: 10px;
-}
-
-.popover.right {
- margin-left: 10px;
-}
-
-.popover.bottom {
- margin-top: 10px;
-}
-
-.popover.left {
- margin-right: 10px;
-}
-
-.popover-title {
- padding: 8px 14px;
- margin: 0;
- font-size: 14px;
- font-weight: normal;
- line-height: 18px;
- background-color: #f7f7f7;
- border-bottom: 1px solid #ebebeb;
- -webkit-border-radius: 5px 5px 0 0;
- -moz-border-radius: 5px 5px 0 0;
- border-radius: 5px 5px 0 0;
-}
-
-.popover-content {
- padding: 9px 14px;
-}
-
-.popover-content p,
-.popover-content ul,
-.popover-content ol {
- margin-bottom: 0;
-}
-
-.popover .arrow,
-.popover .arrow:after {
- position: absolute;
- display: inline-block;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
-}
-
-.popover .arrow:after {
- z-index: -1;
- content: "";
-}
-
-.popover.top .arrow {
- bottom: -10px;
- left: 50%;
- margin-left: -10px;
- border-top-color: #ffffff;
- border-width: 10px 10px 0;
-}
-
-.popover.top .arrow:after {
- bottom: -1px;
- left: -11px;
- border-top-color: rgba(0, 0, 0, 0.25);
- border-width: 11px 11px 0;
-}
-
-.popover.right .arrow {
- top: 50%;
- left: -10px;
- margin-top: -10px;
- border-right-color: #ffffff;
- border-width: 10px 10px 10px 0;
-}
-
-.popover.right .arrow:after {
- bottom: -11px;
- left: -1px;
- border-right-color: rgba(0, 0, 0, 0.25);
- border-width: 11px 11px 11px 0;
-}
-
-.popover.bottom .arrow {
- top: -10px;
- left: 50%;
- margin-left: -10px;
- border-bottom-color: #ffffff;
- border-width: 0 10px 10px;
-}
-
-.popover.bottom .arrow:after {
- top: -1px;
- left: -11px;
- border-bottom-color: rgba(0, 0, 0, 0.25);
- border-width: 0 11px 11px;
-}
-
-.popover.left .arrow {
- top: 50%;
- right: -10px;
- margin-top: -10px;
- border-left-color: #ffffff;
- border-width: 10px 0 10px 10px;
-}
-
-.popover.left .arrow:after {
- right: -1px;
- bottom: -11px;
- border-left-color: rgba(0, 0, 0, 0.25);
- border-width: 11px 0 11px 11px;
-}
-
-.thumbnails {
- margin-left: -20px;
- list-style: none;
- *zoom: 1;
-}
-
-.thumbnails:before,
-.thumbnails:after {
- display: table;
- line-height: 0;
- content: "";
-}
-
-.thumbnails:after {
- clear: both;
-}
-
-.row-fluid .thumbnails {
- margin-left: 0;
-}
-
-.thumbnails > li {
- float: left;
- margin-bottom: 20px;
- margin-left: 20px;
-}
-
-.thumbnail {
- display: block;
- padding: 4px;
- line-height: 20px;
- border: 1px solid #ddd;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
- -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
- -webkit-transition: all 0.2s ease-in-out;
- -moz-transition: all 0.2s ease-in-out;
- -o-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
-}
-
-a.thumbnail:hover {
- border-color: #0088cc;
- -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
- -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
- box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-}
-
-.thumbnail > img {
- display: block;
- max-width: 100%;
- margin-right: auto;
- margin-left: auto;
-}
-
-.thumbnail .caption {
- padding: 9px;
- color: #555555;
-}
-
-.label,
-.badge {
- font-size: 11.844px;
- font-weight: bold;
- line-height: 14px;
- color: #ffffff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- white-space: nowrap;
- vertical-align: baseline;
- background-color: #999999;
-}
-
-.label {
- padding: 1px 4px 2px;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-.badge {
- padding: 1px 9px 2px;
- -webkit-border-radius: 9px;
- -moz-border-radius: 9px;
- border-radius: 9px;
-}
-
-a.label:hover,
-a.badge:hover {
- color: #ffffff;
- text-decoration: none;
- cursor: pointer;
-}
-
-.label-important,
-.badge-important {
- background-color: #b94a48;
-}
-
-.label-important[href],
-.badge-important[href] {
- background-color: #953b39;
-}
-
-.label-warning,
-.badge-warning {
- background-color: #f89406;
-}
-
-.label-warning[href],
-.badge-warning[href] {
- background-color: #c67605;
-}
-
-.label-success,
-.badge-success {
- background-color: #468847;
-}
-
-.label-success[href],
-.badge-success[href] {
- background-color: #356635;
-}
-
-.label-info,
-.badge-info {
- background-color: #3a87ad;
-}
-
-.label-info[href],
-.badge-info[href] {
- background-color: #2d6987;
-}
-
-.label-inverse,
-.badge-inverse {
- background-color: #333333;
-}
-
-.label-inverse[href],
-.badge-inverse[href] {
- background-color: #1a1a1a;
-}
-
-.btn .label,
-.btn .badge {
- position: relative;
- top: -1px;
-}
-
-.btn-mini .label,
-.btn-mini .badge {
- top: 0;
-}
-
-@-webkit-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-@-moz-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-@-ms-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-@-o-keyframes progress-bar-stripes {
- from {
- background-position: 0 0;
- }
- to {
- background-position: 40px 0;
- }
-}
-
-@keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-.progress {
- height: 20px;
- margin-bottom: 20px;
- overflow: hidden;
- background-color: #f7f7f7;
- background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
- background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
- background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
- background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
- background-repeat: repeat-x;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-}
-
-.progress .bar {
- float: left;
- width: 0;
- height: 100%;
- font-size: 12px;
- color: #ffffff;
- text-align: center;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
- background-color: #0e90d2;
- background-image: -moz-linear-gradient(top, #149bdf, #0480be);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
- background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
- background-image: -o-linear-gradient(top, #149bdf, #0480be);
- background-image: linear-gradient(to bottom, #149bdf, #0480be);
- background-repeat: repeat-x;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-transition: width 0.6s ease;
- -moz-transition: width 0.6s ease;
- -o-transition: width 0.6s ease;
- transition: width 0.6s ease;
-}
-
-.progress .bar + .bar {
- -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-}
-
-.progress-striped .bar {
- background-color: #149bdf;
- background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- -webkit-background-size: 40px 40px;
- -moz-background-size: 40px 40px;
- -o-background-size: 40px 40px;
- background-size: 40px 40px;
-}
-
-.progress.active .bar {
- -webkit-animation: progress-bar-stripes 2s linear infinite;
- -moz-animation: progress-bar-stripes 2s linear infinite;
- -ms-animation: progress-bar-stripes 2s linear infinite;
- -o-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
-}
-
-.progress-danger .bar,
-.progress .bar-danger {
- background-color: #dd514c;
- background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
- background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
- background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
- background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
- background-repeat: repeat-x;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
-}
-
-.progress-danger.progress-striped .bar,
-.progress-striped .bar-danger {
- background-color: #ee5f5b;
- background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.progress-success .bar,
-.progress .bar-success {
- background-color: #5eb95e;
- background-image: -moz-linear-gradient(top, #62c462, #57a957);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
- background-image: -webkit-linear-gradient(top, #62c462, #57a957);
- background-image: -o-linear-gradient(top, #62c462, #57a957);
- background-image: linear-gradient(to bottom, #62c462, #57a957);
- background-repeat: repeat-x;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
-}
-
-.progress-success.progress-striped .bar,
-.progress-striped .bar-success {
- background-color: #62c462;
- background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.progress-info .bar,
-.progress .bar-info {
- background-color: #4bb1cf;
- background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
- background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
- background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
- background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
- background-repeat: repeat-x;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
-}
-
-.progress-info.progress-striped .bar,
-.progress-striped .bar-info {
- background-color: #5bc0de;
- background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.progress-warning .bar,
-.progress .bar-warning {
- background-color: #faa732;
- background-image: -moz-linear-gradient(top, #fbb450, #f89406);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
- background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
- background-image: -o-linear-gradient(top, #fbb450, #f89406);
- background-image: linear-gradient(to bottom, #fbb450, #f89406);
- background-repeat: repeat-x;
- filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
-}
-
-.progress-warning.progress-striped .bar,
-.progress-striped .bar-warning {
- background-color: #fbb450;
- background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.accordion {
- margin-bottom: 20px;
-}
-
-.accordion-group {
- margin-bottom: 2px;
- border: 1px solid #e5e5e5;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-.accordion-heading {
- border-bottom: 0;
-}
-
-.accordion-heading .accordion-toggle {
- display: block;
- padding: 8px 15px;
-}
-
-.accordion-toggle {
- cursor: pointer;
-}
-
-.accordion-inner {
- padding: 9px 15px;
- border-top: 1px solid #e5e5e5;
-}
-
-.carousel {
- position: relative;
- margin-bottom: 20px;
- line-height: 1;
-}
-
-.carousel-inner {
- position: relative;
- width: 100%;
- overflow: hidden;
-}
-
-.carousel .item {
- position: relative;
- display: none;
- -webkit-transition: 0.6s ease-in-out left;
- -moz-transition: 0.6s ease-in-out left;
- -o-transition: 0.6s ease-in-out left;
- transition: 0.6s ease-in-out left;
-}
-
-.carousel .item > img {
- display: block;
- line-height: 1;
-}
-
-.carousel .active,
-.carousel .next,
-.carousel .prev {
- display: block;
-}
-
-.carousel .active {
- left: 0;
-}
-
-.carousel .next,
-.carousel .prev {
- position: absolute;
- top: 0;
- width: 100%;
-}
-
-.carousel .next {
- left: 100%;
-}
-
-.carousel .prev {
- left: -100%;
-}
-
-.carousel .next.left,
-.carousel .prev.right {
- left: 0;
-}
-
-.carousel .active.left {
- left: -100%;
-}
-
-.carousel .active.right {
- left: 100%;
-}
-
-.carousel-control {
- position: absolute;
- top: 40%;
- left: 15px;
- width: 40px;
- height: 40px;
- margin-top: -20px;
- font-size: 60px;
- font-weight: 100;
- line-height: 30px;
- color: #ffffff;
- text-align: center;
- background: #222222;
- border: 3px solid #ffffff;
- -webkit-border-radius: 23px;
- -moz-border-radius: 23px;
- border-radius: 23px;
- opacity: 0.5;
- filter: alpha(opacity=50);
-}
-
-.carousel-control.right {
- right: 15px;
- left: auto;
-}
-
-.carousel-control:hover {
- color: #ffffff;
- text-decoration: none;
- opacity: 0.9;
- filter: alpha(opacity=90);
-}
-
-.carousel-caption {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- padding: 15px;
- background: #333333;
- background: rgba(0, 0, 0, 0.75);
-}
-
-.carousel-caption h4,
-.carousel-caption p {
- line-height: 20px;
- color: #ffffff;
-}
-
-.carousel-caption h4 {
- margin: 0 0 5px;
-}
-
-.carousel-caption p {
- margin-bottom: 0;
-}
-
-.hero-unit {
- padding: 60px;
- margin-bottom: 30px;
- background-color: #eeeeee;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
-}
-
-.hero-unit h1 {
- margin-bottom: 0;
- font-size: 60px;
- line-height: 1;
- letter-spacing: -1px;
- color: inherit;
-}
-
-.hero-unit p {
- font-size: 18px;
- font-weight: 200;
- line-height: 30px;
- color: inherit;
-}
-
-.pull-right {
- float: right;
-}
-
-.pull-left {
- float: left;
-}
-
-.hide {
- display: none;
-}
-
-.show {
- display: block;
-}
-
-.invisible {
- visibility: hidden;
-}
-
-.affix {
- position: fixed;
-}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css
deleted file mode 100755
index 31d8b960..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}.text-warning{color:#c09853}.text-error{color:#b94a48}.text-info{color:#3a87ad}.text-success{color:#468847}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:1;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1{font-size:36px;line-height:40px}h2{font-size:30px;line-height:40px}h3{font-size:24px;line-height:40px}h4{font-size:18px;line-height:20px}h5{font-size:14px;line-height:20px}h6{font-size:12px;line-height:20px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:9px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal;cursor:pointer}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"]{float:left}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info>label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;font-size:14px;vertical-align:top;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .add-on,.input-append .btn{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topleft:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table [class*=span],.row-fluid table [class*=span]{display:table-cell;float:none;margin-left:0}.table .span1{float:none;width:44px;margin-left:0}.table .span2{float:none;width:124px;margin-left:0}.table .span3{float:none;width:204px;margin-left:0}.table .span4{float:none;width:284px;margin-left:0}.table .span5{float:none;width:364px;margin-left:0}.table .span6{float:none;width:444px;margin-left:0}.table .span7{float:none;width:524px;margin-left:0}.table .span8{float:none;width:604px;margin-left:0}.table .span9{float:none;width:684px;margin-left:0}.table .span10{float:none;width:764px;margin-left:0}.table .span11{float:none;width:844px;margin-left:0}.table .span12{float:none;width:924px;margin-left:0}.table .span13{float:none;width:1004px;margin-left:0}.table .span14{float:none;width:1084px;margin-left:0}.table .span15{float:none;width:1164px;margin-left:0}.table .span16{float:none;width:1244px;margin-left:0}.table .span17{float:none;width:1324px;margin-left:0}.table .span18{float:none;width:1404px;margin-left:0}.table .span19{float:none;width:1484px;margin-left:0}.table .span20{float:none;width:1564px;margin-left:0}.table .span21{float:none;width:1644px;margin-left:0}.table .span22{float:none;width:1724px;margin-left:0}.table .span23{float:none;width:1804px;margin-left:0}.table .span24{float:none;width:1884px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-tabs>.active>a>[class^="icon-"],.nav-tabs>.active>a>[class*=" icon-"],.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:linear-gradient(to bottom,#08c,#0077b3);background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 14px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-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)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:2px}.btn-small{padding:3px 9px;font-size:12px;line-height:18px}.btn-small [class^="icon-"]{margin-top:0}.btn-mini{padding:2px 6px;font-size:11px;line-height:17px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-image:-moz-linear-gradient(top,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-image:-moz-linear-gradient(top,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical .btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible;color:#777}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;width:100%;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse{color:#999}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-image:-moz-linear-gradient(top,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#ccc}.breadcrumb .active{color:#999}.pagination{height:40px;margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:0 14px;line-height:38px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a,.pager span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a,.pager .next span{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover,.pager .disabled span{color:#999;cursor:default;background-color:#fff}.modal-open .modal .dropdown-menu{z-index:2050}.modal-open .modal .dropdown.open{*z-index:2050}.modal-open .modal .popover{z-index:2060}.modal-open .modal .tooltip{z-index:2080}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-bottom:10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-right:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{z-index:-1;content:""}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-top-color:#fff;border-width:10px 10px 0}.popover.top .arrow:after{bottom:-1px;left:-11px;border-top-color:rgba(0,0,0,0.25);border-width:11px 11px 0}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-right-color:#fff;border-width:10px 10px 10px 0}.popover.right .arrow:after{bottom:-11px;left:-1px;border-right-color:rgba(0,0,0,0.25);border-width:11px 11px 11px 0}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-bottom-color:#fff;border-width:0 10px 10px}.popover.bottom .arrow:after{top:-1px;left:-11px;border-bottom-color:rgba(0,0,0,0.25);border-width:0 11px 11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-left-color:#fff;border-width:10px 0 10px 10px}.popover.left .arrow:after{right:-1px;bottom:-11px;border-left-color:rgba(0,0,0,0.25);border-width:11px 0 11px 11px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.label,.badge{font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:30px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/docs.css b/wqflask/wqflask/static/packages/bootstrap-old/css/docs.css
deleted file mode 100755
index 7efd72cd..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/docs.css
+++ /dev/null
@@ -1,1001 +0,0 @@
-/* Add additional stylesheets below
--------------------------------------------------- */
-/*
- Bootstrap's documentation styles
- Special styles for presenting Bootstrap's documentation and examples
-*/
-
-
-
-/* Body and structure
--------------------------------------------------- */
-
-body {
- position: relative;
- padding-top: 40px;
-}
-
-/* Code in headings */
-h3 code {
- font-size: 14px;
- font-weight: normal;
-}
-
-
-
-/* Tweak navbar brand link to be super sleek
--------------------------------------------------- */
-
-body > .navbar {
- font-size: 13px;
-}
-
-/* Change the docs' brand */
-body > .navbar .brand {
- padding-right: 0;
- padding-left: 0;
- margin-left: 20px;
- float: right;
- font-weight: bold;
- color: #000;
- text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.125);
- -webkit-transition: all .2s linear;
- -moz-transition: all .2s linear;
- transition: all .2s linear;
-}
-body > .navbar .brand:hover {
- text-decoration: none;
- text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.4);
-}
-
-
-/* Sections
--------------------------------------------------- */
-
-/* padding for in-page bookmarks and fixed navbar */
-section {
- padding-top: 30px;
-}
-section > .page-header,
-section > .lead {
- color: #5a5a5a;
-}
-section > ul li {
- margin-bottom: 5px;
-}
-
-/* Separators (hr) */
-.bs-docs-separator {
- margin: 40px 0 39px;
-}
-
-/* Faded out hr */
-hr.soften {
- height: 1px;
- margin: 70px 0;
- background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
- background-image: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
- background-image: -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
- background-image: -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
- border: 0;
-}
-
-
-
-/* Jumbotrons
--------------------------------------------------- */
-
-/* Base class
-------------------------- */
-.jumbotron {
- position: relative;
- padding: 40px 0;
- color: #fff;
- text-align: center;
- text-shadow: 0 1px 3px rgba(0,0,0,.4), 0 0 30px rgba(0,0,0,.075);
- background: #020031; /* Old browsers */
- background: -moz-linear-gradient(45deg, #020031 0%, #6d3353 100%); /* FF3.6+ */
- background: -webkit-gradient(linear, left bottom, right top, color-stop(0%,#020031), color-stop(100%,#6d3353)); /* Chrome,Safari4+ */
- background: -webkit-linear-gradient(45deg, #020031 0%,#6d3353 100%); /* Chrome10+,Safari5.1+ */
- background: -o-linear-gradient(45deg, #020031 0%,#6d3353 100%); /* Opera 11.10+ */
- background: -ms-linear-gradient(45deg, #020031 0%,#6d3353 100%); /* IE10+ */
- background: linear-gradient(45deg, #020031 0%,#6d3353 100%); /* W3C */
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#020031', endColorstr='#6d3353',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
- -webkit-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
- -moz-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
- box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
-}
-.jumbotron h1 {
- font-size: 80px;
- font-weight: bold;
- letter-spacing: -1px;
- line-height: 1;
-}
-.jumbotron p {
- font-size: 24px;
- font-weight: 300;
- line-height: 30px;
- margin-bottom: 30px;
-}
-
-/* Link styles (used on .masthead-links as well) */
-.jumbotron a {
- color: #fff;
- color: rgba(255,255,255,.5);
- -webkit-transition: all .2s ease-in-out;
- -moz-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
-}
-.jumbotron a:hover {
- color: #fff;
- text-shadow: 0 0 10px rgba(255,255,255,.25);
-}
-
-/* Download button */
-.masthead .btn {
- padding: 14px 24px;
- font-size: 24px;
- font-weight: 200;
- color: #fff; /* redeclare to override the `.jumbotron a` */
- border: 0;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
- -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
- box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
- -webkit-transition: none;
- -moz-transition: none;
- transition: none;
-}
-.masthead .btn:hover {
- -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
- -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
- box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
-}
-.masthead .btn:active {
- -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1);
- -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1);
- box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1);
-}
-
-
-/* Pattern overlay
-------------------------- */
-.jumbotron .container {
- position: relative;
- z-index: 2;
-}
-.jumbotron:after {
- content: '';
- display: block;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: url(../img/bs-docs-masthead-pattern.png) repeat center center;
- opacity: .4;
-}
-
-/* Masthead (docs home)
-------------------------- */
-.masthead {
- padding: 70px 0 80px;
- margin-bottom: 0;
- color: #fff;
-}
-.masthead h1 {
- font-size: 120px;
- line-height: 1;
- letter-spacing: -2px;
-}
-.masthead p {
- font-size: 40px;
- font-weight: 200;
- line-height: 1.25;
-}
-
-/* Textual links in masthead */
-.masthead-links {
- margin: 0;
- list-style: none;
-}
-.masthead-links li {
- display: inline;
- padding: 0 10px;
- color: rgba(255,255,255,.25);
-}
-
-/* Social proof buttons from GitHub & Twitter */
-.bs-docs-social {
- padding: 15px 0;
- text-align: center;
- background-color: #f5f5f5;
- border-top: 1px solid #fff;
- border-bottom: 1px solid #ddd;
-}
-
-/* Quick links on Home */
-.bs-docs-social-buttons {
- margin-left: 0;
- margin-bottom: 0;
- padding-left: 0;
- list-style: none;
-}
-.bs-docs-social-buttons li {
- display: inline-block;
- padding: 5px 8px;
- line-height: 1;
- *display: inline;
- *zoom: 1;
-}
-
-/* Subhead (other pages)
-------------------------- */
-.subhead {
- text-align: left;
- border-bottom: 1px solid #ddd;
-}
-.subhead h1 {
- font-size: 60px;
-}
-.subhead p {
- margin-bottom: 20px;
-}
-.subhead .navbar {
- display: none;
-}
-
-
-
-/* Marketing section of Overview
--------------------------------------------------- */
-
-.marketing {
- text-align: center;
- color: #5a5a5a;
-}
-.marketing h1 {
- margin: 60px 0 10px;
- font-size: 60px;
- font-weight: 200;
- line-height: 1;
- letter-spacing: -1px;
-}
-.marketing h2 {
- font-weight: 200;
- margin-bottom: 5px;
-}
-.marketing p {
- font-size: 16px;
- line-height: 1.5;
-}
-.marketing .marketing-byline {
- margin-bottom: 40px;
- font-size: 20px;
- font-weight: 300;
- line-height: 25px;
- color: #999;
-}
-.marketing img {
- display: block;
- margin: 0 auto 30px;
-}
-
-
-
-/* Footer
--------------------------------------------------- */
-
-.footer {
- padding: 70px 0;
- margin-top: 70px;
- border-top: 1px solid #e5e5e5;
- background-color: #f5f5f5;
-}
-.footer p {
- margin-bottom: 0;
- color: #777;
-}
-.footer-links {
- margin: 10px 0;
-}
-.footer-links li {
- display: inline;
- margin-right: 10px;
-}
-
-
-
-/* Special grid styles
--------------------------------------------------- */
-
-.show-grid {
- margin-top: 10px;
- margin-bottom: 20px;
-}
-.show-grid [class*="span"] {
- background-color: #eee;
- text-align: center;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- min-height: 40px;
- line-height: 40px;
-}
-.show-grid:hover [class*="span"] {
- background: #ddd;
-}
-.show-grid .show-grid {
- margin-top: 0;
- margin-bottom: 0;
-}
-.show-grid .show-grid [class*="span"] {
- background-color: #ccc;
-}
-
-
-
-/* Mini layout previews
--------------------------------------------------- */
-.mini-layout {
- border: 1px solid #ddd;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.075);
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,.075);
- box-shadow: 0 1px 2px rgba(0,0,0,.075);
-}
-.mini-layout,
-.mini-layout .mini-layout-body,
-.mini-layout.fluid .mini-layout-sidebar {
- height: 300px;
-}
-.mini-layout {
- margin-bottom: 20px;
- padding: 9px;
-}
-.mini-layout div {
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-.mini-layout .mini-layout-body {
- background-color: #dceaf4;
- margin: 0 auto;
- width: 70%;
-}
-.mini-layout.fluid .mini-layout-sidebar,
-.mini-layout.fluid .mini-layout-header,
-.mini-layout.fluid .mini-layout-body {
- float: left;
-}
-.mini-layout.fluid .mini-layout-sidebar {
- background-color: #bbd8e9;
- width: 20%;
-}
-.mini-layout.fluid .mini-layout-body {
- width: 77.5%;
- margin-left: 2.5%;
-}
-
-
-
-/* Download page
--------------------------------------------------- */
-
-.download .page-header {
- margin-top: 36px;
-}
-.page-header .toggle-all {
- margin-top: 5px;
-}
-
-/* Space out h3s when following a section */
-.download h3 {
- margin-bottom: 5px;
-}
-.download-builder input + h3,
-.download-builder .checkbox + h3 {
- margin-top: 9px;
-}
-
-/* Fields for variables */
-.download-builder input[type=text] {
- margin-bottom: 9px;
- font-family: Menlo, Monaco, "Courier New", monospace;
- font-size: 12px;
- color: #d14;
-}
-.download-builder input[type=text]:focus {
- background-color: #fff;
-}
-
-/* Custom, larger checkbox labels */
-.download .checkbox {
- padding: 6px 10px 6px 25px;
- font-size: 13px;
- line-height: 18px;
- color: #555;
- background-color: #f9f9f9;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- cursor: pointer;
-}
-.download .checkbox:hover {
- color: #333;
- background-color: #f5f5f5;
-}
-.download .checkbox small {
- font-size: 12px;
- color: #777;
-}
-
-/* Variables section */
-#variables label {
- margin-bottom: 0;
-}
-
-/* Giant download button */
-.download-btn {
- margin: 36px 0 108px;
-}
-#download p,
-#download h4 {
- max-width: 50%;
- margin: 0 auto;
- color: #999;
- text-align: center;
-}
-#download h4 {
- margin-bottom: 0;
-}
-#download p {
- margin-bottom: 18px;
-}
-.download-btn .btn {
- display: block;
- width: auto;
- padding: 19px 24px;
- margin-bottom: 27px;
- font-size: 30px;
- line-height: 1;
- text-align: center;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
-}
-
-
-
-/* Misc
--------------------------------------------------- */
-
-/* Make tables spaced out a bit more */
-h2 + table,
-h3 + table,
-h4 + table,
-h2 + .row {
- margin-top: 5px;
-}
-
-/* Example sites showcase */
-.example-sites {
- xmargin-left: 20px;
-}
-.example-sites img {
- max-width: 100%;
- margin: 0 auto;
-}
-
-.scrollspy-example {
- height: 200px;
- overflow: auto;
- position: relative;
-}
-
-
-/* Fake the :focus state to demo it */
-.focused {
- border-color: rgba(82,168,236,.8);
- -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
- -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
- box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
- outline: 0;
-}
-
-/* For input sizes, make them display block */
-.docs-input-sizes select,
-.docs-input-sizes input[type=text] {
- display: block;
- margin-bottom: 9px;
-}
-
-/* Icons
-------------------------- */
-.the-icons {
- margin-left: 0;
- list-style: none;
-}
-.the-icons li {
- float: left;
- width: 25%;
- line-height: 25px;
-}
-.the-icons i:hover {
- background-color: rgba(255,0,0,.25);
-}
-
-/* Example page
-------------------------- */
-.bootstrap-examples p {
- font-size: 13px;
- line-height: 18px;
-}
-.bootstrap-examples .thumbnail {
- margin-bottom: 9px;
- background-color: #fff;
-}
-
-
-
-/* Bootstrap code examples
--------------------------------------------------- */
-
-/* Base class */
-.bs-docs-example {
- position: relative;
- margin: 15px 0;
- padding: 39px 19px 14px;
- *padding-top: 19px;
- background-color: #fff;
- border: 1px solid #ddd;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-
-/* Echo out a label for the example */
-.bs-docs-example:after {
- content: "Results";
- position: absolute;
- top: -1px;
- left: -1px;
- padding: 3px 7px;
- font-size: 12px;
- font-weight: bold;
- background-color: #f5f5f5;
- border: 1px solid #ddd;
- color: #9da0a4;
- -webkit-border-radius: 4px 0 4px 0;
- -moz-border-radius: 4px 0 4px 0;
- border-radius: 4px 0 4px 0;
-}
-
-/* Remove spacing between an example and it's code */
-.bs-docs-example + .prettyprint {
- margin-top: -20px;
- padding-top: 15px;
-}
-
-/* Tweak examples
-------------------------- */
-.bs-docs-example > p:last-child {
- margin-bottom: 0;
-}
-.bs-docs-example .table,
-.bs-docs-example .progress,
-.bs-docs-example .well,
-.bs-docs-example .alert,
-.bs-docs-example .hero-unit,
-.bs-docs-example .pagination,
-.bs-docs-example .navbar,
-.bs-docs-example > .nav,
-.bs-docs-example blockquote {
- margin-bottom: 5px;
-}
-.bs-docs-example .pagination {
- margin-top: 0;
-}
-.bs-navbar-top-example,
-.bs-navbar-bottom-example {
- z-index: 1;
- padding: 0;
- height: 90px;
- overflow: hidden; /* cut the drop shadows off */
-}
-.bs-navbar-top-example .navbar-fixed-top,
-.bs-navbar-bottom-example .navbar-fixed-bottom {
- margin-left: 0;
- margin-right: 0;
-}
-.bs-navbar-top-example {
- -webkit-border-radius: 0 0 4px 4px;
- -moz-border-radius: 0 0 4px 4px;
- border-radius: 0 0 4px 4px;
-}
-.bs-navbar-top-example:after {
- top: auto;
- bottom: -1px;
- -webkit-border-radius: 0 4px 0 4px;
- -moz-border-radius: 0 4px 0 4px;
- border-radius: 0 4px 0 4px;
-}
-.bs-navbar-bottom-example {
- -webkit-border-radius: 4px 4px 0 0;
- -moz-border-radius: 4px 4px 0 0;
- border-radius: 4px 4px 0 0;
-}
-.bs-navbar-bottom-example .navbar {
- margin-bottom: 0;
-}
-form.bs-docs-example {
- padding-bottom: 19px;
-}
-
-/* Images */
-.bs-docs-example-images img {
- margin: 10px;
- display: inline-block;
-}
-
-/* Tooltips */
-.bs-docs-tooltip-examples {
- text-align: center;
- margin: 0 0 10px;
- list-style: none;
-}
-.bs-docs-tooltip-examples li {
- display: inline;
- padding: 0 10px;
-}
-
-/* Popovers */
-.bs-docs-example-popover {
- padding-bottom: 24px;
- background-color: #f9f9f9;
-}
-.bs-docs-example-popover .popover {
- position: relative;
- display: block;
- float: left;
- width: 260px;
- margin: 20px;
-}
-
-
-
-/* Responsive docs
--------------------------------------------------- */
-
-/* Utility classes table
-------------------------- */
-.responsive-utilities th small {
- display: block;
- font-weight: normal;
- color: #999;
-}
-.responsive-utilities tbody th {
- font-weight: normal;
-}
-.responsive-utilities td {
- text-align: center;
-}
-.responsive-utilities td.is-visible {
- color: #468847;
- background-color: #dff0d8 !important;
-}
-.responsive-utilities td.is-hidden {
- color: #ccc;
- background-color: #f9f9f9 !important;
-}
-
-/* Responsive tests
-------------------------- */
-.responsive-utilities-test {
- margin-top: 5px;
- margin-left: 0;
- list-style: none;
- overflow: hidden; /* clear floats */
-}
-.responsive-utilities-test li {
- position: relative;
- float: left;
- width: 25%;
- height: 43px;
- font-size: 14px;
- font-weight: bold;
- line-height: 43px;
- color: #999;
- text-align: center;
- border: 1px solid #ddd;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-.responsive-utilities-test li + li {
- margin-left: 10px;
-}
-.responsive-utilities-test span {
- position: absolute;
- top: -1px;
- left: -1px;
- right: -1px;
- bottom: -1px;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
-}
-.responsive-utilities-test span {
- color: #468847;
- background-color: #dff0d8;
- border: 1px solid #d6e9c6;
-}
-
-
-
-/* Sidenav for Docs
--------------------------------------------------- */
-
-.bs-docs-sidenav {
- width: 228px;
- margin: 30px 0 0;
- padding: 0;
- background-color: #fff;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.065);
- -moz-box-shadow: 0 1px 4px rgba(0,0,0,.065);
- box-shadow: 0 1px 4px rgba(0,0,0,.065);
-}
-.bs-docs-sidenav > li > a {
- display: block;
- *width: 190px;
- margin: 0 0 -1px;
- padding: 8px 14px;
- border: 1px solid #e5e5e5;
-}
-.bs-docs-sidenav > li:first-child > a {
- -webkit-border-radius: 6px 6px 0 0;
- -moz-border-radius: 6px 6px 0 0;
- border-radius: 6px 6px 0 0;
-}
-.bs-docs-sidenav > li:last-child > a {
- -webkit-border-radius: 0 0 6px 6px;
- -moz-border-radius: 0 0 6px 6px;
- border-radius: 0 0 6px 6px;
-}
-.bs-docs-sidenav > .active > a {
- position: relative;
- z-index: 2;
- padding: 9px 15px;
- border: 0;
- text-shadow: 0 1px 0 rgba(0,0,0,.15);
- -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
- -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
- box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
-}
-/* Chevrons */
-.bs-docs-sidenav .icon-chevron-right {
- float: right;
- margin-top: 2px;
- margin-right: -6px;
- opacity: .25;
-}
-.bs-docs-sidenav > li > a:hover {
- background-color: #f5f5f5;
-}
-.bs-docs-sidenav a:hover .icon-chevron-right {
- opacity: .5;
-}
-.bs-docs-sidenav .active .icon-chevron-right,
-.bs-docs-sidenav .active a:hover .icon-chevron-right {
- background-image: url(../img/glyphicons-halflings-white.png);
- opacity: 1;
-}
-.bs-docs-sidenav.affix {
- top: 40px;
-}
-.bs-docs-sidenav.affix-bottom {
- position: absolute;
- top: auto;
- bottom: 270px;
-}
-
-
-
-
-/* Responsive
--------------------------------------------------- */
-
-/* Desktop large
-------------------------- */
-@media (min-width: 1200px) {
- .bs-docs-container {
- max-width: 970px;
- }
- .bs-docs-sidenav {
- width: 258px;
- }
-}
-
-/* Desktop
-------------------------- */
-@media (max-width: 980px) {
- /* Unfloat brand */
- body > .navbar-fixed-top .brand {
- float: left;
- margin-left: 0;
- padding-left: 10px;
- padding-right: 10px;
- }
-
- /* Inline-block quick links for more spacing */
- .quick-links li {
- display: inline-block;
- margin: 5px;
- }
-
- /* When affixed, space properly */
- .bs-docs-sidenav {
- top: 0;
- margin-top: 30px;
- margin-right: 0;
- }
-}
-
-/* Tablet to desktop
-------------------------- */
-@media (min-width: 768px) and (max-width: 980px) {
- /* Remove any padding from the body */
- body {
- padding-top: 0;
- }
- /* Widen masthead and social buttons to fill body padding */
- .jumbotron {
- margin-top: -20px; /* Offset bottom margin on .navbar */
- }
- /* Adjust sidenav width */
- .bs-docs-sidenav {
- width: 166px;
- margin-top: 20px;
- }
- .bs-docs-sidenav.affix {
- top: 0;
- }
-}
-
-/* Tablet
-------------------------- */
-@media (max-width: 767px) {
- /* Remove any padding from the body */
- body {
- padding-top: 0;
- }
-
- /* Widen masthead and social buttons to fill body padding */
- .jumbotron {
- padding: 40px 20px;
- margin-top: -20px; /* Offset bottom margin on .navbar */
- margin-right: -20px;
- margin-left: -20px;
- }
- .masthead h1 {
- font-size: 90px;
- }
- .masthead p,
- .masthead .btn {
- font-size: 24px;
- }
- .marketing .span4 {
- margin-bottom: 40px;
- }
- .bs-docs-social {
- margin: 0 -20px;
- }
-
- /* Space out the show-grid examples */
- .show-grid [class*="span"] {
- margin-bottom: 5px;
- }
-
- /* Sidenav */
- .bs-docs-sidenav {
- width: auto;
- margin-bottom: 20px;
- }
- .bs-docs-sidenav.affix {
- position: static;
- width: auto;
- top: 0;
- }
-
- /* Unfloat the back to top link in footer */
- .footer {
- margin-left: -20px;
- margin-right: -20px;
- padding-left: 20px;
- padding-right: 20px;
- }
- .footer p {
- margin-bottom: 9px;
- }
-}
-
-/* Landscape phones
-------------------------- */
-@media (max-width: 480px) {
- /* Remove padding above jumbotron */
- body {
- padding-top: 0;
- }
-
- /* Change up some type stuff */
- h2 small {
- display: block;
- }
-
- /* Downsize the jumbotrons */
- .jumbotron h1 {
- font-size: 60px;
- }
- .jumbotron p,
- .jumbotron .btn {
- font-size: 20px;
- }
- .jumbotron .btn {
- display: block;
- margin: 0 auto;
- }
-
- /* center align subhead text like the masthead */
- .subhead h1,
- .subhead p {
- text-align: center;
- }
-
- /* Marketing on home */
- .marketing h1 {
- font-size: 40px;
- }
-
- /* center example sites */
- .example-sites {
- margin-left: 0;
- }
- .example-sites > li {
- float: none;
- display: block;
- max-width: 280px;
- margin: 0 auto 18px;
- text-align: center;
- }
- .example-sites .thumbnail > img {
- max-width: 270px;
- }
-
- /* Do our best to make tables work in narrow viewports */
- table code {
- white-space: normal;
- word-wrap: break-word;
- word-break: break-all;
- }
-
- /* Modal example */
- .modal-example .modal {
- position: relative;
- top: auto;
- right: auto;
- bottom: auto;
- left: auto;
- }
-
- /* Unfloat the back to top in footer to prevent odd text wrapping */
- .footer .pull-right {
- float: none;
- }
-}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.png b/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.png
deleted file mode 100755
index 3bf6484a..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.png b/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.png
deleted file mode 100755
index a9969993..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js b/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js
deleted file mode 100755
index f73fcb8e..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js
+++ /dev/null
@@ -1,2027 +0,0 @@
-/* ===================================================
- * bootstrap-transition.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#transitions
- * ===================================================
- * Copyright 2012 Twitter, 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.
- * ========================================================== */
-
-
-!function ($) {
-
- $(function () {
-
- "use strict"; // jshint ;_;
-
-
- /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
- * ======================================================= */
-
- $.support.transition = (function () {
-
- var transitionEnd = (function () {
-
- var el = document.createElement('bootstrap')
- , transEndEventNames = {
- 'WebkitTransition' : 'webkitTransitionEnd'
- , 'MozTransition' : 'transitionend'
- , 'OTransition' : 'oTransitionEnd otransitionend'
- , 'transition' : 'transitionend'
- }
- , name
-
- for (name in transEndEventNames){
- if (el.style[name] !== undefined) {
- return transEndEventNames[name]
- }
- }
-
- }())
-
- return transitionEnd && {
- end: transitionEnd
- }
-
- })()
-
- })
-
-}(window.jQuery);/* ==========================================================
- * bootstrap-alert.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#alerts
- * ==========================================================
- * Copyright 2012 Twitter, 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.
- * ========================================================== */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* ALERT CLASS DEFINITION
- * ====================== */
-
- var dismiss = '[data-dismiss="alert"]'
- , Alert = function (el) {
- $(el).on('click', dismiss, this.close)
- }
-
- Alert.prototype.close = function (e) {
- var $this = $(this)
- , selector = $this.attr('data-target')
- , $parent
-
- if (!selector) {
- selector = $this.attr('href')
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
- }
-
- $parent = $(selector)
-
- e && e.preventDefault()
-
- $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
-
- $parent.trigger(e = $.Event('close'))
-
- if (e.isDefaultPrevented()) return
-
- $parent.removeClass('in')
-
- function removeElement() {
- $parent
- .trigger('closed')
- .remove()
- }
-
- $.support.transition && $parent.hasClass('fade') ?
- $parent.on($.support.transition.end, removeElement) :
- removeElement()
- }
-
-
- /* ALERT PLUGIN DEFINITION
- * ======================= */
-
- $.fn.alert = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('alert')
- if (!data) $this.data('alert', (data = new Alert(this)))
- if (typeof option == 'string') data[option].call($this)
- })
- }
-
- $.fn.alert.Constructor = Alert
-
-
- /* ALERT DATA-API
- * ============== */
-
- $(function () {
- $('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
- })
-
-}(window.jQuery);/* ============================================================
- * bootstrap-button.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#buttons
- * ============================================================
- * Copyright 2012 Twitter, 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.
- * ============================================================ */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* BUTTON PUBLIC CLASS DEFINITION
- * ============================== */
-
- var Button = function (element, options) {
- this.$element = $(element)
- this.options = $.extend({}, $.fn.button.defaults, options)
- }
-
- Button.prototype.setState = function (state) {
- var d = 'disabled'
- , $el = this.$element
- , data = $el.data()
- , val = $el.is('input') ? 'val' : 'html'
-
- state = state + 'Text'
- data.resetText || $el.data('resetText', $el[val]())
-
- $el[val](data[state] || this.options[state])
-
- // push to event loop to allow forms to submit
- setTimeout(function () {
- state == 'loadingText' ?
- $el.addClass(d).attr(d, d) :
- $el.removeClass(d).removeAttr(d)
- }, 0)
- }
-
- Button.prototype.toggle = function () {
- var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
-
- $parent && $parent
- .find('.active')
- .removeClass('active')
-
- this.$element.toggleClass('active')
- }
-
-
- /* BUTTON PLUGIN DEFINITION
- * ======================== */
-
- $.fn.button = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('button')
- , options = typeof option == 'object' && option
- if (!data) $this.data('button', (data = new Button(this, options)))
- if (option == 'toggle') data.toggle()
- else if (option) data.setState(option)
- })
- }
-
- $.fn.button.defaults = {
- loadingText: 'loading...'
- }
-
- $.fn.button.Constructor = Button
-
-
- /* BUTTON DATA-API
- * =============== */
-
- $(function () {
- $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
- var $btn = $(e.target)
- if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
- $btn.button('toggle')
- })
- })
-
-}(window.jQuery);/* ==========================================================
- * bootstrap-carousel.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#carousel
- * ==========================================================
- * Copyright 2012 Twitter, 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.
- * ========================================================== */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* CAROUSEL CLASS DEFINITION
- * ========================= */
-
- var Carousel = function (element, options) {
- this.$element = $(element)
- this.options = options
- this.options.slide && this.slide(this.options.slide)
- this.options.pause == 'hover' && this.$element
- .on('mouseenter', $.proxy(this.pause, this))
- .on('mouseleave', $.proxy(this.cycle, this))
- }
-
- Carousel.prototype = {
-
- cycle: function (e) {
- if (!e) this.paused = false
- this.options.interval
- && !this.paused
- && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
- return this
- }
-
- , to: function (pos) {
- var $active = this.$element.find('.item.active')
- , children = $active.parent().children()
- , activePos = children.index($active)
- , that = this
-
- if (pos > (children.length - 1) || pos < 0) return
-
- if (this.sliding) {
- return this.$element.one('slid', function () {
- that.to(pos)
- })
- }
-
- if (activePos == pos) {
- return this.pause().cycle()
- }
-
- return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
- }
-
- , pause: function (e) {
- if (!e) this.paused = true
- if (this.$element.find('.next, .prev').length && $.support.transition.end) {
- this.$element.trigger($.support.transition.end)
- this.cycle()
- }
- clearInterval(this.interval)
- this.interval = null
- return this
- }
-
- , next: function () {
- if (this.sliding) return
- return this.slide('next')
- }
-
- , prev: function () {
- if (this.sliding) return
- return this.slide('prev')
- }
-
- , slide: function (type, next) {
- var $active = this.$element.find('.item.active')
- , $next = next || $active[type]()
- , isCycling = this.interval
- , direction = type == 'next' ? 'left' : 'right'
- , fallback = type == 'next' ? 'first' : 'last'
- , that = this
- , e = $.Event('slide', {
- relatedTarget: $next[0]
- })
-
- this.sliding = true
-
- isCycling && this.pause()
-
- $next = $next.length ? $next : this.$element.find('.item')[fallback]()
-
- if ($next.hasClass('active')) return
-
- if ($.support.transition && this.$element.hasClass('slide')) {
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
- $next.addClass(type)
- $next[0].offsetWidth // force reflow
- $active.addClass(direction)
- $next.addClass(direction)
- this.$element.one($.support.transition.end, function () {
- $next.removeClass([type, direction].join(' ')).addClass('active')
- $active.removeClass(['active', direction].join(' '))
- that.sliding = false
- setTimeout(function () { that.$element.trigger('slid') }, 0)
- })
- } else {
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
- $active.removeClass('active')
- $next.addClass('active')
- this.sliding = false
- this.$element.trigger('slid')
- }
-
- isCycling && this.cycle()
-
- return this
- }
-
- }
-
-
- /* CAROUSEL PLUGIN DEFINITION
- * ========================== */
-
- $.fn.carousel = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('carousel')
- , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
- , action = typeof option == 'string' ? option : options.slide
- if (!data) $this.data('carousel', (data = new Carousel(this, options)))
- if (typeof option == 'number') data.to(option)
- else if (action) data[action]()
- else if (options.interval) data.cycle()
- })
- }
-
- $.fn.carousel.defaults = {
- interval: 5000
- , pause: 'hover'
- }
-
- $.fn.carousel.Constructor = Carousel
-
-
- /* CAROUSEL DATA-API
- * ================= */
-
- $(function () {
- $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
- var $this = $(this), href
- , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
- , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
- $target.carousel(options)
- e.preventDefault()
- })
- })
-
-}(window.jQuery);/* =============================================================
- * bootstrap-collapse.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#collapse
- * =============================================================
- * Copyright 2012 Twitter, 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.
- * ============================================================ */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* COLLAPSE PUBLIC CLASS DEFINITION
- * ================================ */
-
- var Collapse = function (element, options) {
- this.$element = $(element)
- this.options = $.extend({}, $.fn.collapse.defaults, options)
-
- if (this.options.parent) {
- this.$parent = $(this.options.parent)
- }
-
- this.options.toggle && this.toggle()
- }
-
- Collapse.prototype = {
-
- constructor: Collapse
-
- , dimension: function () {
- var hasWidth = this.$element.hasClass('width')
- return hasWidth ? 'width' : 'height'
- }
-
- , show: function () {
- var dimension
- , scroll
- , actives
- , hasData
-
- if (this.transitioning) return
-
- dimension = this.dimension()
- scroll = $.camelCase(['scroll', dimension].join('-'))
- actives = this.$parent && this.$parent.find('> .accordion-group > .in')
-
- if (actives && actives.length) {
- hasData = actives.data('collapse')
- if (hasData && hasData.transitioning) return
- actives.collapse('hide')
- hasData || actives.data('collapse', null)
- }
-
- this.$element[dimension](0)
- this.transition('addClass', $.Event('show'), 'shown')
- $.support.transition && this.$element[dimension](this.$element[0][scroll])
- }
-
- , hide: function () {
- var dimension
- if (this.transitioning) return
- dimension = this.dimension()
- this.reset(this.$element[dimension]())
- this.transition('removeClass', $.Event('hide'), 'hidden')
- this.$element[dimension](0)
- }
-
- , reset: function (size) {
- var dimension = this.dimension()
-
- this.$element
- .removeClass('collapse')
- [dimension](size || 'auto')
- [0].offsetWidth
-
- this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
-
- return this
- }
-
- , transition: function (method, startEvent, completeEvent) {
- var that = this
- , complete = function () {
- if (startEvent.type == 'show') that.reset()
- that.transitioning = 0
- that.$element.trigger(completeEvent)
- }
-
- this.$element.trigger(startEvent)
-
- if (startEvent.isDefaultPrevented()) return
-
- this.transitioning = 1
-
- this.$element[method]('in')
-
- $.support.transition && this.$element.hasClass('collapse') ?
- this.$element.one($.support.transition.end, complete) :
- complete()
- }
-
- , toggle: function () {
- this[this.$element.hasClass('in') ? 'hide' : 'show']()
- }
-
- }
-
-
- /* COLLAPSIBLE PLUGIN DEFINITION
- * ============================== */
-
- $.fn.collapse = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('collapse')
- , options = typeof option == 'object' && option
- if (!data) $this.data('collapse', (data = new Collapse(this, options)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.collapse.defaults = {
- toggle: true
- }
-
- $.fn.collapse.Constructor = Collapse
-
-
- /* COLLAPSIBLE DATA-API
- * ==================== */
-
- $(function () {
- $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
- var $this = $(this), href
- , target = $this.attr('data-target')
- || e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
- , option = $(target).data('collapse') ? 'toggle' : $this.data()
- $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
- $(target).collapse(option)
- })
- })
-
-}(window.jQuery);/* ============================================================
- * bootstrap-dropdown.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#dropdowns
- * ============================================================
- * Copyright 2012 Twitter, 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.
- * ============================================================ */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* DROPDOWN CLASS DEFINITION
- * ========================= */
-
- var toggle = '[data-toggle=dropdown]'
- , Dropdown = function (element) {
- var $el = $(element).on('click.dropdown.data-api', this.toggle)
- $('html').on('click.dropdown.data-api', function () {
- $el.parent().removeClass('open')
- })
- }
-
- Dropdown.prototype = {
-
- constructor: Dropdown
-
- , toggle: function (e) {
- var $this = $(this)
- , $parent
- , isActive
-
- if ($this.is('.disabled, :disabled')) return
-
- $parent = getParent($this)
-
- isActive = $parent.hasClass('open')
-
- clearMenus()
-
- if (!isActive) {
- $parent.toggleClass('open')
- $this.focus()
- }
-
- return false
- }
-
- , keydown: function (e) {
- var $this
- , $items
- , $active
- , $parent
- , isActive
- , index
-
- if (!/(38|40|27)/.test(e.keyCode)) return
-
- $this = $(this)
-
- e.preventDefault()
- e.stopPropagation()
-
- if ($this.is('.disabled, :disabled')) return
-
- $parent = getParent($this)
-
- isActive = $parent.hasClass('open')
-
- if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
-
- $items = $('[role=menu] li:not(.divider) a', $parent)
-
- if (!$items.length) return
-
- index = $items.index($items.filter(':focus'))
-
- if (e.keyCode == 38 && index > 0) index-- // up
- if (e.keyCode == 40 && index < $items.length - 1) index++ // down
- if (!~index) index = 0
-
- $items
- .eq(index)
- .focus()
- }
-
- }
-
- function clearMenus() {
- getParent($(toggle))
- .removeClass('open')
- }
-
- function getParent($this) {
- var selector = $this.attr('data-target')
- , $parent
-
- if (!selector) {
- selector = $this.attr('href')
- selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
- }
-
- $parent = $(selector)
- $parent.length || ($parent = $this.parent())
-
- return $parent
- }
-
-
- /* DROPDOWN PLUGIN DEFINITION
- * ========================== */
-
- $.fn.dropdown = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('dropdown')
- if (!data) $this.data('dropdown', (data = new Dropdown(this)))
- if (typeof option == 'string') data[option].call($this)
- })
- }
-
- $.fn.dropdown.Constructor = Dropdown
-
-
- /* APPLY TO STANDARD DROPDOWN ELEMENTS
- * =================================== */
-
- $(function () {
- $('html')
- .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
- $('body')
- .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
- .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
- .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
- })
-
-}(window.jQuery);/* =========================================================
- * bootstrap-modal.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#modals
- * =========================================================
- * Copyright 2012 Twitter, 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.
- * ========================================================= */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* MODAL CLASS DEFINITION
- * ====================== */
-
- var Modal = function (element, options) {
- this.options = options
- this.$element = $(element)
- .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
- this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
- }
-
- Modal.prototype = {
-
- constructor: Modal
-
- , toggle: function () {
- return this[!this.isShown ? 'show' : 'hide']()
- }
-
- , show: function () {
- var that = this
- , e = $.Event('show')
-
- this.$element.trigger(e)
-
- if (this.isShown || e.isDefaultPrevented()) return
-
- $('body').addClass('modal-open')
-
- this.isShown = true
-
- this.escape()
-
- this.backdrop(function () {
- var transition = $.support.transition && that.$element.hasClass('fade')
-
- if (!that.$element.parent().length) {
- that.$element.appendTo(document.body) //don't move modals dom position
- }
-
- that.$element
- .show()
-
- if (transition) {
- that.$element[0].offsetWidth // force reflow
- }
-
- that.$element
- .addClass('in')
- .attr('aria-hidden', false)
- .focus()
-
- that.enforceFocus()
-
- transition ?
- that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
- that.$element.trigger('shown')
-
- })
- }
-
- , hide: function (e) {
- e && e.preventDefault()
-
- var that = this
-
- e = $.Event('hide')
-
- this.$element.trigger(e)
-
- if (!this.isShown || e.isDefaultPrevented()) return
-
- this.isShown = false
-
- $('body').removeClass('modal-open')
-
- this.escape()
-
- $(document).off('focusin.modal')
-
- this.$element
- .removeClass('in')
- .attr('aria-hidden', true)
-
- $.support.transition && this.$element.hasClass('fade') ?
- this.hideWithTransition() :
- this.hideModal()
- }
-
- , enforceFocus: function () {
- var that = this
- $(document).on('focusin.modal', function (e) {
- if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
- that.$element.focus()
- }
- })
- }
-
- , escape: function () {
- var that = this
- if (this.isShown && this.options.keyboard) {
- this.$element.on('keyup.dismiss.modal', function ( e ) {
- e.which == 27 && that.hide()
- })
- } else if (!this.isShown) {
- this.$element.off('keyup.dismiss.modal')
- }
- }
-
- , hideWithTransition: function () {
- var that = this
- , timeout = setTimeout(function () {
- that.$element.off($.support.transition.end)
- that.hideModal()
- }, 500)
-
- this.$element.one($.support.transition.end, function () {
- clearTimeout(timeout)
- that.hideModal()
- })
- }
-
- , hideModal: function (that) {
- this.$element
- .hide()
- .trigger('hidden')
-
- this.backdrop()
- }
-
- , removeBackdrop: function () {
- this.$backdrop.remove()
- this.$backdrop = null
- }
-
- , backdrop: function (callback) {
- var that = this
- , animate = this.$element.hasClass('fade') ? 'fade' : ''
-
- if (this.isShown && this.options.backdrop) {
- var doAnimate = $.support.transition && animate
-
- this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .appendTo(document.body)
-
- if (this.options.backdrop != 'static') {
- this.$backdrop.click($.proxy(this.hide, this))
- }
-
- if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
-
- this.$backdrop.addClass('in')
-
- doAnimate ?
- this.$backdrop.one($.support.transition.end, callback) :
- callback()
-
- } else if (!this.isShown && this.$backdrop) {
- this.$backdrop.removeClass('in')
-
- $.support.transition && this.$element.hasClass('fade')?
- this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
- this.removeBackdrop()
-
- } else if (callback) {
- callback()
- }
- }
- }
-
-
- /* MODAL PLUGIN DEFINITION
- * ======================= */
-
- $.fn.modal = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('modal')
- , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
- if (!data) $this.data('modal', (data = new Modal(this, options)))
- if (typeof option == 'string') data[option]()
- else if (options.show) data.show()
- })
- }
-
- $.fn.modal.defaults = {
- backdrop: true
- , keyboard: true
- , show: true
- }
-
- $.fn.modal.Constructor = Modal
-
-
- /* MODAL DATA-API
- * ============== */
-
- $(function () {
- $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
- var $this = $(this)
- , href = $this.attr('href')
- , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
- , option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
-
- e.preventDefault()
-
- $target
- .modal(option)
- .one('hide', function () {
- $this.focus()
- })
- })
- })
-
-}(window.jQuery);/* ===========================================================
- * bootstrap-tooltip.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#tooltips
- * Inspired by the original jQuery.tipsy by Jason Frame
- * ===========================================================
- * Copyright 2012 Twitter, 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.
- * ========================================================== */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* TOOLTIP PUBLIC CLASS DEFINITION
- * =============================== */
-
- var Tooltip = function (element, options) {
- this.init('tooltip', element, options)
- }
-
- Tooltip.prototype = {
-
- constructor: Tooltip
-
- , init: function (type, element, options) {
- var eventIn
- , eventOut
-
- this.type = type
- this.$element = $(element)
- this.options = this.getOptions(options)
- this.enabled = true
-
- if (this.options.trigger == 'click') {
- this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
- } else if (this.options.trigger != 'manual') {
- eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
- eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
- this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
- }
-
- this.options.selector ?
- (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
- this.fixTitle()
- }
-
- , getOptions: function (options) {
- options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
-
- if (options.delay && typeof options.delay == 'number') {
- options.delay = {
- show: options.delay
- , hide: options.delay
- }
- }
-
- return options
- }
-
- , enter: function (e) {
- var self = $(e.currentTarget)[this.type](this._options).data(this.type)
-
- if (!self.options.delay || !self.options.delay.show) return self.show()
-
- clearTimeout(this.timeout)
- self.hoverState = 'in'
- this.timeout = setTimeout(function() {
- if (self.hoverState == 'in') self.show()
- }, self.options.delay.show)
- }
-
- , leave: function (e) {
- var self = $(e.currentTarget)[this.type](this._options).data(this.type)
-
- if (this.timeout) clearTimeout(this.timeout)
- if (!self.options.delay || !self.options.delay.hide) return self.hide()
-
- self.hoverState = 'out'
- this.timeout = setTimeout(function() {
- if (self.hoverState == 'out') self.hide()
- }, self.options.delay.hide)
- }
-
- , show: function () {
- var $tip
- , inside
- , pos
- , actualWidth
- , actualHeight
- , placement
- , tp
-
- if (this.hasContent() && this.enabled) {
- $tip = this.tip()
- this.setContent()
-
- if (this.options.animation) {
- $tip.addClass('fade')
- }
-
- placement = typeof this.options.placement == 'function' ?
- this.options.placement.call(this, $tip[0], this.$element[0]) :
- this.options.placement
-
- inside = /in/.test(placement)
-
- $tip
- .remove()
- .css({ top: 0, left: 0, display: 'block' })
- .appendTo(inside ? this.$element : document.body)
-
- pos = this.getPosition(inside)
-
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
-
- switch (inside ? placement.split(' ')[1] : placement) {
- case 'bottom':
- tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
- break
- case 'top':
- tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
- break
- case 'left':
- tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
- break
- case 'right':
- tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
- break
- }
-
- $tip
- .css(tp)
- .addClass(placement)
- .addClass('in')
- }
- }
-
- , setContent: function () {
- var $tip = this.tip()
- , title = this.getTitle()
-
- $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
- $tip.removeClass('fade in top bottom left right')
- }
-
- , hide: function () {
- var that = this
- , $tip = this.tip()
-
- $tip.removeClass('in')
-
- function removeWithAnimation() {
- var timeout = setTimeout(function () {
- $tip.off($.support.transition.end).remove()
- }, 500)
-
- $tip.one($.support.transition.end, function () {
- clearTimeout(timeout)
- $tip.remove()
- })
- }
-
- $.support.transition && this.$tip.hasClass('fade') ?
- removeWithAnimation() :
- $tip.remove()
-
- return this
- }
-
- , fixTitle: function () {
- var $e = this.$element
- if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
- $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
- }
- }
-
- , hasContent: function () {
- return this.getTitle()
- }
-
- , getPosition: function (inside) {
- return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
- width: this.$element[0].offsetWidth
- , height: this.$element[0].offsetHeight
- })
- }
-
- , getTitle: function () {
- var title
- , $e = this.$element
- , o = this.options
-
- title = $e.attr('data-original-title')
- || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
-
- return title
- }
-
- , tip: function () {
- return this.$tip = this.$tip || $(this.options.template)
- }
-
- , validate: function () {
- if (!this.$element[0].parentNode) {
- this.hide()
- this.$element = null
- this.options = null
- }
- }
-
- , enable: function () {
- this.enabled = true
- }
-
- , disable: function () {
- this.enabled = false
- }
-
- , toggleEnabled: function () {
- this.enabled = !this.enabled
- }
-
- , toggle: function () {
- this[this.tip().hasClass('in') ? 'hide' : 'show']()
- }
-
- , destroy: function () {
- this.hide().$element.off('.' + this.type).removeData(this.type)
- }
-
- }
-
-
- /* TOOLTIP PLUGIN DEFINITION
- * ========================= */
-
- $.fn.tooltip = function ( option ) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('tooltip')
- , options = typeof option == 'object' && option
- if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.tooltip.Constructor = Tooltip
-
- $.fn.tooltip.defaults = {
- animation: true
- , placement: 'top'
- , selector: false
- , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
- , trigger: 'hover'
- , title: ''
- , delay: 0
- , html: true
- }
-
-}(window.jQuery);
-/* ===========================================================
- * bootstrap-popover.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#popovers
- * ===========================================================
- * Copyright 2012 Twitter, 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.
- * =========================================================== */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* POPOVER PUBLIC CLASS DEFINITION
- * =============================== */
-
- var Popover = function (element, options) {
- this.init('popover', element, options)
- }
-
-
- /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
- ========================================== */
-
- Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
-
- constructor: Popover
-
- , setContent: function () {
- var $tip = this.tip()
- , title = this.getTitle()
- , content = this.getContent()
-
- $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
- $tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content)
-
- $tip.removeClass('fade top bottom left right in')
- }
-
- , hasContent: function () {
- return this.getTitle() || this.getContent()
- }
-
- , getContent: function () {
- var content
- , $e = this.$element
- , o = this.options
-
- content = $e.attr('data-content')
- || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
-
- return content
- }
-
- , tip: function () {
- if (!this.$tip) {
- this.$tip = $(this.options.template)
- }
- return this.$tip
- }
-
- , destroy: function () {
- this.hide().$element.off('.' + this.type).removeData(this.type)
- }
-
- })
-
-
- /* POPOVER PLUGIN DEFINITION
- * ======================= */
-
- $.fn.popover = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('popover')
- , options = typeof option == 'object' && option
- if (!data) $this.data('popover', (data = new Popover(this, options)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.popover.Constructor = Popover
-
- $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
- placement: 'right'
- , trigger: 'click'
- , content: ''
- , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
- })
-
-}(window.jQuery);/* =============================================================
- * bootstrap-scrollspy.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#scrollspy
- * =============================================================
- * Copyright 2012 Twitter, 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.
- * ============================================================== */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* SCROLLSPY CLASS DEFINITION
- * ========================== */
-
- function ScrollSpy(element, options) {
- var process = $.proxy(this.process, this)
- , $element = $(element).is('body') ? $(window) : $(element)
- , href
- this.options = $.extend({}, $.fn.scrollspy.defaults, options)
- this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
- this.selector = (this.options.target
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
- || '') + ' .nav li > a'
- this.$body = $('body')
- this.refresh()
- this.process()
- }
-
- ScrollSpy.prototype = {
-
- constructor: ScrollSpy
-
- , refresh: function () {
- var self = this
- , $targets
-
- this.offsets = $([])
- this.targets = $([])
-
- $targets = this.$body
- .find(this.selector)
- .map(function () {
- var $el = $(this)
- , href = $el.data('target') || $el.attr('href')
- , $href = /^#\w/.test(href) && $(href)
- return ( $href
- && $href.length
- && [[ $href.position().top, href ]] ) || null
- })
- .sort(function (a, b) { return a[0] - b[0] })
- .each(function () {
- self.offsets.push(this[0])
- self.targets.push(this[1])
- })
- }
-
- , process: function () {
- var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
- , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
- , maxScroll = scrollHeight - this.$scrollElement.height()
- , offsets = this.offsets
- , targets = this.targets
- , activeTarget = this.activeTarget
- , i
-
- if (scrollTop >= maxScroll) {
- return activeTarget != (i = targets.last()[0])
- && this.activate ( i )
- }
-
- for (i = offsets.length; i--;) {
- activeTarget != targets[i]
- && scrollTop >= offsets[i]
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
- && this.activate( targets[i] )
- }
- }
-
- , activate: function (target) {
- var active
- , selector
-
- this.activeTarget = target
-
- $(this.selector)
- .parent('.active')
- .removeClass('active')
-
- selector = this.selector
- + '[data-target="' + target + '"],'
- + this.selector + '[href="' + target + '"]'
-
- active = $(selector)
- .parent('li')
- .addClass('active')
-
- if (active.parent('.dropdown-menu').length) {
- active = active.closest('li.dropdown').addClass('active')
- }
-
- active.trigger('activate')
- }
-
- }
-
-
- /* SCROLLSPY PLUGIN DEFINITION
- * =========================== */
-
- $.fn.scrollspy = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('scrollspy')
- , options = typeof option == 'object' && option
- if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.scrollspy.Constructor = ScrollSpy
-
- $.fn.scrollspy.defaults = {
- offset: 10
- }
-
-
- /* SCROLLSPY DATA-API
- * ================== */
-
- $(window).on('load', function () {
- $('[data-spy="scroll"]').each(function () {
- var $spy = $(this)
- $spy.scrollspy($spy.data())
- })
- })
-
-}(window.jQuery);/* ========================================================
- * bootstrap-tab.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#tabs
- * ========================================================
- * Copyright 2012 Twitter, 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.
- * ======================================================== */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* TAB CLASS DEFINITION
- * ==================== */
-
- var Tab = function (element) {
- this.element = $(element)
- }
-
- Tab.prototype = {
-
- constructor: Tab
-
- , show: function () {
- var $this = this.element
- , $ul = $this.closest('ul:not(.dropdown-menu)')
- , selector = $this.attr('data-target')
- , previous
- , $target
- , e
-
- if (!selector) {
- selector = $this.attr('href')
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
- }
-
- if ( $this.parent('li').hasClass('active') ) return
-
- previous = $ul.find('.active a').last()[0]
-
- e = $.Event('show', {
- relatedTarget: previous
- })
-
- $this.trigger(e)
-
- if (e.isDefaultPrevented()) return
-
- $target = $(selector)
-
- this.activate($this.parent('li'), $ul)
- this.activate($target, $target.parent(), function () {
- $this.trigger({
- type: 'shown'
- , relatedTarget: previous
- })
- })
- }
-
- , activate: function ( element, container, callback) {
- var $active = container.find('> .active')
- , transition = callback
- && $.support.transition
- && $active.hasClass('fade')
-
- function next() {
- $active
- .removeClass('active')
- .find('> .dropdown-menu > .active')
- .removeClass('active')
-
- element.addClass('active')
-
- if (transition) {
- element[0].offsetWidth // reflow for transition
- element.addClass('in')
- } else {
- element.removeClass('fade')
- }
-
- if ( element.parent('.dropdown-menu') ) {
- element.closest('li.dropdown').addClass('active')
- }
-
- callback && callback()
- }
-
- transition ?
- $active.one($.support.transition.end, next) :
- next()
-
- $active.removeClass('in')
- }
- }
-
-
- /* TAB PLUGIN DEFINITION
- * ===================== */
-
- $.fn.tab = function ( option ) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('tab')
- if (!data) $this.data('tab', (data = new Tab(this)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.tab.Constructor = Tab
-
-
- /* TAB DATA-API
- * ============ */
-
- $(function () {
- $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
- e.preventDefault()
- $(this).tab('show')
- })
- })
-
-}(window.jQuery);/* =============================================================
- * bootstrap-typeahead.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#typeahead
- * =============================================================
- * Copyright 2012 Twitter, 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.
- * ============================================================ */
-
-
-!function($){
-
- "use strict"; // jshint ;_;
-
-
- /* TYPEAHEAD PUBLIC CLASS DEFINITION
- * ================================= */
-
- var Typeahead = function (element, options) {
- this.$element = $(element)
- this.options = $.extend({}, $.fn.typeahead.defaults, options)
- this.matcher = this.options.matcher || this.matcher
- this.sorter = this.options.sorter || this.sorter
- this.highlighter = this.options.highlighter || this.highlighter
- this.updater = this.options.updater || this.updater
- this.$menu = $(this.options.menu).appendTo('body')
- this.source = this.options.source
- this.shown = false
- this.listen()
- }
-
- Typeahead.prototype = {
-
- constructor: Typeahead
-
- , select: function () {
- var val = this.$menu.find('.active').attr('data-value')
- this.$element
- .val(this.updater(val))
- .change()
- return this.hide()
- }
-
- , updater: function (item) {
- return item
- }
-
- , show: function () {
- var pos = $.extend({}, this.$element.offset(), {
- height: this.$element[0].offsetHeight
- })
-
- this.$menu.css({
- top: pos.top + pos.height
- , left: pos.left
- })
-
- this.$menu.show()
- this.shown = true
- return this
- }
-
- , hide: function () {
- this.$menu.hide()
- this.shown = false
- return this
- }
-
- , lookup: function (event) {
- var items
-
- this.query = this.$element.val()
-
- if (!this.query || this.query.length < this.options.minLength) {
- return this.shown ? this.hide() : this
- }
-
- items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
-
- return items ? this.process(items) : this
- }
-
- , process: function (items) {
- var that = this
-
- items = $.grep(items, function (item) {
- return that.matcher(item)
- })
-
- items = this.sorter(items)
-
- if (!items.length) {
- return this.shown ? this.hide() : this
- }
-
- return this.render(items.slice(0, this.options.items)).show()
- }
-
- , matcher: function (item) {
- return ~item.toLowerCase().indexOf(this.query.toLowerCase())
- }
-
- , sorter: function (items) {
- var beginswith = []
- , caseSensitive = []
- , caseInsensitive = []
- , item
-
- while (item = items.shift()) {
- if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
- else if (~item.indexOf(this.query)) caseSensitive.push(item)
- else caseInsensitive.push(item)
- }
-
- return beginswith.concat(caseSensitive, caseInsensitive)
- }
-
- , highlighter: function (item) {
- var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
- return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
- return '<strong>' + match + '</strong>'
- })
- }
-
- , render: function (items) {
- var that = this
-
- items = $(items).map(function (i, item) {
- i = $(that.options.item).attr('data-value', item)
- i.find('a').html(that.highlighter(item))
- return i[0]
- })
-
- items.first().addClass('active')
- this.$menu.html(items)
- return this
- }
-
- , next: function (event) {
- var active = this.$menu.find('.active').removeClass('active')
- , next = active.next()
-
- if (!next.length) {
- next = $(this.$menu.find('li')[0])
- }
-
- next.addClass('active')
- }
-
- , prev: function (event) {
- var active = this.$menu.find('.active').removeClass('active')
- , prev = active.prev()
-
- if (!prev.length) {
- prev = this.$menu.find('li').last()
- }
-
- prev.addClass('active')
- }
-
- , listen: function () {
- this.$element
- .on('blur', $.proxy(this.blur, this))
- .on('keypress', $.proxy(this.keypress, this))
- .on('keyup', $.proxy(this.keyup, this))
-
- if ($.browser.chrome || $.browser.webkit || $.browser.msie) {
- this.$element.on('keydown', $.proxy(this.keydown, this))
- }
-
- this.$menu
- .on('click', $.proxy(this.click, this))
- .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
- }
-
- , move: function (e) {
- if (!this.shown) return
-
- switch(e.keyCode) {
- case 9: // tab
- case 13: // enter
- case 27: // escape
- e.preventDefault()
- break
-
- case 38: // up arrow
- e.preventDefault()
- this.prev()
- break
-
- case 40: // down arrow
- e.preventDefault()
- this.next()
- break
- }
-
- e.stopPropagation()
- }
-
- , keydown: function (e) {
- this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27])
- this.move(e)
- }
-
- , keypress: function (e) {
- if (this.suppressKeyPressRepeat) return
- this.move(e)
- }
-
- , keyup: function (e) {
- switch(e.keyCode) {
- case 40: // down arrow
- case 38: // up arrow
- break
-
- case 9: // tab
- case 13: // enter
- if (!this.shown) return
- this.select()
- break
-
- case 27: // escape
- if (!this.shown) return
- this.hide()
- break
-
- default:
- this.lookup()
- }
-
- e.stopPropagation()
- e.preventDefault()
- }
-
- , blur: function (e) {
- var that = this
- setTimeout(function () { that.hide() }, 150)
- }
-
- , click: function (e) {
- e.stopPropagation()
- e.preventDefault()
- this.select()
- }
-
- , mouseenter: function (e) {
- this.$menu.find('.active').removeClass('active')
- $(e.currentTarget).addClass('active')
- }
-
- }
-
-
- /* TYPEAHEAD PLUGIN DEFINITION
- * =========================== */
-
- $.fn.typeahead = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('typeahead')
- , options = typeof option == 'object' && option
- if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.typeahead.defaults = {
- source: []
- , items: 8
- , menu: '<ul class="typeahead dropdown-menu"></ul>'
- , item: '<li><a href="#"></a></li>'
- , minLength: 1
- }
-
- $.fn.typeahead.Constructor = Typeahead
-
-
- /* TYPEAHEAD DATA-API
- * ================== */
-
- $(function () {
- $('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
- var $this = $(this)
- if ($this.data('typeahead')) return
- e.preventDefault()
- $this.typeahead($this.data())
- })
- })
-
-}(window.jQuery);
-/* ==========================================================
- * bootstrap-affix.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#affix
- * ==========================================================
- * Copyright 2012 Twitter, 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.
- * ========================================================== */
-
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* AFFIX CLASS DEFINITION
- * ====================== */
-
- var Affix = function (element, options) {
- this.options = $.extend({}, $.fn.affix.defaults, options)
- this.$window = $(window).on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
- this.$element = $(element)
- this.checkPosition()
- }
-
- Affix.prototype.checkPosition = function () {
- if (!this.$element.is(':visible')) return
-
- var scrollHeight = $(document).height()
- , scrollTop = this.$window.scrollTop()
- , position = this.$element.offset()
- , offset = this.options.offset
- , offsetBottom = offset.bottom
- , offsetTop = offset.top
- , reset = 'affix affix-top affix-bottom'
- , affix
-
- if (typeof offset != 'object') offsetBottom = offsetTop = offset
- if (typeof offsetTop == 'function') offsetTop = offset.top()
- if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
-
- affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
- false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
- 'bottom' : offsetTop != null && scrollTop <= offsetTop ?
- 'top' : false
-
- if (this.affixed === affix) return
-
- this.affixed = affix
- this.unpin = affix == 'bottom' ? position.top - scrollTop : null
-
- this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
- }
-
-
- /* AFFIX PLUGIN DEFINITION
- * ======================= */
-
- $.fn.affix = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('affix')
- , options = typeof option == 'object' && option
- if (!data) $this.data('affix', (data = new Affix(this, options)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.affix.Constructor = Affix
-
- $.fn.affix.defaults = {
- offset: 0
- }
-
-
- /* AFFIX DATA-API
- * ============== */
-
- $(window).on('load', function () {
- $('[data-spy="affix"]').each(function () {
- var $spy = $(this)
- , data = $spy.data()
-
- data.offset = data.offset || {}
-
- data.offsetBottom && (data.offset.bottom = data.offsetBottom)
- data.offsetTop && (data.offset.top = data.offsetTop)
-
- $spy.affix(data)
- })
- })
-
-
-}(window.jQuery); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js b/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js
deleted file mode 100755
index 0e33fb16..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
-* Bootstrap.js by @fat & @mdo
-* Copyright 2012 Twitter, Inc.
-* http://www.apache.org/licenses/LICENSE-2.0.txt
-*/
-!function(e){e(function(){"use strict";e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()},e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e(function(){e("body").on("click.alert.data-api",t,n.prototype.close)})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")},e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e(function(){e("body").on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=n,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},to:function(t){var n=this.$element.find(".item.active"),r=n.parent().children(),i=r.index(n),s=this;if(t>r.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){s.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",e(r[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f=e.Event("slide",{relatedTarget:i[0]});this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u]();if(i.hasClass("active"))return;if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}},e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e(function(){e("body").on("click.carousel.data-api","[data-slide]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=!i.data("modal")&&e.extend({},i.data(),n.data());i.carousel(s),t.preventDefault()})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning)return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning)return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=typeof n=="object"&&n;i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e(function(){e("body").on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})})}(window.jQuery),!function(e){"use strict";function r(){i(e(t)).removeClass("open")}function i(t){var n=t.attr("data-target"),r;return n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=e(n),r.length||(r=t.parent()),r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||(s.toggleClass("open"),n.focus()),!1},keydown:function(t){var n,r,s,o,u,a;if(!/(38|40|27)/.test(t.keyCode))return;n=e(this),t.preventDefault(),t.stopPropagation();if(n.is(".disabled, :disabled"))return;o=i(n),u=o.hasClass("open");if(!u||u&&t.keyCode==27)return n.click();r=e("[role=menu] li:not(.divider) a",o);if(!r.length)return;a=r.index(r.filter(":focus")),t.keyCode==38&&a>0&&a--,t.keyCode==40&&a<r.length-1&&a++,~a||(a=0),r.eq(a).focus()}},e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e(function(){e("html").on("click.dropdown.data-api touchstart.dropdown.data-api",r),e("body").on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;e("body").addClass("modal-open"),this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1).focus(),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.trigger("shown")}):t.$element.trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,e("body").removeClass("modal-open"),this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(e){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(this.removeBackdrop,this)):this.removeBackdrop()):t&&t()}},e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e(function(){e("body").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):this.options.trigger!="manual"&&(i=this.options.trigger=="hover"?"mouseenter":"focus",s=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this))),this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,t,this.$element.data()),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){n.hoverState=="in"&&n.show()},n.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var e,t,n,r,i,s,o;if(this.hasContent()&&this.enabled){e=this.tip(),this.setContent(),this.options.animation&&e.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,t=/in/.test(s),e.remove().css({top:0,left:0,display:"block"}).appendTo(t?this.$element:document.body),n=this.getPosition(t),r=e[0].offsetWidth,i=e[0].offsetHeight;switch(t?s.split(" ")[1]:s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}e.css(o).addClass(s).addClass("in")}},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function r(){var t=setTimeout(function(){n.off(e.support.transition.end).remove()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.remove()})}var t=this,n=this.tip();return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?r():n.remove(),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(t){return e.extend({},t?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0,html:!0}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content > *")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-content")||(typeof n.content=="function"?n.content.call(t[0]):n.content),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var t=e(this),n=t.data("target")||t.attr("href"),r=/^#\w/.test(n)&&e(n);return r&&r.length&&[[r.position().top,n]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}},e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active a").last()[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}},e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e(function(){e("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=e(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:t.top+t.height,left:t.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),(e.browser.chrome||e.browser.webkit||e.browser.msie)&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this))},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=!~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},blur:function(e){var t=this;setTimeout(function(){t.hide()},150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(t){this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")}},e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e(function(){e("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;t.preventDefault(),n.typeahead(n.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))},e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example1/colorbox.css
deleted file mode 100755
index 1dedd90f..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/colorbox.css
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- Colorbox Core Style:
- The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/*
- User Style:
- Change the following styles to modify the appearance of Colorbox. They are
- ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:url(images/overlay.png) repeat 0 0;}
-#colorbox{outline:0;}
- #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;}
- #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;}
- #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;}
- #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;}
- #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
- #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
- #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
- #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
- #cboxContent{background:#fff; overflow:hidden;}
- .cboxIframe{background:#fff;}
- #cboxError{padding:50px; border:1px solid #ccc;}
- #cboxLoadedContent{margin-bottom:28px;}
- #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
- #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
- #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
- #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
-
- /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
- #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
-
- /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
- #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
- #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
- #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
- #cboxPrevious:hover{background-position:-75px -25px;}
- #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
- #cboxNext:hover{background-position:-50px -25px;}
- #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
- #cboxClose:hover{background-position:-25px -25px;}
-
-/*
- The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
- when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
- See: http://jacklmoore.com/notes/ie-transparency-problems/
-*/
-.cboxIE #cboxTopLeft,
-.cboxIE #cboxTopCenter,
-.cboxIE #cboxTopRight,
-.cboxIE #cboxBottomLeft,
-.cboxIE #cboxBottomCenter,
-.cboxIE #cboxBottomRight,
-.cboxIE #cboxMiddleLeft,
-.cboxIE #cboxMiddleRight {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/border.png b/wqflask/wqflask/static/packages/colorbox/example1/images/border.png
deleted file mode 100755
index f463a10d..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/border.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example1/images/controls.png
deleted file mode 100755
index dcfd6fb9..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/controls.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example1/images/loading.gif
deleted file mode 100755
index b4695d81..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/loading.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/loading_background.png b/wqflask/wqflask/static/packages/colorbox/example1/images/loading_background.png
deleted file mode 100755
index 6ae83e69..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/loading_background.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/overlay.png b/wqflask/wqflask/static/packages/colorbox/example1/images/overlay.png
deleted file mode 100755
index 53ea98f7..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/overlay.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/index.html b/wqflask/wqflask/static/packages/colorbox/example1/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset='utf-8'/>
- <title>Colorbox Examples</title>
- <style>
- body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
- a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
- h2{font-size:13px; margin:15px 0 0 0;}
- </style>
- <link rel="stylesheet" href="colorbox.css" />
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
- <script src="../jquery.colorbox.js"></script>
- <script>
- $(document).ready(function(){
- //Examples of how to assign the Colorbox event to elements
- $(".group1").colorbox({rel:'group1'});
- $(".group2").colorbox({rel:'group2', transition:"fade"});
- $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
- $(".group4").colorbox({rel:'group4', slideshow:true});
- $(".ajax").colorbox();
- $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
- $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
- $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
- $(".inline").colorbox({inline:true, width:"50%"});
- $(".callbacks").colorbox({
- onOpen:function(){ alert('onOpen: colorbox is about to open'); },
- onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
- onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
- onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
- onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
- });
-
- $('.non-retina').colorbox({rel:'group5', transition:'none'})
- $('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-
- //Example of preserving a JavaScript event for inline calls.
- $("#click").click(function(){
- $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
- return false;
- });
- });
- </script>
- </head>
- <body>
- <h1>Colorbox Demonstration</h1>
- <h2>Elastic Transition</h2>
- <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Fade Transition</h2>
- <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
- <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>No Transition + fixed width and height (75% of screen size)</h2>
- <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Slideshow</h2>
- <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Other Content Types</h2>
- <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
- <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
- <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
- <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
- <p><a class='inline' href="#inline_content">Inline HTML</a></p>
-
- <h2>Demonstration of using callbacks</h2>
- <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-
-
- <h2>Retina Images</h2>
- <p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
- <p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
- <!-- This contains the hidden content for inline calls -->
- <div style='display:none'>
- <div id='inline_content' style='padding:10px; background:#fff;'>
- <p><strong>This content comes from a hidden element on this page.</strong></p>
- <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
- <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-
- <p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
- <p>Updating Content Example:<br />
- <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example2/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example2/colorbox.css
deleted file mode 100755
index b463110f..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/colorbox.css
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- Colorbox Core Style:
- The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/*
- User Style:
- Change the following styles to modify the appearance of Colorbox. They are
- ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#fff;}
-#colorbox{outline:0;}
- #cboxContent{margin-top:32px; overflow:visible; background:#000;}
- .cboxIframe{background:#fff;}
- #cboxError{padding:50px; border:1px solid #ccc;}
- #cboxLoadedContent{background:#000; padding:1px;}
- #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
- #cboxLoadingOverlay{background:#000;}
- #cboxTitle{position:absolute; top:-22px; left:0; color:#000;}
- #cboxCurrent{position:absolute; top:-22px; right:205px; text-indent:-9999px;}
-
- /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
- #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; text-indent:-9999px; width:20px; height:20px; position:absolute; top:-20px; background:url(images/controls.png) no-repeat 0 0;}
-
- /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
- #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
- #cboxPrevious{background-position:0px 0px; right:44px;}
- #cboxPrevious:hover{background-position:0px -25px;}
- #cboxNext{background-position:-25px 0px; right:22px;}
- #cboxNext:hover{background-position:-25px -25px;}
- #cboxClose{background-position:-50px 0px; right:0;}
- #cboxClose:hover{background-position:-50px -25px;}
- .cboxSlideshow_on #cboxPrevious, .cboxSlideshow_off #cboxPrevious{right:66px;}
- .cboxSlideshow_on #cboxSlideshow{background-position:-75px -25px; right:44px;}
- .cboxSlideshow_on #cboxSlideshow:hover{background-position:-100px -25px;}
- .cboxSlideshow_off #cboxSlideshow{background-position:-100px 0px; right:44px;}
- .cboxSlideshow_off #cboxSlideshow:hover{background-position:-75px -25px;}
diff --git a/wqflask/wqflask/static/packages/colorbox/example2/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example2/images/controls.png
deleted file mode 100755
index 8569b57f..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/images/controls.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example2/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example2/images/loading.gif
deleted file mode 100755
index 19c67bbd..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/images/loading.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example2/index.html b/wqflask/wqflask/static/packages/colorbox/example2/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset='utf-8'/>
- <title>Colorbox Examples</title>
- <style>
- body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
- a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
- h2{font-size:13px; margin:15px 0 0 0;}
- </style>
- <link rel="stylesheet" href="colorbox.css" />
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
- <script src="../jquery.colorbox.js"></script>
- <script>
- $(document).ready(function(){
- //Examples of how to assign the Colorbox event to elements
- $(".group1").colorbox({rel:'group1'});
- $(".group2").colorbox({rel:'group2', transition:"fade"});
- $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
- $(".group4").colorbox({rel:'group4', slideshow:true});
- $(".ajax").colorbox();
- $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
- $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
- $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
- $(".inline").colorbox({inline:true, width:"50%"});
- $(".callbacks").colorbox({
- onOpen:function(){ alert('onOpen: colorbox is about to open'); },
- onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
- onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
- onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
- onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
- });
-
- $('.non-retina').colorbox({rel:'group5', transition:'none'})
- $('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-
- //Example of preserving a JavaScript event for inline calls.
- $("#click").click(function(){
- $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
- return false;
- });
- });
- </script>
- </head>
- <body>
- <h1>Colorbox Demonstration</h1>
- <h2>Elastic Transition</h2>
- <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Fade Transition</h2>
- <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
- <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>No Transition + fixed width and height (75% of screen size)</h2>
- <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Slideshow</h2>
- <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Other Content Types</h2>
- <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
- <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
- <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
- <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
- <p><a class='inline' href="#inline_content">Inline HTML</a></p>
-
- <h2>Demonstration of using callbacks</h2>
- <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-
-
- <h2>Retina Images</h2>
- <p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
- <p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
- <!-- This contains the hidden content for inline calls -->
- <div style='display:none'>
- <div id='inline_content' style='padding:10px; background:#fff;'>
- <p><strong>This content comes from a hidden element on this page.</strong></p>
- <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
- <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-
- <p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
- <p>Updating Content Example:<br />
- <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example3/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example3/colorbox.css
deleted file mode 100755
index f12844e1..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/colorbox.css
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- Colorbox Core Style:
- The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/*
- User Style:
- Change the following styles to modify the appearance of Colorbox. They are
- ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#000;}
-#colorbox{outline:0;}
- #cboxContent{margin-top:20px;background:#000;}
- .cboxIframe{background:#fff;}
- #cboxError{padding:50px; border:1px solid #ccc;}
- #cboxLoadedContent{border:5px solid #000; background:#fff;}
- #cboxTitle{position:absolute; top:-20px; left:0; color:#ccc;}
- #cboxCurrent{position:absolute; top:-20px; right:0px; color:#ccc;}
- #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
-
- /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
- #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
-
- /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
- #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
- #cboxSlideshow{position:absolute; top:-20px; right:90px; color:#fff;}
- #cboxPrevious{position:absolute; top:50%; left:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top left; width:28px; height:65px; text-indent:-9999px;}
- #cboxPrevious:hover{background-position:bottom left;}
- #cboxNext{position:absolute; top:50%; right:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top right; width:28px; height:65px; text-indent:-9999px;}
- #cboxNext:hover{background-position:bottom right;}
- #cboxClose{position:absolute; top:5px; right:5px; display:block; background:url(images/controls.png) no-repeat top center; width:38px; height:19px; text-indent:-9999px;}
- #cboxClose:hover{background-position:bottom center;}
diff --git a/wqflask/wqflask/static/packages/colorbox/example3/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example3/images/controls.png
deleted file mode 100755
index e1e97982..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/images/controls.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example3/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example3/images/loading.gif
deleted file mode 100755
index 19c67bbd..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/images/loading.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example3/index.html b/wqflask/wqflask/static/packages/colorbox/example3/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset='utf-8'/>
- <title>Colorbox Examples</title>
- <style>
- body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
- a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
- h2{font-size:13px; margin:15px 0 0 0;}
- </style>
- <link rel="stylesheet" href="colorbox.css" />
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
- <script src="../jquery.colorbox.js"></script>
- <script>
- $(document).ready(function(){
- //Examples of how to assign the Colorbox event to elements
- $(".group1").colorbox({rel:'group1'});
- $(".group2").colorbox({rel:'group2', transition:"fade"});
- $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
- $(".group4").colorbox({rel:'group4', slideshow:true});
- $(".ajax").colorbox();
- $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
- $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
- $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
- $(".inline").colorbox({inline:true, width:"50%"});
- $(".callbacks").colorbox({
- onOpen:function(){ alert('onOpen: colorbox is about to open'); },
- onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
- onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
- onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
- onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
- });
-
- $('.non-retina').colorbox({rel:'group5', transition:'none'})
- $('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-
- //Example of preserving a JavaScript event for inline calls.
- $("#click").click(function(){
- $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
- return false;
- });
- });
- </script>
- </head>
- <body>
- <h1>Colorbox Demonstration</h1>
- <h2>Elastic Transition</h2>
- <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Fade Transition</h2>
- <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
- <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>No Transition + fixed width and height (75% of screen size)</h2>
- <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Slideshow</h2>
- <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Other Content Types</h2>
- <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
- <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
- <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
- <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
- <p><a class='inline' href="#inline_content">Inline HTML</a></p>
-
- <h2>Demonstration of using callbacks</h2>
- <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-
-
- <h2>Retina Images</h2>
- <p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
- <p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
- <!-- This contains the hidden content for inline calls -->
- <div style='display:none'>
- <div id='inline_content' style='padding:10px; background:#fff;'>
- <p><strong>This content comes from a hidden element on this page.</strong></p>
- <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
- <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-
- <p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
- <p>Updating Content Example:<br />
- <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example4/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example4/colorbox.css
deleted file mode 100755
index 1a3b899a..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/colorbox.css
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- Colorbox Core Style:
- The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/*
- User Style:
- Change the following styles to modify the appearance of Colorbox. They are
- ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#fff;}
-#colorbox{outline:0;}
- #cboxTopLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 0;}
- #cboxTopCenter{height:25px; background:url(images/border1.png) repeat-x 0 -50px;}
- #cboxTopRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px 0;}
- #cboxBottomLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 -25px;}
- #cboxBottomCenter{height:25px; background:url(images/border1.png) repeat-x 0 -75px;}
- #cboxBottomRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px -25px;}
- #cboxMiddleLeft{width:25px; background:url(images/border2.png) repeat-y 0 0;}
- #cboxMiddleRight{width:25px; background:url(images/border2.png) repeat-y -25px 0;}
- #cboxContent{background:#fff; overflow:hidden;}
- .cboxIframe{background:#fff;}
- #cboxError{padding:50px; border:1px solid #ccc;}
- #cboxLoadedContent{margin-bottom:20px;}
- #cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;}
- #cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;}
- #cboxLoadingOverlay{background:#fff url(images/loading.gif) no-repeat 5px 5px;}
-
- /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
- #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
-
- /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
- #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
- #cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;}
- #cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
- #cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
- #cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}
-
-/*
- The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
- when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
- See: http://jacklmoore.com/notes/ie-transparency-problems/
-*/
-.cboxIE #cboxTopLeft,
-.cboxIE #cboxTopCenter,
-.cboxIE #cboxTopRight,
-.cboxIE #cboxBottomLeft,
-.cboxIE #cboxBottomCenter,
-.cboxIE #cboxBottomRight,
-.cboxIE #cboxMiddleLeft,
-.cboxIE #cboxMiddleRight {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example4/images/border1.png b/wqflask/wqflask/static/packages/colorbox/example4/images/border1.png
deleted file mode 100755
index 0ddc7040..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/images/border1.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example4/images/border2.png b/wqflask/wqflask/static/packages/colorbox/example4/images/border2.png
deleted file mode 100755
index aa62a0b7..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/images/border2.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example4/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example4/images/loading.gif
deleted file mode 100755
index 602ce3c3..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/images/loading.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example4/index.html b/wqflask/wqflask/static/packages/colorbox/example4/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset='utf-8'/>
- <title>Colorbox Examples</title>
- <style>
- body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
- a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
- h2{font-size:13px; margin:15px 0 0 0;}
- </style>
- <link rel="stylesheet" href="colorbox.css" />
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
- <script src="../jquery.colorbox.js"></script>
- <script>
- $(document).ready(function(){
- //Examples of how to assign the Colorbox event to elements
- $(".group1").colorbox({rel:'group1'});
- $(".group2").colorbox({rel:'group2', transition:"fade"});
- $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
- $(".group4").colorbox({rel:'group4', slideshow:true});
- $(".ajax").colorbox();
- $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
- $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
- $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
- $(".inline").colorbox({inline:true, width:"50%"});
- $(".callbacks").colorbox({
- onOpen:function(){ alert('onOpen: colorbox is about to open'); },
- onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
- onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
- onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
- onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
- });
-
- $('.non-retina').colorbox({rel:'group5', transition:'none'})
- $('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-
- //Example of preserving a JavaScript event for inline calls.
- $("#click").click(function(){
- $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
- return false;
- });
- });
- </script>
- </head>
- <body>
- <h1>Colorbox Demonstration</h1>
- <h2>Elastic Transition</h2>
- <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Fade Transition</h2>
- <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
- <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>No Transition + fixed width and height (75% of screen size)</h2>
- <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Slideshow</h2>
- <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Other Content Types</h2>
- <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
- <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
- <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
- <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
- <p><a class='inline' href="#inline_content">Inline HTML</a></p>
-
- <h2>Demonstration of using callbacks</h2>
- <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-
-
- <h2>Retina Images</h2>
- <p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
- <p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
- <!-- This contains the hidden content for inline calls -->
- <div style='display:none'>
- <div id='inline_content' style='padding:10px; background:#fff;'>
- <p><strong>This content comes from a hidden element on this page.</strong></p>
- <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
- <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-
- <p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
- <p>Updating Content Example:<br />
- <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example5/colorbox.css
deleted file mode 100755
index fae0adef..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/colorbox.css
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- Colorbox Core Style:
- The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/*
- User Style:
- Change the following styles to modify the appearance of Colorbox. They are
- ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#000;}
-#colorbox{outline:0;}
- #cboxTopLeft{width:14px; height:14px; background:url(images/controls.png) no-repeat 0 0;}
- #cboxTopCenter{height:14px; background:url(images/border.png) repeat-x top left;}
- #cboxTopRight{width:14px; height:14px; background:url(images/controls.png) no-repeat -36px 0;}
- #cboxBottomLeft{width:14px; height:43px; background:url(images/controls.png) no-repeat 0 -32px;}
- #cboxBottomCenter{height:43px; background:url(images/border.png) repeat-x bottom left;}
- #cboxBottomRight{width:14px; height:43px; background:url(images/controls.png) no-repeat -36px -32px;}
- #cboxMiddleLeft{width:14px; background:url(images/controls.png) repeat-y -175px 0;}
- #cboxMiddleRight{width:14px; background:url(images/controls.png) repeat-y -211px 0;}
- #cboxContent{background:#fff; overflow:visible;}
- .cboxIframe{background:#fff;}
- #cboxError{padding:50px; border:1px solid #ccc;}
- #cboxLoadedContent{margin-bottom:5px;}
- #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
- #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
- #cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
- #cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
-
- /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
- #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; position:absolute; bottom:-29px; background:url(images/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
-
- /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
- #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
- #cboxPrevious{left:0px; background-position: -51px -25px;}
- #cboxPrevious:hover{background-position:-51px 0px;}
- #cboxNext{left:27px; background-position:-75px -25px;}
- #cboxNext:hover{background-position:-75px 0px;}
- #cboxClose{right:0; background-position:-100px -25px;}
- #cboxClose:hover{background-position:-100px 0px;}
-
- .cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
- .cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
- .cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
- .cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/border.png b/wqflask/wqflask/static/packages/colorbox/example5/images/border.png
deleted file mode 100755
index df13bb6d..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/border.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example5/images/controls.png
deleted file mode 100755
index 65cfd1dc..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/controls.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example5/images/loading.gif
deleted file mode 100755
index b4695d81..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/loading.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/loading_background.png b/wqflask/wqflask/static/packages/colorbox/example5/images/loading_background.png
deleted file mode 100755
index 9de11f46..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/loading_background.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/index.html b/wqflask/wqflask/static/packages/colorbox/example5/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset='utf-8'/>
- <title>Colorbox Examples</title>
- <style>
- body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
- a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
- h2{font-size:13px; margin:15px 0 0 0;}
- </style>
- <link rel="stylesheet" href="colorbox.css" />
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
- <script src="../jquery.colorbox.js"></script>
- <script>
- $(document).ready(function(){
- //Examples of how to assign the Colorbox event to elements
- $(".group1").colorbox({rel:'group1'});
- $(".group2").colorbox({rel:'group2', transition:"fade"});
- $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
- $(".group4").colorbox({rel:'group4', slideshow:true});
- $(".ajax").colorbox();
- $(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
- $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
- $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
- $(".inline").colorbox({inline:true, width:"50%"});
- $(".callbacks").colorbox({
- onOpen:function(){ alert('onOpen: colorbox is about to open'); },
- onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
- onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
- onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
- onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
- });
-
- $('.non-retina').colorbox({rel:'group5', transition:'none'})
- $('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-
- //Example of preserving a JavaScript event for inline calls.
- $("#click").click(function(){
- $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
- return false;
- });
- });
- </script>
- </head>
- <body>
- <h1>Colorbox Demonstration</h1>
- <h2>Elastic Transition</h2>
- <p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Fade Transition</h2>
- <p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
- <p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>No Transition + fixed width and height (75% of screen size)</h2>
- <p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Slideshow</h2>
- <p><a class="group4" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
- <p><a class="group4" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
- <p><a class="group4" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-
- <h2>Other Content Types</h2>
- <p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
- <p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
- <p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
- <p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
- <p><a class='inline' href="#inline_content">Inline HTML</a></p>
-
- <h2>Demonstration of using callbacks</h2>
- <p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-
-
- <h2>Retina Images</h2>
- <p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
- <p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
- <!-- This contains the hidden content for inline calls -->
- <div style='display:none'>
- <div id='inline_content' style='padding:10px; background:#fff;'>
- <p><strong>This content comes from a hidden element on this page.</strong></p>
- <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
- <p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-
- <p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
- <p>Updating Content Example:<br />
- <a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv b/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv
deleted file mode 100755
index 453517b0..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv
+++ /dev/null
@@ -1,25 +0,0 @@
-Product or service,v01,v02,v03,v04,v05,v06,v07,v08,v09,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20
-Rice,15.8442,13.0993,11.2898,10.7892,10.252,9.0165,8.5287,7.7442,6.9867,6.5213,5.9473,5.4766,4.9214,4.6398,3.8935,3.5228,3.0128,2.4847,2.0357,1.0672
-Bread and other cereals,1.7703,2.2535,2.2753,2.7927,2.2509,2.4341,2.5518,2.5547,2.4204,2.4186,2.4261,2.2927,2.4386,2.2295,2.2203,1.915,1.8791,1.7941,1.6567,0.9296
-Meat,8.3728,8.1221,8.3989,7.9758,8.8246,8.2377,8.432,7.8466,7.5343,7.1171,6.9801,6.9349,5.8307,5.7089,4.927,4.2237,3.6872,3.1429,2.581,1.3766
-Fish and seafood,9.1249,8.7326,7.6122,7.8577,7.1625,6.8527,6.5158,6.1715,6.1298,5.8702,5.3456,4.9906,4.4424,4.3022,3.5298,3.405,2.9977,2.4159,2.0832,1.1499
-Fruits and vegetables,8.0508,7.7875,7.6534,7.4448,7.3702,7.4188,7.3882,7.1647,6.9617,6.6576,6.6077,6.4823,5.9117,5.8149,5.505,5.5355,5.0907,4.569,4.3049,2.6325
-Other food products,10.4408,9.8278,9.9293,9.5176,9.6658,9.2359,9.2842,8.6497,8.7656,8.2962,8.155,7.7294,7.3674,6.9888,6.2995,5.7314,5.2703,4.6947,3.9614,2.2509
-Catering services,4.1883,4.7514,5.3198,5.8819,5.1732,5.5764,6.1713,6.7915,6.8511,7.2681,7.1461,8.109,9.2649,9.5322,11.2138,12.8299,12.9621,13.8936,13.7828,10.0525
-Non-alcoholic beverages,0.6641,0.8454,0.9018,1.0461,1.0113,1.235,1.279,1.3049,1.5024,1.4471,1.5358,1.5796,1.6471,1.6443,1.6562,1.6763,1.6097,1.5039,1.3752,0.864
-Alcoholic beverages,0.5221,0.6997,0.8513,0.8849,0.9168,0.9099,0.8339,0.9921,1.1169,1.1764,1.1936,1.1415,1.1181,1.2889,1.1378,1.023,1.1283,1.0417,0.9839,0.587
-Tobacco and narcotics,1.0969,1.188,1.0713,1.2803,1.1787,1.148,1.3229,1.1726,1.3764,1.3887,1.4011,1.3034,1.4368,1.5017,1.4899,1.4123,1.3168,1.1407,0.8458,0.38
-Clothing and footwear,2.275,2.5511,3.1025,2.9834,3.2857,3.7625,3.1928,3.7071,4.0364,3.629,3.9258,3.2208,3.7113,3.3166,3.4775,3.429,3.6121,3.4569,3.8416,4.1323
-Rentals (actual or imputed) and maintenance and repair of the dwelling,16.0654,15.719,16.3773,16.0175,15.8853,16.132,16.1309,16.3491,15.8512,16.4743,16.2862,15.7327,16.2793,16.6329,17.4903,17.4425,17.3413,18.3527,18.5029,15.2763
-Water supply and miscellaneous services related to the dwelling,1.1145,1.176,1.1183,1.0411,1.0058,1.0796,1.0321,1.0714,1.1117,1.0278,1.136,1.1397,1.1556,1.2206,1.2871,1.2361,1.2111,1.2312,1.1545,0.7881
-Electricity gas and other fuels,4.5928,4.7558,4.8855,4.4684,4.6677,4.6038,4.7789,4.6098,4.4171,4.5078,4.4137,4.4645,4.2693,4.2836,4.1709,4.159,3.8423,3.9957,3.6816,2.5785
-Furnishing household equipment and routine household maintenance,2.1027,2.1576,2.0721,2.0623,2.3498,2.2573,2.2866,2.3766,2.2488,2.3665,2.3445,2.2474,2.3345,2.2479,2.158,2.355,2.0744,2.2269,3.0474,3.8925
-Health,1.2709,1.6007,1.3996,1.612,1.4649,1.5875,1.7056,1.7315,1.7378,2.0401,2.3265,2.1096,2.0513,2.1548,2.0634,2.2206,1.8427,2.4817,2.3066,2.1685
-Transport,4.6414,5.6167,5.9571,6.5372,7.0242,7.6332,7.9823,8.3906,9.112,9.6872,10.2014,11.0074,11.375,11.6753,12.0489,12.0692,13.2962,13.2183,14.6559,32.0912
-Communication,0.2334,0.3642,0.5267,0.5911,0.8888,1.1633,1.0997,1.76,1.9811,2.1708,2.931,3.2634,3.6254,4.107,4.6944,5.0941,5.9984,6.2419,6.6059,5.8353
-Recreation and culture,2.2553,2.8903,2.9564,3.2839,3.4822,3.255,3.1666,3.4245,3.4066,3.8536,3.6333,4.0331,4.4847,4.3552,4.2768,4.1439,4.7196,4.6585,4.4286,3.921
-Education,0.3437,0.3282,0.4805,0.3881,0.4796,0.9766,0.6589,0.6443,1.0423,0.7941,1.064,1.5504,1.3977,1.5226,1.8344,1.9186,2.3022,2.8188,2.8424,2.7792
-Personal care,3.4466,3.5641,3.5711,3.4219,3.2835,3.3569,3.3416,3.4544,3.3675,3.2806,3.118,3.1881,3.2252,3.0588,3.0051,2.9868,3.0361,2.8972,2.9611,2.2867
-Other miscellaneous goods and services,1.5831,1.9691,2.2498,2.122,2.3766,2.1273,2.3165,2.0884,2.0421,2.0067,1.8809,2.0027,1.7115,1.7734,1.6204,1.6702,1.769,1.7391,2.3607,2.9604
-Food and non-alcoholic beverages,58.4561,55.4196,53.3806,53.3059,51.7105,50.007,50.1509,48.2276,47.1521,45.5962,44.1436,43.5952,41.8242,40.8606,39.2451,38.8396,36.5095,34.4988,31.7809,20.3231
-Non food,41.5439,44.5804,46.6194,46.6941,48.2895,49.993,49.8491,51.7724,52.8479,54.4038,55.8564,56.4048,58.1758,59.1394,60.7549,61.1604,63.4905,65.5012,68.2191,79.6769
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/ages.json b/wqflask/wqflask/static/packages/jqplot/examples/ages.json
deleted file mode 100755
index 86916187..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/ages.json
+++ /dev/null
@@ -1,5 +0,0 @@
-[[1043353182,539695335,503657847,28.24,27.51,29.01,51.78],
-[0.0085318435343400800,0.0088774027062416400,0.0094714560875224100,0.0101640893891056000,0.0108249758696292000,0.0113773174183149000,0.0117954271696904000,0.0120868766491156000,0.0122726357410028000,0.0123620512208843000,0.0124092312631522000,0.0123929933989534000,0.0123170841477326000,0.0121788940682660000,0.0119848553256476000,0.0117367932349178000,0.0114334768233470000,0.0110840887113746000,0.0107005336950161000,0.0102889073661635000,0.0098746874267631800,0.0094727992165526500,0.0091066817836288100,0.0087853078056091400,0.0085176451289595700,0.0082955898249666400,0.0081021034227657000,0.0079410857437656400,0.0078129432771183200,0.0077041517746791700,0.0076076629996558600,0.0075063773837400400,0.0074212932416191700,0.0073577960797626100,0.0073199937766648000,0.0072872222696609900,0.0072249036551971000,0.0071436496521446000,0.0070535868312601700,0.0069442503777637000,0.0068032069975035000,0.0066093294501292200,0.0063936409488174700,0.0061768176372133200,0.0059737878831400300,0.0057724507581444500,0.0055456647375558400,0.0053139201135624000,0.0050952395722700100,0.0048873227886988200,0.0046839194356973000,0.0044709211871979300,0.0042683374557587400,0.0040886232834079100,0.0039394433696905200,0.0038097165950705600,0.0036797119436340500,0.0035595490798891500,0.0034559622921317600,0.0033586853733251200,0.0032515219944251700,0.0031141174480235800,0.0029601056879342400,0.0027997057390388600,0.0026388958299152400,0.0024706340765107900,0.0022829305753990900,0.0020900571013307600,0.0019037152224417700,0.0017251049256371200,0.0015499961243315000,0.0013709889555399900,0.0011982773790103000,0.0010401790931594200,0.0009015220565900700,0.0007812832602556460,0.0006749752626942340,0.0005833580512023270,0.0005061657847658260,0.0004399544894590220,0.0003808034210932470,0.0003273788998735520,0.0002794993115460400,0.0002369793671257210,0.0001995479850687680,0.0001668101805315270,0.0001383186716039340,0.0001138075253115040,0.0000929924552954457,0.0000755223736670678,0.0000610047525059652,0.0000490638302928227,0.0000396489252832302,0.0000330891826825378,0.0000281195284929135,0.0001070412478036410],
-[0.0071192629623232800,0.0072839317935624000,0.0075693293189514500,0.0079091875498352200,0.0082360857829773300,0.0084979038169712600,0.0086893986451354100,0.0088353986277422900,0.0089633895658643000,0.0090878796761182500,0.0092337667384807200,0.0093792123312149900,0.0095192745279032600,0.0096463104169553400,0.0097588790000607600,0.0098544841215461300,0.0099282199747865200,0.0099763812248601700,0.0099957597226035700,0.0099801585489242500,0.0099375446097938400,0.0098709094654945100,0.0097926096630396900,0.0097014318757340600,0.0095968423362564000,0.0094699215837397400,0.0093120985109391200,0.0091337644254482100,0.0089445678055607600,0.0087423328014590000,0.0085321350430430500,0.0083104164267343500,0.0081040369311665900,0.0079207770770160300,0.0077675098774536000,0.0076284130950824500,0.0074765938644635800,0.0073237591351693500,0.0071772210497332700,0.0070244435483804400,0.0068550745015274400,0.0066526057090785200,0.0064404461001358000,0.0062305720357510500,0.0060342707683446500,0.0058408705961082800,0.0056264339860478000,0.0054065565344313600,0.0051920462742280000,0.0049765895152515200,0.0047558832991186200,0.0045207003388048400,0.0042899070487080500,0.0040745089551306800,0.0038817655555785800,0.0037053224400247200,0.0035332134254902200,0.0033727187145046400,0.0032284905944481100,0.0030937679725170100,0.0029582187048090100,0.0028081834596732200,0.0026513461722362800,0.0024926069125082600,0.0023353006048059200,0.0021744630786167700,0.0020021420693961100,0.0018298895084829500,0.0016671380010344600,0.0015153637133401800,0.0013712248188900700,0.0012284616818527500,0.0010934572254154500,0.0009707133813897040,0.0008622603131043950,0.0007661899219731710,0.0006786114871838230,0.0006005435486257860,0.0005322956370150040,0.0004715229254612440,0.0004158721219136000,0.0003645948643149670,0.0003176904909297340,0.0002751152300590630,0.0002367021156783720,0.0002021700726755280,0.0001712214234345020,0.0001437557719387760,0.0001197138111336940,0.0000989925882290494,0.0000814263200020563,0.0000667991474109870,0.0000549164545704749,0.0000455518367647343,0.0000384480445034309,0.0001437755914949950],
-[1.284165231,1.3059697282,1.3408259576,1.3770498469,1.4083776842,1.4346340126,1.4545779876,1.4658887137,1.4671638972,1.457608962,1.4400548643,1.4158684686,1.3864911961,1.3528812542,1.3159697978,1.27622903,1.2340137083,1.1905291022,1.1471037258,1.1047013276,1.0647737249,1.0283340659,0.9964942039,0.9703629438,0.9510519527,0.9386721807,0.932316307,0.9316292996,0.9359838821,0.9443012277,0.9554470086,0.9678781103,0.9812761433,0.9953894103,1.0098153246,1.0236249732,1.035479081,1.0451994053,1.0530930686,1.0593183708,1.0634438538,1.0645809137,1.0637641578,1.0623066923,1.0608111193,1.0589993944,1.0561690641,1.0531914677,1.0515722425,1.052330754,1.0553372965,1.0597522653,1.0661637808,1.0752634417,1.0874733411,1.1017415355,1.1159815378,1.1309096828,1.1470504754,1.1633078085,1.1777943775,1.1882903501,1.1963378464,1.2035708256,1.2108560457,1.2175013424,1.2218302494,1.2239011525,1.223611334,1.2198647763,1.2112533925,1.1958739376,1.1742717733,1.1482333683,1.1203430352,1.0926602484,1.0658097999,1.040887396,1.0189501507,0.9998112064,0.9811922123,0.9621730704,0.9427349027,0.9230154312,0.903354613,0.8841353287,0.8656369091,0.8483181293,0.8323701879,0.8174967062,0.8028084248,0.7870522949,0.7736454722,0.7783827557,0.7836945697,0.7977724963],
-[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,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,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,"95+", ""]] \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif b/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif
deleted file mode 100755
index 3288d103..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/area.html b/wqflask/wqflask/static/packages/jqplot/examples/area.html
deleted file mode 100755
index 2aa52884..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/area.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Filled (Area) Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="zooming.html">Previous</a> <a href="./">Examples</a> <a href="axisLabelTests.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<style type="text/css">
-.jqplot-target {
- margin: 30px;
-}
-
-#customTooltipDiv {
- position: absolute;
- display: none;
- color: #333333;
- font-size: 0.8em;
- border: 1px solid #666666;
- background-color: rgba(160, 160, 160, 0.2);
- padding: 2px;
-}
-</style>
-
-<p>Area charts support highlighting and mouse events by default. The options and handlers and callbacks are essentially the same as with bar, pie, donut and funnel charts. One notable exception for area charts is that no data point index will be provided to the callback and the entire data set for the highlighted area will be returned. This is because the area is not associated with one particular data point, but with the entire data set of the series.</p>
-
-<div><span>Moused Over: </span><span id="info1b">Nothing</span></div>
-
-<div id="chart1b" style="width:400px;height:260px;"></div>
-
-<p>For the chart below, mouseover has been disabled and click handling is enabled by setting "highlightMouseDown: true". For "fillToZero" area charts that have both negative and positive values as shown below, clicking in either the positive of negative regions will generate the same result.</p>
-
-<div><span>You Clicked: </span><span id="info1c">Nothing yet</span></div>
-
-<div id="chart1c" style="width:400px;height:260px;"></div>
-
-<div id="chart2" style="width:600px;height:260px;"></div>
-
-<div id="customTooltipDiv">I'm a tooltip.</div>
-
-
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){
-
- var l2 = [11, 9, 5, 12, 14];
- var l3 = [4, 8, 5, 3, 6];
- var l4 = [12, 6, 13, 11, 2];
-
-
- var plot1b = $.jqplot('chart1b',[l2, l3, l4],{
- stackSeries: true,
- showMarker: false,
- seriesDefaults: {
- fill: true
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- ticks: ["Mon", "Tue", "Wed", "Thr", "Fri"]
- }
- }
- });
-
- $('#chart1b').bind('jqplotDataHighlight',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info1b').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
-
- $('#chart1b').bind('jqplotDataUnhighlight',
- function (ev) {
- $('#info1b').html('Nothing');
- }
- );
-});
-</script>
-
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){
- var l5 = [4, -3, 3, 6, 2, -2];
- var plot1c = $.jqplot('chart1c',[l5],{
- stackSeries: true,
- showMarker: false,
- seriesDefaults: {
- fill: true,
- fillToZero: true,
- rendererOptions: {
- highlightMouseDown: true
- }
- }
- });
-
- $('#chart1c').bind('jqplotDataClick',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info1c').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
-});
-</script>
-
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){
- var l6 = [11, 9, 5, 12, 14, 8, 7, 9, 6, 11, 9, 3, 4];
- var l7 = [4, 8, 5, 3, 6, 5, 3, 2, 6, 7, 4, 3, 2];
- var l8 = [12, 6, 13, 11, 2, 3, 4, 2, 1, 5, 7, 4, 8];
-
- var ticks = [[1,'Dec 10'], [2,'Jan 11'], [3,'Feb 11'], [4,'Mar 11'], [5,'Apr 11'], [6,'May 11'], [7,'Jun 11'], [8,'Jul 11'], [9,'Aug 11'], [10,'Sep 11'], [11,'Oct 11'], [12,'Nov 11'], [13,'Dec 11']];
-
-
- plot2 = $.jqplot('chart2',[l6, l7, l8],{
- stackSeries: true,
- showMarker: false,
- highlighter: {
- show: true,
- showTooltip: false
- },
- seriesDefaults: {
- fill: true,
- },
- series: [
- {label: 'Beans'},
- {label: 'Oranges'},
- {label: 'Crackers'}
- ],
- legend: {
- show: true,
- placement: 'outsideGrid'
- },
- grid: {
- drawBorder: false,
- shadow: false
- },
- axes: {
- xaxis: {
- ticks: ticks,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -90
- },
- drawMajorGridlines: false
- }
- }
- });
-
- // capture the highlighters highlight event and show a custom tooltip.
- $('#chart2').bind('jqplotHighlighterHighlight',
- function (ev, seriesIndex, pointIndex, data, plot) {
- // create some content for the tooltip. Here we want the label of the tick,
- // which is not supplied to the highlighters standard tooltip.
- var content = plot.series[seriesIndex].label + ', ' + plot.series[seriesIndex]._xaxis.ticks[pointIndex][1] + ', ' + data[1];
- // get a handle on our custom tooltip element, which was previously created
- // and styled. Be sure it is initiallly hidden!
- var elem = $('#customTooltipDiv');
- elem.html(content);
- // Figure out where to position the tooltip.
- var h = elem.outerHeight();
- var w = elem.outerWidth();
- var left = ev.pageX - w - 10;
- var top = ev.pageY - h - 10;
- // now stop any currently running animation, position the tooltip, and fade in.
- elem.stop(true, true).css({left:left, top:top}).fadeIn(200);
- }
- );
-
- // Hide the tooltip when unhighliting.
- $('#chart2').bind('jqplotHighlighterUnhighlight',
- function (ev) {
- $('#customTooltipDiv').fadeOut(300);
- }
- );
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html
deleted file mode 100755
index 88d3fbb4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Line Charts and Options</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="area.html">Previous</a> <a href="./">Examples</a> <a href="axisLabelsRotatedText.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<p>jqPlot support axis labels through the "label" option of each axis. The default label renderer creates labels in div tags, which allows full css control over every label. Labels are assigned css classes like "jqplot-axis_name-label" where "axis_name" will be xaxis, yaxis, etc.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>By including the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisLabelRenderer.min.js" plugins, you can render label text directly onto canvas elements. This allows text to be rotated and yaxes will have their labels rotated 90 degrees by default. By default the labels will be rendered using the Hershey font metrics and not stroked as text. Most recent browsers (include IE 9) support native text rendering in canvas elements.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>If a visitors is using a browser suppporting native canvas fonts, the plot belowsupported browser, they will see the labels in the plot below rendered as 12 pt Georgia (or their system serif font if Georgia is unavailable). If they are on an unsupported browser, they will see the default Hershey font.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var cosPoints = [];
- for (var i=0; i<2*Math.PI; i+=0.1){
- cosPoints.push([i, Math.cos(i)]);
- }
- var plot1 = $.jqplot('chart1', [cosPoints], {
- series:[{showMarker:false}],
- axes:{
- xaxis:{
- label:'Angle (radians)'
- },
- yaxis:{
- label:'Cosine'
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var cosPoints = [];
- for (var i=0; i<2*Math.PI; i+=0.1){
- cosPoints.push([i, Math.cos(i)]);
- }
- var plot2 = $.jqplot('chart2', [cosPoints], {
- series:[{showMarker:false}],
- axes:{
- xaxis:{
- label:'Angle (radians)',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- yaxis:{
- label:'Cosine',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var cosPoints = [];
- for (var i=0; i<2*Math.PI; i+=0.1){
- cosPoints.push([i, Math.cos(i)]);
- }
- var plot3 = $.jqplot('chart3', [cosPoints], {
- series:[{showMarker:false}],
- axes:{
- xaxis:{
- label:'Angle (radians)',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- labelOptions: {
- fontFamily: 'Georgia, Serif',
- fontSize: '12pt'
- }
- },
- yaxis:{
- label:'Cosine',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- labelOptions: {
- fontFamily: 'Georgia, Serif',
- fontSize: '12pt'
- }
- }
- }
- });
-});
-</script>
-
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html
deleted file mode 100755
index 5f886ecc..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Axis Labels and Rotated Text</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="axisLabelTests.html">Previous</a> <a href="./">Examples</a> <a href="axisScalingForceTickAt.html">Next</a></div>
-
- <div class="example-plot" id="chart1"></div><div class="example-plot" id="chart2"></div><div class="example-plot" id="chart3"></div><div class="example-plot" id="chart4"></div>
-<!-- Example scripts go here -->
-
- <style type="text/css">
- .jqplot-point-label {white-space: nowrap;}
-/* .jqplot-yaxis-label {font-size: 14pt;}*/
-/* .jqplot-yaxis-tick {font-size: 7pt;}*/
-
- div.jqplot-target {
- height: 400px;
- width: 750px;
- margin: 70px;
- }
- </style>
-
-
- <script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){
- var line1 = [6.5, 9.2, 14, 19.65, 26.4, 35, 51];
-
- var plot1 = $.jqplot('chart1', [line1], {
- legend: {show:false},
- axes:{
- xaxis:{
- tickOptions:{
- angle: -30
- },
- tickRenderer:$.jqplot.CanvasAxisTickRenderer,
- label:'Core Motor Amperage',
- labelOptions:{
- fontFamily:'Helvetica',
- fontSize: '14pt'
- },
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- yaxis:{
- renderer:$.jqplot.LogAxisRenderer,
- tickOptions:{
- labelPosition: 'middle',
- angle:-30
- },
- tickRenderer:$.jqplot.CanvasAxisTickRenderer,
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- labelOptions:{
- fontFamily:'Helvetica',
- fontSize: '14pt'
- },
- label:'Core Motor Voltage'
- }
- }
- });
-
-});
-</script>
-<script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){
- var line2 = [['1/1/2008', 42], ['2/14/2008', 56], ['3/7/2008', 39], ['4/22/2008', 81]];
-
- var plot2 = $.jqplot('chart2', [line2], {
- axes: {
- xaxis: {
- renderer: $.jqplot.DateAxisRenderer,
- label: 'Incliment Occurrance',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- // labelPosition: 'middle',
- angle: 15
- }
-
- },
- yaxis: {
- label: 'Incliment Factor',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- }
- }
- });
-
-});
-</script>
-<script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){
- var line3 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp Marketing Gimmick', 9],
- ['HDTV Receiver', 15], ['8 Track Control Module', 12],
- ['SSPFM (Sealed Sludge Pump Fourier Modulator)', 3],
- ['Transcender/Spice Rack', 6], ['Hair Spray Rear View Mirror Danger Indicator', 18]];
-
- var plot3 = $.jqplot('chart3', [line3], {
- series:[{renderer:$.jqplot.BarRenderer}],
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- label: 'Warranty Concern',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -30,
- fontFamily: 'Courier New',
- fontSize: '9pt'
- }
-
- },
- yaxis: {
- label: 'Occurance',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- }
- }
- });
-
-
-});
-</script>
-
- <script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){
-
- var line = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15],
- ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3],
- ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
-
- var line2 = [['Nickle', 28], ['Aluminum', 13], ['Xenon', 54], ['Silver', 47],
- ['Sulfer', 16], ['Silicon', 14], ['Vanadium', 23]];
-
- var plot4 = $.jqplot('chart4', [line, line2], {
- title: 'Concern vs. Occurrance',
- series:[{renderer:$.jqplot.BarRenderer}, {xaxis:'x2axis', yaxis:'y2axis'}],
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- label: 'Warranty Concern',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: 30
- }
- },
- x2axis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- label: 'Metal',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: 30
- }
- },
- yaxis: {
- autoscale:true,
- label: 'Occurance',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: 30
- }
- },
- y2axis: {
- autoscale:true,
- label: 'Number',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: 30
- }
- }
- }
- });
-});
- </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html b/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html
deleted file mode 100755
index f9b8056b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Force Plot to Have Tick at 0 or 100</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="axisLabelsRotatedText.html">Previous</a> <a href="./">Examples</a> <a href="bandedLine.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
-<script language="javascript" type="text/javascript">
-
- function makeContinuousData(npoints, ybase, yvariation) {
- var data = [];
- if (yvariation == null) {
- yvariation = ybase;
- ybase = (Math.random() - 0.5) * 2 * yvariation;
- }
- for (j=0; j<npoints; j++) {
- data.push([j, ybase]);
- ybase += (Math.random() - 0.5) * 2 * yvariation;
- }
- return data;
- }
-
- function makeRandomData(npoints, yvariation) {
- var data = [];
- for (j=0; j<npoints; j++) {
- var y = (Math.random() - 0.5) * 2 * yvariation;
- data.push([j, y]);
- }
- return data;
- }
- function makeDualContinuousData(npoints, xbase, xvariation, ybase, yvariation) {
- var data = [];
- if (ybase == null && yvariation == null) {
- xvariation = xbase;
- yvariation = xvariation;
- xbase = (Math.random() - 0.5) * 2 * xvariation;
- ybase = (Math.random() - 0.5) * 2 * yvariation;
- }
- for (j=0; j<npoints; j++) {
- data.push([xbase, ybase]);
- xbase += (Math.random()) * xvariation;
- ybase += (Math.random() - 0.5) * 2 * yvariation;
- }
- return data;
- }
-
- var plotOptions = {
- axes: {
- yaxis: {
- rendererOptions: { forceTickAt0: true, forceTickAt100: true }
- }
- }
- };
-
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot1 = $.jqplot('chart1',[makeContinuousData(100, 55)], {});
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot2 = $.jqplot('chart2',[makeContinuousData(100, 1, 0.001)], {});
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot3 = $.jqplot('chart3',[makeContinuousData(20, 40, 5)], {
- axes: {
- yaxis: {
- rendererOptions: { forceTickAt0: true, forceTickAt100: true }
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot4 = $.jqplot('chart4',[makeContinuousData(20, 40, 5)], {
- axesDefaults: {
- pad: 0
- },
- axes: {
- yaxis: {
- rendererOptions: { forceTickAt0: true, forceTickAt100: true }
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot5 = $.jqplot('chart5',[makeContinuousData(20, 40, 5)], {
- axes: {
- xaxis: {
- padMin: 0,
- padMax: 1.2
- },
- yaxis: {
- padMax: 0,
- rendererOptions: { forceTickAt0: true, forceTickAt100: true }
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot6 = $.jqplot('chart6',[makeContinuousData(20, 40, 8)], {
- axes: {
- yaxis: {
- rendererOptions: { forceTickAt0: true, forceTickAt100: true }
- }
- },
- canvasOverlay: {
- show: true,
- objects: [
- {horizontalLine: {
- name: 'pebbles',
- y: 0,
- lineWidth: 3,
- color: 'rgb(100, 55, 124)',
- shadow: true,
- lineCap: 'butt',
- xOffset: 0
- }},
- {dashedHorizontalLine: {
- name: 'bam-bam',
- y: 100,
- lineWidth: 4,
- dashPattern: [8, 16],
- lineCap: 'round',
- xOffset: '25',
- color: 'rgb(66, 98, 144)',
- shadow: false
- }}
- ]
- }
- });
-});
-
-function lineup(plot, name) {
- var co = plot.plugins.canvasOverlay;
- var line = co.get(name);
- line.options.y += 5;
- co.draw(plot);
-}
-
-function linedown(plot, name) {
- var co = plot.plugins.canvasOverlay;
- var line = co.get(name);
- line.options.y -= 5;
- co.draw(plot);
-}
-
-</script>
-
-<div id="chart1" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart2" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart3" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart4" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart5" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart6" style="height:300px; width:600px;margin: 30px;"></div>
-
-<div>
-<button onclick="lineup(plot6, 'pebbles')">&nbsp;Pebbles Up&nbsp;&nbsp;</button>
-<button onclick="linedown(plot6, 'pebbles')">&nbsp;Pebbles Down&nbsp;</button>
-</div>
-<div>
-<button onclick="lineup(plot6, 'bam-bam')">Bam-Bam Up</button>
-<button onclick="linedown(plot6, 'bam-bam')">Bam-Bam Down</button>
-</div>
-
-<pre class="code brush: js"></pre>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html b/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html
deleted file mode 100755
index 1da1926c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Error Bands and Confidence Intervals</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="axisScalingForceTickAt.html">Previous</a> <a href="./">Examples</a> <a href="bar-charts.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-<p>Bands (like confidence intervals or error bands) can be added to line charts through the "bands" option of the line renderer. The band data can be automatically computed or manually assigned. If assigned manually, the simpliest approach is to set the "rendererOptions: { bandData: [] }" array on the series. Note that band data is taken into account when axes scale themselves so bands will not get clipped.</p>
-
-
-<p>Band data can be supplied as arrays of [x,y] values. One array for the upper band line and one for the lower band line.</p>
-
- <div id="chart01" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
-
-
-<p>The number of points in the band data arrays does not have to correspond to the number of points in the data series. Also, band data will be drawn as smoothed lines if the data series is smoothed.</p>
-
- <div id="chart02" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
-
-<p>In this example, band data is supplied as an array of arrays of y values for the low and hi bands. X values for the bands are taken from the x values of the series. The band data is of the form: [ [y low 1, y hi 1], [y low 2, y hi 2], ... ] and there must be a corresponding array of low/hi y values for each x value in the data series.</p>
-
- <div id="chart1" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
-
-<p>The band data can also be supplied as an array of [low y values], [hi y values]. In this case there must also be an equal number of low y values and hi y values as there are data points in the series. X values for the low and hi bands will be taken from the series data. Additionally, the order of low/hi values does not matter as long as they are consistent. jqPlot will figure out which is the low values and which are the high values.</p>
-
- <div id="chart2" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
-
-<p>Band data does not have to be provided. By default, jqPlot will compute +/- 3% band intervals if the "rendererOptions: { bands: { show: true } }" option is set. The band intervals can be customized as well through the "rendererOptions: { bands: { interval: [number|string|arry] } }" option. Valid intervals are:</p>
-
-<ul>
-<li> '1.7' - will add bands at y +/- 1.7 above and below the line.</li>
-<li> '10%' - will compute +/- 10% interval bands.</li>
-<li> [3, '-10%'] - will add bands at y + 3 and y - 10% above and below the line.</li>
-</ul>
-
-<p>Examples of such interval specifications are shown below:</p>
-
- <div id="chart3" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
- <div id="chart4" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart5" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
-
-<p>You can also customize the fill color of the bands and turn on/off band lines. By default, bands respond to the mouse over event, but they can be set to respond to mouse down as well.</p>
- <div id="chart6" style="height:300px; width:600px;"></div>
- <pre class="code brush:js"></pre>
-
-<p>Note, the plots on this page all extend the following pre-defined theme:</p>
-
- <pre class="code brush:js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // Band data in arrays of [x,y] values.
- bdat = [[['7/1/2011', 8], ['7/2/2011', 9], ['7/3/2011', 8], ['7/4/2011', 13], ['7/5/2011', 11], ['7/6/2011', 13]],
- [['7/1/2011', 12], ['7/2/2011', 13], ['7/3/2011', 12], ['7/4/2011', 17], ['7/5/2011', 15], ['7/6/2011', 17]]];
-
- dat = [['7/1/2011', 10], ['7/2/2011', 11], ['7/3/2011', 10], ['7/4/2011', 15], ['7/5/2011', 13], ['7/6/2011', 15]];
-
- plot01 = $.jqplot('chart01', [dat], $.extend(true, {}, myTheme, {
- series: [{
- rendererOptions: {
- bandData: bdat
- }
- }],
- axes: {
- xaxis: {
- renderer: $.jqplot.DateAxisRenderer,
- min: '7/1/2011',
- max: '7/6/2011',
- tickInterval: '1 day'
- }
- }
- }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // Band data in arrays of [x,y] values.
- // Here the low band line (1st array) has 5 points and the hi band line has 4 points.
- bdat = [[['7/1/2011', 9], ['7/3/2011', 7], ['7/4/2011', 13], ['7/5/2011', 11], ['7/6/2011', 13]],
- [['7/1/2011', 12], ['7/3/2011', 14], ['7/4/2011', 18], ['7/6/2011', 16]]];
-
- dat = [['7/1/2011', 10], ['7/2/2011', 11], ['7/3/2011', 10], ['7/4/2011', 15], ['7/5/2011', 13], ['7/6/2011', 15]];
-
- plot02 = $.jqplot('chart02', [dat], $.extend(true, {}, myTheme, {
- series: [{
- rendererOptions: {
- bandData: bdat,
-
- // turn on smoothing
- smooth: true
- }
- }],
- axes: {
- xaxis: {
- renderer: $.jqplot.DateAxisRenderer,
- min: '7/1/2011',
- max: '7/6/2011',
- tickInterval: '1 day'
- }
- }
- }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // data points for line.
- dat = [[0, 10], [1, 11], [2, 10], [3, 15], [4, 13], [5, 15]];
-
- // band data in [[low_y_1, hi_y_1], [low_y_2, hi_y_2],...] format
- bdat = [[7, 13], [8, 14], [7, 13], [12, 18], [10, 16], [12, 18]];
-
- plot1 = $.jqplot('chart1', [dat], $.extend(true, {}, myTheme, {
- series: [{
- rendererOptions: {
- // Set the band data on the series.
- // Bands will be turned on automatically if
- // valid band data is present.
- bandData: bdat,
- smooth: true
- }
- }]
- }));
-});
-
-</script>
-
-
-<script class="code" type="text/javascript">
-
-$(document).ready(function(){
- // here band data specified as an array of [low y values] and [hi y values]
- bdat = [[7, 8, 7, 12, 10, 12], [13, 14, 13, 18, 16, 18]];
-
- // Same plot as before with different band data specification and smoothed lines.
- plot2 = $.jqplot('chart2', [dat], $.extend(true, {}, myTheme, {
- series: [
- {
- rendererOptions: {
- bandData: bdat,
- smooth: true
- }
- }]
- }));
-});
-
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot3 = $.jqplot('chart3', [dat], $.extend(true, {}, myTheme, {
- series: [{
- rendererOptions: {
- bands: {
- // draw bands at 1.7 "units" above and below line.
- interval: 1.7
- },
- smooth: true
- }
- }]
- }));
-});
-
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot4 = $.jqplot('chart4', [dat], $.extend(true, {}, myTheme, {
- series: [{
- rendererOptions: {
- bands: {
- // draw interval at 10% above and below line.
- interval: '10%'
- },
- smooth: true
- }
- }]
- }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot5 = $.jqplot('chart5', [dat], $.extend(true, {}, myTheme, {
- series: [{
- rendererOptions: {
- bands: {
- // draw interval at 3 units above and 10% below line.
- interval: [3, '-10%']
- },
- smooth: true
- }
- }]
- }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- plot6 = $.jqplot('chart6', [dat], $.extend(true, {}, myTheme, {
- series: [{
- rendererOptions: {
- bands: {
- // draw interval at 3 units above and 10% below line.
- interval: 4,
- fillColor: 'rgba(198, 88, 88, 0.6)',
- showLines: true
- },
-
- // highlight the band on mouse down, not on mouse over.
- highlightMouseDown: true,
- smooth: true
- }
- }]
- }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-///////
-// A default set of reusable plot options. Note that line
-// smoothing is turned on. Bands will be drawn with the same
-// smoothing as the line.
-//////
-myTheme = {
- grid: {
- drawBorder: false,
- shadow: false,
- background: 'rgba(255, 255, 255, 0.0)'
- },
- seriesDefaults: {
- shadow: false,
- showMarker: false
- },
- axes: {
- xaxis: {
- pad: 1.0,
- tickOptions: {
- showGridline: false
- }
- },
- yaxis: {
- pad: 1.05
- }
- }
-};
-</script>
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html
deleted file mode 100755
index 67e9dcca..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html
+++ /dev/null
@@ -1,219 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Vertical and Horizontal Bar Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="bandedLine.html">Previous</a> <a href="./">Examples</a> <a href="barLineAnimated.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <style type="text/css">
-
- .note {
- font-size: 0.8em;
- }
- .jqplot-yaxis-tick {
- white-space: nowrap;
- }
- </style>
-
- <div id="chart1" style="width:600px; height:250px;"></div>
-
- <pre class="code brush: js"></pre>
-
- <div id="chart2" style="width:400px; height:300px;"></div>
-
- <pre class="code brush: js"></pre>
-
- <p class="text">Click on a bar in the plot below to update the text box.</p>
- <p class="text">You Clicked:
- <span id="info3">Nothing yet.</span>
- </p>
- <div id="chart3" style="width:400px; height:300px;"></div>
-
- <pre class="code brush: js"></pre>
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
- var s1 = [200, 600, 700, 1000];
- var s2 = [460, -210, 690, 820];
- var s3 = [-260, -440, 320, 200];
- // Can specify a custom tick Array.
- // Ticks should match up one for each y value (category) in the series.
- var ticks = ['May', 'June', 'July', 'August'];
-
- var plot1 = $.jqplot('chart1', [s1, s2, s3], {
- // The "seriesDefaults" option is an options object that will
- // be applied to all series in the chart.
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions: {fillToZero: true}
- },
- // Custom labels for the series are specified with the "label"
- // option on the series option. Here a series option object
- // is specified for each series.
- series:[
- {label:'Hotel'},
- {label:'Event Regristration'},
- {label:'Airfare'}
- ],
- // Show the legend and put it outside the grid, but inside the
- // plot container, shrinking the grid to accomodate the legend.
- // A value of "outside" would not shrink the grid and allow
- // the legend to overflow the container.
- legend: {
- show: true,
- placement: 'outsideGrid'
- },
- axes: {
- // Use a category axis on the x axis and use our custom ticks.
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- ticks: ticks
- },
- // Pad the y axis just a little so bars can get close to, but
- // not touch, the grid boundaries. 1.2 is the default padding.
- yaxis: {
- pad: 1.05,
- tickOptions: {formatString: '$%d'}
- }
- }
- });
-});
- </script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // For horizontal bar charts, x an y values must will be "flipped"
- // from their vertical bar counterpart.
- var plot2 = $.jqplot('chart2', [
- [[2,1], [4,2], [6,3], [3,4]],
- [[5,1], [1,2], [3,3], [4,4]],
- [[4,1], [7,2], [1,3], [2,4]]], {
- seriesDefaults: {
- renderer:$.jqplot.BarRenderer,
- // Show point labels to the right ('e'ast) of each bar.
- // edgeTolerance of -15 allows labels flow outside the grid
- // up to 15 pixels. If they flow out more than that, they
- // will be hidden.
- pointLabels: { show: true, location: 'e', edgeTolerance: -15 },
- // Rotate the bar shadow as if bar is lit from top right.
- shadowAngle: 135,
- // Here's where we tell the chart it is oriented horizontally.
- rendererOptions: {
- barDirection: 'horizontal'
- }
- },
- axes: {
- yaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var s1 = [2, 6, 7, 10];
- var s2 = [7, 5, 3, 4];
- var s3 = [14, 9, 3, 8];
- plot3 = $.jqplot('chart3', [s1, s2, s3], {
- // Tell the plot to stack the bars.
- stackSeries: true,
- captureRightClick: true,
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions: {
- // Put a 30 pixel margin between bars.
- barMargin: 30,
- // Highlight bars when mouse button pressed.
- // Disables default highlighting on mouse over.
- highlightMouseDown: true
- },
- pointLabels: {show: true}
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- },
- yaxis: {
- // Don't pad out the bottom of the data range. By default,
- // axes scaled as if data extended 10% above and below the
- // actual range to prevent data points right on grid boundaries.
- // Don't want to do that here.
- padMin: 0
- }
- },
- legend: {
- show: true,
- location: 'e',
- placement: 'outside'
- }
- });
- // Bind a listener to the "jqplotDataClick" event. Here, simply change
- // the text of the info3 element to show what series and ponit were
- // clicked along with the data for that point.
- $('#chart3').bind('jqplotDataClick',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html b/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html
deleted file mode 100755
index 7f485242..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Animated Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="bar-charts.html">Previous</a> <a href="./">Examples</a> <a href="barTest.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <div id="chart1" style="width:700px; height:300px"></div>
-
- <p>This plot animates the bars bottom to top and the line series left to right upon initial page load. Since the <code>animateReplot: true</code> option is set, the bars and line will also animate upon calls to <code>plot1.replot( { resetAxes: true } )</code>.</p>
-
- <pre class="code brush:js"></pre>
-
-
- <script class="code" type="text/javascript">
-
- $(document).ready(function () {
- var s1 = [[2002, 112000], [2003, 122000], [2004, 104000], [2005, 99000], [2006, 121000],
- [2007, 148000], [2008, 114000], [2009, 133000], [2010, 161000], [2011, 173000]];
- var s2 = [[2002, 10200], [2003, 10800], [2004, 11200], [2005, 11800], [2006, 12400],
- [2007, 12800], [2008, 13200], [2009, 12600], [2010, 13100]];
-
- plot1 = $.jqplot("chart1", [s2, s1], {
- // Turns on animatino for all series in this plot.
- animate: true,
- // Will animate plot on calls to plot1.replot({resetAxes:true})
- animateReplot: true,
- cursor: {
- show: true,
- zoom: true,
- looseZoom: true,
- showTooltip: false
- },
- series:[
- {
- pointLabels: {
- show: true
- },
- renderer: $.jqplot.BarRenderer,
- showHighlight: false,
- yaxis: 'y2axis',
- rendererOptions: {
- // Speed up the animation a little bit.
- // This is a number of milliseconds.
- // Default for bar series is 3000.
- animation: {
- speed: 2500
- },
- barWidth: 15,
- barPadding: -15,
- barMargin: 0,
- highlightMouseOver: false
- }
- },
- {
- rendererOptions: {
- // speed up the animation a little bit.
- // This is a number of milliseconds.
- // Default for a line series is 2500.
- animation: {
- speed: 2000
- }
- }
- }
- ],
- axesDefaults: {
- pad: 0
- },
- axes: {
- // These options will set up the x axis like a category axis.
- xaxis: {
- tickInterval: 1,
- drawMajorGridlines: false,
- drawMinorGridlines: true,
- drawMajorTickMarks: false,
- rendererOptions: {
- tickInset: 0.5,
- minorTicks: 1
- }
- },
- yaxis: {
- tickOptions: {
- formatString: "$%'d"
- },
- rendererOptions: {
- forceTickAt0: true
- }
- },
- y2axis: {
- tickOptions: {
- formatString: "$%'d"
- },
- rendererOptions: {
- // align the ticks on the y2 axis with the y axis.
- alignTicks: true,
- forceTickAt0: true
- }
- }
- },
- highlighter: {
- show: true,
- showLabel: true,
- tooltipAxes: 'y',
- sizeAdjust: 7.5 , tooltipLocation : 'ne'
- }
- });
-
- });
-
-
-</script>
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/barTest.html b/wqflask/wqflask/static/packages/jqplot/examples/barTest.html
deleted file mode 100755
index f28ad688..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/barTest.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Bar Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="barLineAnimated.html">Previous</a> <a href="./">Examples</a> <a href="bezierCurve.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <p>Below is a default bar plot. Bars will highlight on mouseover. Events are triggered when you mouseover a bar and also when you click on a bar. Here We capture the 'jqplotDataClick' event and display the clicked series index, point index and data values. When series data is assigned as a 1-dimensional array as in this example, jqPlot automatically converts it into a 2-dimensional array for plotting. So a series defined as [2, 6, 7, 10] will become [[1,2], [2,6], [3,7], [4,10]].<p>
-
- <div><span>You Clicked: </span><span id="info1">Nothing yet</span></div>
-
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
- <p>The plot target also fires a 'jqplotDataMouseOver' when the cursor is moused over a bar even if highlighting is turned off. This event will fire continuously as the user mouses over the bar. 'jqplotDataHighlight' fires only once when the user first passes over the bar. Additionally, a 'jqplotDataUnhighlight' event is fired when the user moves out of a bar (if highlighting is enabled).<p>
-
- <div><span>Moused Over: </span><span id="info2">Nothing</span></div>
-
- <div id="chart2" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
- <div><span>Moused Over: </span><span id="info2b">Nothing</span></div>
- <div><span>Clicked: </span><span id="info2c">Nothing</span></div>
-
- <div id="chart2b" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
- <p>The next example has the plot's 'captureRightClick' option set to true. This causes the plot to fire a 'jqplotRightClick' event the the user clicks the right mouse button over a bar. Here, the 'highlightMouseDown' option is also set to true. This will highlight a slice on mouse down instead of on move over. Highlighting will occur for either left or right click.</p>
-
- <div><span>You Right Clicked: </span><span id="info3">Nothing yet</span></div>
-
- <div id="chart3" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
- <div id="chart4" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
- <div id="chart5" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
-<p>A pie chart is added to test for incompatibilities.</p>
- <div id="chart6" style="margin-top:20px; margin-left:20px; width:300px; height:200px;"></div>
-<pre class="code brush:js"></pre>
-
-<p>The nex example shows the placement of point labels on negative bars. They shou be placed on the opposite position. That is, if it is placed 'north' to the positive bars, then it should be placed 'south' to the negative bars.</p>
- <div id="chart7" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- $.jqplot.config.enablePlugins = true;
- var s1 = [2, 6, 7, 10];
- var ticks = ['a', 'b', 'c', 'd'];
-
- plot1 = $.jqplot('chart1', [s1], {
- // Only animate if we're not using excanvas (not in IE 7 or IE 8)..
- animate: !$.jqplot.use_excanvas,
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- pointLabels: { show: true }
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- ticks: ticks
- }
- },
- highlighter: { show: false }
- });
-
- $('#chart1').bind('jqplotDataClick',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
- });</script>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- var s1 = [2, 6, 7, 10];
- var s2 = [7, 5, 3, 2];
- var ticks = ['a', 'b', 'c', 'd'];
-
- plot2 = $.jqplot('chart2', [s1, s2], {
- seriesDefaults: {
- renderer:$.jqplot.BarRenderer,
- pointLabels: { show: true }
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- ticks: ticks
- }
- }
- });
-
- $('#chart2').bind('jqplotDataHighlight',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info2').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
-
- $('#chart2').bind('jqplotDataUnhighlight',
- function (ev) {
- $('#info2').html('Nothing');
- }
- );
- });</script>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- plot2b = $.jqplot('chart2b', [[[2,1], [4,2], [6,3], [3,4]], [[5,1], [1,2], [3,3], [4,4]], [[4,1], [7,2], [1,3], [2,4]]], {
- seriesDefaults: {
- renderer:$.jqplot.BarRenderer,
- pointLabels: { show: true, location: 'e', edgeTolerance: -15 },
- shadowAngle: 135,
- rendererOptions: {
- barDirection: 'horizontal'
- }
- },
- axes: {
- yaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
-
- $('#chart2b').bind('jqplotDataHighlight',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info2b').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY);
- }
- );
- $('#chart2b').bind('jqplotDataClick',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info2c').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY);
- }
- );
-
- $('#chart2b').bind('jqplotDataUnhighlight',
- function (ev) {
- $('#info2b').html('Nothing');
- }
- );
- });</script>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- var s1 = [2, 6, 7, 10];
- var s2 = [7, 5, 3, 2];
- var s3 = [14, 9, 3, 8];
- plot3 = $.jqplot('chart3', [s1, s2, s3], {
- stackSeries: true,
- captureRightClick: true,
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions: {
- highlightMouseDown: true
- },
- pointLabels: {show: true}
- },
- legend: {
- show: true,
- location: 'e',
- placement: 'outside'
- }
- });
-
- $('#chart3').bind('jqplotDataRightClick',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
- });</script>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- plot4 = $.jqplot('chart4', [[[2,1], [6,2], [7,3], [10,4]], [[7,1], [5,2],[3,3],[2,4]], [[14,1], [9,2], [9,3], [8,4]]], {
- stackSeries: true,
- captureRightClick: true,
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- shadowAngle: 135,
- rendererOptions: {
- barDirection: 'horizontal',
- highlightMouseDown: true
- },
- pointLabels: {show: true, formatString: '%d'}
- },
- legend: {
- show: true,
- location: 'e',
- placement: 'outside'
- },
- axes: {
- yaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
- });</script>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- plot5 = $.jqplot('chart5', [[[2,1], [null,2], [7,3], [10,4]]], {
- captureRightClick: true,
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- shadowAngle: 135,
- rendererOptions: {
- barDirection: 'horizontal',
- highlightMouseDown: true
- },
- pointLabels: {show: true, formatString: '%d'}
- },
- legend: {
- show: true,
- location: 'e',
- placement: 'outside'
- },
- axes: {
- yaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
- });</script>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- plot6 = $.jqplot('chart6', [[1,2,3,4]], {seriesDefaults:{renderer:$.jqplot.PieRenderer}});
- });</script>
-
- <script class="code" type="text/javascript">$(document).ready(function(){
- var s1 = [2, -6, 7, -5];
- var ticks = ['a', 'b', 'c', 'd'];
-
- plot7 = $.jqplot('chart7', [s1], {
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions: { fillToZero: true },
- pointLabels: { show: true }
- },
- axes: {
- // yaxis: { autoscale: true },
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- ticks: ticks
- }
- }
- });
- });</script>
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html b/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html
deleted file mode 100755
index 4741fb57..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Bezier Curve Plots</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="barTest.html">Previous</a> <a href="./">Examples</a> <a href="blockPlot.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <p>The Bezier curve renderer can distinguish between two different input data formats. This first example has the data passed in as 2 data points, the second one defining the Bezier curve to the end point. With this format, non-default axes renderers will require specifying the minimum and maximum on the axes.</p>
-<pre>
- [[xstart, ystart], [cp1x, cp1y, cp2x, cp2y, xend, yend]];
-</pre>
-<div id="chart1" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-<p>This second example has the data broken out into 4 points, which will be assembled to define the Bezier Curve. With this format, any axes renderer can be used without explicitly specifying the minimum and maximum.</p>
-<pre>
- [[xstart, ystart], [cp1x, cp1y], [cp2x, cp2y], [xend, yend]];
-</pre>
-<div id="chart2" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-<p> Here is an example using a date axis renderer with Bezier curves. The data looks like:</p>
-<pre>
- [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]]
-</pre>
-
-<div id="chart3" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var line1 = [[0, 1], [2, 2, 4, .5, 6, 0]];
- var line2 = [[0, 5], [2, 6, 5, 1, 6, .5]];
- var line3 = [[0, 6], [3, 9, 4, 8, 6, 3]];
- var line4 = [[0, 7], [2, 9, 4, 8, 6, 6]];
- var line5 = [[0, 8], [3, 9, 4, 8, 6, 8]];
-
- plot1 = $.jqplot("chart1", [line1,line2, line3, line4, line5], {
- seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer},
- legend:{show:true}
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var s1 = [[0, 1], [2, 2], [4, .5], [6, 0]];
- var s2 = [[0, 5], [2, 6], [5, 1], [6, .5]];
- var s3 = [[0, 6], [3, 9], [4, 8], [6, 3]];
- var s4 = [[0, 7], [2, 9], [4, 8], [6, 6]];
- var s5 = [[0, 8], [3, 9], [4, 8], [6, 8]];
-
- plot2 = $.jqplot("chart2", [s1,s2, s3, s4, s5], {
- seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer},
- legend:{show:true}
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var s1 = [['01/01/2010', 1], ['02/01/2010', 2], ['03/01/2010', .5], ['04/01/2010', 0]];
- var s2 = [['01/01/2010', 5], ['02/01/2010', 6], ['03/01/2010', 1], ['04/01/2010', .5]];
- var s3 = [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]];
- var s4 = [['01/01/2010', 7], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 6]];
- var s5 = [['01/01/2010', 8], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 8]];
-
- plot3 = $.jqplot("chart3", [s1,s2, s3, s4, s5], {
- seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer},
- axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer, numberTicks:4}},
- legend:{show:true}
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.BezierCurveRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html b/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html
deleted file mode 100755
index cfbe68bd..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Block Plots</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="bezierCurve.html">Previous</a> <a href="./">Examples</a> <a href="bodyOpenerNoHeader.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <p>Below is an example block plot. This plot also uses the Enhanced Legend Renderer plugin. Clicking on an item in the legend will toggle display of the appropriate series.</p>
-
- <div id="chart1" class="plot" style="width:500px;height:300px;margin-bottom:30px;"></div>
-
-<p>Blocks can be moved by selecting the series, the point, and an optional duration parameter. If specified, duration will animate the movement. Duration is either a number in milliseconds, or the keywords 'fast' or 'slow'. Higher numbers will cause a slower animation.</p>
- Series: <select id="seriesId">
- <option value="0" selected>First</option>
- <option value="1">Second</option>
- <option value="2">Third</option>
- </select>
- Point: <select id="pointId">
- <option value="0" selected>first</option>
- <option value="1">second</option>
- <option value="2">third</option>
- <option value="3">fourth</option>
- <option value="4">fifth</option>
- <option value="5">six</option>
- </select>
- Duration: <select id="duration">
- <option value="" selected>None</option>
- <option value="150">100</option>
- <option value="fast">fast</option>
- <option value="300">300</option>
- <option value="300">400</option>
- <option value="300">500</option>
- <option value="slow">slow</option>
- <option value="900">700</option>
- <option value="900">800</option>
- <option value="900">900</option>
- </select>
- X: <button id="mxval" type="button" value="-0.5" onclick="move('x', -1);">-1</button> <button id="pxval" type="button" value="-0.5" onclick="move('x', 0.5);">0.5</button>
- Y: <button id="myval" type="button" name="myval" value="-10" onclick="move('y', -30);">-30</button> <button id="pyval" type="button" name="pyval" value="10" onclick="move('y', 15);">15</button>
-
- <pre class="code brush:js"></pre>
-
-
- <p>This second chart is like the first except the "varyBlockColors" renderer option is set to true. This will vary the color of each block in a series separately. This allows displaying a third dimension to the data such as grouping beverage products by producer and by category such as "cola", "tea", "energy drink", etc.</p>
-
- <p>Also, the legend has it's "showSwathces" option set to false, since the blocks of each series will be of varying color and won't correspond to one swatch color. This still enables the user to show and hide the series by clicking on a label in the legend.</p>
-
- <div id="chart2" class="plot" style="width:500px;height:300px;margin-bottom:30px;"></div>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var s1 = [[0.9, 120, 'Vernors'], [1.8, 140, 'Fanta'], [3.2, 90, 'Barqs', {background:'#ddbb33'}],
- [4.1, 140, 'Arizon Iced Tea'], [4.5, 91, 'Red Bull'], [6.8, 17, 'Go Girl']];
- var s2 = [[1.3, 44, 'Pepsi'], [2.1, 170, 'Sierra Mist'], [2.6, 66, 'Moutain Dew'],
- [4, 52, 'Sobe'], [5.4, 16, 'Amp'], [6, 48, 'Aquafina']];
- var s3 = [[1, 59, 'Coca-Cola', {background:'rgb(250, 160, 160)'}], [2, 50, 'Ambasa'],
- [3, 90, 'Mello Yello'], [4, 90, 'Sprite'], [5, 71, 'Squirt'], [5, 155, 'Youki']];
-
- $('#chart1').jqplot([s1, s2, s3],{
- seriesDefaults:{
- renderer:$.jqplot.BlockRenderer
- },
- legend:{
- renderer: $.jqplot.EnhancedLegendRenderer,
- show:true
- },
- series: [
- {},
- {rendererOptions: {
- css:{background:'#A1EED6'}
- }},
- {rendererOptions: {
- css:{background:'#D3E4A0'}
- }}
- ],
- axes: {
- xaxis: {
- min:0,
- max: 8
- },
- yaxis: {
- min:0,
- max: 200
- }
- }
- });
-});
-
- function move(dir, val) {
- var plot1 = $('#chart1').data('jqplot');
- val = parseFloat(val);
- var sidx = parseInt($('#seriesId').val());
- var pidx = parseInt($('#pointId').val());
- var duration = $('#duration').val();
- var x = plot1.series[sidx].data[pidx][0];
- var y = plot1.series[sidx].data[pidx][1];
- (dir == 'x') ? x += val : y += val;
- plot1.series[sidx].moveBlock(pidx, x, y, duration);
- }
-
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var s1 = [[0.9, 120, 'Vernors'], [1.8, 140, 'Fanta'], [3.2, 90, 'Barqs'],
- [4.1, 140, 'Arizon Iced Tea'], [4.5, 91, 'Red Bull'], [6.8, 17, 'Go Girl']];
- var s2 = [[1.3, 44, 'Pepsi'], [2.1, 170, 'Sierra Mist'], [2.6, 66, 'Moutain Dew'],
- [4, 52, 'Sobe'], [5.4, 16, 'Amp'], [6, 48, 'Aquafina']];
- var s3 = [[1, 59, 'Coca-Cola'], [2, 50, 'Sprite'], [3, 90, 'Mello Yello'],
- [4, 90, 'Ambasa'], [5, 71, 'Squirt'], [5, 155, 'Youki']];
-
-
- var plot2 = $.jqplot('chart2',[s1, s2, s3],{
- seriesDefaults:{
- renderer:$.jqplot.BlockRenderer,
- rendererOptions: {
- varyBlockColors: true
- },
- pointLabels:{
- show: false
- }
- },
- legend:{
- renderer: $.jqplot.EnhancedLegendRenderer,
- show:true,
- showSwatches: false
- },
- series: [{label: 'Independent Brands'}, {label: 'Pepsi Brands'}, {label: 'Coke Brands'}],
- axes: {
- xaxis: {
- min:0,
- max: 8
- },
- yaxis: {
- min:0,
- max: 200
- }
- }
- });
-
- });
-
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.blockRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html b/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html
deleted file mode 100755
index d210b98e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Bubble Plots</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="bodyOpenerNoHeader.html">Previous</a> <a href="./">Examples</a> <a href="bubbleChart.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
-
- .note {
- font-size: 0.8em;
- }
-
- #tooltip1b {
- font-size: 12px;
- color: rgb(15%, 15%, 15%);
- padding:2px;
- background-color: rgba(95%, 95%, 95%, 0.8);
- }
-
- #legend1b {
- font-size: 12px;
- border: 1px solid #cdcdcd;
- border-collapse: collapse;
- }
- #legend1b td, #legend1b th {
- border: 1px solid #cdcdcd;
- padding: 1px 4px;
- }
-
-
- </style>
-
-<p>Bubble charts represent 3 dimensional data. First, a basic bubble chart with the "bubbleGradients: true" option to specify gradient fills. Radial gradients are not supported in IE version before IE 9 and will be automatically disabled.</p>
-
-<div id="chart1" style="height:340px; width:460px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>Data is passed in to a bubble chart as a series of [x, y, radius, &lt;label or object&gt;]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.</p>
-
-<p>By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.</p>
-
-<p>Next are some basic customizations of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.</p>
-
-<div id="chart2" style="height:340px; width:460px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>In the following example, display of a custom toolip and highlighting of a custom table legend is performed by binding to the "jqplotDataHighlight" and "jqplotDataUnhighlight" events. The custom legend table here is dynamically created with a few lines of jQuery (O.K., it could be done in one line) based on the data array of the plot.</p>
-
-<div style="position:absolute;z-index:99;display:none;" id="tooltip1b"></div>
-
-<table style="margin-left:auto; margin-right:auto;"><tr>
- <td><div id="chart1b" style="width:460px;height:340px;"></div></td>
- <td><div style="height:340px;"><table id="legend1b"><tr><th>Company</th><th>R Value</th></tr></table></div></td>
-</tr></table>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"],
- [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"],
- [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-
- var plot1 = $.jqplot('chart1',[arr],{
- title: 'Bubble Chart with Gradient Fills',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer,
- rendererOptions: {
- bubbleGradients: true
- },
- shadow: true
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"],
- [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"],
- [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-
- var plot2 = $.jqplot('chart2',[arr],{
- title: 'Transparent Bubbles',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer,
- rendererOptions: {
- bubbleAlpha: 0.6,
- highlightAlpha: 0.8
- },
- shadow: true,
- shadowAlpha: 0.05
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"],
- [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"],
- [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-
- var plot1b = $.jqplot('chart1b',[arr],{
- title: 'Tooltip and Custom Legend Highlighting',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer,
- rendererOptions: {
- bubbleAlpha: 0.6,
- highlightAlpha: 0.8,
- showLabels: false
- },
- shadow: true,
- shadowAlpha: 0.05
- }
- });
-
- // Legend is a simple table in the html.
- // Dynamically populate it with the labels from each data value.
- $.each(arr, function(index, val) {
- $('#legend1b').append('<tr><td>'+val[3]+'</td><td>'+val[2]+'</td></tr>');
- });
-
- // Now bind function to the highlight event to show the tooltip
- // and highlight the row in the legend.
- $('#chart1b').bind('jqplotDataHighlight',
- function (ev, seriesIndex, pointIndex, data, radius) {
- var chart_left = $('#chart1b').offset().left,
- chart_top = $('#chart1b').offset().top,
- x = plot1b.axes.xaxis.u2p(data[0]), // convert x axis unita to pixels
- y = plot1b.axes.yaxis.u2p(data[1]); // convert y axis units to pixels
- var color = 'rgb(50%,50%,100%)';
- $('#tooltip1b').css({left:chart_left+x+radius+5, top:chart_top+y});
- $('#tooltip1b').html('<span style="font-size:14px;font-weight:bold;color:' +
- color + ';">' + data[3] + '</span><br />' + 'x: ' + data[0] +
- '<br />' + 'y: ' + data[1] + '<br />' + 'r: ' + data[2]);
- $('#tooltip1b').show();
- $('#legend1b tr').css('background-color', '#ffffff');
- $('#legend1b tr').eq(pointIndex+1).css('background-color', color);
- });
-
- // Bind a function to the unhighlight event to clean up after highlighting.
- $('#chart1b').bind('jqplotDataUnhighlight',
- function (ev, seriesIndex, pointIndex, data) {
- $('#tooltip1b').empty();
- $('#tooltip1b').hide();
- $('#legend1b tr').css('background-color', '#ffffff');
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.bubbleRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html b/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html
deleted file mode 100755
index 628d9066..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html
+++ /dev/null
@@ -1,264 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Bubble Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="bubble-plots.html">Previous</a> <a href="./">Examples</a> <a href="candlestick-charts.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- .jqplot-target {
- margin-bottom: 2em;
- }
-
- .note {
- font-size: 0.8em;
- }
-
- #tooltip1b {
- font-size: 12px;
- color: rgb(15%, 15%, 15%);
- padding:2px;
- background-color: rgba(95%, 95%, 95%, 0.8);
- }
-
- #legend1b {
- font-size: 12px;
- border: 1px solid #cdcdcd;
- border-collapse: collapse;
- }
- #legend1b td, #legend1b th {
- border: 1px solid #cdcdcd;
- padding: 1px 4px;
- }
- </style>
-
-
- <p>Bubble charts represent 3 dimensional data. Data is passed in to a bubble chart as a series of [x, y, radius, &lt;label or object&gt;]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.</p>
-
-<p>By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.</p>
-
-<p>The below chart show basic customization of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.</p>
-
-<div id="chart1" class="plot" style="width:460px;height:340px;"></div>
-<pre class="code brush:js"></pre>
-
-<div style="position:absolute;z-index:99;display:none;" id="tooltip1b"></div>
-
-<table><tr>
- <td><div id="chart1b" class="plot" style="width:460px;height:340px;"></div></td>
- <td><div style="height:340px;"><table id="legend1b"><tr><th>Company</th><th>R Value</th></tr></table></div></td>
-</tr></table>
-<pre class="code brush:js"></pre>
-
-<p>Below is a basic bubble chart showing usage of the optional label and color properties passed in with the data.</p>
-
-<div id="chart1c" class="plot" style="width:460px;height:340px;"></div>
-<pre class="code brush:js"></pre>
-
-<p>The next chart uses the "bubbleGradients: true" option to specify gradient fills on the bubbles. Radial gradients are not supported in IE<sup>*</sup> and will be automatically disabled.</p>
-
-<div id="chart2" class="plot" style="width:460px;height:340px;"></div>
-
-<p class="note"><sup>*</sup>Radial gradients are not supported in IE 7 and IE 8 because they are not supported in the excanvas emulation layer used by jqPlot to render charts in IE 7 and IE 8. jqPlot renders charts using the HTML canvas element which is supported by nearly every browser including IE 9. Excanvas translates the canvas rendering to VML rendering for IE 7 and 8, but unfortunately does not properly handle radial gradients.</p>
-
-<pre class="code brush:js"></pre>
-
-<p>The following bubble chart shows the "autoscalePointsFactor" and "autoscaleMultiplier" options which can be used to control bubble scaling. The "autoscalePointsFactor" options controls bubble scaling with the number of points on the plot. A negative value will decrease bubble size and number of bubbles increases. The "autoscaleMultiplier" will makes all bubbles larger or smaller for values greater or less than 1.0.</p>
-
-<p>This chart also demonstrates some of the highlighting options. Bubble highlighting is controlled with the "highlightMouseOver" and "highlightMouseDown" boolean options. Here the "highlightMouseDown: true" option is set which causes the plot to highlight on mousedown (click). This automatically sets the "highlightMouseOver" option to false.</p>
-
-<p>Events are also trigger with plot interaction. Specifically, "jqplotDataHighlight", "jqplotDataUnhighlight", "jqplotDataClick" and "jqplotDataRightClick" events are triggered. Handlers are passed an event object, the series index, the point index, and the bubble data.</p>
-
-<div id="chart3" class="plot" style="width:600px;height:400px;"></div>
-<pre class="code brush:js"></pre>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-
- var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"],
- [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"],
- [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-
- plot1 = $.jqplot('chart1',[arr],{
- title: 'Transparent Bubbles',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer,
- rendererOptions: {
- bubbleAlpha: 0.6,
- highlightAlpha: 0.8
- },
- shadow: true,
- shadowAlpha: 0.05
- }
- });
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-
- var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"],
- [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"],
- [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-
- plot1b = $.jqplot('chart1b',[arr],{
- title: 'Tooltip and Custom Legend Highlighting',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer,
- rendererOptions: {
- bubbleAlpha: 0.6,
- highlightAlpha: 0.8,
- showLabels: false
- },
- shadow: true,
- shadowAlpha: 0.05
- }
- });
-
- // Legend is a simple table in the html.
- // Now populate it with the labels from each data value.
- $.each(arr, function(index, val) {
- $('#legend1b').append('<tr><td>'+val[3]+'</td><td>'+val[2]+'</td></tr>');
- });
-
- // Now bind function to the highlight event to show the tooltip
- // and highlight the row in the legend.
- $('#chart1b').bind('jqplotDataHighlight',
- function (ev, seriesIndex, pointIndex, data, radius) {
- var chart_left = $('#chart1b').offset().left,
- chart_top = $('#chart1b').offset().top,
- x = plot1b.axes.xaxis.u2p(data[0]), // convert x axis unita to pixels on grid
- y = plot1b.axes.yaxis.u2p(data[1]); // convert y axis units to pixels on grid
- var color = 'rgb(50%,50%,100%)';
- $('#tooltip1b').css({left:chart_left+x+radius+5, top:chart_top+y});
- $('#tooltip1b').html('<span style="font-size:14px;font-weight:bold;color:'+color+';">' +
- data[3] + '</span><br />' + 'x: '+data[0] + '<br />' + 'y: ' +
- data[1] + '<br />' + 'r: ' + data[2]);
- $('#tooltip1b').show();
- $('#legend1b tr').css('background-color', '#ffffff');
- $('#legend1b tr').eq(pointIndex+1).css('background-color', color);
- });
-
- // Bind a function to the unhighlight event to clean up after highlighting.
- $('#chart1b').bind('jqplotDataUnhighlight',
- function (ev, seriesIndex, pointIndex, data) {
- $('#tooltip1b').empty();
- $('#tooltip1b').hide();
- $('#legend1b tr').css('background-color', '#ffffff');
- });
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-
- var arr = [[11, 123, 1236, {label:"Acura", color:'sandybrown'}],
- [45, 92, 1067, {label:"Alfa Romeo", color:'skyblue'}],
- [24, 104, 1176, {label:"AM General", color:"salmon"}], [50, 23, 610, {color:"papayawhip"}],
- [18, 17, 539, "Audi"], [7, 89, 864], [2, 13, 1026, "Bugatti"]];
-
- plot1c = $.jqplot('chart1c',[arr],{
- title: 'Bubble Data Customizations',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer
- }
- });
-
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-
- var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"],
- [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"],
- [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-
- plot2 = $.jqplot('chart2',[arr],{
- title: 'Bubble Gradient Fills*',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer,
- rendererOptions: {
- bubbleGradients: true
- },
- shadow: true
- }
- });
-
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-
- var arr = [[44, 66, 897, "Acura"], [25, 40, 1119, "Alfa Romeo"], [2, 33, 1197, "AM General"],
- [4, 132, 896, "Aston Martin Lagonda"], [2, 129, 314, "Audi"], [14, 47, 612, "BMW"],
- [45, 112, 719, "Bugatti"], [11, 38, 785, "Buick"], [15, 39, 367, "Cadillac"],
- [6, 133, 726, "Chevrolet"], [48, 84, 1082, "Citroen"], [40, 18, 1047, "DaimlerChrysler Corporation"],
- [24, 107, 1065, "Daewoo Motor Co."], [27, 92, 792, "Delorean Motor Company"], [1, 78, 803, "Dodge"],
- [5, 149, 320, "Ferrari"], [11, 127, 497, "Fiat"], [14, 18, 805, "Ford Motor Company"],
- [9, 101, 394, "General Motors"], [16, 57, 338, "GMC"], [19, 89, 977, "Holden"],
- [35, 78, 464, "Honda"], [18, 130, 364, "Hummer"], [37, 20, 699, "Hyundai"],
- [33, 140, 457, "Infiniti"], [12, 122, 533, "Isuzu"], [25, 67, 767, "Jaguar Cars"],
- [0, 7, 481, "Jeep"], [38, 36, 611, "Jensen Motors"], [43, 91, 943, "Kia"], [45, 21, 569, "Laforza"]];
-
- plot3 = $.jqplot('chart3',[arr],{
- title: 'Bubble Auto Scaling Options',
- seriesDefaults:{
- renderer: $.jqplot.BubbleRenderer,
- rendererOptions: {
- autoscalePointsFactor: -0.15,
- autoscaleMultiplier: 0.85,
- highlightMouseDown: true,
- bubbleAlpha: 0.7
- },
- shadow: true,
- shadowAlpha: 0.05
- }
- });
-
-});</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.bubbleRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html
deleted file mode 100755
index c0262e34..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Open Hi Low Close and Candlestick Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="bubbleChart.html">Previous</a> <a href="./">Examples</a> <a href="candlestick.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<p>OHLC, HLC and Candlestick charts are all created using the $.jqplot.OHLCRenderer plugin. The plots on this page make use of the highlighter plugin which shows a customized tooltip as the mouse moves over a data point.</p>
-<div id="chart1" style="height:250px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<div id="chart2" style="height:250px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>The previous plots use the following data set. jqPlot will parse most human readable date formats. It is always safest, however, to pass a date in as a JavaScript timestamp rather than have jqPlot parse an arbitrary date string.</p>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){
- // Note, the ohlc data is specified below
- var plot1 = $.jqplot('chart1',[ohlc],{
- // use the y2 axis on the right of the plot
- //rather than the y axis on the left.
- seriesDefaults:{yaxis:'y2axis'},
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- tickOptions:{formatString:'%b %e'},
- // For date axes, we can specify ticks options as human
- // readable dates. You should be as specific as possible,
- // however, and include a date and time since some
- // browser treat dates without a time as UTC and some
- // treat dates without time as local time.
- // Generally, if a time is specified without a time zone,
- // the browser assumes the time zone of the client.
- min: "09-01-2008 16:00",
- max: "06-22-2009 16:00",
- tickInterval: "6 weeks"
- },
- y2axis: {
- tickOptions:{formatString:'$%d'}
- }
- },
- series: [{renderer:$.jqplot.OHLCRenderer}],
- highlighter: {
- show: true,
- showMarker:false,
- tooltipAxes: 'xy',
- yvalues: 4,
- // You can customize the tooltip format string of the highlighter
- // to include any arbitrary text or html and use format string
- // placeholders (%s here) to represent x and y values.
- formatString:'<table class="jqplot-highlighter"> \
- <tr><td>date:</td><td>%s</td></tr> \
- <tr><td>open:</td><td>%s</td></tr> \
- <tr><td>hi:</td><td>%s</td></tr> \
- <tr><td>low:</td><td>%s</td></tr> \
- <tr><td>close:</td><td>%s</td></tr></table>'
- }
- });
-
-});
-</script>
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){
- var plot2 = $.jqplot('chart2',[ohlc],{
- seriesDefaults:{yaxis:'y2axis'},
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- tickOptions:{formatString:'%b %e'},
- min: "09-01-2008",
- max: "06-22-2009",
- tickInterval: "6 weeks"
- },
- y2axis: {
- tickOptions:{formatString:'$%d'}
- }
- },
- // To make a candle stick chart, set the "candleStick" option to true.
- series: [
- {
- renderer:$.jqplot.OHLCRenderer,
- rendererOptions:{ candleStick:true }
- }
- ],
- highlighter: {
- show: true,
- showMarker:false,
- tooltipAxes: 'xy',
- yvalues: 4,
- formatString:'<table class="jqplot-highlighter"> \
- <tr><td>date:</td><td>%s</td></tr> \
- <tr><td>open:</td><td>%s</td></tr> \
- <tr><td>hi:</td><td>%s</td></tr> \
- <tr><td>low:</td><td>%s</td></tr> \
- <tr><td>close:</td><td>%s</td></tr></table>'
- }
- });
-
-});
-</script>
-
-
-<script class="code" language="javascript" type="text/javascript">
-ohlc = [
- ['06/15/2009 16:00:00', 136.01, 139.5, 134.53, 139.48],
- ['06/08/2009 16:00:00', 143.82, 144.56, 136.04, 136.97],
- ['06/01/2009 16:00:00', 136.47, 146.4, 136, 144.67],
- ['05/26/2009 16:00:00', 124.76, 135.9, 124.55, 135.81],
- ['05/18/2009 16:00:00', 123.73, 129.31, 121.57, 122.5],
- ['05/11/2009 16:00:00', 127.37, 130.96, 119.38, 122.42],
- ['05/04/2009 16:00:00', 128.24, 133.5, 126.26, 129.19],
- ['04/27/2009 16:00:00', 122.9, 127.95, 122.66, 127.24],
- ['04/20/2009 16:00:00', 121.73, 127.2, 118.6, 123.9],
- ['04/13/2009 16:00:00', 120.01, 124.25, 115.76, 123.42],
- ['04/06/2009 16:00:00', 114.94, 120, 113.28, 119.57],
- ['03/30/2009 16:00:00', 104.51, 116.13, 102.61, 115.99],
- ['03/23/2009 16:00:00', 102.71, 109.98, 101.75, 106.85],
- ['03/16/2009 16:00:00', 96.53, 103.48, 94.18, 101.59],
- ['03/09/2009 16:00:00', 84.18, 97.2, 82.57, 95.93],
- ['03/02/2009 16:00:00', 88.12, 92.77, 82.33, 85.3],
- ['02/23/2009 16:00:00', 91.65, 92.92, 86.51, 89.31],
- ['02/17/2009 16:00:00', 96.87, 97.04, 89, 91.2],
- ['02/09/2009 16:00:00', 100, 103, 95.77, 99.16],
- ['02/02/2009 16:00:00', 89.1, 100, 88.9, 99.72],
- ['01/26/2009 16:00:00', 88.86, 95, 88.3, 90.13],
- ['01/20/2009 16:00:00', 81.93, 90, 78.2, 88.36],
- ['01/12/2009 16:00:00', 90.46, 90.99, 80.05, 82.33],
- ['01/05/2009 16:00:00', 93.17, 97.17, 90.04, 90.58],
- ['12/29/2008 16:00:00', 86.52, 91.04, 84.72, 90.75],
- ['12/22/2008 16:00:00', 90.02, 90.03, 84.55, 85.81],
- ['12/15/2008 16:00:00', 95.99, 96.48, 88.02, 90],
- ['12/08/2008 16:00:00', 97.28, 103.6, 92.53, 98.27],
- ['12/01/2008 16:00:00', 91.3, 96.23, 86.5, 94],
- ['11/24/2008 16:00:00', 85.21, 95.25, 84.84, 92.67],
- ['11/17/2008 16:00:00', 88.48, 91.58, 79.14, 82.58],
- ['11/10/2008 16:00:00', 100.17, 100.4, 86.02, 90.24],
- ['11/03/2008 16:00:00', 105.93, 111.79, 95.72, 98.24],
- ['10/27/2008 16:00:00', 95.07, 112.19, 91.86, 107.59],
- ['10/20/2008 16:00:00', 99.78, 101.25, 90.11, 96.38],
- ['10/13/2008 16:00:00', 104.55, 116.4, 85.89, 97.4],
- ['10/06/2008 16:00:00', 91.96, 101.5, 85, 96.8],
- ['09/29/2008 16:00:00', 119.62, 119.68, 94.65, 97.07],
- ['09/22/2008 16:00:00', 139.94, 140.25, 123, 128.24],
- ['09/15/2008 16:00:00', 142.03, 147.69, 120.68, 140.91]
-];
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html b/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html
deleted file mode 100755
index b213d6ec..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html
+++ /dev/null
@@ -1,322 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Candlestick and Open Hi Low Close charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="candlestick-charts.html">Previous</a> <a href="./">Examples</a> <a href="canvas-overlay.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<div id="chart1" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart2" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart2b" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart3" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart4" class="code" style="margin:20px;height:320px; width:500px;"></div>
-<pre class="code brush:js"></pre>
-<p>The examples on this page use the folowing code:</p>
-<pre class="common brush:js"></pre>
-
-<script class="common" type="text/javascript">
-
- ohlc = [['07/06/2009', 138.7, 139.68, 135.18, 135.4],
- ['06/29/2009', 143.46, 144.66, 139.79, 140.02],
- ['06/22/2009', 140.67, 143.56, 132.88, 142.44],
- ['06/15/2009', 136.01, 139.5, 134.53, 139.48],
- ['06/08/2009', 143.82, 144.56, 136.04, 136.97],
- ['06/01/2009', 136.47, 146.4, 136, 144.67],
- ['05/26/2009', 124.76, 135.9, 124.55, 135.81],
- ['05/18/2009', 123.73, 129.31, 121.57, 122.5],
- ['05/11/2009', 127.37, 130.96, 119.38, 122.42],
- ['05/04/2009', 128.24, 133.5, 126.26, 129.19],
- ['04/27/2009', 122.9, 127.95, 122.66, 127.24],
- ['04/20/2009', 121.73, 127.2, 118.6, 123.9],
- ['04/13/2009', 120.01, 124.25, 115.76, 123.42],
- ['04/06/2009', 114.94, 120, 113.28, 119.57],
- ['03/30/2009', 104.51, 116.13, 102.61, 115.99],
- ['03/23/2009', 102.71, 109.98, 101.75, 106.85],
- ['03/16/2009', 96.53, 103.48, 94.18, 101.59],
- ['03/09/2009', 84.18, 97.2, 82.57, 95.93],
- ['03/02/2009', 88.12, 92.77, 82.33, 85.3],
- ['02/23/2009', 91.65, 92.92, 86.51, 89.31],
- ['02/17/2009', 96.87, 97.04, 89, 91.2],
- ['02/09/2009', 100, 103, 95.77, 99.16],
- ['02/02/2009', 89.1, 100, 88.9, 99.72],
- ['01/26/2009', 88.86, 95, 88.3, 90.13],
- ['01/20/2009', 81.93, 90, 78.2, 88.36],
- ['01/12/2009', 90.46, 90.99, 80.05, 82.33],
- ['01/05/2009', 93.17, 97.17, 90.04, 90.58],
- ['12/29/2008', 86.52, 91.04, 84.72, 90.75],
- ['12/22/2008', 90.02, 90.03, 84.55, 85.81],
- ['12/15/2008', 95.99, 96.48, 88.02, 90],
- ['12/08/2008', 97.28, 103.6, 92.53, 98.27],
- ['12/01/2008', 91.3, 96.23, 86.5, 94],
- ['11/24/2008', 85.21, 95.25, 84.84, 92.67],
- ['11/17/2008', 88.48, 91.58, 79.14, 82.58],
- ['11/10/2008', 100.17, 100.4, 86.02, 90.24],
- ['11/03/2008', 105.93, 111.79, 95.72, 98.24],
- ['10/27/2008', 95.07, 112.19, 91.86, 107.59],
- ['10/20/2008', 99.78, 101.25, 90.11, 96.38],
- ['10/13/2008', 104.55, 116.4, 85.89, 97.4],
- ['10/06/2008', 91.96, 101.5, 85, 96.8],
- ['09/29/2008', 119.62, 119.68, 94.65, 97.07],
- ['09/22/2008', 139.94, 140.25, 123, 128.24],
- ['09/15/2008', 142.03, 147.69, 120.68, 140.91],
- ['09/08/2008', 164.57, 164.89, 146, 148.94]
- ];
-
- ohlc_b = [['07/06/2009', 138.7, 139.68, 135.18, 135.4, 'j'],
- ['06/29/2009', 143.46, 144.66, 139.79, 140.02, 'q'],
- ['06/22/2009', 140.67, 143.56, 132.88, 142.44, 'p'],
- ['06/15/2009', 136.01, 139.5, 134.53, 139.48, 'l'],
- ['06/08/2009', 143.82, 144.56, 136.04, 136.97, 'o'],
- ['06/01/2009', 136.47, 146.4, 136, 144.67, 't'],
- ['05/26/2009', 124.76, 135.9, 124.55, 135.81, '_'],
- ['05/18/2009', 123.73, 129.31, 121.57, 122.5, 'c'],
- ['05/11/2009', 127.37, 130.96, 119.38, 122.42, 'h'],
- ['05/04/2009', 128.24, 133.5, 126.26, 129.19, 'a'],
- ['04/27/2009', 122.9, 127.95, 122.66, 127.24, 'r'],
- ['04/20/2009', 121.73, 127.2, 118.6, 123.9, 't'],
- ['04/13/2009', 120.01, 124.25, 115.76, 123.42, 's']
- ];
-
- hlc = [['07/06/2009', 139.68, 135.18, 135.4],
- ['06/29/2009', 144.66, 139.79, 140.02],
- ['06/22/2009', 143.56, 132.88, 142.44],
- ['06/15/2009', 139.5, 134.53, 139.48],
- ['06/08/2009', 144.56, 136.04, 136.97],
- ['06/01/2009', 146.4, 136, 144.67],
- ['05/26/2009', 135.9, 124.55, 135.81],
- ['05/18/2009', 129.31, 121.57, 122.5],
- ['05/11/2009', 130.96, 119.38, 122.42],
- ['05/04/2009', 133.5, 126.26, 129.19],
- ['04/27/2009', 127.95, 122.66, 127.24],
- ['04/20/2009', 127.2, 118.6, 123.9],
- ['04/13/2009', 124.25, 115.76, 123.42],
- ['04/06/2009', 120, 113.28, 119.57],
- ['03/30/2009', 116.13, 102.61, 115.99],
- ['03/23/2009', 109.98, 101.75, 106.85],
- ['03/16/2009', 103.48, 94.18, 101.59],
- ['03/09/2009', 97.2, 82.57, 95.93],
- ['03/02/2009', 92.77, 82.33, 85.3],
- ['02/23/2009', 92.92, 86.51, 89.31],
- ['02/17/2009', 97.04, 89, 91.2],
- ['02/09/2009', 103, 95.77, 99.16],
- ['02/02/2009', 100, 88.9, 99.72],
- ['01/26/2009', 95, 88.3, 90.13],
- ['01/20/2009', 90, 78.2, 88.36],
- ['01/12/2009', 90.99, 80.05, 82.33],
- ['01/05/2009', 97.17, 90.04, 90.58],
- ['12/29/2008', 91.04, 84.72, 90.75],
- ['12/22/2008', 90.03, 84.55, 85.81],
- ['12/15/2008', 96.48, 88.02, 90],
- ['12/08/2008', 103.6, 92.53, 98.27],
- ['12/01/2008', 96.23, 86.5, 94],
- ['11/24/2008', 95.25, 84.84, 92.67],
- ['11/17/2008', 91.58, 79.14, 82.58],
- ['11/10/2008', 100.4, 86.02, 90.24],
- ['11/03/2008', 111.79, 95.72, 98.24],
- ['10/27/2008', 112.19, 91.86, 107.59],
- ['10/20/2008', 101.25, 90.11, 96.38],
- ['10/13/2008', 116.4, 85.89, 97.4],
- ['10/06/2008', 101.5, 85, 96.8],
- ['09/29/2008', 119.68, 94.65, 97.07],
- ['09/22/2008', 140.25, 123, 128.24],
- ['09/15/2008', 147.69, 120.68, 140.91],
- ['09/08/2008', 164.89, 146, 148.94]
- ];
-
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- $.jqplot.config.enablePlugins = true;
- plot1 = $.jqplot('chart1',[ohlc],{
- title: 'Chart',
- axesDefaults:{},
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer
- },
- yaxis: {
- tickOptions:{ prefix: '$' }
- }
- },
- series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{}}],
- cursor:{
- zoom:true,
- tooltipOffset: 10,
- tooltipLocation: 'nw'
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot2 = $.jqplot('chart2',[ohlc],{
- title: 'Chart',
- axesDefaults:{},
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer
- },
- yaxis: {
- tickOptions:{ prefix: '$' }
- }
- },
- series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}],
- cursor:{
- zoom:true,
- tooltipOffset: 10,
- tooltipLocation: 'nw'
- },
- highlighter: {
- showMarker:false,
- tooltipAxes: 'xy',
- yvalues: 4,
- formatString:'<table class="jqplot-highlighter"> \
- <tr><td>date:</td><td>%s</td></tr> \
- <tr><td>open:</td><td>%s</td></tr> \
- <tr><td>hi:</td><td>%s</td></tr> \
- <tr><td>low:</td><td>%s</td></tr> \
- <tr><td>close:</td><td>%s</td></tr></table>'
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot2b = $.jqplot('chart2b',[ohlc_b],{
- title: 'Chart',
- axesDefaults:{},
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer
- },
- yaxis: {
- tickOptions:{ prefix: '$' }
- }
- },
- series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}],
- cursor:{
- zoom:false,
- tooltipOffset: 10,
- tooltipLocation: 'nw'
- },
- highlighter: {
- showMarker:false,
- tooltipAxes: 'xy',
- yvalues: 5,
- formatString:'<table class="jqplot-highlighter"> \
- <tr><td>date:</td><td>%s</td></tr> \
- <tr><td>open:</td><td>%s</td></tr> \
- <tr><td>hi:</td><td>%s</td></tr> \
- <tr><td>low:</td><td>%s</td></tr> \
- <tr><td>close:</td><td>%s</td></tr> \
- <tr><td>letter:</td><td>%s</td></tr></table>'
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot3 = $.jqplot('chart3',[hlc],{
- title: 'Chart',
- axesDefaults:{},
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer
- },
- yaxis: {
- tickOptions:{ prefix: '$' }
- }
- },
- series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{}}],
- cursor:{
- zoom:true,
- tooltipOffset: 10,
- tooltipLocation: 'nw'
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var catOHLC = [[1, 138.7, 139.68, 135.18, 135.4],
- [2, 143.46, 144.66, 139.79, 140.02],
- [3, 140.67, 143.56, 132.88, 142.44],
- [4, 136.01, 139.5, 134.53, 139.48],
- [5, 143.82, 144.56, 136.04, 136.97],
- [6, 136.47, 146.4, 136, 144.67],
- [7, 124.76, 135.9, 124.55, 135.81],
- [8, 123.73, 129.31, 121.57, 122.5]];
-
- var ticks = ['Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun', 'Mon', 'Tue'];
-
- plot4 = $.jqplot('chart4',[catOHLC],{
- axes: {
- xaxis: {
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks
- },
- yaxis: {
- tickOptions:{ prefix: '$' }
- }
- },
- series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}]
- });
-});</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html b/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html
deleted file mode 100755
index c1ff2f00..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Draw Lines on Plots - Canvas Overlay</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="candlestick.html">Previous</a> <a href="./">Examples</a> <a href="cursor-highlighter.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
- <button onclick="lineup()">Up</button>
- <button onclick="linedown()">Down</button>
-
-<pre class="code prettyprint brush: js"></pre>
-
- <div id="chart2" style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-<pre class="code prettyprint brush: js"></pre>
-
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
- var s1 = [[2009, 3.5], [2010, 4.4], [2011, 6.0], [2012, 9.1], [2013, 12.0], [2014, 14.4]];
-
- var grid = {
- gridLineWidth: 1.5,
- gridLineColor: 'rgb(235,235,235)',
- drawGridlines: true
- };
-
- plot1 = $.jqplot('chart1', [s1], {
- series:[{
- renderer:$.jqplot.BarRenderer,
- rendererOptions: {
- barWidth: 30
- }
- }],
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- }
- },
- grid: grid,
- canvasOverlay: {
- show: true,
- objects: [
- {horizontalLine: {
- name: 'barney',
- y: 4,
- lineWidth: 6,
- color: 'rgb(100, 55, 124)',
- shadow: false
- }},
- {horizontalLine: {
- name: 'fred',
- y: 6,
- lineWidth: 12,
- xminOffset: '8px',
- xmaxOffset: '29px',
- color: 'rgb(50, 55, 30)',
- shadow: false
- }},
- {dashedHorizontalLine: {
- name: 'wilma',
- y: 8,
- lineWidth: 2,
- xOffset: '54',
- color: 'rgb(133, 120, 24)',
- shadow: false
- }},
- {horizontalLine: {
- name: 'pebbles',
- y: 10,
- lineWidth: 3,
- xOffset: 0,
- color: 'rgb(89, 198, 154)',
- shadow: false
- }},
- {dashedHorizontalLine: {
- name: 'bam-bam',
- y: 14,
- lineWidth: 5,
- dashPattern: [16, 12],
- lineCap: 'round',
- xOffset: '20',
- color: 'rgb(66, 98, 144)',
- shadow: false
- }}
- ]
- }
- });
-});
-
-function lineup() {
- var co = plot1.plugins.canvasOverlay;
- var line = co.get('fred');
- line.options.y += 1;
- co.draw(plot1);
-}
-
-function linedown() {
- var co = plot1.plugins.canvasOverlay;
- var line = co.get('fred');
- line.options.y -= 1;
- co.draw(plot1);
-}
-
- </script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var s2 = [[9, 3.5], [15, 4.4], [22, 6.0], [38, 9.1], [51, 12.0], [62, 14.4]];
-
- var grid = {
- gridLineWidth: 1.5,
- gridLineColor: 'rgb(235,235,235)',
- drawGridlines: true
- };
-
- plot2 = $.jqplot('chart2', [s2], {
- grid: grid,
- canvasOverlay: {
- show: true,
- objects: [
- {verticalLine: {
- name: 'barney',
- x: 10,
- lineWidth: 6,
- color: 'rgb(100, 55, 124)',
- shadow: false
- }},
- {verticalLine: {
- name: 'fred',
- x: 15,
- lineWidth: 12,
- yminOffset: '8px',
- ymaxOffset: '29px',
- color: 'rgb(50, 55, 30)',
- shadow: false
- }},
- {dashedVerticalLine: {
- name: 'wilma',
- x: 20,
- lineWidth: 2,
- yOffset: '14',
- color: 'rgb(133, 120, 24)',
- shadow: false
- }},
- {verticalLine: {
- name: 'pebbles',
- x: 35,
- lineWidth: 3,
- yOffset: 0,
- lineCap: 'butt',
- color: 'rgb(89, 198, 154)',
- shadow: false
- }},
- {dashedVerticalLine: {
- name: 'bam-bam',
- x: 45,
- lineWidth: 5,
- dashPattern: [16, 12],
- lineCap: 'round',
- yOffset: '20px',
- color: 'rgb(66, 98, 144)',
- shadow: false
- }}
- ]
- }
- });
-
-});
-
-
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README
deleted file mode 100755
index a0a0cc5a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README
+++ /dev/null
@@ -1,140 +0,0 @@
-jQuery.colorpicker v0.6
-
-Copyright (c) 2011 Martijn W. van der Lee
-Licensed under the MIT.
-
-Full-featured colorpicker for jQueryUI with full theming support.
-Most images from jPicker by Christopher T. Tillman.
-Sourcecode created from scratch by Martijn W. van der Lee.
-
-IE support; make sure you have a doctype defined, or the colorpicker will not display correctly.
-
-Options:
- alpha: false
- Whether or not to show the inputs for alpha.
-
- altAlpha: true
- Change the opacity of the altField element(s) according to the alpha
- setting.
-
- altField: ''
- Change the background color of the elements specified in this element.
-
- altOnChange: true
- If true, the altField element(s) are updated on every change, otherwise
- only upon closing.
-
- altProperties: 'background-color'
- Comma-separated list of CSS properties to set color of in the altField.
- The following properties are allowed, all others are ignored.
- background-color
- color
- border-color
- outline-color
-
- autoOpen: false
- If true, the dialog opens automatically upon page load.
-
- buttonColorize: false
- If a buttonimage is specified, change the background color of the
- image when the color is changed.
-
- buttonImage: 'images/ui-colorpicker.png'
- Same as jQueryUI DatePicker.
-
- buttonImageOnly: false
- Same as jQueryUI DatePicker.
-
- buttonText: 'Color'
- Same as jQueryUI DatePicker.
-
- closeOnOutside: true
- Close the window when clicking outside the colorpicker display.
-
- color: '#00FF00'
- Initial color. Formats recognized are:
- #rrggbb
- rrggbb (same as previous, but without the #)
- rgb(rrr,ggg,bbb)
- rgba(rrr,ggg,bbb,a.a)
- rgb(rrr%,ggg%,bbb%)
- rgba(rrr%,ggg%,bbb%,aaa%)
- w3c-defined color name
-
- duration: 'fast'
- Same as jQueryUI DatePicker.
-
- hsv: true
- Whether or not to show the inputs for HSV.
-
- layout: { ... }
- Set the position of elements in a table layout.
- You could create any layout possible with HTML tables by specifying cell
- position and size of each part.
- @todo document how this works.
-
- limit: ''
- Limit the selectable colors to any of the predefined limits:
- '' No limitations, allow 8bpp color for a palette of all
- 16 million colors.
- 'websafe' Set of 216 colors composed of 00, 33, 66, 99, cc and ff
- color channel values in #rrggbb.
- 'nibble' 4 bits per color, can be easily converted to #rgb format.
- The palette is limited to 4096 colors.
- 'binary' Allow only #00 or #ff as color channel values for primary
- colors only; only 8 colors are available with this limit.
-
- mode: 'h'
- Determines the functionality of the map and bar components. Allowed values
- are; 'h', 's', 'l', 'r', 'g', 'b' or 'a', for hue, saturation, luminosity,
- red, green, blue and alpha respectively.
-
- parts: ''
- Determine which parts to display.
- Use any of the preset names ('full', 'popup' or 'inline') or specify
- an array of part names (i.e. ['header', 'map', 'bar', 'hex', 'inputs',
- 'preview', 'swatches', 'footer']). If an empty string is given, the parts
- will be automatically chosen as preset 'popup' or 'inline' depending on
- the context in which the colorpicker is used.
-
- rgb: true, // Show RGB controls and modes
- Whether or not to show the inputs for RGB.
-
- showAnim: 'fadeIn'
- Same as jQueryUI DatePicker.
-
- showOn: 'focus'
- Same as jQueryUI DatePicker.
-
- showOptions: {}
- Same as jQueryUI DatePicker.
-
- swatches: null
- 'null' to show swatches of HTML colors or provide your own object
- with colornames and [r,g,b] array.
- For example { 'red': [ 255, 0, 0 ], 'blue': [0, 0, 255] }
-
- title: 'Pick a color'
- Title to display in the header.
-
-Events:
- onClose: null
- Triggered when the popup is closed.
-
- onSelect: null
- Triggered on each change, confirmation (click on OK button) and
- cancellation (click on Cancel, outside window or window close button)
- respectively.
- Note that onSelect may be triggered in rapid succession when dragging the
- mouse accross the map or bar and may be triggered without a change in color
- upon specific user interactions.
-
-Methods:
- open
- Open the dialog
-
- close
- Close the dialog
-
- destroy
- Destroy the widget \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO
deleted file mode 100755
index acc10df3..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO
+++ /dev/null
@@ -1,14 +0,0 @@
-Make simple blog page + demo
-
-Post to...
- http://wiki.jqueryui.com/w/page/12137750/ColorPicker
- - screenshot
- - link(s)
- - check specs/requirements and add/fix them
-
-Colorwheel
-Triangle/wheel
-Related-colors swatching
-Configurable swatch layout
- container-width/height, swatch-width/height
- Autoscaling (table?) \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png
deleted file mode 100755
index 2950daeb..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png
deleted file mode 100755
index e42ad081..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png
deleted file mode 100755
index 6e980cfa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png
deleted file mode 100755
index 80eb2bbe..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png
deleted file mode 100755
index 6756cee6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png
deleted file mode 100755
index 64992968..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png
deleted file mode 100755
index 853d38c6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png
deleted file mode 100755
index 0dd9a2f8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png
deleted file mode 100755
index e244c689..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html
deleted file mode 100755
index a3f14211..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <title>jqcp</title>
- <!-- jQuery/jQueryUI (hosted) -->
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
- <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
- <script src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
- <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css" rel="stylesheet" type="text/css"/>
- <!--link href="aristo/Aristo.css" rel="stylesheet" type="text/css"/-->
- <style>
- body {
- font-family: 'Segoe UI', Verdana, Arial, Helvetica, sans-serif;
- font-size: 62.5%;
- }
-
- #switcher {
- float: right;
- display: inline-block;
- }
- </style>
- <script src="jquery.colorpicker.js"></script>
- <link href="jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
- <script>
- $( function() {
- $('#switcher').themeswitcher();
-
- $('#cp1').colorpicker({
- onClose: function(hex, rgba, inst) {
-
- },
- onSelect: function(hex, rgba, inst) {
- //console.log(hex);
- //console.log(rgba);
- //console.log(inst);
- },
- showOn: 'both',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- altField: '.cp1-alt',
- altProperties: 'background-color,color'
- });
-
- $('#cp2').colorpicker({
- alpha: true,
- showButtonPanel: true
- });
-
- var cpb = $('#cp-buttons').colorpicker({
- showOn: '',
- parts: ['bar', 'map']
- });
- $('#cp-button-open').click( function() {
- cpb.colorpicker('open');
- });
- $('#cp-button-close').click( function() {
- cpb.colorpicker('close');
- });
- $('#cp-button-disable').click( function() {
- cpb.colorpicker('disable');
- });
- });
- </script>
- </head>
- <body>
- <div id="switcher"></div>
-
- Color: <input type="color" id="cp1" value="ff9900"/>
- <div class="cp1-alt" style="border: 1px inset; width: 180px; height: 60px;">
- <div style=" background-color: white; border: 1px solid black; margin: 5px; padding: 5px; font-size: 20px; font-weight: bold;">Text</div>
- </div>
-
- <hr/>
-
- Inline:<div id="cp2"></div>
-
- <hr/>
-
- Activated by buttons: <input type="color" id="cp-buttons" value="927abc"/>
- <br/><button id="cp-button-open">Open</button>
- <br/><button id="cp-button-close">Close</button>
- <br/><button id="cp-button-disable">Disable</button>
- </body>
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css
deleted file mode 100755
index 4e61a526..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css
+++ /dev/null
@@ -1,129 +0,0 @@
-.ui-colorpicker {
- display: inline-block;
- width: auto;
-}
-
-.ui-colorpicker-inline {
- position: static;
-}
-
-.ui-colorpicker .ui-colorpicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-colorpicker .ui-colorpicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-colorpicker .ui-colorpicker-buttonpane button.ui-colorpicker-current { float:left; }
-
-.ui-colorpicker table {
- font-size: 100%; /* Reset browser table font-size */
- margin: 0;
-}
-
-.ui-colorpicker table td {
- vertical-align: top;
-}
-
-.ui-colorpicker-padding-left {
- padding-left: 10px;
-}
-.ui-colorpicker-padding-top {
- padding-top: 10px;
-}
-
-.ui-colorpicker-border {
- border: 1px inset;
- display: inline-block;
-}
-
-/* Bar & map */
-#ui-colorpicker-map > *,
-#ui-colorpicker-bar > * {
- position: absolute;
- cursor: crosshair;
-}
-
-#ui-colorpicker-map-pointer,
-#ui-colorpicker-bar-pointer {
- position: absolute;
-}
-/* Map */
-#ui-colorpicker-map,
-#ui-colorpicker-map > * {
- display: block;
- width: 256px;
- height: 256px;
- overflow: hidden;
-}
-
-#ui-colorpicker-map-layer-1,
-#ui-colorpicker-map-layer-2 { background: url(images/map.png) no-repeat; }
-#ui-colorpicker-map-layer-alpha { background: url(images/map-opacity.png); }
-#ui-colorpicker-map-pointer { display: inline-block; width: 15px; height: 15px; background: url(images/map-pointer.png) no-repeat; }
-
-
-/* Bar */
-#ui-colorpicker-bar,
-#ui-colorpicker-bar > * {
- display: block;
- width: 20px;
- height: 256px;
- overflow: hidden;
- background-repeat: repeat-x;
-}
-
-#ui-colorpicker-bar-layer-1,
-#ui-colorpicker-bar-layer-2,
-#ui-colorpicker-bar-layer-3,
-#ui-colorpicker-bar-layer-4 { background: url(images/bar.png) repeat-x; }
-#ui-colorpicker-bar-layer-alpha { background: url(images/bar-opacity.png); }
-#ui-colorpicker-bar-layer-alphabar { background: url(images/bar-alpha.png); }
-#ui-colorpicker-bar-pointer { display: inline-block; width: 20px; height: 7px; background: url(images/bar-pointer.png) no-repeat; }
-
-/* Preview */
-#ui-colorpicker-preview {
- text-align: center;
-}
-
-#ui-colorpicker-preview-initial {
- cursor: pointer;
-}
-
-#ui-colorpicker-preview-initial,
-#ui-colorpicker-preview-current {
- width: 50px;
- height: 20px;
- display: inline-block;
-}
-
-#ui-colorpicker-preview-initial-alpha,
-#ui-colorpicker-preview-current-alpha {
- width: 50px;
- height: 20px;
- display: inline-block;
- background: url(images/preview-opacity.png) repeat;
-}
-
-/* Inputs */
-#ui-colorpicker-inputs label {
- width: 1.5em;
- display: inline-block;
-}
-
-/* Hex */
-#ui-colorpicker-hex {
- text-align: center;
-}
-
-/* Swatches */
-#ui-colorpicker-swatches {
- width: 84px;
- height: 256px;
- overflow: auto;
- background-color: #f8f8f8;
-}
-
-.ui-colorpicker-swatch {
- cursor: pointer;
- float: left;
- width: 11px;
- height: 11px;
- border-right: 1px solid black;
- border-bottom: 1px solid black;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js
deleted file mode 100755
index 6ad9a564..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js
+++ /dev/null
@@ -1,1654 +0,0 @@
-/*jslint devel: true, bitwise: true, regexp: true, browser: true, confusion: true, unparam: true, eqeq: true, white: true, nomen: true, plusplus: true, maxerr: 50, indent: 4 */
-/*globals jQuery */
-
-/*
- * ColorPicker v0.6
- *
- * Copyright (c) 2011 Martijn W. van der Lee
- * Licensed under the MIT.
- *
- * Full-featured colorpicker for jQueryUI with full theming support.
- * Most images from jPicker by Christopher T. Tillman.
- * Sourcecode created from scratch by Martijn W. van der Lee.
- *
- * @todo Custom buttons ->none" -> special "none" state?
- * @todo Undo/redo memory?
- * @todo Small size variant (128x128)
- * @todo Distance between rgb/hsv/a options
- * @todo Force hex correction (limit and padding) upon done
- * @todo if limit, correct initial color upon open
- * @todo Shared swatches; cookies/session/global
- * @todo Language files: Done/Color/Pick a color/H/S/V/R/G/B/A/color swatches
- * @todo isRTL? What to RTL, besides button?
- * @todo Implement 'disabled' option
- * @todo Include header/footer in layout?
- * @todo Split inputs into rgb/hsv/a parts
- * @todo Modal popup mode
- */
-
-(function ($) {
- "use strict";
-
- var _container_popup = '<div class="ui-colorpicker ui-colorpicker-dialog ui-dialog ui-widget ui-widget-content ui-corner-all colorpicker-container" style="display: none;"></div>',
-
- _container_inline = '<div class="ui-colorpicker ui-colorpicker-inline ui-dialog ui-widget ui-widget-content ui-corner-all"></div>',
-
- _parts_lists = {
- 'full': ['header', 'map', 'bar', 'hex', 'inputs', 'preview', 'swatches', 'footer'],
- 'popup': ['map', 'bar', 'hex', 'inputs', 'preview', 'footer'],
- 'inline': ['map', 'bar', 'hex', 'inputs', 'preview']
- },
-
- _colors = {
- 'Black': [0x00, 0x00, 0x00],
- 'DimGray': [0x69, 0x69, 0x69],
- 'Gray': [0x80, 0x80, 0x80],
- 'DarkGray': [0xA9, 0xA9, 0xA9],
- 'Silver': [0xC0, 0xC0, 0xC0],
- 'LightGrey': [0xD3, 0xD3, 0xD3],
- 'Gainsboro': [0xDC, 0xDC, 0xDC],
- 'WhiteSmoke': [0xF5, 0xF5, 0xF5],
- 'White': [0xFF, 0xFF, 0xFF],
- 'RosyBrown': [0xBC, 0x8F, 0x8F],
- 'IndianRed': [0xCD, 0x5C, 0x5C],
- 'Brown': [0xA5, 0x2A, 0x2A],
- 'FireBrick': [0xB2, 0x22, 0x22],
- 'LightCoral': [0xF0, 0x80, 0x80],
- 'Maroon': [0x80, 0x00, 0x00],
- 'DarkRed': [0x8B, 0x00, 0x00],
- 'Red': [0xFF, 0x00, 0x00],
- 'Snow': [0xFF, 0xFA, 0xFA],
- 'Salmon': [0xFA, 0x80, 0x72],
- 'MistyRose': [0xFF, 0xE4, 0xE1],
- 'Tomato': [0xFF, 0x63, 0x47],
- 'DarkSalmon': [0xE9, 0x96, 0x7A],
- 'OrangeRed': [0xFF, 0x45, 0x00],
- 'Coral': [0xFF, 0x7F, 0x50],
- 'LightSalmon': [0xFF, 0xA0, 0x7A],
- 'Sienna': [0xA0, 0x52, 0x2D],
- 'Seashell': [0xFF, 0xF5, 0xEE],
- 'Chocolate': [0xD2, 0x69, 0x1E],
- 'SaddleBrown': [0x8B, 0x45, 0x13],
- 'SandyBrown': [0xF4, 0xA4, 0x60],
- 'PeachPuff': [0xFF, 0xDA, 0xB9],
- 'Peru': [0xCD, 0x85, 0x3F],
- 'Linen': [0xFA, 0xF0, 0xE6],
- 'DarkOrange': [0xFF, 0x8C, 0x00],
- 'Bisque': [0xFF, 0xE4, 0xC4],
- 'BurlyWood': [0xDE, 0xB8, 0x87],
- 'Tan': [0xD2, 0xB4, 0x8C],
- 'AntiqueWhite': [0xFA, 0xEB, 0xD7],
- 'NavajoWhite': [0xFF, 0xDE, 0xAD],
- 'BlanchedAlmond': [0xFF, 0xEB, 0xCD],
- 'PapayaWhip': [0xFF, 0xEF, 0xD5],
- 'Orange': [0xFF, 0xA5, 0x00],
- 'Moccasin': [0xFF, 0xE4, 0xB5],
- 'Wheat': [0xF5, 0xDE, 0xB3],
- 'OldLace': [0xFD, 0xF5, 0xE6],
- 'FloralWhite': [0xFF, 0xFA, 0xF0],
- 'Goldenrod': [0xDA, 0xA5, 0x20],
- 'DarkGoldenrod': [0xB8, 0x86, 0x0B],
- 'Cornsilk': [0xFF, 0xF8, 0xDC],
- 'Gold': [0xFF, 0xD7, 0x00],
- 'PaleGoldenrod': [0xEE, 0xE8, 0xAA],
- 'Khaki': [0xF0, 0xE6, 0x8C],
- 'LemonChiffon': [0xFF, 0xFA, 0xCD],
- 'DarkKhaki': [0xBD, 0xB7, 0x6B],
- 'Beige': [0xF5, 0xF5, 0xDC],
- 'LightGoldenrodYellow': [0xFA, 0xFA, 0xD2],
- 'Olive': [0x80, 0x80, 0x00],
- 'Yellow': [0xFF, 0xFF, 0x00],
- 'LightYellow': [0xFF, 0xFF, 0xE0],
- 'Ivory': [0xFF, 0xFF, 0xF0],
- 'OliveDrab': [0x6B, 0x8E, 0x23],
- 'YellowGreen': [0x9A, 0xCD, 0x32],
- 'DarkOliveGreen': [0x55, 0x6B, 0x2F],
- 'GreenYellow': [0xAD, 0xFF, 0x2F],
- 'LawnGreen': [0x7C, 0xFC, 0x00],
- 'Chartreuse': [0x7F, 0xFF, 0x00],
- 'DarkSeaGreen': [0x8F, 0xBC, 0x8F],
- 'ForestGreen': [0x22, 0x8B, 0x22],
- 'LimeGreen': [0x32, 0xCD, 0x32],
- 'LightGreen': [0x90, 0xEE, 0x90],
- 'PaleGreen': [0x98, 0xFB, 0x98],
- 'DarkGreen': [0x00, 0x64, 0x00],
- 'Green': [0x00, 0x80, 0x00],
- 'Lime': [0x00, 0xFF, 0x00],
- 'Honeydew': [0xF0, 0xFF, 0xF0],
- 'MediumSeaGreen': [0x3C, 0xB3, 0x71],
- 'SeaGreen': [0x2E, 0x8B, 0x57],
- 'SpringGreen': [0x00, 0xFF, 0x7F],
- 'MintCream': [0xF5, 0xFF, 0xFA],
- 'MediumSpringGreen': [0x00, 0xFA, 0x9A],
- 'MediumAquamarine': [0x66, 0xCD, 0xAA],
- 'Aquamarine': [0x7F, 0xFF, 0xD4],
- 'Turquoise': [0x40, 0xE0, 0xD0],
- 'LightSeaGreen': [0x20, 0xB2, 0xAA],
- 'MediumTurquoise': [0x48, 0xD1, 0xCC],
- 'DarkSlateGray': [0x2F, 0x4F, 0x4F],
- 'PaleTurquoise': [0xAF, 0xEE, 0xEE],
- 'Teal': [0x00, 0x80, 0x80],
- 'DarkCyan': [0x00, 0x8B, 0x8B],
- 'DarkTurquoise': [0x00, 0xCE, 0xD1],
- 'Aqua': [0x00, 0xFF, 0xFF],
- 'Cyan': [0x00, 0xFF, 0xFF],
- 'LightCyan': [0xE0, 0xFF, 0xFF],
- 'Azure': [0xF0, 0xFF, 0xFF],
- 'CadetBlue': [0x5F, 0x9E, 0xA0],
- 'PowderBlue': [0xB0, 0xE0, 0xE6],
- 'LightBlue': [0xAD, 0xD8, 0xE6],
- 'DeepSkyBlue': [0x00, 0xBF, 0xFF],
- 'SkyBlue': [0x87, 0xCE, 0xEB],
- 'LightSkyBlue': [0x87, 0xCE, 0xFA],
- 'SteelBlue': [0x46, 0x82, 0xB4],
- 'AliceBlue': [0xF0, 0xF8, 0xFF],
- 'DodgerBlue': [0x1E, 0x90, 0xFF],
- 'SlateGray': [0x70, 0x80, 0x90],
- 'LightSlateGray': [0x77, 0x88, 0x99],
- 'LightSteelBlue': [0xB0, 0xC4, 0xDE],
- 'CornflowerBlue': [0x64, 0x95, 0xED],
- 'RoyalBlue': [0x41, 0x69, 0xE1],
- 'MidnightBlue': [0x19, 0x19, 0x70],
- 'Lavender': [0xE6, 0xE6, 0xFA],
- 'Navy': [0x00, 0x00, 0x80],
- 'DarkBlue': [0x00, 0x00, 0x8B],
- 'MediumBlue': [0x00, 0x00, 0xCD],
- 'Blue': [0x00, 0x00, 0xFF],
- 'GhostWhite': [0xF8, 0xF8, 0xFF],
- 'DarkSlateBlue': [0x48, 0x3D, 0x8B],
- 'SlateBlue': [0x6A, 0x5A, 0xCD],
- 'MediumSlateBlue': [0x7B, 0x68, 0xEE],
- 'MediumPurple': [0x93, 0x70, 0xDB],
- 'BlueViolet': [0x8A, 0x2B, 0xE2],
- 'Indigo': [0x4B, 0x00, 0x82],
- 'DarkOrchid': [0x99, 0x32, 0xCC],
- 'DarkViolet': [0x94, 0x00, 0xD3],
- 'MediumOrchid': [0xBA, 0x55, 0xD3],
- 'Thistle': [0xD8, 0xBF, 0xD8],
- 'Plum': [0xDD, 0xA0, 0xDD],
- 'Violet': [0xEE, 0x82, 0xEE],
- 'Purple': [0x80, 0x00, 0x80],
- 'DarkMagenta': [0x8B, 0x00, 0x8B],
- 'Magenta': [0xFF, 0x00, 0xFF],
- 'Fuchsia': [0xFF, 0x00, 0xFF],
- 'Orchid': [0xDA, 0x70, 0xD6],
- 'MediumVioletRed': [0xC7, 0x15, 0x85],
- 'DeepPink': [0xFF, 0x14, 0x93],
- 'HotPink': [0xFF, 0x69, 0xB4],
- 'PaleVioletRed': [0xDB, 0x70, 0x93],
- 'LavenderBlush': [0xFF, 0xF0, 0xF5],
- 'Crimson': [0xDC, 0x14, 0x3C],
- 'Pink': [0xFF, 0xC0, 0xCB],
- 'LightPink': [0xFF, 0xB6, 0xC1]
- };
-
- $.widget("vanderlee.colorpicker", {
- options: {
- alpha: false, // Show alpha controls and mode
- altAlpha: true, // change opacity of altField as well?
- altField: '', // selector for DOM elements which change background color on change.
- altOnChange: true, // true to update on each change, false to update only on close.
- altProperties: 'background-color', // comma separated list of any of 'background-color', 'color', 'border-color', 'outline-color'
- autoOpen: false, // Open dialog automatically upon creation
- buttonColorize: false,
- buttonImage: 'images/ui-colorpicker.png',
- buttonImageOnly: false,
- buttonText: 'Color', // Text on the button and/or title of button image.
- closeOnOutside: true, // Close the dialog when clicking outside the dialog (not for inline)
- color: '#00FF00', // Initial color (for inline only)
- duration: 'fast',
- hsv: true, // Show HSV controls and modes
- layout: {
- map: [0, 0, 1, 3], // Left, Top, Width, Height (in table cells).
- bar: [1, 0, 1, 3],
- preview: [2, 0, 1, 1],
- inputs: [2, 1, 1, 1],
- hex: [2, 2, 1, 1],
- swatches: [3, 0, 1, 3]
- },
- limit: '', // Limit color "resolution": '', 'websafe', 'nibble', 'binary'
- mode: 'h', // Initial editing mode, h, s, v, r, g, b or a
- parts: '',
- rgb: true, // Show RGB controls and modes
- showAnim: 'fadeIn',
- showOn: 'focus', // 'focus', 'button', 'both'
- showOptions: {},
- swatches: null,
- title: 'Pick a color',
-
- onClose: null,
- onSelect: null
- },
-
- _create: function () {
- var self = this;
-
- self.opened = false;
- self.generated = false;
- self.inline = false;
- self.changed = false;
-
- self.dialog = null;
- self.button = null;
- self.image = null;
-
- self.mode = self.options.mode;
-
- if (self.options.swatches === null) {
- self.options.swatches = _colors;
- }
-
- if (this.element[0].nodeName.toLowerCase() === 'input') {
- if (self.element.val()) {
- self.options.color = self.element.val();
- }
- self._loadColor();
-
- $('body').append(_container_popup);
- self.dialog = $('.ui-colorpicker:last');
-
- // Click outside/inside
- $(document).mousedown(function (event) {
- if (!self.opened || event.target === self.element[0]) {
- return;
- }
-
- // Check if clicked on any part of dialog
- if ($(event.target).parents('.ui-colorpicker').length > 0) {
- self.element.blur(); // inside window!
- return;
- }
-
- // Check if clicked on button
- var p,
- parents = $(event.target).parents();
- for (p in parents) {
- if (self.button !== null && parents[p] === self.button[0]) {
- return;
- }
- }
-
- // no closeOnOutside
- if (!self.options.closeOnOutside) {
- return;
- }
-
- self.close();
- });
-
- if (self.options.showOn === 'focus' || self.options.showOn === 'both') {
- self.element.focus(function () {
- self.open();
- });
- }
- if (self.options.showOn === 'button' || self.options.showOn === 'both') {
- if (self.options.buttonImage !== '') {
- self.image = $('<img/>').attr({
- 'src': self.options.buttonImage,
- 'alt': self.options.buttonText,
- 'title': self.options.buttonText
- });
-
- if (self.options.buttonColorize) {
- self.image.css('background-color', self.color.toCSS());
- }
- }
-
- if (self.options.buttonImageOnly && self.image) {
- self.button = self.image;
- } else {
- self.button = $('<button type="button"></button>').html(self.image || self.options.buttonText).button();
- self.image = self.image ? $('img', self.button).first() : null;
- }
- self.button.insertAfter(self.element).click(function () {
- self[self.opened ? 'close' : 'open']();
- });
- }
-
- if (self.options.autoOpen) {
- self.open();
- }
-
- self.element.keydown(function (event) {
- if (event.keyCode === 9) {
- self.close();
- }
- });
-
- self.element.keyup(function (event) {
- var rgb = self._parseHex(self.element.val());
- if (rgb) {
- self.color = (rgb === false ? new self.Color() : new self.Color(rgb[0], rgb[1], rgb[2]));
- self._change();
- }
- });
- } else {
- self.inline = true;
-
- $(this.element).html(_container_inline);
- self.dialog = $('.ui-colorpicker', this.element);
-
- self._generate();
-
- self.opened = true;
- }
-
- return this;
- },
-
- destroy: function() {
- this.element.unbind();
-
- if (this.image !== null) {
- this.image.remove();
- }
-
- if (this.button !== null) {
- this.button.remove();
- }
-
- if (this.dialog !== null) {
- this.dialog.remove();
- }
- },
-
- _setOption: function(key, value){
- var self = this;
-
- switch (key) {
- case "disabled":
- if (value) {
- self.dialog.addClass('ui-colorpicker-disabled');
- } else {
- self.dialog.removeClass('ui-colorpicker-disabled');
- }
- break;
- }
-
- $.Widget.prototype._setOption.apply(self, arguments);
- },
-
- _setAltField: function () {
- if (this.options.altField && this.options.altProperties) {
- var index,
- property,
- properties = this.options.altProperties.split(',');
-
- for (index in properties) {
- property = $.trim(properties[index]);
- switch (property) {
- case 'color':
- case 'background-color':
- case 'outline-color':
- case 'border-color':
- $(this.options.altField).css(property, this.color.toCSS());
- break;
- }
- }
-
- if (this.options.altAlpha) {
- $(this.options.altField).css('opacity', this.color.a);
- }
- }
- },
-
- _loadColor: function () {
- var rgb = this._parseColor(this.options.color); //@todo
- this.color = (rgb === false ? new this.Color() : new this.Color(rgb[0], rgb[1], rgb[2]));
- this.currentColor = $.extend({}, this.color);
-
- this._setAltField();
- },
-
- _generate: function () {
- var self = this,
- index,
- part,
- parts_list;
-
- // Determine the parts to include in this colorpicker
- if (typeof self.options.parts === 'string') {
- if (self.options.parts in _parts_lists) {
- parts_list = _parts_lists[self.options.parts];
- } else {
- // automatic
- parts_list = _parts_lists[self.inline ? 'inline' : 'popup'];
- }
- } else {
- parts_list = self.options.parts;
- }
-
- // Add any parts to the internal parts list
- self.parts = {};
- for (index in parts_list) {
- part = parts_list[index];
- if (part in self._parts) {
- self.parts[part] = new self._parts[part](self);
- }
- }
-
-
- if (typeof this.color !== "object" || this.color.constructor !== this.Color) {
- self._loadColor();
- }
-
- if (!self.generated) {
- var layout_parts = [];
-
- for (index in self.options.layout) {
- if (index in self.parts) {
- layout_parts.push({
- part: index,
- pos: self.options.layout[index]
- });
- }
- }
-
- $(self._layoutTable(layout_parts, function(cell, x, y) {
- var classes = [];
-
- if (x > 0) {
- classes.push('ui-colorpicker-padding-left');
- }
-
- if (y > 0) {
- classes.push('ui-colorpicker-padding-top');
- }
-
- return '<td id="ui-colorpicker-' + cell.part + '-container"'
- + (cell.pos[2] > 1 ? ' colspan="' + cell.pos[2] + '"' : '')
- + (cell.pos[3] > 1 ? ' rowspan="' + cell.pos[3] + '"' : '')
- + (classes.length > 0 ? ' class="' + classes.join(' ') + '"' : '')
- + ' valign="top"></td>';
- })).appendTo(self.dialog).addClass('ui-dialog-content ui-widget-content');
-
- self._initAllParts();
- self._generateAllParts();
- self.generated = true;
- }
- },
-
- _layoutTable: function(layout, callback) {
- var layout = layout.sort(function(a, b) {
- if (a.pos[1] == b.pos[1]) {
- return a.pos[0] - b.pos[0];
- }
- return a.pos[1] - b.pos[1];
- }),
- bitmap,
- x,
- y,
- width, height,
- columns, rows,
- index,
- cell,
- html;
-
- // Determine dimensions of the table
- width = 0;
- height = 0;
- for (index in layout) {
- width = Math.max(width, layout[index].pos[0] + layout[index].pos[2]);
- height = Math.max(height, layout[index].pos[1] + layout[index].pos[3]);
- }
-
- // Initialize bitmap
- bitmap = [];
- for (x = 0; x < width; ++x) {
- bitmap.push(new Array(height));
- }
-
- // Mark rows and columns which have layout assigned
- rows = new Array(height);
- columns = new Array(width);
- for (index in layout) {
- // mark columns
- for (x = 0; x < layout[index].pos[2]; x += 1) {
- columns[layout[index].pos[0] + x] = true;
- }
- for (y = 0; y < layout[index].pos[3]; y += 1) {
- rows[layout[index].pos[1] + y] = true;
- }
- }
-
- // Generate the table
- html = '';
- cell = layout[index = 0];
- for (y = 0; y < height; ++y) {
- html += '<tr>';
- for (x = 0; x < width;) {
- if (cell !== undefined && x == cell.pos[0] && y == cell.pos[1]) {
- // Create a "real" cell
- var w,
- h;
-
- html += callback(cell, x, y);
-
- for (h = 0; h < cell.pos[3]; h +=1) {
- for (w = 0; w < cell.pos[2]; w +=1) {
- bitmap[x + w][y + h] = true;
- }
- }
-
- x += cell.pos[2];
- cell = layout[++index];
- } else {
- // Fill in the gaps
- var colspan = 0;
- var walked = false;
-
- while (x < width && bitmap[x][y] === undefined && (cell === undefined || y < cell.pos[1] || (y == cell.pos[1] && x < cell.pos[0]))) {
- if (columns[x] === true) {
- colspan += 1;
- }
- walked = true;
- x += 1;
- }
-
- if (colspan > 0) {
- html += '<td colspan="'+colspan+'"></td>';
- } else if (!walked) {
- x += 1;
- }
- }
- }
- html += '</tr>';
- }
-
- return '<table cellspacing="0" cellpadding="0" border="0"><tbody>' + html + '</tbody></table>';
- },
-
- _effectGeneric: function (show, slide, fade, callback) {
- var self = this;
-
- if ($.effects && $.effects[self.options.showAnim]) {
- self.dialog[show](self.options.showAnim, self.options.showOptions, self.options.duration, callback);
- } else {
- self.dialog[(self.options.showAnim === 'slideDown' ?
- slide
- : (self.options.showAnim === 'fadeIn' ?
- fade
- : show))]((self.options.showAnim ? self.options.duration : null), callback);
- if (!self.options.showAnim || !self.options.duration) {
- callback();
- }
- }
- },
-
- _effectShow: function (callback) {
- this._effectGeneric('show', 'slideDown', 'fadeIn', callback);
- },
-
- _effectHide: function (callback) {
- this._effectGeneric('hide', 'slideUp', 'fadeOut', callback);
- },
-
- open: function () {
- if (!this.opened) {
- this._generate();
-
- var offset = this.element.offset(),
- x = offset.left,
- y = offset.top + this.element.outerHeight();
- x -= Math.max(0, (x + this.dialog.width()) - $(window).width() + 20);
- y -= Math.max(0, (y + this.dialog.height()) - $(window).height() + 20);
- this.dialog.css({'left': x, 'top': y});
-
- this._effectShow();
- this.opened = true;
- }
- },
-
- close: function () {
- var self = this;
-
- this._setAltField();
-
- self.currentColor = $.extend({}, self.color);
- self.changed = false;
-
- // tear down the interface
- self._effectHide(function () {
- self.dialog.empty();
- self.generated = false;
-
- self.opened = false;
- self._callback(self.options.onClose);
- });
- },
-
- _callback: function (f) {
- var self = this;
-
- if (f instanceof Function) {
- f(self.color.toCSS(), {
- r: self.color.r,
- g: self.color.g,
- b: self.color.b,
- a: self.color.a
- }, self);
- }
- },
-
- _generateAllParts: function () {
- $.each(this.parts, function (index, part) {
- part.generate();
- });
- },
-
- _initAllParts: function () {
- $.each(this.parts, function (index, part) {
- part.init();
- });
- },
-
- _change: function () {
- this.changed = true;
-
- switch (this.options.limit) {
- case 'websafe':
- this.color.limit(6);
- break;
-
- case 'nibble':
- this.color.limit(16);
- break;
-
- case 'binary':
- this.color.limit(2);
- break;
- }
-
- // update colors
- if (!this.inline) {
- if (!this.color.equals(this._parseHex(this.element.val()))) {
- this.element.val(this.color.toHex());
- }
-
- if (this.image && this.options.buttonColorize) {
- this.image.css('background-color', this.color.toCSS());
- }
-
- if (this.options.altOnChange) {
- this._setAltField();
- }
- }
-
- // callback
- this._callback(this.options.onSelect);
-
- $.each(this.parts, function (index, part) {
- part.repaint();
- });
- },
-
- _intToHex: function (dec) {
- var result = dec.toString(16);
- if (result.length === 1) {
- result = ('0' + result);
- }
- return result.toLowerCase();
- },
-
- // This will be deprecated by jQueryUI 1.9 widget
- _hoverable: function (e) {
- e.hover(function () {
- e.addClass("ui-state-hover");
- }, function () {
- e.removeClass("ui-state-hover");
- });
- },
-
- // This will be deprecated by jQueryUI 1.9 widget
- _focusable: function (e) {
- e.focus(function () {
- e.addClass("ui-state-focus");
- }).blur(function () {
- e.removeClass("ui-state-focus");
- });
- },
-
- _parts: {
- header: function (inst) {
- var self = this,
- e = null,
- _html;
-
- _html = function () {
- return '<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">'
- + '<span class="ui-dialog-title">' + inst.options.title + '</span>'
- + '<a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button">'
- + '<div class="ui-icon ui-icon-closethick"></div></a></div>';
- };
-
- this.init = function () {
- e = $(_html()).prependTo(inst.dialog);
- var close = $('.ui-dialog-titlebar-close', e);
- inst._hoverable(close);
- inst._focusable(close);
-
- close.click( function() {
- inst.close()
- });
- };
-
- this.repaint = function () {
- };
-
- this.generate = function () {
- this.repaint();
- };
- },
-
- map: function (inst) {
- var self = this,
- e = null,
- _mousedown, _mouseup, _mousemove, _html;
-
- _mousedown = function (event) {
- if (!inst.opened) {
- return;
- }
-
- var div = $('#ui-colorpicker-map-layer-pointer', e),
- offset = div.offset(),
- width = div.width(),
- height = div.height(),
- x = event.pageX - offset.left,
- y = event.pageY - offset.top;
-
- if (x >= 0 && x < width && y >= 0 && y < height) {
- event.stopImmediatePropagation();
- event.preventDefault();
- $(document).unbind('mousedown', _mousedown);
- $(document).bind('mouseup', _mouseup);
- $(document).bind('mousemove', _mousemove);
- _mousemove(event);
- }
- };
-
- _mouseup = function (event) {
- event.stopImmediatePropagation();
- event.preventDefault();
- $(document).unbind('mouseup', _mouseup);
- $(document).unbind('mousemove', _mousemove);
- $(document).bind('mousedown', _mousedown);
- };
-
- _mousemove = function (event) {
- event.stopImmediatePropagation();
- event.preventDefault();
-
- if (event.pageX === self.x && event.pageY === self.y) {
- return;
- }
- self.x = event.pageX;
- self.y = event.pageY;
-
- var div = $('#ui-colorpicker-map-layer-pointer', e),
- offset = div.offset(),
- width = div.width(),
- height = div.height(),
- x = event.pageX - offset.left,
- y = event.pageY - offset.top;
-
- x = Math.max(0, Math.min(x / width, 1));
- y = Math.max(0, Math.min(y / height, 1));
-
- // interpret values
- switch (inst.mode) {
- case 'h':
- inst.color.s = x;
- inst.color.v = 1 - y;
- inst.color.updateRGB();
- break;
-
- case 's':
- case 'a':
- inst.color.h = x;
- inst.color.v = 1 - y;
- inst.color.updateRGB();
- break;
-
- case 'v':
- inst.color.h = x;
- inst.color.s = 1 - y;
- inst.color.updateRGB();
- break;
-
- case 'r':
- inst.color.b = x;
- inst.color.g = 1 - y;
- inst.color.updateHSV();
- break;
-
- case 'g':
- inst.color.b = x;
- inst.color.r = 1 - y;
- inst.color.updateHSV();
- break;
-
- case 'b':
- inst.color.r = x;
- inst.color.g = 1 - y;
- inst.color.updateHSV();
- break;
- }
-
- inst._change();
- };
-
- _html = function () {
- var html = '<div id="ui-colorpicker-map" class="ui-colorpicker-border">'
- + '<span id="ui-colorpicker-map-layer-1">&nbsp;</span>'
- + '<span id="ui-colorpicker-map-layer-2">&nbsp;</span>'
- + (inst.options.alpha ? '<span id="ui-colorpicker-map-layer-alpha">&nbsp;</span>' : '')
- + '<span id="ui-colorpicker-map-layer-pointer"><span id="ui-colorpicker-map-pointer"></span></span></div>';
- return html;
- };
-
- this.generate = function () {
- switch (inst.mode) {
- case 'h':
- $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show();
- $('#ui-colorcasepicker-map-layer-2', e).hide();
- break;
-
- case 's':
- case 'a':
- $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show();
- $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show();
- break;
-
- case 'v':
- $(e).css('background-color', 'black');
- $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -780px', 'opacity': ''}).show();
- $('#ui-colorpicker-map-layer-2', e).hide();
- break;
-
- case 'r':
- $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1040px', 'opacity': ''}).show();
- $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show();
- break;
-
- case 'g':
- $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show();
- $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1820px', 'opacity': ''}).show();
- break;
-
- case 'b':
- $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -2080px', 'opacity': ''}).show();
- $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show();
- break;
- }
- self.repaint();
- };
-
- this.repaint = function () {
- var div = $('#ui-colorpicker-map-layer-pointer', e),
- x = 0,
- y = 0;
-
- switch (inst.mode) {
- case 'h':
- x = inst.color.s * div.width();
- y = (1 - inst.color.v) * div.width();
- $(e).css('background-color', inst.color.normClone().toCSS());
- break;
-
- case 's':
- case 'a':
- x = inst.color.h * div.width();
- y = (1 - inst.color.v) * div.width();
- $('#ui-colorpicker-map-layer-2', e).css('opacity', 1 - inst.color.s);
- break;
-
- case 'v':
- x = inst.color.h * div.width();
- y = (1 - inst.color.s) * div.width();
- $('#ui-colorpicker-map-layer-1', e).css('opacity', inst.color.v);
- break;
-
- case 'r':
- x = inst.color.b * div.width();
- y = (1 - inst.color.g) * div.width();
- $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.r);
- break;
-
- case 'g':
- x = inst.color.b * div.width();
- y = (1 - inst.color.r) * div.width();
- $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.g);
- break;
-
- case 'b':
- x = inst.color.r * div.width();
- y = (1 - inst.color.g) * div.width();
- $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.b);
- break;
- }
-
- if (inst.options.alpha) {
- $('#ui-colorpicker-map-layer-alpha', e).css('opacity', 1 - inst.color.a);
- }
-
- $('#ui-colorpicker-map-pointer', e).css({
- 'left': x - 7,
- 'top': y - 7
- });
- };
-
- this.init = function () {
- e = $(_html()).appendTo($('#ui-colorpicker-map-container', inst.dialog));
-
- e.bind('mousedown', _mousedown);
- };
- },
-
- bar: function (inst) {
- var self = this,
- e = null,
- _mousedown, _mouseup, _mousemove, _html;
-
- _mousedown = function (event) {
- if (!inst.opened) {
- return;
- }
-
- var div = $('#ui-colorpicker-bar-layer-pointer', e),
- offset = div.offset(),
- width = div.width(),
- height = div.height(),
- x = event.pageX - offset.left,
- y = event.pageY - offset.top;
-
- if (x >= 0 && x < width && y >= 0 && y < height) {
- event.stopImmediatePropagation();
- event.preventDefault();
- $(document).unbind('mousedown', _mousedown);
- $(document).bind('mouseup', _mouseup);
- $(document).bind('mousemove', _mousemove);
- _mousemove(event);
- }
- };
-
- _mouseup = function (event) {
- event.stopImmediatePropagation();
- event.preventDefault();
- $(document).unbind('mouseup', _mouseup);
- $(document).unbind('mousemove', _mousemove);
- $(document).bind('mousedown', _mousedown);
- };
-
- _mousemove = function (event) {
- event.stopImmediatePropagation();
- event.preventDefault();
-
- if (event.pageY === self.y) {
- return;
- }
- self.y = event.pageY;
-
- var div = $('#ui-colorpicker-bar-layer-pointer', e),
- offset = div.offset(),
- height = div.height(),
- y = event.pageY - offset.top;
-
- y = Math.max(0, Math.min(y / height, 1));
-
- // interpret values
- switch (inst.mode) {
- case 'h':
- inst.color.h = 1 - y;
- inst.color.updateRGB();
- break;
-
- case 's':
- inst.color.s = 1 - y;
- inst.color.updateRGB();
- break;
-
- case 'v':
- inst.color.v = 1 - y;
- inst.color.updateRGB();
- break;
-
- case 'r':
- inst.color.r = 1 - y;
- inst.color.updateHSV();
- break;
-
- case 'g':
- inst.color.g = 1 - y;
- inst.color.updateHSV();
- break;
-
- case 'b':
- inst.color.b = 1 - y;
- inst.color.updateHSV();
- break;
-
- case 'a':
- inst.color.a = 1 - y;
- break;
- }
-
- inst._change();
- };
-
- _html = function () {
- var html = '<div id="ui-colorpicker-bar" class="ui-colorpicker-border">'
- + '<span id="ui-colorpicker-bar-layer-1">&nbsp;</span>'
- + '<span id="ui-colorpicker-bar-layer-2">&nbsp;</span>'
- + '<span id="ui-colorpicker-bar-layer-3">&nbsp;</span>'
- + '<span id="ui-colorpicker-bar-layer-4">&nbsp;</span>';
-
- if (inst.options.alpha) {
- html += '<span id="ui-colorpicker-bar-layer-alpha">&nbsp;</span>'
- + '<span id="ui-colorpicker-bar-layer-alphabar">&nbsp;</span>';
- }
-
- html += '<span id="ui-colorpicker-bar-layer-pointer"><span id="ui-colorpicker-bar-pointer"></span></span></div>';
-
- return html;
- };
-
- this.generate = function () {
- switch (inst.mode) {
- case 'h':
- case 's':
- case 'v':
- case 'r':
- case 'g':
- case 'b':
- $('#ui-colorpicker-bar-layer-alpha', e).show();
- $('#ui-colorpicker-bar-layer-alphabar', e).hide();
- break;
-
- case 'a':
- $('#ui-colorpicker-bar-layer-alpha', e).hide();
- $('#ui-colorpicker-bar-layer-alphabar', e).show();
- break;
- }
-
- switch (inst.mode) {
- case 'h':
- $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-2', e).hide();
- $('#ui-colorpicker-bar-layer-3', e).hide();
- $('#ui-colorpicker-bar-layer-4', e).hide();
- break;
-
- case 's':
- $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-3', e).hide();
- $('#ui-colorpicker-bar-layer-4', e).hide();
- break;
-
- case 'v':
- $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -520px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-2', e).hide();
- $('#ui-colorpicker-bar-layer-3', e).hide();
- $('#ui-colorpicker-bar-layer-4', e).hide();
- break;
-
- case 'r':
- $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -780px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -1040px', 'opacity': ''}).show();
- break;
-
- case 'g':
- $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -2600px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -1820px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -2080px', 'opacity': ''}).show();
- break;
-
- case 'b':
- $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -3640px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -3380px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -2860px', 'opacity': ''}).show();
- $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -3120px', 'opacity': ''}).show();
- break;
-
- case 'a':
- $('#ui-colorpicker-bar-layer-1', e).hide();
- $('#ui-colorpicker-bar-layer-2', e).hide();
- $('#ui-colorpicker-bar-layer-3', e).hide();
- $('#ui-colorpicker-bar-layer-4', e).hide();
- break;
- }
- self.repaint();
- };
-
- this.repaint = function () {
- var div = $('#ui-colorpicker-bar-layer-pointer', e),
- y = 0;
-
- switch (inst.mode) {
- case 'h':
- y = (1 - inst.color.h) * div.height();
- break;
-
- case 's':
- y = (1 - inst.color.s) * div.height();
- $('#ui-colorpicker-bar-layer-2', e).css('opacity', 1 - inst.color.v);
- $(e).css('background-color', inst.color.normClone().toCSS());
- break;
-
- case 'v':
- y = (1 - inst.color.v) * div.height();
- $(e).css('background-color', inst.color.normClone().toCSS());
- break;
-
- case 'r':
- y = (1 - inst.color.r) * div.height();
- $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.g)));
- $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.b)));
- $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.b, inst.color.g));
- break;
-
- case 'g':
- y = (1 - inst.color.g) * div.height();
- $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.r)));
- $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.r - inst.color.b)));
- $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.b));
- break;
-
- case 'b':
- y = (1 - inst.color.b) * div.height();
- $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.r - inst.color.g)));
- $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.r)));
- $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.g));
- break;
-
- case 'a':
- y = (1 - inst.color.a) * div.height();
- $(e).css('background-color', inst.color.normClone().toCSS());
- break;
- }
-
- if (inst.mode !== 'a') {
- $('#ui-colorpicker-bar-layer-alpha', e).css('opacity', 1 - inst.color.a);
- }
-
- $('#ui-colorpicker-bar-pointer', e).css('top', y - 3);
- };
-
- this.init = function () {
- e = $(_html()).appendTo($('#ui-colorpicker-bar-container', inst.dialog));
-
- e.bind('mousedown', _mousedown);
- };
- },
-
- inputs: function (inst) {
- var self = this,
- e = null,
- _html;
-
- _html = function () {
- var html = '<div id="ui-colorpicker-inputs">';
-
- if (inst.options.hsv) {
- html += '<div id="ui-colorpicker-h"><input class="ui-colorpicker-mode" type="radio" value="h"/><label>H:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="360" size="10"/><span class="ui-colorpicker-unit">&deg;</span></div>'
- + '<div id="ui-colorpicker-s"><input class="ui-colorpicker-mode" type="radio" value="s"/><label>S:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>'
- + '<div id="ui-colorpicker-v"><input class="ui-colorpicker-mode" type="radio" value="v"/><label>V:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>';
- }
-
- if (inst.options.rgb) {
- html += '<div id="ui-colorpicker-r"><input class="ui-colorpicker-mode" type="radio" value="r"/><label>R:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>'
- + '<div id="ui-colorpicker-g"><input class="ui-colorpicker-mode" type="radio" value="g"/><label>G:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>'
- + '<div id="ui-colorpicker-b"><input class="ui-colorpicker-mode" type="radio" value="b"/><label>B:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>';
- }
-
- if (inst.options.alpha) {
- html += '<div id="ui-colorpicker-a"><input class="ui-colorpicker-mode" name="mode" type="radio" value="a"/><label>A:</label><input class="ui-colorpicker-number ui-colorpicker-number-a" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>';
- }
-
- return html + '</div>';
- };
-
- this.init = function () {
- e = $(_html()).appendTo($('#ui-colorpicker-inputs-container', inst.dialog));
-
- $('.ui-colorpicker-mode', e).click(function () {
- inst.mode = $(this).val();
- inst._generateAllParts();
- });
-
- $('.ui-colorpicker-number', e).bind('change input keyup', function () {
- inst.color.r = $('#ui-colorpicker-r .ui-colorpicker-number', e).val() / 255;
- inst.color.g = $('#ui-colorpicker-g .ui-colorpicker-number', e).val() / 255;
- inst.color.b = $('#ui-colorpicker-b .ui-colorpicker-number', e).val() / 255;
- inst.color.a = $('#ui-colorpicker-a .ui-colorpicker-number', e).val() / 100;
- inst.color.h = $('#ui-colorpicker-h .ui-colorpicker-number', e).val() / 360;
- inst.color.s = $('#ui-colorpicker-s .ui-colorpicker-number', e).val() / 100;
- inst.color.v = $('#ui-colorpicker-v .ui-colorpicker-number', e).val() / 100;
-
- if ($(this).hasClass('ui-colorpicker-number-hsv')) {
- inst.color.updateRGB();
- } else if ($(this).hasClass('ui-colorpicker-number-rgb')) {
- inst.color.updateHSV();
- }
-
- inst._change();
- });
- };
-
- this.repaint = function () {
- var c = $.extend(inst.color);
- c.h *= 360;
- c.s *= 100;
- c.v *= 100;
- c.r *= 255;
- c.g *= 255;
- c.b *= 255;
- c.a *= 100;
-
- $.each(c, function (index, value) {
- var v = Math.round(value);
- if (!$('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).is(':focus')
- && $('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val() !== v) {
- $('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val(v);
- }
- });
- };
-
- this.generate = function () {
- $('.ui-colorpicker-mode', e).each(function () {
- $(this).attr('checked', $(this).val() === inst.mode);
- });
- this.repaint();
- };
- },
-
- preview: function (inst) {
- var self = this,
- e = null,
- _html;
-
- _html = function () {
- return '<div id="ui-colorpicker-preview">'
- + '<span class="ui-colorpicker-border">'
- + '<div id="ui-colorpicker-preview-initial"><div id="ui-colorpicker-preview-initial-alpha"></div></div>'
- + '<div id="ui-colorpicker-preview-current"><div id="ui-colorpicker-preview-current-alpha"></div></div>'
- + '</span>'
- + '</div>';
- };
-
- this.init = function () {
- e = $(_html()).appendTo($('#ui-colorpicker-preview-container', inst.dialog));
-
- $('#ui-colorpicker-preview-initial', e).click(function () {
- inst.color = $.extend({}, inst.currentColor);
- inst._change();
- });
-
- };
-
- this.repaint = function () {
- $('#ui-colorpicker-preview-initial', e).css('background-color', inst.currentColor.toCSS()).attr('title', inst.currentColor.toHex());
- $('#ui-colorpicker-preview-initial-alpha', e).css('opacity', 1 - inst.currentColor.a);
- $('#ui-colorpicker-preview-current', e).css('background-color', inst.color.toCSS()).attr('title', inst.color.toHex());
- $('#ui-colorpicker-preview-current-alpha', e).css('opacity', 1 - inst.color.a);
- };
-
- this.generate = function () {
- if (inst.options.alpha) {
- $('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).show();
- } else {
- $('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).hide();
- }
-
- this.repaint();
- };
- },
-
- hex: function (inst) {
- var self = this,
- e = null,
- _html;
-
- _html = function () {
- var html = '';
-
- if (inst.options.alpha) {
- html += '<input id="ui-colorpicker-hex-alpha" maxlength="2" size="2"/>';
- }
-
- html += '<input id="ui-colorpicker-hex-input" maxlength="6" size="6"/>';
-
- return '<div id="ui-colorpicker-hex"><label for="ui-colorpicker-hex-input">#: </label>' + html + '</div>';
- };
-
- this.init = function () {
- e = $(_html()).appendTo($('#ui-colorpicker-hex-container', inst.dialog));
-
- $('#ui-colorpicker-hex-input', e).bind('change keyup', function () {
- var rgb = inst._parseHex($(this).val());
- inst.color.r = rgb[0];
- inst.color.g = rgb[1];
- inst.color.b = rgb[2];
- inst.color.updateHSV();
- inst._change();
- });
-
- $('#ui-colorpicker-hex-alpha', e).bind('change keyup', function () {
- inst.color.a = parseInt($('#ui-colorpicker-hex-alpha', e).val(), 16);
- inst._change();
- });
- };
-
- this.repaint = function () {
- if (!$('#ui-colorpicker-hex-input', e).is(':focus')) {
- $('#ui-colorpicker-hex-input', e).val(inst.color.toHex(true));
- }
-
- if (!$('#ui-colorpicker-hex-alpha', e).is(':focus')) {
- $('#ui-colorpicker-hex-alpha', e).val(inst._intToHex(inst.color.a * 255));
- }
- };
-
- this.generate = function () {
- this.repaint();
- };
- },
-
- swatches: function (inst) {
- var self = this,
- e = null,
- _html;
-
- _html = function () {
- var html = '';
-
- $.each(inst.options.swatches, function (name, color) {
- var hex = inst._intToHex(color[0]) + inst._intToHex(color[1]) + inst._intToHex(color[2]);
- html += '<div class="ui-colorpicker-swatch" style="background-color: #' + hex + '" title="' + name + '"></div>';
- });
-
- return '<div id="ui-colorpicker-swatches" class="ui-colorpicker-border">' + html + '</div>';
- };
-
- this.init = function () {
- e = $(_html()).appendTo($('#ui-colorpicker-swatches-container', inst.dialog));
-
- $('.ui-colorpicker-swatch', e).click(function () {
- var rgb = inst._parseColor($(this).css('background-color'));
- inst.color = (rgb === false ? new inst.Color() : new inst.Color(rgb[0], rgb[1], rgb[2]));
- inst._change();
- });
- };
-
- this.repaint = function () {
- // Not affected by changing color;
- };
-
- this.generate = function () {
- // Not affected by changing color;
- };
- },
-
- footer: function (inst) {
- var self = this,
- e = null,
- _html;
-
- _html = function () {
- return '<div class="ui-dialog-buttonpane ui-widget-content">'
- + (inst.options.alpha ? '<button class="ui-colorpicker-transparent">transparent</button>' : '')
- + (inst.inline ? '' : '<div class="ui-dialog-buttonset">'
- + '<button class="ui-colorpicker-close">Done</button>'
- + '</div>')
- + '</div>';
- };
-
- this.init = function () {
- e = $(_html()).appendTo(inst.dialog);
-
- $('.ui-colorpicker-close', e).button().click(function () {
- inst.close();
- });
-
- if (inst.options.alpha) {
- $('.ui-colorpicker-transparent', e).button().click(function () {
- inst.color.a = 0;
- inst._change();
- });
- }
- };
-
- this.repaint = function () {};
-
- this.generate = function () {};
- }
- },
-
- _parseHex: function (color) {
- var name = $.trim(color).toLowerCase(),
- c,
- m;
-
- if (_colors[name]) {
- c = _colors[name];
- return [c[0] / 255, c[1] / 255, c[2] / 255];
- }
-
- // {#}rrggbb
- m = /^#?([a-fA-F0-9]{0,6})/.exec(color);
- if (m) {
- c = parseInt(m[1], 16);
- return [((c >> 16) & 0xFF) / 255,
- ((c >> 8) & 0xFF) / 255,
- (c & 0xFF) / 255];
- }
- },
-
- _parseColor: function (color) {
- var m;
-
- // rgba(r,g,b,a)
- m = /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color);
- if (m) {
- return [
- m[1] / 255,
- m[2] / 255,
- m[3] / 255,
- m[4] / 255
- ];
- }
-
- // rgba(r%,g%,b%,a%)
- m = /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color);
- if (m) {
- return [
- m[1] / 100,
- m[2] / 100,
- m[3] / 100,
- m[4] / 100
- ];
- }
-
- // #rrggbb
- m = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color);
- if (m) {
- return [
- parseInt(m[1], 16) / 255,
- parseInt(m[2], 16) / 255,
- parseInt(m[3], 16) / 255
- ];
- }
-
- // #rgb
- m = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color);
- if (m) {
- return [
- parseInt(m[1] + m[1], 16) / 255,
- parseInt(m[2] + m[2], 16) / 255,
- parseInt(m[3] + m[3], 16) / 255
- ];
- }
-
- return this._parseHex(color);
- },
-
- Color: function () {
- var a, args = arguments;
-
- this.updateRGB = function () {
- this.h = Math.max(0, Math.min(this.h, 1));
- this.s = Math.max(0, Math.min(this.s, 1));
- this.v = Math.max(0, Math.min(this.v, 1));
-
- if (this.s === 0) {
- this.r = this.g = this.b = this.v;
- } else {
- var var_h = this.h === 1 ? 0 : this.h * 6,
- var_i = Math.floor(var_h),
- var_1 = this.v * (1 - this.s),
- var_2 = this.v * (1 - this.s * (var_h - var_i)),
- var_3 = this.v * (1 - this.s * (1 - (var_h - var_i)));
-
- if (var_i === 0) {
- this.r = this.v;
- this.g = var_3;
- this.b = var_1;
- } else if (var_i === 1) {
- this.r = var_2;
- this.g = this.v;
- this.b = var_1;
- } else if (var_i === 2) {
- this.r = var_1;
- this.g = this.v;
- this.b = var_3;
- } else if (var_i === 3) {
- this.r = var_1;
- this.g = var_2;
- this.b = this.v;
- } else if (var_i === 4) {
- this.r = var_3;
- this.g = var_1;
- this.b = this.v;
- } else {
- this.r = this.v;
- this.g = var_1;
- this.b = var_2;
- }
- }
- return this;
- };
-
- this.updateHSV = function () {
- var minVal, maxVal, delta, del_R, del_G, del_B;
- this.r = Math.max(0, Math.min(this.r, 1));
- this.g = Math.max(0, Math.min(this.g, 1));
- this.b = Math.max(0, Math.min(this.b, 1));
-
- minVal = Math.min(this.r, this.g, this.b);
- maxVal = Math.max(this.r, this.g, this.b);
- delta = maxVal - minVal;
-
- this.v = maxVal;
-
- if (delta === 0) {
- this.h = 0;
- this.s = 0;
- } else {
- this.s = delta / maxVal;
- del_R = (((maxVal - this.r) / 6) + (delta / 2)) / delta;
- del_G = (((maxVal - this.g) / 6) + (delta / 2)) / delta;
- del_B = (((maxVal - this.b) / 6) + (delta / 2)) / delta;
-
- if (this.r === maxVal) {
- this.h = del_B - del_G;
- } else if (this.g === maxVal) {
- this.h = (1 / 3) + del_R - del_B;
- } else if (this.b === maxVal) {
- this.h = (2 / 3) + del_G - del_R;
- }
-
- if (this.h < 0) {
- this.h += 1;
- } else if (this.h > 1) {
- this.h -= 1;
- }
- }
- return this;
- };
-
- this._hexify = function (number) {
- // return Math.round(number).toString(16);
- var digits = '0123456789abcdef',
- lsd = number % 16,
- msd = (number - lsd) / 16,
- hexified = digits.charAt(msd) + digits.charAt(lsd);
- return hexified;
- };
-
- this.toHex = function () {
- return this._hexify(this.r * 255) + this._hexify(this.g * 255) + this._hexify(this.b * 255);
- };
-
- this.toCSS = function () {
- return '#' + this.toHex();
- };
-
- this.toHexAlpha = function () {
- return this._hexify(this.a * 255);
- };
-
- this.normClone = function () {
- return $.extend({}, this, {s: 1, v: 1}).updateRGB();
- };
-
- this.equals = function (rgb) {
- return rgb[0] === this.r
- && rgb[1] === this.g
- && rgb[2] === this.b;
- };
-
- this.limit = function (steps) {
- steps -= 1;
- this.r = Math.round(this.r * steps) / steps;
- this.g = Math.round(this.g * steps) / steps;
- this.b = Math.round(this.b * steps) / steps;
- this.updateHSV();
- };
-
- for (a = 0; a < args.length; a += 1) {
- args[a] = Math.max(0, Math.min(args[a], 1));
- }
-
- if (args.length === 0) {
- this.r = 0;
- this.g = 0;
- this.b = 0;
- this.a = 1;
- this.h = 0;
- this.s = 0;
- this.v = 0;
- } else if (args.length === 3) {
- // r,g,b
- this.r = args[0] || 0;
- this.g = args[1] || 0;
- this.b = args[2] || 0;
- this.a = 1;
- this.updateHSV();
- } else if (args.length === 7) {
- // r,g,b,a,h,s,v
- this.r = args[0] || 0;
- this.g = args[1] || 0;
- this.b = args[2] || 0;
- this.a = args[3] || 0;
- this.h = args[4] || 0;
- this.s = args[5] || 0;
- this.v = args[6] || 0;
- }
- }
- });
-
-}(jQuery));
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html b/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html
deleted file mode 100755
index ef35aebf..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Data Point Highlighting, Tooltips and Cursor Tracking</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="canvas-overlay.html">Previous</a> <a href="./">Examples</a> <a href="customHighlighterCursorTrendline.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<p>The Highlighter plugin will highlight data points near the mouse and display an optional tooltip with the data point value. By default, the tooltip values will be formatted with the same formatter as used to display the axes tick values. The text format can be customized with an optional sprintf style format string.</p>
-
-<div id="chart1" style="height:300px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>The Cursor plugin changes the mouse cursor when it enters the graph area and displays an optional tooltip with the mouse position. The tooltip can be in a fixed location, or it can follow the mouse. The pointer style, set to "crosshair" by default, can also be customized. Tooltip values are formatted similar to the Highlighter plugin. By default they use the axes formatters, but can be customized with a sprintf format string.</p>
-
-<div id="chart2" style="height:300px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1=[['23-May-08', 578.55], ['20-Jun-08', 566.5], ['25-Jul-08', 480.88], ['22-Aug-08', 509.84],
- ['26-Sep-08', 454.13], ['24-Oct-08', 379.75], ['21-Nov-08', 303], ['26-Dec-08', 308.56],
- ['23-Jan-09', 299.14], ['20-Feb-09', 346.51], ['20-Mar-09', 325.99], ['24-Apr-09', 386.15]];
- var plot1 = $.jqplot('chart1', [line1], {
- title:'Data Point Highlighting',
- axes:{
- xaxis:{
- renderer:$.jqplot.DateAxisRenderer,
- tickOptions:{
- formatString:'%b&nbsp;%#d'
- }
- },
- yaxis:{
- tickOptions:{
- formatString:'$%.2f'
- }
- }
- },
- highlighter: {
- show: true,
- sizeAdjust: 7.5
- },
- cursor: {
- show: false
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1=[['23-May-08', 578.55], ['20-Jun-08', 566.5], ['25-Jul-08', 480.88], ['22-Aug-08', 509.84],
- ['26-Sep-08', 454.13], ['24-Oct-08', 379.75], ['21-Nov-08', 303], ['26-Dec-08', 308.56],
- ['23-Jan-09', 299.14], ['20-Feb-09', 346.51], ['20-Mar-09', 325.99], ['24-Apr-09', 386.15]];
- var plot2 = $.jqplot('chart2', [line1], {
- title:'Mouse Cursor Tracking',
- axes:{
- xaxis:{
- renderer:$.jqplot.DateAxisRenderer,
- tickOptions:{
- formatString:'%b&nbsp;%#d'
- }
- },
- yaxis:{
- tickOptions:{
- formatString:'$%.2f'
- }
- }
- },
- highlighter: {
- show: false
- },
- cursor: {
- show: true,
- tooltipLocation:'sw'
- }
- });
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html b/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html
deleted file mode 100755
index d5ed6ce4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Highlighting, Dragging Points, Cursor and Trend Lines.</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="cursor-highlighter.html">Previous</a> <a href="./">Examples</a> <a href="dashboardWidget.html">Next</a></div>
-
- <div class="example-plot" id="chart1"></div>
-<!-- Example scripts go here -->
-
- <script class="code" type="text/javascript">
-
- $(document).ready(function () {
-
- $.jqplot.config.enablePlugins = true;
-
- s1 = [['23-May-08',1],['24-May-08',4],['25-May-08',2],['26-May-08', 6]];
-
- plot1 = $.jqplot('chart1',[s1],{
- title: 'Highlighting, Dragging, Cursor and Trend Line',
- axes: {
- xaxis: {
- renderer: $.jqplot.DateAxisRenderer,
- tickOptions: {
- formatString: '%#m/%#d/%y'
- },
- numberTicks: 4
- },
- yaxis: {
- tickOptions: {
- formatString: '$%.2f'
- }
- }
- },
- highlighter: {
- sizeAdjust: 10,
- tooltipLocation: 'n',
- tooltipAxes: 'y',
- tooltipFormatString: '<b><i><span style="color:red;">hello</span></i></b> %.2f',
- useAxesFormatters: false
- },
- cursor: {
- show: true
- }
- });
- });
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.dragable.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.trendline.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html b/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html
deleted file mode 100755
index d57f1de3..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html
+++ /dev/null
@@ -1,212 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Animated Dashboard Sample - Filled Line with Log Axis</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="customHighlighterCursorTrendline.html">Previous</a> <a href="./">Examples</a> <a href="dashedLines.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
- <link class="include" rel="stylesheet" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.css" />
-
- <style type="text/css">
- .jqplot-target {
- margin: 20px;
- height: 340px;
- width: 600px;
- color: #dddddd;
- }
-
- .ui-widget-content {
- background: rgb(57,57,57);
- }
-
- table.jqplot-table-legend {
- border: 0px;
- background-color: rgba(100,100,100, 0.0);
- }
-
- .jqplot-highlighter-tooltip {
- background-color: rgba(57,57,57, 0.9);
- padding: 7px;
- color: #dddddd;
- }
-
-
-
- </style>
-
- <div class="ui-widget ui-corner-all">
- <div class="ui-widget-header ui-corner-top">Hi Powered Data</div>
- <div class="ui-widget-content ui-corner-bottom" >
- <div id="chart1"></div>
- </div>
- </div>
-
- <pre class="code brush:js"></pre>
-
- <script class="code" type="text/javascript">
-
- $(document).ready(function () {
- $.jqplot._noToImageButton = true;
- var prevYear = [["2011-08-01",398], ["2011-08-02",255.25], ["2011-08-03",263.9], ["2011-08-04",154.24],
- ["2011-08-05",210.18], ["2011-08-06",109.73], ["2011-08-07",166.91], ["2011-08-08",330.27], ["2011-08-09",546.6],
- ["2011-08-10",260.5], ["2011-08-11",330.34], ["2011-08-12",464.32], ["2011-08-13",432.13], ["2011-08-14",197.78],
- ["2011-08-15",311.93], ["2011-08-16",650.02], ["2011-08-17",486.13], ["2011-08-18",330.99], ["2011-08-19",504.33],
- ["2011-08-20",773.12], ["2011-08-21",296.5], ["2011-08-22",280.13], ["2011-08-23",428.9], ["2011-08-24",469.75],
- ["2011-08-25",628.07], ["2011-08-26",516.5], ["2011-08-27",405.81], ["2011-08-28",367.5], ["2011-08-29",492.68],
- ["2011-08-30",700.79], ["2011-08-31",588.5], ["2011-09-01",511.83], ["2011-09-02",721.15], ["2011-09-03",649.62],
- ["2011-09-04",653.14], ["2011-09-06",900.31], ["2011-09-07",803.59], ["2011-09-08",851.19], ["2011-09-09",2059.24],
- ["2011-09-10",994.05], ["2011-09-11",742.95], ["2011-09-12",1340.98], ["2011-09-13",839.78], ["2011-09-14",1769.21],
- ["2011-09-15",1559.01], ["2011-09-16",2099.49], ["2011-09-17",1510.22], ["2011-09-18",1691.72],
- ["2011-09-19",1074.45], ["2011-09-20",1529.41], ["2011-09-21",1876.44], ["2011-09-22",1986.02],
- ["2011-09-23",1461.91], ["2011-09-24",1460.3], ["2011-09-25",1392.96], ["2011-09-26",2164.85],
- ["2011-09-27",1746.86], ["2011-09-28",2220.28], ["2011-09-29",2617.91], ["2011-09-30",3236.63]];
-
- var currYear = [["2011-08-01",796.01], ["2011-08-02",510.5], ["2011-08-03",527.8], ["2011-08-04",308.48],
- ["2011-08-05",420.36], ["2011-08-06",219.47], ["2011-08-07",333.82], ["2011-08-08",660.55], ["2011-08-09",1093.19],
- ["2011-08-10",521], ["2011-08-11",660.68], ["2011-08-12",928.65], ["2011-08-13",864.26], ["2011-08-14",395.55],
- ["2011-08-15",623.86], ["2011-08-16",1300.05], ["2011-08-17",972.25], ["2011-08-18",661.98], ["2011-08-19",1008.67],
- ["2011-08-20",1546.23], ["2011-08-21",593], ["2011-08-22",560.25], ["2011-08-23",857.8], ["2011-08-24",939.5],
- ["2011-08-25",1256.14], ["2011-08-26",1033.01], ["2011-08-27",811.63], ["2011-08-28",735.01], ["2011-08-29",985.35],
- ["2011-08-30",1401.58], ["2011-08-31",1177], ["2011-09-01",1023.66], ["2011-09-02",1442.31], ["2011-09-03",1299.24],
- ["2011-09-04",1306.29], ["2011-09-06",1800.62], ["2011-09-07",1607.18], ["2011-09-08",1702.38],
- ["2011-09-09",4118.48], ["2011-09-10",1988.11], ["2011-09-11",1485.89], ["2011-09-12",2681.97],
- ["2011-09-13",1679.56], ["2011-09-14",3538.43], ["2011-09-15",3118.01], ["2011-09-16",4198.97],
- ["2011-09-17",3020.44], ["2011-09-18",3383.45], ["2011-09-19",2148.91], ["2011-09-20",3058.82],
- ["2011-09-21",3752.88], ["2011-09-22",3972.03], ["2011-09-23",2923.82], ["2011-09-24",2920.59],
- ["2011-09-25",2785.93], ["2011-09-26",4329.7], ["2011-09-27",3493.72], ["2011-09-28",4440.55],
- ["2011-09-29",5235.81], ["2011-09-30",6473.25]];
-
- var plot1 = $.jqplot("chart1", [prevYear, currYear], {
- seriesColors: ["rgba(78, 135, 194, 0.7)", "rgb(211, 235, 59)"],
- title: 'Monthly TurnKey Revenue',
- highlighter: {
- show: true,
- sizeAdjust: 1,
- tooltipOffset: 9
- },
- grid: {
- background: 'rgba(57,57,57,0.0)',
- drawBorder: false,
- shadow: false,
- gridLineColor: '#666666',
- gridLineWidth: 2
- },
- legend: {
- show: true,
- placement: 'outside'
- },
- seriesDefaults: {
- rendererOptions: {
- smooth: true,
- animation: {
- show: true
- }
- },
- showMarker: false
- },
- series: [
- {
- fill: true,
- label: '2010'
- },
- {
- label: '2011'
- }
- ],
- axesDefaults: {
- rendererOptions: {
- baselineWidth: 1.5,
- baselineColor: '#444444',
- drawBaseline: false
- }
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.DateAxisRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- formatString: "%b %e",
- angle: -30,
- textColor: '#dddddd'
- },
- min: "2011-08-01",
- max: "2011-09-30",
- tickInterval: "7 days",
- drawMajorGridlines: false
- },
- yaxis: {
- renderer: $.jqplot.LogAxisRenderer,
- pad: 0,
- rendererOptions: {
- minorTicks: 1
- },
- tickOptions: {
- formatString: "$%'d",
- showMark: false
- }
- }
- }
- });
-
- $('.jqplot-highlighter-tooltip').addClass('ui-corner-all')
- });
-
-
- </script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html b/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html
deleted file mode 100755
index d1bf48fb..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Dashed Lines with Smoothing</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="dashboardWidget.html">Previous</a> <a href="./">Examples</a> <a href="data-renderers.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- .jqplot-target {
- margin-bottom: 2em;
- }
-
- p {
- margin: 2em 0;
- }
- </style>
-
-
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
- <div id="chart1b" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
- <div id="chart2" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
- <div id="chart3" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
- <div id="chart4" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
- <div id="chart4b" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
- <div id="chart5" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
- <script class="code" type="text/javascript">
-
- $(document).ready(function () {
- s1 = [[0, 2], [1, 6], [2, 7], [3, 10]];
-
- // Lines can be drawn as solid, dashed or dotted with the "linePattern" option.
- // The default is "solid". Other basic options are "dashed" and "dotted".
-
- plot1 = $.jqplot("chart1", [s1], {
- seriesDefaults:{
- linePattern: 'dashed',
- showMarker: false,
- shadow: false
- }
- });
- });
-</script>
-
- <script class="code" type="text/javascript">
-
- $(document).ready(function () {
-
- s1 = [[0, 2], [1, 6], [2, 7], [3, 10]];
-
- // Size of the dashes is proportional to the width of the line.
-
- plot1b = $.jqplot("chart1b", [s1], {
- seriesDefaults:{
- linePattern: 'dashed',
- lineWidth: 7,
- showMarker: false,
- shadow: false
- }
- });
- });
-</script>
-
-
- <script class="code" type="text/javascript">
- $(document).ready(function () {
- s2 = [[0, 6.29], [0.1, 8.21], [0.2, 8.92], [0.3, 7.33], [0.4, 7.91], [0.5, 3.6], [0.6, 6.88],
- [0.7, 1.5], [0.8, 0.08], [0.9, 6.36], [1, 0.5], [1.1, 9.14], [1.2, 6.23], [1.3, 2.66],
- [1.4, 9.9], [1.5, 7.44], [1.6, 7.82], [1.7, 8.57], [1.8, 3.99], [1.9, 3.83], [2, 6.78],
- [2.1, 7.63], [2.2, 6.94], [2.3, 1.24], [2.4, 2.25], [2.5, 0.67], [2.6, 6.73], [2.7, 2.25],
- [2.8, 7.72], [2.9, 9.36], [3, 8.49]];
-
- // Here is the default dotted line.
-
- plot2 = $.jqplot("chart2", [s2], {
- seriesDefaults:{
- linePattern: 'dotted',
- showMarker: false,
- shadow: false
- }
- });
- });
-</script>
-
-
- <script class="code" type="text/javascript">
- $(document).ready(function () {
-
- // Dashes and dots work with smoothed lines as well.
-
- plot3 = $.jqplot("chart3", [s2], {
- seriesDefaults:{
- linePattern: 'dashed',
- showMarker: false,
- shadow: false,
- rendererOptions: {
- smooth: true
- }
- }
- });
- });
-</script>
-
-
- <script class="code" type="text/javascript">
- $(document).ready(function () {
-
- // A user defined linePattern can be specified as well. The format
- // of a linePattern definition is an array like [dash length, gap length, ...].
- // The line looks best when the line pattern array has an even number
- // of elements, so it begins with a dash and ends with a gap.
- // The dash and gap lengths are scaled to the line thickness.
-
- plot4 = $.jqplot("chart4", [s2], {
- seriesDefaults:{
- linePattern: [4, 3, 1, 3, 1, 3],
- showMarker: false,
- shadow: false,
- rendererOptions: {
- smooth: true
- }
- }
- });
- });
-</script>
-
-
-<script class="code" type="text/javascript">
- $(document).ready(function () {
-
- // The linePattern option also accepts a shorthand string
- // notation of dash (-) and dot (.) characters to create
- // a customized pattern.
-
- plot4b = $.jqplot("chart4b", [s2], {
- seriesDefaults:{
- linePattern: '-.',
- showMarker: false,
- shadow: false,
- rendererOptions: {
- smooth: true
- }
- }
- });
- });
-</script>
-
- <script class="code" type="text/javascript">
- $(document).ready(function () {
-
- // The default dash length and gap length can be controlled
- // with the dashLength and gapLength config parameters.
-
- $.jqplot.config.dashLength = 5;
- $.jqplot.config.gapLength = 2;
-
- plot5 = $.jqplot("chart5", [s2], {
- seriesDefaults:{
- linePattern: 'dashed',
- showMarker: false,
- shadow: false,
- rendererOptions: {
- smooth: true
- }
- }
- });
- });
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html b/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html
deleted file mode 100755
index ba835d58..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>AJAX and JSON Data Loading via Data Renderers</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="dashedLines.html">Previous</a> <a href="./">Examples</a> <a href="date-axes.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<p>Data renderers allow jqPlot to pull data from any external source (e.g. a function implementing an AJAX call). Simply assign the external source to the "dataRenderer" plot option. The only requirement on data renderers is that it must return a valid jqPlot data array.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>Data renderers get passed options by the plot. The signiture for a data renderer is:</p>
-
-
-<pre class="brush: js">
-function(userData, plotObject, options) {
- ...
- return data;
-}
-</pre>
-
-
-<p>Where userData is whatever data was passed into the plot, plotObject is a reference back to the plot itself, and options are any options passed into the plots "dataRendererOption" option. The following example shows a more complicated example which uses ajax pulls data from an external json data source.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // Our data renderer function, returns an array of the form:
- // [[[x1, sin(x1)], [x2, sin(x2)], ...]]
- var sineRenderer = function() {
- var data = [[]];
- for (var i=0; i<13; i+=0.5) {
- data[0].push([i, Math.sin(i)]);
- }
- return data;
- };
-
- // we have an empty data array here, but use the "dataRenderer"
- // option to tell the plot to get data from our renderer.
- var plot1 = $.jqplot('chart1',[],{
- title: 'Sine Data Renderer',
- dataRenderer: sineRenderer
- });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // Our ajax data renderer which here retrieves a text file.
- // it could contact any source and pull data, however.
- // The options argument isn't used in this renderer.
- var ajaxDataRenderer = function(url, plot, options) {
- var ret = null;
- $.ajax({
- // have to use synchronous here, else the function
- // will return before the data is fetched
- async: false,
- url: url,
- dataType:"json",
- success: function(data) {
- ret = data;
- }
- });
- return ret;
- };
-
- // The url for our json data
- var jsonurl = "./jsondata.txt";
-
- // passing in the url string as the jqPlot data argument is a handy
- // shortcut for our renderer. You could also have used the
- // "dataRendererOptions" option to pass in the url.
- var plot2 = $.jqplot('chart2', jsonurl,{
- title: "AJAX JSON Data Renderer",
- dataRenderer: ajaxDataRenderer,
- dataRendererOptions: {
- unusedOptionalUrl: jsonurl
- }
- });
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.json2.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html b/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html
deleted file mode 100755
index 4fa3f620..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Date Axes</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="data-renderers.html">Previous</a> <a href="./">Examples</a> <a href="dateAxisLogAxisZooming.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-<p>Date axes support is provided through the dateAxisRenderer plugin. Date axes expand javascripts native date handling capabilities. This allow dates to be input in almost any unambiguous form, not just in milliseconds!</p>
-
-<p><em>Note, although jqPlot will parse most any human readable date, it is safest to use javascript time stamps when possible. Also, it is best to specify a date and time and not just a date alone. This is due to inconsistent browser handling of local time vs. UTC with bare dates.</em></p>
-
-<div id="chart1" style="height:300px; width:650px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>Date Axes also provide powerful formatting features. This allows custom formatter strings to be used to format axis tick labels precisely the way you want.</p>
-
-<div id="chart2" style="height:300px; width:650px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1=[['2008-08-12 4:00PM',4], ['2008-09-12 4:00PM',6.5], ['2008-10-12 4:00PM',5.7], ['2008-11-12 4:00PM',9], ['2008-12-12 4:00PM',8.2]];
- var plot1 = $.jqplot('chart1', [line1], {
- title:'Default Date Axis',
- axes:{
- xaxis:{
- renderer:$.jqplot.DateAxisRenderer
- }
- },
- series:[{lineWidth:4, markerOptions:{style:'square'}}]
- });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1=[['2008-06-30 8:00AM',4], ['2008-7-14 8:00AM',6.5], ['2008-7-28 8:00AM',5.7], ['2008-8-11 8:00AM',9], ['2008-8-25 8:00AM',8.2]];
- var plot2 = $.jqplot('chart2', [line1], {
- title:'Customized Date Axis',
- axes:{
- xaxis:{
- renderer:$.jqplot.DateAxisRenderer,
- tickOptions:{formatString:'%b %#d, %#I %p'},
- min:'June 16, 2008 8:00AM',
- tickInterval:'2 weeks'
- }
- },
- series:[{lineWidth:4, markerOptions:{style:'square'}}]
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html
deleted file mode 100755
index 81f0f1c7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Zooming with Date and Log Axes</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="date-axes.html">Previous</a> <a href="./">Examples</a> <a href="dateAxisRenderer.html">Next</a></div>
-
- <div class="example-plot" id="chart1" style="width: 700px; height: 400px;"></div>
-
-<!-- Example scripts go here -->
-
-<script type="text/javascript" src="yahooData.js" ></script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- plot1 = $.jqplot('chart1', [yahoo], {
- series: [{
- renderer: $.jqplot.OHLCRenderer,
- rendererOptions: {
- candleStick: true
- }
- }],
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- rendererOptions: {
- tickInset: 0
- },
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -30
- }
- },
- yaxis: {
- renderer: $.jqplot.LogAxisRenderer,
- tickOptions:{ prefix: '$' }
- }
- },
- cursor:{
- show: true,
- zoom: true
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html
deleted file mode 100755
index b0b72fba..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html
+++ /dev/null
@@ -1,292 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Date Axes</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="dateAxisLogAxisZooming.html">Previous</a> <a href="./">Examples</a> <a href="fillBetweenLines.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<p class="text">Date axis renderer with default settings. Ticks are given wider spacing by default since date axes typically have longer tick labels.</p>
-<div id="chart1" style="margin:20px;height:240px; width:640px;"></div>
-<p class="text">Date axis recognizes rotated tick labels. It will space ticks a little closer when labels are rotated.</p>
-<div id="chart2" style="margin:20px;height:240px; width:640px;"></div>
-<p class="text">If you want more or less ticks, specify the "numberTicks" options. Date axes will try to produce the desired number of ticks, but may adjust to get a nice interval.</p>
-<div id="chart3" style="margin:20px;height:240px; width:640px;"></div>
-
-<script type="text/javascript">
- var ohlc = [['07/06/09', 138.7, 139.68, 135.18, 135.4],
- ['06/29/09', 143.46, 144.66, 139.79, 140.02],
- ['06/22/09', 140.67, 143.56, 132.88, 142.44],
- ['06/15/09', 136.01, 139.5, 134.53, 139.48],
- ['06/08/09', 143.82, 144.56, 136.04, 136.97],
- ['06/01/09', 136.47, 146.4, 136, 144.67],
- ['05/26/09', 124.76, 135.9, 124.55, 135.81],
- ['05/18/09', 123.73, 129.31, 121.57, 122.5],
- ['05/11/09', 127.37, 130.96, 119.38, 122.42],
- ['05/04/09', 128.24, 133.5, 126.26, 129.19],
- ['04/27/09', 122.9, 127.95, 122.66, 127.24],
- ['04/20/09', 121.73, 127.2, 118.6, 123.9],
- ['04/13/09', 120.01, 124.25, 115.76, 123.42],
- ['04/06/09', 114.94, 120, 113.28, 119.57],
- ['03/30/09', 104.51, 116.13, 102.61, 115.99],
- ['03/23/09', 102.71, 109.98, 101.75, 106.85],
- ['03/16/09', 96.53, 103.48, 94.18, 101.59],
- ['03/09/09', 84.18, 97.2, 82.57, 95.93],
- ['03/02/09', 88.12, 92.77, 82.33, 85.3],
- ['02/23/09', 91.65, 92.92, 86.51, 89.31],
- ['02/17/09', 96.87, 97.04, 89, 91.2],
- ['02/09/09', 100, 103, 95.77, 99.16],
- ['02/02/09', 89.1, 100, 88.9, 99.72],
- ['01/26/09', 88.86, 95, 88.3, 90.13],
- ['01/20/09', 81.93, 90, 78.2, 88.36],
- ['01/12/09', 90.46, 90.99, 80.05, 82.33],
- ['01/05/09', 93.17, 97.17, 90.04, 90.58],
- ['12/29/08', 86.52, 91.04, 84.72, 90.75],
- ['12/22/08', 90.02, 90.03, 84.55, 85.81],
- ['12/15/08', 95.99, 96.48, 88.02, 90],
- ['12/08/08', 97.28, 103.6, 92.53, 98.27],
- ['12/01/08', 91.3, 96.23, 86.5, 94],
- ['11/24/08', 85.21, 95.25, 84.84, 92.67],
- ['11/17/08', 88.48, 91.58, 79.14, 82.58],
- ['11/10/08', 100.17, 100.4, 86.02, 90.24],
- ['11/03/08', 105.93, 111.79, 95.72, 98.24],
- ['10/27/08', 95.07, 112.19, 91.86, 107.59],
- ['10/20/08', 99.78, 101.25, 90.11, 96.38],
- ['10/13/08', 104.55, 116.4, 85.89, 97.4],
- ['10/06/08', 91.96, 101.5, 85, 96.8],
- ['09/29/08', 119.62, 119.68, 94.65, 97.07],
- ['09/22/08', 139.94, 140.25, 123, 128.24],
- ['09/15/08', 142.03, 147.69, 120.68, 140.91],
- ['09/08/08', 164.57, 164.89, 146, 148.94]
- ];
-
- var hlc = [['07/06/09', 139.68, 135.18, 135.4],
- ['06/29/09', 144.66, 139.79, 140.02],
- ['06/22/09', 143.56, 132.88, 142.44],
- ['06/15/09', 139.5, 134.53, 139.48],
- ['06/08/09', 144.56, 136.04, 136.97],
- ['06/01/09', 146.4, 136, 144.67],
- ['05/26/09', 135.9, 124.55, 135.81],
- ['05/18/09', 129.31, 121.57, 122.5],
- ['05/11/09', 130.96, 119.38, 122.42],
- ['05/04/09', 133.5, 126.26, 129.19],
- ['04/27/09', 127.95, 122.66, 127.24],
- ['04/20/09', 127.2, 118.6, 123.9],
- ['04/13/09', 124.25, 115.76, 123.42],
- ['04/06/09', 120, 113.28, 119.57],
- ['03/30/09', 116.13, 102.61, 115.99],
- ['03/23/09', 109.98, 101.75, 106.85],
- ['03/16/09', 103.48, 94.18, 101.59],
- ['03/09/09', 97.2, 82.57, 95.93],
- ['03/02/09', 92.77, 82.33, 85.3],
- ['02/23/09', 92.92, 86.51, 89.31],
- ['02/17/09', 97.04, 89, 91.2],
- ['02/09/09', 103, 95.77, 99.16],
- ['02/02/09', 100, 88.9, 99.72],
- ['01/26/09', 95, 88.3, 90.13],
- ['01/20/09', 90, 78.2, 88.36],
- ['01/12/09', 90.99, 80.05, 82.33],
- ['01/05/09', 97.17, 90.04, 90.58],
- ['12/29/08', 91.04, 84.72, 90.75],
- ['12/22/08', 90.03, 84.55, 85.81],
- ['12/15/08', 96.48, 88.02, 90],
- ['12/08/08', 103.6, 92.53, 98.27],
- ['12/01/08', 96.23, 86.5, 94],
- ['11/24/08', 95.25, 84.84, 92.67],
- ['11/17/08', 91.58, 79.14, 82.58],
- ['11/10/08', 100.4, 86.02, 90.24],
- ['11/03/08', 111.79, 95.72, 98.24],
- ['10/27/08', 112.19, 91.86, 107.59],
- ['10/20/08', 101.25, 90.11, 96.38],
- ['10/13/08', 116.4, 85.89, 97.4],
- ['10/06/08', 101.5, 85, 96.8],
- ['09/29/08', 119.68, 94.65, 97.07],
- ['09/22/08', 140.25, 123, 128.24],
- ['09/15/08', 147.69, 120.68, 140.91],
- ['09/08/08', 164.89, 146, 148.94]
- ];
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- title: "CandleStick Chart",
- // Globally enable plugins like cursor and highlighter
- $.jqplot.config.enablePlugins = true;
-
- // for 2 digit years, set the default centry to 2000.
- $.jsDate.config.defaultCentury = 2000;
-
- plot1 = $.jqplot('chart1',[ohlc],{
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer
- },
- yaxis: {
- tickOptions:{prefix: '$'}
- }
- },
- series: [
- {
- renderer:$.jqplot.OHLCRenderer,
- rendererOptions:{
- candleStick:true
- }
- }
- ],
- highlighter: {
- showMarker:false,
- tooltipAxes: 'xy',
- yvalues: 4,
- formatString:'<table class="jqplot-highlighter"> \
- <tr><td>date:</td><td>%s</td></tr> \
- <tr><td>open:</td><td>%s</td></tr> \
- <tr><td>hi:</td><td>%s</td></tr> \
- <tr><td>low:</td><td>%s</td></tr> \
- <tr><td>close:</td><td>%s</td></tr> \
- </table>'
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- plot2 = $.jqplot('chart2',[ohlc],{
- title: 'OHLC chart',
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -30
- }
- },
- yaxis: {
- tickOptions:{
- prefix: '$'
- }
- }
- },
- series: [
- {
- renderer:$.jqplot.OHLCRenderer
- }
- ],
- highlighter: {
- showMarker:false,
- tooltipAxes: 'xy',
- yvalues: 4,
- formatString:'<table class="jqplot-highlighter"> \
- <tr><td>date:</td><td>%s</td></tr> \
- <tr><td>open:</td><td>%s</td></tr> \
- <tr><td>hi:</td><td>%s</td></tr> \
- <tr><td>low:</td><td>%s</td></tr> \
- <tr><td>close:</td><td>%s</td></tr> \
- </table>'
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
- plot3 = $.jqplot('chart3',[ohlc],{
- axesDefaults:{},
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- numberTicks: 7,
- tickOptions: {
- angle: -30
- }
- },
- yaxis: {
- tickOptions:{
- prefix: '$'
- }
- }
- },
- series: [
- {
- renderer:$.jqplot.OHLCRenderer,
- rendererOptions:{
- candleStick:true
- }
- }
- ],
- highlighter: {
- showMarker:false,
- tooltipAxes: 'xy',
- yvalues: 4,
- formatString:'<table class="jqplot-highlighter"> \
- <tr><td>date:</td><td>%s</td></tr> \
- <tr><td>open:</td><td>%s</td></tr> \
- <tr><td>hi:</td><td>%s</td></tr> \
- <tr><td>low:</td><td>%s</td></tr> \
- <tr><td>close:</td><td>%s</td></tr> \
- </table>'
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/example.js b/wqflask/wqflask/static/packages/jqplot/examples/example.js
deleted file mode 100755
index ff85cd20..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/example.js
+++ /dev/null
@@ -1,114 +0,0 @@
-$(document).ready(function(){
- if (!$.jqplot._noCodeBlock) {
- $('script.code').each(function(index) {
- if ($('pre.code').eq(index).length ) {
- $('pre.code').eq(index).text($(this).html());
- }
- else {
- // var str = $(this).text();
- // $('div.jqplot-target').eq(index).after($('<pre class="code">'+str+'</pre>'));
- var pre = $('<pre class="code prettyprint brush: js"></pre>');
- $('div.jqplot-target').eq(index).after(pre);
- pre.text($(this).html());
- pre = null;
- }
- });
-
- $('script.common').each(function(index) {
- $('pre.common').eq(index).text($(this).html());
- });
-
- var elstr='';
- if ($('script.include, link.include').length > 0) {
-
- if ($('pre.include').length == 0) {
- var temp = [
- '<div class="code prettyprint include">',
- '<p class="text">The charts on this page depend on the following files:</p>',
- '<pre class="include prettyprint brush: html gutter: false"></pre>',
- '</div>'
- ];
-
- temp = $(temp.join('\n'));
- $('div.example-content').append(temp);
- temp = null;
- }
-
-
- $('script.include').each(function(index) {
- if (elstr !== '') {
- elstr += '\n';
- }
- elstr += '<script type="text/javascript" src="'+$(this).attr('src')+'"></script>';
- });
-
- $('link.include').each(function(index) {
- if (elstr !== '') {
- elstr += '\n';
- }
- elstr += '<link rel="stylesheet" type="text/css" hrf="'+$(this).attr('href')+'" />';
- })
-
- $('pre.include').text(elstr);
- }
-
- else {
- $('pre.include').remove();
- $('div.include').remove();
- }
- }
-
- if (!$.jqplot.use_excanvas) {
- $('div.jqplot-target').each(function(){
- var outerDiv = $(document.createElement('div'));
- var header = $(document.createElement('div'));
- var div = $(document.createElement('div'));
-
- outerDiv.append(header);
- outerDiv.append(div);
-
- outerDiv.addClass('jqplot-image-container');
- header.addClass('jqplot-image-container-header');
- div.addClass('jqplot-image-container-content');
-
- header.html('Right Click to Save Image As...');
-
- var close = $(document.createElement('a'));
- close.addClass('jqplot-image-container-close');
- close.html('Close');
- close.attr('href', '#');
- close.click(function() {
- $(this).parents('div.jqplot-image-container').hide(500);
- })
- header.append(close);
-
- $(this).after(outerDiv);
- outerDiv.hide();
-
- outerDiv = header = div = close = null;
-
- if (!$.jqplot._noToImageButton) {
- var btn = $(document.createElement('button'));
- btn.text('View Plot Image');
- btn.addClass('jqplot-image-button');
- btn.bind('click', {chart: $(this)}, function(evt) {
- var imgelem = evt.data.chart.jqplotToImageElem();
- var div = $(this).nextAll('div.jqplot-image-container').first();
- div.children('div.jqplot-image-container-content').empty();
- div.children('div.jqplot-image-container-content').append(imgelem);
- div.show(500);
- div = null;
- });
-
- $(this).after(btn);
- btn.after('<br />');
- btn = null;
- }
- });
- }
-
- SyntaxHighlighter.defaults['toolbar'] = true;
- SyntaxHighlighter.all();
-
- $(document).unload(function() {$('*').unbind(); });
-}); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/example.min.js b/wqflask/wqflask/static/packages/jqplot/examples/example.min.js
deleted file mode 100755
index 132e2295..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/example.min.js
+++ /dev/null
@@ -1 +0,0 @@
-$(document).ready(function(){if(!$.jqplot._noCodeBlock){$("script.code").each(function(c){if($("pre.code").eq(c).length){$("pre.code").eq(c).text($(this).html())}else{var d=$('<pre class="code prettyprint brush: js"></pre>');$("div.jqplot-target").eq(c).after(d);d.text($(this).html());d=null}});$("script.common").each(function(c){$("pre.common").eq(c).text($(this).html())});var b="";if($("script.include, link.include").length>0){if($("pre.include").length==0){var a=['<div class="code prettyprint include">','<p class="text">The charts on this page depend on the following files:</p>','<pre class="include prettyprint brush: html gutter: false"></pre>',"</div>"];a=$(a.join("\n"));$("div.example-content").append(a);a=null}$("script.include").each(function(c){if(b!==""){b+="\n"}b+='<script type="text/javascript" src="'+$(this).attr("src")+'"><\/script>'});$("link.include").each(function(c){if(b!==""){b+="\n"}b+='<link rel="stylesheet" type="text/css" hrf="'+$(this).attr("href")+'" />'});$("pre.include").text(b)}else{$("pre.include").remove();$("div.include").remove()}}if(!$.jqplot.use_excanvas){$("div.jqplot-target").each(function(){var d=$(document.createElement("div"));var g=$(document.createElement("div"));var f=$(document.createElement("div"));d.append(g);d.append(f);d.addClass("jqplot-image-container");g.addClass("jqplot-image-container-header");f.addClass("jqplot-image-container-content");g.html("Right Click to Save Image As...");var e=$(document.createElement("a"));e.addClass("jqplot-image-container-close");e.html("Close");e.attr("href","#");e.click(function(){$(this).parents("div.jqplot-image-container").hide(500)});g.append(e);$(this).after(d);d.hide();d=g=f=e=null;if(!$.jqplot._noToImageButton){var c=$(document.createElement("button"));c.text("View Plot Image");c.addClass("jqplot-image-button");c.bind("click",{chart:$(this)},function(h){var j=h.data.chart.jqplotToImageElem();var i=$(this).nextAll("div.jqplot-image-container").first();i.children("div.jqplot-image-container-content").empty();i.children("div.jqplot-image-container-content").append(j);i.show(500);i=null});$(this).after(c);c.after("<br />");c=null}})}SyntaxHighlighter.defaults.toolbar=true;SyntaxHighlighter.all();$(document).unload(function(){$("*").unbind()})}); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/examples.css b/wqflask/wqflask/static/packages/jqplot/examples/examples.css
deleted file mode 100755
index 9a084d0c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/examples.css
+++ /dev/null
@@ -1,140 +0,0 @@
-body {
- margin:0px;
- padding: 0px;
- font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
-}
-
-div.logo {
- position: relative;
- height: 94px;
- padding: 0px;
- margin-bottom: 30px;
- top: 0px;
- background-image: url('./images/logo.jpg');
- background-repeat: no-repeat;
- background-color: #292929;
-}
-
-div.nav {
- position:relative;
- top: 70px;
- text-align: right;
-}
-
-a.nav span {
- font-size: 11px;
- position: relative;
- bottom: 2px;
-}
-
-a.nav:visited {
- text-decoration: none;
- border: 0px;
- color: #aaaaaa;
-}
-
-a.nav, a.nav:link {
- border: 0px;
- text-decoration: none;
- font-family: Tahoma, "Helvetica Neue", "Trebuchet MS", Verdana, Arial, sans-serif;
- font-size: 16px;
- color: #aaaaaa;
- margin-right: 11px;
-}
-
-a.nav:hover {
- text-decoration: none;
- border: 0px;
- color: #E0771C;
-}
-
-a.nav:active {
- text-decoration: none;
- border: 0px;
- color: #E0771C;
-}
-
-div.example-content {
- margin: 30px 50px;
-}
-
-div.example-nav {
- margin-bottom:30px;
-}
-
-pre.code-block{
- background: #D8F4DC;
- border: 1px solid rgb(200, 200, 200);
- padding-top: 1em;
- padding-left: 3em;
- padding-bottom: 1em;
- margin-top: 1em;
- margin-bottom: 3em;
-
-}
-
-pre.code {
-/* background: #D8F4DC;*/
- border: 1px solid rgb(200, 200, 200);
- padding-top: 1em;
- padding-left: 3em;
- padding-bottom: 1em;
- margin-top: 1em;
- margin-bottom: 4em;
-
-}
-
-div.include {
- margin-bottom: 2em;
-}
-
-p {
- margin: 2em 0;
-}
-
-.jqplot-image-button {
- margin-bottom: 15px;
- margin-top: 15px;
-}
-
-div.jqplot-image-container {
- position: relative;
- z-index: 11;
-
- margin: auto;
- display: none;
- background-color: #ffffff;
- border: 1px solid #999;
- display: inline-block;
- margin-top: 25px;
-}
-
-div.jqplot-image-container-header {
- font-size: 1.0em;
- font-weight: bold;
- padding: 5px 15px;
- background-color: #eee;
-}
-
-div.jqplot-image-container-content {
- padding: 15px;
- background-color: #ffffff;
-}
-
-a.jqplot-image-container-close {
- float: right;
-}
-
-div.example-plot {
- width: 500px;
- height: 300px;
-}
-
-.jqplot-table-legend-label {
- white-space: nowrap;
-}
-
-div.syntaxhighlighter {
- margin-top: 4em !important;
- margin-bottom: 3em !important;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css b/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css
deleted file mode 100755
index e5c93c3a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css
+++ /dev/null
@@ -1 +0,0 @@
-body{margin:0;padding:0;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;}div.logo{position:relative;height:94px;padding:0;margin-bottom:30px;top:0;background-image:url('./images/logo.jpg');background-repeat:no-repeat;background-color:#292929;}div.nav{position:relative;top:70px;text-align:right;}a.nav span{font-size:11px;position:relative;bottom:2px;}a.nav:visited{text-decoration:none;border:0;color:#aaa;}a.nav,a.nav:link{border:0;text-decoration:none;font-family:Tahoma,"Helvetica Neue","Trebuchet MS",Verdana,Arial,sans-serif;font-size:16px;color:#aaa;margin-right:11px;}a.nav:hover{text-decoration:none;border:0;color:#E0771C;}a.nav:active{text-decoration:none;border:0;color:#E0771C;}div.example-content{margin:30px 50px;}div.example-nav{margin-bottom:30px;}pre.code-block{background:#D8F4DC;border:1px solid #c8c8c8;padding-top:1em;padding-left:3em;padding-bottom:1em;margin-top:1em;margin-bottom:3em;}pre.code{border:1px solid #c8c8c8;padding-top:1em;padding-left:3em;padding-bottom:1em;margin-top:1em;margin-bottom:4em;}div.include{margin-bottom:2em;}p{margin:2em 0;}.jqplot-image-button{margin-bottom:15px;margin-top:15px;}div.jqplot-image-container{position:relative;z-index:11;margin:auto;display:none;background-color:#fff;border:1px solid #999;display:inline-block;margin-top:25px;}div.jqplot-image-container-header{font-size:1.0em;font-weight:bold;padding:5px 15px;background-color:#eee;}div.jqplot-image-container-content{padding:15px;background-color:#fff;}a.jqplot-image-container-close{float:right;}div.example-plot{width:500px;height:300px;}.jqplot-table-legend-label{white-space:nowrap;}div.syntaxhighlighter{margin-top:4em!important;margin-bottom:3em!important;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html b/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html
deleted file mode 100755
index 50c2d66a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Charts with Fill Between Lines</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="dateAxisRenderer.html">Previous</a> <a href="./">Examples</a> <a href="hiddenPlotsInTabs.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css" media="screen">
- .jqplot-axis {
- font-size: 0.85em;
- }
- .jqplot-title {
- font-size: 1.1em;
- }
- </style>
-
-
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:600px; height:400px;"></div>
-
- <p>Enter 2 series to fill between:</p>
-
- <label for="series1">First Series: </label>
- <input type="text" name="series1" value="1" />
- <label for="series2"> Second Series: </label>
- <input type="text" name="series2" value="3" />
- <button name="changeFill">Change Fill</button>
-
- <pre class="code brush:js"></pre>
-
-
- <script class="code" type="text/javascript" language="javascript">
- $(document).ready(function(){
- var l0 = [6, 11, 10, 13, 11, 7];
- var l1 = [3, 6, 7, 7, 5, 3];
- var l2 = [4, 8, 9, 10, 8, 6];
- var l3 = [9, 13, 14, 16, 17, 19];
- var l4 = [15, 17, 16, 18, 13, 11];
-
- var plot1 = $.jqplot("chart1", [l0, l1, l2, l3, l4], {
- title: "Fill between 2 lines",
- axesDefaults: {
- pad: 1.05
- },
- //////
- // Use the fillBetween option to control fill between two
- // lines on a plot.
- //////
- fillBetween: {
- // series1: Required, if missing won't fill.
- series1: 1,
- // series2: Required, if missing won't fill.
- series2: 3,
- // color: Optional, defaults to fillColor of series1.
- color: "rgba(227, 167, 111, 0.7)",
- // baseSeries: Optional. Put fill on a layer below this series
- // index. Defaults to 0 (first series). If an index higher than 0 is
- // used, fill will hide series below it.
- baseSeries: 0,
- // fill: Optional, defaults to true. False to turn off fill.
- fill: true
- },
- seriesDefaults: {
- rendererOptions: {
- //////
- // Turn on line smoothing. By default, a constrained cubic spline
- // interpolation algorithm is used which will not overshoot or
- // undershoot any data points.
- //////
- smooth: true
- }
- }
- });
-
- // bind a function to the change button to update the plot's fillBetween series
- // and replot().
- $("button[name=changeFill]").click(function(e) {
- plot1.fillBetween.series1 = parseInt($("input[name=series1]").val());
- plot1.fillBetween.series2 = parseInt($("input[name=series2]").val());
- plot1.replot();
- });
- });
- </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html b/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html
deleted file mode 100755
index 1a508baa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html
+++ /dev/null
@@ -1,225 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Hidden Plots</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="fillBetweenLines.html">Previous</a> <a href="./">Examples</a> <a href="kcp_area.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- .ui-tabs, .ui-accordion {
- width: 690px;
- margin: 2em auto;
- }
- .ui-tabs-nav, .ui-accordion-header {
- font-size: 12px;
- }
-
- .ui-tabs-panel, .ui-accordion-content {
- font-size: 14px;
- }
-
- .jqplot-target {
- font-size: 18px;
- }
-
- ol.description {
- list-style-position: inside;
- font-size:15px;
- margin:1.5em auto;
- padding:0 15px;
- width:600px;
- }
- </style>
-
-<p class="description">This page demonstrates placing plots within jQuery UI widgets. Tab 2 and tab 3 contain plots. Using a combination of alternate sizing specification and the jqplot "replot" method the plots are properly displayed when their containers are shown.</p>
-
- <p class="description">The alternate sizing specifications for setting plot height and width are needed because a hidden element (or child of a hidden element) has no size. The first example in tab 2 uses custom "data-height" and "data-width" attributes on the plot target element. The second example uses "width" and "height" properties specified on the options object passed into the $.jqplot() function.</p>
-
- <p class="description">The default plot size is 300px wide by 400px high. The default setting can be overridden by specifying different values to the $.jqplot.config.defaultHeight and $.jqplot.config.defaultWidth properties. Height and width values are taken in this order of precedence:
- </p>
-
- <ol class="description">
- <li>The css properties of the plot target if available (not available with display:none;).</li>
- <li>Options object passed into the $.jqplot() function.</li>
- <li>Custom data-height and data-width attributes on the plot target.</li>
- <li>The config defaults.</li>
- </ol>
-
- <div id="tabs">
- <ul>
- <li><a href="#tabs-1">Tab 1</a></li>
- <li><a href="#tabs-2">Tab 2</a></li>
- <li><a href="#tabs-3">Tab 3</a></li>
- </ul>
- <div id="tabs-1">
- Tabs 2 and 3 have plots. Since tabs 2 and 3 are initially inactive, their contents (and the plots) are initially hidden.
- </div>
-
- <div id="tabs-2">
- <p>This plot was in an initially hidden container. It's hieght and width are set by the "data-height" and "data-width" properties of the plot container.</p>
- <div id="chart1" data-height="260px" data-width="480px" style="margin-top:20px; margin-left:20px;"></div>
- </div>
-
- <div id="tabs-3">
- <p>This plot is in an initially hidden container. It's height and width are set by the 'height' and 'width' properties of the options object passed into the plot constructor.</p>
- <div id="chart2" style="margin-top:20px; margin-left:20px;"></div>
- </div>
-
- </div>
-
- <p class="description">In the accordion below, section 2 contains a plot. Sizing plots in hidden accordion sections is very similar to sizing in a tab widget. Because of the default animation on accordions, however, the plot will not draw itself until the entire accordion panel is shown.</p>
-
-<div id="accordion" style="margin-top:50px">
-
- <h3><a href="#">Section 1</a></h3>
- <div>
- Here is section 1 there is no plot. Section 2 has a plot that will display once the section is completely shown.
- </div>
-
- <h3><a href="#">Section 2</a></h3>
- <div>
- <p>
- This plot also has it's height and width set with the data-height and data-width attributes. Note, if you want the accordion widget to properly size itself </em>before</em> the plot is shown, you must also specify a css height and width on the plot target.
- </p>
- <div id="chart3" data-height="200" data-width="400" style="width:400px; height: 200px; margin-top: 20px; margin-left: 20px"></div>
- </div>
-
-</div>
-
-<p class="description">Code for generating the plots follows. It is critical to bind the callback to the UI widgets "show" or "change" method which calls the plots "replot" method. Without this, the plot won't properly redraw itself when it's container becomes visible.</p>
-
-<p class="description">
- Note in the ui.index and plot._drawCount properties in the tabsshow callback. ui.index gives the index of the activated tab. plot._drawCount keeps track of how many times the plot was visibly drawn (or redrawn/replotted). Generally, replot only needs to be called the first time the plot is visibly drawn, hence the check for plot._drawCount === 0.
- </p>
-
-<pre class="code brush:js"></pre>
-
-<script class="code" type="text/javascript">
- $(document).ready(function() {
- $.jqplot.config.enablePlugins = false;
-
- var l1 = [18, 36, 14, 11];
- var l2 = [[2, 14], [7, 2], [8,5]];
- var l3 = [4, 7, 9, 2, 11, 5, 9, 13, 8, 7];
- var l4 = [['peech',3], ['cabbage', 2], ['bean', 4], ['orange', 5]];
-
- $("#tabs").tabs();
- $("#accordion").accordion();
-
- var plot1 = $.jqplot('chart1', [l1, l2, l3], {
- title: "I was hidden",
- lengend:{show:true},
- series:[{},{yaxis:'y2axis'}, {yaxis:'y3axis'}],
- cursor:{show:true, zoom:true},
- axesDefaults:{useSeriesColor:true, rendererOptions: { alignTicks: true}}
- });
-
- var plot2 = $.jqplot('chart2', [l4], {
- height: 200,
- width: 300,
- series:[{renderer:$.jqplot.PieRenderer}],
- legend:{show:true}
- });
-
- var catOHLC = [[1, 138.7, 139.68, 135.18, 135.4],
- [2, 143.46, 144.66, 139.79, 140.02],
- [3, 140.67, 143.56, 132.88, 142.44],
- [4, 136.01, 139.5, 134.53, 139.48],
- [5, 143.82, 144.56, 136.04, 136.97],
- [6, 136.47, 146.4, 136, 144.67],
- [7, 124.76, 135.9, 124.55, 135.81],
- [8, 123.73, 129.31, 121.57, 122.5]];
-
- var ticks = ['Tue', 'Wed', 'Thu', 'Fri', 'Mon', 'Tue', 'Wed', 'Thr'];
-
- var plot3 = $.jqplot('chart3',[catOHLC],{
- grid:{ drawGridlines:true},
- title: 'A CandleStick Chart',
- axes: {
- xaxis: {
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks
- },
- yaxis: {
- tickOptions:{formatString:'$%.2f'}
- }
- },
- series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}]
- });
-
- $('#tabs').bind('tabsshow', function(event, ui) {
- if (ui.index === 1 && plot1._drawCount === 0) {
- plot1.replot();
- }
- else if (ui.index === 2 && plot2._drawCount === 0) {
- plot2.replot();
- }
- });
-
- $('#accordion').bind('accordionchange', function(event, ui) {
- var index = $(this).find("h3").index ( ui.newHeader[0] );
- if (index === 1) {
- plot3.replot();
- }
- });
-
- });
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg b/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg
deleted file mode 100755
index a12fffcd..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png b/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png
deleted file mode 100755
index e244c689..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/index.html b/wqflask/wqflask/static/packages/jqplot/examples/index.html
deleted file mode 100755
index 2947604a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/index.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>jqPlot Sample Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
-<!-- Index content goes here -->
-
-<style type="text/css">
-
- p.example-link {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
- margin-left: 120px;
- }
-
-</style>
-
-<div class="example-links">
-
-<p class="example-link"><a class="example-link" href="area.html">Filled (Area) Charts</a></p>
-<p class="example-link"><a class="example-link" href="axisLabelTests.html">Line Charts and Options</a></p>
-<p class="example-link"><a class="example-link" href="axisLabelsRotatedText.html">Axis Labels and Rotated Text</a></p>
-<p class="example-link"><a class="example-link" href="axisScalingForceTickAt.html">Force Plot to Have Tick at 0 or 100</a></p>
-<p class="example-link"><a class="example-link" href="bandedLine.html">Error Bands and Confidence Intervals</a></p>
-<p class="example-link"><a class="example-link" href="bar-charts.html">Vertical and Horizontal Bar Charts</a></p>
-<p class="example-link"><a class="example-link" href="barLineAnimated.html">Animated Charts</a></p>
-<p class="example-link"><a class="example-link" href="barTest.html">Bar Charts</a></p>
-<p class="example-link"><a class="example-link" href="bezierCurve.html">Bezier Curve Plots</a></p>
-<p class="example-link"><a class="example-link" href="blockPlot.html">Block Plots</a></p>
-<p class="example-link"><a class="example-link" href="bubble-plots.html">Bubble Plots</a></p>
-<p class="example-link"><a class="example-link" href="bubbleChart.html">Bubble Charts</a></p>
-<p class="example-link"><a class="example-link" href="candlestick-charts.html">Open Hi Low Close and Candlestick Charts</a></p>
-<p class="example-link"><a class="example-link" href="candlestick.html">Candlestick and Open Hi Low Close charts</a></p>
-<p class="example-link"><a class="example-link" href="canvas-overlay.html">Draw Lines on Plots - Canvas Overlay</a></p>
-<p class="example-link"><a class="example-link" href="cursor-highlighter.html">Data Point Highlighting, Tooltips and Cursor Tracking</a></p>
-<p class="example-link"><a class="example-link" href="customHighlighterCursorTrendline.html">Highlighting, Dragging Points, Cursor and Trend Lines.</a></p>
-<p class="example-link"><a class="example-link" href="dashboardWidget.html">Animated Dashboard Sample - Filled Line with Log Axis</a></p>
-<p class="example-link"><a class="example-link" href="dashedLines.html">Dashed Lines with Smoothing</a></p>
-<p class="example-link"><a class="example-link" href="data-renderers.html">AJAX and JSON Data Loading via Data Renderers</a></p>
-<p class="example-link"><a class="example-link" href="date-axes.html">Date Axes</a></p>
-<p class="example-link"><a class="example-link" href="dateAxisLogAxisZooming.html">Zooming with Date and Log Axes</a></p>
-<p class="example-link"><a class="example-link" href="dateAxisRenderer.html">Date Axes</a></p>
-<p class="example-link"><a class="example-link" href="fillBetweenLines.html">Charts with Fill Between Lines</a></p>
-<p class="example-link"><a class="example-link" href="hiddenPlotsInTabs.html">Hidden Plots</a></p>
-<p class="example-link"><a class="example-link" href="kcp_area.html">Area Chart</a></p>
-<p class="example-link"><a class="example-link" href="kcp_area2.html">Area Chart 2</a></p>
-<p class="example-link"><a class="example-link" href="kcp_cdf.html">Cumulative Density Function Chart</a></p>
-<p class="example-link"><a class="example-link" href="kcp_engel.html">Engel Curves</a></p>
-<p class="example-link"><a class="example-link" href="kcp_lorenz.html">Lorenz Curves</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pdf.html">Probability Density Function Chart</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pyramid.html">Pyramid Charts</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pyramid2.html">Pyramid Charts 2</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pyramid_by_age.html">Pyramid Chart By Age</a></p>
-<p class="example-link"><a class="example-link" href="kcp_quintiles.html">Quintile Pyramid Charts</a></p>
-<p class="example-link"><a class="example-link" href="line-charts.html">Line Charts and Options</a></p>
-<p class="example-link"><a class="example-link" href="mekkoCharts.html">Mekko Charts</a></p>
-<p class="example-link"><a class="example-link" href="meritOrder.html">Merit Order Charts</a></p>
-<p class="example-link"><a class="example-link" href="meterGauge.html">Meter Gauge</a></p>
-<p class="example-link"><a class="example-link" href="multipleBarColors.html">Bar Colors Example</a></p>
-<p class="example-link"><a class="example-link" href="pie-donut-charts.html">Pie and Donut Charts</a></p>
-<p class="example-link"><a class="example-link" href="pieTest.html">Pie Charts and Options</a></p>
-<p class="example-link"><a class="example-link" href="pieTest4.html">Pie Charts and Options 2</a></p>
-<p class="example-link"><a class="example-link" href="point-labels.html">Data Point labels</a></p>
-<p class="example-link"><a class="example-link" href="resizablePlot.html">Resizable Plots</a></p>
-<p class="example-link"><a class="example-link" href="rotated-tick-labels.html">Rotated Labels and Font Styling</a></p>
-<p class="example-link"><a class="example-link" href="rotatedTickLabelsZoom.html">Date Axes, Rotated Labels and Zooming</a></p>
-<p class="example-link"><a class="example-link" href="selectorSyntax.html">Plot Creation with jQuery Selectors</a></p>
-<p class="example-link"><a class="example-link" href="smoothedLine.html">Smoothed Lines</a></p>
-<p class="example-link"><a class="example-link" href="theming.html">Chart Theming</a></p>
-<p class="example-link"><a class="example-link" href="waterfall.html">Waterfall Charts</a></p>
-<p class="example-link"><a class="example-link" href="waterfall2.html">Waterfall charts 2</a></p>
-<p class="example-link"><a class="example-link" href="zoom1.html">Zooming</a></p>
-<p class="example-link"><a class="example-link" href="zoomOptions.html">Zoom Options</a></p>
-<p class="example-link"><a class="example-link" href="zoomProxy.html">Zoom Proxy - Control one plot from another</a></p>
-<p class="example-link"><a class="example-link" href="zooming.html">Plot Zooming and Cursor Control</a></p>
-
-</div>
-
-<!-- End Index content -->
-
-
- </div>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
deleted file mode 100755
index 5b5dab2a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
deleted file mode 100755
index ac8b229a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
deleted file mode 100755
index ad3d6346..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100755
index 42ccba26..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
deleted file mode 100755
index 5a46b47c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
deleted file mode 100755
index 86c2baa6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
deleted file mode 100755
index 4443fdc1..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
deleted file mode 100755
index 7c9fa6c6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png
deleted file mode 100755
index b273ff11..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
deleted file mode 100755
index 09d1cdc8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png
deleted file mode 100755
index 59bd45b9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png
deleted file mode 100755
index 6d02426c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
deleted file mode 100755
index 2ab019b7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css
deleted file mode 100755
index 0f1a7e77..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
-.ui-widget-header a { color: #222222; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
- * jQuery UI Resizable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.16
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
- list-style:none;
- padding: 2px;
- margin: 0;
- display:block;
- float: left;
-}
-.ui-menu .ui-menu {
- margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
- margin:0;
- padding: 0;
- zoom: 1;
- float: left;
- clear: left;
- width: 100%;
-}
-.ui-menu .ui-menu-item a {
- text-decoration:none;
- display:block;
- padding:.2em .4em;
- line-height:1.5;
- zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
- font-weight: normal;
- margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; }
-button.ui-button-icons-only { width: 3.7em; }
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4; }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
- display: none; /*sorry for IE5*/
- display/**/: block; /*sorry for IE5*/
- position: absolute; /*must have*/
- z-index: -1; /*must have*/
- filter: mask(); /*must have*/
- top: -4px; /*must have*/
- left: -4px; /*must have*/
- width: 200px; /*must have*/
- height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css
deleted file mode 100755
index 08821f53..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
deleted file mode 100755
index 954e22db..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
deleted file mode 100755
index 64ece570..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
deleted file mode 100755
index abdc0108..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
deleted file mode 100755
index 9b383f4d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
deleted file mode 100755
index a23baad2..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100755
index 42ccba26..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
deleted file mode 100755
index 39d5824d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
deleted file mode 100755
index f1273672..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
deleted file mode 100755
index 359397ac..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
deleted file mode 100755
index a641a371..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
deleted file mode 100755
index 85e63e9f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
deleted file mode 100755
index e117effa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
deleted file mode 100755
index 42f8f992..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css
deleted file mode 100755
index cd66d537..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css
+++ /dev/null
@@ -1,612 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-/*
- * jQuery UI Accordion 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-heading { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-heading { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-/*
- * jQuery UI Button 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; }
-button.ui-button-icons-only { width: 3.7em; }
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4; }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Datepicker 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
- display: none; /*sorry for IE5*/
- display/**/: block; /*sorry for IE5*/
- position: absolute; /*must have*/
- z-index: -1; /*must have*/
- filter: mask(); /*must have*/
- top: -4px; /*must have*/
- left: -4px; /*must have*/
- width: 200px; /*must have*/
- height: 200px; /*must have*/
-}/*
- * jQuery UI Dialog 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Menu 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
-.ui-menu .ui-menu { margin-top: -3px; position: absolute; }
-.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
-.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
-.ui-menu .ui-menu-item a.ui-state-focus,
-.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
-
-.ui-menu li.ui-state-disabled { font-weight: normal; padding: .0em .4em; margin: .4em 0 .2em; line-height: 1.5; }
-
-/* icon support */
-.ui-menu-icons { position: relative; }
-.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
-
-/* left-aligned */
-.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
-
-/* right-aligned */
-.ui-menu .ui-menu-icon { position: static; float: right; }
-/*
- * jQuery UI Menubar 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- */
-.ui-menubar { list-style: none; margin: 0; padding-left: 0; }
-
-.ui-menubar-item { float: left; }
-
-.ui-menubar .ui-button { float: left; font-weight: normal; border-top-width: 0 !important; border-bottom-width: 0 !important; margin: 0; outline: none; }
-.ui-menubar .ui-menubar-link { border-right: 1px dashed transparent; border-left: 1px dashed transparent; }
-
-.ui-menubar .ui-menu { width: 200px; position: absolute; z-index: 9999; }
-/*
- * jQuery UI Progressbar 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/*
- * jQuery UI Resizable 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Slider 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Spinner 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Spinner#theming
- */
-.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
-.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
-.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; z-index: 100; text-align: center; vertical-align: middle; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
-.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
-.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
-.ui-spinner-up { top: 0; }
-.ui-spinner-down { bottom: 0; }
-
-/* TR overrides */
-span.ui-spinner { background: none; }
-.ui-spinner .ui-icon-triangle-1-s {
- /* need to fix icons sprite */
- background-position:-65px -16px;
-}
-/*
- * jQuery UI Tabs 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-/*
- * jQuery UI Tooltip 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tooltip#theming
- */
-.ui-tooltip {
- padding:8px;
- position:absolute;
- z-index:9999;
- -o-box-shadow: 0 0 5px #aaa;
- -moz-box-shadow: 0 0 5px #aaa;
- -webkit-box-shadow: 0 0 5px #aaa;
- box-shadow: 0 0 5px #aaa;
-}
-/* Fades and background-images don't work well together in IE6, drop the image */
-* html .ui-tooltip {
- background-image: none;
-}
-body .ui-tooltip { border-width:2px; }
-/*
- * jQuery UI CSS Framework 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
-.ui-widget-content a { color: #222222/*{fcContent}*/; }
-.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
-.ui-widget-header a { color: #222222/*{fcHeader}*/; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
-.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css
deleted file mode 100755
index 56a9be11..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-heading{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-heading{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none;}.ui-menu .ui-menu{margin-top:-3px;position:absolute;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal;}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-menu li.ui-state-disabled{font-weight:normal;padding:.0em .4em;margin:.4em 0 .2em;line-height:1.5;}.ui-menu-icons{position:relative;}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em;}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em;}.ui-menu .ui-menu-icon{position:static;float:right;}.ui-menubar{list-style:none;margin:0;padding-left:0;}.ui-menubar-item{float:left;}.ui-menubar .ui-button{float:left;font-weight:normal;border-top-width:0!important;border-bottom-width:0!important;margin:0;outline:none;}.ui-menubar .ui-menubar-link{border-right:1px dashed transparent;border-left:1px dashed transparent;}.ui-menubar .ui-menu{width:200px;position:absolute;z-index:9999;}.ui-progressbar{height:2em;text-align:left;overflow:hidden;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px;}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;vertical-align:middle;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none;}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0;}.ui-spinner-up{top:0;}.ui-spinner-down{bottom:0;}span.ui-spinner{background:none;}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}* html .ui-tooltip{background-image:none;}body .ui-tooltip{border-width:2px;}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css
deleted file mode 100755
index 5547c7b9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
-.ui-widget-content a { color: #333333; }
-.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
-.ui-widget-header a { color: #ffffff; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
-.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
- * jQuery UI Resizable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.16
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
- list-style:none;
- padding: 2px;
- margin: 0;
- display:block;
- float: left;
-}
-.ui-menu .ui-menu {
- margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
- margin:0;
- padding: 0;
- zoom: 1;
- float: left;
- clear: left;
- width: 100%;
-}
-.ui-menu .ui-menu-item a {
- text-decoration:none;
- display:block;
- padding:.2em .4em;
- line-height:1.5;
- zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
- font-weight: normal;
- margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; }
-button.ui-button-icons-only { width: 3.7em; }
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4; }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
- display: none; /*sorry for IE5*/
- display/**/: block; /*sorry for IE5*/
- position: absolute; /*must have*/
- z-index: -1; /*must have*/
- filter: mask(); /*must have*/
- top: -4px; /*must have*/
- left: -4px; /*must have*/
- width: 200px; /*must have*/
- height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css
deleted file mode 100755
index 78f7d3d0..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333;}.ui-widget-content a{color:#333;}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}.ui-widget-header a{color:#fff;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1c94c4;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#c77405;}.ui-state-hover a,.ui-state-hover a:hover{color:#c77405;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eb8f00;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;color:#fff;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_228ef1_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffd27a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.50;filter:Alpha(Opacity=50);}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;opacity:.20;filter:Alpha(Opacity=20);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js
deleted file mode 100755
index 5ca2642d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js
+++ /dev/null
@@ -1,473 +0,0 @@
-/*!
- * jQuery UI 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(a,g){function d(e,f){var i=e.nodeName.toLowerCase();if("area"===i){i=e.parentNode;var b=i.name;if(!e.href||!b||i.nodeName.toLowerCase()!=="map")return false;i=a("img[usemap=#"+b+"]")[0];return!!i&&c(i)}return(/input|select|textarea|button|object/.test(i)?!e.disabled:"a"==i?e.href||f:f)&&c(e)}function c(e){return!a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(!a.ui.version){a.extend(a.ui,{version:"1.9pre",
-keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var i=this;setTimeout(function(){a(i).focus();
-f&&f.call(i)},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;e=a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,
-"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!e.length?a(document):e},zIndex:function(e){if(e!==g)return this.css("zIndex",e);if(this.length){e=a(this[0]);for(var f;e.length&&e[0]!==document;){f=e.css("position");if(f==="absolute"||f==="relative"||f==="fixed"){f=parseInt(e.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}e=e.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",
-function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(e,f){function i(l,j,m,n){a.each(b,function(){j-=parseFloat(a.curCSS(l,"padding"+this,true))||0;if(m)j-=parseFloat(a.curCSS(l,"border"+this+"Width",true))||0;if(n)j-=parseFloat(a.curCSS(l,"margin"+this,true))||0});return j}var b=f==="Width"?["Left","Right"]:["Top","Bottom"],h=f.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,
-outerHeight:a.fn.outerHeight};a.fn["inner"+f]=function(l){if(l===g)return k["inner"+f].call(this);return this.each(function(){a(this).css(h,i(this,l)+"px")})};a.fn["outer"+f]=function(l,j){if(typeof l!=="number")return k["outer"+f].call(this,l);return this.each(function(){a(this).css(h,i(this,l,true,j)+"px")})}});a.extend(a.expr[":"],{data:function(e,f,i){return!!a.data(e,i[3])},focusable:function(e){return d(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(e){var f=a.attr(e,"tabindex"),i=isNaN(f);
-return(i||f>=0)&&d(e,!i)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart"in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(e,f,i){e=a.ui[e].prototype;for(var b in i){e.plugins[b]=e.plugins[b]||[];e.plugins[b].push([f,i[b]])}},call:function(e,f,i){if((f=e.plugins[f])&&e.element[0].parentNode)for(var b=
-0;b<f.length;b++)e.options[f[b][0]]&&f[b][1].apply(e.element,i)}},contains:a.contains,hasScroll:function(e,f){if(a(e).css("overflow")==="hidden")return false;var i=f&&f==="left"?"scrollLeft":"scrollTop",b=false;if(e[i]>0)return true;e[i]=1;b=e[i]>0;e[i]=0;return b},isOverAxis:function(e,f,i){return e>f&&e<f+i},isOver:function(e,f,i,b,h,k){return a.ui.isOverAxis(e,i,h)&&a.ui.isOverAxis(f,b,k)}})}})(jQuery);
-(function(a,g){var d=Array.prototype.slice,c=a.cleanData;a.cleanData=function(e){for(var f=0,i;(i=e[f])!=null;f++)try{a(i).triggerHandler("remove")}catch(b){}c(e)};a.widget=function(e,f,i){var b=e.split(".")[0],h;e=e.split(".")[1];h=b+"-"+e;if(!i){i=f;f=a.Widget}a.expr[":"][h]=function(l){return!!a.data(l,e)};a[b]=a[b]||{};a[b][e]=a.extend(function(l,j){if(!this._createWidget)return new a[b][e](l,j);arguments.length&&this._createWidget(l,j)},a[b][e],{version:i.version});var k=new f;k.options=a.widget.extend({},
-k.options);a.each(i,function(l,j){if(a.isFunction(j))i[l]=function(){var m=function(o){return f.prototype[o].apply(this,d.call(arguments,1))},n=function(o,p){return f.prototype[o].apply(this,p)};return function(){var o=this._super,p=this._superApply,q;this._super=m;this._superApply=n;q=j.apply(this,arguments);this._super=o;this._superApply=p;return q}}()});a[b][e].prototype=a.widget.extend(k,{namespace:b,widgetName:e,widgetEventPrefix:e,widgetBaseClass:h},i);a.widget.bridge(e,a[b][e])};a.widget.extend=
-function(e){for(var f=d.call(arguments,1),i=0,b=f.length,h,k;i<b;i++)for(h in f[i]){k=f[i][h];if(f[i].hasOwnProperty(h)&&k!==g)e[h]=a.isPlainObject(k)?a.widget.extend({},e[h],k):k}return e};a.widget.bridge=function(e,f){a.fn[e]=function(i){var b=typeof i==="string",h=d.call(arguments,1),k=this;i=!b&&h.length?a.widget.extend.apply(null,[i].concat(h)):i;b?this.each(function(){var l=a.data(this,e);if(!l)return a.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+
-i+"'");if(!a.isFunction(l[i])||i.charAt(0)==="_")return a.error("no such method '"+i+"' for "+e+" widget instance");var j=l[i].apply(l,h);if(j!==l&&j!==g){k=j&&j.jquery?k.pushStack(j.get()):j;return false}}):this.each(function(){var l=a.data(this,e);l?l.option(i||{})._init():f(i,this)});return k}};a.Widget=function(e,f){if(!this._createWidget)return new a[namespace][name](e,f);arguments.length&&this._createWidget(e,f)};a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",
-options:{disabled:false,create:null},_createWidget:function(e,f){f=a(f||this.defaultElement||this)[0];this.element=a(f);this.options=a.widget.extend({},this.options,this._getCreateOptions(),e);this.bindings=a();this.hoverable=a();this.focusable=a();if(f!==this){a.data(f,this.widgetName,this);this._bind({remove:"destroy"})}this._create();this._trigger("create");this._init()},_getCreateOptions:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy();this.element.unbind("."+this.widgetName).removeData(this.widgetName);
-this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled");this.bindings.unbind("."+this.widgetName);this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(e,f){var i=e,b,h,k;if(arguments.length===0)return a.widget.extend({},this.options);if(typeof e==="string"){i={};b=e.split(".");e=b.shift();if(b.length){h=i[e]=a.widget.extend({},
-this.options[e]);for(k=0;k<b.length-1;k++){h[b[k]]=h[b[k]]||{};h=h[b[k]]}e=b.pop();if(f===g)return h[e]===g?null:h[e];h[e]=f}else{if(f===g)return this.options[e]===g?null:this.options[e];i[e]=f}}this._setOptions(i);return this},_setOptions:function(e){var f=this;a.each(e,function(i,b){f._setOption(i,b)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget().toggleClass(this.widgetBaseClass+"-disabled ui-state-disabled",!!f).attr("aria-disabled",f);this.hoverable.removeClass("ui-state-hover");
-this.focusable.removeClass("ui-state-focus")}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_bind:function(e,f){if(f){e=a(e);this.bindings=this.bindings.add(e)}else{f=e;e=this.element}var i=this;a.each(f,function(b,h){function k(){if(!(i.options.disabled===true||a(this).hasClass("ui-state-disabled")))return(typeof h==="string"?i[h]:h).apply(i,arguments)}var l=b.match(/^(\w+)\s*(.*)$/),j=l[1]+"."+i.widgetName;(l=
-l[2])?i.widget().delegate(l,j,k):e.bind(j,k)})},_delay:function(e,f){var i=this;return setTimeout(function(){return(typeof e==="string"?i[e]:e).apply(i,arguments)},f||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e);this._bind(e,{mouseenter:function(f){a(f.currentTarget).addClass("ui-state-hover")},mouseleave:function(f){a(f.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e);this._bind(e,{focusin:function(f){a(f.currentTarget).addClass("ui-state-focus")},
-focusout:function(f){a(f.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,f,i){var b=this.options[e];f=a.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();i=i||{};if(f.originalEvent){e=a.event.props.length;for(var h;e;){h=a.event.props[--e];f[h]=f.originalEvent[h]}}this.element.trigger(f,i);i=a.isArray(i)?[f].concat(i):[f,i];return!(a.isFunction(b)&&b.apply(this.element[0],i)===false||f.isDefaultPrevented())}};a.each({show:"fadeIn",hide:"fadeOut"},
-function(e,f){a.Widget.prototype["_"+e]=function(i,b,h){if(typeof b==="string")b={effect:b};var k,l=!b?e:b===true||typeof b==="number"?f:b.effect||f;b=b||{};if(typeof b==="number")b={duration:b};k=!a.isEmptyObject(b);b.complete=h;b.delay&&i.delay(b.delay);if(k&&a.effects&&(a.effects.effect[l]||a.uiBackCompat!==false&&a.effects[l]))i[e](b);else if(l!==e&&i[l])i[l](b.duration,b.easing,h);else i.queue(function(j){a(this)[e]();h&&h.call(i[0]);j()})}});if(a.uiBackCompat!==false)a.Widget.prototype._getCreateOptions=
-function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]}})(jQuery);
-(function(a){var g=false;a(document).mouseup(function(){g=false});a.widget("ui.mouse",{version:"1.9pre",options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(c){return d._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===a.data(c.target,d.widgetName+".preventClickEvent")){a.removeData(c.target,d.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},
-_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(d){if(!g){this._mouseStarted&&this._mouseUp(d);this._mouseDownEvent=d;var c=this,e=d.which==1,f=typeof this.options.cancel=="string"&&d.target.nodeName?a(d.target).closest(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(d))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(d)&&
-this._mouseDelayMet(d)){this._mouseStarted=this._mouseStart(d)!==false;if(!this._mouseStarted){d.preventDefault();return true}}true===a.data(d.target,this.widgetName+".preventClickEvent")&&a.removeData(d.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(i){return c._mouseMove(i)};this._mouseUpDelegate=function(i){return c._mouseUp(i)};a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);d.preventDefault();
-return g=true}},_mouseMove:function(d){if(a.browser.msie&&!(document.documentMode>=9)&&!d.button)return this._mouseUp(d);if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,d)!==false)?this._mouseDrag(d):this._mouseUp(d);return!this._mouseStarted},_mouseUp:function(d){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,
-this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;d.target==this._mouseDownEvent.target&&a.data(d.target,this.widgetName+".preventClickEvent",true);this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-(function(a){a.widget("ui.draggable",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(g){var d=
-this.options;if(this.helper||d.disabled||a(g.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(g);if(!this.handle)return false;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(a(this).offset()).appendTo("body")});return true},_mouseStart:function(g){var d=this.options;this.helper=
-this._createHelper(g);this._cacheHelperProportions();if(a.ui.ddmanager)a.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});
-this.originalPosition=this.position=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);d.containment&&this._setContainment();if(this._trigger("start",g)===false){this._clear();return false}this._cacheHelperProportions();a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(g,true);a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,g);return true},
-_mouseDrag:function(g,d){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();if(this._trigger("drag",g,c)===false){this._mouseUp({});return false}this.position=c.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,g);return false},_mouseStop:function(g){var d=
-false;if(a.ui.ddmanager&&!this.options.dropBehaviour)d=a.ui.ddmanager.drop(this,g);if(this.dropped){d=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!d||this.options.revert=="valid"&&d||this.options.revert===true||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d)){var c=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",g)!==
-false&&c._clear()})}else this._trigger("stop",g)!==false&&this._clear();return false},_mouseUp:function(g){this.options.iframeFix===true&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,g);return a.ui.mouse.prototype._mouseUp.call(this,g)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(g){var d=!this.options.handle||!a(this.options.handle,this.element).length?
-true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==g.target)d=true});return d},_createHelper:function(g){var d=this.options;g=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[g])):d.helper=="clone"?this.element.clone().removeAttr("id"):this.element;g.parents("body").length||g.appendTo(d.appendTo=="parent"?this.element[0].parentNode:d.appendTo);g[0]!=this.element[0]&&!/(fixed|absolute)/.test(g.css("position"))&&g.css("position","absolute");return g},
-_adjustOffsetFromHelper:function(g){if(typeof g=="string")g=g.split(" ");if(a.isArray(g))g={left:+g[0],top:+g[1]||0};if("left"in g)this.offset.click.left=g.left+this.margins.left;if("right"in g)this.offset.click.left=this.helperProportions.width-g.right+this.margins.left;if("top"in g)this.offset.click.top=g.top+this.margins.top;if("bottom"in g)this.offset.click.top=this.helperProportions.height-g.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var g=
-this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){g.left+=this.scrollParent.scrollLeft();g.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)g={top:0,left:0};return{top:g.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:g.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var g=this.element.position();return{top:g.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:g.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),
-10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var g=this.options;if(g.containment=="parent")g.containment=this.helper[0].parentNode;if(g.containment=="document"||g.containment=="window")this.containment=[g.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,g.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,
-(g.containment=="document"?0:a(window).scrollLeft())+a(g.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(g.containment=="document"?0:a(window).scrollTop())+(a(g.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(g.containment)&&g.containment.constructor!=Array){g=a(g.containment);var d=g[0];if(d){g.offset();var c=a(d).css("overflow")!=
-"hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),
-10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=g}}else if(g.containment.constructor==Array)this.containment=g.containment},_convertPositionTo:function(g,d){if(!d)d=this.position;var c=g=="absolute"?1:-1,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(e[0].tagName);return{top:d.top+
-this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:e.scrollTop())*c),left:d.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*c)}},_generatePosition:function(g){var d=this.options,c=this.cssPosition=="absolute"&&
-!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName),f=g.pageX,i=g.pageY;if(this.originalPosition){var b;if(this.containment){if(this.relative_container){b=this.relative_container.offset();b=[this.containment[0]+b.left,this.containment[1]+b.top,this.containment[2]+b.left,this.containment[3]+b.top]}else b=this.containment;if(g.pageX-this.offset.click.left<b[0])f=b[0]+this.offset.click.left;if(g.pageY-
-this.offset.click.top<b[1])i=b[1]+this.offset.click.top;if(g.pageX-this.offset.click.left>b[2])f=b[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>b[3])i=b[3]+this.offset.click.top}if(d.grid){i=d.grid[1]?this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1]:this.originalPageY;i=b?!(i-this.offset.click.top<b[1]||i-this.offset.click.top>b[3])?i:!(i-this.offset.click.top<b[1])?i-d.grid[1]:i+d.grid[1]:i;f=d.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/d.grid[0])*
-d.grid[0]:this.originalPageX;f=b?!(f-this.offset.click.left<b[0]||f-this.offset.click.left>b[2])?f:!(f-this.offset.click.left<b[0])?f-d.grid[0]:f+d.grid[0]:f}}return{top:i-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<
-526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(g,d,c){c=c||this._uiHash();a.ui.plugin.call(this,g,[d,c]);if(g=="drag")this.positionAbs=this._convertPositionTo("absolute");return a.Widget.prototype._trigger.call(this,g,d,
-c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});a.ui.plugin.add("draggable","connectToSortable",{start:function(g,d){var c=a(this).data("draggable"),e=c.options,f=a.extend({},d,{item:c.element});c.sortables=[];a(e.connectToSortable).each(function(){var i=a.data(this,"sortable");if(i&&!i.options.disabled){c.sortables.push({instance:i,shouldRevert:i.options.revert});i.refreshPositions();i._trigger("activate",
-g,f)}})},stop:function(g,d){var c=a(this).data("draggable"),e=a.extend({},d,{item:c.element});a.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(g);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=
-false;this.instance._trigger("deactivate",g,e)}})},drag:function(g,d){var c=a(this).data("draggable"),e=this;a.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);
-this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return d.helper[0]};g.target=this.instance.currentItem[0];this.instance._mouseCapture(g,true);this.instance._mouseStart(g,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;
-c._trigger("toSortable",g);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(g)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",g,this.instance._uiHash(this.instance));this.instance._mouseStop(g,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&
-this.instance.placeholder.remove();c._trigger("fromSortable",g);c.dropped=false}})}});a.ui.plugin.add("draggable","cursor",{start:function(){var g=a("body"),d=a(this).data("draggable").options;if(g.css("cursor"))d._cursor=g.css("cursor");g.css("cursor",d.cursor)},stop:function(){var g=a(this).data("draggable").options;g._cursor&&a("body").css("cursor",g._cursor)}});a.ui.plugin.add("draggable","opacity",{start:function(g,d){var c=a(d.helper),e=a(this).data("draggable").options;if(c.css("opacity"))e._opacity=
-c.css("opacity");c.css("opacity",e.opacity)},stop:function(g,d){var c=a(this).data("draggable").options;c._opacity&&a(d.helper).css("opacity",c._opacity)}});a.ui.plugin.add("draggable","scroll",{start:function(){var g=a(this).data("draggable");if(g.scrollParent[0]!=document&&g.scrollParent[0].tagName!="HTML")g.overflowOffset=g.scrollParent.offset()},drag:function(g){var d=a(this).data("draggable"),c=d.options,e=false;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!=
-"x")if(d.overflowOffset.top+d.scrollParent[0].offsetHeight-g.pageY<c.scrollSensitivity)d.scrollParent[0].scrollTop=e=d.scrollParent[0].scrollTop+c.scrollSpeed;else if(g.pageY-d.overflowOffset.top<c.scrollSensitivity)d.scrollParent[0].scrollTop=e=d.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(d.overflowOffset.left+d.scrollParent[0].offsetWidth-g.pageX<c.scrollSensitivity)d.scrollParent[0].scrollLeft=e=d.scrollParent[0].scrollLeft+c.scrollSpeed;else if(g.pageX-d.overflowOffset.left<
-c.scrollSensitivity)d.scrollParent[0].scrollLeft=e=d.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(g.pageY-a(document).scrollTop()<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed);else if(a(window).height()-(g.pageY-a(document).scrollTop())<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(g.pageX-a(document).scrollLeft()<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()-
-c.scrollSpeed);else if(a(window).width()-(g.pageX-a(document).scrollLeft())<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed)}e!==false&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,g)}});a.ui.plugin.add("draggable","snap",{start:function(){var g=a(this).data("draggable"),d=g.options;g.snapElements=[];a(d.snap.constructor!=String?d.snap.items||":data(draggable)":d.snap).each(function(){var c=a(this),e=c.offset();this!=g.element[0]&&g.snapElements.push({item:this,
-width:c.outerWidth(),height:c.outerHeight(),top:e.top,left:e.left})})},drag:function(g,d){for(var c=a(this).data("draggable"),e=c.options,f=e.snapTolerance,i=d.offset.left,b=i+c.helperProportions.width,h=d.offset.top,k=h+c.helperProportions.height,l=c.snapElements.length-1;l>=0;l--){var j=c.snapElements[l].left,m=j+c.snapElements[l].width,n=c.snapElements[l].top,o=n+c.snapElements[l].height;if(j-f<i&&i<m+f&&n-f<h&&h<o+f||j-f<i&&i<m+f&&n-f<k&&k<o+f||j-f<b&&b<m+f&&n-f<h&&h<o+f||j-f<b&&b<m+f&&n-f<k&&
-k<o+f){if(e.snapMode!="inner"){var p=Math.abs(n-k)<=f,q=Math.abs(o-h)<=f,u=Math.abs(j-b)<=f,s=Math.abs(m-i)<=f;if(p)d.position.top=c._convertPositionTo("relative",{top:n-c.helperProportions.height,left:0}).top-c.margins.top;if(q)d.position.top=c._convertPositionTo("relative",{top:o,left:0}).top-c.margins.top;if(u)d.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)d.position.left=c._convertPositionTo("relative",{top:0,left:m}).left-c.margins.left}var r=
-p||q||u||s;if(e.snapMode!="outer"){p=Math.abs(n-h)<=f;q=Math.abs(o-k)<=f;u=Math.abs(j-i)<=f;s=Math.abs(m-b)<=f;if(p)d.position.top=c._convertPositionTo("relative",{top:n,left:0}).top-c.margins.top;if(q)d.position.top=c._convertPositionTo("relative",{top:o-c.helperProportions.height,left:0}).top-c.margins.top;if(u)d.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)d.position.left=c._convertPositionTo("relative",{top:0,left:m-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[l].snapping&&
-(p||q||u||s||r))c.options.snap.snap&&c.options.snap.snap.call(c.element,g,a.extend(c._uiHash(),{snapItem:c.snapElements[l].item}));c.snapElements[l].snapping=p||q||u||s||r}else{c.snapElements[l].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,g,a.extend(c._uiHash(),{snapItem:c.snapElements[l].item}));c.snapElements[l].snapping=false}}}});a.ui.plugin.add("draggable","stack",{start:function(){var g=a(this).data("draggable").options;g=a.makeArray(a(g.stack)).sort(function(c,e){return(parseInt(a(c).css("zIndex"),
-10)||0)-(parseInt(a(e).css("zIndex"),10)||0)});if(g.length){var d=parseInt(g[0].style.zIndex)||0;a(g).each(function(c){this.style.zIndex=d+c});this[0].style.zIndex=d+g.length}}});a.ui.plugin.add("draggable","zIndex",{start:function(g,d){var c=a(d.helper),e=a(this).data("draggable").options;if(c.css("zIndex"))e._zIndex=c.css("zIndex");c.css("zIndex",e.zIndex)},stop:function(g,d){var c=a(this).data("draggable").options;c._zIndex&&a(d.helper).css("zIndex",c._zIndex)}})})(jQuery);
-(function(a){a.widget("ui.droppable",{version:"1.9pre",widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var g=this.options,d=g.accept;this.isover=0;this.isout=1;this.accept=a.isFunction(d)?d:function(c){return c.is(d)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};a.ui.ddmanager.droppables[g.scope]=a.ui.ddmanager.droppables[g.scope]||[];
-a.ui.ddmanager.droppables[g.scope].push(this);g.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var g=a.ui.ddmanager.droppables[this.options.scope],d=0;d<g.length;d++)g[d]==this&&g.splice(d,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(g,d){if(g=="accept")this.accept=a.isFunction(d)?d:function(c){return c.is(d)};a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(g){var d=
-a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass);d&&this._trigger("activate",g,this.ui(d))},_deactivate:function(g){var d=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);d&&this._trigger("deactivate",g,this.ui(d))},_over:function(g){var d=a.ui.ddmanager.current;if(!(!d||(d.currentItem||d.element)[0]==this.element[0]))if(this.accept.call(this.element[0],d.currentItem||d.element)){this.options.hoverClass&&
-this.element.addClass(this.options.hoverClass);this._trigger("over",g,this.ui(d))}},_out:function(g){var d=a.ui.ddmanager.current;if(!(!d||(d.currentItem||d.element)[0]==this.element[0]))if(this.accept.call(this.element[0],d.currentItem||d.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",g,this.ui(d))}},_drop:function(g,d){var c=d||a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var f=
-a.data(this,"droppable");if(f.options.greedy&&!f.options.disabled&&f.options.scope==c.options.scope&&f.accept.call(f.element[0],c.currentItem||c.element)&&a.ui.intersect(c,a.extend(f,{offset:f.element.offset()}),f.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-g,this.ui(c));return this.element}return false},ui:function(g){return{draggable:g.currentItem||g.element,helper:g.helper,position:g.position,offset:g.positionAbs}}});a.ui.intersect=function(g,d,c){if(!d.offset)return false;var e=(g.positionAbs||g.position.absolute).left,f=e+g.helperProportions.width,i=(g.positionAbs||g.position.absolute).top,b=i+g.helperProportions.height,h=d.offset.left,k=h+d.proportions.width,l=d.offset.top,j=l+d.proportions.height;switch(c){case "fit":return h<=e&&f<=k&&l<=i&&
-b<=j;case "intersect":return h<e+g.helperProportions.width/2&&f-g.helperProportions.width/2<k&&l<i+g.helperProportions.height/2&&b-g.helperProportions.height/2<j;case "pointer":return a.ui.isOver((g.positionAbs||g.position.absolute).top+(g.clickOffset||g.offset.click).top,(g.positionAbs||g.position.absolute).left+(g.clickOffset||g.offset.click).left,l,h,d.proportions.height,d.proportions.width);case "touch":return(i>=l&&i<=j||b>=l&&b<=j||i<l&&b>j)&&(e>=h&&e<=k||f>=h&&f<=k||e<h&&f>k);default:return false}};
-a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(g,d){var c=a.ui.ddmanager.droppables[g.options.scope]||[],e=d?d.type:null,f=(g.currentItem||g.element).find(":data(droppable)").andSelf(),i=0;a:for(;i<c.length;i++)if(!(c[i].options.disabled||g&&!c[i].accept.call(c[i].element[0],g.currentItem||g.element))){for(var b=0;b<f.length;b++)if(f[b]==c[i].element[0]){c[i].proportions.height=0;continue a}c[i].visible=c[i].element.css("display")!="none";if(c[i].visible){e=="mousedown"&&
-c[i]._activate.call(c[i],d);c[i].offset=c[i].element.offset();c[i].proportions={width:c[i].element[0].offsetWidth,height:c[i].element[0].offsetHeight}}}},drop:function(g,d){var c=false;a.each(a.ui.ddmanager.droppables[g.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&a.ui.intersect(g,this,this.options.tolerance))c=c||this._drop.call(this,d);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],g.currentItem||g.element)){this.isout=1;this.isover=
-0;this._deactivate.call(this,d)}}});return c},dragStart:function(g,d){g.element.parentsUntil("body").bind("scroll.droppable",function(){g.options.refreshPositions||a.ui.ddmanager.prepareOffsets(g,d)})},drag:function(g,d){g.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(g,d);a.each(a.ui.ddmanager.droppables[g.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=a.ui.intersect(g,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==
-0?"isover":null){var e;if(this.options.greedy){var f=this.element.parents(":data(droppable):eq(0)");if(f.length){e=a.data(f[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,d)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,d);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,d)}}}})},dragStop:function(g,d){g.element.parentsUntil("body").unbind("scroll.droppable");g.options.refreshPositions||a.ui.ddmanager.prepareOffsets(g,
-d)}}})(jQuery);
-(function(a){a.widget("ui.resizable",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var c=this,e=this.options;this.element.addClass("ui-resizable");a.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&a.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=e.handles||(!a(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
-nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var f=this.handles.split(",");this.handles={};for(var i=0;i<f.length;i++){var b=a.trim(f[i]),h=a('<div class="ui-resizable-handle '+("ui-resizable-"+b)+'"></div>');/sw|se|ne|nw/.test(b)&&h.css({zIndex:++e.zIndex});"se"==b&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[b]=".ui-resizable-"+b;this.element.append(h)}}this._renderAxis=function(k){k=k||this.element;for(var l in this.handles){if(this.handles[l].constructor==
-String)this.handles[l]=a(this.handles[l],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=a(this.handles[l],this.element),m=0;m=/sw|ne|nw|se|n|s/.test(l)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(l)?"Top":/se|sw|s/.test(l)?"Bottom":/^e$/.test(l)?"Right":"Left"].join("");k.css(j,m);this._proportionallyResize()}a(this.handles[l])}};this._renderAxis(this.element);this._handles=a(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!c.resizing){if(this.className)var k=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);c.axis=k&&k[1]?k[1]:"se"}});if(e.autoHide){this._handles.hide();a(this.element).addClass("ui-resizable-autohide").hover(function(){if(!e.disabled){a(this).removeClass("ui-resizable-autohide");c._handles.show()}},function(){if(!e.disabled)if(!c.resizing){a(this).addClass("ui-resizable-autohide");c._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();
-var c=function(f){a(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){c(this.element);var e=this.element;e.after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);c(this.originalElement);return this},_mouseCapture:function(c){var e=
-false,f;for(f in this.handles)if(a(this.handles[f])[0]==c.target)e=true;return!this.options.disabled&&e},_mouseStart:function(c){var e=this.options,f=this.element.position(),i=this.element;this.resizing=true;this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()};if(i.is(".ui-draggable")||/absolute/.test(i.css("position")))i.css({position:"absolute",top:f.top,left:f.left});a.browser.opera&&/relative/.test(i.css("position"))&&i.css({position:"relative",top:"auto",left:"auto"});
-this._renderProxy();f=g(this.helper.css("left"));var b=g(this.helper.css("top"));if(e.containment){f+=a(e.containment).scrollLeft()||0;b+=a(e.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:f,top:b};this.size=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalSize=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalPosition={left:f,top:b};this.sizeDiff=
-{width:i.outerWidth()-i.width(),height:i.outerHeight()-i.height()};this.originalMousePosition={left:c.pageX,top:c.pageY};this.aspectRatio=typeof e.aspectRatio=="number"?e.aspectRatio:this.originalSize.width/this.originalSize.height||1;e=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",e=="auto"?this.axis+"-resize":e);i.addClass("ui-resizable-resizing");this._propagate("start",c);return true},_mouseDrag:function(c){var e=this.helper,f=this.originalMousePosition,i=this._change[this.axis];
-if(!i)return false;f=i.apply(this,[c,c.pageX-f.left||0,c.pageY-f.top||0]);this._updateVirtualBoundaries(c.shiftKey);if(this._aspectRatio||c.shiftKey)f=this._updateRatio(f,c);f=this._respectSize(f,c);this._propagate("resize",c);e.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(f);this._trigger("resize",c,this.ui());return false},
-_mouseStop:function(c){this.resizing=false;var e=this.options;if(this._helper){var f=this._proportionallyResizeElements,i=f.length&&/textarea/i.test(f[0].nodeName);f=i&&a.ui.hasScroll(f[0],"left")?0:this.sizeDiff.height;i=i?0:this.sizeDiff.width;i={width:this.helper.width()-i,height:this.helper.height()-f};f=parseInt(this.element.css("left"),10)+(this.position.left-this.originalPosition.left)||null;var b=parseInt(this.element.css("top"),10)+(this.position.top-this.originalPosition.top)||null;e.animate||
-this.element.css(a.extend(i,{top:b,left:f}));this.helper.height(this.size.height);this.helper.width(this.size.width);this._helper&&!e.animate&&this._proportionallyResize()}a("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",c);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(c){var e=this.options,f,i,b;e={minWidth:d(e.minWidth)?e.minWidth:0,maxWidth:d(e.maxWidth)?e.maxWidth:Infinity,minHeight:d(e.minHeight)?e.minHeight:
-0,maxHeight:d(e.maxHeight)?e.maxHeight:Infinity};if(this._aspectRatio||c){c=e.minHeight*this.aspectRatio;i=e.minWidth/this.aspectRatio;f=e.maxHeight*this.aspectRatio;b=e.maxWidth/this.aspectRatio;if(c>e.minWidth)e.minWidth=c;if(i>e.minHeight)e.minHeight=i;if(f<e.maxWidth)e.maxWidth=f;if(b<e.maxHeight)e.maxHeight=b}this._vBoundaries=e},_updateCache:function(c){this.offset=this.helper.offset();if(d(c.left))this.position.left=c.left;if(d(c.top))this.position.top=c.top;if(d(c.height))this.size.height=
-c.height;if(d(c.width))this.size.width=c.width},_updateRatio:function(c){var e=this.position,f=this.size,i=this.axis;if(d(c.height))c.width=c.height*this.aspectRatio;else if(d(c.width))c.height=c.width/this.aspectRatio;if(i=="sw"){c.left=e.left+(f.width-c.width);c.top=null}if(i=="nw"){c.top=e.top+(f.height-c.height);c.left=e.left+(f.width-c.width)}return c},_respectSize:function(c){var e=this._vBoundaries,f=this.axis,i=d(c.width)&&e.maxWidth&&e.maxWidth<c.width,b=d(c.height)&&e.maxHeight&&e.maxHeight<
-c.height,h=d(c.width)&&e.minWidth&&e.minWidth>c.width,k=d(c.height)&&e.minHeight&&e.minHeight>c.height;if(h)c.width=e.minWidth;if(k)c.height=e.minHeight;if(i)c.width=e.maxWidth;if(b)c.height=e.maxHeight;var l=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,m=/sw|nw|w/.test(f);f=/nw|ne|n/.test(f);if(h&&m)c.left=l-e.minWidth;if(i&&m)c.left=l-e.maxWidth;if(k&&f)c.top=j-e.minHeight;if(b&&f)c.top=j-e.maxHeight;if((e=!c.width&&!c.height)&&!c.left&&c.top)c.top=null;
-else if(e&&!c.top&&c.left)c.left=null;return c},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var c=this.helper||this.element,e=0;e<this._proportionallyResizeElements.length;e++){var f=this._proportionallyResizeElements[e];if(!this.borderDif){var i=[f.css("borderTopWidth"),f.css("borderRightWidth"),f.css("borderBottomWidth"),f.css("borderLeftWidth")],b=[f.css("paddingTop"),f.css("paddingRight"),f.css("paddingBottom"),f.css("paddingLeft")];this.borderDif=a.map(i,
-function(h,k){var l=parseInt(h,10)||0,j=parseInt(b[k],10)||0;return l+j})}a.browser.msie&&(a(c).is(":hidden")||a(c).parents(":hidden").length)||f.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var c=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var e=a.browser.msie&&a.browser.version<7,f=e?1:0;e=e?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+
-e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++c.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(c,e){return{width:this.originalSize.width+e}},w:function(c,e){return{left:this.originalPosition.left+e,width:this.originalSize.width-e}},n:function(c,e,f){return{top:this.originalPosition.top+f,height:this.originalSize.height-f}},s:function(c,e,f){return{height:this.originalSize.height+
-f}},se:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},sw:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[c,e,f]))},ne:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},nw:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[c,e,f]))}},_propagate:function(c,e){a.ui.plugin.call(this,c,[e,this.ui()]);
-c!="resize"&&this._trigger(c,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});a.ui.plugin.add("resizable","alsoResize",{start:function(){var c=a(this).data("resizable").options,e=function(f){a(f).each(function(){var i=a(this);i.data("resizable-alsoresize",{width:parseInt(i.width(),10),height:parseInt(i.height(),10),
-left:parseInt(i.css("left"),10),top:parseInt(i.css("top"),10),position:i.css("position")})})};if(typeof c.alsoResize=="object"&&!c.alsoResize.parentNode)if(c.alsoResize.length){c.alsoResize=c.alsoResize[0];e(c.alsoResize)}else a.each(c.alsoResize,function(f){e(f)});else e(c.alsoResize)},resize:function(c,e){var f=a(this).data("resizable"),i=f.options,b=f.originalSize,h=f.originalPosition,k={height:f.size.height-b.height||0,width:f.size.width-b.width||0,top:f.position.top-h.top||0,left:f.position.left-
-h.left||0},l=function(j,m){a(j).each(function(){var n=a(this),o=a(this).data("resizable-alsoresize"),p={},q=m&&m.length?m:n.parents(e.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(q,function(u,s){var r=(o[s]||0)+(k[s]||0);if(r&&r>=0)p[s]=r||null});if(a.browser.opera&&/relative/.test(n.css("position"))){f._revertToRelativePosition=true;n.css({position:"absolute",top:"auto",left:"auto"})}n.css(p)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?a.each(i.alsoResize,
-function(j,m){l(j,m)}):l(i.alsoResize)},stop:function(){var c=a(this).data("resizable"),e=c.options,f=function(i){a(i).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};if(c._revertToRelativePosition){c._revertToRelativePosition=false;typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(i){f(i)}):f(e.alsoResize)}a(this).removeData("resizable-alsoresize")}});a.ui.plugin.add("resizable","animate",{stop:function(c){var e=a(this).data("resizable"),
-f=e.options,i=e._proportionallyResizeElements,b=i.length&&/textarea/i.test(i[0].nodeName),h=b&&a.ui.hasScroll(i[0],"left")?0:e.sizeDiff.height;b={width:e.size.width-(b?0:e.sizeDiff.width),height:e.size.height-h};h=parseInt(e.element.css("left"),10)+(e.position.left-e.originalPosition.left)||null;var k=parseInt(e.element.css("top"),10)+(e.position.top-e.originalPosition.top)||null;e.element.animate(a.extend(b,k&&h?{top:k,left:h}:{}),{duration:f.animateDuration,easing:f.animateEasing,step:function(){var l=
-{width:parseInt(e.element.css("width"),10),height:parseInt(e.element.css("height"),10),top:parseInt(e.element.css("top"),10),left:parseInt(e.element.css("left"),10)};i&&i.length&&a(i[0]).css({width:l.width,height:l.height});e._updateCache(l);e._propagate("resize",c)}})}});a.ui.plugin.add("resizable","containment",{start:function(){var c=a(this).data("resizable"),e=c.element,f=c.options.containment;if(e=f instanceof a?f.get(0):/parent/.test(f)?e.parent().get(0):f){c.containerElement=a(e);if(/document/.test(f)||
-f==document){c.containerOffset={left:0,top:0};c.containerPosition={left:0,top:0};c.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight}}else{var i=a(e),b=[];a(["Top","Right","Left","Bottom"]).each(function(l,j){b[l]=g(i.css("padding"+j))});c.containerOffset=i.offset();c.containerPosition=i.position();c.containerSize={height:i.innerHeight()-b[3],width:i.innerWidth()-b[1]};f=c.containerOffset;var h=c.containerSize.height,
-k=c.containerSize.width;k=a.ui.hasScroll(e,"left")?e.scrollWidth:k;h=a.ui.hasScroll(e)?e.scrollHeight:h;c.parentData={element:e,left:f.left,top:f.top,width:k,height:h}}}},resize:function(c){var e=a(this).data("resizable"),f=e.options,i=e.containerOffset,b=e.position;c=e._aspectRatio||c.shiftKey;var h={top:0,left:0},k=e.containerElement;if(k[0]!=document&&/static/.test(k.css("position")))h=i;if(b.left<(e._helper?i.left:0)){e.size.width+=e._helper?e.position.left-i.left:e.position.left-h.left;if(c)e.size.height=
-e.size.width/f.aspectRatio;e.position.left=f.helper?i.left:0}if(b.top<(e._helper?i.top:0)){e.size.height+=e._helper?e.position.top-i.top:e.position.top;if(c)e.size.width=e.size.height*f.aspectRatio;e.position.top=e._helper?i.top:0}e.offset.left=e.parentData.left+e.position.left;e.offset.top=e.parentData.top+e.position.top;f=Math.abs((e._helper?e.offset.left-h.left:e.offset.left-h.left)+e.sizeDiff.width);i=Math.abs((e._helper?e.offset.top-h.top:e.offset.top-i.top)+e.sizeDiff.height);b=e.containerElement.get(0)==
-e.element.parent().get(0);h=/relative|absolute/.test(e.containerElement.css("position"));if(b&&h)f-=e.parentData.left;if(f+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-f;if(c)e.size.height=e.size.width/e.aspectRatio}if(i+e.size.height>=e.parentData.height){e.size.height=e.parentData.height-i;if(c)e.size.width=e.size.height*e.aspectRatio}},stop:function(){var c=a(this).data("resizable"),e=c.options,f=c.containerOffset,i=c.containerPosition,b=c.containerElement,h=a(c.helper),k=
-h.offset(),l=h.outerWidth()-c.sizeDiff.width;h=h.outerHeight()-c.sizeDiff.height;c._helper&&!e.animate&&/relative/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h});c._helper&&!e.animate&&/static/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h})}});a.ui.plugin.add("resizable","ghost",{start:function(){var c=a(this).data("resizable"),e=c.options,f=c.size;c.ghost=c.originalElement.clone();c.ghost.css({opacity:0.25,display:"block",position:"relative",
-height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:"");c.ghost.appendTo(c.helper)},resize:function(){var c=a(this).data("resizable");c.ghost&&c.ghost.css({position:"relative",height:c.size.height,width:c.size.width})},stop:function(){var c=a(this).data("resizable");c.ghost&&c.helper&&c.helper.get(0).removeChild(c.ghost.get(0))}});a.ui.plugin.add("resizable","grid",{resize:function(){var c=a(this).data("resizable"),e=c.options,
-f=c.size,i=c.originalSize,b=c.originalPosition,h=c.axis;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-i.width)/(e.grid[0]||1))*(e.grid[0]||1);e=Math.round((f.height-i.height)/(e.grid[1]||1))*(e.grid[1]||1);if(/^(se|s|e)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else if(/^(ne)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}else{if(/^(sw)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else{c.size.width=
-i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}c.position.left=b.left-k}}});var g=function(c){return parseInt(c,10)||0},d=function(c){return!isNaN(parseInt(c,10))}})(jQuery);
-(function(a){a.widget("ui.selectable",a.ui.mouse,{version:"1.9pre",options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var g=this;this.element.addClass("ui-selectable");this.dragged=false;var d;this.refresh=function(){d=a(g.options.filter,g.element[0]);d.each(function(){var c=a(this),e=c.offset();a.data(this,"selectable-item",{element:this,$element:c,left:e.left,top:e.top,right:e.left+c.outerWidth(),bottom:e.top+c.outerHeight(),startselected:false,
-selected:c.hasClass("ui-selected"),selecting:c.hasClass("ui-selecting"),unselecting:c.hasClass("ui-unselecting")})})};this.refresh();this.selectees=d.addClass("ui-selectee");this._mouseInit();this.helper=a("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(g){var d=
-this;this.opos=[g.pageX,g.pageY];if(!this.options.disabled){var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",g);a(c.appendTo).append(this.helper);this.helper.css({left:g.clientX,top:g.clientY,width:0,height:0});c.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!g.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=
-true;d._trigger("unselecting",g,{unselecting:e.element})}});a(g.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){var f=!g.metaKey||!e.$element.hasClass("ui-selected");e.$element.removeClass(f?"ui-unselecting":"ui-selected").addClass(f?"ui-selecting":"ui-unselecting");e.unselecting=!f;e.selecting=f;(e.selected=f)?d._trigger("selecting",g,{selecting:e.element}):d._trigger("unselecting",g,{unselecting:e.element});return false}})}},_mouseDrag:function(g){var d=this;
-this.dragged=true;if(!this.options.disabled){var c=this.options,e=this.opos[0],f=this.opos[1],i=g.pageX,b=g.pageY;if(e>i){var h=i;i=e;e=h}if(f>b){h=b;b=f;f=h}this.helper.css({left:e,top:f,width:i-e,height:b-f});this.selectees.each(function(){var k=a.data(this,"selectable-item");if(!(!k||k.element==d.element[0])){var l=false;if(c.tolerance=="touch")l=!(k.left>i||k.right<e||k.top>b||k.bottom<f);else if(c.tolerance=="fit")l=k.left>e&&k.right<i&&k.top>f&&k.bottom<b;if(l){if(k.selected){k.$element.removeClass("ui-selected");
-k.selected=false}if(k.unselecting){k.$element.removeClass("ui-unselecting");k.unselecting=false}if(!k.selecting){k.$element.addClass("ui-selecting");k.selecting=true;d._trigger("selecting",g,{selecting:k.element})}}else{if(k.selecting)if(g.metaKey&&k.startselected){k.$element.removeClass("ui-selecting");k.selecting=false;k.$element.addClass("ui-selected");k.selected=true}else{k.$element.removeClass("ui-selecting");k.selecting=false;if(k.startselected){k.$element.addClass("ui-unselecting");k.unselecting=
-true}d._trigger("unselecting",g,{unselecting:k.element})}if(k.selected)if(!g.metaKey&&!k.startselected){k.$element.removeClass("ui-selected");k.selected=false;k.$element.addClass("ui-unselecting");k.unselecting=true;d._trigger("unselecting",g,{unselecting:k.element})}}}});return false}},_mouseStop:function(g){var d=this;this.dragged=false;a(".ui-unselecting",this.element[0]).each(function(){var c=a.data(this,"selectable-item");c.$element.removeClass("ui-unselecting");c.unselecting=false;c.startselected=
-false;d._trigger("unselected",g,{unselected:c.element})});a(".ui-selecting",this.element[0]).each(function(){var c=a.data(this,"selectable-item");c.$element.removeClass("ui-selecting").addClass("ui-selected");c.selecting=false;c.selected=true;c.startselected=true;d._trigger("selected",g,{selected:c.element})});this._trigger("stop",g);this.helper.remove();return false}})})(jQuery);
-(function(a){a.widget("ui.sortable",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var g=this.options;this.containerCache=
-{};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?g.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled");this._mouseDestroy();for(var g=this.items.length-1;g>=0;g--)this.items[g].item.removeData(this.widgetName+"-item");return this},_setOption:function(g,
-d){if(g==="disabled"){this.options[g]=d;this.widget().toggleClass("ui-sortable-disabled",!!d)}else a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(g,d){var c=this;if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(g);var e=null,f=this;a(g.target).parents().each(function(){if(a.data(this,c.widgetName+"-item")==f){e=a(this);return false}});if(a.data(g.target,c.widgetName+"-item")==f)e=a(g.target);if(!e)return false;
-if(this.options.handle&&!d){var i=false;a(this.options.handle,e).find("*").andSelf().each(function(){if(this==g.target)i=true});if(!i)return false}this.currentItem=e;this._removeCurrentsFromItems();return true},_mouseStart:function(g,d,c){d=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(g);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-
-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],
-parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();d.containment&&this._setContainment();if(d.cursor){if(a("body").css("cursor"))this._storedCursor=a("body").css("cursor");a("body").css("cursor",d.cursor)}if(d.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",d.opacity)}if(d.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",
-d.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",g,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",g,this._uiHash(this));if(a.ui.ddmanager)a.ui.ddmanager.current=this;a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.dragging=true;this.helper.addClass("ui-sortable-helper");
-this._mouseDrag(g);return true},_mouseDrag:function(g){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var d=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-g.pageY<d.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+d.scrollSpeed;
-else if(g.pageY-this.overflowOffset.top<d.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-d.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-g.pageX<d.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+d.scrollSpeed;else if(g.pageX-this.overflowOffset.left<d.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-d.scrollSpeed}else{if(g.pageY-a(document).scrollTop()<d.scrollSensitivity)c=
-a(document).scrollTop(a(document).scrollTop()-d.scrollSpeed);else if(a(window).height()-(g.pageY-a(document).scrollTop())<d.scrollSensitivity)c=a(document).scrollTop(a(document).scrollTop()+d.scrollSpeed);if(g.pageX-a(document).scrollLeft()<d.scrollSensitivity)c=a(document).scrollLeft(a(document).scrollLeft()-d.scrollSpeed);else if(a(window).width()-(g.pageX-a(document).scrollLeft())<d.scrollSensitivity)c=a(document).scrollLeft(a(document).scrollLeft()+d.scrollSpeed)}c!==false&&a.ui.ddmanager&&!d.dropBehaviour&&
-a.ui.ddmanager.prepareOffsets(this,g)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(d=this.items.length-1;d>=0;d--){c=this.items[d];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!a.contains(this.placeholder[0],e)&&(this.options.type==
-"semi-dynamic"?!a.contains(this.element[0],e):1)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(g,c);else break;this._trigger("change",g,this._uiHash());break}}this._contactContainers(g);a.ui.ddmanager&&a.ui.ddmanager.drag(this,g);this._trigger("sort",g,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(g,d){if(g){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,g);if(this.options.revert){var c=
-this,e=c.placeholder.offset();c.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(g)})}else this._clear(g,d);return false}},cancel:function(){if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?
-this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var g=this.containers.length-1;g>=0;g--){this.containers[g]._trigger("deactivate",null,this._uiHash(this));if(this.containers[g].containerCache.over){this.containers[g]._trigger("out",null,this._uiHash(this));this.containers[g].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&
-this.helper&&this.helper[0].parentNode&&this.helper.remove();a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};a(d).each(function(){var e=(a(g.item||this).attr(g.attribute||"id")||"").match(g.expression||/(.+)[-=_](.+)/);if(e)c.push((g.key||e[1]+"[]")+"="+
-(g.key&&g.expression?e[1]:e[2]))});!c.length&&g.key&&c.push(g.key+"=");return c.join("&")},toArray:function(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};d.each(function(){c.push(a(g.item||this).attr(g.attribute||"id")||"")});return c},_intersectsWith:function(g){var d=this.positionAbs.left,c=d+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,i=g.left,b=i+g.width,h=g.top,k=h+g.height,l=this.offset.click.top,j=this.offset.click.left;return this.options.tolerance==
-"pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>g[this.floating?"width":"height"]?e+l>h&&e+l<k&&d+j>i&&d+j<b:i<d+this.helperProportions.width/2&&c-this.helperProportions.width/2<b&&h<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(g){var d=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,g.top,g.height);g=a.ui.isOverAxis(this.positionAbs.left+
-this.offset.click.left,g.left,g.width);d=d&&g;g=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!d)return false;return this.floating?c&&c=="right"||g=="down"?2:1:g&&(g=="down"?2:1)},_intersectsWithSides:function(g){var d=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,g.top+g.height/2,g.height);g=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,g.left+g.width/2,g.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();
-return this.floating&&e?e=="right"&&g||e=="left"&&!g:c&&(c=="down"&&d||c=="up"&&!d)},_getDragVerticalDirection:function(){var g=this.positionAbs.top-this.lastPositionAbs.top;return g!=0&&(g>0?"down":"up")},_getDragHorizontalDirection:function(){var g=this.positionAbs.left-this.lastPositionAbs.left;return g!=0&&(g>0?"right":"left")},refresh:function(g){this._refreshItems(g);this.refreshPositions();return this},_connectWith:function(){var g=this.options;return g.connectWith.constructor==String?[g.connectWith]:
-g.connectWith},_getItemsAsjQuery:function(g){var d=[],c=[],e=this._connectWith();if(e&&g)for(g=e.length-1;g>=0;g--)for(var f=a(e[g]),i=f.length-1;i>=0;i--){var b=a.data(f[i],this.widgetName);if(b&&b!=this&&!b.options.disabled)c.push([a.isFunction(b.options.items)?b.options.items.call(b.element):a(b.options.items,b.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),b])}c.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):
-a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(g=c.length-1;g>=0;g--)c[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){for(var g=this.currentItem.find(":data("+this.widgetName+"-item)"),d=0;d<this.items.length;d++)for(var c=0;c<g.length;c++)g[c]==this.items[d].item[0]&&this.items.splice(d,1)},_refreshItems:function(g){this.items=[];this.containers=[this];var d=this.items,c=[[a.isFunction(this.options.items)?
-this.options.items.call(this.element[0],g,{item:this.currentItem}):a(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var i=a(e[f]),b=i.length-1;b>=0;b--){var h=a.data(i[b],this.widgetName);if(h&&h!=this&&!h.options.disabled){c.push([a.isFunction(h.options.items)?h.options.items.call(h.element[0],g,{item:this.currentItem}):a(h.options.items,h.element),h]);this.containers.push(h)}}for(f=c.length-1;f>=0;f--){g=c[f][1];e=c[f][0];b=0;for(i=e.length;b<
-i;b++){h=a(e[b]);h.data(this.widgetName+"-item",g);d.push({item:h,instance:g,width:0,height:0,left:0,top:0})}}},refreshPositions:function(g){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var d=this.items.length-1;d>=0;d--){var c=this.items[d];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?a(this.options.toleranceElement,c.item):c.item;if(!g){c.width=e.outerWidth();c.height=e.outerHeight()}e=
-e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(d=this.containers.length-1;d>=0;d--){e=this.containers[d].element.offset();this.containers[d].containerCache.left=e.left;this.containers[d].containerCache.top=e.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}return this},_createPlaceholder:function(g){var d=
-g||this,c=d.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=a(document.createElement(d.currentItem[0].nodeName)).addClass(e||d.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,i){if(!(e&&!c.forcePlaceholderSize)){i.height()||i.height(d.currentItem.innerHeight()-parseInt(d.currentItem.css("paddingTop")||0,10)-parseInt(d.currentItem.css("paddingBottom")||
-0,10));i.width()||i.width(d.currentItem.innerWidth()-parseInt(d.currentItem.css("paddingLeft")||0,10)-parseInt(d.currentItem.css("paddingRight")||0,10))}}}}d.placeholder=a(c.placeholder.element.call(d.element,d.currentItem));d.currentItem.after(d.placeholder);c.placeholder.update(d,d.placeholder)},_contactContainers:function(g){for(var d=null,c=null,e=this.containers.length-1;e>=0;e--)if(!a.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(d&&
-a.contains(this.containers[e].element[0],d.element[0]))){d=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",g,this._uiHash(this));this.containers[e].containerCache.over=0}if(d)if(this.containers.length===1){this.containers[c]._trigger("over",g,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){d=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],i=this.items.length-
-1;i>=0;i--)if(a.contains(this.containers[c].element[0],this.items[i].item[0])){var b=this.items[i][this.containers[c].floating?"left":"top"];if(Math.abs(b-f)<d){d=Math.abs(b-f);e=this.items[i]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(g,e,null,true):this._rearrange(g,null,this.containers[c].element,true);this._trigger("change",g,this._uiHash());this.containers[c]._trigger("change",g,this._uiHash(this));this.options.placeholder.update(this.currentContainer,
-this.placeholder);this.containers[c]._trigger("over",g,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(g){var d=this.options;g=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[g,this.currentItem])):d.helper=="clone"?this.currentItem.clone():this.currentItem;g.parents("body").length||a(d.appendTo!="parent"?d.appendTo:this.currentItem[0].parentNode)[0].appendChild(g[0]);if(g[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,
-height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(g[0].style.width==""||d.forceHelperSize)g.width(this.currentItem.width());if(g[0].style.height==""||d.forceHelperSize)g.height(this.currentItem.height());return g},_adjustOffsetFromHelper:function(g){if(typeof g=="string")g=g.split(" ");if(a.isArray(g))g={left:+g[0],top:+g[1]||0};if("left"in g)this.offset.click.left=g.left+this.margins.left;if("right"in
-g)this.offset.click.left=this.helperProportions.width-g.right+this.margins.left;if("top"in g)this.offset.click.top=g.top+this.margins.top;if("bottom"in g)this.offset.click.top=this.helperProportions.height-g.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var g=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){g.left+=this.scrollParent.scrollLeft();g.top+=
-this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)g={top:0,left:0};return{top:g.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:g.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var g=this.currentItem.position();return{top:g.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),
-left:g.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var g=this.options;if(g.containment=="parent")g.containment=this.helper[0].parentNode;
-if(g.containment=="document"||g.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(g.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(g.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(g.containment)){var d=a(g.containment)[0];g=a(g.containment).offset();
-var c=a(d).css("overflow")!="hidden";this.containment=[g.left+(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0)-this.margins.left,g.top+(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0)-this.margins.top,g.left+(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,g.top+(c?Math.max(d.scrollHeight,
-d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(g,d){if(!d)d=this.position;var c=g=="absolute"?1:-1,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(e[0].tagName);return{top:d.top+this.offset.relative.top*c+this.offset.parent.top*
-c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:e.scrollTop())*c),left:d.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*c)}},_generatePosition:function(g){var d=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:
-this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=g.pageX,i=g.pageY;if(this.originalPosition){if(this.containment){if(g.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(g.pageY-this.offset.click.top<this.containment[1])i=this.containment[1]+this.offset.click.top;if(g.pageX-this.offset.click.left>
-this.containment[2])f=this.containment[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>this.containment[3])i=this.containment[3]+this.offset.click.top}if(d.grid){i=this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1];i=this.containment?!(i-this.offset.click.top<this.containment[1]||i-this.offset.click.top>this.containment[3])?i:!(i-this.offset.click.top<this.containment[1])?i-d.grid[1]:i+d.grid[1]:i;f=this.originalPageX+Math.round((f-this.originalPageX)/d.grid[0])*
-d.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-d.grid[0]:f+d.grid[0]:f}}return{top:i-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&
-this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(g,d,c,e){c?c[0].appendChild(this.placeholder[0]):d.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?d.item[0]:d.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,i=this.counter;window.setTimeout(function(){i==f.counter&&f.refreshPositions(!e)},0)},_clear:function(g,d){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&
-this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!d&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||
-this.domPosition.parent!=this.currentItem.parent()[0])&&!d)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!a.contains(this.element[0],this.currentItem[0])){d||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(a.contains(this.containers[e].element[0],this.currentItem[0])&&!d){c.push(function(f){return function(i){f._trigger("receive",i,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(i){f._trigger("update",
-i,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){d||c.push(function(f){return function(i){f._trigger("deactivate",i,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(i){f._trigger("out",i,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&a("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",
-this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!d){this._trigger("beforeStop",g,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,g);this._trigger("stop",g,this._uiHash())}return false}d||this._trigger("beforeStop",g,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!d){for(e=
-0;e<c.length;e++)c[e].call(this,g);this._trigger("stop",g,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(g){var d=g||this;return{helper:d.helper,placeholder:d.placeholder||a([]),position:d.position,originalPosition:d.originalPosition,offset:d.positionAbs,item:d.currentItem,sender:g?g.element:null}}})})(jQuery);
-jQuery.effects||function(a,g){function d(l){var j;if(l&&l.constructor===Array&&l.length===3)return l;if(j=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(l))return[parseInt(j[1],10),parseInt(j[2],10),parseInt(j[3],10)];if(j=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(l))return[parseFloat(j[1])*2.55,parseFloat(j[2])*2.55,parseFloat(j[3])*2.55];if(j=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(l))return[parseInt(j[1],
-16),parseInt(j[2],16),parseInt(j[3],16)];if(j=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(l))return[parseInt(j[1]+j[1],16),parseInt(j[2]+j[2],16),parseInt(j[3]+j[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(l))return b.transparent;return b[a.trim(l).toLowerCase()]}function c(){var l=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,j={},m,n;if(l&&l.length&&l[0]&&l[l[0]])for(n=l.length;n--;){m=l[n];if(typeof l[m]==="string")j[a.camelCase(m)]=l[m]}else for(m in l)if(typeof l[m]===
-"string")j[m]=l[m];return j}function e(l,j,m,n){if(a.isPlainObject(l))return l;l={effect:l};if(j===g)j={};if(a.isFunction(j)){n=j;m=null;j={}}if(a.type(j)==="number"||a.fx.speeds[j]){n=m;m=j;j={}}if(a.isFunction(m)){n=m;m=null}j&&a.extend(l,j);m=m||j.duration;l.duration=a.fx.off?0:typeof m==="number"?m:m in a.fx.speeds?a.fx.speeds[m]:a.fx.speeds._default;l.complete=n||j.complete;return l}function f(l){if(!l||typeof l==="number"||a.fx.speeds[l])return true;if(typeof l==="string"&&!a.effects.effect[l]){if(i&&
-a.effects[l])return false;return true}return false}var i=a.uiBackCompat!==false;a.effects={effect:{}};a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(l,j){a.fx.step[j]=function(m){if(!m.colorInit){var n;n=m.elem;var o=j,p;do{p=a.curCSS(n,o);if(p!=""&&p!=="transparent"||a.nodeName(n,"body"))break;o="backgroundColor"}while(n=n.parentNode);n=d(p);m.start=n;m.end=d(m.end);m.colorInit=true}m.elem.style[j]=
-"rgb("+Math.max(Math.min(parseInt(m.pos*(m.end[0]-m.start[0])+m.start[0],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[1]-m.start[1])+m.start[1],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[2]-m.start[2])+m.start[2],10),255),0)+")"}});var b={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,
-0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,
-203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},h=["add","remove","toggle"],k={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(l,j){a.fx.step[j]=function(m){if(m.end!=="none"&&!m.setAttr||m.pos===1&&!m.setAttr){jQuery.style(m.elem,j,m.end);m.setAttr=
-true}}});a.effects.animateClass=function(l,j,m,n){var o=a.speed(j,m,n);return this.queue(function(){var p=a(this),q=p.attr("class")||"",u,s=o.children?p.find("*").andSelf():p;s=s.map(function(){var r=a(this);return{el:r,originalStyleAttr:r.attr("style")||" ",start:c.call(this)}});a.each(h,function(r,t){if(l[t])p[t+"Class"](l[t])});u=p.attr("class");s=s.map(function(){this.end=c.call(this.el[0]);var r=this.start,t=this.end,v={},w,x;for(w in t){x=t[w];if(r[w]!=x)if(!k[w])if(a.fx.step[w]||!isNaN(parseFloat(x)))v[w]=
-x}this.diff=v;return this});p.attr("class",q);s=s.map(function(){var r=this,t=a.Deferred();this.el.animate(this.diff,{duration:o.duration,easing:o.easing,queue:false,complete:function(){t.resolve(r)}});return t.promise()});a.when.apply(a,s.get()).done(function(){p.attr("class",u);a.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});o.complete.call(p[0])})})};
-a.fn.extend({_addClass:a.fn.addClass,addClass:function(l,j,m,n){return j?a.effects.animateClass.apply(this,[{add:l},j,m,n]):this._addClass(l)},_removeClass:a.fn.removeClass,removeClass:function(l,j,m,n){return j?a.effects.animateClass.apply(this,[{remove:l},j,m,n]):this._removeClass(l)},_toggleClass:a.fn.toggleClass,toggleClass:function(l,j,m,n,o){return typeof j==="boolean"||j===g?m?a.effects.animateClass.apply(this,[j?{add:l}:{remove:l},m,n,o]):this._toggleClass(l,j):a.effects.animateClass.apply(this,
-[{toggle:l},j,m,n])},switchClass:function(l,j,m,n,o){return a.effects.animateClass.apply(this,[{add:j,remove:l},m,n,o])}});a.extend(a.effects,{version:"1.9pre",save:function(l,j){for(var m=0;m<j.length;m++)j[m]!==null&&l.data("ec.storage."+j[m],l[0].style[j[m]])},restore:function(l,j){for(var m=0;m<j.length;m++)j[m]!==null&&l.css(j[m],l.data("ec.storage."+j[m]))},setMode:function(l,j){if(j==="toggle")j=l.is(":hidden")?"show":"hide";return j},getBaseline:function(l,j){var m,n;switch(l[0]){case "top":m=
-0;break;case "middle":m=0.5;break;case "bottom":m=1;break;default:m=l[0]/j.height}switch(l[1]){case "left":n=0;break;case "center":n=0.5;break;case "right":n=1;break;default:n=l[1]/j.width}return{x:n,y:m}},createWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent();var j={width:l.outerWidth(true),height:l.outerHeight(true),"float":l.css("float")},m=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
-n={width:l.width(),height:l.height()},o=document.activeElement;l.wrap(m);if(l[0]===o||a.contains(l[0],o))a(o).focus();m=l.parent();if(l.css("position")==="static"){m.css({position:"relative"});l.css({position:"relative"})}else{a.extend(j,{position:l.css("position"),zIndex:l.css("z-index")});a.each(["top","left","bottom","right"],function(p,q){j[q]=l.css(q);if(isNaN(parseInt(j[q],10)))j[q]="auto"});l.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}l.css(n);return m.css(j).show()},
-removeWrapper:function(l){var j=document.activeElement;if(l.parent().is(".ui-effects-wrapper")){l.parent().replaceWith(l);if(l[0]===j||a.contains(l[0],j))a(j).focus()}return l},setTransition:function(l,j,m,n){n=n||{};a.each(j,function(o,p){var q=l.cssUnit(p);if(q[0]>0)n[p]=q[0]*m+q[1]});return n}});a.fn.extend({effect:function(){function l(q){function u(){a.isFunction(r)&&r.call(s[0]);a.isFunction(q)&&q()}var s=a(this),r=j.complete,t=j.mode;(s.is(":hidden")?t==="hide":t==="show")?u():o.call(s[0],
-j,u)}var j=e.apply(this,arguments),m=j.mode,n=j.queue,o=a.effects.effect[j.effect],p=!o&&i&&a.effects[j.effect];if(a.fx.off||!(o||p))return m?this[m](j.duration,j.complete):this.each(function(){j.complete&&j.complete.call(this)});return o?n===false?this.each(l):this.queue(n||"fx",l):p.call(this,{options:j,duration:j.duration,callback:j.complete,mode:j.mode})},_show:a.fn.show,show:function(l){if(f(l))return this._show.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="show";return this.effect.call(this,
-j)}},_hide:a.fn.hide,hide:function(l){if(f(l))return this._hide.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="hide";return this.effect.call(this,j)}},__toggle:a.fn.toggle,toggle:function(l){if(f(l)||typeof l==="boolean"||a.isFunction(l))return this.__toggle.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="toggle";return this.effect.call(this,j)}},cssUnit:function(l){var j=this.css(l),m=[];a.each(["em","px","%","pt"],function(n,o){if(j.indexOf(o)>0)m=[parseFloat(j),
-o]});return m}});a.easing.jswing=a.easing.swing;a.extend(a.easing,{def:"easeOutQuad",swing:function(l,j,m,n,o){return a.easing[a.easing.def](l,j,m,n,o)},easeInQuad:function(l,j,m,n,o){return n*(j/=o)*j+m},easeOutQuad:function(l,j,m,n,o){return-n*(j/=o)*(j-2)+m},easeInOutQuad:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j+m;return-n/2*(--j*(j-2)-1)+m},easeInCubic:function(l,j,m,n,o){return n*(j/=o)*j*j+m},easeOutCubic:function(l,j,m,n,o){return n*((j=j/o-1)*j*j+1)+m},easeInOutCubic:function(l,j,
-m,n,o){if((j/=o/2)<1)return n/2*j*j*j+m;return n/2*((j-=2)*j*j+2)+m},easeInQuart:function(l,j,m,n,o){return n*(j/=o)*j*j*j+m},easeOutQuart:function(l,j,m,n,o){return-n*((j=j/o-1)*j*j*j-1)+m},easeInOutQuart:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j+m;return-n/2*((j-=2)*j*j*j-2)+m},easeInQuint:function(l,j,m,n,o){return n*(j/=o)*j*j*j*j+m},easeOutQuint:function(l,j,m,n,o){return n*((j=j/o-1)*j*j*j*j+1)+m},easeInOutQuint:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j*j+m;return n/2*
-((j-=2)*j*j*j*j+2)+m},easeInSine:function(l,j,m,n,o){return-n*Math.cos(j/o*(Math.PI/2))+n+m},easeOutSine:function(l,j,m,n,o){return n*Math.sin(j/o*(Math.PI/2))+m},easeInOutSine:function(l,j,m,n,o){return-n/2*(Math.cos(Math.PI*j/o)-1)+m},easeInExpo:function(l,j,m,n,o){return j==0?m:n*Math.pow(2,10*(j/o-1))+m},easeOutExpo:function(l,j,m,n,o){return j==o?m+n:n*(-Math.pow(2,-10*j/o)+1)+m},easeInOutExpo:function(l,j,m,n,o){if(j==0)return m;if(j==o)return m+n;if((j/=o/2)<1)return n/2*Math.pow(2,10*(j-1))+
-m;return n/2*(-Math.pow(2,-10*--j)+2)+m},easeInCirc:function(l,j,m,n,o){return-n*(Math.sqrt(1-(j/=o)*j)-1)+m},easeOutCirc:function(l,j,m,n,o){return n*Math.sqrt(1-(j=j/o-1)*j)+m},easeInOutCirc:function(l,j,m,n,o){if((j/=o/2)<1)return-n/2*(Math.sqrt(1-j*j)-1)+m;return n/2*(Math.sqrt(1-(j-=2)*j)+1)+m},easeInElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3,q=n;if(j==0)return m;if((j/=o)==1)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);return-(q*Math.pow(2,10*(j-=1))*Math.sin((j*
-o-l)*2*Math.PI/p))+m},easeOutElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3,q=n;if(j==0)return m;if((j/=o)==1)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);return q*Math.pow(2,-10*j)*Math.sin((j*o-l)*2*Math.PI/p)+n+m},easeInOutElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3*1.5,q=n;if(j==0)return m;if((j/=o/2)==2)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);if(j<1)return-0.5*q*Math.pow(2,10*(j-=1))*Math.sin((j*o-l)*2*Math.PI/p)+m;return q*
-Math.pow(2,-10*(j-=1))*Math.sin((j*o-l)*2*Math.PI/p)*0.5+n+m},easeInBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;return n*(j/=o)*j*((p+1)*j-p)+m},easeOutBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;return n*((j=j/o-1)*j*((p+1)*j+p)+1)+m},easeInOutBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;if((j/=o/2)<1)return n/2*j*j*(((p*=1.525)+1)*j-p)+m;return n/2*((j-=2)*j*(((p*=1.525)+1)*j+p)+2)+m},easeInBounce:function(l,j,m,n,o){return n-a.easing.easeOutBounce(l,o-j,0,n,o)+m},easeOutBounce:function(l,j,m,
-n,o){return(j/=o)<1/2.75?n*7.5625*j*j+m:j<2/2.75?n*(7.5625*(j-=1.5/2.75)*j+0.75)+m:j<2.5/2.75?n*(7.5625*(j-=2.25/2.75)*j+0.9375)+m:n*(7.5625*(j-=2.625/2.75)*j+0.984375)+m},easeInOutBounce:function(l,j,m,n,o){if(j<o/2)return a.easing.easeInBounce(l,j*2,0,n,o)*0.5+m;return a.easing.easeOutBounce(l,j*2-o,0,n,o)*0.5+n*0.5+m}})}(jQuery);
-(function(a){var g=/up|down|vertical/,d=/up|left|vertical|horizontal/;a.effects.effect.blind=function(c,e){var f=a(this),i=["position","top","bottom","left","right","height","width"],b=a.effects.setMode(f,c.mode||"hide"),h=c.direction||"up",k=g.test(h),l=k?"height":"width",j=k?"top":"left";h=d.test(h);var m={},n=b==="show",o,p;f.parent().is(".ui-effects-wrapper")?a.effects.save(f.parent(),i):a.effects.save(f,i);f.show();p=parseInt(f.css("top"),10);o=a.effects.createWrapper(f).css({overflow:"hidden"});
-p=k?o[l]()+p:o[l]();m[l]=n?p:0;if(!h){f.css(k?"bottom":"right",0).css(k?"top":"left","").css({position:"absolute"});m[j]=n?0:p}if(n){o.css(l,0);h||o.css(j,p)}o.animate(m,{duration:c.duration,easing:c.easing,queue:false,complete:function(){b==="hide"&&f.hide();a.effects.restore(f,i);a.effects.removeWrapper(f);e()}})}})(jQuery);
-(function(a){a.effects.effect.bounce=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"effect"),i=f==="hide",b=f==="show",h=g.direction||"up";f=g.distance;var k=g.times||5,l=k*2+(b||i?1:0),j=g.duration/l,m=g.easing,n=h==="up"||h==="down"?"top":"left";h=h==="up"||h==="left";var o,p,q=c.queue(),u=q.length;if(b||i)e.push("opacity");a.effects.save(c,e);c.show();a.effects.createWrapper(c);f||(f=c[n==="top"?"outerHeight":"outerWidth"]()/
-3);if(b){p={opacity:1};p[n]=0;c.css("opacity",0).css(n,h?-f*2:f*2).animate(p,j,m)}if(i)f/=Math.pow(2,k-1);p={};for(b=p[n]=0;b<k;b++){o={};o[n]=(h?"-=":"+=")+f;c.animate(o,j,m).animate(p,j,m);f=i?f*2:f/2}if(i){o={opacity:0};o[n]=(h?"-=":"+=")+f;c.animate(o,j,m)}c.queue(function(){i&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()});u>1&&q.splice.apply(q,[1,0].concat(q.splice(u,l+1)));c.dequeue()}})(jQuery);
-(function(a){a.effects.effect.clip=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide")==="show",i=(g.direction||"vertical")==="vertical",b=i?"height":"width";i=i?"top":"left";var h={},k,l;a.effects.save(c,e);c.show();k=a.effects.createWrapper(c).css({overflow:"hidden"});k=c[0].tagName==="IMG"?k:c;l=k[b]();if(f){k.css(b,0);k.css(i,l/2)}h[b]=f?l:0;h[i]=f?0:l/2;k.animate(h,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f||
-c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.drop=function(g,d){var c=a(this),e=["position","top","bottom","left","right","opacity","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=g.direction||"left",h=b==="up"||b==="down"?"top":"left";b=b==="up"||b==="left"?"pos":"neg";var k={opacity:i?1:0},l;a.effects.save(c,e);c.show();a.effects.createWrapper(c);l=g.distance||c[h=="top"?"outerHeight":"outerWidth"]({margin:true})/2;if(i)c.css("opacity",0).css(h,b=="pos"?-l:l);k[h]=(i?b==="pos"?"+=":"-=":
-b==="pos"?"-=":"+=")+l;c.animate(k,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.explode=function(g,d){function c(){j.push(this);if(j.length==e*f){i.css({visibility:"visible"});a(j).remove();b||i.hide();d()}}var e=g.pieces?Math.round(Math.sqrt(g.pieces)):3,f=e,i=a(this),b=a.effects.setMode(i,g.mode||"hide")==="show",h=i.show().css("visibility","hidden").offset(),k=Math.ceil(i.outerWidth()/f),l=Math.ceil(i.outerHeight()/e),j=[],m,n,o,p,q,u;for(m=0;m<e;m++){p=h.top+m*l;u=m-(e-1)/2;for(n=0;n<f;n++){o=h.left+n*k;q=n-(f-1)/2;i.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",
-visibility:"visible",left:-n*k,top:-m*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:k,height:l,left:o+(b?q*k:0),top:p+(b?u*l:0),opacity:b?0:1}).animate({left:o+(b?0:q*k),top:p+(b?0:u*l),opacity:b?1:0},g.duration||500,g.easing,c)}}}})(jQuery);
-(function(a){a.effects.effect.fade=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"toggle")==="hide";c.show();c.animate({opacity:e?0:1},{queue:false,duration:g.duration,easing:g.easing,complete:function(){e&&c.hide();d()}})}})(jQuery);
-(function(a){a.effects.effect.fold=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=f==="hide";f=g.size||15;var h=/([0-9]+)%/.exec(f),k=!!g.horizFirst,l=i!=k,j=l?["width","height"]:["height","width"],m=g.duration/2,n,o={},p={};a.effects.save(c,e);c.show();n=a.effects.createWrapper(c).css({overflow:"hidden"});l=l?[n.width(),n.height()]:[n.height(),n.width()];if(h)f=parseInt(h[1],10)/100*l[b?0:1];if(i)n.css(k?
-{height:0,width:f}:{height:f,width:0});o[j[0]]=i?l[0]:f;p[j[1]]=i?l[1]:0;n.animate(o,m,g.easing).animate(p,m,g.easing,function(){b&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()})}})(jQuery);
-(function(a){a.effects.effect.highlight=function(g,d){var c=a(this),e=["backgroundImage","backgroundColor","opacity"],f=a.effects.setMode(c,g.mode||"show"),i={backgroundColor:c.css("backgroundColor")};if(f==="hide")i.opacity=0;a.effects.save(c,e);c.show().css({backgroundImage:"none",backgroundColor:g.color||"#ffff99"}).animate(i,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);d()}})}})(jQuery);
-(function(a){a.effects.effect.pulsate=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"show"),f=e==="show",i=e==="hide";e=(g.times||5)*2+(f||e==="hide"?1:0);var b=g.duration/e,h=0,k=c.queue(),l=k.length;if(f||!c.is(":visible")){c.css("opacity",0).show();h=1}for(f=1;f<e;f++){c.animate({opacity:h},b,g.easing);h=1-h}c.animate({opacity:h},b,g.easing);c.queue(function(){i&&c.hide();d()});l>1&&k.splice.apply(k,[1,0].concat(k.splice(l,e+1)));c.dequeue()}})(jQuery);
-(function(a){a.effects.effect.puff=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"hide"),f=e==="hide",i=parseInt(g.percent,10)||150,b=i/100,h={height:c.height(),width:c.width()};a.extend(g,{effect:"scale",queue:false,fade:true,mode:e,complete:d,percent:f?i:100,from:f?h:{height:h.height*b,width:h.width*b}});c.effect(g)};a.effects.effect.scale=function(g,d){var c=a(this),e=a.extend(true,{},g),f=a.effects.setMode(c,g.mode||"effect"),i=parseInt(g.percent,10)||(parseInt(g.percent,10)==0?0:
-f=="hide"?0:100),b=g.direction||"both",h=g.origin,k={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};i={y:b!="horizontal"?i/100:1,x:b!="vertical"?i/100:1};e.effect="size";e.queue=false;e.complete=d;if(f!="effect"){e.origin=h||["middle","center"];e.restore=true}e.from=g.from||(f=="show"?{height:0,width:0}:k);e.to={height:k.height*i.y,width:k.width*i.x,outerHeight:k.outerHeight*i.y,outerWidth:k.outerWidth*i.x};if(e.fade){if(f=="show"){e.from.opacity=0;e.to.opacity=
-1}if(f=="hide"){e.from.opacity=1;e.to.opacity=0}}c.effect(e)};a.effects.effect.size=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],f=["position","top","bottom","left","right","overflow","opacity"],i=["width","height","overflow"],b=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],l=a.effects.setMode(c,g.mode||"effect"),j=g.restore||
-l!=="effect",m=g.scale||"both",n=g.origin||["middle","center"],o,p,q,u=c.css("position"),s=c.css("bottom")!=="auto"?"bottom":"top";originalHorizontalPositioning=c.css("right")!=="auto"?"right":"left";l==="show"&&c.show();o={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};c.from=g.from||o;c.to=g.to||o;q={from:{y:c.from.height/o.height,x:c.from.width/o.width},to:{y:c.to.height/o.height,x:c.to.width/o.width}};if(m=="box"||m=="both"){if(q.from.y!==q.to.y){e=e.concat(h);
-c.from=a.effects.setTransition(c,h,q.from.y,c.from);c.to=a.effects.setTransition(c,h,q.to.y,c.to)}if(q.from.x!==q.to.x){e=e.concat(k);c.from=a.effects.setTransition(c,k,q.from.x,c.from);c.to=a.effects.setTransition(c,k,q.to.x,c.to)}}if(m=="content"||m=="both")if(q.from.y!==q.to.y){e=e.concat(b);c.from=a.effects.setTransition(c,b,q.from.y,c.from);c.to=a.effects.setTransition(c,b,q.to.y,c.to)}a.effects.save(c,j?e:f);c.show();a.effects.createWrapper(c);c.css("overflow","hidden").css(c.from);if(n){p=
-a.effects.getBaseline(n,o);c.from.top=(o.outerHeight-c.outerHeight())*p.y;c.from.left=(o.outerWidth-c.outerWidth())*p.x;c.to.top=(o.outerHeight-c.to.outerHeight)*p.y;c.to.left=(o.outerWidth-c.to.outerWidth)*p.x}c.css(c.from);if(m=="content"||m=="both"){h=h.concat(["marginTop","marginBottom"]).concat(b);k=k.concat(["marginLeft","marginRight"]);i=e.concat(h).concat(k);c.find("*[width]").each(function(){var r=a(this),t={height:r.height(),width:r.width()};j&&a.effects.save(r,i);r.from={height:t.height*
-q.from.y,width:t.width*q.from.x};r.to={height:t.height*q.to.y,width:t.width*q.to.x};if(q.from.y!=q.to.y){r.from=a.effects.setTransition(r,h,q.from.y,r.from);r.to=a.effects.setTransition(r,h,q.to.y,r.to)}if(q.from.x!=q.to.x){r.from=a.effects.setTransition(r,k,q.from.x,r.from);r.to=a.effects.setTransition(r,k,q.to.x,r.to)}r.css(r.from);r.animate(r.to,g.duration,g.easing,function(){j&&a.effects.restore(r,i)})})}c.animate(c.to,{queue:false,duration:g.duration,easing:g.easing,complete:function(){c.to.opacity===
-0&&c.css("opacity",c.from.opacity);l=="hide"&&c.hide();a.effects.restore(c,j?e:f);j||(u==="static"?c.css({position:"relative",top:c.to.top,left:c.to.left}):a.each([s,originalHorizontalPositioning],function(r,t){c.css(t,function(v,w){var x=parseInt(w,10),C=r?c.to.left:c.to.top,A=r?c.to.outerWidth-c.from.outerWidth:c.to.outerHeight-c.from.outerHeight,y=n[r]===t,D=n[r]==="middle"||n[r]==="center";if(w==="auto")return C+"px";if(!(t=="left"||t=="top"))if(u==="relative")C*=-1;else D||(C-=A*(y?-1:1));return x+
-C+"px"})}));a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.shake=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"effect"),i=g.direction||"left",b=g.distance||20,h=g.times||3,k=h*2+1,l=g.duration,j=i=="up"||i=="down"?"top":"left",m=i=="up"||i=="left";i={};var n={},o={},p=c.queue(),q=p.length;a.effects.save(c,e);c.show();a.effects.createWrapper(c);i[j]=(m?"-=":"+=")+b;n[j]=(m?"+=":"-=")+b*2;o[j]=(m?"-=":"+=")+b*2;c.animate(i,l,g.easing);for(b=1;b<h;b++)c.animate(n,
-l,g.easing).animate(o,l,g.easing);c.animate(n,l,g.easing).animate(i,l/2,g.easing).queue(function(){f==="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()});q>1&&p.splice.apply(p,[1,0].concat(p.splice(q,k+1)));c.dequeue()}})(jQuery);
-(function(a){a.effects.effect.slide=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height"],f=a.effects.setMode(c,g.mode||"show"),i=f==="show",b=g.direction||"left",h=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left";var k,l={};a.effects.save(c,e);c.show();k=g.distance||c[h==="top"?"outerHeight":"outerWidth"]({margin:true});a.effects.createWrapper(c).css({overflow:"hidden"});if(i)c.css(h,b?isNaN(k)?"-"+k:-k:k);l[h]=(i?b?"+=":"-=":b?"-=":"+=")+k;c.animate(l,{queue:false,
-duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.transfer=function(g,d){var c=a(this),e=a(g.to),f=e.css("position")==="fixed",i=a("body"),b=f?i.scrollTop():0;i=f?i.scrollLeft():0;var h=e.offset();e={top:h.top-b,left:h.left-i,height:e.innerHeight(),width:e.innerWidth()};h=c.offset();var k=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(g.className).css({top:h.top-b,left:h.left-i,height:c.innerHeight(),width:c.innerWidth(),position:f?"fixed":"absolute"}).animate(e,g.duration,g.easing,function(){k.remove();
-d()})}})(jQuery);
-(function(a){a.widget("ui.accordion",{version:"1.9pre",options:{active:0,animated:"slide",collapsible:false,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var g=this.options;this.lastToggle={};this.element.addClass("ui-accordion ui-widget ui-helper-reset");this.headers=this.element.find(g.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all");this._hoverable(this.headers);
-this._focusable(this.headers);this.headers.find(":first-child").addClass("ui-accordion-heading");this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(!g.collapsible&&g.active===false)g.active=0;if(g.active<0)g.active+=this.headers.length;this.active=this._findActive(g.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");this._createIcons();
-this.refresh();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown.accordion",a.proxy(this,"_keydown")).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();this.active.length?this.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):this.headers.eq(0).attr("tabIndex",0);a.browser.safari||this.headers.find("a").attr("tabIndex",-1);this._setupEvents(g.event)},_createIcons:function(){var g=
-this.options.icons;if(g){a("<span>").addClass("ui-accordion-header-icon ui-icon "+g.header).prependTo(this.headers);this.active.children(".ui-accordion-header-icon").removeClass(g.header).addClass(g.activeHeader);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-accordion-header-icon").remove();this.element.removeClass("ui-accordion-icons")},_destroy:function(){this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex").find("a").removeAttr("tabIndex").end().find(".ui-accordion-heading").removeClass("ui-accordion-heading");
-this._destroyIcons();var g=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");this.options.heightStyle!=="content"&&g.css("height","")},_setOption:function(g,d){if(g==="active")this._activate(d);else{if(g==="event"){this.options.event&&this.headers.unbind(this.options.event+".accordion",this._eventHandler);this._setupEvents(d)}this._super("_setOption",
-g,d);g==="collapsible"&&!d&&this.options.active===false&&this._activate(0);if(g==="icons"){this._destroyIcons();d&&this._createIcons()}g==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-accordion-disabled ui-state-disabled",!!d)}},_keydown:function(g){if(!(this.options.disabled||g.altKey||g.ctrlKey)){var d=a.ui.keyCode,c=this.headers.length,e=this.headers.index(g.target),f=false;switch(g.keyCode){case d.RIGHT:case d.DOWN:f=this.headers[(e+1)%c];break;case d.LEFT:case d.UP:f=this.headers[(e-
-1+c)%c];break;case d.SPACE:case d.ENTER:this._eventHandler(g)}if(f){a(g.target).attr("tabIndex",-1);a(f).attr("tabIndex",0);f.focus();g.preventDefault()}}},refresh:function(){var g=this.options,d=this.element.parent(),c,e;if(g.heightStyle==="fill"){if(!a.support.minHeight){e=d.css("overflow");d.css("overflow","hidden")}c=d.height();this.element.siblings(":visible").each(function(){var f=a(this),i=f.css("position");i==="absolute"||i==="fixed"||(c-=f.outerHeight(true))});e&&d.css("overflow",e);this.headers.each(function(){c-=
-a(this).outerHeight(true)});this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else if(g.heightStyle==="auto"){c=0;this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c)}return this},_activate:function(g){g=this._findActive(g)[0];if(g!==this.active[0]){g=g||this.active[0];this._eventHandler({target:g,currentTarget:g,preventDefault:a.noop})}},_findActive:function(g){return typeof g==="number"?
-this.headers.eq(g):a()},_setupEvents:function(g){g&&this.headers.bind(g.split(" ").join(".accordion ")+".accordion",a.proxy(this,"_eventHandler"))},_eventHandler:function(g){var d=this.options,c=this.active,e=a(g.currentTarget),f=e[0]===c[0],i=f&&d.collapsible,b=i?a():e.next(),h=c.next();b={oldHeader:c,oldContent:h,newHeader:i?a():e,newContent:b};g.preventDefault();if(!(d.disabled||f&&!d.collapsible||this._trigger("beforeActivate",g,b)===false)){d.active=i?false:this.headers.index(e);this.active=
-f?a():e;this._toggle(b);c.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-accordion-header-icon").removeClass(d.icons.activeHeader).addClass(d.icons.header);if(!f){e.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-accordion-header-icon").removeClass(d.icons.header).addClass(d.icons.activeHeader);e.next().addClass("ui-accordion-content-active")}}},_toggle:function(g){function d(){c._completed(g)}
-var c=this,e=c.options,f=g.newContent,i=g.oldContent;if(e.animated){var b=a.ui.accordion.animations;e=e.animated;var h;if(!b[e]){h={easing:a.easing[e]?e:"slide",duration:700};e="slide"}b[e]({widget:c,toShow:f,toHide:i,prevShow:c.lastToggle.toShow,prevHide:c.lastToggle.toHide,complete:d,down:f.length&&(!i.length||f.index()<i.index())},h)}else{i.hide();f.show();d()}i.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur();f.prev().attr({"aria-expanded":"true","aria-selected":"true",
-tabIndex:0}).focus()},_completed:function(g){var d=g.newContent,c=g.oldContent;this.options.heightStyle==="content"&&d.add(c).css({height:"",overflow:""});c.removeClass("ui-accordion-content-active");if(c.length)c.parent()[0].className=c.parent()[0].className;this._trigger("activate",null,g)}});a.extend(a.ui.accordion,{animations:{slide:function(g,d){if(g.prevShow||g.prevHide){g.prevHide.stop(true,true);g.toHide=g.prevShow}var c=g.toShow.css("overflow"),e=g.toHide.css("overflow"),f=0,i={},b={},h;
-g=a.extend({easing:"swing",duration:300},g,d);g.widget.lastToggle=g;if(g.toHide.size())if(g.toShow.size()){var k=g.toShow;h=k[0].style.width;k.width(parseInt(k.parent().width(),10)-parseInt(k.css("paddingLeft"),10)-parseInt(k.css("paddingRight"),10)-(parseInt(k.css("borderLeftWidth"),10)||0)-(parseInt(k.css("borderRightWidth"),10)||0));a.each(["height","paddingTop","paddingBottom"],function(l,j){b[j]="hide";var m=(""+a.css(g.toShow[0],j)).match(/^([\d+-.]+)(.*)$/);i[j]={value:j==="height"&&m[1]===
-"0"?1:m[1],unit:m[2]||"px"}});g.toShow.css({height:0,overflow:"hidden"}).show();g.toHide.filter(":hidden").each(g.complete).end().filter(":visible").animate(b,{step:function(l,j){if(j.prop=="height"||j.prop=="paddingTop"||j.prop=="paddingBottom")f=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);g.toShow[0].style[j.prop]=f*i[j.prop].value+i[j.prop].unit},duration:g.duration,easing:g.easing,complete:function(){g.toShow.css({width:h,overflow:c});g.toHide.css("overflow",e);g.complete()}})}else g.toHide.animate({height:"hide",
-paddingTop:"hide",paddingBottom:"hide"},g);else{h=g.toShow[0].style.width;g.toShow.show().width(g.toShow.width()).hide().animate({height:"show",paddingTop:"show",paddingBottom:"show"},{duration:g.duration,easing:g.easing,complete:function(){g.toShow.width(h);g.complete()}})}},bounceslide:function(g){this.slide(g,{easing:g.down?"easeOutBounce":"swing",duration:g.down?1E3:200})}}});if(a.uiBackCompat!==false){(function(g,d){g.extend(d.options,{navigation:false,navigationFilter:function(){return this.href.toLowerCase()===
-location.href.toLowerCase()}});var c=d._create;d._create=function(){if(this.options.navigation){var e=this,f=this.element.find(this.options.header),i=f.next(),b=f.add(i).find("a").filter(this.options.navigationFilter)[0];b&&f.add(i).each(function(h){if(g.contains(this,b)){e.options.active=Math.floor(h/2);return false}})}c.call(this)}})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){g.extend(d.options,{heightStyle:null,autoHeight:true,clearStyle:false,fillSpace:false});var c=d._create,e=d._setOption;
-g.extend(d,{_create:function(){this.options.heightStyle=this.options.heightStyle||this._mergeHeightStyle();c.call(this)},_setOption:function(f){if(f==="autoHeight"||f==="clearStyle"||f==="fillSpace")this.options.heightStyle=this._mergeHeightStyle();e.apply(this,arguments)},_mergeHeightStyle:function(){var f=this.options;if(f.fillSpace)return"fill";if(f.clearStyle)return"content";if(f.autoHeight)return"auto"}})})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){g.extend(d.options.icons,{activeHeader:null,
-headerSelected:"ui-icon-triangle-1-s"});var c=d._createIcons;d._createIcons=function(){this.options.icons.activeHeader=this.options.icons.activeHeader||this.options.icons.headerSelected;c.call(this)}})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){d.activate=d._activate;var c=d._findActive;d._findActive=function(e){if(e===-1)e=false;if(e&&typeof e!=="number"){e=this.headers.index(this.headers.filter(e));if(e===-1)e=false}return c.call(this,e)}})(jQuery,jQuery.ui.accordion.prototype);jQuery.ui.accordion.prototype.resize=
-jQuery.ui.accordion.prototype.refresh;(function(g,d){g.extend(d.options,{change:null,changestart:null});var c=d._trigger;d._trigger=function(e,f,i){var b=c.apply(this,arguments);if(!b)return false;if(e==="beforeActivate")b=c.call(this,"changestart",f,i);else if(e==="activate")b=c.call(this,"change",f,i);return b}})(jQuery,jQuery.ui.accordion.prototype)}})(jQuery);
-(function(a){var g=0;a.widget("ui.autocomplete",{version:"1.9pre",defaultElement:"<input>",options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var d=this,c=this.element[0].ownerDocument,e,f;this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"];this.element.addClass("ui-autocomplete-input").attr("autocomplete",
-"off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(i){if(d.options.disabled||d.element.prop("readOnly"))f=e=true;else{f=e=false;var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:e=true;d._move("previousPage",i);break;case b.PAGE_DOWN:e=true;d._move("nextPage",i);break;case b.UP:e=true;d._move("previous",i);i.preventDefault();break;case b.DOWN:e=true;d._move("next",i);i.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:if(d.menu.active){e=
-true;i.preventDefault()}case b.TAB:if(!d.menu.active)break;d.menu.select(i);break;case b.ESCAPE:if(d.menu.element.is(":visible")){d._value(d.term);d.close(i)}break;default:d._searchTimeout(i)}}}).bind("keypress.autocomplete",function(i){if(e){e=false;i.preventDefault()}else{var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:d._move("previousPage",i);break;case b.PAGE_DOWN:d._move("nextPage",i);break;case b.UP:d._move("previous",i);i.preventDefault();break;case b.DOWN:d._move("next",i);i.preventDefault()}}}).bind("input.autocomplete",
-function(i){if(f){f=false;i.preventDefault()}else d._searchTimeout(i)}).bind("focus.autocomplete",function(){if(!d.options.disabled){d.selectedItem=null;d.previous=d._value()}}).bind("blur.autocomplete",function(i){if(!d.options.disabled){clearTimeout(d.searching);d.closing=setTimeout(function(){d.close(i);d._change(i)},150)}});this._initSource();this.response=function(){return d._response.apply(d,arguments)};this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",
-c)[0]).mousedown(function(i){var b=d.menu.element[0];a(i.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(h){h.target!==d.element[0]&&h.target!==b&&!a.contains(b,h.target)&&d.close()})},1);setTimeout(function(){clearTimeout(d.closing)},13)}).menu({input:a(),focus:function(i,b){var h=b.item.data("item.autocomplete");false!==d._trigger("focus",i,{item:h})&&/^key/.test(i.originalEvent.type)&&d._value(h.value)},select:function(i,b){var h=b.item.data("item.autocomplete"),
-k=d.previous;if(d.element[0]!==c.activeElement){d.element.focus();d.previous=k;setTimeout(function(){d.previous=k;d.selectedItem=h},1)}false!==d._trigger("select",i,{item:h})&&d._value(h.value);d.term=d._value();d.close(i);d.selectedItem=h}}).zIndex(this.element.zIndex()+1).hide().data("menu");a.fn.bgiframe&&this.menu.element.bgiframe()},_destroy:function(){clearTimeout(this.searching);this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
-this.menu.element.remove()},_setOption:function(d,c){this._super("_setOption",d,c);d==="source"&&this._initSource();if(d==="appendTo")this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]);d==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d=this,c,e;if(a.isArray(this.options.source)){c=this.options.source;this.source=function(f,i){i(a.ui.autocomplete.filter(c,f.term))}}else if(typeof this.options.source==="string"){e=this.options.source;this.source=function(f,
-i){d.xhr&&d.xhr.abort();d.xhr=a.ajax({url:e,data:f,dataType:"json",autocompleteRequest:++g,success:function(b){this.autocompleteRequest===g&&i(b)},error:function(){this.autocompleteRequest===g&&i([])}})}}else this.source=this.options.source},_searchTimeout:function(d){var c=this;clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!==c._value()){c.selectedItem=null;c.search(null,d)}},c.options.delay)},search:function(d,c){d=d!=null?d:this._value();this.term=this._value();if(d.length<
-this.options.minLength)return this.close(c);clearTimeout(this.closing);if(this._trigger("search",c)!==false)return this._search(d)},_search:function(d){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:d},this.response)},_response:function(d){if(d)d=this._normalize(d);this._trigger("response",null,{content:d});if(!this.options.disabled&&d&&d.length){this._suggest(d);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},
-close:function(d){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.blur();this._trigger("close",d)}},_change:function(d){this.previous!==this._value()&&this._trigger("change",d,{item:this.selectedItem})},_normalize:function(d){if(d.length&&d[0].label&&d[0].value)return d;return a.map(d,function(c){if(typeof c==="string")return{label:c,value:c};return a.extend({label:c.label||c.value,value:c.value||c.label},c)})},_suggest:function(d){var c=this.menu.element.empty().zIndex(this.element.zIndex()+
-1);this._renderMenu(c,d);this.menu.blur();this.menu.refresh();c.show();this._resizeMenu();c.position(a.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var d=this.menu.element;d.outerWidth(Math.max(d.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(d,c){var e=this;a.each(c,function(f,i){e._renderItem(d,i)})},_renderItem:function(d,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(d)},
-_move:function(d,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(d)||this.menu.last()&&/^next/.test(d)){this._value(this.term);this.menu.blur()}else this.menu[d](c);else this.search(null,c)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)}});a.extend(a.ui.autocomplete,{escapeRegex:function(d){return d.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(d,c){var e=RegExp(a.ui.autocomplete.escapeRegex(c),
-"i");return a.grep(d,function(f){return e.test(f.label||f.value||f)})}})})(jQuery);
-(function(a){var g,d,c,e,f=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},i=function(b){var h=b.name,k=b.form,l=a([]);if(h)l=k?a(k).find("[name='"+h+"']"):a("[name='"+h+"']",b.ownerDocument).filter(function(){return!this.form});return l};a.widget("ui.button",{version:"1.9pre",defaultElement:"<button>",options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
-f);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.prop("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,k=this.type==="checkbox"||this.type==="radio",l="ui-state-hover"+(!k?" ui-state-active":"");if(h.label===null)h.label=this.buttonElement.html();if(this.element.is(":disabled"))h.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
-function(){if(!h.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){h.disabled||a(this).removeClass(l)}).bind("click.button",function(j){if(h.disabled){j.preventDefault();j.stopImmediatePropagation()}});this.element.bind("focus.button",function(){b.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){b.buttonElement.removeClass("ui-state-focus")});if(k){this.element.bind("change.button",function(){e||
-b.refresh()});this.buttonElement.bind("mousedown.button",function(j){if(!h.disabled){e=false;d=j.pageX;c=j.pageY}}).bind("mouseup.button",function(j){if(!h.disabled)if(d!==j.pageX||c!==j.pageY)e=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(h.disabled||e)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(h.disabled||e)return false;
-a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed","true");var j=b.element[0];i(j).not(j).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(h.disabled)return false;a(this).addClass("ui-state-active");g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(h.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",
-function(j){if(h.disabled)return false;if(j.keyCode==a.ui.keyCode.SPACE||j.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(j){j.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",h.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":
-this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){var b=this.element.parents().last(),h="label[for='"+this.element.attr("id")+"']";this.buttonElement=b.find(h);if(!this.buttonElement.length){b=b.length?b.siblings():this.element.siblings();this.buttonElement=b.filter(h);if(!this.buttonElement.length)this.buttonElement=b.find(h)}this.element.addClass("ui-helper-hidden-accessible");(b=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");
-this.buttonElement.prop("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
-this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(b,h){this._super("_setOption",b,h);if(b==="disabled")h?this.element.prop("disabled",true):this.element.prop("disabled",false);else this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")i(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",
-"false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
-h=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),k=this.options.icons,l=k.primary&&k.secondary,j=[];if(k.primary||k.secondary){if(this.options.text)j.push("ui-button-text-icon"+(l?"s":k.primary?"-primary":"-secondary"));k.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+k.primary+"'></span>");k.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+k.secondary+"'></span>");if(!this.options.text){j.push(l?"ui-button-icons-only":
-"ui-button-icon-only");this.hasTitle||b.attr("title",h)}}else j.push("ui-button-text-only");b.addClass(j.join(" "))}}});a.ui.button.version="1.9pre";a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,h){b==="disabled"&&this.buttons.button("option",b,h);this._super("_setOption",b,h)},refresh:function(){var b=this.element.css("direction")===
-"rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}})})(jQuery);
-(function(a,g){function d(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
-"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
-"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
-minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};a.extend(this._defaults,this.regional[""]);this.dpDiv=c(a('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function c(b){return b.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a",
-"mouseout",function(){a(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&a(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&a(this).removeClass("ui-datepicker-next-hover")}).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a","mouseover",function(){if(!a.datepicker._isDisabledDatepicker(i.inline?b.parent()[0]:i.input[0])){a(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
-a(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&a(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&a(this).addClass("ui-datepicker-next-hover")}})}function e(b,h){a.extend(b,h);for(var k in h)if(h[k]==null||h[k]==g)b[k]=h[k];return b}a.extend(a.ui,{datepicker:{version:"1.9pre"}});var f=(new Date).getTime(),i;a.extend(d.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",
-arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(b){e(this._defaults,b||{});return this},_attachDatepicker:function(b,h){var k=null,l;for(l in this._defaults){var j=b.getAttribute("date:"+l);if(j){k=k||{};try{k[l]=eval(j)}catch(m){k[l]=j}}}l=b.nodeName.toLowerCase();j=l=="div"||l=="span";if(!b.id){this.uuid+=1;b.id="dp"+this.uuid}var n=this._newInst(a(b),j);n.settings=a.extend({},h||{},k||{});if(l=="input")this._connectDatepicker(b,n);else j&&this._inlineDatepicker(b,
-n)},_newInst:function(b,h){return{id:b[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:b,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:h,dpDiv:!h?this.dpDiv:c(a('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(b,h){var k=a(b);h.append=a([]);h.trigger=a([]);if(!k.hasClass(this.markerClassName)){this._attachments(k,h);k.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",
-function(l,j,m){h.settings[j]=m}).bind("getData.datepicker",function(l,j){return this._get(h,j)});this._autoSize(h);a.data(b,"datepicker",h);h.settings.disabled&&this._disableDatepicker(b)}},_attachments:function(b,h){var k=this._get(h,"appendText"),l=this._get(h,"isRTL");h.append&&h.append.remove();if(k){h.append=a('<span class="'+this._appendClass+'">'+k+"</span>");b[l?"before":"after"](h.append)}b.unbind("focus",this._showDatepicker);h.trigger&&h.trigger.remove();k=this._get(h,"showOn");if(k==
-"focus"||k=="both")b.focus(this._showDatepicker);if(k=="button"||k=="both"){k=this._get(h,"buttonText");var j=this._get(h,"buttonImage");h.trigger=a(this._get(h,"buttonImageOnly")?a("<img/>").addClass(this._triggerClass).attr({src:j,alt:k,title:k}):a('<button type="button"></button>').addClass(this._triggerClass).html(j==""?k:a("<img/>").attr({src:j,alt:k,title:k})));b[l?"before":"after"](h.trigger);h.trigger.click(function(){a.datepicker._datepickerShowing&&a.datepicker._lastInput==b[0]?a.datepicker._hideDatepicker():
-a.datepicker._showDatepicker(b[0]);return false})}},_autoSize:function(b){if(this._get(b,"autoSize")&&!b.inline){var h=new Date(2009,11,20),k=this._get(b,"dateFormat");if(k.match(/[DM]/)){var l=function(j){for(var m=0,n=0,o=0;o<j.length;o++)if(j[o].length>m){m=j[o].length;n=o}return n};h.setMonth(l(this._get(b,k.match(/MM/)?"monthNames":"monthNamesShort")));h.setDate(l(this._get(b,k.match(/DD/)?"dayNames":"dayNamesShort"))+20-h.getDay())}b.input.attr("size",this._formatDate(b,h).length)}},_inlineDatepicker:function(b,
-h){var k=a(b);if(!k.hasClass(this.markerClassName)){k.addClass(this.markerClassName).append(h.dpDiv).bind("setData.datepicker",function(l,j,m){h.settings[j]=m}).bind("getData.datepicker",function(l,j){return this._get(h,j)});a.data(b,"datepicker",h);this._setDate(h,this._getDefaultDate(h),true);this._updateDatepicker(h);this._updateAlternate(h);h.settings.disabled&&this._disableDatepicker(b);h.dpDiv.css("display","block")}},_dialogDatepicker:function(b,h,k,l,j){b=this._dialogInst;if(!b){this.uuid+=
-1;this._dialogInput=a('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);a("body").append(this._dialogInput);b=this._dialogInst=this._newInst(this._dialogInput,false);b.settings={};a.data(this._dialogInput[0],"datepicker",b)}e(b.settings,l||{});h=h&&h.constructor==Date?this._formatDate(b,h):h;this._dialogInput.val(h);this._pos=j?j.length?j:[j.pageX,j.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/
-2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");b.settings.onSelect=k;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);a.blockUI&&a.blockUI(this.dpDiv);a.data(this._dialogInput[0],"datepicker",b);return this},_destroyDatepicker:function(b){var h=
-a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();a.removeData(b,"datepicker");if(l=="input"){k.append.remove();k.trigger.remove();h.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(l=="div"||l=="span")h.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(b){var h=a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l=
-b.nodeName.toLowerCase();if(l=="input"){b.disabled=false;k.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().removeClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",false)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b?null:j})}},_disableDatepicker:function(b){var h=a(b),k=a.data(b,
-"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();if(l=="input"){b.disabled=true;k.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().addClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",true)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b?
-null:j});this._disabledInputs[this._disabledInputs.length]=b}},_isDisabledDatepicker:function(b){if(!b)return false;for(var h=0;h<this._disabledInputs.length;h++)if(this._disabledInputs[h]==b)return true;return false},_getInst:function(b){try{return a.data(b,"datepicker")}catch(h){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(b,h,k){var l=this._getInst(b);if(arguments.length==2&&typeof h=="string")return h=="defaults"?a.extend({},a.datepicker._defaults):l?h=="all"?
-a.extend({},l.settings):this._get(l,h):null;var j=h||{};if(typeof h=="string"){j={};j[h]=k}if(l){this._curInst==l&&this._hideDatepicker();var m=this._getDateDatepicker(b,true),n=this._getMinMaxDate(l,"min"),o=this._getMinMaxDate(l,"max");e(l.settings,j);if(n!==null&&j.dateFormat!==g&&j.minDate===g)l.settings.minDate=this._formatDate(l,n);if(o!==null&&j.dateFormat!==g&&j.maxDate===g)l.settings.maxDate=this._formatDate(l,o);this._attachments(a(b),l);this._autoSize(l);this._setDate(l,m);this._updateAlternate(l);
-this._updateDatepicker(l)}},_changeDatepicker:function(b,h,k){this._optionDatepicker(b,h,k)},_refreshDatepicker:function(b){(b=this._getInst(b))&&this._updateDatepicker(b)},_setDateDatepicker:function(b,h){var k=this._getInst(b);if(k){this._setDate(k,h);this._updateDatepicker(k);this._updateAlternate(k)}},_getDateDatepicker:function(b,h){var k=this._getInst(b);k&&!k.inline&&this._setDateFromField(k,h);return k?this._getDate(k):null},_doKeyDown:function(b){var h=a.datepicker._getInst(b.target),k=true,
-l=h.dpDiv.is(".ui-datepicker-rtl");h._keyEvent=true;if(a.datepicker._datepickerShowing)switch(b.keyCode){case 9:a.datepicker._hideDatepicker();k=false;break;case 13:k=a("td."+a.datepicker._dayOverClass+":not(."+a.datepicker._currentClass+")",h.dpDiv);k[0]&&a.datepicker._selectDay(b.target,h.selectedMonth,h.selectedYear,k[0]);if(b=a.datepicker._get(h,"onSelect")){k=a.datepicker._formatDate(h);b.apply(h.input?h.input[0]:null,[k,h])}else a.datepicker._hideDatepicker();return false;case 27:a.datepicker._hideDatepicker();
-break;case 33:a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(h,"stepBigMonths"):-a.datepicker._get(h,"stepMonths"),"M");break;case 34:a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(h,"stepBigMonths"):+a.datepicker._get(h,"stepMonths"),"M");break;case 35:if(b.ctrlKey||b.metaKey)a.datepicker._clearDate(b.target);k=b.ctrlKey||b.metaKey;break;case 36:if(b.ctrlKey||b.metaKey)a.datepicker._gotoToday(b.target);k=b.ctrlKey||b.metaKey;break;case 37:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,
-l?+1:-1,"D");k=b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(h,"stepBigMonths"):-a.datepicker._get(h,"stepMonths"),"M");break;case 38:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,-7,"D");k=b.ctrlKey||b.metaKey;break;case 39:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,l?-1:+1,"D");k=b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(h,"stepBigMonths"):
-+a.datepicker._get(h,"stepMonths"),"M");break;case 40:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,+7,"D");k=b.ctrlKey||b.metaKey;break;default:k=false}else if(b.keyCode==36&&b.ctrlKey)a.datepicker._showDatepicker(this);else k=false;if(k){b.preventDefault();b.stopPropagation()}},_doKeyPress:function(b){var h=a.datepicker._getInst(b.target);if(a.datepicker._get(h,"constrainInput")){h=a.datepicker._possibleChars(a.datepicker._get(h,"dateFormat"));var k=String.fromCharCode(b.charCode==g?
-b.keyCode:b.charCode);return b.ctrlKey||b.metaKey||k<" "||!h||h.indexOf(k)>-1}},_doKeyUp:function(b){b=a.datepicker._getInst(b.target);if(b.input.val()!=b.lastVal)try{if(a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,a.datepicker._getFormatConfig(b))){a.datepicker._setDateFromField(b);a.datepicker._updateAlternate(b);a.datepicker._updateDatepicker(b)}}catch(h){a.datepicker.log(h)}return true},_showDatepicker:function(b){b=b.target||b;if(b.nodeName.toLowerCase()!=
-"input")b=a("input",b.parentNode)[0];if(!(a.datepicker._isDisabledDatepicker(b)||a.datepicker._lastInput==b)){var h=a.datepicker._getInst(b);if(a.datepicker._curInst&&a.datepicker._curInst!=h){a.datepicker._curInst.dpDiv.stop(true,true);h&&a.datepicker._datepickerShowing&&a.datepicker._hideDatepicker(a.datepicker._curInst.input[0])}var k=a.datepicker._get(h,"beforeShow");k=k?k.apply(b,[b,h]):{};if(k!==false){e(h.settings,k);h.lastVal=null;a.datepicker._lastInput=b;a.datepicker._setDateFromField(h);
-if(a.datepicker._inDialog)b.value="";if(!a.datepicker._pos){a.datepicker._pos=a.datepicker._findPos(b);a.datepicker._pos[1]+=b.offsetHeight}var l=false;a(b).parents().each(function(){l|=a(this).css("position")=="fixed";return!l});if(l&&a.browser.opera){a.datepicker._pos[0]-=document.documentElement.scrollLeft;a.datepicker._pos[1]-=document.documentElement.scrollTop}k={left:a.datepicker._pos[0],top:a.datepicker._pos[1]};a.datepicker._pos=null;h.dpDiv.empty();h.dpDiv.css({position:"absolute",display:"block",
-top:"-1000px"});a.datepicker._updateDatepicker(h);k=a.datepicker._checkOffset(h,k,l);h.dpDiv.css({position:a.datepicker._inDialog&&a.blockUI?"static":l?"fixed":"absolute",display:"none",left:k.left+"px",top:k.top+"px"});if(!h.inline){k=a.datepicker._get(h,"showAnim");var j=a.datepicker._get(h,"duration"),m=function(){var n=h.dpDiv.find("iframe.ui-datepicker-cover");if(n.length){var o=a.datepicker._getBorders(h.dpDiv);n.css({left:-o[0],top:-o[1],width:h.dpDiv.outerWidth(),height:h.dpDiv.outerHeight()})}};
-h.dpDiv.zIndex(a(b).zIndex()+1);a.datepicker._datepickerShowing=true;if(a.effects&&(a.effects.effect[k]||a.effects[k]))h.dpDiv.show(k,a.datepicker._get(h,"showOptions"),j,m);else h.dpDiv[k||"show"](k?j:null,m);if(!k||!j)m();h.input.is(":visible")&&!h.input.is(":disabled")&&h.input.focus();a.datepicker._curInst=h}}}},_updateDatepicker:function(b){this.maxRows=4;var h=a.datepicker._getBorders(b.dpDiv);i=b;b.dpDiv.empty().append(this._generateHTML(b));var k=b.dpDiv.find("iframe.ui-datepicker-cover");
-k.length&&k.css({left:-h[0],top:-h[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()});b.dpDiv.find("."+this._dayOverClass+" a").mouseover();h=this._getNumberOfMonths(b);k=h[1];b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");k>1&&b.dpDiv.addClass("ui-datepicker-multi-"+k).css("width",17*k+"em");b.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");b.dpDiv[(this._get(b,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");
-b==a.datepicker._curInst&&a.datepicker._datepickerShowing&&b.input&&b.input.is(":visible")&&!b.input.is(":disabled")&&b.input[0]!=document.activeElement&&b.input.focus();if(b.yearshtml){var l=b.yearshtml;setTimeout(function(){l===b.yearshtml&&b.yearshtml&&b.dpDiv.find("select.ui-datepicker-year:first").replaceWith(b.yearshtml);l=b.yearshtml=null},0)}},_getBorders:function(b){var h=function(k){return{thin:1,medium:2,thick:3}[k]||k};return[parseFloat(h(b.css("border-left-width"))),parseFloat(h(b.css("border-top-width")))]},
-_checkOffset:function(b,h,k){var l=b.dpDiv.outerWidth(),j=b.dpDiv.outerHeight(),m=b.input?b.input.outerWidth():0,n=b.input?b.input.outerHeight():0,o=document.documentElement.clientWidth+a(document).scrollLeft(),p=document.documentElement.clientHeight+a(document).scrollTop();h.left-=this._get(b,"isRTL")?l-m:0;h.left-=k&&h.left==b.input.offset().left?a(document).scrollLeft():0;h.top-=k&&h.top==b.input.offset().top+n?a(document).scrollTop():0;h.left-=Math.min(h.left,h.left+l>o&&o>l?Math.abs(h.left+l-
-o):0);h.top-=Math.min(h.top,h.top+j>p&&p>j?Math.abs(j+n):0);return h},_findPos:function(b){for(var h=this._get(this._getInst(b),"isRTL");b&&(b.type=="hidden"||b.nodeType!=1||a.expr.filters.hidden(b));)b=b[h?"previousSibling":"nextSibling"];b=a(b).offset();return[b.left,b.top]},_hideDatepicker:function(b){var h=this._curInst;if(!(!h||b&&h!=a.data(b,"datepicker")))if(this._datepickerShowing){b=this._get(h,"showAnim");var k=this._get(h,"duration"),l=function(){a.datepicker._tidyDialog(h);this._curInst=
-null};if(a.effects&&(a.effects.effect[b]||a.effects[b]))h.dpDiv.hide(b,a.datepicker._get(h,"showOptions"),k,l);else h.dpDiv[b=="slideDown"?"slideUp":b=="fadeIn"?"fadeOut":"hide"](b?k:null,l);b||l();this._datepickerShowing=false;if(b=this._get(h,"onClose"))b.apply(h.input?h.input[0]:null,[h.input?h.input.val():"",h]);this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(a.blockUI){a.unblockUI();a("body").append(this.dpDiv)}}this._inDialog=false}},
-_tidyDialog:function(b){b.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(b){if(a.datepicker._curInst){b=a(b.target);var h=a.datepicker._getInst(b[0]);if(b[0].id!=a.datepicker._mainDivId&&b.parents("#"+a.datepicker._mainDivId).length==0&&!b.hasClass(a.datepicker.markerClassName)&&!b.hasClass(a.datepicker._triggerClass)&&a.datepicker._datepickerShowing&&!(a.datepicker._inDialog&&a.blockUI)||b.hasClass(a.datepicker.markerClassName)&&a.datepicker._curInst!=
-h)a.datepicker._hideDatepicker()}},_adjustDate:function(b,h,k){b=a(b);var l=this._getInst(b[0]);if(!this._isDisabledDatepicker(b[0])){this._adjustInstDate(l,h+(k=="M"?this._get(l,"showCurrentAtPos"):0),k);this._updateDatepicker(l)}},_gotoToday:function(b){b=a(b);var h=this._getInst(b[0]);if(this._get(h,"gotoCurrent")&&h.currentDay){h.selectedDay=h.currentDay;h.drawMonth=h.selectedMonth=h.currentMonth;h.drawYear=h.selectedYear=h.currentYear}else{var k=new Date;h.selectedDay=k.getDate();h.drawMonth=
-h.selectedMonth=k.getMonth();h.drawYear=h.selectedYear=k.getFullYear()}this._notifyChange(h);this._adjustDate(b)},_selectMonthYear:function(b,h,k){b=a(b);var l=this._getInst(b[0]);l["selected"+(k=="M"?"Month":"Year")]=l["draw"+(k=="M"?"Month":"Year")]=parseInt(h.options[h.selectedIndex].value,10);this._notifyChange(l);this._adjustDate(b)},_selectDay:function(b,h,k,l){var j=a(b);if(!(a(l).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay=
-a("a",l).html();j.selectedMonth=j.currentMonth=h;j.selectedYear=j.currentYear=k;this._selectDate(b,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(b){b=a(b);this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(b,h){var k=this._getInst(a(b)[0]);h=h!=null?h:this._formatDate(k);k.input&&k.input.val(h);this._updateAlternate(k);var l=this._get(k,"onSelect");if(l)l.apply(k.input?k.input[0]:null,[h,k]);else k.input&&k.input.trigger("change");if(k.inline)this._updateDatepicker(k);
-else{this._hideDatepicker();this._lastInput=k.input[0];typeof k.input[0]!="object"&&k.input.focus();this._lastInput=null}},_updateAlternate:function(b){var h=this._get(b,"altField");if(h){var k=this._get(b,"altFormat")||this._get(b,"dateFormat"),l=this._getDate(b),j=this.formatDate(k,l,this._getFormatConfig(b));a(h).each(function(){a(this).val(j)})}},noWeekends:function(b){b=b.getDay();return[b>0&&b<6,""]},iso8601Week:function(b){b=new Date(b.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var h=
-b.getTime();b.setMonth(0);b.setDate(1);return Math.floor(Math.round((h-b)/864E5)/7)+1},parseDate:function(b,h,k){if(b==null||h==null)throw"Invalid arguments";h=typeof h=="object"?h.toString():h+"";if(h=="")return null;var l=(k?k.shortYearCutoff:null)||this._defaults.shortYearCutoff;l=typeof l!="string"?l:(new Date).getFullYear()%100+parseInt(l,10);for(var j=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,m=(k?k.dayNames:null)||this._defaults.dayNames,n=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort,
-o=(k?k.monthNames:null)||this._defaults.monthNames,p=k=-1,q=-1,u=-1,s=false,r=function(y){(y=C+1<b.length&&b.charAt(C+1)==y)&&C++;return y},t=function(y){var D=r(y);y=h.substring(x).match(RegExp("^\\d{1,"+(y=="@"?14:y=="!"?20:y=="y"&&D?4:y=="o"?3:2)+"}"));if(!y)throw"Missing number at position "+x;x+=y[0].length;return parseInt(y[0],10)},v=function(y,D,J){y=a.map(r(y)?J:D,function(H,E){return[[E,H]]}).sort(function(H,E){return-(H[1].length-E[1].length)});var I=-1;a.each(y,function(H,E){var K=E[1];
-if(h.substr(x,K.length).toLowerCase()==K.toLowerCase()){I=E[0];x+=K.length;return false}});if(I!=-1)return I+1;else throw"Unknown name at position "+x;},w=function(){if(h.charAt(x)!=b.charAt(C))throw"Unexpected literal at position "+x;x++},x=0,C=0;C<b.length;C++)if(s)if(b.charAt(C)=="'"&&!r("'"))s=false;else w();else switch(b.charAt(C)){case "d":q=t("d");break;case "D":v("D",j,m);break;case "o":u=t("o");break;case "m":p=t("m");break;case "M":p=v("M",n,o);break;case "y":k=t("y");break;case "@":var A=
-new Date(t("@"));k=A.getFullYear();p=A.getMonth()+1;q=A.getDate();break;case "!":A=new Date((t("!")-this._ticksTo1970)/1E4);k=A.getFullYear();p=A.getMonth()+1;q=A.getDate();break;case "'":if(r("'"))w();else s=true;break;default:w()}if(x<h.length){j=h.substr(x);if(!/^\s+/.test(j))throw"Extra/unparsed characters found in date: "+j;}if(k==-1)k=(new Date).getFullYear();else if(k<100)k+=(new Date).getFullYear()-(new Date).getFullYear()%100+(k<=l?0:-100);if(u>-1){p=1;q=u;do{l=this._getDaysInMonth(k,p-1);
-if(q<=l)break;p++;q-=l}while(1)}A=this._daylightSavingAdjust(new Date(k,p-1,q));if(A.getFullYear()!=k||A.getMonth()+1!=p||A.getDate()!=q)throw"Invalid date";return A},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*864E9,formatDate:function(b,h,k){if(!h)return"";
-var l=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,j=(k?k.dayNames:null)||this._defaults.dayNames,m=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort;k=(k?k.monthNames:null)||this._defaults.monthNames;var n=function(r){(r=s+1<b.length&&b.charAt(s+1)==r)&&s++;return r},o=function(r,t,v){t=""+t;if(n(r))for(;t.length<v;)t="0"+t;return t},p=function(r,t,v,w){return n(r)?w[t]:v[t]},q="",u=false;if(h)for(var s=0;s<b.length;s++)if(u)if(b.charAt(s)=="'"&&!n("'"))u=false;else q+=b.charAt(s);
-else switch(b.charAt(s)){case "d":q+=o("d",h.getDate(),2);break;case "D":q+=p("D",h.getDay(),l,j);break;case "o":q+=o("o",Math.round(((new Date(h.getFullYear(),h.getMonth(),h.getDate())).getTime()-(new Date(h.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":q+=o("m",h.getMonth()+1,2);break;case "M":q+=p("M",h.getMonth(),m,k);break;case "y":q+=n("y")?h.getFullYear():(h.getYear()%100<10?"0":"")+h.getYear()%100;break;case "@":q+=h.getTime();break;case "!":q+=h.getTime()*1E4+this._ticksTo1970;
-break;case "'":if(n("'"))q+="'";else u=true;break;default:q+=b.charAt(s)}return q},_possibleChars:function(b){for(var h="",k=false,l=function(m){(m=j+1<b.length&&b.charAt(j+1)==m)&&j++;return m},j=0;j<b.length;j++)if(k)if(b.charAt(j)=="'"&&!l("'"))k=false;else h+=b.charAt(j);else switch(b.charAt(j)){case "d":case "m":case "y":case "@":h+="0123456789";break;case "D":case "M":return null;case "'":if(l("'"))h+="'";else k=true;break;default:h+=b.charAt(j)}return h},_get:function(b,h){return b.settings[h]!==
-g?b.settings[h]:this._defaults[h]},_setDateFromField:function(b,h){if(b.input.val()!=b.lastVal){var k=this._get(b,"dateFormat"),l=b.lastVal=b.input?b.input.val():null,j,m;j=m=this._getDefaultDate(b);var n=this._getFormatConfig(b);try{j=this.parseDate(k,l,n)||m}catch(o){this.log(o);l=h?"":l}b.selectedDay=j.getDate();b.drawMonth=b.selectedMonth=j.getMonth();b.drawYear=b.selectedYear=j.getFullYear();b.currentDay=l?j.getDate():0;b.currentMonth=l?j.getMonth():0;b.currentYear=l?j.getFullYear():0;this._adjustInstDate(b)}},
-_getDefaultDate:function(b){return this._restrictMinMax(b,this._determineDate(b,this._get(b,"defaultDate"),new Date))},_determineDate:function(b,h,k){var l=function(j){var m=new Date;m.setDate(m.getDate()+j);return m};if(h=(h=h==null||h===""?k:typeof h=="string"?function(j){try{return a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),j,a.datepicker._getFormatConfig(b))}catch(m){}var n=(j.toLowerCase().match(/^c/)?a.datepicker._getDate(b):null)||new Date,o=n.getFullYear(),p=n.getMonth();n=n.getDate();
-for(var q=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,u=q.exec(j);u;){switch(u[2]||"d"){case "d":case "D":n+=parseInt(u[1],10);break;case "w":case "W":n+=parseInt(u[1],10)*7;break;case "m":case "M":p+=parseInt(u[1],10);n=Math.min(n,a.datepicker._getDaysInMonth(o,p));break;case "y":case "Y":o+=parseInt(u[1],10);n=Math.min(n,a.datepicker._getDaysInMonth(o,p))}u=q.exec(j)}return new Date(o,p,n)}(h):typeof h=="number"?isNaN(h)?k:l(h):new Date(h.getTime()))&&h.toString()=="Invalid Date"?k:h){h.setHours(0);h.setMinutes(0);
-h.setSeconds(0);h.setMilliseconds(0)}return this._daylightSavingAdjust(h)},_daylightSavingAdjust:function(b){if(!b)return null;b.setHours(b.getHours()>12?b.getHours()+2:0);return b},_setDate:function(b,h,k){var l=!h,j=b.selectedMonth,m=b.selectedYear;h=this._restrictMinMax(b,this._determineDate(b,h,new Date));b.selectedDay=b.currentDay=h.getDate();b.drawMonth=b.selectedMonth=b.currentMonth=h.getMonth();b.drawYear=b.selectedYear=b.currentYear=h.getFullYear();if((j!=b.selectedMonth||m!=b.selectedYear)&&
-!k)this._notifyChange(b);this._adjustInstDate(b);if(b.input)b.input.val(l?"":this._formatDate(b))},_getDate:function(b){return!b.currentYear||b.input&&b.input.val()==""?null:this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay))},_generateHTML:function(b){var h=new Date;h=this._daylightSavingAdjust(new Date(h.getFullYear(),h.getMonth(),h.getDate()));var k=this._get(b,"isRTL"),l=this._get(b,"showButtonPanel"),j=this._get(b,"hideIfNoPrevNext"),m=this._get(b,"navigationAsDateFormat"),
-n=this._getNumberOfMonths(b),o=this._get(b,"showCurrentAtPos"),p=this._get(b,"stepMonths"),q=n[0]!=1||n[1]!=1,u=this._daylightSavingAdjust(!b.currentDay?new Date(9999,9,9):new Date(b.currentYear,b.currentMonth,b.currentDay)),s=this._getMinMaxDate(b,"min"),r=this._getMinMaxDate(b,"max");o=b.drawMonth-o;var t=b.drawYear;if(o<0){o+=12;t--}if(r){var v=this._daylightSavingAdjust(new Date(r.getFullYear(),r.getMonth()-n[0]*n[1]+1,r.getDate()));for(v=s&&v<s?s:v;this._daylightSavingAdjust(new Date(t,o,1))>
-v;){o--;if(o<0){o=11;t--}}}b.drawMonth=o;b.drawYear=t;v=this._get(b,"prevText");v=!m?v:this.formatDate(v,this._daylightSavingAdjust(new Date(t,o-p,1)),this._getFormatConfig(b));v=this._canAdjustMonth(b,-1,t,o)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._adjustDate('#"+b.id+"', -"+p+", 'M');\" title=\""+v+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"e":"w")+'">'+v+"</span></a>":j?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+
-v+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"e":"w")+'">'+v+"</span></a>";var w=this._get(b,"nextText");w=!m?w:this.formatDate(w,this._daylightSavingAdjust(new Date(t,o+p,1)),this._getFormatConfig(b));j=this._canAdjustMonth(b,+1,t,o)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._adjustDate('#"+b.id+"', +"+p+", 'M');\" title=\""+w+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"w":"e")+'">'+w+"</span></a>":j?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+
-w+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"w":"e")+'">'+w+"</span></a>";p=this._get(b,"currentText");w=this._get(b,"gotoCurrent")&&b.currentDay?u:h;p=!m?p:this.formatDate(p,w,this._getFormatConfig(b));m=!b.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+f+'.datepicker._hideDatepicker();">'+this._get(b,"closeText")+"</button>":"";l=l?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(k?m:"")+(this._isInRange(b,
-w)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._gotoToday('#"+b.id+"');\">"+p+"</button>":"")+(k?"":m)+"</div>":"";m=parseInt(this._get(b,"firstDay"),10);m=isNaN(m)?0:m;p=this._get(b,"showWeek");w=this._get(b,"dayNames");this._get(b,"dayNamesShort");var x=this._get(b,"dayNamesMin"),C=this._get(b,"monthNames"),A=this._get(b,"monthNamesShort"),y=this._get(b,"beforeShowDay"),D=this._get(b,"showOtherMonths"),
-J=this._get(b,"selectOtherMonths");this._get(b,"calculateWeek");for(var I=this._getDefaultDate(b),H="",E=0;E<n[0];E++){var K="";this.maxRows=4;for(var M=0;M<n[1];M++){var P=this._daylightSavingAdjust(new Date(t,o,b.selectedDay)),B=" ui-corner-all",F="";if(q){F+='<div class="ui-datepicker-group';if(n[1]>1)switch(M){case 0:F+=" ui-datepicker-group-first";B=" ui-corner-"+(k?"right":"left");break;case n[1]-1:F+=" ui-datepicker-group-last";B=" ui-corner-"+(k?"left":"right");break;default:F+=" ui-datepicker-group-middle";
-B=""}F+='">'}F+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+B+'">'+(/all|left/.test(B)&&E==0?k?j:v:"")+(/all|right/.test(B)&&E==0?k?v:j:"")+this._generateMonthYearHeader(b,o,t,s,r,E>0||M>0,C,A)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var G=p?'<th class="ui-datepicker-week-col">'+this._get(b,"weekHeader")+"</th>":"";for(B=0;B<7;B++){var z=(B+m)%7;G+="<th"+((B+m+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+w[z]+'">'+x[z]+"</span></th>"}F+=
-G+"</tr></thead><tbody>";G=this._getDaysInMonth(t,o);if(t==b.selectedYear&&o==b.selectedMonth)b.selectedDay=Math.min(b.selectedDay,G);B=(this._getFirstDayOfMonth(t,o)-m+7)%7;G=Math.ceil((B+G)/7);this.maxRows=G=q?this.maxRows>G?this.maxRows:G:G;z=this._daylightSavingAdjust(new Date(t,o,1-B));for(var Q=0;Q<G;Q++){F+="<tr>";var R=!p?"":'<td class="ui-datepicker-week-col">'+this._get(b,"calculateWeek")(z)+"</td>";for(B=0;B<7;B++){var N=y?y.apply(b.input?b.input[0]:null,[z]):[true,""],L=z.getMonth()!=
-o,O=L&&!J||!N[0]||s&&z<s||r&&z>r;R+='<td class="'+((B+m+6)%7>=5?" ui-datepicker-week-end":"")+(L?" ui-datepicker-other-month":"")+(z.getTime()==P.getTime()&&o==b.selectedMonth&&b._keyEvent||I.getTime()==z.getTime()&&I.getTime()==P.getTime()?" "+this._dayOverClass:"")+(O?" "+this._unselectableClass+" ui-state-disabled":"")+(L&&!D?"":" "+N[1]+(z.getTime()==u.getTime()?" "+this._currentClass:"")+(z.getTime()==h.getTime()?" ui-datepicker-today":""))+'"'+((!L||D)&&N[2]?' title="'+N[2]+'"':"")+(O?"":' onclick="DP_jQuery_'+
-f+".datepicker._selectDay('#"+b.id+"',"+z.getMonth()+","+z.getFullYear()+', this);return false;"')+">"+(L&&!D?"&#xa0;":O?'<span class="ui-state-default">'+z.getDate()+"</span>":'<a class="ui-state-default'+(z.getTime()==h.getTime()?" ui-state-highlight":"")+(z.getTime()==u.getTime()?" ui-state-active":"")+(L?" ui-priority-secondary":"")+'" href="#">'+z.getDate()+"</a>")+"</td>";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}F+=R+"</tr>"}o++;if(o>11){o=0;t++}F+="</tbody></table>"+(q?"</div>"+
-(n[0]>0&&M==n[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");K+=F}H+=K}H+=l+(a.browser.msie&&parseInt(a.browser.version,10)<7&&!b.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");b._keyEvent=false;return H},_generateMonthYearHeader:function(b,h,k,l,j,m,n,o){var p=this._get(b,"changeMonth"),q=this._get(b,"changeYear"),u=this._get(b,"showMonthAfterYear"),s='<div class="ui-datepicker-title">',r="";if(m||!p)r+='<span class="ui-datepicker-month">'+
-n[h]+"</span>";else{n=l&&l.getFullYear()==k;var t=j&&j.getFullYear()==k;r+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+f+".datepicker._selectMonthYear('#"+b.id+"', this, 'M');\" >";for(var v=0;v<12;v++)if((!n||v>=l.getMonth())&&(!t||v<=j.getMonth()))r+='<option value="'+v+'"'+(v==h?' selected="selected"':"")+">"+o[v]+"</option>";r+="</select>"}u||(s+=r+(m||!(p&&q)?"&#xa0;":""));if(!b.yearshtml){b.yearshtml="";if(m||!q)s+='<span class="ui-datepicker-year">'+k+"</span>";else{o=this._get(b,
-"yearRange").split(":");var w=(new Date).getFullYear();n=function(x){x=x.match(/c[+-].*/)?k+parseInt(x.substring(1),10):x.match(/[+-].*/)?w+parseInt(x,10):parseInt(x,10);return isNaN(x)?w:x};h=n(o[0]);o=Math.max(h,n(o[1]||""));h=l?Math.max(h,l.getFullYear()):h;o=j?Math.min(o,j.getFullYear()):o;for(b.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+f+".datepicker._selectMonthYear('#"+b.id+"', this, 'Y');\" >";h<=o;h++)b.yearshtml+='<option value="'+h+'"'+(h==k?' selected="selected"':
-"")+">"+h+"</option>";b.yearshtml+="</select>";s+=b.yearshtml;b.yearshtml=null}}s+=this._get(b,"yearSuffix");if(u)s+=(m||!(p&&q)?"&#xa0;":"")+r;s+="</div>";return s},_adjustInstDate:function(b,h,k){var l=b.drawYear+(k=="Y"?h:0),j=b.drawMonth+(k=="M"?h:0);h=Math.min(b.selectedDay,this._getDaysInMonth(l,j))+(k=="D"?h:0);l=this._restrictMinMax(b,this._daylightSavingAdjust(new Date(l,j,h)));b.selectedDay=l.getDate();b.drawMonth=b.selectedMonth=l.getMonth();b.drawYear=b.selectedYear=l.getFullYear();if(k==
-"M"||k=="Y")this._notifyChange(b)},_restrictMinMax:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");k=k&&h<k?k:h;return l&&k>l?l:k},_notifyChange:function(b){var h=this._get(b,"onChangeMonthYear");if(h)h.apply(b.input?b.input[0]:null,[b.selectedYear,b.selectedMonth+1,b])},_getNumberOfMonths:function(b){b=this._get(b,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(b,h){return this._determineDate(b,this._get(b,h+"Date"),null)},
-_getDaysInMonth:function(b,h){return 32-this._daylightSavingAdjust(new Date(b,h,32)).getDate()},_getFirstDayOfMonth:function(b,h){return(new Date(b,h,1)).getDay()},_canAdjustMonth:function(b,h,k,l){var j=this._getNumberOfMonths(b);k=this._daylightSavingAdjust(new Date(k,l+(h<0?h:j[0]*j[1]),1));h<0&&k.setDate(this._getDaysInMonth(k.getFullYear(),k.getMonth()));return this._isInRange(b,k)},_isInRange:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");return(!k||h.getTime()>=
-k.getTime())&&(!l||h.getTime()<=l.getTime())},_getFormatConfig:function(b){var h=this._get(b,"shortYearCutoff");h=typeof h!="string"?h:(new Date).getFullYear()%100+parseInt(h,10);return{shortYearCutoff:h,dayNamesShort:this._get(b,"dayNamesShort"),dayNames:this._get(b,"dayNames"),monthNamesShort:this._get(b,"monthNamesShort"),monthNames:this._get(b,"monthNames")}},_formatDate:function(b,h,k,l){if(!h){b.currentDay=b.selectedDay;b.currentMonth=b.selectedMonth;b.currentYear=b.selectedYear}h=h?typeof h==
-"object"?h:this._daylightSavingAdjust(new Date(l,k,h)):this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay));return this.formatDate(this._get(b,"dateFormat"),h,this._getFormatConfig(b))}});a.fn.datepicker=function(b){if(!this.length)return this;if(!a.datepicker.initialized){a(document).mousedown(a.datepicker._checkExternalClick).find("body").append(a.datepicker.dpDiv);a.datepicker.initialized=true}var h=Array.prototype.slice.call(arguments,1);if(typeof b=="string"&&(b=="isDisabled"||
-b=="getDate"||b=="widget"))return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(h));if(b=="option"&&arguments.length==2&&typeof arguments[1]=="string")return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(h));return this.each(function(){typeof b=="string"?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this].concat(h)):a.datepicker._attachDatepicker(this,b)})};a.datepicker=new d;a.datepicker.initialized=false;a.datepicker.uuid=(new Date).getTime();
-a.datepicker.version="1.9pre";window["DP_jQuery_"+f]=a})(jQuery);
-(function(a,g){var d={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},c={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};a.widget("ui.dialog",{version:"1.9pre",options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var f=a(this).css(e).offset().top;
-f<0&&a(this).css("top",e.top-f)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var e=this,f=e.options,i=f.title||"&#160;",b=a.ui.dialog.getTitleId(e.element),h=(e.uiDialog=a("<div>")).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+f.dialogClass).css({display:"none",outline:0,zIndex:f.zIndex}).attr("tabIndex",
--1).keydown(function(j){if(f.closeOnEscape&&!j.isDefaultPrevented()&&j.keyCode&&j.keyCode===a.ui.keyCode.ESCAPE){e.close(j);j.preventDefault()}}).attr({role:"dialog","aria-labelledby":b}).mousedown(function(j){e.moveToTop(false,j)}).appendTo("body");e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(h);var k=(e.uiDialogTitlebar=a("<div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(h),l=a("<a href='#'></a>").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
-"button").click(function(j){j.preventDefault();e.close(j)}).appendTo(k);(e.uiDialogTitlebarCloseText=a("<span>")).addClass("ui-icon ui-icon-closethick").text(f.closeText).appendTo(l);a("<span>").addClass("ui-dialog-title").attr("id",b).html(i).prependTo(k);k.find("*").add(k).disableSelection();this._hoverable(l);this._focusable(l);f.draggable&&a.fn.draggable&&e._makeDraggable();f.resizable&&a.fn.resizable&&e._makeResizable();e._createButtons(f.buttons);e._isOpen=false;a.fn.bgiframe&&h.bgiframe()},
-_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){this.overlay&&this.overlay.destroy();this.uiDialog.hide();this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();this.originalTitle&&this.element.attr("title",this.originalTitle)},widget:function(){return this.uiDialog},close:function(e){if(!this._isOpen)return f;var f=this,i,b;if(false!==f._trigger("beforeClose",e)){f._isOpen=false;f.overlay&&f.overlay.destroy();f.uiDialog.unbind("keypress.ui-dialog");
-if(f.options.hide)f.uiDialog.hide(f.options.hide,function(){f._trigger("close",e)});else{f.uiDialog.hide();f._trigger("close",e)}a.ui.dialog.overlay.resize();if(f.options.modal){i=0;a(".ui-dialog").each(function(){if(this!==f.uiDialog[0]){b=a(this).css("z-index");isNaN(b)||(i=Math.max(i,b))}});a.ui.dialog.maxZ=i}return f}},isOpen:function(){return this._isOpen},moveToTop:function(e,f){var i=this.options;if(i.modal&&!e||!i.stack&&!i.modal)return this._trigger("focus",f);if(i.zIndex>a.ui.dialog.maxZ)a.ui.dialog.maxZ=
-i.zIndex;if(this.overlay){a.ui.dialog.maxZ+=1;a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ;this.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ)}i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()};a.ui.dialog.maxZ+=1;this.uiDialog.css("z-index",a.ui.dialog.maxZ);this.element.attr(i);this._trigger("focus",f);return this},open:function(){if(!this._isOpen){var e=this.options,f=this.uiDialog;this._size();this._position(e.position);f.show(e.show);this.overlay=e.modal?new a.ui.dialog.overlay(this):
-null;this.moveToTop(true);e.modal&&f.bind("keydown.ui-dialog",function(i){if(i.keyCode===a.ui.keyCode.TAB){var b=a(":tabbable",this),h=b.filter(":first");b=b.filter(":last");if(i.target===b[0]&&!i.shiftKey){h.focus(1);return false}else if(i.target===h[0]&&i.shiftKey){b.focus(1);return false}}});e=this.element.find(":tabbable");if(!e.length){e=f.find(".ui-dialog-buttonpane :tabbable");e.length||(e=f)}e.eq(0).focus();this._isOpen=true;this._trigger("open");return this}},_createButtons:function(e){var f=
-this,i=false;f.uiDialog.find(".ui-dialog-buttonpane").remove();typeof e==="object"&&e!==null&&a.each(e,function(){return!(i=true)});if(i){var b=a("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),h=a("<div>").addClass("ui-dialog-buttonset").appendTo(b);a.each(e,function(k,l){l=a.isFunction(l)?{click:l,text:k}:l;var j=a("<button type='button'>").attr(l,true).unbind("click").click(function(){l.click.apply(f.element[0],arguments)}).appendTo(h);a.fn.button&&j.button()});
-f.uiDialog.addClass("ui-dialog-buttons");b.appendTo(f.uiDialog)}else f.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function e(h){return{position:h.position,offset:h.offset}}var f=this,i=f.options,b=a(document);f.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(h,k){a(this).addClass("ui-dialog-dragging");f._trigger("dragStart",h,e(k))},drag:function(h,k){f._trigger("drag",h,e(k))},
-stop:function(h,k){i.position=[k.position.left-b.scrollLeft(),k.position.top-b.scrollTop()];a(this).removeClass("ui-dialog-dragging");f._trigger("dragStop",h,e(k));a.ui.dialog.overlay.resize()}})},_makeResizable:function(e){function f(k){return{originalPosition:k.originalPosition,originalSize:k.originalSize,position:k.position,size:k.size}}e=e===g?this.options.resizable:e;var i=this,b=i.options,h=i.uiDialog.css("position");e=typeof e==="string"?e:"n,e,s,w,se,sw,ne,nw";i.uiDialog.resizable({cancel:".ui-dialog-content",
-containment:"document",alsoResize:i.element,maxWidth:b.maxWidth,maxHeight:b.maxHeight,minWidth:b.minWidth,minHeight:i._minHeight(),handles:e,start:function(k,l){a(this).addClass("ui-dialog-resizing");i._trigger("resizeStart",k,f(l))},resize:function(k,l){i._trigger("resize",k,f(l))},stop:function(k,l){a(this).removeClass("ui-dialog-resizing");b.height=a(this).height();b.width=a(this).width();i._trigger("resizeStop",k,f(l));a.ui.dialog.overlay.resize()}}).css("position",h).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},
-_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(e){var f=[],i=[0,0],b;if(e){if(typeof e==="string"||typeof e==="object"&&"0"in e){f=e.split?e.split(" "):[e[0],e[1]];if(f.length===1)f[1]=f[0];a.each(["left","top"],function(h,k){if(+f[h]===f[h]){i[h]=f[h];f[h]=k}});e={my:f.join(" "),at:f.join(" "),offset:i.join(" ")}}e=a.extend({},a.ui.dialog.prototype.options.position,e)}else e=a.ui.dialog.prototype.options.position;(b=
-this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.position(e);b||this.uiDialog.hide()},_setOptions:function(e){var f=this,i={},b=false;a.each(e,function(h,k){f._setOption(h,k);if(h in d)b=true;if(h in c)i[h]=k});b&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",i)},_setOption:function(e,f){var i=this.uiDialog;switch(e){case "buttons":this._createButtons(f);break;case "closeText":this.uiDialogTitlebarCloseText.text(""+f);break;case "dialogClass":i.removeClass(this.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+
-f);break;case "disabled":f?i.addClass("ui-dialog-disabled"):i.removeClass("ui-dialog-disabled");break;case "draggable":var b=i.is(":data(draggable)");b&&!f&&i.draggable("destroy");!b&&f&&this._makeDraggable();break;case "position":this._position(f);break;case "resizable":(b=i.is(":data(resizable)"))&&!f&&i.resizable("destroy");b&&typeof f==="string"&&i.resizable("option","handles",f);!b&&f!==false&&this._makeResizable(f);break;case "title":a(".ui-dialog-title",this.uiDialogTitlebar).html(""+(f||"&#160;"))}this._super("_setOption",
-e,f)},_size:function(){var e=this.options,f,i,b=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(e.minWidth>e.width)e.width=e.minWidth;f=this.uiDialog.css({height:"auto",width:e.width}).height();i=Math.max(0,e.minHeight-f);if(e.height==="auto")if(a.support.minHeight)this.element.css({minHeight:i,height:"auto"});else{this.uiDialog.show();e=this.element.css("height","auto").height();b||this.uiDialog.hide();this.element.height(Math.max(e,i))}else this.element.height(Math.max(e.height-
-f,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});a.extend(a.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){e=e.attr("id");if(!e){this.uuid+=1;e=this.uuid}return"ui-dialog-title-"+e},overlay:function(e){this.$el=a.ui.dialog.overlay.create(e)}});a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===
-0){setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(i){if(a(i.target).zIndex()<a.ui.dialog.overlay.maxZ)return false})},1);a(document).bind("keydown.dialog-overlay",function(i){if(e.options.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===a.ui.keyCode.ESCAPE){e.close(i);i.preventDefault()}});a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize)}var f=(this.oldInstances.pop()||a("<div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
-height:this.height()});a.fn.bgiframe&&f.bgiframe();this.instances.push(f);return f},destroy:function(e){var f=a.inArray(e,this.instances);f!==-1&&this.oldInstances.push(this.instances.splice(f,1)[0]);this.instances.length===0&&a([document,window]).unbind(".dialog-overlay");e.height(0).width(0).remove();var i=0;a.each(this.instances,function(){i=Math.max(i,this.css("z-index"))});this.maxZ=i},height:function(){var e,f;if(a.browser.msie){e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
-f=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return e<f?a(window).height()+"px":e+"px"}else return a(document).height()+"px"},width:function(){var e,f;if(a.browser.msie){e=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);f=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return e<f?a(window).width()+"px":e+"px"}else return a(document).width()+"px"},resize:function(){var e=a([]);a.each(a.ui.dialog.overlay.instances,function(){e=
-e.add(this)});e.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}});a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-(function(a){var g=0;a.widget("ui.menu",{version:"1.9pre",defaultElement:"<ul>",delay:150,options:{items:"ul",position:{my:"left top",at:"right top"}},_create:function(){this.activeMenu=this.element;this.isScrolling=false;this.menuId=this.element.attr("id")||"ui-menu-"+g++;this.element.find(".ui-icon").length&&this.element.addClass("ui-menu-icons");this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({id:this.menuId,role:"menu"}).bind("click.menu",a.proxy(function(d){this.options.disabled&&
-d.preventDefault()},this));this._bind({"click .ui-menu-item:has(a)":function(d){d.stopImmediatePropagation();var c=a(d.currentTarget);if(!this.active||this.active[0]!==c[0])this.focus(d,c);this.select(d)},"mouseover .ui-menu-item":function(d){d.stopImmediatePropagation();if(!this.isScrolling){var c=a(d.currentTarget);c.siblings().children(".ui-state-active").removeClass("ui-state-active");this.focus(d,c)}this.isScrolling=false},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll","mouseout .ui-menu-item":"blur",
-focus:function(d){this.focus(d,a(d.target).children(".ui-menu-item:first"))},blur:function(d){this._delay(function(){a.contains(this.element[0],document.activeElement)||this.collapseAll(d)},0)},scroll:function(){this.isScrolling=true}});this.refresh();this.element.attr("tabIndex",0);this._bind({keydown:function(d){switch(d.keyCode){case a.ui.keyCode.PAGE_UP:this.previousPage(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.PAGE_DOWN:this.nextPage(d);d.preventDefault();d.stopImmediatePropagation();
-break;case a.ui.keyCode.HOME:this._move("first","first",d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.END:this._move("last","last",d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.UP:this.previous(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.DOWN:this.next(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.LEFT:this.collapse(d)&&d.stopImmediatePropagation();d.preventDefault();break;case a.ui.keyCode.RIGHT:this.expand(d)&&
-d.stopImmediatePropagation();d.preventDefault();break;case a.ui.keyCode.ENTER:if(this.active.children("a[aria-haspopup='true']").length)this.expand(d)&&d.stopImmediatePropagation();else{this.select(d);d.stopImmediatePropagation()}d.preventDefault();break;case a.ui.keyCode.ESCAPE:this.collapse(d)&&d.stopImmediatePropagation();d.preventDefault();break;default:d.stopPropagation();clearTimeout(this.filterTimer);var c;c=this.previousFilter||"";var e=String.fromCharCode(d.keyCode),f=false;if(e==c)f=true;
-else e=c+e;var i=function(b){return b.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")};c=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+i(e),"i").test(a(this).children("a").text())});c=f&&c.index(this.active.next())!=-1?this.active.nextAll(".ui-menu-item"):c;if(!c.length){e=String.fromCharCode(d.keyCode);c=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+i(e),"i").test(a(this).children("a").text())})}if(c.length){this.focus(d,c);if(c.length>1){this.previousFilter=
-e;this.filterTimer=this._delay(function(){delete this.previousFilter},1E3)}else delete this.previousFilter}else delete this.previousFilter}}});this._bind(document,{click:function(d){a(d.target).closest(".ui-menu").length||this.collapseAll(d)}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").show();
-this.element.find(".ui-menu-item").unbind(".menu").removeClass("ui-menu-item").removeAttr("role").children("a").removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").removeAttr("id").children(".ui-icon").remove()},refresh:function(){var d=this.element.find(this.options.items+":not( .ui-menu )").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr("role","menu").hide().attr("aria-hidden","true").attr("aria-expanded","false"),
-c=this.menuId;d.add(this.element).children(":not( .ui-menu-item ):has( a )").addClass("ui-menu-item").attr("role","presentation").children("a").addClass("ui-corner-all").attr("tabIndex",-1).attr("role","menuitem").attr("id",function(e){return c+"-"+e});d.each(function(){var e=a(this),f=e.prev("a");f.attr("aria-haspopup","true").prepend('<span class="ui-menu-icon ui-icon ui-icon-carat-1-e"></span>');e.attr("aria-labelledby",f.attr("id"))})},focus:function(d,c){this.blur(d);if(this._hasScroll()){var e=
-parseFloat(a.curCSS(this.activeMenu[0],"borderTopWidth",true))||0,f=parseFloat(a.curCSS(this.activeMenu[0],"paddingTop",true))||0;e=c.offset().top-this.activeMenu.offset().top-e-f;f=this.activeMenu.scrollTop();var i=this.activeMenu.height(),b=c.height();if(e<0)this.activeMenu.scrollTop(f+e);else e+b>i&&this.activeMenu.scrollTop(f+e-i+b)}this.active=c.first().children("a").addClass("ui-state-focus").end();this.element.attr("aria-activedescendant",this.active.children("a").attr("id"));this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active");
-this.timer=this._delay(function(){this._close()},this.delay);e=a("> .ui-menu",c);e.length&&/^mouse/.test(d.type)&&this._startOpening(e);this.activeMenu=c.parent();this._trigger("focus",d,{item:c})},blur:function(d){if(this.active){clearTimeout(this.timer);this.active.children("a").removeClass("ui-state-focus");this.active=null;this._trigger("blur",d,{item:this.active})}},_startOpening:function(d){clearTimeout(this.timer);if(d.attr("aria-hidden")==="true")this.timer=this._delay(function(){this._close();
-this._open(d)},this.delay)},_open:function(d){clearTimeout(this.timer);this.element.find(".ui-menu").not(d.parents()).hide().attr("aria-hidden","true");var c=a.extend({},{of:this.active},a.type(this.options.position)=="function"?this.options.position(this.active):this.options.position);d.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(c)},collapseAll:function(d,c){var e=c?this.element:a(d&&d.target).closest(this.element.find(".ui-menu"));if(!e.length)e=this.element;this._close(e);
-this.blur(d);this.activeMenu=e},_close:function(d){d||(d=this.active?this.active.parent():this.element);d.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(d){var c=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(c&&c.length){this._close();this.focus(d,c);return true}},expand:function(d){var c=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();
-if(c&&c.length){this._open(c.parent());this._delay(function(){this.focus(d,c)},20);return true}},next:function(d){this._move("next","first",d)},previous:function(d){this._move("prev","last",d)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(d,c,e){if(this.active){d=d==="first"||d==="last"?this.active[d==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[d+
-"All"](".ui-menu-item").eq(0);d.length?this.focus(e,d):this.focus(e,this.activeMenu.children(".ui-menu-item")[c]())}else this.focus(e,this.activeMenu.children(".ui-menu-item")[c]())},nextPage:function(d){if(this._hasScroll())if(this.active){if(!this.last()){var c=this.active.offset().top,e=this.element.height(),f;this.active.nextAll(".ui-menu-item").each(function(){f=a(this);return a(this).offset().top-c-e<0});this.focus(d,f)}}else this.focus(d,this.activeMenu.children(".ui-menu-item").first());else this.focus(d,
-this.activeMenu.children(".ui-menu-item")[!this.active?"first":"last"]())},previousPage:function(d){if(this._hasScroll())if(this.active){if(!this.first()){var c=this.active.offset().top,e=this.element.height(),f;this.active.prevAll(".ui-menu-item").each(function(){f=a(this);return a(this).offset().top-c+e>0});this.focus(d,f)}}else this.focus(d,this.activeMenu.children(".ui-menu-item").first());else this.focus(d,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.height()<
-this.element.prop("scrollHeight")},select:function(d){var c={item:this.active};this.collapseAll(d,true);this._trigger("select",d,c)}})})(jQuery);
-(function(a){a.widget("ui.menubar",{version:"1.9pre",options:{autoExpand:false,buttons:false,menuIcon:false,position:{my:"left top",at:"left bottom"}},_create:function(){var g=this,d=this.items=this.element.children("li").addClass("ui-menubar-item").attr("role","presentation").children("button, a");d.slice(1).attr("tabIndex",-1);this.element.addClass("ui-menubar ui-widget-header ui-helper-clearfix").attr("role","menubar");this._focusable(d);this._hoverable(d);d.next("ul").menu({position:{within:this.options.position.within},
-select:function(c,e){e.item.parents("ul.ui-menu:last").hide();g._close();a(c.target).prev().focus();g._trigger("select",c,e)}}).hide().attr({"aria-hidden":"true","aria-expanded":"false"}).bind("keydown.menubar",function(c){if(!a(this).is(":hidden"))switch(c.keyCode){case a.ui.keyCode.LEFT:g._left(c);c.preventDefault();break;case a.ui.keyCode.RIGHT:g._right(c);c.preventDefault()}});d.each(function(){var c=a(this),e=c.next("ul");c.bind("click.menubar focus.menubar mouseenter.menubar",function(f){if(!(f.type==
-"focus"&&!f.originalEvent)){f.preventDefault();if(f.type=="click"&&e.is(":visible")&&g.active&&g.active[0]==e[0])g._close();else if(g.open&&f.type=="mouseenter"||f.type=="click"||g.options.autoExpand){g.options.autoExpand&&clearTimeout(g.closeTimer);g._open(f,e)}}}).bind("keydown",function(f){switch(f.keyCode){case a.ui.keyCode.SPACE:case a.ui.keyCode.UP:case a.ui.keyCode.DOWN:g._open(f,a(this).next());f.preventDefault();break;case a.ui.keyCode.LEFT:g._prev(f,a(this));f.preventDefault();break;case a.ui.keyCode.RIGHT:g._next(f,
-a(this));f.preventDefault()}}).addClass("ui-button ui-widget ui-button-text-only ui-menubar-link").attr("role","menuitem").attr("aria-haspopup","true").wrapInner("<span class='ui-button-text'></span>");if(g.options.menuIcon){c.addClass("ui-state-default").append("<span class='ui-button-icon-secondary ui-icon ui-icon-triangle-1-s'></span>");c.removeClass("ui-button-text-only").addClass("ui-button-text-icon-secondary")}g.options.buttons||c.addClass("ui-menubar-link").removeClass("ui-state-default")});
-g._bind({keydown:function(c){if(c.keyCode==a.ui.keyCode.ESCAPE&&g.active&&g.active.menu("collapse",c)!==true){var e=g.active;g.active.blur();g._close(c);e.prev().focus()}},focusin:function(){clearTimeout(g.closeTimer)},focusout:function(c){g.closeTimer=setTimeout(function(){g._close(c)},150)},"mouseleave .ui-menubar-item":function(c){if(g.options.autoExpand)g.closeTimer=setTimeout(function(){g._close(c)},150)},"mouseenter .ui-menubar-item":function(){clearTimeout(g.closeTimer)}})},_destroy:function(){var g=
-this.element.children("li").removeClass("ui-menubar-item").removeAttr("role").children("button, a");this.element.removeClass("ui-menubar ui-widget-header ui-helper-clearfix").removeAttr("role").unbind(".menubar");g.unbind(".menubar").removeClass("ui-button ui-widget ui-button-text-only ui-menubar-link ui-state-default").removeAttr("role").removeAttr("aria-haspopup").children("span.ui-button-text").each(function(){var d=a(this);d.parent().html(d.html())}).end().children(".ui-icon").remove();this.element.find(":ui-menu").menu("destroy").show().removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("tabindex").unbind(".menubar")},
-_close:function(){if(this.active&&this.active.length){this.active.menu("collapseAll").hide().attr({"aria-hidden":"true","aria-expanded":"false"});this.active.prev().removeClass("ui-state-active").removeAttr("tabIndex");this.active=null;this.open=false}},_open:function(g,d){if(!(this.active&&this.active[0]==d[0])){if(this.active){this.active.menu("collapseAll").hide().attr({"aria-hidden":"true","aria-expanded":"false"});this.active.prev().removeClass("ui-state-active")}var c=d.prev().addClass("ui-state-active").attr("tabIndex",
--1);this.active=d.show().position(a.extend({of:c},this.options.position)).removeAttr("aria-hidden").attr("aria-expanded","true").menu("focus",g,d.children("li").first()).focus().focusin();this.open=true}},_prev:function(g,d){d.attr("tabIndex",-1);var c=d.parent().prevAll("li").children(".ui-button").eq(0);c.length?c.removeAttr("tabIndex")[0].focus():this.element.children("li:last").children(".ui-button:last").removeAttr("tabIndex")[0].focus()},_next:function(g,d){d.attr("tabIndex",-1);var c=d.parent().nextAll("li").children(".ui-button").eq(0);
-c.length?c.removeAttr("tabIndex")[0].focus():this.element.children("li:first").children(".ui-button:first").removeAttr("tabIndex")[0].focus()},_left:function(g){var d=this.active.parent().prevAll("li:eq(0)").children(".ui-menu").eq(0);d.length||(d=this.element.children("li:last").children(".ui-menu:first"));this._open(g,d)},_right:function(g){var d=this.active.parent().nextAll("li:eq(0)").children(".ui-menu").eq(0);d.length||(d=this.element.children("li:first").children(".ui-menu:first"));this._open(g,
-d)}})})(jQuery);
-(function(a){var g=0;a.widget("ui.popup",{version:"1.9pre",options:{position:{my:"left top",at:"left bottom"},show:{effect:"slideDown",duration:"fast"},hide:{effect:"fadeOut",duration:"fast"}},_create:function(){if(!this.options.trigger)this.options.trigger=this.element.prev();if(!this.element.attr("id")){this.element.attr("id","ui-popup-"+g++);this.generatedId=true}if(!this.element.attr("role")){this.element.attr("role","dialog");this.generatedRole=true}this.options.trigger.attr("aria-haspopup","true").attr("aria-owns",
-this.element.attr("id"));this.element.addClass("ui-popup");this._beforeClose();this.element.hide();this._bind(this.options.trigger,{keydown:function(d){a.ui.button&&this.options.trigger.is("a:ui-button")&&d.keyCode==a.ui.keyCode.SPACE&&d.preventDefault();d.keyCode==a.ui.keyCode.SPACE&&this.options.trigger.is("a:not(:ui-button)")&&this.options.trigger.trigger("click",d);if(d.keyCode==a.ui.keyCode.DOWN){d.preventDefault();this.options.trigger.trigger("click",d)}},click:function(d){d.preventDefault();
-if(!this.isOpen){clearTimeout(this.closeTimer);this._delay(function(){this.open(d)},1)}}});if(!a.ui.menu||!this.element.is(":ui-menu"))this._bind({keydown:function(d){if(d.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this.element),e=c.first();c=c.last();if(d.target===c[0]&&!d.shiftKey){e.focus(1);d.preventDefault()}else if(d.target===e[0]&&d.shiftKey){c.focus(1);d.preventDefault()}}}});this._bind({keyup:function(d){if(d.keyCode==a.ui.keyCode.ESCAPE&&this.element.is(":visible")){this.close(d);this.options.trigger.focus()}}});
-this._bind(document,{click:function(d){this.isOpen&&!a(d.target).closest(".ui-popup").length&&this.close(d)}})},_destroy:function(){this.element.show().removeClass("ui-popup").removeAttr("aria-hidden").removeAttr("aria-expanded").unbind("keypress.ui-popup");this.options.trigger.removeAttr("aria-haspopup").removeAttr("aria-owns");this.generatedId&&this.element.removeAttr("id");this.generatedRole&&this.element.removeAttr("role")},open:function(d){var c=a.extend({},{of:this.options.trigger},this.options.position);
-this._show(this.element,this.options.show);this.element.attr("aria-hidden","false").attr("aria-expanded","true").position(c);if(a.ui.menu&&this.element.is(":ui-menu")){this.element.menu("focus",d,this.element.children("li").first());this.element.focus()}else{c=this.element.find(":tabbable");this.removeTabIndex=false;if(!c.length){if(!this.element.is(":tabbable")){this.element.attr("tabindex","0");this.removeTabIndex=true}c=c.add(this.element[0])}c.first().focus(1)}this.options.trigger.attr("tabindex",
--1);this.isOpen=true;this._trigger("open",d)},close:function(d){this._beforeClose();this._hide(this.element,this.options.hide);this.options.trigger.attr("tabindex",0);this.removeTabIndex&&this.element.removeAttr("tabindex");this.isOpen=false;this._trigger("close",d)},_beforeClose:function(){this.element.attr("aria-hidden","true").attr("aria-expanded","false")}})})(jQuery);
-(function(a,g){a.ui=a.ui||{};var d=/left|center|right/,c=/top|center|bottom/,e=/[+-]\d+%?/,f=/^\w+/,i=/%$/,b=a.fn.position;a.position={scrollbarWidth:function(){var h,k,l=a("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>");k=l.children()[0];a("body").append(l);h=k.offsetWidth;l.css("overflow","scroll");k=k.offsetWidth;if(h===k)k=l[0].clientWidth;l.remove();return h-k},getScrollInfo:function(h){var k=h[0]!==window,l=k?h.css("overflow-x"):
-"";k=k?h.css("overflow-y"):"";l=l==="auto"||l==="scroll"?a.position.scrollbarWidth():0;k=k==="auto"||k==="scroll"?a.position.scrollbarWidth():0;return{height:h.height()<h[0].scrollHeight?k:0,width:h.width()<h[0].scrollWidth?l:0}}};a.fn.position=function(h){if(!h||!h.of)return b.apply(this,arguments);h=a.extend({},h);var k=a(h.of),l=a(h.within||window),j=k[0],m=(h.collision||"flip").split(" "),n={},o,p,q,u;if(j.nodeType===9){p=k.width();q=k.height();u={top:0,left:0}}else if(a.isWindow(j)){p=k.width();
-q=k.height();u={top:k.scrollTop(),left:k.scrollLeft()}}else if(j.preventDefault){h.at="left top";p=q=0;u={top:h.of.pageY,left:h.of.pageX}}else{p=k.outerWidth();q=k.outerHeight();u=k.offset()}a.each(["my","at"],function(){var s=(h[this]||"").split(" "),r,t;if(s.length===1)s=d.test(s[0])?s.concat(["center"]):c.test(s[0])?["center"].concat(s):["center","center"];s[0]=d.test(s[0])?s[0]:"center";s[1]=c.test(s[1])?s[1]:"center";r=e.exec(s[0]);t=e.exec(s[1]);n[this]=[r?r[0]:0,t?t[0]:0];h[this]=[f.exec(s[0])[0],
-f.exec(s[1])[0]]});if(m.length===1)m[1]=m[0];if(h.at[0]==="right")u.left+=p;else if(h.at[0]==="center")u.left+=p/2;if(h.at[1]==="bottom")u.top+=q;else if(h.at[1]==="center")u.top+=q/2;o=[parseInt(n.at[0],10)*(i.test(n.at[0])?p/100:1),parseInt(n.at[1],10)*(i.test(n.at[1])?q/100:1)];u.left+=o[0];u.top+=o[1];return this.each(function(){var s=a(this),r=s.outerWidth(),t=s.outerHeight(),v=parseInt(a.curCSS(this,"marginLeft",true))||0,w=parseInt(a.curCSS(this,"marginTop",true))||0,x=a.position.getScrollInfo(l),
-C=r+v+(parseInt(a.curCSS(this,"marginRight",true))||0)+x.width,A=t+w+(parseInt(a.curCSS(this,"marginBottom",true))||0)+x.height,y=a.extend({},u),D=[parseInt(n.my[0],10)*(i.test(n.my[0])?s.outerWidth()/100:1),parseInt(n.my[1],10)*(i.test(n.my[1])?s.outerHeight()/100:1)],J;if(h.my[0]==="right")y.left-=r;else if(h.my[0]==="center")y.left-=r/2;if(h.my[1]==="bottom")y.top-=t;else if(h.my[1]==="center")y.top-=t/2;y.left+=D[0];y.top+=D[1];J={marginLeft:v,marginTop:w};a.each(["left","top"],function(I,H){if(a.ui.position[m[I]])a.ui.position[m[I]][H](y,
-{targetWidth:p,targetHeight:q,elemWidth:r,elemHeight:t,collisionPosition:J,collisionWidth:C,collisionHeight:A,offset:[o[0]+D[0],o[1]+D[1]],my:h.my,at:h.at,within:l,elem:s})});a.fn.bgiframe&&s.bgiframe();s.offset(a.extend(y,{using:h.using}))})};a.ui.position={fit:{left:function(h,k){var l=k.within,j=a(window),m=a.isWindow(k.within[0]),n=m?j.scrollLeft():l.offset().left;j=m?j.width():l.outerWidth();m=h.left-k.collisionPosition.marginLeft;l=n-m;var o=m+k.collisionWidth-j-n;if(k.collisionWidth>j)if(l>
-0&&o<=0){n=h.left+l+k.collisionWidth-j-n;h.left+=l-n}else h.left=o>0&&l<=0?n:l>o?n+j-k.collisionWidth:n;else if(l>0)h.left+=l;else if(o>0)h.left-=o;else h.left=Math.max(h.left-m,h.left)},top:function(h,k){var l=k.within,j=a(window),m=a.isWindow(k.within[0]),n=m?j.scrollTop():l.offset().top;j=m?j.height():l.outerHeight();m=h.top-k.collisionPosition.marginTop;l=n-m;var o=m+k.collisionHeight-j-n;if(k.collisionHeight>j)if(l>0&&o<=0){n=h.top+l+k.collisionHeight-j-n;h.top+=l-n}else h.top=o>0&&l<=0?n:l>
-o?n+j-k.collisionHeight:n;else if(l>0)h.top+=l;else if(o>0)h.top-=o;else h.top=Math.max(h.top-m,h.top)}},flip:{left:function(h,k){if(k.at[0]!=="center"){k.elem.removeClass("ui-flipped-left ui-flipped-right");var l=k.within;a(window);var j=a.isWindow(k.within[0]),m=(j?0:l.offset().left)+l.scrollLeft(),n=j?l.width():l.outerWidth();j=h.left-k.collisionPosition.marginLeft;l=j-m;var o=j+k.collisionWidth-n-m;j=k.my[0]==="left"?-k.elemWidth:k.my[0]==="right"?k.elemWidth:0;var p=k.at[0]==="left"?k.targetWidth:
--k.targetWidth,q=-2*k.offset[0];if(l<0){m=h.left+j+p+q+k.collisionWidth-n-m;if(m<0||m<Math.abs(l)){k.elem.addClass("ui-flipped-right");h.left+=j+p+q}}else if(o>0){m=h.left-k.collisionPosition.marginLeft+j+p+q-m;if(m>0||Math.abs(m)<o){k.elem.addClass("ui-flipped-left");h.left+=j+p+q}}}},top:function(h,k){if(k.at[1]!=="center"){k.elem.removeClass("ui-flipped-top ui-flipped-bottom");var l=k.within;a(window);var j=a.isWindow(k.within[0]),m=(j?0:l.offset().top)+l.scrollTop(),n=j?l.height():l.outerHeight();
-j=h.top-k.collisionPosition.marginTop;l=j-m;var o=j+k.collisionHeight-n-m;j=k.my[1]==="top"?-k.elemHeight:k.my[1]==="bottom"?k.elemHeight:0;var p=k.at[1]==="top"?k.targetHeight:-k.targetHeight,q=-2*k.offset[1];if(l<0){m=h.top+j+p+q+k.collisionHeight-n-m;if(h.top+j+p+q>l&&(m<0||m<Math.abs(l))){k.elem.addClass("ui-flipped-bottom");h.top+=j+p+q}}else if(o>0){m=h.top-k.collisionPosition.marginTop+j+p+q-m;if(h.top+j+p+q>o&&(m>0||Math.abs(m)<o)){k.elem.addClass("ui-flipped-top");h.top+=j+p+q}}}}},flipfit:{left:function(){a.ui.position.flip.left.apply(this,
-arguments);a.ui.position.fit.left.apply(this,arguments)},top:function(){a.ui.position.flip.top.apply(this,arguments);a.ui.position.fit.top.apply(this,arguments)}}};a.uiBackCompat!==false&&function(h){var k=h.fn.position;h.fn.position=function(l){if(!l||!l.offset)return k.call(this,l);var j=l.offset.split(" "),m=l.at.split(" ");if(j.length===1)j[1]=j[0];if(/^\d/.test(j[0]))j[0]="+"+j[0];if(/^\d/.test(j[1]))j[1]="+"+j[1];if(m.length===1)if(/left|center|right/.test(m[0]))m[1]="center";else{m[1]=m[0];
-m[0]="center"}return k.call(this,h.extend(l,{at:m[0]+j[0]+" "+m[1]+j[1],offset:g}))}}(jQuery)})(jQuery);
-(function(a,g){a.widget("ui.progressbar",{version:"1.9pre",options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove()},value:function(d){if(d===g)return this._value();this._setOption("value",d);return this},_setOption:function(d,c){if(d==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}this._super("_setOption",d,c)},_value:function(){var d=this.options.value;if(typeof d!=="number")d=0;return Math.min(this.options.max,Math.max(this.min,d))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var d=
-this.value(),c=this._percentage();if(this.oldValue!==d){this.oldValue=d;this._trigger("change")}this.valueDiv.toggle(d>this.min).toggleClass("ui-corner-right",d===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",d)}})})(jQuery);
-(function(a){a.widget("ui.slider",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var g=this,d=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),e=d.values&&d.values.length||1,f=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+
-this.orientation+" ui-widget ui-widget-content ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":""));this.range=a([]);if(d.range){if(d.range===true){if(!d.values)d.values=[this._valueMin(),this._valueMin()];if(d.values.length&&d.values.length!==2)d.values=[d.values[0],d.values[0]]}this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:""))}for(var i=c.length;i<e;i+=1)f.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>");
-this.handles=c.add(a(f.join("")).appendTo(g.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(b){b.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(d.disabled)a(this).blur();else{a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(b){a(this).data("index.ui-slider-handle",
-b)});this.handles.keydown(function(b){var h=true,k=a(this).data("index.ui-slider-handle"),l,j,m;if(!g.options.disabled){switch(b.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:h=false;if(!g._keySliding){g._keySliding=true;a(this).addClass("ui-state-active");l=g._start(b,k);if(l===false)return}}m=g.options.step;l=g.options.values&&g.options.values.length?
-j=g.values(k):j=g.value();switch(b.keyCode){case a.ui.keyCode.HOME:j=g._valueMin();break;case a.ui.keyCode.END:j=g._valueMax();break;case a.ui.keyCode.PAGE_UP:j=g._trimAlignValue(l+(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.PAGE_DOWN:j=g._trimAlignValue(l-(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(l===g._valueMax())return;j=g._trimAlignValue(l+m);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(l===g._valueMin())return;j=g._trimAlignValue(l-
-m)}g._slide(b,k,j);return h}}).keyup(function(b){var h=a(this).data("index.ui-slider-handle");if(g._keySliding){g._keySliding=false;g._stop(b,h);g._change(b,h);a(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();
-return this},_mouseCapture:function(g){var d=this.options,c,e,f,i,b;if(d.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:g.pageX,y:g.pageY});e=this._valueMax()-this._valueMin()+1;i=this;this.handles.each(function(h){var k=Math.abs(c-i.values(h));if(e>k){e=k;f=a(this);b=h}});if(d.range===true&&this.values(1)===d.min){b+=1;f=a(this.handles[b])}if(this._start(g,b)===false)return false;
-this._mouseSliding=true;i._handleIndex=b;f.addClass("ui-state-active").focus();d=f.offset();this._clickOffset=!a(g.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:g.pageX-d.left-f.width()/2,top:g.pageY-d.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(g,b,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(g){var d=
-this._normValueFromMouse({x:g.pageX,y:g.pageY});this._slide(g,this._handleIndex,d);return false},_mouseStop:function(g){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(g,this._handleIndex);this._change(g,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(g){var d;if(this.orientation==="horizontal"){d=
-this.elementSize.width;g=g.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{d=this.elementSize.height;g=g.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}d=g/d;if(d>1)d=1;if(d<0)d=0;if(this.orientation==="vertical")d=1-d;g=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+d*g)},_start:function(g,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);
-c.values=this.values()}return this._trigger("start",g,c)},_slide:function(g,d,c){var e;if(this.options.values&&this.options.values.length){e=this.values(d?0:1);if(this.options.values.length===2&&this.options.range===true&&(d===0&&c>e||d===1&&c<e))c=e;if(c!==this.values(d)){e=this.values();e[d]=c;g=this._trigger("slide",g,{handle:this.handles[d],value:c,values:e});this.values(d?0:1);g!==false&&this.values(d,c,true)}}else if(c!==this.value()){g=this._trigger("slide",g,{handle:this.handles[d],value:c});
-g!==false&&this.value(c)}},_stop:function(g,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("stop",g,c)},_change:function(g,d){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("change",g,c)}},value:function(g){if(arguments.length){this.options.value=
-this._trimAlignValue(g);this._refreshValue();this._change(null,0)}else return this._value()},values:function(g,d){var c,e,f;if(arguments.length>1){this.options.values[g]=this._trimAlignValue(d);this._refreshValue();this._change(null,g)}else if(arguments.length)if(a.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(g):
-this.value();else return this._values()},_setOption:function(g,d){var c,e=0;if(a.isArray(this.options.values))e=this.options.values.length;a.Widget.prototype._setOption.apply(this,arguments);switch(g){case "disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.prop("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.prop("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false}},_value:function(){var g=this.options.value;return g=this._trimAlignValue(g)},_values:function(g){var d,c;if(arguments.length){d=this.options.values[g];
-d=this._trimAlignValue(d)}else{d=this.options.values.slice();for(c=0;c<d.length;c+=1)d[c]=this._trimAlignValue(d[c])}return d},_trimAlignValue:function(g){if(g<=this._valueMin())return this._valueMin();if(g>=this._valueMax())return this._valueMax();var d=this.options.step>0?this.options.step:1,c=(g-this._valueMin())%d;g-=c;if(Math.abs(c)*2>=d)g+=c>0?d:-d;return parseFloat(g.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var g=
-this.options.range,d=this.options,c=this,e=!this._animateOff?d.animate:false,f,i={},b,h,k,l;if(this.options.values&&this.options.values.length)this.handles.each(function(j){f=(c.values(j)-c._valueMin())/(c._valueMax()-c._valueMin())*100;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";a(this).stop(1,1)[e?"animate":"css"](i,d.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(j===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({width:f-
-b+"%"},{queue:false,duration:d.animate})}else{if(j===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({height:f-b+"%"},{queue:false,duration:d.animate})}b=f});else{h=this.value();k=this._valueMin();l=this._valueMax();f=l!==k?(h-k)/(l-k)*100:0;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](i,d.animate);if(g==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},
-d.animate);if(g==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:d.animate});if(g==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},d.animate);if(g==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:d.animate})}}})})(jQuery);
-(function(a){function g(d){return function(){var c=this.element.val();d.apply(this,arguments);this._refresh();c!==this.element.val()&&this._trigger("change")}}a.widget("ui.spinner",{version:"1.9pre",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,incremental:true,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._value(this.element.val(),true);this._draw();this._bind(this._events);this._refresh()},_getCreateOptions:function(){var d=
-{},c=this.element;a.each(["min","max","step"],function(e,f){var i=c.attr(f);if(i!==undefined&&i.length)d[f]=i});return d},_events:{keydown:function(d){this._start(d)&&this._keydown(d)&&d.preventDefault()},keyup:"_stop",focus:function(){this.uiSpinner.addClass("ui-state-active");this.previous=this.element.val()},blur:function(d){this._refresh();this.uiSpinner.removeClass("ui-state-active");this.previous!==this.element.val()&&this._trigger("change",d)},mousewheel:function(d,c){if(c){if(!this.spinning&&
-!this._start(d))return false;this._spin((c>0?1:-1)*this.options.step,d);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=setTimeout(function(){this.spinning&&this._stop(d)},100);d.preventDefault()}},"mousedown .ui-spinner-button":function(d){d.preventDefault();document.activeElement!==this.element[0]&&this.element.focus();if(this._start(d)!==false)this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(d){if(a(d.currentTarget).hasClass("ui-state-active")){if(this._start(d)===
-false)return false;this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)}},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var d=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this._hoverable(d);this.element.attr("role","spinbutton");this.buttons=d.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all");this.buttons.height()===d.height()&&d.height()>
-0&&d.height(d.height());this.options.disabled&&this.disable()},_keydown:function(d){var c=this.options,e=a.ui.keyCode;switch(d.keyCode){case e.UP:this._repeat(null,1,d);return true;case e.DOWN:this._repeat(null,-1,d);return true;case e.PAGE_UP:this._repeat(null,c.page,d);return true;case e.PAGE_DOWN:this._repeat(null,-c.page,d);return true}return false},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-state-default ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon ui-icon-triangle-1-n'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon ui-icon-triangle-1-s'>&#9660;</span></a>"},
-_start:function(d){if(!this.spinning&&this._trigger("start",d)===false)return false;if(!this.counter)this.counter=1;return this.spinning=true},_repeat:function(d,c,e){d=d||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,c,e)},d);this._spin(c*this.options.step,e)},_spin:function(d,c){var e=this.value()||0;if(!this.counter)this.counter=1;e=this._adjustValue(e+d*this._increment(this.counter));if(!this.spinning||this._trigger("spin",c,{value:e})!==false){this._value(e);
-this.counter++}},_increment:function(d){var c=this.options.incremental;if(c)return a.isFunction(c)?c(d):Math.floor(d*d*d/5E4-d*d/500+17*d/200+1);return 1},_precision:function(){var d=this._precisionOf(this.options.step);if(this.options.min!==null)d=Math.max(d,this._precisionOf(this.options.min));return d},_precisionOf:function(d){d=d.toString();var c=d.indexOf(".");return c===-1?0:d.length-c-1},_adjustValue:function(d){var c,e=this.options;c=e.min!==null?e.min:0;d=Math.round((d-c)/e.step)*e.step;
-d=parseFloat((c+d).toFixed(this._precision()));if(e.max!==null&&d>e.max)return e.max;if(e.min!==null&&d<e.min)return e.min;return d},_stop:function(d){if(this.spinning){clearTimeout(this.timer);clearTimeout(this.mousewheelTimer);this.counter=0;this.spinning=false;this._trigger("stop",d)}},_setOption:function(d,c){this._super("_setOption",d,c);if(d==="disabled")if(c){this.element.prop("disabled",true);this.buttons.button("disable")}else{this.element.prop("disabled",false);this.buttons.button("enable")}},
-_setOptions:g(function(d){this._super("_setOptions",d);this._value(this.element.val())}),_parse:function(d){if(typeof d==="string"&&d!=="")d=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(d,10,this.options.culture):+d;return d===""||isNaN(d)?null:d},_format:function(d){if(d==="")return"";return window.Globalize&&this.options.numberFormat?Globalize.format(d,this.options.numberFormat,this.options.culture):d},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,
-"aria-valuenow":this._parse(this.element.val())})},_value:function(d,c){var e;if(d!==""){e=this._parse(d);if(e!==null){c||(e=this._adjustValue(e));d=this._format(e)}}this.element.val(d);this._refresh()},destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",false).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");this._super("destroy");this.uiSpinner.replaceWith(this.element)},stepUp:g(function(d){this._stepUp(d)}),
-_stepUp:function(d){this._spin((d||1)*this.options.step)},stepDown:g(function(d){this._stepDown(d)}),_stepDown:function(d){this._spin((d||1)*-this.options.step)},pageUp:g(function(d){this._stepUp((d||1)*this.options.page)}),pageDown:g(function(d){this._stepDown((d||1)*this.options.page)}),value:function(d){if(!arguments.length)return this._parse(this.element.val());g(this._value).call(this,d)},widget:function(){return this.uiSpinner}})})(jQuery);
-(function(a,g){var d=0,c=function(){var f=/#.*$/,i=location.href.replace(f,"");return function(b){b=b.cloneNode(false);return b.hash.length>1&&b.href.replace(f,"")===i}}();a.widget("ui.tabs",{version:"1.9pre",options:{active:null,collapsible:false,event:"click",fx:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var f=this,i=f.options,b=i.active;f.running=false;f.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");f._processTabs();if(b===null){location.hash&&
-f.anchors.each(function(h,k){if(k.hash===location.hash){b=h;return false}});if(b===null)b=f.lis.filter(".ui-tabs-active").index();if(b===null||b===-1)b=f.lis.length?0:false}if(b!==false){b=this.lis.eq(b).index();if(b===-1)b=i.collapsible?false:0}i.active=b;if(!i.collapsible&&i.active===false&&this.anchors.length)i.active=0;if(a.isArray(i.disabled))i.disabled=a.unique(i.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(h){return f.lis.index(h)}))).sort();this._setupFx(i.fx);this._refresh();
-this.panels.hide();this.lis.removeClass("ui-tabs-active ui-state-active");if(i.active!==false&&this.anchors.length){this.active=this._findActive(i.active);f._getPanelForTab(this.active).show();this.lis.eq(i.active).addClass("ui-tabs-active ui-state-active");this.load(i.active)}else this.active=a()},_setOption:function(f,i){if(f=="active")this._activate(i);else if(f==="disabled")this._setupDisabled(i);else{this._super("_setOption",f,i);f==="collapsible"&&!i&&this.options.active===false&&this._activate(0);
-f==="event"&&this._setupEvents(i);f==="fx"&&this._setupFx(i)}},_tabId:function(f){return a(f).attr("aria-controls")||"ui-tabs-"+ ++d},_sanitizeSelector:function(f){return f?f.replace(/[!"$%&'()*+,.\/:;<=>?@[\]^`{|}~]/g,"\\$&"):""},refresh:function(){var f=this.options,i=this.list.children(":has(a[href])");f.disabled=a.map(i.filter(".ui-state-disabled"),function(b){return i.index(b)});this._processTabs();this._refresh();this.panels.not(this._getPanelForTab(this.active)).hide();if(f.active===false||
-!this.anchors.length){f.active=false;this.active=a()}else if(this.active.length&&!a.contains(this.list[0],this.active[0])){f=f.active-1;this._activate(f>=0?f:0)}else f.active=this.anchors.index(this.active)},_refresh:function(){var f=this.options;this.element.toggleClass("ui-tabs-collapsible",f.collapsible);this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");
-this._setupDisabled(f.disabled);this._setupEvents(f.event);this.lis.unbind(".tabs");this._focusable(this.lis);this._hoverable(this.lis)},_processTabs:function(){var f=this;this.list=this.element.find("ol,ul").eq(0);this.lis=a(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);this.anchors.each(function(i,b){var h,k;if(c(b)){h=b.hash;k=f.element.find(f._sanitizeSelector(h))}else{var l=f._tabId(b);h="#"+l;k=f.element.find(h);if(!k.length){k=
-f._createPanel(l);k.insertAfter(f.panels[i-1]||f.list)}}if(k.length)f.panels=f.panels.add(k);a(b).attr("aria-controls",h.substring(1))})},_createPanel:function(f){return a("<div></div>").attr("id",f).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)},_setupDisabled:function(f){if(a.isArray(f))if(f.length){if(f.length===this.anchors.length)f=true}else f=false;for(var i=0,b;b=this.lis[i];i++)a(b).toggleClass("ui-state-disabled",f===true||a.inArray(i,f)!==-1);this.options.disabled=
-f},_setupFx:function(f){if(f)if(a.isArray(f)){this.hideFx=f[0];this.showFx=f[1]}else this.hideFx=this.showFx=f},_resetStyle:function(f,i){!a.support.opacity&&i.opacity&&f[0].style.removeAttribute("filter")},_setupEvents:function(f){this.anchors.unbind(".tabs");f&&this.anchors.bind(f.split(" ").join(".tabs ")+".tabs",a.proxy(this,"_eventHandler"));this.anchors.bind("click.tabs",function(i){i.preventDefault()})},_eventHandler:function(f){var i=this.options,b=this.active,h=a(f.currentTarget),k=h[0]===
-b[0],l=k&&i.collapsible,j=l?a():this._getPanelForTab(h),m=!b.length?a():this._getPanelForTab(b),n=h.closest("li");b={oldTab:b,oldPanel:m,newTab:l?a():h,newPanel:j};f.preventDefault();if(n.hasClass("ui-state-disabled")||n.hasClass("ui-tabs-loading")||this.running||k&&!i.collapsible||this._trigger("beforeActivate",f,b)===false)h[0].blur();else{i.active=l?false:this.anchors.index(h);this.active=k?a():h;this.xhr&&this.xhr.abort();if(!m.length&&!j.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";
-if(j.length){this.load(this.anchors.index(h),f);h[0].blur()}this._toggle(f,b)}},_toggle:function(f,i){function b(){k.running=false;k._trigger("activate",f,i)}function h(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(l.length&&k.showFx)l.animate(k.showFx,k.showFx.duration||"normal",function(){k._resetStyle(a(this),k.showFx);b()});else{l.show();b()}}var k=this,l=i.newPanel,j=i.oldPanel;k.running=true;if(j.length&&k.hideFx)j.animate(k.hideFx,k.hideFx.duration||"normal",function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
-k._resetStyle(a(this),k.hideFx);h()});else{i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");j.hide();h()}},_activate:function(f){f=this._findActive(f)[0];if(f!==this.active[0]){f=f||this.active[0];this._eventHandler({target:f,currentTarget:f,preventDefault:a.noop})}},_findActive:function(f){return typeof f==="number"?this.anchors.eq(f):typeof f==="string"?this.anchors.filter("[href$='"+f+"']"):a()},_getIndex:function(f){if(typeof f=="string")f=this.anchors.index(this.anchors.filter("[href$="+
-f+"]"));return f},_destroy:function(){this.xhr&&this.xhr.abort();this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.unbind(".tabs").removeData("href.tabs").removeData("load.tabs");this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass("ui-state-default ui-corner-top ui-tabs-active ui-state-active ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom")});
-return this},enable:function(f){var i=this.options.disabled;if(i!==false){if(f===g)i=false;else{f=this._getIndex(f);i=a.isArray(i)?a.map(i,function(b){return b!==f?b:null}):a.map(this.lis,function(b,h){return h!==f?h:null})}this._setupDisabled(i)}},disable:function(f){var i=this.options.disabled;if(i!==true){if(f===g)i=true;else{f=this._getIndex(f);if(a.inArray(f,i)!==-1)return;i=a.isArray(i)?a.merge([f],i).sort():[f]}this._setupDisabled(i)}},load:function(f,i){f=this._getIndex(f);var b=this,h=this.anchors.eq(f),
-k=b._getPanelForTab(h),l={tab:h,panel:k};if(!c(h[0])){if(this.xhr=a.ajax({url:h.attr("href"),beforeSend:function(j,m){return b._trigger("beforeLoad",i,a.extend({jqXHR:j,ajaxSettings:m},l))}})){this.lis.eq(f).addClass("ui-tabs-loading");this.xhr.success(function(j){setTimeout(function(){k.html(j);b._trigger("load",i,l)},1)}).complete(function(j,m){setTimeout(function(){m==="abort"&&b.panels.stop(false,true);b.lis.eq(f).removeClass("ui-tabs-loading");j===b.xhr&&delete b.xhr})})}return this}},_getPanelForTab:function(f){return this.element.find(this._sanitizeSelector("#"+
-a(f).attr("aria-controls")))}});if(a.uiBackCompat!==false){a.ui.tabs.prototype._ui=function(f,i){return{tab:f,panel:i,index:this.anchors.index(f)}};(function(f,i){i.url=function(b,h){this.anchors.eq(b).attr("href",h)}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{ajaxOptions:null,cache:false});var b=i._create,h=i._setOption,k=i._destroy,l=i.url||f.noop;f.extend(i,{_create:function(){b.call(this);var j=this;this.element.bind("tabsbeforeload.tabs",function(m,n){if(f.data(n.tab[0],
-"cache.tabs"))m.preventDefault();else{f.extend(n.ajaxSettings,j.options.ajaxOptions,{error:function(o,p){try{j.options.ajaxOptions.error(o,p,n.tab.closest("li").index(),n.tab[0])}catch(q){}}});n.jqXHR.success(function(){j.options.cache&&f.data(n.tab[0],"cache.tabs",true)})}})},_setOption:function(j,m){j==="cache"&&m===false&&this.anchors.removeData("cache.tabs");h.apply(this,arguments)},_destroy:function(){this.anchors.removeData("cache.tabs");k.call(this)},url:function(j){this.anchors.eq(j).removeData("cache.tabs");
-l.apply(this,arguments)}})})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.abort=function(){this.xhr&&this.xhr.abort()}})(jQuery,jQuery.ui.tabs.prototype);a.widget("ui.tabs",a.ui.tabs,{options:{spinner:"<em>Loading&#8230;</em>"},_create:function(){this._super("_create");this._bind({tabsbeforeload:function(f,i){if(this.options.spinner){var b=i.tab.find("span"),h=b.html();b.html(this.options.spinner);i.jqXHR.complete(function(){b.html(h)})}}})}});(function(f,i){f.extend(i.options,{enable:null,disable:null});
-var b=i.enable,h=i.disable;i.enable=function(k){var l=this.options,j;if(k&&l.disabled===true||f.isArray(l.disabled)&&f.inArray(k,l.disabled)!==-1)j=true;b.apply(this,arguments);j&&this._trigger("enable",null,this._ui(this.anchors[k],this.panels[k]))};i.disable=function(k){var l=this.options,j;if(k&&l.disabled===false||f.isArray(l.disabled)&&f.inArray(k,l.disabled)===-1)j=true;h.apply(this,arguments);j&&this._trigger("disable",null,this._ui(this.anchors[k],this.panels[k]))}})(jQuery,jQuery.ui.tabs.prototype);
-(function(f,i){f.extend(i.options,{add:null,remove:null,tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"});i.add=function(b,h,k){if(k===g)k=this.anchors.length;var l=this.options;h=f(l.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,h));b=!b.indexOf("#")?b.replace("#",""):this._tabId(h.find("a")[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);h.find("a").attr("aria-controls",b);var j=k>=this.lis.length,m=this.element.find("#"+b);if(!m.length){m=
-this._createPanel(b);if(j)k>0?m.insertAfter(this.panels.eq(-1)):m.appendTo(this.element);else m.insertBefore(this.panels[k])}m.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide();j?h.appendTo(this.list):h.insertBefore(this.lis[k]);l.disabled=f.map(l.disabled,function(n){return n>=k?++n:n});this.refresh();this.lis.length===1&&l.active===false&&this.option("active",0);this._trigger("add",null,this._ui(this.anchors[k],this.panels[k]));return this};i.remove=function(b){b=this._getIndex(b);
-var h=this.options,k=this.lis.eq(b).remove(),l=this._getPanelForTab(k.find("a[aria-controls]")).remove();if(k.hasClass("ui-tabs-active")&&this.anchors.length>2)this._activate(b+(b+1<this.anchors.length?1:-1));h.disabled=f.map(f.grep(h.disabled,function(j){return j!==b}),function(j){return j>=b?--j:j});this.refresh();this._trigger("remove",null,this._ui(k.find("a")[0],l[0]));return this}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.length=function(){return this.anchors.length}})(jQuery,jQuery.ui.tabs.prototype);
-(function(f,i){f.extend(i.options,{idPrefix:"ui-tabs-"});i._tabId=function(b){return f(b).attr("aria-controls")||b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+ ++d}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{panelTemplate:"<div></div>"});i._createPanel=function(b){return f(this.options.panelTemplate).attr("id",b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)}})(jQuery,jQuery.ui.tabs.prototype);
-(function(f,i){var b=i._create,h=i._setOption,k=i._eventHandler;i._create=function(){var l=this.options;if(l.active===null&&l.selected!==g)l.active=l.selected===-1?false:l.selected;b.call(this);l.selected=l.active;if(l.selected===false)l.selected=-1};i._setOption=function(l,j){if(l!=="selected")return h.apply(this,arguments);var m=this.options;h.call(this,"active",j===-1?false:j);m.selected=m.active;if(m.selected===false)m.selected=-1};i._eventHandler=function(){k.apply(this,arguments);this.options.selected=
-this.options.active;if(this.options.selected===false)this.options.selected=-1}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{show:null,select:null});var b=i._create,h=i._trigger;i._create=function(){b.call(this);this.options.active!==false&&this._trigger("show",null,this._ui(this.active[0],this._getPanelForTab(this.active)[0]))};i._trigger=function(k,l,j){if(!h.apply(this,arguments))return false;if(k==="beforeActivate"&&j.newTab.length)h.call(this,"select",l,{tab:j.newTab[0],
-panel:j.newPanel[0],index:j.newTab.closest("li").index()});else k==="activate"&&j.newTab.length&&h.call(this,"show",l,{tab:j.newTab[0],panel:j.newPanel[0],index:j.newTab.closest("li").index()})}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.select=function(b){b=this._getIndex(b);if(b===-1)if(this.options.collapsible&&this.options.selected!==-1)b=this.options.selected;else return;this.anchors.eq(b).trigger(this.options.event+".tabs")}})(jQuery,jQuery.ui.tabs.prototype);var e=0;a.widget("ui.tabs",
-a.ui.tabs,{options:{cookie:null},_create:function(){var f=this.options,i;if(f.active==null&&f.cookie){i=parseInt(this._cookie(),10);if(i===-1)i=false;f.active=i}this._super("_create")},_cookie:function(f){var i=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++e)];if(arguments.length){i.push(f===false?-1:f);i.push(this.options.cookie)}return a.cookie.apply(null,i)},_refresh:function(){this._super("_refresh");this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},
-_eventHandler:function(){this._superApply("_eventHandler",arguments);this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super("_destroy");this.options.cookie&&this._cookie(null,this.options.cookie)}});a.widget("ui.tabs",a.ui.tabs,{_trigger:function(f,i,b){b=a.extend({},b);if(f==="load"){b.panel=b.panel[0];b.tab=b.tab[0]}return this._super("_trigger",f,i,b)}})}})(jQuery);
-(function(a){var g=0;a.widget("ui.tooltip",{version:"1.9pre",options:{content:function(){return a(this).attr("title")},hide:true,items:"[title]",position:{my:"left+15 center",at:"right center",collision:"flipfit flipfit"},show:true,tooltipClass:null,close:null,open:null},_create:function(){this._bind({mouseover:"open",focusin:"open"});this.tooltips={}},_setOption:function(d,c){if(d==="disabled"){this[c?"_disable":"_enable"]();this.options[d]=c}else this._super("_setOption",d,c)},_disable:function(){var d=
-this;a.each(this.tooltips,function(c,e){var f=a.Event("blur");f.target=f.currentTarget=e[0];d.close(f,true)});this.element.find(this.options.items).andSelf().each(function(){var c=a(this);c.is("[title]")&&c.data("tooltip-title",c.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var d=a(this);d.data("tooltip-title")&&d.attr("title",d.data("tooltip-title"))})},open:function(d){var c,e=this,f=a(d?d.target:this.element).closest(this.options.items);
-if(!(!f.length||f.attr("aria-describedby"))){f.data("tooltip-title")||f.data("tooltip-title",f.attr("title"));(c=this.options.content.call(f[0],function(i){setTimeout(function(){e._open(d,f,i)},1)}))&&e._open(d,f,c)}},_open:function(d,c,e){if(e){c.is("[title]")&&c.attr("title","");var f=this._find(c);if(!f.length){f=this._tooltip(c);c.attr("aria-describedby",f.attr("id"))}f.find(".ui-tooltip-content").html(e);f.stop(true).position(a.extend({of:c},this.options.position)).hide();this._show(f,this.options.show);
-this._trigger("open",d,{tooltip:f});this._bind(c,{mouseleave:"close",blur:"close",keyup:function(i){if(i.keyCode==a.ui.keyCode.ESCAPE){i=a.Event(i);i.currentTarget=c[0];this.close(i,true)}}})}},close:function(d,c){var e=this,f=a(d?d.currentTarget:this.element),i=this._find(f);if(!(!c&&document.activeElement===f[0])){f.data("tooltip-title")&&f.attr("title",f.data("tooltip-title"));f.removeAttr("aria-describedby");i.stop(true);this._hide(i,this.options.hide,function(){a(this).remove();delete e.tooltips[this.id]});
-f.unbind("mouseleave.tooltip blur.tooltip keyup.tooltip");this._trigger("close",d,{tooltip:i})}},_tooltip:function(d){var c="ui-tooltip-"+g++,e=a("<div>").attr({id:c,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));a("<div>").addClass("ui-tooltip-content").appendTo(e);e.appendTo(document.body);a.fn.bgiframe&&e.bgiframe();this.tooltips[c]=d;return e},_find:function(d){return(d=d.attr("aria-describedby"))?a("#"+d):a()},_destroy:function(){a.each(this.tooltips,
-function(d){a("#"+d).remove()})}})})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js
deleted file mode 100755
index cd515f36..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js
+++ /dev/null
@@ -1,11767 +0,0 @@
-/*!
- * jQuery UI 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function( $, undefined ) {
-
-// prevent duplicate loading
-// this is only a problem because we proxy existing functions
-// and we don't want to double proxy them
-$.ui = $.ui || {};
-if ( $.ui.version ) {
- return;
-}
-
-$.extend( $.ui, {
- version: "1.8.16",
-
- keyCode: {
- ALT: 18,
- BACKSPACE: 8,
- CAPS_LOCK: 20,
- COMMA: 188,
- COMMAND: 91,
- COMMAND_LEFT: 91, // COMMAND
- COMMAND_RIGHT: 93,
- CONTROL: 17,
- DELETE: 46,
- DOWN: 40,
- END: 35,
- ENTER: 13,
- ESCAPE: 27,
- HOME: 36,
- INSERT: 45,
- LEFT: 37,
- MENU: 93, // COMMAND_RIGHT
- NUMPAD_ADD: 107,
- NUMPAD_DECIMAL: 110,
- NUMPAD_DIVIDE: 111,
- NUMPAD_ENTER: 108,
- NUMPAD_MULTIPLY: 106,
- NUMPAD_SUBTRACT: 109,
- PAGE_DOWN: 34,
- PAGE_UP: 33,
- PERIOD: 190,
- RIGHT: 39,
- SHIFT: 16,
- SPACE: 32,
- TAB: 9,
- UP: 38,
- WINDOWS: 91 // COMMAND
- }
-});
-
-// plugins
-$.fn.extend({
- propAttr: $.fn.prop || $.fn.attr,
-
- _focus: $.fn.focus,
- focus: function( delay, fn ) {
- return typeof delay === "number" ?
- this.each(function() {
- var elem = this;
- setTimeout(function() {
- $( elem ).focus();
- if ( fn ) {
- fn.call( elem );
- }
- }, delay );
- }) :
- this._focus.apply( this, arguments );
- },
-
- scrollParent: function() {
- var scrollParent;
- if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
- scrollParent = this.parents().filter(function() {
- return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- } else {
- scrollParent = this.parents().filter(function() {
- return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- }
-
- return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
- },
-
- zIndex: function( zIndex ) {
- if ( zIndex !== undefined ) {
- return this.css( "zIndex", zIndex );
- }
-
- if ( this.length ) {
- var elem = $( this[ 0 ] ), position, value;
- while ( elem.length && elem[ 0 ] !== document ) {
- // Ignore z-index if position is set to a value where z-index is ignored by the browser
- // This makes behavior of this function consistent across browsers
- // WebKit always returns auto if the element is positioned
- position = elem.css( "position" );
- if ( position === "absolute" || position === "relative" || position === "fixed" ) {
- // IE returns 0 when zIndex is not specified
- // other browsers return a string
- // we ignore the case of nested elements with an explicit value of 0
- // <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
- value = parseInt( elem.css( "zIndex" ), 10 );
- if ( !isNaN( value ) && value !== 0 ) {
- return value;
- }
- }
- elem = elem.parent();
- }
- }
-
- return 0;
- },
-
- disableSelection: function() {
- return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
- ".ui-disableSelection", function( event ) {
- event.preventDefault();
- });
- },
-
- enableSelection: function() {
- return this.unbind( ".ui-disableSelection" );
- }
-});
-
-$.each( [ "Width", "Height" ], function( i, name ) {
- var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
- type = name.toLowerCase(),
- orig = {
- innerWidth: $.fn.innerWidth,
- innerHeight: $.fn.innerHeight,
- outerWidth: $.fn.outerWidth,
- outerHeight: $.fn.outerHeight
- };
-
- function reduce( elem, size, border, margin ) {
- $.each( side, function() {
- size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
- if ( border ) {
- size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
- }
- if ( margin ) {
- size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
- }
- });
- return size;
- }
-
- $.fn[ "inner" + name ] = function( size ) {
- if ( size === undefined ) {
- return orig[ "inner" + name ].call( this );
- }
-
- return this.each(function() {
- $( this ).css( type, reduce( this, size ) + "px" );
- });
- };
-
- $.fn[ "outer" + name] = function( size, margin ) {
- if ( typeof size !== "number" ) {
- return orig[ "outer" + name ].call( this, size );
- }
-
- return this.each(function() {
- $( this).css( type, reduce( this, size, true, margin ) + "px" );
- });
- };
-});
-
-// selectors
-function focusable( element, isTabIndexNotNaN ) {
- var nodeName = element.nodeName.toLowerCase();
- if ( "area" === nodeName ) {
- var map = element.parentNode,
- mapName = map.name,
- img;
- if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
- return false;
- }
- img = $( "img[usemap=#" + mapName + "]" )[0];
- return !!img && visible( img );
- }
- return ( /input|select|textarea|button|object/.test( nodeName )
- ? !element.disabled
- : "a" == nodeName
- ? element.href || isTabIndexNotNaN
- : isTabIndexNotNaN)
- // the element and all of its ancestors must be visible
- && visible( element );
-}
-
-function visible( element ) {
- return !$( element ).parents().andSelf().filter(function() {
- return $.curCSS( this, "visibility" ) === "hidden" ||
- $.expr.filters.hidden( this );
- }).length;
-}
-
-$.extend( $.expr[ ":" ], {
- data: function( elem, i, match ) {
- return !!$.data( elem, match[ 3 ] );
- },
-
- focusable: function( element ) {
- return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
- },
-
- tabbable: function( element ) {
- var tabIndex = $.attr( element, "tabindex" ),
- isTabIndexNaN = isNaN( tabIndex );
- return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
- }
-});
-
-// support
-$(function() {
- var body = document.body,
- div = body.appendChild( div = document.createElement( "div" ) );
-
- $.extend( div.style, {
- minHeight: "100px",
- height: "auto",
- padding: 0,
- borderWidth: 0
- });
-
- $.support.minHeight = div.offsetHeight === 100;
- $.support.selectstart = "onselectstart" in div;
-
- // set display to none to avoid a layout bug in IE
- // http://dev.jquery.com/ticket/4014
- body.removeChild( div ).style.display = "none";
-});
-
-
-
-
-
-// deprecated
-$.extend( $.ui, {
- // $.ui.plugin is deprecated. Use the proxy pattern instead.
- plugin: {
- add: function( module, option, set ) {
- var proto = $.ui[ module ].prototype;
- for ( var i in set ) {
- proto.plugins[ i ] = proto.plugins[ i ] || [];
- proto.plugins[ i ].push( [ option, set[ i ] ] );
- }
- },
- call: function( instance, name, args ) {
- var set = instance.plugins[ name ];
- if ( !set || !instance.element[ 0 ].parentNode ) {
- return;
- }
-
- for ( var i = 0; i < set.length; i++ ) {
- if ( instance.options[ set[ i ][ 0 ] ] ) {
- set[ i ][ 1 ].apply( instance.element, args );
- }
- }
- }
- },
-
- // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
- contains: function( a, b ) {
- return document.compareDocumentPosition ?
- a.compareDocumentPosition( b ) & 16 :
- a !== b && a.contains( b );
- },
-
- // only used by resizable
- hasScroll: function( el, a ) {
-
- //If overflow is hidden, the element might have extra content, but the user wants to hide it
- if ( $( el ).css( "overflow" ) === "hidden") {
- return false;
- }
-
- var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
- has = false;
-
- if ( el[ scroll ] > 0 ) {
- return true;
- }
-
- // TODO: determine which cases actually cause this to happen
- // if the element doesn't have the scroll set, see if it's possible to
- // set the scroll
- el[ scroll ] = 1;
- has = ( el[ scroll ] > 0 );
- el[ scroll ] = 0;
- return has;
- },
-
- // these are odd functions, fix the API or move into individual plugins
- isOverAxis: function( x, reference, size ) {
- //Determines when x coordinate is over "b" element axis
- return ( x > reference ) && ( x < ( reference + size ) );
- },
- isOver: function( y, x, top, left, height, width ) {
- //Determines when x, y coordinates is over "b" element
- return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
- }
-});
-
-})( jQuery );
-/*!
- * jQuery UI Widget 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function( $, undefined ) {
-
-// jQuery 1.4+
-if ( $.cleanData ) {
- var _cleanData = $.cleanData;
- $.cleanData = function( elems ) {
- for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
- try {
- $( elem ).triggerHandler( "remove" );
- // http://bugs.jquery.com/ticket/8235
- } catch( e ) {}
- }
- _cleanData( elems );
- };
-} else {
- var _remove = $.fn.remove;
- $.fn.remove = function( selector, keepData ) {
- return this.each(function() {
- if ( !keepData ) {
- if ( !selector || $.filter( selector, [ this ] ).length ) {
- $( "*", this ).add( [ this ] ).each(function() {
- try {
- $( this ).triggerHandler( "remove" );
- // http://bugs.jquery.com/ticket/8235
- } catch( e ) {}
- });
- }
- }
- return _remove.call( $(this), selector, keepData );
- });
- };
-}
-
-$.widget = function( name, base, prototype ) {
- var namespace = name.split( "." )[ 0 ],
- fullName;
- name = name.split( "." )[ 1 ];
- fullName = namespace + "-" + name;
-
- if ( !prototype ) {
- prototype = base;
- base = $.Widget;
- }
-
- // create selector for plugin
- $.expr[ ":" ][ fullName ] = function( elem ) {
- return !!$.data( elem, name );
- };
-
- $[ namespace ] = $[ namespace ] || {};
- $[ namespace ][ name ] = function( options, element ) {
- // allow instantiation without initializing for simple inheritance
- if ( arguments.length ) {
- this._createWidget( options, element );
- }
- };
-
- var basePrototype = new base();
- // we need to make the options hash a property directly on the new instance
- // otherwise we'll modify the options hash on the prototype that we're
- // inheriting from
-// $.each( basePrototype, function( key, val ) {
-// if ( $.isPlainObject(val) ) {
-// basePrototype[ key ] = $.extend( {}, val );
-// }
-// });
- basePrototype.options = $.extend( true, {}, basePrototype.options );
- $[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
- namespace: namespace,
- widgetName: name,
- widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
- widgetBaseClass: fullName
- }, prototype );
-
- $.widget.bridge( name, $[ namespace ][ name ] );
-};
-
-$.widget.bridge = function( name, object ) {
- $.fn[ name ] = function( options ) {
- var isMethodCall = typeof options === "string",
- args = Array.prototype.slice.call( arguments, 1 ),
- returnValue = this;
-
- // allow multiple hashes to be passed on init
- options = !isMethodCall && args.length ?
- $.extend.apply( null, [ true, options ].concat(args) ) :
- options;
-
- // prevent calls to internal methods
- if ( isMethodCall && options.charAt( 0 ) === "_" ) {
- return returnValue;
- }
-
- if ( isMethodCall ) {
- this.each(function() {
- var instance = $.data( this, name ),
- methodValue = instance && $.isFunction( instance[options] ) ?
- instance[ options ].apply( instance, args ) :
- instance;
- // TODO: add this back in 1.9 and use $.error() (see #5972)
-// if ( !instance ) {
-// throw "cannot call methods on " + name + " prior to initialization; " +
-// "attempted to call method '" + options + "'";
-// }
-// if ( !$.isFunction( instance[options] ) ) {
-// throw "no such method '" + options + "' for " + name + " widget instance";
-// }
-// var methodValue = instance[ options ].apply( instance, args );
- if ( methodValue !== instance && methodValue !== undefined ) {
- returnValue = methodValue;
- return false;
- }
- });
- } else {
- this.each(function() {
- var instance = $.data( this, name );
- if ( instance ) {
- instance.option( options || {} )._init();
- } else {
- $.data( this, name, new object( options, this ) );
- }
- });
- }
-
- return returnValue;
- };
-};
-
-$.Widget = function( options, element ) {
- // allow instantiation without initializing for simple inheritance
- if ( arguments.length ) {
- this._createWidget( options, element );
- }
-};
-
-$.Widget.prototype = {
- widgetName: "widget",
- widgetEventPrefix: "",
- options: {
- disabled: false
- },
- _createWidget: function( options, element ) {
- // $.widget.bridge stores the plugin instance, but we do it anyway
- // so that it's stored even before the _create function runs
- $.data( element, this.widgetName, this );
- this.element = $( element );
- this.options = $.extend( true, {},
- this.options,
- this._getCreateOptions(),
- options );
-
- var self = this;
- this.element.bind( "remove." + this.widgetName, function() {
- self.destroy();
- });
-
- this._create();
- this._trigger( "create" );
- this._init();
- },
- _getCreateOptions: function() {
- return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
- },
- _create: function() {},
- _init: function() {},
-
- destroy: function() {
- this.element
- .unbind( "." + this.widgetName )
- .removeData( this.widgetName );
- this.widget()
- .unbind( "." + this.widgetName )
- .removeAttr( "aria-disabled" )
- .removeClass(
- this.widgetBaseClass + "-disabled " +
- "ui-state-disabled" );
- },
-
- widget: function() {
- return this.element;
- },
-
- option: function( key, value ) {
- var options = key;
-
- if ( arguments.length === 0 ) {
- // don't return a reference to the internal hash
- return $.extend( {}, this.options );
- }
-
- if (typeof key === "string" ) {
- if ( value === undefined ) {
- return this.options[ key ];
- }
- options = {};
- options[ key ] = value;
- }
-
- this._setOptions( options );
-
- return this;
- },
- _setOptions: function( options ) {
- var self = this;
- $.each( options, function( key, value ) {
- self._setOption( key, value );
- });
-
- return this;
- },
- _setOption: function( key, value ) {
- this.options[ key ] = value;
-
- if ( key === "disabled" ) {
- this.widget()
- [ value ? "addClass" : "removeClass"](
- this.widgetBaseClass + "-disabled" + " " +
- "ui-state-disabled" )
- .attr( "aria-disabled", value );
- }
-
- return this;
- },
-
- enable: function() {
- return this._setOption( "disabled", false );
- },
- disable: function() {
- return this._setOption( "disabled", true );
- },
-
- _trigger: function( type, event, data ) {
- var callback = this.options[ type ];
-
- event = $.Event( event );
- event.type = ( type === this.widgetEventPrefix ?
- type :
- this.widgetEventPrefix + type ).toLowerCase();
- data = data || {};
-
- // copy original event properties over to the new event
- // this would happen if we could call $.event.fix instead of $.Event
- // but we don't have a way to force an event to be fixed multiple times
- if ( event.originalEvent ) {
- for ( var i = $.event.props.length, prop; i; ) {
- prop = $.event.props[ --i ];
- event[ prop ] = event.originalEvent[ prop ];
- }
- }
-
- this.element.trigger( event, data );
-
- return !( $.isFunction(callback) &&
- callback.call( this.element[0], event, data ) === false ||
- event.isDefaultPrevented() );
- }
-};
-
-})( jQuery );
-/*!
- * jQuery UI Mouse 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var mouseHandled = false;
-$( document ).mouseup( function( e ) {
- mouseHandled = false;
-});
-
-$.widget("ui.mouse", {
- options: {
- cancel: ':input,option',
- distance: 1,
- delay: 0
- },
- _mouseInit: function() {
- var self = this;
-
- this.element
- .bind('mousedown.'+this.widgetName, function(event) {
- return self._mouseDown(event);
- })
- .bind('click.'+this.widgetName, function(event) {
- if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
- $.removeData(event.target, self.widgetName + '.preventClickEvent');
- event.stopImmediatePropagation();
- return false;
- }
- });
-
- this.started = false;
- },
-
- // TODO: make sure destroying one instance of mouse doesn't mess with
- // other instances of mouse
- _mouseDestroy: function() {
- this.element.unbind('.'+this.widgetName);
- },
-
- _mouseDown: function(event) {
- // don't let more than one widget handle mouseStart
- if( mouseHandled ) { return };
-
- // we may have missed mouseup (out of window)
- (this._mouseStarted && this._mouseUp(event));
-
- this._mouseDownEvent = event;
-
- var self = this,
- btnIsLeft = (event.which == 1),
- // event.target.nodeName works around a bug in IE 8 with
- // disabled inputs (#7620)
- elIsCancel = (typeof this.options.cancel == "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
- if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
- return true;
- }
-
- this.mouseDelayMet = !this.options.delay;
- if (!this.mouseDelayMet) {
- this._mouseDelayTimer = setTimeout(function() {
- self.mouseDelayMet = true;
- }, this.options.delay);
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted = (this._mouseStart(event) !== false);
- if (!this._mouseStarted) {
- event.preventDefault();
- return true;
- }
- }
-
- // Click event may never have fired (Gecko & Opera)
- if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {
- $.removeData(event.target, this.widgetName + '.preventClickEvent');
- }
-
- // these delegates are required to keep context
- this._mouseMoveDelegate = function(event) {
- return self._mouseMove(event);
- };
- this._mouseUpDelegate = function(event) {
- return self._mouseUp(event);
- };
- $(document)
- .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- event.preventDefault();
-
- mouseHandled = true;
- return true;
- },
-
- _mouseMove: function(event) {
- // IE mouseup check - mouseup happened when mouse was out of window
- if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {
- return this._mouseUp(event);
- }
-
- if (this._mouseStarted) {
- this._mouseDrag(event);
- return event.preventDefault();
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted =
- (this._mouseStart(this._mouseDownEvent, event) !== false);
- (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
- }
-
- return !this._mouseStarted;
- },
-
- _mouseUp: function(event) {
- $(document)
- .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- if (this._mouseStarted) {
- this._mouseStarted = false;
-
- if (event.target == this._mouseDownEvent.target) {
- $.data(event.target, this.widgetName + '.preventClickEvent', true);
- }
-
- this._mouseStop(event);
- }
-
- return false;
- },
-
- _mouseDistanceMet: function(event) {
- return (Math.max(
- Math.abs(this._mouseDownEvent.pageX - event.pageX),
- Math.abs(this._mouseDownEvent.pageY - event.pageY)
- ) >= this.options.distance
- );
- },
-
- _mouseDelayMet: function(event) {
- return this.mouseDelayMet;
- },
-
- // These are placeholder methods, to be overriden by extending plugin
- _mouseStart: function(event) {},
- _mouseDrag: function(event) {},
- _mouseStop: function(event) {},
- _mouseCapture: function(event) { return true; }
-});
-
-})(jQuery);
-/*
- * jQuery UI Draggable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.draggable", $.ui.mouse, {
- widgetEventPrefix: "drag",
- options: {
- addClasses: true,
- appendTo: "parent",
- axis: false,
- connectToSortable: false,
- containment: false,
- cursor: "auto",
- cursorAt: false,
- grid: false,
- handle: false,
- helper: "original",
- iframeFix: false,
- opacity: false,
- refreshPositions: false,
- revert: false,
- revertDuration: 500,
- scope: "default",
- scroll: true,
- scrollSensitivity: 20,
- scrollSpeed: 20,
- snap: false,
- snapMode: "both",
- snapTolerance: 20,
- stack: false,
- zIndex: false
- },
- _create: function() {
-
- if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
- this.element[0].style.position = 'relative';
-
- (this.options.addClasses && this.element.addClass("ui-draggable"));
- (this.options.disabled && this.element.addClass("ui-draggable-disabled"));
-
- this._mouseInit();
-
- },
-
- destroy: function() {
- if(!this.element.data('draggable')) return;
- this.element
- .removeData("draggable")
- .unbind(".draggable")
- .removeClass("ui-draggable"
- + " ui-draggable-dragging"
- + " ui-draggable-disabled");
- this._mouseDestroy();
-
- return this;
- },
-
- _mouseCapture: function(event) {
-
- var o = this.options;
-
- // among others, prevent a drag on a resizable-handle
- if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
- return false;
-
- //Quit if we're not on a valid handle
- this.handle = this._getHandle(event);
- if (!this.handle)
- return false;
-
- if ( o.iframeFix ) {
- $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
- $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
- .css({
- width: this.offsetWidth+"px", height: this.offsetHeight+"px",
- position: "absolute", opacity: "0.001", zIndex: 1000
- })
- .css($(this).offset())
- .appendTo("body");
- });
- }
-
- return true;
-
- },
-
- _mouseStart: function(event) {
-
- var o = this.options;
-
- //Create and append the visible helper
- this.helper = this._createHelper(event);
-
- //Cache the helper size
- this._cacheHelperProportions();
-
- //If ddmanager is used for droppables, set the global draggable
- if($.ui.ddmanager)
- $.ui.ddmanager.current = this;
-
- /*
- * - Position generation -
- * This block generates everything position related - it's the core of draggables.
- */
-
- //Cache the margins of the original element
- this._cacheMargins();
-
- //Store the helper's css position
- this.cssPosition = this.helper.css("position");
- this.scrollParent = this.helper.scrollParent();
-
- //The element's absolute position on the page minus margins
- this.offset = this.positionAbs = this.element.offset();
- this.offset = {
- top: this.offset.top - this.margins.top,
- left: this.offset.left - this.margins.left
- };
-
- $.extend(this.offset, {
- click: { //Where the click happened, relative to the element
- left: event.pageX - this.offset.left,
- top: event.pageY - this.offset.top
- },
- parent: this._getParentOffset(),
- relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
- });
-
- //Generate the original position
- this.originalPosition = this.position = this._generatePosition(event);
- this.originalPageX = event.pageX;
- this.originalPageY = event.pageY;
-
- //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
- (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
- //Set a containment if given in the options
- if(o.containment)
- this._setContainment();
-
- //Trigger event + callbacks
- if(this._trigger("start", event) === false) {
- this._clear();
- return false;
- }
-
- //Recache the helper size
- this._cacheHelperProportions();
-
- //Prepare the droppable offsets
- if ($.ui.ddmanager && !o.dropBehaviour)
- $.ui.ddmanager.prepareOffsets(this, event);
-
- this.helper.addClass("ui-draggable-dragging");
- this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-
- //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
- if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-
- return true;
- },
-
- _mouseDrag: function(event, noPropagation) {
-
- //Compute the helpers position
- this.position = this._generatePosition(event);
- this.positionAbs = this._convertPositionTo("absolute");
-
- //Call plugins and callbacks and use the resulting position if something is returned
- if (!noPropagation) {
- var ui = this._uiHash();
- if(this._trigger('drag', event, ui) === false) {
- this._mouseUp({});
- return false;
- }
- this.position = ui.position;
- }
-
- if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
- if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
- if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
- return false;
- },
-
- _mouseStop: function(event) {
-
- //If we are using droppables, inform the manager about the drop
- var dropped = false;
- if ($.ui.ddmanager && !this.options.dropBehaviour)
- dropped = $.ui.ddmanager.drop(this, event);
-
- //if a drop comes from outside (a sortable)
- if(this.dropped) {
- dropped = this.dropped;
- this.dropped = false;
- }
-
- //if the original element is removed, don't bother to continue if helper is set to "original"
- if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original")
- return false;
-
- if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
- var self = this;
- $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
- if(self._trigger("stop", event) !== false) {
- self._clear();
- }
- });
- } else {
- if(this._trigger("stop", event) !== false) {
- this._clear();
- }
- }
-
- return false;
- },
-
- _mouseUp: function(event) {
- if (this.options.iframeFix === true) {
- $("div.ui-draggable-iframeFix").each(function() {
- this.parentNode.removeChild(this);
- }); //Remove frame helpers
- }
-
- //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
- if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-
- return $.ui.mouse.prototype._mouseUp.call(this, event);
- },
-
- cancel: function() {
-
- if(this.helper.is(".ui-draggable-dragging")) {
- this._mouseUp({});
- } else {
- this._clear();
- }
-
- return this;
-
- },
-
- _getHandle: function(event) {
-
- var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
- $(this.options.handle, this.element)
- .find("*")
- .andSelf()
- .each(function() {
- if(this == event.target) handle = true;
- });
-
- return handle;
-
- },
-
- _createHelper: function(event) {
-
- var o = this.options;
- var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element);
-
- if(!helper.parents('body').length)
- helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
-
- if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
- helper.css("position", "absolute");
-
- return helper;
-
- },
-
- _adjustOffsetFromHelper: function(obj) {
- if (typeof obj == 'string') {
- obj = obj.split(' ');
- }
- if ($.isArray(obj)) {
- obj = {left: +obj[0], top: +obj[1] || 0};
- }
- if ('left' in obj) {
- this.offset.click.left = obj.left + this.margins.left;
- }
- if ('right' in obj) {
- this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
- }
- if ('top' in obj) {
- this.offset.click.top = obj.top + this.margins.top;
- }
- if ('bottom' in obj) {
- this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
- }
- },
-
- _getParentOffset: function() {
-
- //Get the offsetParent and cache its position
- this.offsetParent = this.helper.offsetParent();
- var po = this.offsetParent.offset();
-
- // This is a special case where we need to modify a offset calculated on start, since the following happened:
- // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
- // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
- // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
- if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
- po.left += this.scrollParent.scrollLeft();
- po.top += this.scrollParent.scrollTop();
- }
-
- if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
- || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
- po = { top: 0, left: 0 };
-
- return {
- top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
- left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
- };
-
- },
-
- _getRelativeOffset: function() {
-
- if(this.cssPosition == "relative") {
- var p = this.element.position();
- return {
- top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
- left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
- };
- } else {
- return { top: 0, left: 0 };
- }
-
- },
-
- _cacheMargins: function() {
- this.margins = {
- left: (parseInt(this.element.css("marginLeft"),10) || 0),
- top: (parseInt(this.element.css("marginTop"),10) || 0),
- right: (parseInt(this.element.css("marginRight"),10) || 0),
- bottom: (parseInt(this.element.css("marginBottom"),10) || 0)
- };
- },
-
- _cacheHelperProportions: function() {
- this.helperProportions = {
- width: this.helper.outerWidth(),
- height: this.helper.outerHeight()
- };
- },
-
- _setContainment: function() {
-
- var o = this.options;
- if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
- if(o.containment == 'document' || o.containment == 'window') this.containment = [
- o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
- o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
- (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
- (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
- ];
-
- if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
- var c = $(o.containment);
- var ce = c[0]; if(!ce) return;
- var co = c.offset();
- var over = ($(ce).css("overflow") != 'hidden');
-
- this.containment = [
- (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),
- (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0),
- (over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,
- (over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom
- ];
- this.relative_container = c;
-
- } else if(o.containment.constructor == Array) {
- this.containment = o.containment;
- }
-
- },
-
- _convertPositionTo: function(d, pos) {
-
- if(!pos) pos = this.position;
- var mod = d == "absolute" ? 1 : -1;
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
- return {
- top: (
- pos.top // The absolute mouse position
- + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
- - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
- ),
- left: (
- pos.left // The absolute mouse position
- + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
- - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
- )
- };
-
- },
-
- _generatePosition: function(event) {
-
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
- var pageX = event.pageX;
- var pageY = event.pageY;
-
- /*
- * - Position constraining -
- * Constrain the position to a mix of grid, containment.
- */
-
- if(this.originalPosition) { //If we are not dragging yet, we won't check for options
- var containment;
- if(this.containment) {
- if (this.relative_container){
- var co = this.relative_container.offset();
- containment = [ this.containment[0] + co.left,
- this.containment[1] + co.top,
- this.containment[2] + co.left,
- this.containment[3] + co.top ];
- }
- else {
- containment = this.containment;
- }
-
- if(event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left;
- if(event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top;
- if(event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left;
- if(event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top;
- }
-
- if(o.grid) {
- //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
- var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
- pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
- var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
- pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
- }
-
- }
-
- return {
- top: (
- pageY // The absolute mouse position
- - this.offset.click.top // Click offset (relative to the element)
- - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
- + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
- ),
- left: (
- pageX // The absolute mouse position
- - this.offset.click.left // Click offset (relative to the element)
- - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
- + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
- )
- };
-
- },
-
- _clear: function() {
- this.helper.removeClass("ui-draggable-dragging");
- if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
- //if($.ui.ddmanager) $.ui.ddmanager.current = null;
- this.helper = null;
- this.cancelHelperRemoval = false;
- },
-
- // From now on bulk stuff - mainly helpers
-
- _trigger: function(type, event, ui) {
- ui = ui || this._uiHash();
- $.ui.plugin.call(this, type, [event, ui]);
- if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins
- return $.Widget.prototype._trigger.call(this, type, event, ui);
- },
-
- plugins: {},
-
- _uiHash: function(event) {
- return {
- helper: this.helper,
- position: this.position,
- originalPosition: this.originalPosition,
- offset: this.positionAbs
- };
- }
-
-});
-
-$.extend($.ui.draggable, {
- version: "1.8.16"
-});
-
-$.ui.plugin.add("draggable", "connectToSortable", {
- start: function(event, ui) {
-
- var inst = $(this).data("draggable"), o = inst.options,
- uiSortable = $.extend({}, ui, { item: inst.element });
- inst.sortables = [];
- $(o.connectToSortable).each(function() {
- var sortable = $.data(this, 'sortable');
- if (sortable && !sortable.options.disabled) {
- inst.sortables.push({
- instance: sortable,
- shouldRevert: sortable.options.revert
- });
- sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page).
- sortable._trigger("activate", event, uiSortable);
- }
- });
-
- },
- stop: function(event, ui) {
-
- //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
- var inst = $(this).data("draggable"),
- uiSortable = $.extend({}, ui, { item: inst.element });
-
- $.each(inst.sortables, function() {
- if(this.instance.isOver) {
-
- this.instance.isOver = 0;
-
- inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
- this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
-
- //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'
- if(this.shouldRevert) this.instance.options.revert = true;
-
- //Trigger the stop of the sortable
- this.instance._mouseStop(event);
-
- this.instance.options.helper = this.instance.options._helper;
-
- //If the helper has been the original item, restore properties in the sortable
- if(inst.options.helper == 'original')
- this.instance.currentItem.css({ top: 'auto', left: 'auto' });
-
- } else {
- this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
- this.instance._trigger("deactivate", event, uiSortable);
- }
-
- });
-
- },
- drag: function(event, ui) {
-
- var inst = $(this).data("draggable"), self = this;
-
- var checkPos = function(o) {
- var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
- var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
- var itemHeight = o.height, itemWidth = o.width;
- var itemTop = o.top, itemLeft = o.left;
-
- return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
- };
-
- $.each(inst.sortables, function(i) {
-
- //Copy over some variables to allow calling the sortable's native _intersectsWith
- this.instance.positionAbs = inst.positionAbs;
- this.instance.helperProportions = inst.helperProportions;
- this.instance.offset.click = inst.offset.click;
-
- if(this.instance._intersectsWith(this.instance.containerCache)) {
-
- //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
- if(!this.instance.isOver) {
-
- this.instance.isOver = 1;
- //Now we fake the start of dragging for the sortable instance,
- //by cloning the list group item, appending it to the sortable and using it as inst.currentItem
- //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
- this.instance.currentItem = $(self).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true);
- this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
- this.instance.options.helper = function() { return ui.helper[0]; };
-
- event.target = this.instance.currentItem[0];
- this.instance._mouseCapture(event, true);
- this.instance._mouseStart(event, true, true);
-
- //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes
- this.instance.offset.click.top = inst.offset.click.top;
- this.instance.offset.click.left = inst.offset.click.left;
- this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
- this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
-
- inst._trigger("toSortable", event);
- inst.dropped = this.instance.element; //draggable revert needs that
- //hack so receive/update callbacks work (mostly)
- inst.currentItem = inst.element;
- this.instance.fromOutside = inst;
-
- }
-
- //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
- if(this.instance.currentItem) this.instance._mouseDrag(event);
-
- } else {
-
- //If it doesn't intersect with the sortable, and it intersected before,
- //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
- if(this.instance.isOver) {
-
- this.instance.isOver = 0;
- this.instance.cancelHelperRemoval = true;
-
- //Prevent reverting on this forced stop
- this.instance.options.revert = false;
-
- // The out event needs to be triggered independently
- this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-
- this.instance._mouseStop(event, true);
- this.instance.options.helper = this.instance.options._helper;
-
- //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
- this.instance.currentItem.remove();
- if(this.instance.placeholder) this.instance.placeholder.remove();
-
- inst._trigger("fromSortable", event);
- inst.dropped = false; //draggable revert needs that
- }
-
- };
-
- });
-
- }
-});
-
-$.ui.plugin.add("draggable", "cursor", {
- start: function(event, ui) {
- var t = $('body'), o = $(this).data('draggable').options;
- if (t.css("cursor")) o._cursor = t.css("cursor");
- t.css("cursor", o.cursor);
- },
- stop: function(event, ui) {
- var o = $(this).data('draggable').options;
- if (o._cursor) $('body').css("cursor", o._cursor);
- }
-});
-
-$.ui.plugin.add("draggable", "opacity", {
- start: function(event, ui) {
- var t = $(ui.helper), o = $(this).data('draggable').options;
- if(t.css("opacity")) o._opacity = t.css("opacity");
- t.css('opacity', o.opacity);
- },
- stop: function(event, ui) {
- var o = $(this).data('draggable').options;
- if(o._opacity) $(ui.helper).css('opacity', o._opacity);
- }
-});
-
-$.ui.plugin.add("draggable", "scroll", {
- start: function(event, ui) {
- var i = $(this).data("draggable");
- if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
- },
- drag: function(event, ui) {
-
- var i = $(this).data("draggable"), o = i.options, scrolled = false;
-
- if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
-
- if(!o.axis || o.axis != 'x') {
- if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
- i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
- else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)
- i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
- }
-
- if(!o.axis || o.axis != 'y') {
- if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
- i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
- else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)
- i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
- }
-
- } else {
-
- if(!o.axis || o.axis != 'x') {
- if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
- scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
- else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
- scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
- }
-
- if(!o.axis || o.axis != 'y') {
- if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
- scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
- else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
- scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
- }
-
- }
-
- if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
- $.ui.ddmanager.prepareOffsets(i, event);
-
- }
-});
-
-$.ui.plugin.add("draggable", "snap", {
- start: function(event, ui) {
-
- var i = $(this).data("draggable"), o = i.options;
- i.snapElements = [];
-
- $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {
- var $t = $(this); var $o = $t.offset();
- if(this != i.element[0]) i.snapElements.push({
- item: this,
- width: $t.outerWidth(), height: $t.outerHeight(),
- top: $o.top, left: $o.left
- });
- });
-
- },
- drag: function(event, ui) {
-
- var inst = $(this).data("draggable"), o = inst.options;
- var d = o.snapTolerance;
-
- var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
- y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
-
- for (var i = inst.snapElements.length - 1; i >= 0; i--){
-
- var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,
- t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
-
- //Yes, I know, this is insane ;)
- if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {
- if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
- inst.snapElements[i].snapping = false;
- continue;
- }
-
- if(o.snapMode != 'inner') {
- var ts = Math.abs(t - y2) <= d;
- var bs = Math.abs(b - y1) <= d;
- var ls = Math.abs(l - x2) <= d;
- var rs = Math.abs(r - x1) <= d;
- if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
- if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
- if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
- if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
- }
-
- var first = (ts || bs || ls || rs);
-
- if(o.snapMode != 'outer') {
- var ts = Math.abs(t - y1) <= d;
- var bs = Math.abs(b - y2) <= d;
- var ls = Math.abs(l - x1) <= d;
- var rs = Math.abs(r - x2) <= d;
- if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
- if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
- if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
- if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
- }
-
- if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
- (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
- inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
-
- };
-
- }
-});
-
-$.ui.plugin.add("draggable", "stack", {
- start: function(event, ui) {
-
- var o = $(this).data("draggable").options;
-
- var group = $.makeArray($(o.stack)).sort(function(a,b) {
- return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
- });
- if (!group.length) { return; }
-
- var min = parseInt(group[0].style.zIndex) || 0;
- $(group).each(function(i) {
- this.style.zIndex = min + i;
- });
-
- this[0].style.zIndex = min + group.length;
-
- }
-});
-
-$.ui.plugin.add("draggable", "zIndex", {
- start: function(event, ui) {
- var t = $(ui.helper), o = $(this).data("draggable").options;
- if(t.css("zIndex")) o._zIndex = t.css("zIndex");
- t.css('zIndex', o.zIndex);
- },
- stop: function(event, ui) {
- var o = $(this).data("draggable").options;
- if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
- }
-});
-
-})(jQuery);
-/*
- * jQuery UI Droppable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.mouse.js
- * jquery.ui.draggable.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.droppable", {
- widgetEventPrefix: "drop",
- options: {
- accept: '*',
- activeClass: false,
- addClasses: true,
- greedy: false,
- hoverClass: false,
- scope: 'default',
- tolerance: 'intersect'
- },
- _create: function() {
-
- var o = this.options, accept = o.accept;
- this.isover = 0; this.isout = 1;
-
- this.accept = $.isFunction(accept) ? accept : function(d) {
- return d.is(accept);
- };
-
- //Store the droppable's proportions
- this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
-
- // Add the reference and positions to the manager
- $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
- $.ui.ddmanager.droppables[o.scope].push(this);
-
- (o.addClasses && this.element.addClass("ui-droppable"));
-
- },
-
- destroy: function() {
- var drop = $.ui.ddmanager.droppables[this.options.scope];
- for ( var i = 0; i < drop.length; i++ )
- if ( drop[i] == this )
- drop.splice(i, 1);
-
- this.element
- .removeClass("ui-droppable ui-droppable-disabled")
- .removeData("droppable")
- .unbind(".droppable");
-
- return this;
- },
-
- _setOption: function(key, value) {
-
- if(key == 'accept') {
- this.accept = $.isFunction(value) ? value : function(d) {
- return d.is(value);
- };
- }
- $.Widget.prototype._setOption.apply(this, arguments);
- },
-
- _activate: function(event) {
- var draggable = $.ui.ddmanager.current;
- if(this.options.activeClass) this.element.addClass(this.options.activeClass);
- (draggable && this._trigger('activate', event, this.ui(draggable)));
- },
-
- _deactivate: function(event) {
- var draggable = $.ui.ddmanager.current;
- if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
- (draggable && this._trigger('deactivate', event, this.ui(draggable)));
- },
-
- _over: function(event) {
-
- var draggable = $.ui.ddmanager.current;
- if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
- if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
- this._trigger('over', event, this.ui(draggable));
- }
-
- },
-
- _out: function(event) {
-
- var draggable = $.ui.ddmanager.current;
- if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
- if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
- this._trigger('out', event, this.ui(draggable));
- }
-
- },
-
- _drop: function(event,custom) {
-
- var draggable = custom || $.ui.ddmanager.current;
- if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element
-
- var childrenIntersection = false;
- this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
- var inst = $.data(this, 'droppable');
- if(
- inst.options.greedy
- && !inst.options.disabled
- && inst.options.scope == draggable.options.scope
- && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
- && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
- ) { childrenIntersection = true; return false; }
- });
- if(childrenIntersection) return false;
-
- if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
- if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
- this._trigger('drop', event, this.ui(draggable));
- return this.element;
- }
-
- return false;
-
- },
-
- ui: function(c) {
- return {
- draggable: (c.currentItem || c.element),
- helper: c.helper,
- position: c.position,
- offset: c.positionAbs
- };
- }
-
-});
-
-$.extend($.ui.droppable, {
- version: "1.8.16"
-});
-
-$.ui.intersect = function(draggable, droppable, toleranceMode) {
-
- if (!droppable.offset) return false;
-
- var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
- y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
- var l = droppable.offset.left, r = l + droppable.proportions.width,
- t = droppable.offset.top, b = t + droppable.proportions.height;
-
- switch (toleranceMode) {
- case 'fit':
- return (l <= x1 && x2 <= r
- && t <= y1 && y2 <= b);
- break;
- case 'intersect':
- return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
- && x2 - (draggable.helperProportions.width / 2) < r // Left Half
- && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half
- && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
- break;
- case 'pointer':
- var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),
- draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),
- isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
- return isOver;
- break;
- case 'touch':
- return (
- (y1 >= t && y1 <= b) || // Top edge touching
- (y2 >= t && y2 <= b) || // Bottom edge touching
- (y1 < t && y2 > b) // Surrounded vertically
- ) && (
- (x1 >= l && x1 <= r) || // Left edge touching
- (x2 >= l && x2 <= r) || // Right edge touching
- (x1 < l && x2 > r) // Surrounded horizontally
- );
- break;
- default:
- return false;
- break;
- }
-
-};
-
-/*
- This manager tracks offsets of draggables and droppables
-*/
-$.ui.ddmanager = {
- current: null,
- droppables: { 'default': [] },
- prepareOffsets: function(t, event) {
-
- var m = $.ui.ddmanager.droppables[t.options.scope] || [];
- var type = event ? event.type : null; // workaround for #2317
- var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();
-
- droppablesLoop: for (var i = 0; i < m.length; i++) {
-
- if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted
- for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item
- m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue
-
- if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
-
- m[i].offset = m[i].element.offset();
- m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
-
- }
-
- },
- drop: function(draggable, event) {
-
- var dropped = false;
- $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
- if(!this.options) return;
- if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
- dropped = dropped || this._drop.call(this, event);
-
- if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
- this.isout = 1; this.isover = 0;
- this._deactivate.call(this, event);
- }
-
- });
- return dropped;
-
- },
- dragStart: function( draggable, event ) {
- //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
- draggable.element.parents( ":not(body,html)" ).bind( "scroll.droppable", function() {
- if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );
- });
- },
- drag: function(draggable, event) {
-
- //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
- if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
-
- //Run through all droppables and check their positions based on specific tolerance options
- $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
- if(this.options.disabled || this.greedyChild || !this.visible) return;
- var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
-
- var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
- if(!c) return;
-
- var parentInstance;
- if (this.options.greedy) {
- var parent = this.element.parents(':data(droppable):eq(0)');
- if (parent.length) {
- parentInstance = $.data(parent[0], 'droppable');
- parentInstance.greedyChild = (c == 'isover' ? 1 : 0);
- }
- }
-
- // we just moved into a greedy child
- if (parentInstance && c == 'isover') {
- parentInstance['isover'] = 0;
- parentInstance['isout'] = 1;
- parentInstance._out.call(parentInstance, event);
- }
-
- this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;
- this[c == "isover" ? "_over" : "_out"].call(this, event);
-
- // we just moved out of a greedy child
- if (parentInstance && c == 'isout') {
- parentInstance['isout'] = 0;
- parentInstance['isover'] = 1;
- parentInstance._over.call(parentInstance, event);
- }
- });
-
- },
- dragStop: function( draggable, event ) {
- draggable.element.parents( ":not(body,html)" ).unbind( "scroll.droppable" );
- //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
- if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );
- }
-};
-
-})(jQuery);
-/*
- * jQuery UI Resizable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.resizable", $.ui.mouse, {
- widgetEventPrefix: "resize",
- options: {
- alsoResize: false,
- animate: false,
- animateDuration: "slow",
- animateEasing: "swing",
- aspectRatio: false,
- autoHide: false,
- containment: false,
- ghost: false,
- grid: false,
- handles: "e,s,se",
- helper: false,
- maxHeight: null,
- maxWidth: null,
- minHeight: 10,
- minWidth: 10,
- zIndex: 1000
- },
- _create: function() {
-
- var self = this, o = this.options;
- this.element.addClass("ui-resizable");
-
- $.extend(this, {
- _aspectRatio: !!(o.aspectRatio),
- aspectRatio: o.aspectRatio,
- originalElement: this.element,
- _proportionallyResizeElements: [],
- _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null
- });
-
- //Wrap the element if it cannot hold child nodes
- if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
-
- //Opera fix for relative positioning
- if (/relative/.test(this.element.css('position')) && $.browser.opera)
- this.element.css({ position: 'relative', top: 'auto', left: 'auto' });
-
- //Create a wrapper element and set the wrapper to the new current internal element
- this.element.wrap(
- $('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
- position: this.element.css('position'),
- width: this.element.outerWidth(),
- height: this.element.outerHeight(),
- top: this.element.css('top'),
- left: this.element.css('left')
- })
- );
-
- //Overwrite the original this.element
- this.element = this.element.parent().data(
- "resizable", this.element.data('resizable')
- );
-
- this.elementIsWrapper = true;
-
- //Move margins to the wrapper
- this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
- this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});
-
- //Prevent Safari textarea resize
- this.originalResizeStyle = this.originalElement.css('resize');
- this.originalElement.css('resize', 'none');
-
- //Push the actual element to our proportionallyResize internal array
- this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
-
- // avoid IE jump (hard set the margin)
- this.originalElement.css({ margin: this.originalElement.css('margin') });
-
- // fix handlers offset
- this._proportionallyResize();
-
- }
-
- this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });
- if(this.handles.constructor == String) {
-
- if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';
- var n = this.handles.split(","); this.handles = {};
-
- for(var i = 0; i < n.length; i++) {
-
- var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;
- var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');
-
- // increase zIndex of sw, se, ne, nw axis
- //TODO : this modifies original option
- if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });
-
- //TODO : What's going on here?
- if ('se' == handle) {
- axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
- };
-
- //Insert into internal handles object and append to element
- this.handles[handle] = '.ui-resizable-'+handle;
- this.element.append(axis);
- }
-
- }
-
- this._renderAxis = function(target) {
-
- target = target || this.element;
-
- for(var i in this.handles) {
-
- if(this.handles[i].constructor == String)
- this.handles[i] = $(this.handles[i], this.element).show();
-
- //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
- if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
-
- var axis = $(this.handles[i], this.element), padWrapper = 0;
-
- //Checking the correct pad and border
- padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
-
- //The padding type i have to apply...
- var padPos = [ 'padding',
- /ne|nw|n/.test(i) ? 'Top' :
- /se|sw|s/.test(i) ? 'Bottom' :
- /^e$/.test(i) ? 'Right' : 'Left' ].join("");
-
- target.css(padPos, padWrapper);
-
- this._proportionallyResize();
-
- }
-
- //TODO: What's that good for? There's not anything to be executed left
- if(!$(this.handles[i]).length)
- continue;
-
- }
- };
-
- //TODO: make renderAxis a prototype function
- this._renderAxis(this.element);
-
- this._handles = $('.ui-resizable-handle', this.element)
- .disableSelection();
-
- //Matching axis name
- this._handles.mouseover(function() {
- if (!self.resizing) {
- if (this.className)
- var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
- //Axis, default = se
- self.axis = axis && axis[1] ? axis[1] : 'se';
- }
- });
-
- //If we want to auto hide the elements
- if (o.autoHide) {
- this._handles.hide();
- $(this.element)
- .addClass("ui-resizable-autohide")
- .hover(function() {
- if (o.disabled) return;
- $(this).removeClass("ui-resizable-autohide");
- self._handles.show();
- },
- function(){
- if (o.disabled) return;
- if (!self.resizing) {
- $(this).addClass("ui-resizable-autohide");
- self._handles.hide();
- }
- });
- }
-
- //Initialize the mouse interaction
- this._mouseInit();
-
- },
-
- destroy: function() {
-
- this._mouseDestroy();
-
- var _destroy = function(exp) {
- $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
- .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
- };
-
- //TODO: Unwrap at same DOM position
- if (this.elementIsWrapper) {
- _destroy(this.element);
- var wrapper = this.element;
- wrapper.after(
- this.originalElement.css({
- position: wrapper.css('position'),
- width: wrapper.outerWidth(),
- height: wrapper.outerHeight(),
- top: wrapper.css('top'),
- left: wrapper.css('left')
- })
- ).remove();
- }
-
- this.originalElement.css('resize', this.originalResizeStyle);
- _destroy(this.originalElement);
-
- return this;
- },
-
- _mouseCapture: function(event) {
- var handle = false;
- for (var i in this.handles) {
- if ($(this.handles[i])[0] == event.target) {
- handle = true;
- }
- }
-
- return !this.options.disabled && handle;
- },
-
- _mouseStart: function(event) {
-
- var o = this.options, iniPos = this.element.position(), el = this.element;
-
- this.resizing = true;
- this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
-
- // bugfix for http://dev.jquery.com/ticket/1749
- if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
- el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
- }
-
- //Opera fixing relative position
- if ($.browser.opera && (/relative/).test(el.css('position')))
- el.css({ position: 'relative', top: 'auto', left: 'auto' });
-
- this._renderProxy();
-
- var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
-
- if (o.containment) {
- curleft += $(o.containment).scrollLeft() || 0;
- curtop += $(o.containment).scrollTop() || 0;
- }
-
- //Store needed variables
- this.offset = this.helper.offset();
- this.position = { left: curleft, top: curtop };
- this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
- this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
- this.originalPosition = { left: curleft, top: curtop };
- this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
- this.originalMousePosition = { left: event.pageX, top: event.pageY };
-
- //Aspect Ratio
- this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
-
- var cursor = $('.ui-resizable-' + this.axis).css('cursor');
- $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);
-
- el.addClass("ui-resizable-resizing");
- this._propagate("start", event);
- return true;
- },
-
- _mouseDrag: function(event) {
-
- //Increase performance, avoid regex
- var el = this.helper, o = this.options, props = {},
- self = this, smp = this.originalMousePosition, a = this.axis;
-
- var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;
- var trigger = this._change[a];
- if (!trigger) return false;
-
- // Calculate the attrs that will be change
- var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
-
- // Put this in the mouseDrag handler since the user can start pressing shift while resizing
- this._updateVirtualBoundaries(event.shiftKey);
- if (this._aspectRatio || event.shiftKey)
- data = this._updateRatio(data, event);
-
- data = this._respectSize(data, event);
-
- // plugins callbacks need to be called first
- this._propagate("resize", event);
-
- el.css({
- top: this.position.top + "px", left: this.position.left + "px",
- width: this.size.width + "px", height: this.size.height + "px"
- });
-
- if (!this._helper && this._proportionallyResizeElements.length)
- this._proportionallyResize();
-
- this._updateCache(data);
-
- // calling the user callback at the end
- this._trigger('resize', event, this.ui());
-
- return false;
- },
-
- _mouseStop: function(event) {
-
- this.resizing = false;
- var o = this.options, self = this;
-
- if(this._helper) {
- var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
- soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
- soffsetw = ista ? 0 : self.sizeDiff.width;
-
- var s = { width: (self.helper.width() - soffsetw), height: (self.helper.height() - soffseth) },
- left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
- top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
-
- if (!o.animate)
- this.element.css($.extend(s, { top: top, left: left }));
-
- self.helper.height(self.size.height);
- self.helper.width(self.size.width);
-
- if (this._helper && !o.animate) this._proportionallyResize();
- }
-
- $('body').css('cursor', 'auto');
-
- this.element.removeClass("ui-resizable-resizing");
-
- this._propagate("stop", event);
-
- if (this._helper) this.helper.remove();
- return false;
-
- },
-
- _updateVirtualBoundaries: function(forceAspectRatio) {
- var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b;
-
- b = {
- minWidth: isNumber(o.minWidth) ? o.minWidth : 0,
- maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity,
- minHeight: isNumber(o.minHeight) ? o.minHeight : 0,
- maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity
- };
-
- if(this._aspectRatio || forceAspectRatio) {
- // We want to create an enclosing box whose aspect ration is the requested one
- // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension
- pMinWidth = b.minHeight * this.aspectRatio;
- pMinHeight = b.minWidth / this.aspectRatio;
- pMaxWidth = b.maxHeight * this.aspectRatio;
- pMaxHeight = b.maxWidth / this.aspectRatio;
-
- if(pMinWidth > b.minWidth) b.minWidth = pMinWidth;
- if(pMinHeight > b.minHeight) b.minHeight = pMinHeight;
- if(pMaxWidth < b.maxWidth) b.maxWidth = pMaxWidth;
- if(pMaxHeight < b.maxHeight) b.maxHeight = pMaxHeight;
- }
- this._vBoundaries = b;
- },
-
- _updateCache: function(data) {
- var o = this.options;
- this.offset = this.helper.offset();
- if (isNumber(data.left)) this.position.left = data.left;
- if (isNumber(data.top)) this.position.top = data.top;
- if (isNumber(data.height)) this.size.height = data.height;
- if (isNumber(data.width)) this.size.width = data.width;
- },
-
- _updateRatio: function(data, event) {
-
- var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
-
- if (isNumber(data.height)) data.width = (data.height * this.aspectRatio);
- else if (isNumber(data.width)) data.height = (data.width / this.aspectRatio);
-
- if (a == 'sw') {
- data.left = cpos.left + (csize.width - data.width);
- data.top = null;
- }
- if (a == 'nw') {
- data.top = cpos.top + (csize.height - data.height);
- data.left = cpos.left + (csize.width - data.width);
- }
-
- return data;
- },
-
- _respectSize: function(data, event) {
-
- var el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
- ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
- isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
-
- if (isminw) data.width = o.minWidth;
- if (isminh) data.height = o.minHeight;
- if (ismaxw) data.width = o.maxWidth;
- if (ismaxh) data.height = o.maxHeight;
-
- var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
- var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
-
- if (isminw && cw) data.left = dw - o.minWidth;
- if (ismaxw && cw) data.left = dw - o.maxWidth;
- if (isminh && ch) data.top = dh - o.minHeight;
- if (ismaxh && ch) data.top = dh - o.maxHeight;
-
- // fixing jump error on top/left - bug #2330
- var isNotwh = !data.width && !data.height;
- if (isNotwh && !data.left && data.top) data.top = null;
- else if (isNotwh && !data.top && data.left) data.left = null;
-
- return data;
- },
-
- _proportionallyResize: function() {
-
- var o = this.options;
- if (!this._proportionallyResizeElements.length) return;
- var element = this.helper || this.element;
-
- for (var i=0; i < this._proportionallyResizeElements.length; i++) {
-
- var prel = this._proportionallyResizeElements[i];
-
- if (!this.borderDif) {
- var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],
- p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
-
- this.borderDif = $.map(b, function(v, i) {
- var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;
- return border + padding;
- });
- }
-
- if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))
- continue;
-
- prel.css({
- height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
- width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
- });
-
- };
-
- },
-
- _renderProxy: function() {
-
- var el = this.element, o = this.options;
- this.elementOffset = el.offset();
-
- if(this._helper) {
-
- this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
-
- // fix ie6 offset TODO: This seems broken
- var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),
- pxyoffset = ( ie6 ? 2 : -1 );
-
- this.helper.addClass(this._helper).css({
- width: this.element.outerWidth() + pxyoffset,
- height: this.element.outerHeight() + pxyoffset,
- position: 'absolute',
- left: this.elementOffset.left - ie6offset +'px',
- top: this.elementOffset.top - ie6offset +'px',
- zIndex: ++o.zIndex //TODO: Don't modify option
- });
-
- this.helper
- .appendTo("body")
- .disableSelection();
-
- } else {
- this.helper = this.element;
- }
-
- },
-
- _change: {
- e: function(event, dx, dy) {
- return { width: this.originalSize.width + dx };
- },
- w: function(event, dx, dy) {
- var o = this.options, cs = this.originalSize, sp = this.originalPosition;
- return { left: sp.left + dx, width: cs.width - dx };
- },
- n: function(event, dx, dy) {
- var o = this.options, cs = this.originalSize, sp = this.originalPosition;
- return { top: sp.top + dy, height: cs.height - dy };
- },
- s: function(event, dx, dy) {
- return { height: this.originalSize.height + dy };
- },
- se: function(event, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
- },
- sw: function(event, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
- },
- ne: function(event, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
- },
- nw: function(event, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
- }
- },
-
- _propagate: function(n, event) {
- $.ui.plugin.call(this, n, [event, this.ui()]);
- (n != "resize" && this._trigger(n, event, this.ui()));
- },
-
- plugins: {},
-
- ui: function() {
- return {
- originalElement: this.originalElement,
- element: this.element,
- helper: this.helper,
- position: this.position,
- size: this.size,
- originalSize: this.originalSize,
- originalPosition: this.originalPosition
- };
- }
-
-});
-
-$.extend($.ui.resizable, {
- version: "1.8.16"
-});
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add("resizable", "alsoResize", {
-
- start: function (event, ui) {
- var self = $(this).data("resizable"), o = self.options;
-
- var _store = function (exp) {
- $(exp).each(function() {
- var el = $(this);
- el.data("resizable-alsoresize", {
- width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
- left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10),
- position: el.css('position') // to reset Opera on stop()
- });
- });
- };
-
- if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) {
- if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }
- else { $.each(o.alsoResize, function (exp) { _store(exp); }); }
- }else{
- _store(o.alsoResize);
- }
- },
-
- resize: function (event, ui) {
- var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
-
- var delta = {
- height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,
- top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
- },
-
- _alsoResize = function (exp, c) {
- $(exp).each(function() {
- var el = $(this), start = $(this).data("resizable-alsoresize"), style = {},
- css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
-
- $.each(css, function (i, prop) {
- var sum = (start[prop]||0) + (delta[prop]||0);
- if (sum && sum >= 0)
- style[prop] = sum || null;
- });
-
- // Opera fixing relative position
- if ($.browser.opera && /relative/.test(el.css('position'))) {
- self._revertToRelativePosition = true;
- el.css({ position: 'absolute', top: 'auto', left: 'auto' });
- }
-
- el.css(style);
- });
- };
-
- if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
- $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
- }else{
- _alsoResize(o.alsoResize);
- }
- },
-
- stop: function (event, ui) {
- var self = $(this).data("resizable"), o = self.options;
-
- var _reset = function (exp) {
- $(exp).each(function() {
- var el = $(this);
- // reset position for Opera - no need to verify it was changed
- el.css({ position: el.data("resizable-alsoresize").position });
- });
- };
-
- if (self._revertToRelativePosition) {
- self._revertToRelativePosition = false;
- if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
- $.each(o.alsoResize, function (exp) { _reset(exp); });
- }else{
- _reset(o.alsoResize);
- }
- }
-
- $(this).removeData("resizable-alsoresize");
- }
-});
-
-$.ui.plugin.add("resizable", "animate", {
-
- stop: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options;
-
- var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
- soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
- soffsetw = ista ? 0 : self.sizeDiff.width;
-
- var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
- left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
- top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
-
- self.element.animate(
- $.extend(style, top && left ? { top: top, left: left } : {}), {
- duration: o.animateDuration,
- easing: o.animateEasing,
- step: function() {
-
- var data = {
- width: parseInt(self.element.css('width'), 10),
- height: parseInt(self.element.css('height'), 10),
- top: parseInt(self.element.css('top'), 10),
- left: parseInt(self.element.css('left'), 10)
- };
-
- if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
-
- // propagating resize, and updating values for each animation step
- self._updateCache(data);
- self._propagate("resize", event);
-
- }
- }
- );
- }
-
-});
-
-$.ui.plugin.add("resizable", "containment", {
-
- start: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options, el = self.element;
- var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
- if (!ce) return;
-
- self.containerElement = $(ce);
-
- if (/document/.test(oc) || oc == document) {
- self.containerOffset = { left: 0, top: 0 };
- self.containerPosition = { left: 0, top: 0 };
-
- self.parentData = {
- element: $(document), left: 0, top: 0,
- width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
- };
- }
-
- // i'm a node, so compute top, left, right, bottom
- else {
- var element = $(ce), p = [];
- $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });
-
- self.containerOffset = element.offset();
- self.containerPosition = element.position();
- self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
-
- var co = self.containerOffset, ch = self.containerSize.height, cw = self.containerSize.width,
- width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
-
- self.parentData = {
- element: ce, left: co.left, top: co.top, width: width, height: height
- };
- }
- },
-
- resize: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options,
- ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,
- pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;
-
- if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;
-
- if (cp.left < (self._helper ? co.left : 0)) {
- self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));
- if (pRatio) self.size.height = self.size.width / o.aspectRatio;
- self.position.left = o.helper ? co.left : 0;
- }
-
- if (cp.top < (self._helper ? co.top : 0)) {
- self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);
- if (pRatio) self.size.width = self.size.height * o.aspectRatio;
- self.position.top = self._helper ? co.top : 0;
- }
-
- self.offset.left = self.parentData.left+self.position.left;
- self.offset.top = self.parentData.top+self.position.top;
-
- var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),
- hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );
-
- var isParent = self.containerElement.get(0) == self.element.parent().get(0),
- isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));
-
- if(isParent && isOffsetRelative) woset -= self.parentData.left;
-
- if (woset + self.size.width >= self.parentData.width) {
- self.size.width = self.parentData.width - woset;
- if (pRatio) self.size.height = self.size.width / self.aspectRatio;
- }
-
- if (hoset + self.size.height >= self.parentData.height) {
- self.size.height = self.parentData.height - hoset;
- if (pRatio) self.size.width = self.size.height * self.aspectRatio;
- }
- },
-
- stop: function(event, ui){
- var self = $(this).data("resizable"), o = self.options, cp = self.position,
- co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;
-
- var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;
-
- if (self._helper && !o.animate && (/relative/).test(ce.css('position')))
- $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
- if (self._helper && !o.animate && (/static/).test(ce.css('position')))
- $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
- }
-});
-
-$.ui.plugin.add("resizable", "ghost", {
-
- start: function(event, ui) {
-
- var self = $(this).data("resizable"), o = self.options, cs = self.size;
-
- self.ghost = self.originalElement.clone();
- self.ghost
- .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
- .addClass('ui-resizable-ghost')
- .addClass(typeof o.ghost == 'string' ? o.ghost : '');
-
- self.ghost.appendTo(self.helper);
-
- },
-
- resize: function(event, ui){
- var self = $(this).data("resizable"), o = self.options;
- if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });
- },
-
- stop: function(event, ui){
- var self = $(this).data("resizable"), o = self.options;
- if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));
- }
-
-});
-
-$.ui.plugin.add("resizable", "grid", {
-
- resize: function(event, ui) {
- var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;
- o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
- var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);
-
- if (/^(se|s|e)$/.test(a)) {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- }
- else if (/^(ne)$/.test(a)) {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- self.position.top = op.top - oy;
- }
- else if (/^(sw)$/.test(a)) {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- self.position.left = op.left - ox;
- }
- else {
- self.size.width = os.width + ox;
- self.size.height = os.height + oy;
- self.position.top = op.top - oy;
- self.position.left = op.left - ox;
- }
- }
-
-});
-
-var num = function(v) {
- return parseInt(v, 10) || 0;
-};
-
-var isNumber = function(value) {
- return !isNaN(parseInt(value, 10));
-};
-
-})(jQuery);
-/*
- * jQuery UI Selectable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.selectable", $.ui.mouse, {
- options: {
- appendTo: 'body',
- autoRefresh: true,
- distance: 0,
- filter: '*',
- tolerance: 'touch'
- },
- _create: function() {
- var self = this;
-
- this.element.addClass("ui-selectable");
-
- this.dragged = false;
-
- // cache selectee children based on filter
- var selectees;
- this.refresh = function() {
- selectees = $(self.options.filter, self.element[0]);
- selectees.each(function() {
- var $this = $(this);
- var pos = $this.offset();
- $.data(this, "selectable-item", {
- element: this,
- $element: $this,
- left: pos.left,
- top: pos.top,
- right: pos.left + $this.outerWidth(),
- bottom: pos.top + $this.outerHeight(),
- startselected: false,
- selected: $this.hasClass('ui-selected'),
- selecting: $this.hasClass('ui-selecting'),
- unselecting: $this.hasClass('ui-unselecting')
- });
- });
- };
- this.refresh();
-
- this.selectees = selectees.addClass("ui-selectee");
-
- this._mouseInit();
-
- this.helper = $("<div class='ui-selectable-helper'></div>");
- },
-
- destroy: function() {
- this.selectees
- .removeClass("ui-selectee")
- .removeData("selectable-item");
- this.element
- .removeClass("ui-selectable ui-selectable-disabled")
- .removeData("selectable")
- .unbind(".selectable");
- this._mouseDestroy();
-
- return this;
- },
-
- _mouseStart: function(event) {
- var self = this;
-
- this.opos = [event.pageX, event.pageY];
-
- if (this.options.disabled)
- return;
-
- var options = this.options;
-
- this.selectees = $(options.filter, this.element[0]);
-
- this._trigger("start", event);
-
- $(options.appendTo).append(this.helper);
- // position helper (lasso)
- this.helper.css({
- "left": event.clientX,
- "top": event.clientY,
- "width": 0,
- "height": 0
- });
-
- if (options.autoRefresh) {
- this.refresh();
- }
-
- this.selectees.filter('.ui-selected').each(function() {
- var selectee = $.data(this, "selectable-item");
- selectee.startselected = true;
- if (!event.metaKey) {
- selectee.$element.removeClass('ui-selected');
- selectee.selected = false;
- selectee.$element.addClass('ui-unselecting');
- selectee.unselecting = true;
- // selectable UNSELECTING callback
- self._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- });
-
- $(event.target).parents().andSelf().each(function() {
- var selectee = $.data(this, "selectable-item");
- if (selectee) {
- var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');
- selectee.$element
- .removeClass(doSelect ? "ui-unselecting" : "ui-selected")
- .addClass(doSelect ? "ui-selecting" : "ui-unselecting");
- selectee.unselecting = !doSelect;
- selectee.selecting = doSelect;
- selectee.selected = doSelect;
- // selectable (UN)SELECTING callback
- if (doSelect) {
- self._trigger("selecting", event, {
- selecting: selectee.element
- });
- } else {
- self._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- return false;
- }
- });
-
- },
-
- _mouseDrag: function(event) {
- var self = this;
- this.dragged = true;
-
- if (this.options.disabled)
- return;
-
- var options = this.options;
-
- var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
- if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
- if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
- this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
-
- this.selectees.each(function() {
- var selectee = $.data(this, "selectable-item");
- //prevent helper from being selected if appendTo: selectable
- if (!selectee || selectee.element == self.element[0])
- return;
- var hit = false;
- if (options.tolerance == 'touch') {
- hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
- } else if (options.tolerance == 'fit') {
- hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
- }
-
- if (hit) {
- // SELECT
- if (selectee.selected) {
- selectee.$element.removeClass('ui-selected');
- selectee.selected = false;
- }
- if (selectee.unselecting) {
- selectee.$element.removeClass('ui-unselecting');
- selectee.unselecting = false;
- }
- if (!selectee.selecting) {
- selectee.$element.addClass('ui-selecting');
- selectee.selecting = true;
- // selectable SELECTING callback
- self._trigger("selecting", event, {
- selecting: selectee.element
- });
- }
- } else {
- // UNSELECT
- if (selectee.selecting) {
- if (event.metaKey && selectee.startselected) {
- selectee.$element.removeClass('ui-selecting');
- selectee.selecting = false;
- selectee.$element.addClass('ui-selected');
- selectee.selected = true;
- } else {
- selectee.$element.removeClass('ui-selecting');
- selectee.selecting = false;
- if (selectee.startselected) {
- selectee.$element.addClass('ui-unselecting');
- selectee.unselecting = true;
- }
- // selectable UNSELECTING callback
- self._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- }
- if (selectee.selected) {
- if (!event.metaKey && !selectee.startselected) {
- selectee.$element.removeClass('ui-selected');
- selectee.selected = false;
-
- selectee.$element.addClass('ui-unselecting');
- selectee.unselecting = true;
- // selectable UNSELECTING callback
- self._trigger("unselecting", event, {
- unselecting: selectee.element
- });
- }
- }
- }
- });
-
- return false;
- },
-
- _mouseStop: function(event) {
- var self = this;
-
- this.dragged = false;
-
- var options = this.options;
-
- $('.ui-unselecting', this.element[0]).each(function() {
- var selectee = $.data(this, "selectable-item");
- selectee.$element.removeClass('ui-unselecting');
- selectee.unselecting = false;
- selectee.startselected = false;
- self._trigger("unselected", event, {
- unselected: selectee.element
- });
- });
- $('.ui-selecting', this.element[0]).each(function() {
- var selectee = $.data(this, "selectable-item");
- selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
- selectee.selecting = false;
- selectee.selected = true;
- selectee.startselected = true;
- self._trigger("selected", event, {
- selected: selectee.element
- });
- });
- this._trigger("stop", event);
-
- this.helper.remove();
-
- return false;
- }
-
-});
-
-$.extend($.ui.selectable, {
- version: "1.8.16"
-});
-
-})(jQuery);
-/*
- * jQuery UI Sortable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.sortable", $.ui.mouse, {
- widgetEventPrefix: "sort",
- options: {
- appendTo: "parent",
- axis: false,
- connectWith: false,
- containment: false,
- cursor: 'auto',
- cursorAt: false,
- dropOnEmpty: true,
- forcePlaceholderSize: false,
- forceHelperSize: false,
- grid: false,
- handle: false,
- helper: "original",
- items: '> *',
- opacity: false,
- placeholder: false,
- revert: false,
- scroll: true,
- scrollSensitivity: 20,
- scrollSpeed: 20,
- scope: "default",
- tolerance: "intersect",
- zIndex: 1000
- },
- _create: function() {
-
- var o = this.options;
- this.containerCache = {};
- this.element.addClass("ui-sortable");
-
- //Get the items
- this.refresh();
-
- //Let's determine if the items are being displayed horizontally
- this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;
-
- //Let's determine the parent's offset
- this.offset = this.element.offset();
-
- //Initialize mouse events for interaction
- this._mouseInit();
-
- },
-
- destroy: function() {
- this.element
- .removeClass("ui-sortable ui-sortable-disabled")
- .removeData("sortable")
- .unbind(".sortable");
- this._mouseDestroy();
-
- for ( var i = this.items.length - 1; i >= 0; i-- )
- this.items[i].item.removeData("sortable-item");
-
- return this;
- },
-
- _setOption: function(key, value){
- if ( key === "disabled" ) {
- this.options[ key ] = value;
-
- this.widget()
- [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );
- } else {
- // Don't call widget base _setOption for disable as it adds ui-state-disabled class
- $.Widget.prototype._setOption.apply(this, arguments);
- }
- },
-
- _mouseCapture: function(event, overrideHandle) {
-
- if (this.reverting) {
- return false;
- }
-
- if(this.options.disabled || this.options.type == 'static') return false;
-
- //We have to refresh the items data once first
- this._refreshItems(event);
-
- //Find out if the clicked node (or one of its parents) is a actual item in this.items
- var currentItem = null, self = this, nodes = $(event.target).parents().each(function() {
- if($.data(this, 'sortable-item') == self) {
- currentItem = $(this);
- return false;
- }
- });
- if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target);
-
- if(!currentItem) return false;
- if(this.options.handle && !overrideHandle) {
- var validHandle = false;
-
- $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; });
- if(!validHandle) return false;
- }
-
- this.currentItem = currentItem;
- this._removeCurrentsFromItems();
- return true;
-
- },
-
- _mouseStart: function(event, overrideHandle, noActivation) {
-
- var o = this.options, self = this;
- this.currentContainer = this;
-
- //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
- this.refreshPositions();
-
- //Create and append the visible helper
- this.helper = this._createHelper(event);
-
- //Cache the helper size
- this._cacheHelperProportions();
-
- /*
- * - Position generation -
- * This block generates everything position related - it's the core of draggables.
- */
-
- //Cache the margins of the original element
- this._cacheMargins();
-
- //Get the next scrolling parent
- this.scrollParent = this.helper.scrollParent();
-
- //The element's absolute position on the page minus margins
- this.offset = this.currentItem.offset();
- this.offset = {
- top: this.offset.top - this.margins.top,
- left: this.offset.left - this.margins.left
- };
-
- // Only after we got the offset, we can change the helper's position to absolute
- // TODO: Still need to figure out a way to make relative sorting possible
- this.helper.css("position", "absolute");
- this.cssPosition = this.helper.css("position");
-
- $.extend(this.offset, {
- click: { //Where the click happened, relative to the element
- left: event.pageX - this.offset.left,
- top: event.pageY - this.offset.top
- },
- parent: this._getParentOffset(),
- relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
- });
-
- //Generate the original position
- this.originalPosition = this._generatePosition(event);
- this.originalPageX = event.pageX;
- this.originalPageY = event.pageY;
-
- //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
- (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
- //Cache the former DOM position
- this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
-
- //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
- if(this.helper[0] != this.currentItem[0]) {
- this.currentItem.hide();
- }
-
- //Create the placeholder
- this._createPlaceholder();
-
- //Set a containment if given in the options
- if(o.containment)
- this._setContainment();
-
- if(o.cursor) { // cursor option
- if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");
- $('body').css("cursor", o.cursor);
- }
-
- if(o.opacity) { // opacity option
- if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");
- this.helper.css("opacity", o.opacity);
- }
-
- if(o.zIndex) { // zIndex option
- if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");
- this.helper.css("zIndex", o.zIndex);
- }
-
- //Prepare scrolling
- if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
- this.overflowOffset = this.scrollParent.offset();
-
- //Call callbacks
- this._trigger("start", event, this._uiHash());
-
- //Recache the helper size
- if(!this._preserveHelperProportions)
- this._cacheHelperProportions();
-
-
- //Post 'activate' events to possible containers
- if(!noActivation) {
- for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); }
- }
-
- //Prepare possible droppables
- if($.ui.ddmanager)
- $.ui.ddmanager.current = this;
-
- if ($.ui.ddmanager && !o.dropBehaviour)
- $.ui.ddmanager.prepareOffsets(this, event);
-
- this.dragging = true;
-
- this.helper.addClass("ui-sortable-helper");
- this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
- return true;
-
- },
-
- _mouseDrag: function(event) {
-
- //Compute the helpers position
- this.position = this._generatePosition(event);
- this.positionAbs = this._convertPositionTo("absolute");
-
- if (!this.lastPositionAbs) {
- this.lastPositionAbs = this.positionAbs;
- }
-
- //Do scrolling
- if(this.options.scroll) {
- var o = this.options, scrolled = false;
- if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
-
- if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
- this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
- else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)
- this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
-
- if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
- this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
- else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)
- this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
-
- } else {
-
- if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
- scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
- else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
- scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
-
- if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
- scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
- else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
- scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
-
- }
-
- if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
- $.ui.ddmanager.prepareOffsets(this, event);
- }
-
- //Regenerate the absolute position used for position checks
- this.positionAbs = this._convertPositionTo("absolute");
-
- //Set the helper position
- if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
- if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
-
- //Rearrange
- for (var i = this.items.length - 1; i >= 0; i--) {
-
- //Cache variables and intersection, continue if no intersection
- var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
- if (!intersection) continue;
-
- if(itemElement != this.currentItem[0] //cannot intersect with itself
- && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
- && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
- && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)
- //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
- ) {
-
- this.direction = intersection == 1 ? "down" : "up";
-
- if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
- this._rearrange(event, item);
- } else {
- break;
- }
-
- this._trigger("change", event, this._uiHash());
- break;
- }
- }
-
- //Post events to containers
- this._contactContainers(event);
-
- //Interconnect with droppables
- if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
- //Call callbacks
- this._trigger('sort', event, this._uiHash());
-
- this.lastPositionAbs = this.positionAbs;
- return false;
-
- },
-
- _mouseStop: function(event, noPropagation) {
-
- if(!event) return;
-
- //If we are using droppables, inform the manager about the drop
- if ($.ui.ddmanager && !this.options.dropBehaviour)
- $.ui.ddmanager.drop(this, event);
-
- if(this.options.revert) {
- var self = this;
- var cur = self.placeholder.offset();
-
- self.reverting = true;
-
- $(this.helper).animate({
- left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
- top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
- }, parseInt(this.options.revert, 10) || 500, function() {
- self._clear(event);
- });
- } else {
- this._clear(event, noPropagation);
- }
-
- return false;
-
- },
-
- cancel: function() {
-
- var self = this;
-
- if(this.dragging) {
-
- this._mouseUp({ target: null });
-
- if(this.options.helper == "original")
- this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
- else
- this.currentItem.show();
-
- //Post deactivating events to containers
- for (var i = this.containers.length - 1; i >= 0; i--){
- this.containers[i]._trigger("deactivate", null, self._uiHash(this));
- if(this.containers[i].containerCache.over) {
- this.containers[i]._trigger("out", null, self._uiHash(this));
- this.containers[i].containerCache.over = 0;
- }
- }
-
- }
-
- if (this.placeholder) {
- //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
- if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
- if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove();
-
- $.extend(this, {
- helper: null,
- dragging: false,
- reverting: false,
- _noFinalSort: null
- });
-
- if(this.domPosition.prev) {
- $(this.domPosition.prev).after(this.currentItem);
- } else {
- $(this.domPosition.parent).prepend(this.currentItem);
- }
- }
-
- return this;
-
- },
-
- serialize: function(o) {
-
- var items = this._getItemsAsjQuery(o && o.connected);
- var str = []; o = o || {};
-
- $(items).each(function() {
- var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
- if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2]));
- });
-
- if(!str.length && o.key) {
- str.push(o.key + '=');
- }
-
- return str.join('&');
-
- },
-
- toArray: function(o) {
-
- var items = this._getItemsAsjQuery(o && o.connected);
- var ret = []; o = o || {};
-
- items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
- return ret;
-
- },
-
- /* Be careful with the following core functions */
- _intersectsWith: function(item) {
-
- var x1 = this.positionAbs.left,
- x2 = x1 + this.helperProportions.width,
- y1 = this.positionAbs.top,
- y2 = y1 + this.helperProportions.height;
-
- var l = item.left,
- r = l + item.width,
- t = item.top,
- b = t + item.height;
-
- var dyClick = this.offset.click.top,
- dxClick = this.offset.click.left;
-
- var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
-
- if( this.options.tolerance == "pointer"
- || this.options.forcePointerForContainers
- || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])
- ) {
- return isOverElement;
- } else {
-
- return (l < x1 + (this.helperProportions.width / 2) // Right Half
- && x2 - (this.helperProportions.width / 2) < r // Left Half
- && t < y1 + (this.helperProportions.height / 2) // Bottom Half
- && y2 - (this.helperProportions.height / 2) < b ); // Top Half
-
- }
- },
-
- _intersectsWithPointer: function(item) {
-
- var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
- isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
- isOverElement = isOverElementHeight && isOverElementWidth,
- verticalDirection = this._getDragVerticalDirection(),
- horizontalDirection = this._getDragHorizontalDirection();
-
- if (!isOverElement)
- return false;
-
- return this.floating ?
- ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 )
- : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) );
-
- },
-
- _intersectsWithSides: function(item) {
-
- var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
- isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
- verticalDirection = this._getDragVerticalDirection(),
- horizontalDirection = this._getDragHorizontalDirection();
-
- if (this.floating && horizontalDirection) {
- return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
- } else {
- return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
- }
-
- },
-
- _getDragVerticalDirection: function() {
- var delta = this.positionAbs.top - this.lastPositionAbs.top;
- return delta != 0 && (delta > 0 ? "down" : "up");
- },
-
- _getDragHorizontalDirection: function() {
- var delta = this.positionAbs.left - this.lastPositionAbs.left;
- return delta != 0 && (delta > 0 ? "right" : "left");
- },
-
- refresh: function(event) {
- this._refreshItems(event);
- this.refreshPositions();
- return this;
- },
-
- _connectWith: function() {
- var options = this.options;
- return options.connectWith.constructor == String
- ? [options.connectWith]
- : options.connectWith;
- },
-
- _getItemsAsjQuery: function(connected) {
-
- var self = this;
- var items = [];
- var queries = [];
- var connectWith = this._connectWith();
-
- if(connectWith && connected) {
- for (var i = connectWith.length - 1; i >= 0; i--){
- var cur = $(connectWith[i]);
- for (var j = cur.length - 1; j >= 0; j--){
- var inst = $.data(cur[j], 'sortable');
- if(inst && inst != this && !inst.options.disabled) {
- queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
- }
- };
- };
- }
-
- queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
-
- for (var i = queries.length - 1; i >= 0; i--){
- queries[i][0].each(function() {
- items.push(this);
- });
- };
-
- return $(items);
-
- },
-
- _removeCurrentsFromItems: function() {
-
- var list = this.currentItem.find(":data(sortable-item)");
-
- for (var i=0; i < this.items.length; i++) {
-
- for (var j=0; j < list.length; j++) {
- if(list[j] == this.items[i].item[0])
- this.items.splice(i,1);
- };
-
- };
-
- },
-
- _refreshItems: function(event) {
-
- this.items = [];
- this.containers = [this];
- var items = this.items;
- var self = this;
- var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
- var connectWith = this._connectWith();
-
- if(connectWith) {
- for (var i = connectWith.length - 1; i >= 0; i--){
- var cur = $(connectWith[i]);
- for (var j = cur.length - 1; j >= 0; j--){
- var inst = $.data(cur[j], 'sortable');
- if(inst && inst != this && !inst.options.disabled) {
- queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
- this.containers.push(inst);
- }
- };
- };
- }
-
- for (var i = queries.length - 1; i >= 0; i--) {
- var targetData = queries[i][1];
- var _queries = queries[i][0];
-
- for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {
- var item = $(_queries[j]);
-
- item.data('sortable-item', targetData); // Data for target checking (mouse manager)
-
- items.push({
- item: item,
- instance: targetData,
- width: 0, height: 0,
- left: 0, top: 0
- });
- };
- };
-
- },
-
- refreshPositions: function(fast) {
-
- //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
- if(this.offsetParent && this.helper) {
- this.offset.parent = this._getParentOffset();
- }
-
- for (var i = this.items.length - 1; i >= 0; i--){
- var item = this.items[i];
-
- //We ignore calculating positions of all connected containers when we're not over them
- if(item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0])
- continue;
-
- var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
-
- if (!fast) {
- item.width = t.outerWidth();
- item.height = t.outerHeight();
- }
-
- var p = t.offset();
- item.left = p.left;
- item.top = p.top;
- };
-
- if(this.options.custom && this.options.custom.refreshContainers) {
- this.options.custom.refreshContainers.call(this);
- } else {
- for (var i = this.containers.length - 1; i >= 0; i--){
- var p = this.containers[i].element.offset();
- this.containers[i].containerCache.left = p.left;
- this.containers[i].containerCache.top = p.top;
- this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
- this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
- };
- }
-
- return this;
- },
-
- _createPlaceholder: function(that) {
-
- var self = that || this, o = self.options;
-
- if(!o.placeholder || o.placeholder.constructor == String) {
- var className = o.placeholder;
- o.placeholder = {
- element: function() {
-
- var el = $(document.createElement(self.currentItem[0].nodeName))
- .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder")
- .removeClass("ui-sortable-helper")[0];
-
- if(!className)
- el.style.visibility = "hidden";
-
- return el;
- },
- update: function(container, p) {
-
- // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
- // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
- if(className && !o.forcePlaceholderSize) return;
-
- //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
- if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); };
- if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); };
- }
- };
- }
-
- //Create the placeholder
- self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));
-
- //Append it after the actual current item
- self.currentItem.after(self.placeholder);
-
- //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
- o.placeholder.update(self, self.placeholder);
-
- },
-
- _contactContainers: function(event) {
-
- // get innermost container that intersects with item
- var innermostContainer = null, innermostIndex = null;
-
-
- for (var i = this.containers.length - 1; i >= 0; i--){
-
- // never consider a container that's located within the item itself
- if($.ui.contains(this.currentItem[0], this.containers[i].element[0]))
- continue;
-
- if(this._intersectsWith(this.containers[i].containerCache)) {
-
- // if we've already found a container and it's more "inner" than this, then continue
- if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0]))
- continue;
-
- innermostContainer = this.containers[i];
- innermostIndex = i;
-
- } else {
- // container doesn't intersect. trigger "out" event if necessary
- if(this.containers[i].containerCache.over) {
- this.containers[i]._trigger("out", event, this._uiHash(this));
- this.containers[i].containerCache.over = 0;
- }
- }
-
- }
-
- // if no intersecting containers found, return
- if(!innermostContainer) return;
-
- // move the item into the container if it's not there already
- if(this.containers.length === 1) {
- this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
- this.containers[innermostIndex].containerCache.over = 1;
- } else if(this.currentContainer != this.containers[innermostIndex]) {
-
- //When entering a new container, we will find the item with the least distance and append our item near it
- var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top'];
- for (var j = this.items.length - 1; j >= 0; j--) {
- if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue;
- var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top'];
- if(Math.abs(cur - base) < dist) {
- dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];
- }
- }
-
- if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled
- return;
-
- this.currentContainer = this.containers[innermostIndex];
- itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
- this._trigger("change", event, this._uiHash());
- this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
-
- //Update the placeholder
- this.options.placeholder.update(this.currentContainer, this.placeholder);
-
- this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
- this.containers[innermostIndex].containerCache.over = 1;
- }
-
-
- },
-
- _createHelper: function(event) {
-
- var o = this.options;
- var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
-
- if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already
- $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
-
- if(helper[0] == this.currentItem[0])
- this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
-
- if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());
- if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());
-
- return helper;
-
- },
-
- _adjustOffsetFromHelper: function(obj) {
- if (typeof obj == 'string') {
- obj = obj.split(' ');
- }
- if ($.isArray(obj)) {
- obj = {left: +obj[0], top: +obj[1] || 0};
- }
- if ('left' in obj) {
- this.offset.click.left = obj.left + this.margins.left;
- }
- if ('right' in obj) {
- this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
- }
- if ('top' in obj) {
- this.offset.click.top = obj.top + this.margins.top;
- }
- if ('bottom' in obj) {
- this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
- }
- },
-
- _getParentOffset: function() {
-
-
- //Get the offsetParent and cache its position
- this.offsetParent = this.helper.offsetParent();
- var po = this.offsetParent.offset();
-
- // This is a special case where we need to modify a offset calculated on start, since the following happened:
- // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
- // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
- // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
- if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
- po.left += this.scrollParent.scrollLeft();
- po.top += this.scrollParent.scrollTop();
- }
-
- if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
- || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
- po = { top: 0, left: 0 };
-
- return {
- top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
- left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
- };
-
- },
-
- _getRelativeOffset: function() {
-
- if(this.cssPosition == "relative") {
- var p = this.currentItem.position();
- return {
- top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
- left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
- };
- } else {
- return { top: 0, left: 0 };
- }
-
- },
-
- _cacheMargins: function() {
- this.margins = {
- left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
- top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
- };
- },
-
- _cacheHelperProportions: function() {
- this.helperProportions = {
- width: this.helper.outerWidth(),
- height: this.helper.outerHeight()
- };
- },
-
- _setContainment: function() {
-
- var o = this.options;
- if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
- if(o.containment == 'document' || o.containment == 'window') this.containment = [
- 0 - this.offset.relative.left - this.offset.parent.left,
- 0 - this.offset.relative.top - this.offset.parent.top,
- $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
- ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
- ];
-
- if(!(/^(document|window|parent)$/).test(o.containment)) {
- var ce = $(o.containment)[0];
- var co = $(o.containment).offset();
- var over = ($(ce).css("overflow") != 'hidden');
-
- this.containment = [
- co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
- co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
- co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
- co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
- ];
- }
-
- },
-
- _convertPositionTo: function(d, pos) {
-
- if(!pos) pos = this.position;
- var mod = d == "absolute" ? 1 : -1;
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
- return {
- top: (
- pos.top // The absolute mouse position
- + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
- - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
- ),
- left: (
- pos.left // The absolute mouse position
- + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
- - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
- )
- };
-
- },
-
- _generatePosition: function(event) {
-
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
- // This is another very weird special case that only happens for relative elements:
- // 1. If the css position is relative
- // 2. and the scroll parent is the document or similar to the offset parent
- // we have to refresh the relative offset during the scroll so there are no jumps
- if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
- this.offset.relative = this._getRelativeOffset();
- }
-
- var pageX = event.pageX;
- var pageY = event.pageY;
-
- /*
- * - Position constraining -
- * Constrain the position to a mix of grid, containment.
- */
-
- if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
- if(this.containment) {
- if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
- if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
- if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
- if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
- }
-
- if(o.grid) {
- var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
- pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
- var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
- pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
- }
-
- }
-
- return {
- top: (
- pageY // The absolute mouse position
- - this.offset.click.top // Click offset (relative to the element)
- - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
- + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
- ),
- left: (
- pageX // The absolute mouse position
- - this.offset.click.left // Click offset (relative to the element)
- - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
- + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
- )
- };
-
- },
-
- _rearrange: function(event, i, a, hardRefresh) {
-
- a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
-
- //Various things done here to improve the performance:
- // 1. we create a setTimeout, that calls refreshPositions
- // 2. on the instance, we have a counter variable, that get's higher after every append
- // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
- // 4. this lets only the last addition to the timeout stack through
- this.counter = this.counter ? ++this.counter : 1;
- var self = this, counter = this.counter;
-
- window.setTimeout(function() {
- if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
- },0);
-
- },
-
- _clear: function(event, noPropagation) {
-
- this.reverting = false;
- // We delay all events that have to be triggered to after the point where the placeholder has been removed and
- // everything else normalized again
- var delayedTriggers = [], self = this;
-
- // We first have to update the dom position of the actual currentItem
- // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
- if(!this._noFinalSort && this.currentItem.parent().length) this.placeholder.before(this.currentItem);
- this._noFinalSort = null;
-
- if(this.helper[0] == this.currentItem[0]) {
- for(var i in this._storedCSS) {
- if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';
- }
- this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
- } else {
- this.currentItem.show();
- }
-
- if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
- if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
- if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element
- if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
- for (var i = this.containers.length - 1; i >= 0; i--){
- if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) {
- delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
- delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
- }
- };
- };
-
- //Post events to containers
- for (var i = this.containers.length - 1; i >= 0; i--){
- if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
- if(this.containers[i].containerCache.over) {
- delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
- this.containers[i].containerCache.over = 0;
- }
- }
-
- //Do what was originally in plugins
- if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor
- if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity
- if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index
-
- this.dragging = false;
- if(this.cancelHelperRemoval) {
- if(!noPropagation) {
- this._trigger("beforeStop", event, this._uiHash());
- for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
- this._trigger("stop", event, this._uiHash());
- }
- return false;
- }
-
- if(!noPropagation) this._trigger("beforeStop", event, this._uiHash());
-
- //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
- this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-
- if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;
-
- if(!noPropagation) {
- for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
- this._trigger("stop", event, this._uiHash());
- }
-
- this.fromOutside = false;
- return true;
-
- },
-
- _trigger: function() {
- if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
- this.cancel();
- }
- },
-
- _uiHash: function(inst) {
- var self = inst || this;
- return {
- helper: self.helper,
- placeholder: self.placeholder || $([]),
- position: self.position,
- originalPosition: self.originalPosition,
- offset: self.positionAbs,
- item: self.currentItem,
- sender: inst ? inst.element : null
- };
- }
-
-});
-
-$.extend($.ui.sortable, {
- version: "1.8.16"
-});
-
-})(jQuery);
-/*
- * jQuery UI Effects 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-;jQuery.effects || (function($, undefined) {
-
-$.effects = {};
-
-
-
-/******************************************************************************/
-/****************************** COLOR ANIMATIONS ******************************/
-/******************************************************************************/
-
-// override the animation for color styles
-$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
- 'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
-function(i, attr) {
- $.fx.step[attr] = function(fx) {
- if (!fx.colorInit) {
- fx.start = getColor(fx.elem, attr);
- fx.end = getRGB(fx.end);
- fx.colorInit = true;
- }
-
- fx.elem.style[attr] = 'rgb(' +
- Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +
- Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +
- Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';
- };
-});
-
-// Color Conversion functions from highlightFade
-// By Blair Mitchelmore
-// http://jquery.offput.ca/highlightFade/
-
-// Parse strings looking for color tuples [255,255,255]
-function getRGB(color) {
- var result;
-
- // Check if we're already dealing with an array of colors
- if ( color && color.constructor == Array && color.length == 3 )
- return color;
-
- // Look for rgb(num,num,num)
- if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
- return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
-
- // Look for rgb(num%,num%,num%)
- if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
- return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
-
- // Look for #a0b1c2
- if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
- return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
-
- // Look for #fff
- if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
- return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
-
- // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
- if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
- return colors['transparent'];
-
- // Otherwise, we're most likely dealing with a named color
- return colors[$.trim(color).toLowerCase()];
-}
-
-function getColor(elem, attr) {
- var color;
-
- do {
- color = $.curCSS(elem, attr);
-
- // Keep going until we find an element that has color, or we hit the body
- if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
- break;
-
- attr = "backgroundColor";
- } while ( elem = elem.parentNode );
-
- return getRGB(color);
-};
-
-// Some named colors to work with
-// From Interface by Stefan Petre
-// http://interface.eyecon.ro/
-
-var colors = {
- aqua:[0,255,255],
- azure:[240,255,255],
- beige:[245,245,220],
- black:[0,0,0],
- blue:[0,0,255],
- brown:[165,42,42],
- cyan:[0,255,255],
- darkblue:[0,0,139],
- darkcyan:[0,139,139],
- darkgrey:[169,169,169],
- darkgreen:[0,100,0],
- darkkhaki:[189,183,107],
- darkmagenta:[139,0,139],
- darkolivegreen:[85,107,47],
- darkorange:[255,140,0],
- darkorchid:[153,50,204],
- darkred:[139,0,0],
- darksalmon:[233,150,122],
- darkviolet:[148,0,211],
- fuchsia:[255,0,255],
- gold:[255,215,0],
- green:[0,128,0],
- indigo:[75,0,130],
- khaki:[240,230,140],
- lightblue:[173,216,230],
- lightcyan:[224,255,255],
- lightgreen:[144,238,144],
- lightgrey:[211,211,211],
- lightpink:[255,182,193],
- lightyellow:[255,255,224],
- lime:[0,255,0],
- magenta:[255,0,255],
- maroon:[128,0,0],
- navy:[0,0,128],
- olive:[128,128,0],
- orange:[255,165,0],
- pink:[255,192,203],
- purple:[128,0,128],
- violet:[128,0,128],
- red:[255,0,0],
- silver:[192,192,192],
- white:[255,255,255],
- yellow:[255,255,0],
- transparent: [255,255,255]
-};
-
-
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-
-var classAnimationActions = ['add', 'remove', 'toggle'],
- shorthandStyles = {
- border: 1,
- borderBottom: 1,
- borderColor: 1,
- borderLeft: 1,
- borderRight: 1,
- borderTop: 1,
- borderWidth: 1,
- margin: 1,
- padding: 1
- };
-
-function getElementStyles() {
- var style = document.defaultView
- ? document.defaultView.getComputedStyle(this, null)
- : this.currentStyle,
- newStyle = {},
- key,
- camelCase;
-
- // webkit enumerates style porperties
- if (style && style.length && style[0] && style[style[0]]) {
- var len = style.length;
- while (len--) {
- key = style[len];
- if (typeof style[key] == 'string') {
- camelCase = key.replace(/\-(\w)/g, function(all, letter){
- return letter.toUpperCase();
- });
- newStyle[camelCase] = style[key];
- }
- }
- } else {
- for (key in style) {
- if (typeof style[key] === 'string') {
- newStyle[key] = style[key];
- }
- }
- }
-
- return newStyle;
-}
-
-function filterStyles(styles) {
- var name, value;
- for (name in styles) {
- value = styles[name];
- if (
- // ignore null and undefined values
- value == null ||
- // ignore functions (when does this occur?)
- $.isFunction(value) ||
- // shorthand styles that need to be expanded
- name in shorthandStyles ||
- // ignore scrollbars (break in IE)
- (/scrollbar/).test(name) ||
-
- // only colors or values that can be converted to numbers
- (!(/color/i).test(name) && isNaN(parseFloat(value)))
- ) {
- delete styles[name];
- }
- }
-
- return styles;
-}
-
-function styleDifference(oldStyle, newStyle) {
- var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459
- name;
-
- for (name in newStyle) {
- if (oldStyle[name] != newStyle[name]) {
- diff[name] = newStyle[name];
- }
- }
-
- return diff;
-}
-
-$.effects.animateClass = function(value, duration, easing, callback) {
- if ($.isFunction(easing)) {
- callback = easing;
- easing = null;
- }
-
- return this.queue(function() {
- var that = $(this),
- originalStyleAttr = that.attr('style') || ' ',
- originalStyle = filterStyles(getElementStyles.call(this)),
- newStyle,
- className = that.attr('class');
-
- $.each(classAnimationActions, function(i, action) {
- if (value[action]) {
- that[action + 'Class'](value[action]);
- }
- });
- newStyle = filterStyles(getElementStyles.call(this));
- that.attr('class', className);
-
- that.animate(styleDifference(originalStyle, newStyle), {
- queue: false,
- duration: duration,
- easing: easing,
- complete: function() {
- $.each(classAnimationActions, function(i, action) {
- if (value[action]) { that[action + 'Class'](value[action]); }
- });
- // work around bug in IE by clearing the cssText before setting it
- if (typeof that.attr('style') == 'object') {
- that.attr('style').cssText = '';
- that.attr('style').cssText = originalStyleAttr;
- } else {
- that.attr('style', originalStyleAttr);
- }
- if (callback) { callback.apply(this, arguments); }
- $.dequeue( this );
- }
- });
- });
-};
-
-$.fn.extend({
- _addClass: $.fn.addClass,
- addClass: function(classNames, speed, easing, callback) {
- return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
- },
-
- _removeClass: $.fn.removeClass,
- removeClass: function(classNames,speed,easing,callback) {
- return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
- },
-
- _toggleClass: $.fn.toggleClass,
- toggleClass: function(classNames, force, speed, easing, callback) {
- if ( typeof force == "boolean" || force === undefined ) {
- if ( !speed ) {
- // without speed parameter;
- return this._toggleClass(classNames, force);
- } else {
- return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);
- }
- } else {
- // without switch parameter;
- return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);
- }
- },
-
- switchClass: function(remove,add,speed,easing,callback) {
- return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
- }
-});
-
-
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-$.extend($.effects, {
- version: "1.8.16",
-
- // Saves a set of properties in a data storage
- save: function(element, set) {
- for(var i=0; i < set.length; i++) {
- if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);
- }
- },
-
- // Restores a set of previously saved properties from a data storage
- restore: function(element, set) {
- for(var i=0; i < set.length; i++) {
- if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));
- }
- },
-
- setMode: function(el, mode) {
- if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
- return mode;
- },
-
- getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
- // this should be a little more flexible in the future to handle a string & hash
- var y, x;
- switch (origin[0]) {
- case 'top': y = 0; break;
- case 'middle': y = 0.5; break;
- case 'bottom': y = 1; break;
- default: y = origin[0] / original.height;
- };
- switch (origin[1]) {
- case 'left': x = 0; break;
- case 'center': x = 0.5; break;
- case 'right': x = 1; break;
- default: x = origin[1] / original.width;
- };
- return {x: x, y: y};
- },
-
- // Wraps the element around a wrapper that copies position properties
- createWrapper: function(element) {
-
- // if the element is already wrapped, return it
- if (element.parent().is('.ui-effects-wrapper')) {
- return element.parent();
- }
-
- // wrap the element
- var props = {
- width: element.outerWidth(true),
- height: element.outerHeight(true),
- 'float': element.css('float')
- },
- wrapper = $('<div></div>')
- .addClass('ui-effects-wrapper')
- .css({
- fontSize: '100%',
- background: 'transparent',
- border: 'none',
- margin: 0,
- padding: 0
- }),
- active = document.activeElement;
-
- element.wrap(wrapper);
-
- // Fixes #7595 - Elements lose focus when wrapped.
- if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
- $( active ).focus();
- }
-
- wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
-
- // transfer positioning properties to the wrapper
- if (element.css('position') == 'static') {
- wrapper.css({ position: 'relative' });
- element.css({ position: 'relative' });
- } else {
- $.extend(props, {
- position: element.css('position'),
- zIndex: element.css('z-index')
- });
- $.each(['top', 'left', 'bottom', 'right'], function(i, pos) {
- props[pos] = element.css(pos);
- if (isNaN(parseInt(props[pos], 10))) {
- props[pos] = 'auto';
- }
- });
- element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
- }
-
- return wrapper.css(props).show();
- },
-
- removeWrapper: function(element) {
- var parent,
- active = document.activeElement;
-
- if (element.parent().is('.ui-effects-wrapper')) {
- parent = element.parent().replaceWith(element);
- // Fixes #7595 - Elements lose focus when wrapped.
- if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
- $( active ).focus();
- }
- return parent;
- }
-
- return element;
- },
-
- setTransition: function(element, list, factor, value) {
- value = value || {};
- $.each(list, function(i, x){
- unit = element.cssUnit(x);
- if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];
- });
- return value;
- }
-});
-
-
-function _normalizeArguments(effect, options, speed, callback) {
- // shift params for method overloading
- if (typeof effect == 'object') {
- callback = options;
- speed = null;
- options = effect;
- effect = options.effect;
- }
- if ($.isFunction(options)) {
- callback = options;
- speed = null;
- options = {};
- }
- if (typeof options == 'number' || $.fx.speeds[options]) {
- callback = speed;
- speed = options;
- options = {};
- }
- if ($.isFunction(speed)) {
- callback = speed;
- speed = null;
- }
-
- options = options || {};
-
- speed = speed || options.duration;
- speed = $.fx.off ? 0 : typeof speed == 'number'
- ? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;
-
- callback = callback || options.complete;
-
- return [effect, options, speed, callback];
-}
-
-function standardSpeed( speed ) {
- // valid standard speeds
- if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
- return true;
- }
-
- // invalid strings - treat as "normal" speed
- if ( typeof speed === "string" && !$.effects[ speed ] ) {
- return true;
- }
-
- return false;
-}
-
-$.fn.extend({
- effect: function(effect, options, speed, callback) {
- var args = _normalizeArguments.apply(this, arguments),
- // TODO: make effects take actual parameters instead of a hash
- args2 = {
- options: args[1],
- duration: args[2],
- callback: args[3]
- },
- mode = args2.options.mode,
- effectMethod = $.effects[effect];
-
- if ( $.fx.off || !effectMethod ) {
- // delegate to the original method (e.g., .show()) if possible
- if ( mode ) {
- return this[ mode ]( args2.duration, args2.callback );
- } else {
- return this.each(function() {
- if ( args2.callback ) {
- args2.callback.call( this );
- }
- });
- }
- }
-
- return effectMethod.call(this, args2);
- },
-
- _show: $.fn.show,
- show: function(speed) {
- if ( standardSpeed( speed ) ) {
- return this._show.apply(this, arguments);
- } else {
- var args = _normalizeArguments.apply(this, arguments);
- args[1].mode = 'show';
- return this.effect.apply(this, args);
- }
- },
-
- _hide: $.fn.hide,
- hide: function(speed) {
- if ( standardSpeed( speed ) ) {
- return this._hide.apply(this, arguments);
- } else {
- var args = _normalizeArguments.apply(this, arguments);
- args[1].mode = 'hide';
- return this.effect.apply(this, args);
- }
- },
-
- // jQuery core overloads toggle and creates _toggle
- __toggle: $.fn.toggle,
- toggle: function(speed) {
- if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
- return this.__toggle.apply(this, arguments);
- } else {
- var args = _normalizeArguments.apply(this, arguments);
- args[1].mode = 'toggle';
- return this.effect.apply(this, args);
- }
- },
-
- // helper functions
- cssUnit: function(key) {
- var style = this.css(key), val = [];
- $.each( ['em','px','%','pt'], function(i, unit){
- if(style.indexOf(unit) > 0)
- val = [parseFloat(style), unit];
- });
- return val;
- }
-});
-
-
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- *
- * Open source under the BSD License.
- *
- * Copyright 2008 George McGinley Smith
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-$.easing.jswing = $.easing.swing;
-
-$.extend($.easing,
-{
- def: 'easeOutQuad',
- swing: function (x, t, b, c, d) {
- //alert($.easing.default);
- return $.easing[$.easing.def](x, t, b, c, d);
- },
- easeInQuad: function (x, t, b, c, d) {
- return c*(t/=d)*t + b;
- },
- easeOutQuad: function (x, t, b, c, d) {
- return -c *(t/=d)*(t-2) + b;
- },
- easeInOutQuad: function (x, t, b, c, d) {
- if ((t/=d/2) < 1) return c/2*t*t + b;
- return -c/2 * ((--t)*(t-2) - 1) + b;
- },
- easeInCubic: function (x, t, b, c, d) {
- return c*(t/=d)*t*t + b;
- },
- easeOutCubic: function (x, t, b, c, d) {
- return c*((t=t/d-1)*t*t + 1) + b;
- },
- easeInOutCubic: function (x, t, b, c, d) {
- if ((t/=d/2) < 1) return c/2*t*t*t + b;
- return c/2*((t-=2)*t*t + 2) + b;
- },
- easeInQuart: function (x, t, b, c, d) {
- return c*(t/=d)*t*t*t + b;
- },
- easeOutQuart: function (x, t, b, c, d) {
- return -c * ((t=t/d-1)*t*t*t - 1) + b;
- },
- easeInOutQuart: function (x, t, b, c, d) {
- if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
- return -c/2 * ((t-=2)*t*t*t - 2) + b;
- },
- easeInQuint: function (x, t, b, c, d) {
- return c*(t/=d)*t*t*t*t + b;
- },
- easeOutQuint: function (x, t, b, c, d) {
- return c*((t=t/d-1)*t*t*t*t + 1) + b;
- },
- easeInOutQuint: function (x, t, b, c, d) {
- if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
- return c/2*((t-=2)*t*t*t*t + 2) + b;
- },
- easeInSine: function (x, t, b, c, d) {
- return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
- },
- easeOutSine: function (x, t, b, c, d) {
- return c * Math.sin(t/d * (Math.PI/2)) + b;
- },
- easeInOutSine: function (x, t, b, c, d) {
- return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
- },
- easeInExpo: function (x, t, b, c, d) {
- return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
- },
- easeOutExpo: function (x, t, b, c, d) {
- return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
- },
- easeInOutExpo: function (x, t, b, c, d) {
- if (t==0) return b;
- if (t==d) return b+c;
- if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
- return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
- },
- easeInCirc: function (x, t, b, c, d) {
- return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
- },
- easeOutCirc: function (x, t, b, c, d) {
- return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
- },
- easeInOutCirc: function (x, t, b, c, d) {
- if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
- return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
- },
- easeInElastic: function (x, t, b, c, d) {
- var s=1.70158;var p=0;var a=c;
- if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
- if (a < Math.abs(c)) { a=c; var s=p/4; }
- else var s = p/(2*Math.PI) * Math.asin (c/a);
- return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
- },
- easeOutElastic: function (x, t, b, c, d) {
- var s=1.70158;var p=0;var a=c;
- if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
- if (a < Math.abs(c)) { a=c; var s=p/4; }
- else var s = p/(2*Math.PI) * Math.asin (c/a);
- return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
- },
- easeInOutElastic: function (x, t, b, c, d) {
- var s=1.70158;var p=0;var a=c;
- if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
- if (a < Math.abs(c)) { a=c; var s=p/4; }
- else var s = p/(2*Math.PI) * Math.asin (c/a);
- if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
- return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
- },
- easeInBack: function (x, t, b, c, d, s) {
- if (s == undefined) s = 1.70158;
- return c*(t/=d)*t*((s+1)*t - s) + b;
- },
- easeOutBack: function (x, t, b, c, d, s) {
- if (s == undefined) s = 1.70158;
- return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
- },
- easeInOutBack: function (x, t, b, c, d, s) {
- if (s == undefined) s = 1.70158;
- if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
- return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
- },
- easeInBounce: function (x, t, b, c, d) {
- return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
- },
- easeOutBounce: function (x, t, b, c, d) {
- if ((t/=d) < (1/2.75)) {
- return c*(7.5625*t*t) + b;
- } else if (t < (2/2.75)) {
- return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
- } else if (t < (2.5/2.75)) {
- return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
- } else {
- return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
- }
- },
- easeInOutBounce: function (x, t, b, c, d) {
- if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
- return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
- }
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- *
- * Open source under the BSD License.
- *
- * Copyright 2001 Robert Penner
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-})(jQuery);
-/*
- * jQuery UI Effects Blind 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.blind = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
- var direction = o.options.direction || 'vertical'; // Default direction
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
- var ref = (direction == 'vertical') ? 'height' : 'width';
- var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();
- if(mode == 'show') wrapper.css(ref, 0); // Shift
-
- // Animation
- var animation = {};
- animation[ref] = mode == 'show' ? distance : 0;
-
- // Animate
- wrapper.animate(animation, o.duration, o.options.easing, function() {
- if(mode == 'hide') el.hide(); // Hide
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(el[0], arguments); // Callback
- el.dequeue();
- });
-
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Bounce 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.bounce = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
- var direction = o.options.direction || 'up'; // Default direction
- var distance = o.options.distance || 20; // Default distance
- var times = o.options.times || 5; // Default # of times
- var speed = o.duration || 250; // Default speed per bounce
- if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- $.effects.createWrapper(el); // Create Wrapper
- var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
- var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
- var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3);
- if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
- if (mode == 'hide') distance = distance / (times * 2);
- if (mode != 'hide') times--;
-
- // Animate
- if (mode == 'show') { // Show Bounce
- var animation = {opacity: 1};
- animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
- el.animate(animation, speed / 2, o.options.easing);
- distance = distance / 2;
- times--;
- };
- for (var i = 0; i < times; i++) { // Bounces
- var animation1 = {}, animation2 = {};
- animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
- animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
- el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);
- distance = (mode == 'hide') ? distance * 2 : distance / 2;
- };
- if (mode == 'hide') { // Last Bounce
- var animation = {opacity: 0};
- animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
- el.animate(animation, speed / 2, o.options.easing, function(){
- el.hide(); // Hide
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
- });
- } else {
- var animation1 = {}, animation2 = {};
- animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
- animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
- el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
- });
- };
- el.queue('fx', function() { el.dequeue(); });
- el.dequeue();
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Clip 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.clip = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right','height','width'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
- var direction = o.options.direction || 'vertical'; // Default direction
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
- var animate = el[0].tagName == 'IMG' ? wrapper : el;
- var ref = {
- size: (direction == 'vertical') ? 'height' : 'width',
- position: (direction == 'vertical') ? 'top' : 'left'
- };
- var distance = (direction == 'vertical') ? animate.height() : animate.width();
- if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift
-
- // Animation
- var animation = {};
- animation[ref.size] = mode == 'show' ? distance : 0;
- animation[ref.position] = mode == 'show' ? 0 : distance / 2;
-
- // Animate
- animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
- if(mode == 'hide') el.hide(); // Hide
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(el[0], arguments); // Callback
- el.dequeue();
- }});
-
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Drop 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.drop = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right','opacity'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
- var direction = o.options.direction || 'left'; // Default Direction
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- $.effects.createWrapper(el); // Create Wrapper
- var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
- var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
- var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2);
- if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
-
- // Animation
- var animation = {opacity: mode == 'show' ? 1 : 0};
- animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
- // Animate
- el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
- if(mode == 'hide') el.hide(); // Hide
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
- el.dequeue();
- }});
-
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Explode 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.explode = function(o) {
-
- return this.queue(function() {
-
- var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
- var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
-
- o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
- var el = $(this).show().css('visibility', 'hidden');
- var offset = el.offset();
-
- //Substract the margins - not fixing the problem yet.
- offset.top -= parseInt(el.css("marginTop"),10) || 0;
- offset.left -= parseInt(el.css("marginLeft"),10) || 0;
-
- var width = el.outerWidth(true);
- var height = el.outerHeight(true);
-
- for(var i=0;i<rows;i++) { // =
- for(var j=0;j<cells;j++) { // ||
- el
- .clone()
- .appendTo('body')
- .wrap('<div></div>')
- .css({
- position: 'absolute',
- visibility: 'visible',
- left: -j*(width/cells),
- top: -i*(height/rows)
- })
- .parent()
- .addClass('ui-effects-explode')
- .css({
- position: 'absolute',
- overflow: 'hidden',
- width: width/cells,
- height: height/rows,
- left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),
- top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),
- opacity: o.options.mode == 'show' ? 0 : 1
- }).animate({
- left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),
- top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),
- opacity: o.options.mode == 'show' ? 1 : 0
- }, o.duration || 500);
- }
- }
-
- // Set a timeout, to call the callback approx. when the other animations have finished
- setTimeout(function() {
-
- o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();
- if(o.callback) o.callback.apply(el[0]); // Callback
- el.dequeue();
-
- $('div.ui-effects-explode').remove();
-
- }, o.duration || 500);
-
-
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Fade 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fade
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.fade = function(o) {
- return this.queue(function() {
- var elem = $(this),
- mode = $.effects.setMode(elem, o.options.mode || 'hide');
-
- elem.animate({ opacity: mode }, {
- queue: false,
- duration: o.duration,
- easing: o.options.easing,
- complete: function() {
- (o.callback && o.callback.apply(this, arguments));
- elem.dequeue();
- }
- });
- });
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Fold 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.fold = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
- var size = o.options.size || 15; // Default fold size
- var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value
- var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2;
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
- var widthFirst = ((mode == 'show') != horizFirst);
- var ref = widthFirst ? ['width', 'height'] : ['height', 'width'];
- var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];
- var percent = /([0-9]+)%/.exec(size);
- if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1];
- if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift
-
- // Animation
- var animation1 = {}, animation2 = {};
- animation1[ref[0]] = mode == 'show' ? distance[0] : size;
- animation2[ref[1]] = mode == 'show' ? distance[1] : 0;
-
- // Animate
- wrapper.animate(animation1, duration, o.options.easing)
- .animate(animation2, duration, o.options.easing, function() {
- if(mode == 'hide') el.hide(); // Hide
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(el[0], arguments); // Callback
- el.dequeue();
- });
-
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Highlight 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.highlight = function(o) {
- return this.queue(function() {
- var elem = $(this),
- props = ['backgroundImage', 'backgroundColor', 'opacity'],
- mode = $.effects.setMode(elem, o.options.mode || 'show'),
- animation = {
- backgroundColor: elem.css('backgroundColor')
- };
-
- if (mode == 'hide') {
- animation.opacity = 0;
- }
-
- $.effects.save(elem, props);
- elem
- .show()
- .css({
- backgroundImage: 'none',
- backgroundColor: o.options.color || '#ffff99'
- })
- .animate(animation, {
- queue: false,
- duration: o.duration,
- easing: o.options.easing,
- complete: function() {
- (mode == 'hide' && elem.hide());
- $.effects.restore(elem, props);
- (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
- (o.callback && o.callback.apply(this, arguments));
- elem.dequeue();
- }
- });
- });
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Pulsate 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.pulsate = function(o) {
- return this.queue(function() {
- var elem = $(this),
- mode = $.effects.setMode(elem, o.options.mode || 'show');
- times = ((o.options.times || 5) * 2) - 1;
- duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2,
- isVisible = elem.is(':visible'),
- animateTo = 0;
-
- if (!isVisible) {
- elem.css('opacity', 0).show();
- animateTo = 1;
- }
-
- if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) {
- times--;
- }
-
- for (var i = 0; i < times; i++) {
- elem.animate({ opacity: animateTo }, duration, o.options.easing);
- animateTo = (animateTo + 1) % 2;
- }
-
- elem.animate({ opacity: animateTo }, duration, o.options.easing, function() {
- if (animateTo == 0) {
- elem.hide();
- }
- (o.callback && o.callback.apply(this, arguments));
- });
-
- elem
- .queue('fx', function() { elem.dequeue(); })
- .dequeue();
- });
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Scale 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.puff = function(o) {
- return this.queue(function() {
- var elem = $(this),
- mode = $.effects.setMode(elem, o.options.mode || 'hide'),
- percent = parseInt(o.options.percent, 10) || 150,
- factor = percent / 100,
- original = { height: elem.height(), width: elem.width() };
-
- $.extend(o.options, {
- fade: true,
- mode: mode,
- percent: mode == 'hide' ? percent : 100,
- from: mode == 'hide'
- ? original
- : {
- height: original.height * factor,
- width: original.width * factor
- }
- });
-
- elem.effect('scale', o.options, o.duration, o.callback);
- elem.dequeue();
- });
-};
-
-$.effects.scale = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this);
-
- // Set options
- var options = $.extend(true, {}, o.options);
- var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
- var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent
- var direction = o.options.direction || 'both'; // Set default axis
- var origin = o.options.origin; // The origin of the scaling
- if (mode != 'effect') { // Set default origin and restore for show/hide
- options.origin = origin || ['middle','center'];
- options.restore = true;
- }
- var original = {height: el.height(), width: el.width()}; // Save original
- el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state
-
- // Adjust
- var factor = { // Set scaling factor
- y: direction != 'horizontal' ? (percent / 100) : 1,
- x: direction != 'vertical' ? (percent / 100) : 1
- };
- el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state
-
- if (o.options.fade) { // Fade option to support puff
- if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;};
- if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;};
- };
-
- // Animation
- options.from = el.from; options.to = el.to; options.mode = mode;
-
- // Animate
- el.effect('size', options, o.duration, o.callback);
- el.dequeue();
- });
-
-};
-
-$.effects.size = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity'];
- var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore
- var props2 = ['width','height','overflow']; // Copy for children
- var cProps = ['fontSize'];
- var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];
- var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
- var restore = o.options.restore || false; // Default restore
- var scale = o.options.scale || 'both'; // Default scale mode
- var origin = o.options.origin; // The origin of the sizing
- var original = {height: el.height(), width: el.width()}; // Save original
- el.from = o.options.from || original; // Default from state
- el.to = o.options.to || original; // Default to state
- // Adjust
- if (origin) { // Calculate baseline shifts
- var baseline = $.effects.getBaseline(origin, original);
- el.from.top = (original.height - el.from.height) * baseline.y;
- el.from.left = (original.width - el.from.width) * baseline.x;
- el.to.top = (original.height - el.to.height) * baseline.y;
- el.to.left = (original.width - el.to.width) * baseline.x;
- };
- var factor = { // Set scaling factor
- from: {y: el.from.height / original.height, x: el.from.width / original.width},
- to: {y: el.to.height / original.height, x: el.to.width / original.width}
- };
- if (scale == 'box' || scale == 'both') { // Scale the css box
- if (factor.from.y != factor.to.y) { // Vertical props scaling
- props = props.concat(vProps);
- el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
- el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
- };
- if (factor.from.x != factor.to.x) { // Horizontal props scaling
- props = props.concat(hProps);
- el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);
- el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);
- };
- };
- if (scale == 'content' || scale == 'both') { // Scale the content
- if (factor.from.y != factor.to.y) { // Vertical props scaling
- props = props.concat(cProps);
- el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);
- el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);
- };
- };
- $.effects.save(el, restore ? props : props1); el.show(); // Save & Show
- $.effects.createWrapper(el); // Create Wrapper
- el.css('overflow','hidden').css(el.from); // Shift
-
- // Animate
- if (scale == 'content' || scale == 'both') { // Scale the children
- vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size
- hProps = hProps.concat(['marginLeft','marginRight']); // Add margins
- props2 = props.concat(vProps).concat(hProps); // Concat
- el.find("*[width]").each(function(){
- child = $(this);
- if (restore) $.effects.save(child, props2);
- var c_original = {height: child.height(), width: child.width()}; // Save original
- child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x};
- child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x};
- if (factor.from.y != factor.to.y) { // Vertical props scaling
- child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);
- child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);
- };
- if (factor.from.x != factor.to.x) { // Horizontal props scaling
- child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
- child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
- };
- child.css(child.from); // Shift children
- child.animate(child.to, o.duration, o.options.easing, function(){
- if (restore) $.effects.restore(child, props2); // Restore children
- }); // Animate children
- });
- };
-
- // Animate
- el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
- if (el.to.opacity === 0) {
- el.css('opacity', el.from.opacity);
- }
- if(mode == 'hide') el.hide(); // Hide
- $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
- el.dequeue();
- }});
-
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Shake 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.shake = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
- var direction = o.options.direction || 'left'; // Default direction
- var distance = o.options.distance || 20; // Default distance
- var times = o.options.times || 3; // Default # of times
- var speed = o.duration || o.options.duration || 140; // Default speed per shake
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- $.effects.createWrapper(el); // Create Wrapper
- var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
- var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
-
- // Animation
- var animation = {}, animation1 = {}, animation2 = {};
- animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
- animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2;
- animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2;
-
- // Animate
- el.animate(animation, speed, o.options.easing);
- for (var i = 1; i < times; i++) { // Shakes
- el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);
- };
- el.animate(animation1, speed, o.options.easing).
- animate(animation, speed / 2, o.options.easing, function(){ // Last shake
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
- });
- el.queue('fx', function() { el.dequeue(); });
- el.dequeue();
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Slide 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.slide = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','bottom','left','right'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
- var direction = o.options.direction || 'left'; // Default Direction
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
- var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
- var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
- var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true}));
- if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift
-
- // Animation
- var animation = {};
- animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
- // Animate
- el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
- if(mode == 'hide') el.hide(); // Hide
- $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
- if(o.callback) o.callback.apply(this, arguments); // Callback
- el.dequeue();
- }});
-
- });
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Transfer 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.transfer = function(o) {
- return this.queue(function() {
- var elem = $(this),
- target = $(o.options.to),
- endPosition = target.offset(),
- animation = {
- top: endPosition.top,
- left: endPosition.left,
- height: target.innerHeight(),
- width: target.innerWidth()
- },
- startPosition = elem.offset(),
- transfer = $('<div class="ui-effects-transfer"></div>')
- .appendTo(document.body)
- .addClass(o.options.className)
- .css({
- top: startPosition.top,
- left: startPosition.left,
- height: elem.innerHeight(),
- width: elem.innerWidth(),
- position: 'absolute'
- })
- .animate(animation, o.duration, o.options.easing, function() {
- transfer.remove();
- (o.callback && o.callback.apply(elem[0], arguments));
- elem.dequeue();
- });
- });
-};
-
-})(jQuery);
-/*
- * jQuery UI Accordion 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget( "ui.accordion", {
- options: {
- active: 0,
- animated: "slide",
- autoHeight: true,
- clearStyle: false,
- collapsible: false,
- event: "click",
- fillSpace: false,
- header: "> li > :first-child,> :not(li):even",
- icons: {
- header: "ui-icon-triangle-1-e",
- headerSelected: "ui-icon-triangle-1-s"
- },
- navigation: false,
- navigationFilter: function() {
- return this.href.toLowerCase() === location.href.toLowerCase();
- }
- },
-
- _create: function() {
- var self = this,
- options = self.options;
-
- self.running = 0;
-
- self.element
- .addClass( "ui-accordion ui-widget ui-helper-reset" )
- // in lack of child-selectors in CSS
- // we need to mark top-LIs in a UL-accordion for some IE-fix
- .children( "li" )
- .addClass( "ui-accordion-li-fix" );
-
- self.headers = self.element.find( options.header )
- .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )
- .bind( "mouseenter.accordion", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).addClass( "ui-state-hover" );
- })
- .bind( "mouseleave.accordion", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).removeClass( "ui-state-hover" );
- })
- .bind( "focus.accordion", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).addClass( "ui-state-focus" );
- })
- .bind( "blur.accordion", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).removeClass( "ui-state-focus" );
- });
-
- self.headers.next()
- .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
-
- if ( options.navigation ) {
- var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
- if ( current.length ) {
- var header = current.closest( ".ui-accordion-header" );
- if ( header.length ) {
- // anchor within header
- self.active = header;
- } else {
- // anchor within content
- self.active = current.closest( ".ui-accordion-content" ).prev();
- }
- }
- }
-
- self.active = self._findActive( self.active || options.active )
- .addClass( "ui-state-default ui-state-active" )
- .toggleClass( "ui-corner-all" )
- .toggleClass( "ui-corner-top" );
- self.active.next().addClass( "ui-accordion-content-active" );
-
- self._createIcons();
- self.resize();
-
- // ARIA
- self.element.attr( "role", "tablist" );
-
- self.headers
- .attr( "role", "tab" )
- .bind( "keydown.accordion", function( event ) {
- return self._keydown( event );
- })
- .next()
- .attr( "role", "tabpanel" );
-
- self.headers
- .not( self.active || "" )
- .attr({
- "aria-expanded": "false",
- "aria-selected": "false",
- tabIndex: -1
- })
- .next()
- .hide();
-
- // make sure at least one header is in the tab order
- if ( !self.active.length ) {
- self.headers.eq( 0 ).attr( "tabIndex", 0 );
- } else {
- self.active
- .attr({
- "aria-expanded": "true",
- "aria-selected": "true",
- tabIndex: 0
- });
- }
-
- // only need links in tab order for Safari
- if ( !$.browser.safari ) {
- self.headers.find( "a" ).attr( "tabIndex", -1 );
- }
-
- if ( options.event ) {
- self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {
- self._clickHandler.call( self, event, this );
- event.preventDefault();
- });
- }
- },
-
- _createIcons: function() {
- var options = this.options;
- if ( options.icons ) {
- $( "<span></span>" )
- .addClass( "ui-icon " + options.icons.header )
- .prependTo( this.headers );
- this.active.children( ".ui-icon" )
- .toggleClass(options.icons.header)
- .toggleClass(options.icons.headerSelected);
- this.element.addClass( "ui-accordion-icons" );
- }
- },
-
- _destroyIcons: function() {
- this.headers.children( ".ui-icon" ).remove();
- this.element.removeClass( "ui-accordion-icons" );
- },
-
- destroy: function() {
- var options = this.options;
-
- this.element
- .removeClass( "ui-accordion ui-widget ui-helper-reset" )
- .removeAttr( "role" );
-
- this.headers
- .unbind( ".accordion" )
- .removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
- .removeAttr( "role" )
- .removeAttr( "aria-expanded" )
- .removeAttr( "aria-selected" )
- .removeAttr( "tabIndex" );
-
- this.headers.find( "a" ).removeAttr( "tabIndex" );
- this._destroyIcons();
- var contents = this.headers.next()
- .css( "display", "" )
- .removeAttr( "role" )
- .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" );
- if ( options.autoHeight || options.fillHeight ) {
- contents.css( "height", "" );
- }
-
- return $.Widget.prototype.destroy.call( this );
- },
-
- _setOption: function( key, value ) {
- $.Widget.prototype._setOption.apply( this, arguments );
-
- if ( key == "active" ) {
- this.activate( value );
- }
- if ( key == "icons" ) {
- this._destroyIcons();
- if ( value ) {
- this._createIcons();
- }
- }
- // #5332 - opacity doesn't cascade to positioned elements in IE
- // so we need to add the disabled class to the headers and panels
- if ( key == "disabled" ) {
- this.headers.add(this.headers.next())
- [ value ? "addClass" : "removeClass" ](
- "ui-accordion-disabled ui-state-disabled" );
- }
- },
-
- _keydown: function( event ) {
- if ( this.options.disabled || event.altKey || event.ctrlKey ) {
- return;
- }
-
- var keyCode = $.ui.keyCode,
- length = this.headers.length,
- currentIndex = this.headers.index( event.target ),
- toFocus = false;
-
- switch ( event.keyCode ) {
- case keyCode.RIGHT:
- case keyCode.DOWN:
- toFocus = this.headers[ ( currentIndex + 1 ) % length ];
- break;
- case keyCode.LEFT:
- case keyCode.UP:
- toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
- break;
- case keyCode.SPACE:
- case keyCode.ENTER:
- this._clickHandler( { target: event.target }, event.target );
- event.preventDefault();
- }
-
- if ( toFocus ) {
- $( event.target ).attr( "tabIndex", -1 );
- $( toFocus ).attr( "tabIndex", 0 );
- toFocus.focus();
- return false;
- }
-
- return true;
- },
-
- resize: function() {
- var options = this.options,
- maxHeight;
-
- if ( options.fillSpace ) {
- if ( $.browser.msie ) {
- var defOverflow = this.element.parent().css( "overflow" );
- this.element.parent().css( "overflow", "hidden");
- }
- maxHeight = this.element.parent().height();
- if ($.browser.msie) {
- this.element.parent().css( "overflow", defOverflow );
- }
-
- this.headers.each(function() {
- maxHeight -= $( this ).outerHeight( true );
- });
-
- this.headers.next()
- .each(function() {
- $( this ).height( Math.max( 0, maxHeight -
- $( this ).innerHeight() + $( this ).height() ) );
- })
- .css( "overflow", "auto" );
- } else if ( options.autoHeight ) {
- maxHeight = 0;
- this.headers.next()
- .each(function() {
- maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
- })
- .height( maxHeight );
- }
-
- return this;
- },
-
- activate: function( index ) {
- // TODO this gets called on init, changing the option without an explicit call for that
- this.options.active = index;
- // call clickHandler with custom event
- var active = this._findActive( index )[ 0 ];
- this._clickHandler( { target: active }, active );
-
- return this;
- },
-
- _findActive: function( selector ) {
- return selector
- ? typeof selector === "number"
- ? this.headers.filter( ":eq(" + selector + ")" )
- : this.headers.not( this.headers.not( selector ) )
- : selector === false
- ? $( [] )
- : this.headers.filter( ":eq(0)" );
- },
-
- // TODO isn't event.target enough? why the separate target argument?
- _clickHandler: function( event, target ) {
- var options = this.options;
- if ( options.disabled ) {
- return;
- }
-
- // called only when using activate(false) to close all parts programmatically
- if ( !event.target ) {
- if ( !options.collapsible ) {
- return;
- }
- this.active
- .removeClass( "ui-state-active ui-corner-top" )
- .addClass( "ui-state-default ui-corner-all" )
- .children( ".ui-icon" )
- .removeClass( options.icons.headerSelected )
- .addClass( options.icons.header );
- this.active.next().addClass( "ui-accordion-content-active" );
- var toHide = this.active.next(),
- data = {
- options: options,
- newHeader: $( [] ),
- oldHeader: options.active,
- newContent: $( [] ),
- oldContent: toHide
- },
- toShow = ( this.active = $( [] ) );
- this._toggle( toShow, toHide, data );
- return;
- }
-
- // get the click target
- var clicked = $( event.currentTarget || target ),
- clickedIsActive = clicked[0] === this.active[0];
-
- // TODO the option is changed, is that correct?
- // TODO if it is correct, shouldn't that happen after determining that the click is valid?
- options.active = options.collapsible && clickedIsActive ?
- false :
- this.headers.index( clicked );
-
- // if animations are still active, or the active header is the target, ignore click
- if ( this.running || ( !options.collapsible && clickedIsActive ) ) {
- return;
- }
-
- // find elements to show and hide
- var active = this.active,
- toShow = clicked.next(),
- toHide = this.active.next(),
- data = {
- options: options,
- newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
- oldHeader: this.active,
- newContent: clickedIsActive && options.collapsible ? $([]) : toShow,
- oldContent: toHide
- },
- down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
-
- // when the call to ._toggle() comes after the class changes
- // it causes a very odd bug in IE 8 (see #6720)
- this.active = clickedIsActive ? $([]) : clicked;
- this._toggle( toShow, toHide, data, clickedIsActive, down );
-
- // switch classes
- active
- .removeClass( "ui-state-active ui-corner-top" )
- .addClass( "ui-state-default ui-corner-all" )
- .children( ".ui-icon" )
- .removeClass( options.icons.headerSelected )
- .addClass( options.icons.header );
- if ( !clickedIsActive ) {
- clicked
- .removeClass( "ui-state-default ui-corner-all" )
- .addClass( "ui-state-active ui-corner-top" )
- .children( ".ui-icon" )
- .removeClass( options.icons.header )
- .addClass( options.icons.headerSelected );
- clicked
- .next()
- .addClass( "ui-accordion-content-active" );
- }
-
- return;
- },
-
- _toggle: function( toShow, toHide, data, clickedIsActive, down ) {
- var self = this,
- options = self.options;
-
- self.toShow = toShow;
- self.toHide = toHide;
- self.data = data;
-
- var complete = function() {
- if ( !self ) {
- return;
- }
- return self._completed.apply( self, arguments );
- };
-
- // trigger changestart event
- self._trigger( "changestart", null, self.data );
-
- // count elements to animate
- self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
- if ( options.animated ) {
- var animOptions = {};
-
- if ( options.collapsible && clickedIsActive ) {
- animOptions = {
- toShow: $( [] ),
- toHide: toHide,
- complete: complete,
- down: down,
- autoHeight: options.autoHeight || options.fillSpace
- };
- } else {
- animOptions = {
- toShow: toShow,
- toHide: toHide,
- complete: complete,
- down: down,
- autoHeight: options.autoHeight || options.fillSpace
- };
- }
-
- if ( !options.proxied ) {
- options.proxied = options.animated;
- }
-
- if ( !options.proxiedDuration ) {
- options.proxiedDuration = options.duration;
- }
-
- options.animated = $.isFunction( options.proxied ) ?
- options.proxied( animOptions ) :
- options.proxied;
-
- options.duration = $.isFunction( options.proxiedDuration ) ?
- options.proxiedDuration( animOptions ) :
- options.proxiedDuration;
-
- var animations = $.ui.accordion.animations,
- duration = options.duration,
- easing = options.animated;
-
- if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
- easing = "slide";
- }
- if ( !animations[ easing ] ) {
- animations[ easing ] = function( options ) {
- this.slide( options, {
- easing: easing,
- duration: duration || 700
- });
- };
- }
-
- animations[ easing ]( animOptions );
- } else {
- if ( options.collapsible && clickedIsActive ) {
- toShow.toggle();
- } else {
- toHide.hide();
- toShow.show();
- }
-
- complete( true );
- }
-
- // TODO assert that the blur and focus triggers are really necessary, remove otherwise
- toHide.prev()
- .attr({
- "aria-expanded": "false",
- "aria-selected": "false",
- tabIndex: -1
- })
- .blur();
- toShow.prev()
- .attr({
- "aria-expanded": "true",
- "aria-selected": "true",
- tabIndex: 0
- })
- .focus();
- },
-
- _completed: function( cancel ) {
- this.running = cancel ? 0 : --this.running;
- if ( this.running ) {
- return;
- }
-
- if ( this.options.clearStyle ) {
- this.toShow.add( this.toHide ).css({
- height: "",
- overflow: ""
- });
- }
-
- // other classes are removed before the animation; this one needs to stay until completed
- this.toHide.removeClass( "ui-accordion-content-active" );
- // Work around for rendering bug in IE (#5421)
- if ( this.toHide.length ) {
- this.toHide.parent()[0].className = this.toHide.parent()[0].className;
- }
-
- this._trigger( "change", null, this.data );
- }
-});
-
-$.extend( $.ui.accordion, {
- version: "1.8.16",
- animations: {
- slide: function( options, additions ) {
- options = $.extend({
- easing: "swing",
- duration: 300
- }, options, additions );
- if ( !options.toHide.size() ) {
- options.toShow.animate({
- height: "show",
- paddingTop: "show",
- paddingBottom: "show"
- }, options );
- return;
- }
- if ( !options.toShow.size() ) {
- options.toHide.animate({
- height: "hide",
- paddingTop: "hide",
- paddingBottom: "hide"
- }, options );
- return;
- }
- var overflow = options.toShow.css( "overflow" ),
- percentDone = 0,
- showProps = {},
- hideProps = {},
- fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
- originalWidth;
- // fix width before calculating height of hidden element
- var s = options.toShow;
- originalWidth = s[0].style.width;
- s.width( parseInt( s.parent().width(), 10 )
- - parseInt( s.css( "paddingLeft" ), 10 )
- - parseInt( s.css( "paddingRight" ), 10 )
- - ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )
- - ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );
-
- $.each( fxAttrs, function( i, prop ) {
- hideProps[ prop ] = "hide";
-
- var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ );
- showProps[ prop ] = {
- value: parts[ 1 ],
- unit: parts[ 2 ] || "px"
- };
- });
- options.toShow.css({ height: 0, overflow: "hidden" }).show();
- options.toHide
- .filter( ":hidden" )
- .each( options.complete )
- .end()
- .filter( ":visible" )
- .animate( hideProps, {
- step: function( now, settings ) {
- // only calculate the percent when animating height
- // IE gets very inconsistent results when animating elements
- // with small values, which is common for padding
- if ( settings.prop == "height" ) {
- percentDone = ( settings.end - settings.start === 0 ) ? 0 :
- ( settings.now - settings.start ) / ( settings.end - settings.start );
- }
-
- options.toShow[ 0 ].style[ settings.prop ] =
- ( percentDone * showProps[ settings.prop ].value )
- + showProps[ settings.prop ].unit;
- },
- duration: options.duration,
- easing: options.easing,
- complete: function() {
- if ( !options.autoHeight ) {
- options.toShow.css( "height", "" );
- }
- options.toShow.css({
- width: originalWidth,
- overflow: overflow
- });
- options.complete();
- }
- });
- },
- bounceslide: function( options ) {
- this.slide( options, {
- easing: options.down ? "easeOutBounce" : "swing",
- duration: options.down ? 1000 : 200
- });
- }
- }
-});
-
-})( jQuery );
-/*
- * jQuery UI Autocomplete 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.position.js
- */
-(function( $, undefined ) {
-
-// used to prevent race conditions with remote data sources
-var requestIndex = 0;
-
-$.widget( "ui.autocomplete", {
- options: {
- appendTo: "body",
- autoFocus: false,
- delay: 300,
- minLength: 1,
- position: {
- my: "left top",
- at: "left bottom",
- collision: "none"
- },
- source: null
- },
-
- pending: 0,
-
- _create: function() {
- var self = this,
- doc = this.element[ 0 ].ownerDocument,
- suppressKeyPress;
-
- this.element
- .addClass( "ui-autocomplete-input" )
- .attr( "autocomplete", "off" )
- // TODO verify these actually work as intended
- .attr({
- role: "textbox",
- "aria-autocomplete": "list",
- "aria-haspopup": "true"
- })
- .bind( "keydown.autocomplete", function( event ) {
- if ( self.options.disabled || self.element.propAttr( "readOnly" ) ) {
- return;
- }
-
- suppressKeyPress = false;
- var keyCode = $.ui.keyCode;
- switch( event.keyCode ) {
- case keyCode.PAGE_UP:
- self._move( "previousPage", event );
- break;
- case keyCode.PAGE_DOWN:
- self._move( "nextPage", event );
- break;
- case keyCode.UP:
- self._move( "previous", event );
- // prevent moving cursor to beginning of text field in some browsers
- event.preventDefault();
- break;
- case keyCode.DOWN:
- self._move( "next", event );
- // prevent moving cursor to end of text field in some browsers
- event.preventDefault();
- break;
- case keyCode.ENTER:
- case keyCode.NUMPAD_ENTER:
- // when menu is open and has focus
- if ( self.menu.active ) {
- // #6055 - Opera still allows the keypress to occur
- // which causes forms to submit
- suppressKeyPress = true;
- event.preventDefault();
- }
- //passthrough - ENTER and TAB both select the current element
- case keyCode.TAB:
- if ( !self.menu.active ) {
- return;
- }
- self.menu.select( event );
- break;
- case keyCode.ESCAPE:
- self.element.val( self.term );
- self.close( event );
- break;
- default:
- // keypress is triggered before the input value is changed
- clearTimeout( self.searching );
- self.searching = setTimeout(function() {
- // only search if the value has changed
- if ( self.term != self.element.val() ) {
- self.selectedItem = null;
- self.search( null, event );
- }
- }, self.options.delay );
- break;
- }
- })
- .bind( "keypress.autocomplete", function( event ) {
- if ( suppressKeyPress ) {
- suppressKeyPress = false;
- event.preventDefault();
- }
- })
- .bind( "focus.autocomplete", function() {
- if ( self.options.disabled ) {
- return;
- }
-
- self.selectedItem = null;
- self.previous = self.element.val();
- })
- .bind( "blur.autocomplete", function( event ) {
- if ( self.options.disabled ) {
- return;
- }
-
- clearTimeout( self.searching );
- // clicks on the menu (or a button to trigger a search) will cause a blur event
- self.closing = setTimeout(function() {
- self.close( event );
- self._change( event );
- }, 150 );
- });
- this._initSource();
- this.response = function() {
- return self._response.apply( self, arguments );
- };
- this.menu = $( "<ul></ul>" )
- .addClass( "ui-autocomplete" )
- .appendTo( $( this.options.appendTo || "body", doc )[0] )
- // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown)
- .mousedown(function( event ) {
- // clicking on the scrollbar causes focus to shift to the body
- // but we can't detect a mouseup or a click immediately afterward
- // so we have to track the next mousedown and close the menu if
- // the user clicks somewhere outside of the autocomplete
- var menuElement = self.menu.element[ 0 ];
- if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
- setTimeout(function() {
- $( document ).one( 'mousedown', function( event ) {
- if ( event.target !== self.element[ 0 ] &&
- event.target !== menuElement &&
- !$.ui.contains( menuElement, event.target ) ) {
- self.close();
- }
- });
- }, 1 );
- }
-
- // use another timeout to make sure the blur-event-handler on the input was already triggered
- setTimeout(function() {
- clearTimeout( self.closing );
- }, 13);
- })
- .menu({
- focus: function( event, ui ) {
- var item = ui.item.data( "item.autocomplete" );
- if ( false !== self._trigger( "focus", event, { item: item } ) ) {
- // use value to match what will end up in the input, if it was a key event
- if ( /^key/.test(event.originalEvent.type) ) {
- self.element.val( item.value );
- }
- }
- },
- selected: function( event, ui ) {
- var item = ui.item.data( "item.autocomplete" ),
- previous = self.previous;
-
- // only trigger when focus was lost (click on menu)
- if ( self.element[0] !== doc.activeElement ) {
- self.element.focus();
- self.previous = previous;
- // #6109 - IE triggers two focus events and the second
- // is asynchronous, so we need to reset the previous
- // term synchronously and asynchronously :-(
- setTimeout(function() {
- self.previous = previous;
- self.selectedItem = item;
- }, 1);
- }
-
- if ( false !== self._trigger( "select", event, { item: item } ) ) {
- self.element.val( item.value );
- }
- // reset the term after the select event
- // this allows custom select handling to work properly
- self.term = self.element.val();
-
- self.close( event );
- self.selectedItem = item;
- },
- blur: function( event, ui ) {
- // don't set the value of the text field if it's already correct
- // this prevents moving the cursor unnecessarily
- if ( self.menu.element.is(":visible") &&
- ( self.element.val() !== self.term ) ) {
- self.element.val( self.term );
- }
- }
- })
- .zIndex( this.element.zIndex() + 1 )
- // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
- .css({ top: 0, left: 0 })
- .hide()
- .data( "menu" );
- if ( $.fn.bgiframe ) {
- this.menu.element.bgiframe();
- }
- },
-
- destroy: function() {
- this.element
- .removeClass( "ui-autocomplete-input" )
- .removeAttr( "autocomplete" )
- .removeAttr( "role" )
- .removeAttr( "aria-autocomplete" )
- .removeAttr( "aria-haspopup" );
- this.menu.element.remove();
- $.Widget.prototype.destroy.call( this );
- },
-
- _setOption: function( key, value ) {
- $.Widget.prototype._setOption.apply( this, arguments );
- if ( key === "source" ) {
- this._initSource();
- }
- if ( key === "appendTo" ) {
- this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )
- }
- if ( key === "disabled" && value && this.xhr ) {
- this.xhr.abort();
- }
- },
-
- _initSource: function() {
- var self = this,
- array,
- url;
- if ( $.isArray(this.options.source) ) {
- array = this.options.source;
- this.source = function( request, response ) {
- response( $.ui.autocomplete.filter(array, request.term) );
- };
- } else if ( typeof this.options.source === "string" ) {
- url = this.options.source;
- this.source = function( request, response ) {
- if ( self.xhr ) {
- self.xhr.abort();
- }
- self.xhr = $.ajax({
- url: url,
- data: request,
- dataType: "json",
- autocompleteRequest: ++requestIndex,
- success: function( data, status ) {
- if ( this.autocompleteRequest === requestIndex ) {
- response( data );
- }
- },
- error: function() {
- if ( this.autocompleteRequest === requestIndex ) {
- response( [] );
- }
- }
- });
- };
- } else {
- this.source = this.options.source;
- }
- },
-
- search: function( value, event ) {
- value = value != null ? value : this.element.val();
-
- // always save the actual value, not the one passed as an argument
- this.term = this.element.val();
-
- if ( value.length < this.options.minLength ) {
- return this.close( event );
- }
-
- clearTimeout( this.closing );
- if ( this._trigger( "search", event ) === false ) {
- return;
- }
-
- return this._search( value );
- },
-
- _search: function( value ) {
- this.pending++;
- this.element.addClass( "ui-autocomplete-loading" );
-
- this.source( { term: value }, this.response );
- },
-
- _response: function( content ) {
- if ( !this.options.disabled && content && content.length ) {
- content = this._normalize( content );
- this._suggest( content );
- this._trigger( "open" );
- } else {
- this.close();
- }
- this.pending--;
- if ( !this.pending ) {
- this.element.removeClass( "ui-autocomplete-loading" );
- }
- },
-
- close: function( event ) {
- clearTimeout( this.closing );
- if ( this.menu.element.is(":visible") ) {
- this.menu.element.hide();
- this.menu.deactivate();
- this._trigger( "close", event );
- }
- },
-
- _change: function( event ) {
- if ( this.previous !== this.element.val() ) {
- this._trigger( "change", event, { item: this.selectedItem } );
- }
- },
-
- _normalize: function( items ) {
- // assume all items have the right format when the first item is complete
- if ( items.length && items[0].label && items[0].value ) {
- return items;
- }
- return $.map( items, function(item) {
- if ( typeof item === "string" ) {
- return {
- label: item,
- value: item
- };
- }
- return $.extend({
- label: item.label || item.value,
- value: item.value || item.label
- }, item );
- });
- },
-
- _suggest: function( items ) {
- var ul = this.menu.element
- .empty()
- .zIndex( this.element.zIndex() + 1 );
- this._renderMenu( ul, items );
- // TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate
- this.menu.deactivate();
- this.menu.refresh();
-
- // size and position menu
- ul.show();
- this._resizeMenu();
- ul.position( $.extend({
- of: this.element
- }, this.options.position ));
-
- if ( this.options.autoFocus ) {
- this.menu.next( new $.Event("mouseover") );
- }
- },
-
- _resizeMenu: function() {
- var ul = this.menu.element;
- ul.outerWidth( Math.max(
- ul.width( "" ).outerWidth(),
- this.element.outerWidth()
- ) );
- },
-
- _renderMenu: function( ul, items ) {
- var self = this;
- $.each( items, function( index, item ) {
- self._renderItem( ul, item );
- });
- },
-
- _renderItem: function( ul, item) {
- return $( "<li></li>" )
- .data( "item.autocomplete", item )
- .append( $( "<a></a>" ).text( item.label ) )
- .appendTo( ul );
- },
-
- _move: function( direction, event ) {
- if ( !this.menu.element.is(":visible") ) {
- this.search( null, event );
- return;
- }
- if ( this.menu.first() && /^previous/.test(direction) ||
- this.menu.last() && /^next/.test(direction) ) {
- this.element.val( this.term );
- this.menu.deactivate();
- return;
- }
- this.menu[ direction ]( event );
- },
-
- widget: function() {
- return this.menu.element;
- }
-});
-
-$.extend( $.ui.autocomplete, {
- escapeRegex: function( value ) {
- return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
- },
- filter: function(array, term) {
- var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
- return $.grep( array, function(value) {
- return matcher.test( value.label || value.value || value );
- });
- }
-});
-
-}( jQuery ));
-
-/*
- * jQuery UI Menu (not officially released)
- *
- * This widget isn't yet finished and the API is subject to change. We plan to finish
- * it for the next release. You're welcome to give it a try anyway and give us feedback,
- * as long as you're okay with migrating your code later on. We can help with that, too.
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function($) {
-
-$.widget("ui.menu", {
- _create: function() {
- var self = this;
- this.element
- .addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
- .attr({
- role: "listbox",
- "aria-activedescendant": "ui-active-menuitem"
- })
- .click(function( event ) {
- if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
- return;
- }
- // temporary
- event.preventDefault();
- self.select( event );
- });
- this.refresh();
- },
-
- refresh: function() {
- var self = this;
-
- // don't refresh list items that are already adapted
- var items = this.element.children("li:not(.ui-menu-item):has(a)")
- .addClass("ui-menu-item")
- .attr("role", "menuitem");
-
- items.children("a")
- .addClass("ui-corner-all")
- .attr("tabindex", -1)
- // mouseenter doesn't work with event delegation
- .mouseenter(function( event ) {
- self.activate( event, $(this).parent() );
- })
- .mouseleave(function() {
- self.deactivate();
- });
- },
-
- activate: function( event, item ) {
- this.deactivate();
- if (this.hasScroll()) {
- var offset = item.offset().top - this.element.offset().top,
- scroll = this.element.scrollTop(),
- elementHeight = this.element.height();
- if (offset < 0) {
- this.element.scrollTop( scroll + offset);
- } else if (offset >= elementHeight) {
- this.element.scrollTop( scroll + offset - elementHeight + item.height());
- }
- }
- this.active = item.eq(0)
- .children("a")
- .addClass("ui-state-hover")
- .attr("id", "ui-active-menuitem")
- .end();
- this._trigger("focus", event, { item: item });
- },
-
- deactivate: function() {
- if (!this.active) { return; }
-
- this.active.children("a")
- .removeClass("ui-state-hover")
- .removeAttr("id");
- this._trigger("blur");
- this.active = null;
- },
-
- next: function(event) {
- this.move("next", ".ui-menu-item:first", event);
- },
-
- previous: function(event) {
- this.move("prev", ".ui-menu-item:last", event);
- },
-
- first: function() {
- return this.active && !this.active.prevAll(".ui-menu-item").length;
- },
-
- last: function() {
- return this.active && !this.active.nextAll(".ui-menu-item").length;
- },
-
- move: function(direction, edge, event) {
- if (!this.active) {
- this.activate(event, this.element.children(edge));
- return;
- }
- var next = this.active[direction + "All"](".ui-menu-item").eq(0);
- if (next.length) {
- this.activate(event, next);
- } else {
- this.activate(event, this.element.children(edge));
- }
- },
-
- // TODO merge with previousPage
- nextPage: function(event) {
- if (this.hasScroll()) {
- // TODO merge with no-scroll-else
- if (!this.active || this.last()) {
- this.activate(event, this.element.children(".ui-menu-item:first"));
- return;
- }
- var base = this.active.offset().top,
- height = this.element.height(),
- result = this.element.children(".ui-menu-item").filter(function() {
- var close = $(this).offset().top - base - height + $(this).height();
- // TODO improve approximation
- return close < 10 && close > -10;
- });
-
- // TODO try to catch this earlier when scrollTop indicates the last page anyway
- if (!result.length) {
- result = this.element.children(".ui-menu-item:last");
- }
- this.activate(event, result);
- } else {
- this.activate(event, this.element.children(".ui-menu-item")
- .filter(!this.active || this.last() ? ":first" : ":last"));
- }
- },
-
- // TODO merge with nextPage
- previousPage: function(event) {
- if (this.hasScroll()) {
- // TODO merge with no-scroll-else
- if (!this.active || this.first()) {
- this.activate(event, this.element.children(".ui-menu-item:last"));
- return;
- }
-
- var base = this.active.offset().top,
- height = this.element.height();
- result = this.element.children(".ui-menu-item").filter(function() {
- var close = $(this).offset().top - base + height - $(this).height();
- // TODO improve approximation
- return close < 10 && close > -10;
- });
-
- // TODO try to catch this earlier when scrollTop indicates the last page anyway
- if (!result.length) {
- result = this.element.children(".ui-menu-item:first");
- }
- this.activate(event, result);
- } else {
- this.activate(event, this.element.children(".ui-menu-item")
- .filter(!this.active || this.first() ? ":last" : ":first"));
- }
- },
-
- hasScroll: function() {
- return this.element.height() < this.element[ $.fn.prop ? "prop" : "attr" ]("scrollHeight");
- },
-
- select: function( event ) {
- this._trigger("selected", event, { item: this.active });
- }
-});
-
-}(jQuery));
-/*
- * jQuery UI Button 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var lastActive, startXPos, startYPos, clickDragged,
- baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
- stateClasses = "ui-state-hover ui-state-active ",
- typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
- formResetHandler = function() {
- var buttons = $( this ).find( ":ui-button" );
- setTimeout(function() {
- buttons.button( "refresh" );
- }, 1 );
- },
- radioGroup = function( radio ) {
- var name = radio.name,
- form = radio.form,
- radios = $( [] );
- if ( name ) {
- if ( form ) {
- radios = $( form ).find( "[name='" + name + "']" );
- } else {
- radios = $( "[name='" + name + "']", radio.ownerDocument )
- .filter(function() {
- return !this.form;
- });
- }
- }
- return radios;
- };
-
-$.widget( "ui.button", {
- options: {
- disabled: null,
- text: true,
- label: null,
- icons: {
- primary: null,
- secondary: null
- }
- },
- _create: function() {
- this.element.closest( "form" )
- .unbind( "reset.button" )
- .bind( "reset.button", formResetHandler );
-
- if ( typeof this.options.disabled !== "boolean" ) {
- this.options.disabled = this.element.propAttr( "disabled" );
- }
-
- this._determineButtonType();
- this.hasTitle = !!this.buttonElement.attr( "title" );
-
- var self = this,
- options = this.options,
- toggleButton = this.type === "checkbox" || this.type === "radio",
- hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ),
- focusClass = "ui-state-focus";
-
- if ( options.label === null ) {
- options.label = this.buttonElement.html();
- }
-
- if ( this.element.is( ":disabled" ) ) {
- options.disabled = true;
- }
-
- this.buttonElement
- .addClass( baseClasses )
- .attr( "role", "button" )
- .bind( "mouseenter.button", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).addClass( "ui-state-hover" );
- if ( this === lastActive ) {
- $( this ).addClass( "ui-state-active" );
- }
- })
- .bind( "mouseleave.button", function() {
- if ( options.disabled ) {
- return;
- }
- $( this ).removeClass( hoverClass );
- })
- .bind( "click.button", function( event ) {
- if ( options.disabled ) {
- event.preventDefault();
- event.stopImmediatePropagation();
- }
- });
-
- this.element
- .bind( "focus.button", function() {
- // no need to check disabled, focus won't be triggered anyway
- self.buttonElement.addClass( focusClass );
- })
- .bind( "blur.button", function() {
- self.buttonElement.removeClass( focusClass );
- });
-
- if ( toggleButton ) {
- this.element.bind( "change.button", function() {
- if ( clickDragged ) {
- return;
- }
- self.refresh();
- });
- // if mouse moves between mousedown and mouseup (drag) set clickDragged flag
- // prevents issue where button state changes but checkbox/radio checked state
- // does not in Firefox (see ticket #6970)
- this.buttonElement
- .bind( "mousedown.button", function( event ) {
- if ( options.disabled ) {
- return;
- }
- clickDragged = false;
- startXPos = event.pageX;
- startYPos = event.pageY;
- })
- .bind( "mouseup.button", function( event ) {
- if ( options.disabled ) {
- return;
- }
- if ( startXPos !== event.pageX || startYPos !== event.pageY ) {
- clickDragged = true;
- }
- });
- }
-
- if ( this.type === "checkbox" ) {
- this.buttonElement.bind( "click.button", function() {
- if ( options.disabled || clickDragged ) {
- return false;
- }
- $( this ).toggleClass( "ui-state-active" );
- self.buttonElement.attr( "aria-pressed", self.element[0].checked );
- });
- } else if ( this.type === "radio" ) {
- this.buttonElement.bind( "click.button", function() {
- if ( options.disabled || clickDragged ) {
- return false;
- }
- $( this ).addClass( "ui-state-active" );
- self.buttonElement.attr( "aria-pressed", "true" );
-
- var radio = self.element[ 0 ];
- radioGroup( radio )
- .not( radio )
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", "false" );
- });
- } else {
- this.buttonElement
- .bind( "mousedown.button", function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).addClass( "ui-state-active" );
- lastActive = this;
- $( document ).one( "mouseup", function() {
- lastActive = null;
- });
- })
- .bind( "mouseup.button", function() {
- if ( options.disabled ) {
- return false;
- }
- $( this ).removeClass( "ui-state-active" );
- })
- .bind( "keydown.button", function(event) {
- if ( options.disabled ) {
- return false;
- }
- if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {
- $( this ).addClass( "ui-state-active" );
- }
- })
- .bind( "keyup.button", function() {
- $( this ).removeClass( "ui-state-active" );
- });
-
- if ( this.buttonElement.is("a") ) {
- this.buttonElement.keyup(function(event) {
- if ( event.keyCode === $.ui.keyCode.SPACE ) {
- // TODO pass through original event correctly (just as 2nd argument doesn't work)
- $( this ).click();
- }
- });
- }
- }
-
- // TODO: pull out $.Widget's handling for the disabled option into
- // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
- // be overridden by individual plugins
- this._setOption( "disabled", options.disabled );
- this._resetButton();
- },
-
- _determineButtonType: function() {
-
- if ( this.element.is(":checkbox") ) {
- this.type = "checkbox";
- } else if ( this.element.is(":radio") ) {
- this.type = "radio";
- } else if ( this.element.is("input") ) {
- this.type = "input";
- } else {
- this.type = "button";
- }
-
- if ( this.type === "checkbox" || this.type === "radio" ) {
- // we don't search against the document in case the element
- // is disconnected from the DOM
- var ancestor = this.element.parents().filter(":last"),
- labelSelector = "label[for='" + this.element.attr("id") + "']";
- this.buttonElement = ancestor.find( labelSelector );
- if ( !this.buttonElement.length ) {
- ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
- this.buttonElement = ancestor.filter( labelSelector );
- if ( !this.buttonElement.length ) {
- this.buttonElement = ancestor.find( labelSelector );
- }
- }
- this.element.addClass( "ui-helper-hidden-accessible" );
-
- var checked = this.element.is( ":checked" );
- if ( checked ) {
- this.buttonElement.addClass( "ui-state-active" );
- }
- this.buttonElement.attr( "aria-pressed", checked );
- } else {
- this.buttonElement = this.element;
- }
- },
-
- widget: function() {
- return this.buttonElement;
- },
-
- destroy: function() {
- this.element
- .removeClass( "ui-helper-hidden-accessible" );
- this.buttonElement
- .removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
- .removeAttr( "role" )
- .removeAttr( "aria-pressed" )
- .html( this.buttonElement.find(".ui-button-text").html() );
-
- if ( !this.hasTitle ) {
- this.buttonElement.removeAttr( "title" );
- }
-
- $.Widget.prototype.destroy.call( this );
- },
-
- _setOption: function( key, value ) {
- $.Widget.prototype._setOption.apply( this, arguments );
- if ( key === "disabled" ) {
- if ( value ) {
- this.element.propAttr( "disabled", true );
- } else {
- this.element.propAttr( "disabled", false );
- }
- return;
- }
- this._resetButton();
- },
-
- refresh: function() {
- var isDisabled = this.element.is( ":disabled" );
- if ( isDisabled !== this.options.disabled ) {
- this._setOption( "disabled", isDisabled );
- }
- if ( this.type === "radio" ) {
- radioGroup( this.element[0] ).each(function() {
- if ( $( this ).is( ":checked" ) ) {
- $( this ).button( "widget" )
- .addClass( "ui-state-active" )
- .attr( "aria-pressed", "true" );
- } else {
- $( this ).button( "widget" )
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", "false" );
- }
- });
- } else if ( this.type === "checkbox" ) {
- if ( this.element.is( ":checked" ) ) {
- this.buttonElement
- .addClass( "ui-state-active" )
- .attr( "aria-pressed", "true" );
- } else {
- this.buttonElement
- .removeClass( "ui-state-active" )
- .attr( "aria-pressed", "false" );
- }
- }
- },
-
- _resetButton: function() {
- if ( this.type === "input" ) {
- if ( this.options.label ) {
- this.element.val( this.options.label );
- }
- return;
- }
- var buttonElement = this.buttonElement.removeClass( typeClasses ),
- buttonText = $( "<span></span>" )
- .addClass( "ui-button-text" )
- .html( this.options.label )
- .appendTo( buttonElement.empty() )
- .text(),
- icons = this.options.icons,
- multipleIcons = icons.primary && icons.secondary,
- buttonClasses = [];
-
- if ( icons.primary || icons.secondary ) {
- if ( this.options.text ) {
- buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
- }
-
- if ( icons.primary ) {
- buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
- }
-
- if ( icons.secondary ) {
- buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
- }
-
- if ( !this.options.text ) {
- buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
-
- if ( !this.hasTitle ) {
- buttonElement.attr( "title", buttonText );
- }
- }
- } else {
- buttonClasses.push( "ui-button-text-only" );
- }
- buttonElement.addClass( buttonClasses.join( " " ) );
- }
-});
-
-$.widget( "ui.buttonset", {
- options: {
- items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"
- },
-
- _create: function() {
- this.element.addClass( "ui-buttonset" );
- },
-
- _init: function() {
- this.refresh();
- },
-
- _setOption: function( key, value ) {
- if ( key === "disabled" ) {
- this.buttons.button( "option", key, value );
- }
-
- $.Widget.prototype._setOption.apply( this, arguments );
- },
-
- refresh: function() {
- var ltr = this.element.css( "direction" ) === "ltr";
-
- this.buttons = this.element.find( this.options.items )
- .filter( ":ui-button" )
- .button( "refresh" )
- .end()
- .not( ":ui-button" )
- .button()
- .end()
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
- .filter( ":first" )
- .addClass( ltr ? "ui-corner-left" : "ui-corner-right" )
- .end()
- .filter( ":last" )
- .addClass( ltr ? "ui-corner-right" : "ui-corner-left" )
- .end()
- .end();
- },
-
- destroy: function() {
- this.element.removeClass( "ui-buttonset" );
- this.buttons
- .map(function() {
- return $( this ).button( "widget" )[ 0 ];
- })
- .removeClass( "ui-corner-left ui-corner-right" )
- .end()
- .button( "destroy" );
-
- $.Widget.prototype.destroy.call( this );
- }
-});
-
-}( jQuery ) );
-/*
- * jQuery UI Datepicker 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- * jquery.ui.core.js
- */
-(function( $, undefined ) {
-
-$.extend($.ui, { datepicker: { version: "1.8.16" } });
-
-var PROP_NAME = 'datepicker';
-var dpuuid = new Date().getTime();
-var instActive;
-
-/* Date picker manager.
- Use the singleton instance of this class, $.datepicker, to interact with the date picker.
- Settings for (groups of) date pickers are maintained in an instance object,
- allowing multiple different settings on the same page. */
-
-function Datepicker() {
- this.debug = false; // Change this to true to start debugging
- this._curInst = null; // The current instance in use
- this._keyEvent = false; // If the last event was a key event
- this._disabledInputs = []; // List of date picker inputs that have been disabled
- this._datepickerShowing = false; // True if the popup picker is showing , false if not
- this._inDialog = false; // True if showing within a "dialog", false if not
- this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
- this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
- this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
- this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
- this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
- this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
- this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
- this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
- this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
- this.regional = []; // Available regional settings, indexed by language code
- this.regional[''] = { // Default regional settings
- closeText: 'Done', // Display text for close link
- prevText: 'Prev', // Display text for previous month link
- nextText: 'Next', // Display text for next month link
- currentText: 'Today', // Display text for current month link
- monthNames: ['January','February','March','April','May','June',
- 'July','August','September','October','November','December'], // Names of months for drop-down and formatting
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
- weekHeader: 'Wk', // Column header for week of the year
- dateFormat: 'mm/dd/yy', // See format options on parseDate
- firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
- isRTL: false, // True if right-to-left language, false if left-to-right
- showMonthAfterYear: false, // True if the year select precedes month, false for month then year
- yearSuffix: '' // Additional text to append to the year in the month headers
- };
- this._defaults = { // Global defaults for all the date picker instances
- showOn: 'focus', // 'focus' for popup on focus,
- // 'button' for trigger button, or 'both' for either
- showAnim: 'fadeIn', // Name of jQuery animation for popup
- showOptions: {}, // Options for enhanced animations
- defaultDate: null, // Used when field is blank: actual date,
- // +/-number for offset from today, null for today
- appendText: '', // Display text following the input box, e.g. showing the format
- buttonText: '...', // Text for trigger button
- buttonImage: '', // URL for trigger button image
- buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
- hideIfNoPrevNext: false, // True to hide next/previous month links
- // if not applicable, false to just disable them
- navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
- gotoCurrent: false, // True if today link goes back to current selection instead
- changeMonth: false, // True if month can be selected directly, false if only prev/next
- changeYear: false, // True if year can be selected directly, false if only prev/next
- yearRange: 'c-10:c+10', // Range of years to display in drop-down,
- // either relative to today's year (-nn:+nn), relative to currently displayed year
- // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
- showOtherMonths: false, // True to show dates in other months, false to leave blank
- selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
- showWeek: false, // True to show week of the year, false to not show it
- calculateWeek: this.iso8601Week, // How to calculate the week of the year,
- // takes a Date and returns the number of the week for it
- shortYearCutoff: '+10', // Short year values < this are in the current century,
- // > this are in the previous century,
- // string value starting with '+' for current year + value
- minDate: null, // The earliest selectable date, or null for no limit
- maxDate: null, // The latest selectable date, or null for no limit
- duration: 'fast', // Duration of display/closure
- beforeShowDay: null, // Function that takes a date and returns an array with
- // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
- // [2] = cell title (optional), e.g. $.datepicker.noWeekends
- beforeShow: null, // Function that takes an input field and
- // returns a set of custom settings for the date picker
- onSelect: null, // Define a callback function when a date is selected
- onChangeMonthYear: null, // Define a callback function when the month or year is changed
- onClose: null, // Define a callback function when the datepicker is closed
- numberOfMonths: 1, // Number of months to show at a time
- showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
- stepMonths: 1, // Number of months to step back/forward
- stepBigMonths: 12, // Number of months to step back/forward for the big links
- altField: '', // Selector for an alternate field to store selected dates into
- altFormat: '', // The date format to use for the alternate field
- constrainInput: true, // The input is constrained by the current date format
- showButtonPanel: false, // True to show button panel, false to not show it
- autoSize: false, // True to size the input for the date format, false to leave as is
- disabled: false // The initial disabled state
- };
- $.extend(this._defaults, this.regional['']);
- this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
-}
-
-$.extend(Datepicker.prototype, {
- /* Class name added to elements to indicate already configured with a date picker. */
- markerClassName: 'hasDatepicker',
-
- //Keep track of the maximum number of rows displayed (see #7043)
- maxRows: 4,
-
- /* Debug logging (if enabled). */
- log: function () {
- if (this.debug)
- console.log.apply('', arguments);
- },
-
- // TODO rename to "widget" when switching to widget factory
- _widgetDatepicker: function() {
- return this.dpDiv;
- },
-
- /* Override the default settings for all instances of the date picker.
- @param settings object - the new settings to use as defaults (anonymous object)
- @return the manager object */
- setDefaults: function(settings) {
- extendRemove(this._defaults, settings || {});
- return this;
- },
-
- /* Attach the date picker to a jQuery selection.
- @param target element - the target input field or division or span
- @param settings object - the new settings to use for this date picker instance (anonymous) */
- _attachDatepicker: function(target, settings) {
- // check for settings on the control itself - in namespace 'date:'
- var inlineSettings = null;
- for (var attrName in this._defaults) {
- var attrValue = target.getAttribute('date:' + attrName);
- if (attrValue) {
- inlineSettings = inlineSettings || {};
- try {
- inlineSettings[attrName] = eval(attrValue);
- } catch (err) {
- inlineSettings[attrName] = attrValue;
- }
- }
- }
- var nodeName = target.nodeName.toLowerCase();
- var inline = (nodeName == 'div' || nodeName == 'span');
- if (!target.id) {
- this.uuid += 1;
- target.id = 'dp' + this.uuid;
- }
- var inst = this._newInst($(target), inline);
- inst.settings = $.extend({}, settings || {}, inlineSettings || {});
- if (nodeName == 'input') {
- this._connectDatepicker(target, inst);
- } else if (inline) {
- this._inlineDatepicker(target, inst);
- }
- },
-
- /* Create a new instance object. */
- _newInst: function(target, inline) {
- var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
- return {id: id, input: target, // associated target
- selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
- drawMonth: 0, drawYear: 0, // month being drawn
- inline: inline, // is datepicker inline or not
- dpDiv: (!inline ? this.dpDiv : // presentation div
- bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))};
- },
-
- /* Attach the date picker to an input field. */
- _connectDatepicker: function(target, inst) {
- var input = $(target);
- inst.append = $([]);
- inst.trigger = $([]);
- if (input.hasClass(this.markerClassName))
- return;
- this._attachments(input, inst);
- input.addClass(this.markerClassName).keydown(this._doKeyDown).
- keypress(this._doKeyPress).keyup(this._doKeyUp).
- bind("setData.datepicker", function(event, key, value) {
- inst.settings[key] = value;
- }).bind("getData.datepicker", function(event, key) {
- return this._get(inst, key);
- });
- this._autoSize(inst);
- $.data(target, PROP_NAME, inst);
- //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
- if( inst.settings.disabled ) {
- this._disableDatepicker( target );
- }
- },
-
- /* Make attachments based on settings. */
- _attachments: function(input, inst) {
- var appendText = this._get(inst, 'appendText');
- var isRTL = this._get(inst, 'isRTL');
- if (inst.append)
- inst.append.remove();
- if (appendText) {
- inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
- input[isRTL ? 'before' : 'after'](inst.append);
- }
- input.unbind('focus', this._showDatepicker);
- if (inst.trigger)
- inst.trigger.remove();
- var showOn = this._get(inst, 'showOn');
- if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
- input.focus(this._showDatepicker);
- if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
- var buttonText = this._get(inst, 'buttonText');
- var buttonImage = this._get(inst, 'buttonImage');
- inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
- $('<img/>').addClass(this._triggerClass).
- attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
- $('<button type="button"></button>').addClass(this._triggerClass).
- html(buttonImage == '' ? buttonText : $('<img/>').attr(
- { src:buttonImage, alt:buttonText, title:buttonText })));
- input[isRTL ? 'before' : 'after'](inst.trigger);
- inst.trigger.click(function() {
- if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
- $.datepicker._hideDatepicker();
- else
- $.datepicker._showDatepicker(input[0]);
- return false;
- });
- }
- },
-
- /* Apply the maximum length for the date format. */
- _autoSize: function(inst) {
- if (this._get(inst, 'autoSize') && !inst.inline) {
- var date = new Date(2009, 12 - 1, 20); // Ensure double digits
- var dateFormat = this._get(inst, 'dateFormat');
- if (dateFormat.match(/[DM]/)) {
- var findMax = function(names) {
- var max = 0;
- var maxI = 0;
- for (var i = 0; i < names.length; i++) {
- if (names[i].length > max) {
- max = names[i].length;
- maxI = i;
- }
- }
- return maxI;
- };
- date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
- 'monthNames' : 'monthNamesShort'))));
- date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
- 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
- }
- inst.input.attr('size', this._formatDate(inst, date).length);
- }
- },
-
- /* Attach an inline date picker to a div. */
- _inlineDatepicker: function(target, inst) {
- var divSpan = $(target);
- if (divSpan.hasClass(this.markerClassName))
- return;
- divSpan.addClass(this.markerClassName).append(inst.dpDiv).
- bind("setData.datepicker", function(event, key, value){
- inst.settings[key] = value;
- }).bind("getData.datepicker", function(event, key){
- return this._get(inst, key);
- });
- $.data(target, PROP_NAME, inst);
- this._setDate(inst, this._getDefaultDate(inst), true);
- this._updateDatepicker(inst);
- this._updateAlternate(inst);
- //If disabled option is true, disable the datepicker before showing it (see ticket #5665)
- if( inst.settings.disabled ) {
- this._disableDatepicker( target );
- }
- // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
- // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
- inst.dpDiv.css( "display", "block" );
- },
-
- /* Pop-up the date picker in a "dialog" box.
- @param input element - ignored
- @param date string or Date - the initial date to display
- @param onSelect function - the function to call when a date is selected
- @param settings object - update the dialog date picker instance's settings (anonymous object)
- @param pos int[2] - coordinates for the dialog's position within the screen or
- event - with x/y coordinates or
- leave empty for default (screen centre)
- @return the manager object */
- _dialogDatepicker: function(input, date, onSelect, settings, pos) {
- var inst = this._dialogInst; // internal instance
- if (!inst) {
- this.uuid += 1;
- var id = 'dp' + this.uuid;
- this._dialogInput = $('<input type="text" id="' + id +
- '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
- this._dialogInput.keydown(this._doKeyDown);
- $('body').append(this._dialogInput);
- inst = this._dialogInst = this._newInst(this._dialogInput, false);
- inst.settings = {};
- $.data(this._dialogInput[0], PROP_NAME, inst);
- }
- extendRemove(inst.settings, settings || {});
- date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
- this._dialogInput.val(date);
-
- this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
- if (!this._pos) {
- var browserWidth = document.documentElement.clientWidth;
- var browserHeight = document.documentElement.clientHeight;
- var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
- var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
- this._pos = // should use actual width/height below
- [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
- }
-
- // move input on screen for focus, but hidden behind dialog
- this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
- inst.settings.onSelect = onSelect;
- this._inDialog = true;
- this.dpDiv.addClass(this._dialogClass);
- this._showDatepicker(this._dialogInput[0]);
- if ($.blockUI)
- $.blockUI(this.dpDiv);
- $.data(this._dialogInput[0], PROP_NAME, inst);
- return this;
- },
-
- /* Detach a datepicker from its control.
- @param target element - the target input field or division or span */
- _destroyDatepicker: function(target) {
- var $target = $(target);
- var inst = $.data(target, PROP_NAME);
- if (!$target.hasClass(this.markerClassName)) {
- return;
- }
- var nodeName = target.nodeName.toLowerCase();
- $.removeData(target, PROP_NAME);
- if (nodeName == 'input') {
- inst.append.remove();
- inst.trigger.remove();
- $target.removeClass(this.markerClassName).
- unbind('focus', this._showDatepicker).
- unbind('keydown', this._doKeyDown).
- unbind('keypress', this._doKeyPress).
- unbind('keyup', this._doKeyUp);
- } else if (nodeName == 'div' || nodeName == 'span')
- $target.removeClass(this.markerClassName).empty();
- },
-
- /* Enable the date picker to a jQuery selection.
- @param target element - the target input field or division or span */
- _enableDatepicker: function(target) {
- var $target = $(target);
- var inst = $.data(target, PROP_NAME);
- if (!$target.hasClass(this.markerClassName)) {
- return;
- }
- var nodeName = target.nodeName.toLowerCase();
- if (nodeName == 'input') {
- target.disabled = false;
- inst.trigger.filter('button').
- each(function() { this.disabled = false; }).end().
- filter('img').css({opacity: '1.0', cursor: ''});
- }
- else if (nodeName == 'div' || nodeName == 'span') {
- var inline = $target.children('.' + this._inlineClass);
- inline.children().removeClass('ui-state-disabled');
- inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
- removeAttr("disabled");
- }
- this._disabledInputs = $.map(this._disabledInputs,
- function(value) { return (value == target ? null : value); }); // delete entry
- },
-
- /* Disable the date picker to a jQuery selection.
- @param target element - the target input field or division or span */
- _disableDatepicker: function(target) {
- var $target = $(target);
- var inst = $.data(target, PROP_NAME);
- if (!$target.hasClass(this.markerClassName)) {
- return;
- }
- var nodeName = target.nodeName.toLowerCase();
- if (nodeName == 'input') {
- target.disabled = true;
- inst.trigger.filter('button').
- each(function() { this.disabled = true; }).end().
- filter('img').css({opacity: '0.5', cursor: 'default'});
- }
- else if (nodeName == 'div' || nodeName == 'span') {
- var inline = $target.children('.' + this._inlineClass);
- inline.children().addClass('ui-state-disabled');
- inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
- attr("disabled", "disabled");
- }
- this._disabledInputs = $.map(this._disabledInputs,
- function(value) { return (value == target ? null : value); }); // delete entry
- this._disabledInputs[this._disabledInputs.length] = target;
- },
-
- /* Is the first field in a jQuery collection disabled as a datepicker?
- @param target element - the target input field or division or span
- @return boolean - true if disabled, false if enabled */
- _isDisabledDatepicker: function(target) {
- if (!target) {
- return false;
- }
- for (var i = 0; i < this._disabledInputs.length; i++) {
- if (this._disabledInputs[i] == target)
- return true;
- }
- return false;
- },
-
- /* Retrieve the instance data for the target control.
- @param target element - the target input field or division or span
- @return object - the associated instance data
- @throws error if a jQuery problem getting data */
- _getInst: function(target) {
- try {
- return $.data(target, PROP_NAME);
- }
- catch (err) {
- throw 'Missing instance data for this datepicker';
- }
- },
-
- /* Update or retrieve the settings for a date picker attached to an input field or division.
- @param target element - the target input field or division or span
- @param name object - the new settings to update or
- string - the name of the setting to change or retrieve,
- when retrieving also 'all' for all instance settings or
- 'defaults' for all global defaults
- @param value any - the new value for the setting
- (omit if above is an object or to retrieve a value) */
- _optionDatepicker: function(target, name, value) {
- var inst = this._getInst(target);
- if (arguments.length == 2 && typeof name == 'string') {
- return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
- (inst ? (name == 'all' ? $.extend({}, inst.settings) :
- this._get(inst, name)) : null));
- }
- var settings = name || {};
- if (typeof name == 'string') {
- settings = {};
- settings[name] = value;
- }
- if (inst) {
- if (this._curInst == inst) {
- this._hideDatepicker();
- }
- var date = this._getDateDatepicker(target, true);
- var minDate = this._getMinMaxDate(inst, 'min');
- var maxDate = this._getMinMaxDate(inst, 'max');
- extendRemove(inst.settings, settings);
- // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
- if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)
- inst.settings.minDate = this._formatDate(inst, minDate);
- if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)
- inst.settings.maxDate = this._formatDate(inst, maxDate);
- this._attachments($(target), inst);
- this._autoSize(inst);
- this._setDate(inst, date);
- this._updateAlternate(inst);
- this._updateDatepicker(inst);
- }
- },
-
- // change method deprecated
- _changeDatepicker: function(target, name, value) {
- this._optionDatepicker(target, name, value);
- },
-
- /* Redraw the date picker attached to an input field or division.
- @param target element - the target input field or division or span */
- _refreshDatepicker: function(target) {
- var inst = this._getInst(target);
- if (inst) {
- this._updateDatepicker(inst);
- }
- },
-
- /* Set the dates for a jQuery selection.
- @param target element - the target input field or division or span
- @param date Date - the new date */
- _setDateDatepicker: function(target, date) {
- var inst = this._getInst(target);
- if (inst) {
- this._setDate(inst, date);
- this._updateDatepicker(inst);
- this._updateAlternate(inst);
- }
- },
-
- /* Get the date(s) for the first entry in a jQuery selection.
- @param target element - the target input field or division or span
- @param noDefault boolean - true if no default date is to be used
- @return Date - the current date */
- _getDateDatepicker: function(target, noDefault) {
- var inst = this._getInst(target);
- if (inst && !inst.inline)
- this._setDateFromField(inst, noDefault);
- return (inst ? this._getDate(inst) : null);
- },
-
- /* Handle keystrokes. */
- _doKeyDown: function(event) {
- var inst = $.datepicker._getInst(event.target);
- var handled = true;
- var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
- inst._keyEvent = true;
- if ($.datepicker._datepickerShowing)
- switch (event.keyCode) {
- case 9: $.datepicker._hideDatepicker();
- handled = false;
- break; // hide on tab out
- case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
- $.datepicker._currentClass + ')', inst.dpDiv);
- if (sel[0])
- $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
- var onSelect = $.datepicker._get(inst, 'onSelect');
- if (onSelect) {
- var dateStr = $.datepicker._formatDate(inst);
-
- // trigger custom callback
- onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
- }
- else
- $.datepicker._hideDatepicker();
- return false; // don't submit the form
- break; // select the value on enter
- case 27: $.datepicker._hideDatepicker();
- break; // hide on escape
- case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- -$.datepicker._get(inst, 'stepBigMonths') :
- -$.datepicker._get(inst, 'stepMonths')), 'M');
- break; // previous month/year on page up/+ ctrl
- case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- +$.datepicker._get(inst, 'stepBigMonths') :
- +$.datepicker._get(inst, 'stepMonths')), 'M');
- break; // next month/year on page down/+ ctrl
- case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
- handled = event.ctrlKey || event.metaKey;
- break; // clear on ctrl or command +end
- case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
- handled = event.ctrlKey || event.metaKey;
- break; // current on ctrl or command +home
- case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
- handled = event.ctrlKey || event.metaKey;
- // -1 day on ctrl or command +left
- if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- -$.datepicker._get(inst, 'stepBigMonths') :
- -$.datepicker._get(inst, 'stepMonths')), 'M');
- // next month/year on alt +left on Mac
- break;
- case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
- handled = event.ctrlKey || event.metaKey;
- break; // -1 week on ctrl or command +up
- case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
- handled = event.ctrlKey || event.metaKey;
- // +1 day on ctrl or command +right
- if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
- +$.datepicker._get(inst, 'stepBigMonths') :
- +$.datepicker._get(inst, 'stepMonths')), 'M');
- // next month/year on alt +right
- break;
- case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
- handled = event.ctrlKey || event.metaKey;
- break; // +1 week on ctrl or command +down
- default: handled = false;
- }
- else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
- $.datepicker._showDatepicker(this);
- else {
- handled = false;
- }
- if (handled) {
- event.preventDefault();
- event.stopPropagation();
- }
- },
-
- /* Filter entered characters - based on date format. */
- _doKeyPress: function(event) {
- var inst = $.datepicker._getInst(event.target);
- if ($.datepicker._get(inst, 'constrainInput')) {
- var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
- var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
- return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
- }
- },
-
- /* Synchronise manual entry and field/alternate field. */
- _doKeyUp: function(event) {
- var inst = $.datepicker._getInst(event.target);
- if (inst.input.val() != inst.lastVal) {
- try {
- var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
- (inst.input ? inst.input.val() : null),
- $.datepicker._getFormatConfig(inst));
- if (date) { // only if valid
- $.datepicker._setDateFromField(inst);
- $.datepicker._updateAlternate(inst);
- $.datepicker._updateDatepicker(inst);
- }
- }
- catch (event) {
- $.datepicker.log(event);
- }
- }
- return true;
- },
-
- /* Pop-up the date picker for a given input field.
- If false returned from beforeShow event handler do not show.
- @param input element - the input field attached to the date picker or
- event - if triggered by focus */
- _showDatepicker: function(input) {
- input = input.target || input;
- if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
- input = $('input', input.parentNode)[0];
- if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
- return;
- var inst = $.datepicker._getInst(input);
- if ($.datepicker._curInst && $.datepicker._curInst != inst) {
- if ( $.datepicker._datepickerShowing ) {
- $.datepicker._triggerOnClose($.datepicker._curInst);
- }
- $.datepicker._curInst.dpDiv.stop(true, true);
- }
- var beforeShow = $.datepicker._get(inst, 'beforeShow');
- var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
- if(beforeShowSettings === false){
- //false
- return;
- }
- extendRemove(inst.settings, beforeShowSettings);
- inst.lastVal = null;
- $.datepicker._lastInput = input;
- $.datepicker._setDateFromField(inst);
- if ($.datepicker._inDialog) // hide cursor
- input.value = '';
- if (!$.datepicker._pos) { // position below input
- $.datepicker._pos = $.datepicker._findPos(input);
- $.datepicker._pos[1] += input.offsetHeight; // add the height
- }
- var isFixed = false;
- $(input).parents().each(function() {
- isFixed |= $(this).css('position') == 'fixed';
- return !isFixed;
- });
- if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
- $.datepicker._pos[0] -= document.documentElement.scrollLeft;
- $.datepicker._pos[1] -= document.documentElement.scrollTop;
- }
- var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
- $.datepicker._pos = null;
- //to avoid flashes on Firefox
- inst.dpDiv.empty();
- // determine sizing offscreen
- inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
- $.datepicker._updateDatepicker(inst);
- // fix width for dynamic number of date pickers
- // and adjust position before showing
- offset = $.datepicker._checkOffset(inst, offset, isFixed);
- inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
- 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
- left: offset.left + 'px', top: offset.top + 'px'});
- if (!inst.inline) {
- var showAnim = $.datepicker._get(inst, 'showAnim');
- var duration = $.datepicker._get(inst, 'duration');
- var postProcess = function() {
- var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
- if( !! cover.length ){
- var borders = $.datepicker._getBorders(inst.dpDiv);
- cover.css({left: -borders[0], top: -borders[1],
- width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
- }
- };
- inst.dpDiv.zIndex($(input).zIndex()+1);
- $.datepicker._datepickerShowing = true;
- if ($.effects && $.effects[showAnim])
- inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
- else
- inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
- if (!showAnim || !duration)
- postProcess();
- if (inst.input.is(':visible') && !inst.input.is(':disabled'))
- inst.input.focus();
- $.datepicker._curInst = inst;
- }
- },
-
- /* Generate the date picker content. */
- _updateDatepicker: function(inst) {
- var self = this;
- self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
- var borders = $.datepicker._getBorders(inst.dpDiv);
- instActive = inst; // for delegate hover events
- inst.dpDiv.empty().append(this._generateHTML(inst));
- var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
- if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
- cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
- }
- inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
- var numMonths = this._getNumberOfMonths(inst);
- var cols = numMonths[1];
- var width = 17;
- inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
- if (cols > 1)
- inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
- inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
- 'Class']('ui-datepicker-multi');
- inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
- 'Class']('ui-datepicker-rtl');
- if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
- // #6694 - don't focus the input if it's already focused
- // this breaks the change event in IE
- inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
- inst.input.focus();
- // deffered render of the years select (to avoid flashes on Firefox)
- if( inst.yearshtml ){
- var origyearshtml = inst.yearshtml;
- setTimeout(function(){
- //assure that inst.yearshtml didn't change.
- if( origyearshtml === inst.yearshtml && inst.yearshtml ){
- inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
- }
- origyearshtml = inst.yearshtml = null;
- }, 0);
- }
- },
-
- /* Retrieve the size of left and top borders for an element.
- @param elem (jQuery object) the element of interest
- @return (number[2]) the left and top borders */
- _getBorders: function(elem) {
- var convert = function(value) {
- return {thin: 1, medium: 2, thick: 3}[value] || value;
- };
- return [parseFloat(convert(elem.css('border-left-width'))),
- parseFloat(convert(elem.css('border-top-width')))];
- },
-
- /* Check positioning to remain on screen. */
- _checkOffset: function(inst, offset, isFixed) {
- var dpWidth = inst.dpDiv.outerWidth();
- var dpHeight = inst.dpDiv.outerHeight();
- var inputWidth = inst.input ? inst.input.outerWidth() : 0;
- var inputHeight = inst.input ? inst.input.outerHeight() : 0;
- var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
- var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
-
- offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
- offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
- offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
-
- // now check if datepicker is showing outside window viewport - move to a better place if so.
- offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
- Math.abs(offset.left + dpWidth - viewWidth) : 0);
- offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
- Math.abs(dpHeight + inputHeight) : 0);
-
- return offset;
- },
-
- /* Find an object's position on the screen. */
- _findPos: function(obj) {
- var inst = this._getInst(obj);
- var isRTL = this._get(inst, 'isRTL');
- while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
- obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
- }
- var position = $(obj).offset();
- return [position.left, position.top];
- },
-
- /* Trigger custom callback of onClose. */
- _triggerOnClose: function(inst) {
- var onClose = this._get(inst, 'onClose');
- if (onClose)
- onClose.apply((inst.input ? inst.input[0] : null),
- [(inst.input ? inst.input.val() : ''), inst]);
- },
-
- /* Hide the date picker from view.
- @param input element - the input field attached to the date picker */
- _hideDatepicker: function(input) {
- var inst = this._curInst;
- if (!inst || (input && inst != $.data(input, PROP_NAME)))
- return;
- if (this._datepickerShowing) {
- var showAnim = this._get(inst, 'showAnim');
- var duration = this._get(inst, 'duration');
- var postProcess = function() {
- $.datepicker._tidyDialog(inst);
- this._curInst = null;
- };
- if ($.effects && $.effects[showAnim])
- inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
- else
- inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
- (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
- if (!showAnim)
- postProcess();
- $.datepicker._triggerOnClose(inst);
- this._datepickerShowing = false;
- this._lastInput = null;
- if (this._inDialog) {
- this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
- if ($.blockUI) {
- $.unblockUI();
- $('body').append(this.dpDiv);
- }
- }
- this._inDialog = false;
- }
- },
-
- /* Tidy up after a dialog display. */
- _tidyDialog: function(inst) {
- inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
- },
-
- /* Close date picker if clicked elsewhere. */
- _checkExternalClick: function(event) {
- if (!$.datepicker._curInst)
- return;
- var $target = $(event.target);
- if ($target[0].id != $.datepicker._mainDivId &&
- $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
- !$target.hasClass($.datepicker.markerClassName) &&
- !$target.hasClass($.datepicker._triggerClass) &&
- $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
- $.datepicker._hideDatepicker();
- },
-
- /* Adjust one of the date sub-fields. */
- _adjustDate: function(id, offset, period) {
- var target = $(id);
- var inst = this._getInst(target[0]);
- if (this._isDisabledDatepicker(target[0])) {
- return;
- }
- this._adjustInstDate(inst, offset +
- (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
- period);
- this._updateDatepicker(inst);
- },
-
- /* Action for current link. */
- _gotoToday: function(id) {
- var target = $(id);
- var inst = this._getInst(target[0]);
- if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
- inst.selectedDay = inst.currentDay;
- inst.drawMonth = inst.selectedMonth = inst.currentMonth;
- inst.drawYear = inst.selectedYear = inst.currentYear;
- }
- else {
- var date = new Date();
- inst.selectedDay = date.getDate();
- inst.drawMonth = inst.selectedMonth = date.getMonth();
- inst.drawYear = inst.selectedYear = date.getFullYear();
- }
- this._notifyChange(inst);
- this._adjustDate(target);
- },
-
- /* Action for selecting a new month/year. */
- _selectMonthYear: function(id, select, period) {
- var target = $(id);
- var inst = this._getInst(target[0]);
- inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
- inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
- parseInt(select.options[select.selectedIndex].value,10);
- this._notifyChange(inst);
- this._adjustDate(target);
- },
-
- /* Action for selecting a day. */
- _selectDay: function(id, month, year, td) {
- var target = $(id);
- if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
- return;
- }
- var inst = this._getInst(target[0]);
- inst.selectedDay = inst.currentDay = $('a', td).html();
- inst.selectedMonth = inst.currentMonth = month;
- inst.selectedYear = inst.currentYear = year;
- this._selectDate(id, this._formatDate(inst,
- inst.currentDay, inst.currentMonth, inst.currentYear));
- },
-
- /* Erase the input field and hide the date picker. */
- _clearDate: function(id) {
- var target = $(id);
- var inst = this._getInst(target[0]);
- this._selectDate(target, '');
- },
-
- /* Update the input field with the selected date. */
- _selectDate: function(id, dateStr) {
- var target = $(id);
- var inst = this._getInst(target[0]);
- dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
- if (inst.input)
- inst.input.val(dateStr);
- this._updateAlternate(inst);
- var onSelect = this._get(inst, 'onSelect');
- if (onSelect)
- onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
- else if (inst.input)
- inst.input.trigger('change'); // fire the change event
- if (inst.inline)
- this._updateDatepicker(inst);
- else {
- this._hideDatepicker();
- this._lastInput = inst.input[0];
- if (typeof(inst.input[0]) != 'object')
- inst.input.focus(); // restore focus
- this._lastInput = null;
- }
- },
-
- /* Update any alternate field to synchronise with the main field. */
- _updateAlternate: function(inst) {
- var altField = this._get(inst, 'altField');
- if (altField) { // update alternate field too
- var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
- var date = this._getDate(inst);
- var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
- $(altField).each(function() { $(this).val(dateStr); });
- }
- },
-
- /* Set as beforeShowDay function to prevent selection of weekends.
- @param date Date - the date to customise
- @return [boolean, string] - is this date selectable?, what is its CSS class? */
- noWeekends: function(date) {
- var day = date.getDay();
- return [(day > 0 && day < 6), ''];
- },
-
- /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
- @param date Date - the date to get the week for
- @return number - the number of the week within the year that contains this date */
- iso8601Week: function(date) {
- var checkDate = new Date(date.getTime());
- // Find Thursday of this week starting on Monday
- checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
- var time = checkDate.getTime();
- checkDate.setMonth(0); // Compare with Jan 1
- checkDate.setDate(1);
- return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
- },
-
- /* Parse a string value into a date object.
- See formatDate below for the possible formats.
-
- @param format string - the expected format of the date
- @param value string - the date in the above format
- @param settings Object - attributes include:
- shortYearCutoff number - the cutoff year for determining the century (optional)
- dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
- dayNames string[7] - names of the days from Sunday (optional)
- monthNamesShort string[12] - abbreviated names of the months (optional)
- monthNames string[12] - names of the months (optional)
- @return Date - the extracted date value or null if value is blank */
- parseDate: function (format, value, settings) {
- if (format == null || value == null)
- throw 'Invalid arguments';
- value = (typeof value == 'object' ? value.toString() : value + '');
- if (value == '')
- return null;
- var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
- shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
- new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
- var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
- var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
- var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
- var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
- var year = -1;
- var month = -1;
- var day = -1;
- var doy = -1;
- var literal = false;
- // Check whether a format character is doubled
- var lookAhead = function(match) {
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
- if (matches)
- iFormat++;
- return matches;
- };
- // Extract a number from the string value
- var getNumber = function(match) {
- var isDoubled = lookAhead(match);
- var size = (match == '@' ? 14 : (match == '!' ? 20 :
- (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
- var digits = new RegExp('^\\d{1,' + size + '}');
- var num = value.substring(iValue).match(digits);
- if (!num)
- throw 'Missing number at position ' + iValue;
- iValue += num[0].length;
- return parseInt(num[0], 10);
- };
- // Extract a name from the string value and convert to an index
- var getName = function(match, shortNames, longNames) {
- var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
- return [ [k, v] ];
- }).sort(function (a, b) {
- return -(a[1].length - b[1].length);
- });
- var index = -1;
- $.each(names, function (i, pair) {
- var name = pair[1];
- if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
- index = pair[0];
- iValue += name.length;
- return false;
- }
- });
- if (index != -1)
- return index + 1;
- else
- throw 'Unknown name at position ' + iValue;
- };
- // Confirm that a literal character matches the string value
- var checkLiteral = function() {
- if (value.charAt(iValue) != format.charAt(iFormat))
- throw 'Unexpected literal at position ' + iValue;
- iValue++;
- };
- var iValue = 0;
- for (var iFormat = 0; iFormat < format.length; iFormat++) {
- if (literal)
- if (format.charAt(iFormat) == "'" && !lookAhead("'"))
- literal = false;
- else
- checkLiteral();
- else
- switch (format.charAt(iFormat)) {
- case 'd':
- day = getNumber('d');
- break;
- case 'D':
- getName('D', dayNamesShort, dayNames);
- break;
- case 'o':
- doy = getNumber('o');
- break;
- case 'm':
- month = getNumber('m');
- break;
- case 'M':
- month = getName('M', monthNamesShort, monthNames);
- break;
- case 'y':
- year = getNumber('y');
- break;
- case '@':
- var date = new Date(getNumber('@'));
- year = date.getFullYear();
- month = date.getMonth() + 1;
- day = date.getDate();
- break;
- case '!':
- var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
- year = date.getFullYear();
- month = date.getMonth() + 1;
- day = date.getDate();
- break;
- case "'":
- if (lookAhead("'"))
- checkLiteral();
- else
- literal = true;
- break;
- default:
- checkLiteral();
- }
- }
- if (iValue < value.length){
- throw "Extra/unparsed characters found in date: " + value.substring(iValue);
- }
- if (year == -1)
- year = new Date().getFullYear();
- else if (year < 100)
- year += new Date().getFullYear() - new Date().getFullYear() % 100 +
- (year <= shortYearCutoff ? 0 : -100);
- if (doy > -1) {
- month = 1;
- day = doy;
- do {
- var dim = this._getDaysInMonth(year, month - 1);
- if (day <= dim)
- break;
- month++;
- day -= dim;
- } while (true);
- }
- var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
- if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
- throw 'Invalid date'; // E.g. 31/02/00
- return date;
- },
-
- /* Standard date formats. */
- ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
- COOKIE: 'D, dd M yy',
- ISO_8601: 'yy-mm-dd',
- RFC_822: 'D, d M y',
- RFC_850: 'DD, dd-M-y',
- RFC_1036: 'D, d M y',
- RFC_1123: 'D, d M yy',
- RFC_2822: 'D, d M yy',
- RSS: 'D, d M y', // RFC 822
- TICKS: '!',
- TIMESTAMP: '@',
- W3C: 'yy-mm-dd', // ISO 8601
-
- _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
- Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
-
- /* Format a date object into a string value.
- The format can be combinations of the following:
- d - day of month (no leading zero)
- dd - day of month (two digit)
- o - day of year (no leading zeros)
- oo - day of year (three digit)
- D - day name short
- DD - day name long
- m - month of year (no leading zero)
- mm - month of year (two digit)
- M - month name short
- MM - month name long
- y - year (two digit)
- yy - year (four digit)
- @ - Unix timestamp (ms since 01/01/1970)
- ! - Windows ticks (100ns since 01/01/0001)
- '...' - literal text
- '' - single quote
-
- @param format string - the desired format of the date
- @param date Date - the date value to format
- @param settings Object - attributes include:
- dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
- dayNames string[7] - names of the days from Sunday (optional)
- monthNamesShort string[12] - abbreviated names of the months (optional)
- monthNames string[12] - names of the months (optional)
- @return string - the date in the above format */
- formatDate: function (format, date, settings) {
- if (!date)
- return '';
- var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
- var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
- var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
- var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
- // Check whether a format character is doubled
- var lookAhead = function(match) {
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
- if (matches)
- iFormat++;
- return matches;
- };
- // Format a number, with leading zero if necessary
- var formatNumber = function(match, value, len) {
- var num = '' + value;
- if (lookAhead(match))
- while (num.length < len)
- num = '0' + num;
- return num;
- };
- // Format a name, short or long as requested
- var formatName = function(match, value, shortNames, longNames) {
- return (lookAhead(match) ? longNames[value] : shortNames[value]);
- };
- var output = '';
- var literal = false;
- if (date)
- for (var iFormat = 0; iFormat < format.length; iFormat++) {
- if (literal)
- if (format.charAt(iFormat) == "'" && !lookAhead("'"))
- literal = false;
- else
- output += format.charAt(iFormat);
- else
- switch (format.charAt(iFormat)) {
- case 'd':
- output += formatNumber('d', date.getDate(), 2);
- break;
- case 'D':
- output += formatName('D', date.getDay(), dayNamesShort, dayNames);
- break;
- case 'o':
- output += formatNumber('o',
- Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
- break;
- case 'm':
- output += formatNumber('m', date.getMonth() + 1, 2);
- break;
- case 'M':
- output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
- break;
- case 'y':
- output += (lookAhead('y') ? date.getFullYear() :
- (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
- break;
- case '@':
- output += date.getTime();
- break;
- case '!':
- output += date.getTime() * 10000 + this._ticksTo1970;
- break;
- case "'":
- if (lookAhead("'"))
- output += "'";
- else
- literal = true;
- break;
- default:
- output += format.charAt(iFormat);
- }
- }
- return output;
- },
-
- /* Extract all possible characters from the date format. */
- _possibleChars: function (format) {
- var chars = '';
- var literal = false;
- // Check whether a format character is doubled
- var lookAhead = function(match) {
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
- if (matches)
- iFormat++;
- return matches;
- };
- for (var iFormat = 0; iFormat < format.length; iFormat++)
- if (literal)
- if (format.charAt(iFormat) == "'" && !lookAhead("'"))
- literal = false;
- else
- chars += format.charAt(iFormat);
- else
- switch (format.charAt(iFormat)) {
- case 'd': case 'm': case 'y': case '@':
- chars += '0123456789';
- break;
- case 'D': case 'M':
- return null; // Accept anything
- case "'":
- if (lookAhead("'"))
- chars += "'";
- else
- literal = true;
- break;
- default:
- chars += format.charAt(iFormat);
- }
- return chars;
- },
-
- /* Get a setting value, defaulting if necessary. */
- _get: function(inst, name) {
- return inst.settings[name] !== undefined ?
- inst.settings[name] : this._defaults[name];
- },
-
- /* Parse existing date and initialise date picker. */
- _setDateFromField: function(inst, noDefault) {
- if (inst.input.val() == inst.lastVal) {
- return;
- }
- var dateFormat = this._get(inst, 'dateFormat');
- var dates = inst.lastVal = inst.input ? inst.input.val() : null;
- var date, defaultDate;
- date = defaultDate = this._getDefaultDate(inst);
- var settings = this._getFormatConfig(inst);
- try {
- date = this.parseDate(dateFormat, dates, settings) || defaultDate;
- } catch (event) {
- this.log(event);
- dates = (noDefault ? '' : dates);
- }
- inst.selectedDay = date.getDate();
- inst.drawMonth = inst.selectedMonth = date.getMonth();
- inst.drawYear = inst.selectedYear = date.getFullYear();
- inst.currentDay = (dates ? date.getDate() : 0);
- inst.currentMonth = (dates ? date.getMonth() : 0);
- inst.currentYear = (dates ? date.getFullYear() : 0);
- this._adjustInstDate(inst);
- },
-
- /* Retrieve the default date shown on opening. */
- _getDefaultDate: function(inst) {
- return this._restrictMinMax(inst,
- this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
- },
-
- /* A date may be specified as an exact value or a relative one. */
- _determineDate: function(inst, date, defaultDate) {
- var offsetNumeric = function(offset) {
- var date = new Date();
- date.setDate(date.getDate() + offset);
- return date;
- };
- var offsetString = function(offset) {
- try {
- return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
- offset, $.datepicker._getFormatConfig(inst));
- }
- catch (e) {
- // Ignore
- }
- var date = (offset.toLowerCase().match(/^c/) ?
- $.datepicker._getDate(inst) : null) || new Date();
- var year = date.getFullYear();
- var month = date.getMonth();
- var day = date.getDate();
- var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
- var matches = pattern.exec(offset);
- while (matches) {
- switch (matches[2] || 'd') {
- case 'd' : case 'D' :
- day += parseInt(matches[1],10); break;
- case 'w' : case 'W' :
- day += parseInt(matches[1],10) * 7; break;
- case 'm' : case 'M' :
- month += parseInt(matches[1],10);
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
- break;
- case 'y': case 'Y' :
- year += parseInt(matches[1],10);
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
- break;
- }
- matches = pattern.exec(offset);
- }
- return new Date(year, month, day);
- };
- var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
- (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
- newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
- if (newDate) {
- newDate.setHours(0);
- newDate.setMinutes(0);
- newDate.setSeconds(0);
- newDate.setMilliseconds(0);
- }
- return this._daylightSavingAdjust(newDate);
- },
-
- /* Handle switch to/from daylight saving.
- Hours may be non-zero on daylight saving cut-over:
- > 12 when midnight changeover, but then cannot generate
- midnight datetime, so jump to 1AM, otherwise reset.
- @param date (Date) the date to check
- @return (Date) the corrected date */
- _daylightSavingAdjust: function(date) {
- if (!date) return null;
- date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
- return date;
- },
-
- /* Set the date(s) directly. */
- _setDate: function(inst, date, noChange) {
- var clear = !date;
- var origMonth = inst.selectedMonth;
- var origYear = inst.selectedYear;
- var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
- inst.selectedDay = inst.currentDay = newDate.getDate();
- inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
- inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
- if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
- this._notifyChange(inst);
- this._adjustInstDate(inst);
- if (inst.input) {
- inst.input.val(clear ? '' : this._formatDate(inst));
- }
- },
-
- /* Retrieve the date(s) directly. */
- _getDate: function(inst) {
- var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
- this._daylightSavingAdjust(new Date(
- inst.currentYear, inst.currentMonth, inst.currentDay)));
- return startDate;
- },
-
- /* Generate the HTML for the current state of the date picker. */
- _generateHTML: function(inst) {
- var today = new Date();
- today = this._daylightSavingAdjust(
- new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
- var isRTL = this._get(inst, 'isRTL');
- var showButtonPanel = this._get(inst, 'showButtonPanel');
- var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
- var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
- var numMonths = this._getNumberOfMonths(inst);
- var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
- var stepMonths = this._get(inst, 'stepMonths');
- var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
- var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
- new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
- var minDate = this._getMinMaxDate(inst, 'min');
- var maxDate = this._getMinMaxDate(inst, 'max');
- var drawMonth = inst.drawMonth - showCurrentAtPos;
- var drawYear = inst.drawYear;
- if (drawMonth < 0) {
- drawMonth += 12;
- drawYear--;
- }
- if (maxDate) {
- var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
- maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
- maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
- while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
- drawMonth--;
- if (drawMonth < 0) {
- drawMonth = 11;
- drawYear--;
- }
- }
- }
- inst.drawMonth = drawMonth;
- inst.drawYear = drawYear;
- var prevText = this._get(inst, 'prevText');
- prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
- this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
- this._getFormatConfig(inst)));
- var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
- '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
- '.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
- ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
- (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
- var nextText = this._get(inst, 'nextText');
- nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
- this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
- this._getFormatConfig(inst)));
- var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
- '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
- '.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
- ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
- (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
- var currentText = this._get(inst, 'currentText');
- var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
- currentText = (!navigationAsDateFormat ? currentText :
- this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
- var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
- '.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
- var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
- (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
- '.datepicker._gotoToday(\'#' + inst.id + '\');"' +
- '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
- var firstDay = parseInt(this._get(inst, 'firstDay'),10);
- firstDay = (isNaN(firstDay) ? 0 : firstDay);
- var showWeek = this._get(inst, 'showWeek');
- var dayNames = this._get(inst, 'dayNames');
- var dayNamesShort = this._get(inst, 'dayNamesShort');
- var dayNamesMin = this._get(inst, 'dayNamesMin');
- var monthNames = this._get(inst, 'monthNames');
- var monthNamesShort = this._get(inst, 'monthNamesShort');
- var beforeShowDay = this._get(inst, 'beforeShowDay');
- var showOtherMonths = this._get(inst, 'showOtherMonths');
- var selectOtherMonths = this._get(inst, 'selectOtherMonths');
- var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
- var defaultDate = this._getDefaultDate(inst);
- var html = '';
- for (var row = 0; row < numMonths[0]; row++) {
- var group = '';
- this.maxRows = 4;
- for (var col = 0; col < numMonths[1]; col++) {
- var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
- var cornerClass = ' ui-corner-all';
- var calender = '';
- if (isMultiMonth) {
- calender += '<div class="ui-datepicker-group';
- if (numMonths[1] > 1)
- switch (col) {
- case 0: calender += ' ui-datepicker-group-first';
- cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
- case numMonths[1]-1: calender += ' ui-datepicker-group-last';
- cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
- default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
- }
- calender += '">';
- }
- calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
- (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
- (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
- this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
- row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
- '</div><table class="ui-datepicker-calendar"><thead>' +
- '<tr>';
- var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
- for (var dow = 0; dow < 7; dow++) { // days of the week
- var day = (dow + firstDay) % 7;
- thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
- '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
- }
- calender += thead + '</tr></thead><tbody>';
- var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
- if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
- inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
- var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
- var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
- var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
- this.maxRows = numRows;
- var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
- for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
- calender += '<tr>';
- var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
- this._get(inst, 'calculateWeek')(printDate) + '</td>');
- for (var dow = 0; dow < 7; dow++) { // create date picker days
- var daySettings = (beforeShowDay ?
- beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
- var otherMonth = (printDate.getMonth() != drawMonth);
- var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
- (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
- tbody += '<td class="' +
- ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
- (otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
- ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
- (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
- // or defaultDate is current printedDate and defaultDate is selectedDate
- ' ' + this._dayOverClass : '') + // highlight selected day
- (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days
- (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
- (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
- (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
- ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
- (unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
- inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
- (otherMonth && !showOtherMonths ? '&#xa0;' : // display for other months
- (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
- (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
- (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
- (otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
- '" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
- printDate.setDate(printDate.getDate() + 1);
- printDate = this._daylightSavingAdjust(printDate);
- }
- calender += tbody + '</tr>';
- }
- drawMonth++;
- if (drawMonth > 11) {
- drawMonth = 0;
- drawYear++;
- }
- calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
- ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
- group += calender;
- }
- html += group;
- }
- html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
- '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
- inst._keyEvent = false;
- return html;
- },
-
- /* Generate the month and year header. */
- _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
- secondary, monthNames, monthNamesShort) {
- var changeMonth = this._get(inst, 'changeMonth');
- var changeYear = this._get(inst, 'changeYear');
- var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
- var html = '<div class="ui-datepicker-title">';
- var monthHtml = '';
- // month selection
- if (secondary || !changeMonth)
- monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
- else {
- var inMinYear = (minDate && minDate.getFullYear() == drawYear);
- var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
- monthHtml += '<select class="ui-datepicker-month" ' +
- 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
- '>';
- for (var month = 0; month < 12; month++) {
- if ((!inMinYear || month >= minDate.getMonth()) &&
- (!inMaxYear || month <= maxDate.getMonth()))
- monthHtml += '<option value="' + month + '"' +
- (month == drawMonth ? ' selected="selected"' : '') +
- '>' + monthNamesShort[month] + '</option>';
- }
- monthHtml += '</select>';
- }
- if (!showMonthAfterYear)
- html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
- // year selection
- if ( !inst.yearshtml ) {
- inst.yearshtml = '';
- if (secondary || !changeYear)
- html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
- else {
- // determine range of years to display
- var years = this._get(inst, 'yearRange').split(':');
- var thisYear = new Date().getFullYear();
- var determineYear = function(value) {
- var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
- (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
- parseInt(value, 10)));
- return (isNaN(year) ? thisYear : year);
- };
- var year = determineYear(years[0]);
- var endYear = Math.max(year, determineYear(years[1] || ''));
- year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
- endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
- inst.yearshtml += '<select class="ui-datepicker-year" ' +
- 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
- '>';
- for (; year <= endYear; year++) {
- inst.yearshtml += '<option value="' + year + '"' +
- (year == drawYear ? ' selected="selected"' : '') +
- '>' + year + '</option>';
- }
- inst.yearshtml += '</select>';
-
- html += inst.yearshtml;
- inst.yearshtml = null;
- }
- }
- html += this._get(inst, 'yearSuffix');
- if (showMonthAfterYear)
- html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
- html += '</div>'; // Close datepicker_header
- return html;
- },
-
- /* Adjust one of the date sub-fields. */
- _adjustInstDate: function(inst, offset, period) {
- var year = inst.drawYear + (period == 'Y' ? offset : 0);
- var month = inst.drawMonth + (period == 'M' ? offset : 0);
- var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
- (period == 'D' ? offset : 0);
- var date = this._restrictMinMax(inst,
- this._daylightSavingAdjust(new Date(year, month, day)));
- inst.selectedDay = date.getDate();
- inst.drawMonth = inst.selectedMonth = date.getMonth();
- inst.drawYear = inst.selectedYear = date.getFullYear();
- if (period == 'M' || period == 'Y')
- this._notifyChange(inst);
- },
-
- /* Ensure a date is within any min/max bounds. */
- _restrictMinMax: function(inst, date) {
- var minDate = this._getMinMaxDate(inst, 'min');
- var maxDate = this._getMinMaxDate(inst, 'max');
- var newDate = (minDate && date < minDate ? minDate : date);
- newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
- return newDate;
- },
-
- /* Notify change of month/year. */
- _notifyChange: function(inst) {
- var onChange = this._get(inst, 'onChangeMonthYear');
- if (onChange)
- onChange.apply((inst.input ? inst.input[0] : null),
- [inst.selectedYear, inst.selectedMonth + 1, inst]);
- },
-
- /* Determine the number of months to show. */
- _getNumberOfMonths: function(inst) {
- var numMonths = this._get(inst, 'numberOfMonths');
- return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
- },
-
- /* Determine the current maximum date - ensure no time components are set. */
- _getMinMaxDate: function(inst, minMax) {
- return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
- },
-
- /* Find the number of days in a given month. */
- _getDaysInMonth: function(year, month) {
- return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
- },
-
- /* Find the day of the week of the first of a month. */
- _getFirstDayOfMonth: function(year, month) {
- return new Date(year, month, 1).getDay();
- },
-
- /* Determines if we should allow a "next/prev" month display change. */
- _canAdjustMonth: function(inst, offset, curYear, curMonth) {
- var numMonths = this._getNumberOfMonths(inst);
- var date = this._daylightSavingAdjust(new Date(curYear,
- curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
- if (offset < 0)
- date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
- return this._isInRange(inst, date);
- },
-
- /* Is the given date in the accepted range? */
- _isInRange: function(inst, date) {
- var minDate = this._getMinMaxDate(inst, 'min');
- var maxDate = this._getMinMaxDate(inst, 'max');
- return ((!minDate || date.getTime() >= minDate.getTime()) &&
- (!maxDate || date.getTime() <= maxDate.getTime()));
- },
-
- /* Provide the configuration settings for formatting/parsing. */
- _getFormatConfig: function(inst) {
- var shortYearCutoff = this._get(inst, 'shortYearCutoff');
- shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
- new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
- return {shortYearCutoff: shortYearCutoff,
- dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
- monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
- },
-
- /* Format the given date for display. */
- _formatDate: function(inst, day, month, year) {
- if (!day) {
- inst.currentDay = inst.selectedDay;
- inst.currentMonth = inst.selectedMonth;
- inst.currentYear = inst.selectedYear;
- }
- var date = (day ? (typeof day == 'object' ? day :
- this._daylightSavingAdjust(new Date(year, month, day))) :
- this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
- return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
- }
-});
-
-/*
- * Bind hover events for datepicker elements.
- * Done via delegate so the binding only occurs once in the lifetime of the parent div.
- * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */
-function bindHover(dpDiv) {
- var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
- return dpDiv.bind('mouseout', function(event) {
- var elem = $( event.target ).closest( selector );
- if ( !elem.length ) {
- return;
- }
- elem.removeClass( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" );
- })
- .bind('mouseover', function(event) {
- var elem = $( event.target ).closest( selector );
- if ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||
- !elem.length ) {
- return;
- }
- elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
- elem.addClass('ui-state-hover');
- if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');
- if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');
- });
-}
-
-/* jQuery extend now ignores nulls! */
-function extendRemove(target, props) {
- $.extend(target, props);
- for (var name in props)
- if (props[name] == null || props[name] == undefined)
- target[name] = props[name];
- return target;
-};
-
-/* Determine whether an object is an array. */
-function isArray(a) {
- return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
- (a.constructor && a.constructor.toString().match(/\Array\(\)/))));
-};
-
-/* Invoke the datepicker functionality.
- @param options string - a command, optionally followed by additional parameters or
- Object - settings for attaching new datepicker functionality
- @return jQuery object */
-$.fn.datepicker = function(options){
-
- /* Verify an empty collection wasn't passed - Fixes #6976 */
- if ( !this.length ) {
- return this;
- }
-
- /* Initialise the date picker. */
- if (!$.datepicker.initialized) {
- $(document).mousedown($.datepicker._checkExternalClick).
- find('body').append($.datepicker.dpDiv);
- $.datepicker.initialized = true;
- }
-
- var otherArgs = Array.prototype.slice.call(arguments, 1);
- if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
- return $.datepicker['_' + options + 'Datepicker'].
- apply($.datepicker, [this[0]].concat(otherArgs));
- if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
- return $.datepicker['_' + options + 'Datepicker'].
- apply($.datepicker, [this[0]].concat(otherArgs));
- return this.each(function() {
- typeof options == 'string' ?
- $.datepicker['_' + options + 'Datepicker'].
- apply($.datepicker, [this].concat(otherArgs)) :
- $.datepicker._attachDatepicker(this, options);
- });
-};
-
-$.datepicker = new Datepicker(); // singleton instance
-$.datepicker.initialized = false;
-$.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.8.16";
-
-// Workaround for #4055
-// Add another global to avoid noConflict issues with inline event handlers
-window['DP_jQuery_' + dpuuid] = $;
-
-})(jQuery);
-/*
- * jQuery UI Dialog 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.button.js
- * jquery.ui.draggable.js
- * jquery.ui.mouse.js
- * jquery.ui.position.js
- * jquery.ui.resizable.js
- */
-(function( $, undefined ) {
-
-var uiDialogClasses =
- 'ui-dialog ' +
- 'ui-widget ' +
- 'ui-widget-content ' +
- 'ui-corner-all ',
- sizeRelatedOptions = {
- buttons: true,
- height: true,
- maxHeight: true,
- maxWidth: true,
- minHeight: true,
- minWidth: true,
- width: true
- },
- resizableRelatedOptions = {
- maxHeight: true,
- maxWidth: true,
- minHeight: true,
- minWidth: true
- },
- // support for jQuery 1.3.2 - handle common attrFn methods for dialog
- attrFn = $.attrFn || {
- val: true,
- css: true,
- html: true,
- text: true,
- data: true,
- width: true,
- height: true,
- offset: true,
- click: true
- };
-
-$.widget("ui.dialog", {
- options: {
- autoOpen: true,
- buttons: {},
- closeOnEscape: true,
- closeText: 'close',
- dialogClass: '',
- draggable: true,
- hide: null,
- height: 'auto',
- maxHeight: false,
- maxWidth: false,
- minHeight: 150,
- minWidth: 150,
- modal: false,
- position: {
- my: 'center',
- at: 'center',
- collision: 'fit',
- // ensure that the titlebar is never outside the document
- using: function(pos) {
- var topOffset = $(this).css(pos).offset().top;
- if (topOffset < 0) {
- $(this).css('top', pos.top - topOffset);
- }
- }
- },
- resizable: true,
- show: null,
- stack: true,
- title: '',
- width: 300,
- zIndex: 1000
- },
-
- _create: function() {
- this.originalTitle = this.element.attr('title');
- // #5742 - .attr() might return a DOMElement
- if ( typeof this.originalTitle !== "string" ) {
- this.originalTitle = "";
- }
-
- this.options.title = this.options.title || this.originalTitle;
- var self = this,
- options = self.options,
-
- title = options.title || '&#160;',
- titleId = $.ui.dialog.getTitleId(self.element),
-
- uiDialog = (self.uiDialog = $('<div></div>'))
- .appendTo(document.body)
- .hide()
- .addClass(uiDialogClasses + options.dialogClass)
- .css({
- zIndex: options.zIndex
- })
- // setting tabIndex makes the div focusable
- // setting outline to 0 prevents a border on focus in Mozilla
- .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
- if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
- event.keyCode === $.ui.keyCode.ESCAPE) {
-
- self.close(event);
- event.preventDefault();
- }
- })
- .attr({
- role: 'dialog',
- 'aria-labelledby': titleId
- })
- .mousedown(function(event) {
- self.moveToTop(false, event);
- }),
-
- uiDialogContent = self.element
- .show()
- .removeAttr('title')
- .addClass(
- 'ui-dialog-content ' +
- 'ui-widget-content')
- .appendTo(uiDialog),
-
- uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
- .addClass(
- 'ui-dialog-titlebar ' +
- 'ui-widget-header ' +
- 'ui-corner-all ' +
- 'ui-helper-clearfix'
- )
- .prependTo(uiDialog),
-
- uiDialogTitlebarClose = $('<a href="#"></a>')
- .addClass(
- 'ui-dialog-titlebar-close ' +
- 'ui-corner-all'
- )
- .attr('role', 'button')
- .hover(
- function() {
- uiDialogTitlebarClose.addClass('ui-state-hover');
- },
- function() {
- uiDialogTitlebarClose.removeClass('ui-state-hover');
- }
- )
- .focus(function() {
- uiDialogTitlebarClose.addClass('ui-state-focus');
- })
- .blur(function() {
- uiDialogTitlebarClose.removeClass('ui-state-focus');
- })
- .click(function(event) {
- self.close(event);
- return false;
- })
- .appendTo(uiDialogTitlebar),
-
- uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
- .addClass(
- 'ui-icon ' +
- 'ui-icon-closethick'
- )
- .text(options.closeText)
- .appendTo(uiDialogTitlebarClose),
-
- uiDialogTitle = $('<span></span>')
- .addClass('ui-dialog-title')
- .attr('id', titleId)
- .html(title)
- .prependTo(uiDialogTitlebar);
-
- //handling of deprecated beforeclose (vs beforeClose) option
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
- //TODO: remove in 1.9pre
- if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
- options.beforeClose = options.beforeclose;
- }
-
- uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
-
- if (options.draggable && $.fn.draggable) {
- self._makeDraggable();
- }
- if (options.resizable && $.fn.resizable) {
- self._makeResizable();
- }
-
- self._createButtons(options.buttons);
- self._isOpen = false;
-
- if ($.fn.bgiframe) {
- uiDialog.bgiframe();
- }
- },
-
- _init: function() {
- if ( this.options.autoOpen ) {
- this.open();
- }
- },
-
- destroy: function() {
- var self = this;
-
- if (self.overlay) {
- self.overlay.destroy();
- }
- self.uiDialog.hide();
- self.element
- .unbind('.dialog')
- .removeData('dialog')
- .removeClass('ui-dialog-content ui-widget-content')
- .hide().appendTo('body');
- self.uiDialog.remove();
-
- if (self.originalTitle) {
- self.element.attr('title', self.originalTitle);
- }
-
- return self;
- },
-
- widget: function() {
- return this.uiDialog;
- },
-
- close: function(event) {
- var self = this,
- maxZ, thisZ;
-
- if (false === self._trigger('beforeClose', event)) {
- return;
- }
-
- if (self.overlay) {
- self.overlay.destroy();
- }
- self.uiDialog.unbind('keypress.ui-dialog');
-
- self._isOpen = false;
-
- if (self.options.hide) {
- self.uiDialog.hide(self.options.hide, function() {
- self._trigger('close', event);
- });
- } else {
- self.uiDialog.hide();
- self._trigger('close', event);
- }
-
- $.ui.dialog.overlay.resize();
-
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
- if (self.options.modal) {
- maxZ = 0;
- $('.ui-dialog').each(function() {
- if (this !== self.uiDialog[0]) {
- thisZ = $(this).css('z-index');
- if(!isNaN(thisZ)) {
- maxZ = Math.max(maxZ, thisZ);
- }
- }
- });
- $.ui.dialog.maxZ = maxZ;
- }
-
- return self;
- },
-
- isOpen: function() {
- return this._isOpen;
- },
-
- // the force parameter allows us to move modal dialogs to their correct
- // position on open
- moveToTop: function(force, event) {
- var self = this,
- options = self.options,
- saveScroll;
-
- if ((options.modal && !force) ||
- (!options.stack && !options.modal)) {
- return self._trigger('focus', event);
- }
-
- if (options.zIndex > $.ui.dialog.maxZ) {
- $.ui.dialog.maxZ = options.zIndex;
- }
- if (self.overlay) {
- $.ui.dialog.maxZ += 1;
- self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
- }
-
- //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
- // http://ui.jquery.com/bugs/ticket/3193
- saveScroll = { scrollTop: self.element.scrollTop(), scrollLeft: self.element.scrollLeft() };
- $.ui.dialog.maxZ += 1;
- self.uiDialog.css('z-index', $.ui.dialog.maxZ);
- self.element.attr(saveScroll);
- self._trigger('focus', event);
-
- return self;
- },
-
- open: function() {
- if (this._isOpen) { return; }
-
- var self = this,
- options = self.options,
- uiDialog = self.uiDialog;
-
- self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
- self._size();
- self._position(options.position);
- uiDialog.show(options.show);
- self.moveToTop(true);
-
- // prevent tabbing out of modal dialogs
- if (options.modal) {
- uiDialog.bind('keypress.ui-dialog', function(event) {
- if (event.keyCode !== $.ui.keyCode.TAB) {
- return;
- }
-
- var tabbables = $(':tabbable', this),
- first = tabbables.filter(':first'),
- last = tabbables.filter(':last');
-
- if (event.target === last[0] && !event.shiftKey) {
- first.focus(1);
- return false;
- } else if (event.target === first[0] && event.shiftKey) {
- last.focus(1);
- return false;
- }
- });
- }
-
- // set focus to the first tabbable element in the content area or the first button
- // if there are no tabbable elements, set focus on the dialog itself
- $(self.element.find(':tabbable').get().concat(
- uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
- uiDialog.get()))).eq(0).focus();
-
- self._isOpen = true;
- self._trigger('open');
-
- return self;
- },
-
- _createButtons: function(buttons) {
- var self = this,
- hasButtons = false,
- uiDialogButtonPane = $('<div></div>')
- .addClass(
- 'ui-dialog-buttonpane ' +
- 'ui-widget-content ' +
- 'ui-helper-clearfix'
- ),
- uiButtonSet = $( "<div></div>" )
- .addClass( "ui-dialog-buttonset" )
- .appendTo( uiDialogButtonPane );
-
- // if we already have a button pane, remove it
- self.uiDialog.find('.ui-dialog-buttonpane').remove();
-
- if (typeof buttons === 'object' && buttons !== null) {
- $.each(buttons, function() {
- return !(hasButtons = true);
- });
- }
- if (hasButtons) {
- $.each(buttons, function(name, props) {
- props = $.isFunction( props ) ?
- { click: props, text: name } :
- props;
- var button = $('<button type="button"></button>')
- .click(function() {
- props.click.apply(self.element[0], arguments);
- })
- .appendTo(uiButtonSet);
- // can't use .attr( props, true ) with jQuery 1.3.2.
- $.each( props, function( key, value ) {
- if ( key === "click" ) {
- return;
- }
- if ( key in attrFn ) {
- button[ key ]( value );
- } else {
- button.attr( key, value );
- }
- });
- if ($.fn.button) {
- button.button();
- }
- });
- uiDialogButtonPane.appendTo(self.uiDialog);
- }
- },
-
- _makeDraggable: function() {
- var self = this,
- options = self.options,
- doc = $(document),
- heightBeforeDrag;
-
- function filteredUi(ui) {
- return {
- position: ui.position,
- offset: ui.offset
- };
- }
-
- self.uiDialog.draggable({
- cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
- handle: '.ui-dialog-titlebar',
- containment: 'document',
- start: function(event, ui) {
- heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
- $(this).height($(this).height()).addClass("ui-dialog-dragging");
- self._trigger('dragStart', event, filteredUi(ui));
- },
- drag: function(event, ui) {
- self._trigger('drag', event, filteredUi(ui));
- },
- stop: function(event, ui) {
- options.position = [ui.position.left - doc.scrollLeft(),
- ui.position.top - doc.scrollTop()];
- $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
- self._trigger('dragStop', event, filteredUi(ui));
- $.ui.dialog.overlay.resize();
- }
- });
- },
-
- _makeResizable: function(handles) {
- handles = (handles === undefined ? this.options.resizable : handles);
- var self = this,
- options = self.options,
- // .ui-resizable has position: relative defined in the stylesheet
- // but dialogs have to use absolute or fixed positioning
- position = self.uiDialog.css('position'),
- resizeHandles = (typeof handles === 'string' ?
- handles :
- 'n,e,s,w,se,sw,ne,nw'
- );
-
- function filteredUi(ui) {
- return {
- originalPosition: ui.originalPosition,
- originalSize: ui.originalSize,
- position: ui.position,
- size: ui.size
- };
- }
-
- self.uiDialog.resizable({
- cancel: '.ui-dialog-content',
- containment: 'document',
- alsoResize: self.element,
- maxWidth: options.maxWidth,
- maxHeight: options.maxHeight,
- minWidth: options.minWidth,
- minHeight: self._minHeight(),
- handles: resizeHandles,
- start: function(event, ui) {
- $(this).addClass("ui-dialog-resizing");
- self._trigger('resizeStart', event, filteredUi(ui));
- },
- resize: function(event, ui) {
- self._trigger('resize', event, filteredUi(ui));
- },
- stop: function(event, ui) {
- $(this).removeClass("ui-dialog-resizing");
- options.height = $(this).height();
- options.width = $(this).width();
- self._trigger('resizeStop', event, filteredUi(ui));
- $.ui.dialog.overlay.resize();
- }
- })
- .css('position', position)
- .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
- },
-
- _minHeight: function() {
- var options = this.options;
-
- if (options.height === 'auto') {
- return options.minHeight;
- } else {
- return Math.min(options.minHeight, options.height);
- }
- },
-
- _position: function(position) {
- var myAt = [],
- offset = [0, 0],
- isVisible;
-
- if (position) {
- // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
- // if (typeof position == 'string' || $.isArray(position)) {
- // myAt = $.isArray(position) ? position : position.split(' ');
-
- if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
- myAt = position.split ? position.split(' ') : [position[0], position[1]];
- if (myAt.length === 1) {
- myAt[1] = myAt[0];
- }
-
- $.each(['left', 'top'], function(i, offsetPosition) {
- if (+myAt[i] === myAt[i]) {
- offset[i] = myAt[i];
- myAt[i] = offsetPosition;
- }
- });
-
- position = {
- my: myAt.join(" "),
- at: myAt.join(" "),
- offset: offset.join(" ")
- };
- }
-
- position = $.extend({}, $.ui.dialog.prototype.options.position, position);
- } else {
- position = $.ui.dialog.prototype.options.position;
- }
-
- // need to show the dialog to get the actual offset in the position plugin
- isVisible = this.uiDialog.is(':visible');
- if (!isVisible) {
- this.uiDialog.show();
- }
- this.uiDialog
- // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
- .css({ top: 0, left: 0 })
- .position($.extend({ of: window }, position));
- if (!isVisible) {
- this.uiDialog.hide();
- }
- },
-
- _setOptions: function( options ) {
- var self = this,
- resizableOptions = {},
- resize = false;
-
- $.each( options, function( key, value ) {
- self._setOption( key, value );
-
- if ( key in sizeRelatedOptions ) {
- resize = true;
- }
- if ( key in resizableRelatedOptions ) {
- resizableOptions[ key ] = value;
- }
- });
-
- if ( resize ) {
- this._size();
- }
- if ( this.uiDialog.is( ":data(resizable)" ) ) {
- this.uiDialog.resizable( "option", resizableOptions );
- }
- },
-
- _setOption: function(key, value){
- var self = this,
- uiDialog = self.uiDialog;
-
- switch (key) {
- //handling of deprecated beforeclose (vs beforeClose) option
- //Ticket #4669 http://dev.jqueryui.com/ticket/4669
- //TODO: remove in 1.9pre
- case "beforeclose":
- key = "beforeClose";
- break;
- case "buttons":
- self._createButtons(value);
- break;
- case "closeText":
- // ensure that we always pass a string
- self.uiDialogTitlebarCloseText.text("" + value);
- break;
- case "dialogClass":
- uiDialog
- .removeClass(self.options.dialogClass)
- .addClass(uiDialogClasses + value);
- break;
- case "disabled":
- if (value) {
- uiDialog.addClass('ui-dialog-disabled');
- } else {
- uiDialog.removeClass('ui-dialog-disabled');
- }
- break;
- case "draggable":
- var isDraggable = uiDialog.is( ":data(draggable)" );
- if ( isDraggable && !value ) {
- uiDialog.draggable( "destroy" );
- }
-
- if ( !isDraggable && value ) {
- self._makeDraggable();
- }
- break;
- case "position":
- self._position(value);
- break;
- case "resizable":
- // currently resizable, becoming non-resizable
- var isResizable = uiDialog.is( ":data(resizable)" );
- if (isResizable && !value) {
- uiDialog.resizable('destroy');
- }
-
- // currently resizable, changing handles
- if (isResizable && typeof value === 'string') {
- uiDialog.resizable('option', 'handles', value);
- }
-
- // currently non-resizable, becoming resizable
- if (!isResizable && value !== false) {
- self._makeResizable(value);
- }
- break;
- case "title":
- // convert whatever was passed in o a string, for html() to not throw up
- $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
- break;
- }
-
- $.Widget.prototype._setOption.apply(self, arguments);
- },
-
- _size: function() {
- /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
- * divs will both have width and height set, so we need to reset them
- */
- var options = this.options,
- nonContentHeight,
- minContentHeight,
- isVisible = this.uiDialog.is( ":visible" );
-
- // reset content sizing
- this.element.show().css({
- width: 'auto',
- minHeight: 0,
- height: 0
- });
-
- if (options.minWidth > options.width) {
- options.width = options.minWidth;
- }
-
- // reset wrapper sizing
- // determine the height of all the non-content elements
- nonContentHeight = this.uiDialog.css({
- height: 'auto',
- width: options.width
- })
- .height();
- minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
-
- if ( options.height === "auto" ) {
- // only needed for IE6 support
- if ( $.support.minHeight ) {
- this.element.css({
- minHeight: minContentHeight,
- height: "auto"
- });
- } else {
- this.uiDialog.show();
- var autoHeight = this.element.css( "height", "auto" ).height();
- if ( !isVisible ) {
- this.uiDialog.hide();
- }
- this.element.height( Math.max( autoHeight, minContentHeight ) );
- }
- } else {
- this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
- }
-
- if (this.uiDialog.is(':data(resizable)')) {
- this.uiDialog.resizable('option', 'minHeight', this._minHeight());
- }
- }
-});
-
-$.extend($.ui.dialog, {
- version: "1.8.16",
-
- uuid: 0,
- maxZ: 0,
-
- getTitleId: function($el) {
- var id = $el.attr('id');
- if (!id) {
- this.uuid += 1;
- id = this.uuid;
- }
- return 'ui-dialog-title-' + id;
- },
-
- overlay: function(dialog) {
- this.$el = $.ui.dialog.overlay.create(dialog);
- }
-});
-
-$.extend($.ui.dialog.overlay, {
- instances: [],
- // reuse old instances due to IE memory leak with alpha transparency (see #5185)
- oldInstances: [],
- maxZ: 0,
- events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
- function(event) { return event + '.dialog-overlay'; }).join(' '),
- create: function(dialog) {
- if (this.instances.length === 0) {
- // prevent use of anchors and inputs
- // we use a setTimeout in case the overlay is created from an
- // event that we're going to be cancelling (see #2804)
- setTimeout(function() {
- // handle $(el).dialog().dialog('close') (see #4065)
- if ($.ui.dialog.overlay.instances.length) {
- $(document).bind($.ui.dialog.overlay.events, function(event) {
- // stop events if the z-index of the target is < the z-index of the overlay
- // we cannot return true when we don't want to cancel the event (#3523)
- if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
- return false;
- }
- });
- }
- }, 1);
-
- // allow closing by pressing the escape key
- $(document).bind('keydown.dialog-overlay', function(event) {
- if (dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
- event.keyCode === $.ui.keyCode.ESCAPE) {
-
- dialog.close(event);
- event.preventDefault();
- }
- });
-
- // handle window resize
- $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
- }
-
- var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
- .appendTo(document.body)
- .css({
- width: this.width(),
- height: this.height()
- });
-
- if ($.fn.bgiframe) {
- $el.bgiframe();
- }
-
- this.instances.push($el);
- return $el;
- },
-
- destroy: function($el) {
- var indexOf = $.inArray($el, this.instances);
- if (indexOf != -1){
- this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
- }
-
- if (this.instances.length === 0) {
- $([document, window]).unbind('.dialog-overlay');
- }
-
- $el.remove();
-
- // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
- var maxZ = 0;
- $.each(this.instances, function() {
- maxZ = Math.max(maxZ, this.css('z-index'));
- });
- this.maxZ = maxZ;
- },
-
- height: function() {
- var scrollHeight,
- offsetHeight;
- // handle IE 6
- if ($.browser.msie && $.browser.version < 7) {
- scrollHeight = Math.max(
- document.documentElement.scrollHeight,
- document.body.scrollHeight
- );
- offsetHeight = Math.max(
- document.documentElement.offsetHeight,
- document.body.offsetHeight
- );
-
- if (scrollHeight < offsetHeight) {
- return $(window).height() + 'px';
- } else {
- return scrollHeight + 'px';
- }
- // handle "good" browsers
- } else {
- return $(document).height() + 'px';
- }
- },
-
- width: function() {
- var scrollWidth,
- offsetWidth;
- // handle IE
- if ( $.browser.msie ) {
- scrollWidth = Math.max(
- document.documentElement.scrollWidth,
- document.body.scrollWidth
- );
- offsetWidth = Math.max(
- document.documentElement.offsetWidth,
- document.body.offsetWidth
- );
-
- if (scrollWidth < offsetWidth) {
- return $(window).width() + 'px';
- } else {
- return scrollWidth + 'px';
- }
- // handle "good" browsers
- } else {
- return $(document).width() + 'px';
- }
- },
-
- resize: function() {
- /* If the dialog is draggable and the user drags it past the
- * right edge of the window, the document becomes wider so we
- * need to stretch the overlay. If the user then drags the
- * dialog back to the left, the document will become narrower,
- * so we need to shrink the overlay to the appropriate size.
- * This is handled by shrinking the overlay before setting it
- * to the full document size.
- */
- var $overlays = $([]);
- $.each($.ui.dialog.overlay.instances, function() {
- $overlays = $overlays.add(this);
- });
-
- $overlays.css({
- width: 0,
- height: 0
- }).css({
- width: $.ui.dialog.overlay.width(),
- height: $.ui.dialog.overlay.height()
- });
- }
-});
-
-$.extend($.ui.dialog.overlay.prototype, {
- destroy: function() {
- $.ui.dialog.overlay.destroy(this.$el);
- }
-});
-
-}(jQuery));
-/*
- * jQuery UI Position 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function( $, undefined ) {
-
-$.ui = $.ui || {};
-
-var horizontalPositions = /left|center|right/,
- verticalPositions = /top|center|bottom/,
- center = "center",
- _position = $.fn.position,
- _offset = $.fn.offset;
-
-$.fn.position = function( options ) {
- if ( !options || !options.of ) {
- return _position.apply( this, arguments );
- }
-
- // make a copy, we don't want to modify arguments
- options = $.extend( {}, options );
-
- var target = $( options.of ),
- targetElem = target[0],
- collision = ( options.collision || "flip" ).split( " " ),
- offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
- targetWidth,
- targetHeight,
- basePosition;
-
- if ( targetElem.nodeType === 9 ) {
- targetWidth = target.width();
- targetHeight = target.height();
- basePosition = { top: 0, left: 0 };
- // TODO: use $.isWindow() in 1.9
- } else if ( targetElem.setTimeout ) {
- targetWidth = target.width();
- targetHeight = target.height();
- basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
- } else if ( targetElem.preventDefault ) {
- // force left top to allow flipping
- options.at = "left top";
- targetWidth = targetHeight = 0;
- basePosition = { top: options.of.pageY, left: options.of.pageX };
- } else {
- targetWidth = target.outerWidth();
- targetHeight = target.outerHeight();
- basePosition = target.offset();
- }
-
- // force my and at to have valid horizontal and veritcal positions
- // if a value is missing or invalid, it will be converted to center
- $.each( [ "my", "at" ], function() {
- var pos = ( options[this] || "" ).split( " " );
- if ( pos.length === 1) {
- pos = horizontalPositions.test( pos[0] ) ?
- pos.concat( [center] ) :
- verticalPositions.test( pos[0] ) ?
- [ center ].concat( pos ) :
- [ center, center ];
- }
- pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
- pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
- options[ this ] = pos;
- });
-
- // normalize collision option
- if ( collision.length === 1 ) {
- collision[ 1 ] = collision[ 0 ];
- }
-
- // normalize offset option
- offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
- if ( offset.length === 1 ) {
- offset[ 1 ] = offset[ 0 ];
- }
- offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
-
- if ( options.at[0] === "right" ) {
- basePosition.left += targetWidth;
- } else if ( options.at[0] === center ) {
- basePosition.left += targetWidth / 2;
- }
-
- if ( options.at[1] === "bottom" ) {
- basePosition.top += targetHeight;
- } else if ( options.at[1] === center ) {
- basePosition.top += targetHeight / 2;
- }
-
- basePosition.left += offset[ 0 ];
- basePosition.top += offset[ 1 ];
-
- return this.each(function() {
- var elem = $( this ),
- elemWidth = elem.outerWidth(),
- elemHeight = elem.outerHeight(),
- marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,
- marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,
- collisionWidth = elemWidth + marginLeft +
- ( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),
- collisionHeight = elemHeight + marginTop +
- ( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),
- position = $.extend( {}, basePosition ),
- collisionPosition;
-
- if ( options.my[0] === "right" ) {
- position.left -= elemWidth;
- } else if ( options.my[0] === center ) {
- position.left -= elemWidth / 2;
- }
-
- if ( options.my[1] === "bottom" ) {
- position.top -= elemHeight;
- } else if ( options.my[1] === center ) {
- position.top -= elemHeight / 2;
- }
-
- // prevent fractions (see #5280)
- position.left = Math.round( position.left );
- position.top = Math.round( position.top );
-
- collisionPosition = {
- left: position.left - marginLeft,
- top: position.top - marginTop
- };
-
- $.each( [ "left", "top" ], function( i, dir ) {
- if ( $.ui.position[ collision[i] ] ) {
- $.ui.position[ collision[i] ][ dir ]( position, {
- targetWidth: targetWidth,
- targetHeight: targetHeight,
- elemWidth: elemWidth,
- elemHeight: elemHeight,
- collisionPosition: collisionPosition,
- collisionWidth: collisionWidth,
- collisionHeight: collisionHeight,
- offset: offset,
- my: options.my,
- at: options.at
- });
- }
- });
-
- if ( $.fn.bgiframe ) {
- elem.bgiframe();
- }
- elem.offset( $.extend( position, { using: options.using } ) );
- });
-};
-
-$.ui.position = {
- fit: {
- left: function( position, data ) {
- var win = $( window ),
- over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();
- position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );
- },
- top: function( position, data ) {
- var win = $( window ),
- over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();
- position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );
- }
- },
-
- flip: {
- left: function( position, data ) {
- if ( data.at[0] === center ) {
- return;
- }
- var win = $( window ),
- over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),
- myOffset = data.my[ 0 ] === "left" ?
- -data.elemWidth :
- data.my[ 0 ] === "right" ?
- data.elemWidth :
- 0,
- atOffset = data.at[ 0 ] === "left" ?
- data.targetWidth :
- -data.targetWidth,
- offset = -2 * data.offset[ 0 ];
- position.left += data.collisionPosition.left < 0 ?
- myOffset + atOffset + offset :
- over > 0 ?
- myOffset + atOffset + offset :
- 0;
- },
- top: function( position, data ) {
- if ( data.at[1] === center ) {
- return;
- }
- var win = $( window ),
- over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
- myOffset = data.my[ 1 ] === "top" ?
- -data.elemHeight :
- data.my[ 1 ] === "bottom" ?
- data.elemHeight :
- 0,
- atOffset = data.at[ 1 ] === "top" ?
- data.targetHeight :
- -data.targetHeight,
- offset = -2 * data.offset[ 1 ];
- position.top += data.collisionPosition.top < 0 ?
- myOffset + atOffset + offset :
- over > 0 ?
- myOffset + atOffset + offset :
- 0;
- }
- }
-};
-
-// offset setter from jQuery 1.4
-if ( !$.offset.setOffset ) {
- $.offset.setOffset = function( elem, options ) {
- // set position first, in-case top/left are set even on static elem
- if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
- elem.style.position = "relative";
- }
- var curElem = $( elem ),
- curOffset = curElem.offset(),
- curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
- curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
- props = {
- top: (options.top - curOffset.top) + curTop,
- left: (options.left - curOffset.left) + curLeft
- };
-
- if ( 'using' in options ) {
- options.using.call( elem, props );
- } else {
- curElem.css( props );
- }
- };
-
- $.fn.offset = function( options ) {
- var elem = this[ 0 ];
- if ( !elem || !elem.ownerDocument ) { return null; }
- if ( options ) {
- return this.each(function() {
- $.offset.setOffset( this, options );
- });
- }
- return _offset.call( this );
- };
-}
-
-}( jQuery ));
-/*
- * jQuery UI Progressbar 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget( "ui.progressbar", {
- options: {
- value: 0,
- max: 100
- },
-
- min: 0,
-
- _create: function() {
- this.element
- .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
- .attr({
- role: "progressbar",
- "aria-valuemin": this.min,
- "aria-valuemax": this.options.max,
- "aria-valuenow": this._value()
- });
-
- this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
- .appendTo( this.element );
-
- this.oldValue = this._value();
- this._refreshValue();
- },
-
- destroy: function() {
- this.element
- .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
- .removeAttr( "role" )
- .removeAttr( "aria-valuemin" )
- .removeAttr( "aria-valuemax" )
- .removeAttr( "aria-valuenow" );
-
- this.valueDiv.remove();
-
- $.Widget.prototype.destroy.apply( this, arguments );
- },
-
- value: function( newValue ) {
- if ( newValue === undefined ) {
- return this._value();
- }
-
- this._setOption( "value", newValue );
- return this;
- },
-
- _setOption: function( key, value ) {
- if ( key === "value" ) {
- this.options.value = value;
- this._refreshValue();
- if ( this._value() === this.options.max ) {
- this._trigger( "complete" );
- }
- }
-
- $.Widget.prototype._setOption.apply( this, arguments );
- },
-
- _value: function() {
- var val = this.options.value;
- // normalize invalid value
- if ( typeof val !== "number" ) {
- val = 0;
- }
- return Math.min( this.options.max, Math.max( this.min, val ) );
- },
-
- _percentage: function() {
- return 100 * this._value() / this.options.max;
- },
-
- _refreshValue: function() {
- var value = this.value();
- var percentage = this._percentage();
-
- if ( this.oldValue !== value ) {
- this.oldValue = value;
- this._trigger( "change" );
- }
-
- this.valueDiv
- .toggle( value > this.min )
- .toggleClass( "ui-corner-right", value === this.options.max )
- .width( percentage.toFixed(0) + "%" );
- this.element.attr( "aria-valuenow", value );
- }
-});
-
-$.extend( $.ui.progressbar, {
- version: "1.8.16"
-});
-
-})( jQuery );
-/*
- * jQuery UI Slider 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-// number of pages in a slider
-// (how many times can you page up/down to go through the whole range)
-var numPages = 5;
-
-$.widget( "ui.slider", $.ui.mouse, {
-
- widgetEventPrefix: "slide",
-
- options: {
- animate: false,
- distance: 0,
- max: 100,
- min: 0,
- orientation: "horizontal",
- range: false,
- step: 1,
- value: 0,
- values: null
- },
-
- _create: function() {
- var self = this,
- o = this.options,
- existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),
- handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
- handleCount = ( o.values && o.values.length ) || 1,
- handles = [];
-
- this._keySliding = false;
- this._mouseSliding = false;
- this._animateOff = true;
- this._handleIndex = null;
- this._detectOrientation();
- this._mouseInit();
-
- this.element
- .addClass( "ui-slider" +
- " ui-slider-" + this.orientation +
- " ui-widget" +
- " ui-widget-content" +
- " ui-corner-all" +
- ( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) );
-
- this.range = $([]);
-
- if ( o.range ) {
- if ( o.range === true ) {
- if ( !o.values ) {
- o.values = [ this._valueMin(), this._valueMin() ];
- }
- if ( o.values.length && o.values.length !== 2 ) {
- o.values = [ o.values[0], o.values[0] ];
- }
- }
-
- this.range = $( "<div></div>" )
- .appendTo( this.element )
- .addClass( "ui-slider-range" +
- // note: this isn't the most fittingly semantic framework class for this element,
- // but worked best visually with a variety of themes
- " ui-widget-header" +
- ( ( o.range === "min" || o.range === "max" ) ? " ui-slider-range-" + o.range : "" ) );
- }
-
- for ( var i = existingHandles.length; i < handleCount; i += 1 ) {
- handles.push( handle );
- }
-
- this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( self.element ) );
-
- this.handle = this.handles.eq( 0 );
-
- this.handles.add( this.range ).filter( "a" )
- .click(function( event ) {
- event.preventDefault();
- })
- .hover(function() {
- if ( !o.disabled ) {
- $( this ).addClass( "ui-state-hover" );
- }
- }, function() {
- $( this ).removeClass( "ui-state-hover" );
- })
- .focus(function() {
- if ( !o.disabled ) {
- $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
- $( this ).addClass( "ui-state-focus" );
- } else {
- $( this ).blur();
- }
- })
- .blur(function() {
- $( this ).removeClass( "ui-state-focus" );
- });
-
- this.handles.each(function( i ) {
- $( this ).data( "index.ui-slider-handle", i );
- });
-
- this.handles
- .keydown(function( event ) {
- var ret = true,
- index = $( this ).data( "index.ui-slider-handle" ),
- allowed,
- curVal,
- newVal,
- step;
-
- if ( self.options.disabled ) {
- return;
- }
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.HOME:
- case $.ui.keyCode.END:
- case $.ui.keyCode.PAGE_UP:
- case $.ui.keyCode.PAGE_DOWN:
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- ret = false;
- if ( !self._keySliding ) {
- self._keySliding = true;
- $( this ).addClass( "ui-state-active" );
- allowed = self._start( event, index );
- if ( allowed === false ) {
- return;
- }
- }
- break;
- }
-
- step = self.options.step;
- if ( self.options.values && self.options.values.length ) {
- curVal = newVal = self.values( index );
- } else {
- curVal = newVal = self.value();
- }
-
- switch ( event.keyCode ) {
- case $.ui.keyCode.HOME:
- newVal = self._valueMin();
- break;
- case $.ui.keyCode.END:
- newVal = self._valueMax();
- break;
- case $.ui.keyCode.PAGE_UP:
- newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );
- break;
- case $.ui.keyCode.PAGE_DOWN:
- newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );
- break;
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- if ( curVal === self._valueMax() ) {
- return;
- }
- newVal = self._trimAlignValue( curVal + step );
- break;
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- if ( curVal === self._valueMin() ) {
- return;
- }
- newVal = self._trimAlignValue( curVal - step );
- break;
- }
-
- self._slide( event, index, newVal );
-
- return ret;
-
- })
- .keyup(function( event ) {
- var index = $( this ).data( "index.ui-slider-handle" );
-
- if ( self._keySliding ) {
- self._keySliding = false;
- self._stop( event, index );
- self._change( event, index );
- $( this ).removeClass( "ui-state-active" );
- }
-
- });
-
- this._refreshValue();
-
- this._animateOff = false;
- },
-
- destroy: function() {
- this.handles.remove();
- this.range.remove();
-
- this.element
- .removeClass( "ui-slider" +
- " ui-slider-horizontal" +
- " ui-slider-vertical" +
- " ui-slider-disabled" +
- " ui-widget" +
- " ui-widget-content" +
- " ui-corner-all" )
- .removeData( "slider" )
- .unbind( ".slider" );
-
- this._mouseDestroy();
-
- return this;
- },
-
- _mouseCapture: function( event ) {
- var o = this.options,
- position,
- normValue,
- distance,
- closestHandle,
- self,
- index,
- allowed,
- offset,
- mouseOverHandle;
-
- if ( o.disabled ) {
- return false;
- }
-
- this.elementSize = {
- width: this.element.outerWidth(),
- height: this.element.outerHeight()
- };
- this.elementOffset = this.element.offset();
-
- position = { x: event.pageX, y: event.pageY };
- normValue = this._normValueFromMouse( position );
- distance = this._valueMax() - this._valueMin() + 1;
- self = this;
- this.handles.each(function( i ) {
- var thisDistance = Math.abs( normValue - self.values(i) );
- if ( distance > thisDistance ) {
- distance = thisDistance;
- closestHandle = $( this );
- index = i;
- }
- });
-
- // workaround for bug #3736 (if both handles of a range are at 0,
- // the first is always used as the one with least distance,
- // and moving it is obviously prevented by preventing negative ranges)
- if( o.range === true && this.values(1) === o.min ) {
- index += 1;
- closestHandle = $( this.handles[index] );
- }
-
- allowed = this._start( event, index );
- if ( allowed === false ) {
- return false;
- }
- this._mouseSliding = true;
-
- self._handleIndex = index;
-
- closestHandle
- .addClass( "ui-state-active" )
- .focus();
-
- offset = closestHandle.offset();
- mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" );
- this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
- left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
- top: event.pageY - offset.top -
- ( closestHandle.height() / 2 ) -
- ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
- ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
- ( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
- };
-
- if ( !this.handles.hasClass( "ui-state-hover" ) ) {
- this._slide( event, index, normValue );
- }
- this._animateOff = true;
- return true;
- },
-
- _mouseStart: function( event ) {
- return true;
- },
-
- _mouseDrag: function( event ) {
- var position = { x: event.pageX, y: event.pageY },
- normValue = this._normValueFromMouse( position );
-
- this._slide( event, this._handleIndex, normValue );
-
- return false;
- },
-
- _mouseStop: function( event ) {
- this.handles.removeClass( "ui-state-active" );
- this._mouseSliding = false;
-
- this._stop( event, this._handleIndex );
- this._change( event, this._handleIndex );
-
- this._handleIndex = null;
- this._clickOffset = null;
- this._animateOff = false;
-
- return false;
- },
-
- _detectOrientation: function() {
- this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
- },
-
- _normValueFromMouse: function( position ) {
- var pixelTotal,
- pixelMouse,
- percentMouse,
- valueTotal,
- valueMouse;
-
- if ( this.orientation === "horizontal" ) {
- pixelTotal = this.elementSize.width;
- pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
- } else {
- pixelTotal = this.elementSize.height;
- pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
- }
-
- percentMouse = ( pixelMouse / pixelTotal );
- if ( percentMouse > 1 ) {
- percentMouse = 1;
- }
- if ( percentMouse < 0 ) {
- percentMouse = 0;
- }
- if ( this.orientation === "vertical" ) {
- percentMouse = 1 - percentMouse;
- }
-
- valueTotal = this._valueMax() - this._valueMin();
- valueMouse = this._valueMin() + percentMouse * valueTotal;
-
- return this._trimAlignValue( valueMouse );
- },
-
- _start: function( event, index ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
- return this._trigger( "start", event, uiHash );
- },
-
- _slide: function( event, index, newVal ) {
- var otherVal,
- newValues,
- allowed;
-
- if ( this.options.values && this.options.values.length ) {
- otherVal = this.values( index ? 0 : 1 );
-
- if ( ( this.options.values.length === 2 && this.options.range === true ) &&
- ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
- ) {
- newVal = otherVal;
- }
-
- if ( newVal !== this.values( index ) ) {
- newValues = this.values();
- newValues[ index ] = newVal;
- // A slide can be canceled by returning false from the slide callback
- allowed = this._trigger( "slide", event, {
- handle: this.handles[ index ],
- value: newVal,
- values: newValues
- } );
- otherVal = this.values( index ? 0 : 1 );
- if ( allowed !== false ) {
- this.values( index, newVal, true );
- }
- }
- } else {
- if ( newVal !== this.value() ) {
- // A slide can be canceled by returning false from the slide callback
- allowed = this._trigger( "slide", event, {
- handle: this.handles[ index ],
- value: newVal
- } );
- if ( allowed !== false ) {
- this.value( newVal );
- }
- }
- }
- },
-
- _stop: function( event, index ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
-
- this._trigger( "stop", event, uiHash );
- },
-
- _change: function( event, index ) {
- if ( !this._keySliding && !this._mouseSliding ) {
- var uiHash = {
- handle: this.handles[ index ],
- value: this.value()
- };
- if ( this.options.values && this.options.values.length ) {
- uiHash.value = this.values( index );
- uiHash.values = this.values();
- }
-
- this._trigger( "change", event, uiHash );
- }
- },
-
- value: function( newValue ) {
- if ( arguments.length ) {
- this.options.value = this._trimAlignValue( newValue );
- this._refreshValue();
- this._change( null, 0 );
- return;
- }
-
- return this._value();
- },
-
- values: function( index, newValue ) {
- var vals,
- newValues,
- i;
-
- if ( arguments.length > 1 ) {
- this.options.values[ index ] = this._trimAlignValue( newValue );
- this._refreshValue();
- this._change( null, index );
- return;
- }
-
- if ( arguments.length ) {
- if ( $.isArray( arguments[ 0 ] ) ) {
- vals = this.options.values;
- newValues = arguments[ 0 ];
- for ( i = 0; i < vals.length; i += 1 ) {
- vals[ i ] = this._trimAlignValue( newValues[ i ] );
- this._change( null, i );
- }
- this._refreshValue();
- } else {
- if ( this.options.values && this.options.values.length ) {
- return this._values( index );
- } else {
- return this.value();
- }
- }
- } else {
- return this._values();
- }
- },
-
- _setOption: function( key, value ) {
- var i,
- valsLength = 0;
-
- if ( $.isArray( this.options.values ) ) {
- valsLength = this.options.values.length;
- }
-
- $.Widget.prototype._setOption.apply( this, arguments );
-
- switch ( key ) {
- case "disabled":
- if ( value ) {
- this.handles.filter( ".ui-state-focus" ).blur();
- this.handles.removeClass( "ui-state-hover" );
- this.handles.propAttr( "disabled", true );
- this.element.addClass( "ui-disabled" );
- } else {
- this.handles.propAttr( "disabled", false );
- this.element.removeClass( "ui-disabled" );
- }
- break;
- case "orientation":
- this._detectOrientation();
- this.element
- .removeClass( "ui-slider-horizontal ui-slider-vertical" )
- .addClass( "ui-slider-" + this.orientation );
- this._refreshValue();
- break;
- case "value":
- this._animateOff = true;
- this._refreshValue();
- this._change( null, 0 );
- this._animateOff = false;
- break;
- case "values":
- this._animateOff = true;
- this._refreshValue();
- for ( i = 0; i < valsLength; i += 1 ) {
- this._change( null, i );
- }
- this._animateOff = false;
- break;
- }
- },
-
- //internal value getter
- // _value() returns value trimmed by min and max, aligned by step
- _value: function() {
- var val = this.options.value;
- val = this._trimAlignValue( val );
-
- return val;
- },
-
- //internal values getter
- // _values() returns array of values trimmed by min and max, aligned by step
- // _values( index ) returns single value trimmed by min and max, aligned by step
- _values: function( index ) {
- var val,
- vals,
- i;
-
- if ( arguments.length ) {
- val = this.options.values[ index ];
- val = this._trimAlignValue( val );
-
- return val;
- } else {
- // .slice() creates a copy of the array
- // this copy gets trimmed by min and max and then returned
- vals = this.options.values.slice();
- for ( i = 0; i < vals.length; i+= 1) {
- vals[ i ] = this._trimAlignValue( vals[ i ] );
- }
-
- return vals;
- }
- },
-
- // returns the step-aligned value that val is closest to, between (inclusive) min and max
- _trimAlignValue: function( val ) {
- if ( val <= this._valueMin() ) {
- return this._valueMin();
- }
- if ( val >= this._valueMax() ) {
- return this._valueMax();
- }
- var step = ( this.options.step > 0 ) ? this.options.step : 1,
- valModStep = (val - this._valueMin()) % step,
- alignValue = val - valModStep;
-
- if ( Math.abs(valModStep) * 2 >= step ) {
- alignValue += ( valModStep > 0 ) ? step : ( -step );
- }
-
- // Since JavaScript has problems with large floats, round
- // the final value to 5 digits after the decimal point (see #4124)
- return parseFloat( alignValue.toFixed(5) );
- },
-
- _valueMin: function() {
- return this.options.min;
- },
-
- _valueMax: function() {
- return this.options.max;
- },
-
- _refreshValue: function() {
- var oRange = this.options.range,
- o = this.options,
- self = this,
- animate = ( !this._animateOff ) ? o.animate : false,
- valPercent,
- _set = {},
- lastValPercent,
- value,
- valueMin,
- valueMax;
-
- if ( this.options.values && this.options.values.length ) {
- this.handles.each(function( i, j ) {
- valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
- _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
- $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
- if ( self.options.range === true ) {
- if ( self.orientation === "horizontal" ) {
- if ( i === 0 ) {
- self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
- }
- if ( i === 1 ) {
- self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- } else {
- if ( i === 0 ) {
- self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
- }
- if ( i === 1 ) {
- self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- }
- }
- lastValPercent = valPercent;
- });
- } else {
- value = this.value();
- valueMin = this._valueMin();
- valueMax = this._valueMax();
- valPercent = ( valueMax !== valueMin ) ?
- ( value - valueMin ) / ( valueMax - valueMin ) * 100 :
- 0;
- _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
- this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
-
- if ( oRange === "min" && this.orientation === "horizontal" ) {
- this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
- }
- if ( oRange === "max" && this.orientation === "horizontal" ) {
- this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- if ( oRange === "min" && this.orientation === "vertical" ) {
- this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
- }
- if ( oRange === "max" && this.orientation === "vertical" ) {
- this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
- }
- }
- }
-
-});
-
-$.extend( $.ui.slider, {
- version: "1.8.16"
-});
-
-}(jQuery));
-/*
- * jQuery UI Tabs 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var tabId = 0,
- listId = 0;
-
-function getNextTabId() {
- return ++tabId;
-}
-
-function getNextListId() {
- return ++listId;
-}
-
-$.widget( "ui.tabs", {
- options: {
- add: null,
- ajaxOptions: null,
- cache: false,
- cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
- collapsible: false,
- disable: null,
- disabled: [],
- enable: null,
- event: "click",
- fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
- idPrefix: "ui-tabs-",
- load: null,
- panelTemplate: "<div></div>",
- remove: null,
- select: null,
- show: null,
- spinner: "<em>Loading&#8230;</em>",
- tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
- },
-
- _create: function() {
- this._tabify( true );
- },
-
- _setOption: function( key, value ) {
- if ( key == "selected" ) {
- if (this.options.collapsible && value == this.options.selected ) {
- return;
- }
- this.select( value );
- } else {
- this.options[ key ] = value;
- this._tabify();
- }
- },
-
- _tabId: function( a ) {
- return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
- this.options.idPrefix + getNextTabId();
- },
-
- _sanitizeSelector: function( hash ) {
- // we need this because an id may contain a ":"
- return hash.replace( /:/g, "\\:" );
- },
-
- _cookie: function() {
- var cookie = this.cookie ||
- ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() );
- return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
- },
-
- _ui: function( tab, panel ) {
- return {
- tab: tab,
- panel: panel,
- index: this.anchors.index( tab )
- };
- },
-
- _cleanup: function() {
- // restore all former loading tabs labels
- this.lis.filter( ".ui-state-processing" )
- .removeClass( "ui-state-processing" )
- .find( "span:data(label.tabs)" )
- .each(function() {
- var el = $( this );
- el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
- });
- },
-
- _tabify: function( init ) {
- var self = this,
- o = this.options,
- fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
-
- this.list = this.element.find( "ol,ul" ).eq( 0 );
- this.lis = $( " > li:has(a[href])", this.list );
- this.anchors = this.lis.map(function() {
- return $( "a", this )[ 0 ];
- });
- this.panels = $( [] );
-
- this.anchors.each(function( i, a ) {
- var href = $( a ).attr( "href" );
- // For dynamically created HTML that contains a hash as href IE < 8 expands
- // such href to the full page url with hash and then misinterprets tab as ajax.
- // Same consideration applies for an added tab with a fragment identifier
- // since a[href=#fragment-identifier] does unexpectedly not match.
- // Thus normalize href attribute...
- var hrefBase = href.split( "#" )[ 0 ],
- baseEl;
- if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] ||
- ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) {
- href = a.hash;
- a.href = href;
- }
-
- // inline tab
- if ( fragmentId.test( href ) ) {
- self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
- // remote tab
- // prevent loading the page itself if href is just "#"
- } else if ( href && href !== "#" ) {
- // required for restore on destroy
- $.data( a, "href.tabs", href );
-
- // TODO until #3808 is fixed strip fragment identifier from url
- // (IE fails to load from such url)
- $.data( a, "load.tabs", href.replace( /#.*$/, "" ) );
-
- var id = self._tabId( a );
- a.href = "#" + id;
- var $panel = self.element.find( "#" + id );
- if ( !$panel.length ) {
- $panel = $( o.panelTemplate )
- .attr( "id", id )
- .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
- .insertAfter( self.panels[ i - 1 ] || self.list );
- $panel.data( "destroy.tabs", true );
- }
- self.panels = self.panels.add( $panel );
- // invalid tab href
- } else {
- o.disabled.push( i );
- }
- });
-
- // initialization from scratch
- if ( init ) {
- // attach necessary classes for styling
- this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" );
- this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
- this.lis.addClass( "ui-state-default ui-corner-top" );
- this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" );
-
- // Selected tab
- // use "selected" option or try to retrieve:
- // 1. from fragment identifier in url
- // 2. from cookie
- // 3. from selected class attribute on <li>
- if ( o.selected === undefined ) {
- if ( location.hash ) {
- this.anchors.each(function( i, a ) {
- if ( a.hash == location.hash ) {
- o.selected = i;
- return false;
- }
- });
- }
- if ( typeof o.selected !== "number" && o.cookie ) {
- o.selected = parseInt( self._cookie(), 10 );
- }
- if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) {
- o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
- }
- o.selected = o.selected || ( this.lis.length ? 0 : -1 );
- } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release
- o.selected = -1;
- }
-
- // sanity check - default to first tab...
- o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )
- ? o.selected
- : 0;
-
- // Take disabling tabs via class attribute from HTML
- // into account and update option properly.
- // A selected tab cannot become disabled.
- o.disabled = $.unique( o.disabled.concat(
- $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {
- return self.lis.index( n );
- })
- ) ).sort();
-
- if ( $.inArray( o.selected, o.disabled ) != -1 ) {
- o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );
- }
-
- // highlight selected tab
- this.panels.addClass( "ui-tabs-hide" );
- this.lis.removeClass( "ui-tabs-selected ui-state-active" );
- // check for length avoids error when initializing empty list
- if ( o.selected >= 0 && this.anchors.length ) {
- self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" );
- this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" );
-
- // seems to be expected behavior that the show callback is fired
- self.element.queue( "tabs", function() {
- self._trigger( "show", null,
- self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );
- });
-
- this.load( o.selected );
- }
-
- // clean up to avoid memory leaks in certain versions of IE 6
- // TODO: namespace this event
- $( window ).bind( "unload", function() {
- self.lis.add( self.anchors ).unbind( ".tabs" );
- self.lis = self.anchors = self.panels = null;
- });
- // update selected after add/remove
- } else {
- o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
- }
-
- // update collapsible
- // TODO: use .toggleClass()
- this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" );
-
- // set or update cookie after init and add/remove respectively
- if ( o.cookie ) {
- this._cookie( o.selected, o.cookie );
- }
-
- // disable tabs
- for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {
- $( li )[ $.inArray( i, o.disabled ) != -1 &&
- // TODO: use .toggleClass()
- !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" );
- }
-
- // reset cache if switching from cached to not cached
- if ( o.cache === false ) {
- this.anchors.removeData( "cache.tabs" );
- }
-
- // remove all handlers before, tabify may run on existing tabs after add or option change
- this.lis.add( this.anchors ).unbind( ".tabs" );
-
- if ( o.event !== "mouseover" ) {
- var addState = function( state, el ) {
- if ( el.is( ":not(.ui-state-disabled)" ) ) {
- el.addClass( "ui-state-" + state );
- }
- };
- var removeState = function( state, el ) {
- el.removeClass( "ui-state-" + state );
- };
- this.lis.bind( "mouseover.tabs" , function() {
- addState( "hover", $( this ) );
- });
- this.lis.bind( "mouseout.tabs", function() {
- removeState( "hover", $( this ) );
- });
- this.anchors.bind( "focus.tabs", function() {
- addState( "focus", $( this ).closest( "li" ) );
- });
- this.anchors.bind( "blur.tabs", function() {
- removeState( "focus", $( this ).closest( "li" ) );
- });
- }
-
- // set up animations
- var hideFx, showFx;
- if ( o.fx ) {
- if ( $.isArray( o.fx ) ) {
- hideFx = o.fx[ 0 ];
- showFx = o.fx[ 1 ];
- } else {
- hideFx = showFx = o.fx;
- }
- }
-
- // Reset certain styles left over from animation
- // and prevent IE's ClearType bug...
- function resetStyle( $el, fx ) {
- $el.css( "display", "" );
- if ( !$.support.opacity && fx.opacity ) {
- $el[ 0 ].style.removeAttribute( "filter" );
- }
- }
-
- // Show a tab...
- var showTab = showFx
- ? function( clicked, $show ) {
- $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
- $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way
- .animate( showFx, showFx.duration || "normal", function() {
- resetStyle( $show, showFx );
- self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
- });
- }
- : function( clicked, $show ) {
- $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
- $show.removeClass( "ui-tabs-hide" );
- self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
- };
-
- // Hide a tab, $show is optional...
- var hideTab = hideFx
- ? function( clicked, $hide ) {
- $hide.animate( hideFx, hideFx.duration || "normal", function() {
- self.lis.removeClass( "ui-tabs-selected ui-state-active" );
- $hide.addClass( "ui-tabs-hide" );
- resetStyle( $hide, hideFx );
- self.element.dequeue( "tabs" );
- });
- }
- : function( clicked, $hide, $show ) {
- self.lis.removeClass( "ui-tabs-selected ui-state-active" );
- $hide.addClass( "ui-tabs-hide" );
- self.element.dequeue( "tabs" );
- };
-
- // attach tab event handler, unbind to avoid duplicates from former tabifying...
- this.anchors.bind( o.event + ".tabs", function() {
- var el = this,
- $li = $(el).closest( "li" ),
- $hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
- $show = self.element.find( self._sanitizeSelector( el.hash ) );
-
- // If tab is already selected and not collapsible or tab disabled or
- // or is already loading or click callback returns false stop here.
- // Check if click handler returns false last so that it is not executed
- // for a disabled or loading tab!
- if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
- $li.hasClass( "ui-state-disabled" ) ||
- $li.hasClass( "ui-state-processing" ) ||
- self.panels.filter( ":animated" ).length ||
- self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
- this.blur();
- return false;
- }
-
- o.selected = self.anchors.index( this );
-
- self.abort();
-
- // if tab may be closed
- if ( o.collapsible ) {
- if ( $li.hasClass( "ui-tabs-selected" ) ) {
- o.selected = -1;
-
- if ( o.cookie ) {
- self._cookie( o.selected, o.cookie );
- }
-
- self.element.queue( "tabs", function() {
- hideTab( el, $hide );
- }).dequeue( "tabs" );
-
- this.blur();
- return false;
- } else if ( !$hide.length ) {
- if ( o.cookie ) {
- self._cookie( o.selected, o.cookie );
- }
-
- self.element.queue( "tabs", function() {
- showTab( el, $show );
- });
-
- // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
- self.load( self.anchors.index( this ) );
-
- this.blur();
- return false;
- }
- }
-
- if ( o.cookie ) {
- self._cookie( o.selected, o.cookie );
- }
-
- // show new tab
- if ( $show.length ) {
- if ( $hide.length ) {
- self.element.queue( "tabs", function() {
- hideTab( el, $hide );
- });
- }
- self.element.queue( "tabs", function() {
- showTab( el, $show );
- });
-
- self.load( self.anchors.index( this ) );
- } else {
- throw "jQuery UI Tabs: Mismatching fragment identifier.";
- }
-
- // Prevent IE from keeping other link focussed when using the back button
- // and remove dotted border from clicked link. This is controlled via CSS
- // in modern browsers; blur() removes focus from address bar in Firefox
- // which can become a usability and annoying problem with tabs('rotate').
- if ( $.browser.msie ) {
- this.blur();
- }
- });
-
- // disable click in any case
- this.anchors.bind( "click.tabs", function(){
- return false;
- });
- },
-
- _getIndex: function( index ) {
- // meta-function to give users option to provide a href string instead of a numerical index.
- // also sanitizes numerical indexes to valid values.
- if ( typeof index == "string" ) {
- index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) );
- }
-
- return index;
- },
-
- destroy: function() {
- var o = this.options;
-
- this.abort();
-
- this.element
- .unbind( ".tabs" )
- .removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" )
- .removeData( "tabs" );
-
- this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
-
- this.anchors.each(function() {
- var href = $.data( this, "href.tabs" );
- if ( href ) {
- this.href = href;
- }
- var $this = $( this ).unbind( ".tabs" );
- $.each( [ "href", "load", "cache" ], function( i, prefix ) {
- $this.removeData( prefix + ".tabs" );
- });
- });
-
- this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {
- if ( $.data( this, "destroy.tabs" ) ) {
- $( this ).remove();
- } else {
- $( this ).removeClass([
- "ui-state-default",
- "ui-corner-top",
- "ui-tabs-selected",
- "ui-state-active",
- "ui-state-hover",
- "ui-state-focus",
- "ui-state-disabled",
- "ui-tabs-panel",
- "ui-widget-content",
- "ui-corner-bottom",
- "ui-tabs-hide"
- ].join( " " ) );
- }
- });
-
- if ( o.cookie ) {
- this._cookie( null, o.cookie );
- }
-
- return this;
- },
-
- add: function( url, label, index ) {
- if ( index === undefined ) {
- index = this.anchors.length;
- }
-
- var self = this,
- o = this.options,
- $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ),
- id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] );
-
- $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );
-
- // try to find an existing element before creating a new one
- var $panel = self.element.find( "#" + id );
- if ( !$panel.length ) {
- $panel = $( o.panelTemplate )
- .attr( "id", id )
- .data( "destroy.tabs", true );
- }
- $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" );
-
- if ( index >= this.lis.length ) {
- $li.appendTo( this.list );
- $panel.appendTo( this.list[ 0 ].parentNode );
- } else {
- $li.insertBefore( this.lis[ index ] );
- $panel.insertBefore( this.panels[ index ] );
- }
-
- o.disabled = $.map( o.disabled, function( n, i ) {
- return n >= index ? ++n : n;
- });
-
- this._tabify();
-
- if ( this.anchors.length == 1 ) {
- o.selected = 0;
- $li.addClass( "ui-tabs-selected ui-state-active" );
- $panel.removeClass( "ui-tabs-hide" );
- this.element.queue( "tabs", function() {
- self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
- });
-
- this.load( 0 );
- }
-
- this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
- return this;
- },
-
- remove: function( index ) {
- index = this._getIndex( index );
- var o = this.options,
- $li = this.lis.eq( index ).remove(),
- $panel = this.panels.eq( index ).remove();
-
- // If selected tab was removed focus tab to the right or
- // in case the last tab was removed the tab to the left.
- if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {
- this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );
- }
-
- o.disabled = $.map(
- $.grep( o.disabled, function(n, i) {
- return n != index;
- }),
- function( n, i ) {
- return n >= index ? --n : n;
- });
-
- this._tabify();
-
- this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
- return this;
- },
-
- enable: function( index ) {
- index = this._getIndex( index );
- var o = this.options;
- if ( $.inArray( index, o.disabled ) == -1 ) {
- return;
- }
-
- this.lis.eq( index ).removeClass( "ui-state-disabled" );
- o.disabled = $.grep( o.disabled, function( n, i ) {
- return n != index;
- });
-
- this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
- return this;
- },
-
- disable: function( index ) {
- index = this._getIndex( index );
- var self = this, o = this.options;
- // cannot disable already selected tab
- if ( index != o.selected ) {
- this.lis.eq( index ).addClass( "ui-state-disabled" );
-
- o.disabled.push( index );
- o.disabled.sort();
-
- this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
- }
-
- return this;
- },
-
- select: function( index ) {
- index = this._getIndex( index );
- if ( index == -1 ) {
- if ( this.options.collapsible && this.options.selected != -1 ) {
- index = this.options.selected;
- } else {
- return this;
- }
- }
- this.anchors.eq( index ).trigger( this.options.event + ".tabs" );
- return this;
- },
-
- load: function( index ) {
- index = this._getIndex( index );
- var self = this,
- o = this.options,
- a = this.anchors.eq( index )[ 0 ],
- url = $.data( a, "load.tabs" );
-
- this.abort();
-
- // not remote or from cache
- if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) {
- this.element.dequeue( "tabs" );
- return;
- }
-
- // load remote from here on
- this.lis.eq( index ).addClass( "ui-state-processing" );
-
- if ( o.spinner ) {
- var span = $( "span", a );
- span.data( "label.tabs", span.html() ).html( o.spinner );
- }
-
- this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
- url: url,
- success: function( r, s ) {
- self.element.find( self._sanitizeSelector( a.hash ) ).html( r );
-
- // take care of tab labels
- self._cleanup();
-
- if ( o.cache ) {
- $.data( a, "cache.tabs", true );
- }
-
- self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
- try {
- o.ajaxOptions.success( r, s );
- }
- catch ( e ) {}
- },
- error: function( xhr, s, e ) {
- // take care of tab labels
- self._cleanup();
-
- self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
- try {
- // Passing index avoid a race condition when this method is
- // called after the user has selected another tab.
- // Pass the anchor that initiated this request allows
- // loadError to manipulate the tab content panel via $(a.hash)
- o.ajaxOptions.error( xhr, s, index, a );
- }
- catch ( e ) {}
- }
- } ) );
-
- // last, so that load event is fired before show...
- self.element.dequeue( "tabs" );
-
- return this;
- },
-
- abort: function() {
- // stop possibly running animations
- this.element.queue( [] );
- this.panels.stop( false, true );
-
- // "tabs" queue must not contain more than two elements,
- // which are the callbacks for the latest clicked tab...
- this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) );
-
- // terminate pending requests from other tabs
- if ( this.xhr ) {
- this.xhr.abort();
- delete this.xhr;
- }
-
- // take care of tab labels
- this._cleanup();
- return this;
- },
-
- url: function( index, url ) {
- this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url );
- return this;
- },
-
- length: function() {
- return this.anchors.length;
- }
-});
-
-$.extend( $.ui.tabs, {
- version: "1.8.16"
-});
-
-/*
- * Tabs Extensions
- */
-
-/*
- * Rotate
- */
-$.extend( $.ui.tabs.prototype, {
- rotation: null,
- rotate: function( ms, continuing ) {
- var self = this,
- o = this.options;
-
- var rotate = self._rotate || ( self._rotate = function( e ) {
- clearTimeout( self.rotation );
- self.rotation = setTimeout(function() {
- var t = o.selected;
- self.select( ++t < self.anchors.length ? t : 0 );
- }, ms );
-
- if ( e ) {
- e.stopPropagation();
- }
- });
-
- var stop = self._unrotate || ( self._unrotate = !continuing
- ? function(e) {
- if (e.clientX) { // in case of a true click
- self.rotate(null);
- }
- }
- : function( e ) {
- t = o.selected;
- rotate();
- });
-
- // start rotation
- if ( ms ) {
- this.element.bind( "tabsshow", rotate );
- this.anchors.bind( o.event + ".tabs", stop );
- rotate();
- // stop rotation
- } else {
- clearTimeout( self.rotation );
- this.element.unbind( "tabsshow", rotate );
- this.anchors.unbind( o.event + ".tabs", stop );
- delete this._rotate;
- delete this._unrotate;
- }
-
- return this;
- }
-});
-
-})( jQuery );
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js
deleted file mode 100755
index 14c9064f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js
+++ /dev/null
@@ -1,791 +0,0 @@
-/*!
- * jQuery UI 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
-keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
-this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
-"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
-"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
-outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
-"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
-a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
-c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=
-function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):
-d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=
-b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
-"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",
-c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- * jquery.ui.widget.js
- */
-(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
-this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
-this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
-!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
-false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Position 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
-left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
-k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
-m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
-d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
-a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
-g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
-;/*
- * jQuery UI Draggable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;if(b.iframeFix)d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;
-this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});
-this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true},
-_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=
-false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,
-10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||
-!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&
-a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
-this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),
-10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,
-(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!=
-"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),
-10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+
-this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&
-!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.left<g[0])e=g[0]+this.offset.click.left;
-if(a.pageY-this.offset.click.top<g[1])h=g[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>g[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.top<g[1]||h-this.offset.click.top>g[3])?h:!(h-this.offset.click.top<g[1])?h-b.grid[1]:h+b.grid[1]:h;e=b.grid[0]?this.originalPageX+Math.round((e-this.originalPageX)/
-b.grid[0])*b.grid[0]:this.originalPageX;e=g?!(e-this.offset.click.left<g[0]||e-this.offset.click.left>g[2])?e:!(e-this.offset.click.left<g[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<
-526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,
-c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.16"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var h=d.data(this,"sortable");if(h&&!h.options.disabled){c.sortables.push({instance:h,shouldRevert:h.options.revert});
-h.refreshPositions();h._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=
-false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);
-this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;
-c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&
-this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=
-a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!=
-"x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<
-c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
-width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,h=b.offset.left,g=h+c.helperProportions.width,n=b.offset.top,o=n+c.helperProportions.height,i=c.snapElements.length-1;i>=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e<h&&h<l+e&&k-e<n&&n<m+e||j-e<h&&h<l+e&&k-e<o&&o<m+e||j-e<g&&g<l+e&&k-e<n&&n<m+e||j-e<g&&g<l+e&&k-e<o&&
-o<m+e){if(f.snapMode!="inner"){var p=Math.abs(k-o)<=e,q=Math.abs(m-n)<=e,r=Math.abs(j-g)<=e,s=Math.abs(l-h)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l}).left-c.margins.left}var t=
-p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(k-n)<=e;q=Math.abs(m-o)<=e;r=Math.abs(j-h)<=e;s=Math.abs(l-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[i].snapping&&
-(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=p||q||r||s||t}else{c.snapElements[i].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
-10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
-;/*
- * jQuery UI Droppable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.mouse.js
- * jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.16"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},dragStart:function(a,b){a.element.parents(":not(body,html)").bind("scroll.droppable",function(){a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)})},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);
-if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})},dragStop:function(a,b){a.element.parents(":not(body,html)").unbind("scroll.droppable");
-a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)}}})(jQuery);
-;/*
- * jQuery UI Resizable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
-nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
-String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();
-var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=
-false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});
-this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff=
-{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];
-if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},
-_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,
-{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight:
-Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(c<a.maxWidth)a.maxWidth=c;if(f<a.maxHeight)a.maxHeight=f}this._vBoundaries=a},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=
-b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(k(b.height))b.width=b.height*this.aspectRatio;else if(k(b.width))b.height=b.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this._vBoundaries,c=this.axis,d=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=k(b.width)&&a.minWidth&&
-a.minWidth>b.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=
-null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||
-0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+
-a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+
-c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);
-b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.16"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),
-10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-
-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?
-e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=
-e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,
-step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=
-e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;
-var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:
-a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-
-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,
-f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,
-display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=
-e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=
-d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
-;/*
- * jQuery UI Selectable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
-selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
-c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
-c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
-this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
-a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
-!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
-e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Sortable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a===
-"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&
-!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,
-left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};
-this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=
-document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);
-return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<
-b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-
-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,
-a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],
-e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();
-c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):
-this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,
-dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},
-toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||
-this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();
-var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},
-_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();
-if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
-this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),
-this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&
-this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=
-this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=
-d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||
-0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",
-a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-
-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=
-this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==
-""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=
-this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a=
-{top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),
-10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?
-document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
-10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=
-this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&
-this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();
-var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-
-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-
-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],
-this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]=
-"";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",
-f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,
-this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",
-a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},
-_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Accordion 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
-a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
-function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=
-this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex");
-this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
-b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
-a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
-if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
-if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
-e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
-e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
-"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.16",
-animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);
-f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",
-paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
-;/*
- * jQuery UI Autocomplete 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.position.js
- */
-(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.propAttr("readOnly"))){g=
-false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=
-a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};
-this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&
-a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");
-d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&
-b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=
-this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();
-this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||
-b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;
-d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
-"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
-(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
--1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
-this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,
-this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
-this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
-this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[d.fn.prop?"prop":"attr"]("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
-;/*
- * jQuery UI Button 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(b){var h,i,j,g,l=function(){var a=b(this).find(":ui-button");setTimeout(function(){a.button("refresh")},1)},k=function(a){var c=a.name,e=a.form,f=b([]);if(c)f=e?b(e).find("[name='"+c+"']"):b("[name='"+c+"']",a.ownerDocument).filter(function(){return!this.form});return f};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",l);if(typeof this.options.disabled!==
-"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var a=this,c=this.options,e=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!e?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){b(this).addClass("ui-state-hover");
-this===h&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||b(this).removeClass(f)}).bind("click.button",function(d){if(c.disabled){d.preventDefault();d.stopImmediatePropagation()}});this.element.bind("focus.button",function(){a.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){a.buttonElement.removeClass("ui-state-focus")});if(e){this.element.bind("change.button",function(){g||a.refresh()});this.buttonElement.bind("mousedown.button",function(d){if(!c.disabled){g=
-false;i=d.pageX;j=d.pageY}}).bind("mouseup.button",function(d){if(!c.disabled)if(i!==d.pageX||j!==d.pageY)g=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).toggleClass("ui-state-active");a.buttonElement.attr("aria-pressed",a.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).addClass("ui-state-active");a.buttonElement.attr("aria-pressed","true");
-var d=a.element[0];k(d).not(d).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;b(this).addClass("ui-state-active");h=this;b(document).one("mouseup",function(){h=null})}).bind("mouseup.button",function(){if(c.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(d){if(c.disabled)return false;if(d.keyCode==b.ui.keyCode.SPACE||
-d.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(d){d.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",c.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type===
-"radio"){var a=this.element.parents().filter(":last"),c="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(c);if(!this.buttonElement.length){a=a.length?a.siblings():this.element.siblings();this.buttonElement=a.filter(c);if(!this.buttonElement.length)this.buttonElement=a.find(c)}this.element.addClass("ui-helper-hidden-accessible");(a=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",a)}else this.buttonElement=this.element},
-widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title");
-b.Widget.prototype.destroy.call(this)},_setOption:function(a,c){b.Widget.prototype._setOption.apply(this,arguments);if(a==="disabled")c?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var a=this.element.is(":disabled");a!==this.options.disabled&&this._setOption("disabled",a);if(this.type==="radio")k(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
-"true"):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var a=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
-c=b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("<span class='ui-button-icon-primary ui-icon "+e.primary+"'></span>");e.secondary&&a.append("<span class='ui-button-icon-secondary ui-icon "+e.secondary+"'></span>");if(!this.options.text){d.push(f?"ui-button-icons-only":
-"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")===
-"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
-b.Widget.prototype.destroy.call(this)}})})(jQuery);
-;/*
- * jQuery UI Dialog 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.button.js
- * jquery.ui.draggable.js
- * jquery.ui.mouse.js
- * jquery.ui.position.js
- * jquery.ui.resizable.js
- */
-(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,
-position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+
-b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
-h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",
-e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
-a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==
-b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()};c.ui.dialog.maxZ+=1;
-d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===
-f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,
-function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('<button type="button"></button>').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",
-handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,
-originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",
-f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):
-[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);
-if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):
-e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=
-this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-
-b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.16",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),
-create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&!d.isDefaultPrevented()&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||
-c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&
-c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+
-"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-;/*
- * jQuery UI Slider 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.mouse.js
- * jquery.ui.widget.js
- */
-(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+
-this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>");
-this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle",
-g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length?
-(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i-
-m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();
-return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false;
-this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b=
-this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b=
-this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);
-c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c});
-a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=
-this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):
-this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a];
-return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a=
-this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e-
-g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"},
-b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Tabs 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
-e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
-d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
-(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
-this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
-this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
-if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
-this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
-g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
-function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
-this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
--1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
-d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
-d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
-e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
-j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
-if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
-this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
-load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
-"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
-url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.16"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
-a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
-;/*
- * jQuery UI Datepicker 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- * jquery.ui.core.js
- */
-(function(d,C){function M(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
-"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
-"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
-minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function N(a){return a.bind("mouseout",
-function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
-b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.16"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},
-setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,
-"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",
-function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c==
-"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():
-d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,
-b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=
-1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/
-2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=
-d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=
-a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,
-"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==
-a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?
-d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");H(e.settings,f);if(i!==null&&f.dateFormat!==C&&f.minDate===C)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==C&&f.maxDate===C)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDate(e,h);this._updateAlternate(e);
-this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");
-b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]&&d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]);if(a=d.datepicker._get(b,"onSelect")){c=d.datepicker._formatDate(b);a.apply(b.input?b.input[0]:null,[c,b])}else d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,
-a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=
-a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,
-"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==C?a.keyCode:a.charCode);
-return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",
-a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value=
-"";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);
-c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=
-true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});
-a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&
-!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),
-h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=
-this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);
-this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
-_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
-0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"?
-"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);
-this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");
-if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?
-b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1<a.length&&a.charAt(A+1)==p)&&A++;return p},m=function(p){var D=
-o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&D?4:p=="o"?3:2)+"}");p=b.substring(q).match(p);if(!p)throw"Missing number at position "+q;q+=p[0].length;return parseInt(p[0],10)},n=function(p,D,K){p=d.map(o(p)?K:D,function(w,x){return[[x,w]]}).sort(function(w,x){return-(w[1].length-x[1].length)});var E=-1;d.each(p,function(w,x){w=x[1];if(b.substr(q,w.length).toLowerCase()==w.toLowerCase()){E=x[0];q+=w.length;return false}});if(E!=-1)return E+1;else throw"Unknown name at position "+q;},s=
-function(){if(b.charAt(q)!=a.charAt(A))throw"Unexpected literal at position "+q;q++},q=0,A=0;A<a.length;A++)if(k)if(a.charAt(A)=="'"&&!o("'"))k=false;else s();else switch(a.charAt(A)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();j=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();j=v.getMonth()+
-1;l=v.getDate();break;case "'":if(o("'"))s();else k=true;break;default:s()}if(q<b.length)throw"Extra/unparsed characters found in date: "+b.substring(q);if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",
-COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:
-null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,s){return i(o)?s[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-
-(new Date(b.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=
-0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==C?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);
-var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;
-i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=
-Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>
-12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&
-a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?
-new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));
-n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,
-g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&
-a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+B+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,s)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+
-B+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x<i[0];x++){var O=
-"";this.maxRows=4;for(var G=0;G<i[1];G++){var P=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",y="";if(l){y+='<div class="ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&
-x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var z=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+s[r]+'">'+q[r]+"</span></th>"}y+=z+"</tr></thead><tbody>";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,
-z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q<z;Q++){y+="<tr>";var R=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(r)+"</td>";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&r<k||o&&r>o;R+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(r.getTime()==
-P.getTime()&&g==a.selectedMonth&&a._keyEvent||E.getTime()==r.getTime()&&E.getTime()==P.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!D?"":" "+I[1]+(r.getTime()==u.getTime()?" "+this._currentClass:"")+(r.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!F||D)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+B+".datepicker._selectDay('#"+a.id+"',"+r.getMonth()+","+r.getFullYear()+', this);return false;"')+">"+(F&&!D?"&#xa0;":L?'<span class="ui-state-default">'+
-r.getDate()+"</span>":'<a class="ui-state-default'+(r.getTime()==b.getTime()?" ui-state-highlight":"")+(r.getTime()==u.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+r.getDate()+"</a>")+"</td>";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+"</tr>"}g++;if(g>11){g=0;m++}y+="</tbody></table>"+(l?"</div>"+(i[0]>0&&G==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':
-"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&
-(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?"&#xa0;":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,
-e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+
-(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input?
-a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c,
-e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,
-"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this;
-if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a==
-"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.16";window["DP_jQuery_"+B]=d})(jQuery);
-;/*
- * jQuery UI Progressbar 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- */
-(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
-this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Effects 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
-a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
-a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
-"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
-0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
-211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
-d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})};
-f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
-[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.16",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=
-0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
-d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement;
-if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});
-return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,
-arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/
-2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,
-d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,
-a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,
-d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=
-0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
-if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,
-a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
-;/*
- * jQuery UI Effects Blind 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
-g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Bounce 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
-3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
-b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Clip 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
-c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Drop 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
-"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Explode 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
-0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
-e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
-;/*
- * jQuery UI Effects Fade 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fade
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Fold 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
-10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Highlight 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
-this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Pulsate 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
-a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Scale 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
-b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
-1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
-p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
-if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
-a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
-child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
-n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Shake 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
-(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Slide 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
-var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Transfer 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
-b.dequeue()})})}})(jQuery);
-; \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js
deleted file mode 100755
index d75b4f3c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * jQuery UI Effects Blind 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-var rvertical = /up|down|vertical/,
- rpositivemotion = /up|left|vertical|horizontal/;
-
-$.effects.effect.blind = function( o, done ) {
- // Create element
- var el = $( this ),
- props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
- mode = $.effects.setMode( el, o.mode || "hide" ),
- direction = o.direction || "up",
- vertical = rvertical.test( direction ),
- ref = vertical ? "height" : "width",
- ref2 = vertical ? "top" : "left",
- motion = rpositivemotion.test( direction ),
- animation = {},
- show = mode === "show",
- wrapper, distance, top;
-
- // if already wrapped, the wrapper's properties are my property. #6245
- if ( el.parent().is( ".ui-effects-wrapper" ) ) {
- $.effects.save( el.parent(), props );
- } else {
- $.effects.save( el, props );
- }
- el.show();
- top = parseInt(el.css('top'), 10);
- wrapper = $.effects.createWrapper( el ).css({
- overflow: "hidden"
- });
-
- distance = vertical ? wrapper[ ref ]() + top : wrapper[ ref ]();
-
- animation[ ref ] = show ? distance : 0;
- if ( !motion ) {
- el
- .css( vertical ? "bottom" : "right", 0 )
- .css( vertical ? "top" : "left", "" )
- .css({ position: "absolute" });
- animation[ ref2 ] = show ? 0 : distance;
- }
-
- // start at 0 if we are showing
- if ( show ) {
- wrapper.css( ref, 0 );
- if ( ! motion ) {
- wrapper.css( ref2, distance );
- }
- }
-
- // Animate
- wrapper.animate( animation, {
- duration: o.duration,
- easing: o.easing,
- queue: false,
- complete: function() {
- if ( mode === "hide" ) {
- el.hide();
- }
- $.effects.restore( el, props );
- $.effects.removeWrapper( el );
- done();
- }
- });
-
-};
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js
deleted file mode 100755
index 101c15d4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Blind 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- * jquery.effects.core.js
- */
-(function(b){var n=/up|down|vertical/,o=/up|left|vertical|horizontal/;b.effects.effect.blind=function(g,p){var a=b(this),i=["position","top","bottom","left","right","height","width"],l=b.effects.setMode(a,g.mode||"hide"),e=g.direction||"up",f=n.test(e),h=f?"height":"width",m=f?"top":"left";e=o.test(e);var j={},k=l==="show",c,d;a.parent().is(".ui-effects-wrapper")?b.effects.save(a.parent(),i):b.effects.save(a,i);a.show();d=parseInt(a.css("top"),10);c=b.effects.createWrapper(a).css({overflow:"hidden"});
-d=f?c[h]()+d:c[h]();j[h]=k?d:0;if(!e){a.css(f?"bottom":"right",0).css(f?"top":"left","").css({position:"absolute"});j[m]=k?0:d}if(k){c.css(h,0);e||c.css(m,d)}c.animate(j,{duration:g.duration,easing:g.easing,queue:false,complete:function(){l==="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);p()}})}})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js
deleted file mode 100755
index ab9349a8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js
+++ /dev/null
@@ -1,890 +0,0 @@
-/*
- * jQuery UI Effects 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-;jQuery.effects || (function($, undefined) {
-
-var backCompat = $.uiBackCompat !== false;
-
-$.effects = {
- effect: {}
-};
-
-/******************************************************************************/
-/****************************** COLOR ANIMATIONS ******************************/
-/******************************************************************************/
-
-// override the animation for color styles
-$.each(["backgroundColor", "borderBottomColor", "borderLeftColor",
- "borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"],
-function(i, attr) {
- $.fx.step[attr] = function(fx) {
- if (!fx.colorInit) {
- fx.start = getColor(fx.elem, attr);
- fx.end = getRGB(fx.end);
- fx.colorInit = true;
- }
-
- fx.elem.style[attr] = "rgb(" +
- Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + "," +
- Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + "," +
- Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ")";
- };
-});
-
-// Color Conversion functions from highlightFade
-// By Blair Mitchelmore
-// http://jquery.offput.ca/highlightFade/
-
-// Parse strings looking for color tuples [255,255,255]
-function getRGB(color) {
- var result;
-
- // Check if we're already dealing with an array of colors
- if ( color && color.constructor === Array && color.length === 3 )
- return color;
-
- // Look for rgb(num,num,num)
- if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
- return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
-
- // Look for rgb(num%,num%,num%)
- if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
- return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
-
- // Look for #a0b1c2
- if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
- return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
-
- // Look for #fff
- if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
- return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
-
- // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
- if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
- return colors["transparent"];
-
- // Otherwise, we're most likely dealing with a named color
- return colors[$.trim(color).toLowerCase()];
-}
-
-function getColor(elem, attr) {
- var color;
-
- do {
- color = $.curCSS(elem, attr);
-
- // Keep going until we find an element that has color, or we hit the body
- if ( color != "" && color !== "transparent" || $.nodeName(elem, "body") )
- break;
-
- attr = "backgroundColor";
- } while ( elem = elem.parentNode );
-
- return getRGB(color);
-};
-
-// Some named colors to work with
-// From Interface by Stefan Petre
-// http://interface.eyecon.ro/
-
-var colors = {
- aqua:[0,255,255],
- azure:[240,255,255],
- beige:[245,245,220],
- black:[0,0,0],
- blue:[0,0,255],
- brown:[165,42,42],
- cyan:[0,255,255],
- darkblue:[0,0,139],
- darkcyan:[0,139,139],
- darkgrey:[169,169,169],
- darkgreen:[0,100,0],
- darkkhaki:[189,183,107],
- darkmagenta:[139,0,139],
- darkolivegreen:[85,107,47],
- darkorange:[255,140,0],
- darkorchid:[153,50,204],
- darkred:[139,0,0],
- darksalmon:[233,150,122],
- darkviolet:[148,0,211],
- fuchsia:[255,0,255],
- gold:[255,215,0],
- green:[0,128,0],
- indigo:[75,0,130],
- khaki:[240,230,140],
- lightblue:[173,216,230],
- lightcyan:[224,255,255],
- lightgreen:[144,238,144],
- lightgrey:[211,211,211],
- lightpink:[255,182,193],
- lightyellow:[255,255,224],
- lime:[0,255,0],
- magenta:[255,0,255],
- maroon:[128,0,0],
- navy:[0,0,128],
- olive:[128,128,0],
- orange:[255,165,0],
- pink:[255,192,203],
- purple:[128,0,128],
- violet:[128,0,128],
- red:[255,0,0],
- silver:[192,192,192],
- white:[255,255,255],
- yellow:[255,255,0],
- transparent: [255,255,255]
-};
-
-
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-
-var classAnimationActions = [ "add", "remove", "toggle" ],
- shorthandStyles = {
- border: 1,
- borderBottom: 1,
- borderColor: 1,
- borderLeft: 1,
- borderRight: 1,
- borderTop: 1,
- borderWidth: 1,
- margin: 1,
- padding: 1
- },
- // prefix used for storing data on .data()
- dataSpace = "ec.storage.";
-
-$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) {
- $.fx.step[ prop ] = function( fx ) {
- if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
- jQuery.style( fx.elem, prop, fx.end );
- fx.setAttr = true;
- }
- };
-});
-
-function getElementStyles() {
- var style = this.ownerDocument.defaultView
- ? this.ownerDocument.defaultView.getComputedStyle( this, null )
- : this.currentStyle,
- newStyle = {},
- key,
- camelCase,
- len;
-
- // webkit enumerates style porperties
- if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
- len = style.length;
- while ( len-- ) {
- key = style[ len ];
- if ( typeof style[ key ] === "string" ) {
- newStyle[ $.camelCase( key ) ] = style[ key ];
- }
- }
- } else {
- for ( key in style ) {
- if ( typeof style[ key ] === "string" ) {
- newStyle[ key ] = style[ key ];
- }
- }
- }
-
- return newStyle;
-}
-
-
-function styleDifference( oldStyle, newStyle ) {
- var diff = {},
- name, value;
-
- for ( name in newStyle ) {
- value = newStyle[ name ];
- if ( oldStyle[ name ] != value ) {
- if ( !shorthandStyles[ name ] ) {
- if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
- diff[ name ] = value;
- }
- }
- }
- }
-
- return diff;
-}
-
-$.effects.animateClass = function( value, duration, easing, callback ) {
- var o = $.speed( duration, easing, callback );
-
- return this.queue( function() {
- var animated = $( this ),
- baseClass = animated.attr( "class" ) || "",
- finalClass,
- allAnimations = o.children ? animated.find( "*" ).andSelf() : animated;
-
- // map the animated objects to store the original styles.
- allAnimations = allAnimations.map(function() {
- var el = $( this );
- return {
- el: el,
- originalStyleAttr: el.attr( "style" ) || " ",
- start: getElementStyles.call( this )
- };
- });
-
- // apply class change
- $.each( classAnimationActions, function(i, action) {
- if ( value[ action ] ) {
- animated[ action + "Class" ]( value[ action ] );
- }
- });
- finalClass = animated.attr( "class" );
-
- // map all animated objects again - calculate new styles and diff
- allAnimations = allAnimations.map(function() {
- this.end = getElementStyles.call( this.el[ 0 ] );
- this.diff = styleDifference( this.start, this.end );
- return this;
- });
-
- // apply original class
- animated.attr( "class", baseClass );
-
- // map all animated objects again - this time collecting a promise
- allAnimations = allAnimations.map(function() {
- var styleInfo = this,
- dfd = $.Deferred();
-
- this.el.animate( this.diff, {
- duration: o.duration,
- easing: o.easing,
- queue: false,
- complete: function() {
- dfd.resolve( styleInfo );
- }
- });
- return dfd.promise();
- });
-
- // once all animations have completed:
- $.when.apply( $, allAnimations.get() ).done(function() {
-
- // set the final class
- animated.attr( "class", finalClass );
-
- // for each animated element
- $.each( arguments, function() {
- if ( typeof this.el.attr( "style" ) === "object" ) {
- this.el.attr( "style" ).cssText = "";
- this.el.attr( "style" ).cssText = this.originalStyleAttr;
- } else {
- this.el.attr( "style", this.originalStyleAttr );
- }
- });
-
- // this is guarnteed to be there if you use jQuery.speed()
- // it also handles dequeuing the next anim...
- o.complete.call( animated[ 0 ] );
- });
- });
-};
-
-$.fn.extend({
- _addClass: $.fn.addClass,
- addClass: function( classNames, speed, easing, callback ) {
- return speed ?
- $.effects.animateClass.apply( this, [{ add: classNames }, speed, easing, callback ]) :
- this._addClass(classNames);
- },
-
- _removeClass: $.fn.removeClass,
- removeClass: function( classNames, speed, easing, callback ) {
- return speed ?
- $.effects.animateClass.apply( this, [{ remove: classNames }, speed, easing, callback ]) :
- this._removeClass(classNames);
- },
-
- _toggleClass: $.fn.toggleClass,
- toggleClass: function( classNames, force, speed, easing, callback ) {
- if ( typeof force === "boolean" || force === undefined ) {
- if ( !speed ) {
- // without speed parameter;
- return this._toggleClass( classNames, force );
- } else {
- return $.effects.animateClass.apply( this, [( force ? { add:classNames } : { remove:classNames }), speed, easing, callback ]);
- }
- } else {
- // without force parameter;
- return $.effects.animateClass.apply( this, [{ toggle: classNames }, force, speed, easing ]);
- }
- },
-
- switchClass: function( remove, add, speed, easing, callback) {
- return $.effects.animateClass.apply( this, [{
- add: add,
- remove: remove
- }, speed, easing, callback ]);
- }
-});
-
-
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-$.extend( $.effects, {
- version: "1.9pre",
-
- // Saves a set of properties in a data storage
- save: function( element, set ) {
- for( var i=0; i < set.length; i++ ) {
- if ( set[ i ] !== null ) {
- element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
- }
- }
- },
-
- // Restores a set of previously saved properties from a data storage
- restore: function( element, set ) {
- for( var i=0; i < set.length; i++ ) {
- if ( set[ i ] !== null ) {
- element.css( set[ i ], element.data( dataSpace + set[ i ] ) );
- }
- }
- },
-
- setMode: function( el, mode ) {
- if (mode === "toggle") {
- mode = el.is( ":hidden" ) ? "show" : "hide";
- }
- return mode;
- },
-
- // Translates a [top,left] array into a baseline value
- // this should be a little more flexible in the future to handle a string & hash
- getBaseline: function( origin, original ) {
- var y, x;
- switch ( origin[ 0 ] ) {
- case "top": y = 0; break;
- case "middle": y = 0.5; break;
- case "bottom": y = 1; break;
- default: y = origin[ 0 ] / original.height;
- };
- switch ( origin[ 1 ] ) {
- case "left": x = 0; break;
- case "center": x = 0.5; break;
- case "right": x = 1; break;
- default: x = origin[ 1 ] / original.width;
- };
- return {
- x: x,
- y: y
- };
- },
-
- // Wraps the element around a wrapper that copies position properties
- createWrapper: function( element ) {
-
- // if the element is already wrapped, return it
- if ( element.parent().is( ".ui-effects-wrapper" )) {
- return element.parent();
- }
-
- // wrap the element
- var props = {
- width: element.outerWidth(true),
- height: element.outerHeight(true),
- "float": element.css( "float" )
- },
- wrapper = $( "<div></div>" )
- .addClass( "ui-effects-wrapper" )
- .css({
- fontSize: "100%",
- background: "transparent",
- border: "none",
- margin: 0,
- padding: 0
- }),
- // Store the size in case width/height are defined in % - Fixes #5245
- size = {
- width: element.width(),
- height: element.height()
- },
- active = document.activeElement;
-
- element.wrap( wrapper );
-
- // Fixes #7595 - Elements lose focus when wrapped.
- if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
- $( active ).focus();
- }
-
- wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
-
- // transfer positioning properties to the wrapper
- if ( element.css( "position" ) === "static" ) {
- wrapper.css({ position: "relative" });
- element.css({ position: "relative" });
- } else {
- $.extend( props, {
- position: element.css( "position" ),
- zIndex: element.css( "z-index" )
- });
- $.each([ "top", "left", "bottom", "right" ], function(i, pos) {
- props[ pos ] = element.css( pos );
- if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
- props[ pos ] = "auto";
- }
- });
- element.css({
- position: "relative",
- top: 0,
- left: 0,
- right: "auto",
- bottom: "auto"
- });
- }
- element.css(size);
-
- return wrapper.css( props ).show();
- },
-
- removeWrapper: function( element ) {
- var active = document.activeElement;
-
- if ( element.parent().is( ".ui-effects-wrapper" ) ) {
- element.parent().replaceWith( element );
-
- // Fixes #7595 - Elements lose focus when wrapped.
- if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
- $( active ).focus();
- }
- }
-
-
- return element;
- },
-
- setTransition: function( element, list, factor, value ) {
- value = value || {};
- $.each( list, function(i, x){
- var unit = element.cssUnit( x );
- if ( unit[ 0 ] > 0 ) value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
- });
- return value;
- }
-});
-
-// return an effect options object for the given parameters:
-function _normalizeArguments( effect, options, speed, callback ) {
-
- // short path for passing an effect options object:
- if ( $.isPlainObject( effect ) ) {
- return effect;
- }
-
- // convert to an object
- effect = { effect: effect };
-
- // catch (effect)
- if ( options === undefined ) {
- options = {};
- }
-
- // catch (effect, callback)
- if ( $.isFunction( options ) ) {
- callback = options;
- speed = null;
- options = {};
- }
-
- // catch (effect, speed, ?)
- if ( $.type( options ) === "number" || $.fx.speeds[ options ]) {
- callback = speed;
- speed = options;
- options = {};
- }
-
- // catch (effect, options, callback)
- if ( $.isFunction( speed ) ) {
- callback = speed;
- speed = null;
- }
-
- // add options to effect
- if ( options ) {
- $.extend( effect, options );
- }
-
- speed = speed || options.duration;
- effect.duration = $.fx.off ? 0 : typeof speed === "number"
- ? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default;
-
- effect.complete = callback || options.complete;
-
- return effect;
-}
-
-function standardSpeed( speed ) {
- // valid standard speeds
- if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
- return true;
- }
-
- // invalid strings - treat as "normal" speed
- if ( typeof speed === "string" && !$.effects.effect[ speed ] ) {
- // TODO: remove in 2.0 (#7115)
- if ( backCompat && $.effects[ speed ] ) {
- return false;
- }
- return true;
- }
-
- return false;
-}
-
-$.fn.extend({
- effect: function( effect, options, speed, callback ) {
- var args = _normalizeArguments.apply( this, arguments ),
- mode = args.mode,
- queue = args.queue,
- effectMethod = $.effects.effect[ args.effect ],
-
- // DEPRECATED: remove in 2.0 (#7115)
- oldEffectMethod = !effectMethod && backCompat && $.effects[ args.effect ];
-
- if ( $.fx.off || !( effectMethod || oldEffectMethod ) ) {
- // delegate to the original method (e.g., .show()) if possible
- if ( mode ) {
- return this[ mode ]( args.duration, args.complete );
- } else {
- return this.each( function() {
- if ( args.complete ) {
- args.complete.call( this );
- }
- });
- }
- }
-
- function run( next ) {
- var elem = $( this ),
- complete = args.complete,
- mode = args.mode;
-
- function done() {
- if ( $.isFunction( complete ) ) {
- complete.call( elem[0] );
- }
- if ( $.isFunction( next ) ) {
- next();
- }
- }
-
- // if the element is hiddden and mode is hide,
- // or element is visible and mode is show
- if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
- done();
- } else {
- effectMethod.call( elem[0], args, done );
- }
- }
-
- // TODO: remove this check in 2.0, effectMethod will always be true
- if ( effectMethod ) {
- return queue === false ? this.each( run ) : this.queue( queue || "fx", run );
- } else {
- // DEPRECATED: remove in 2.0 (#7115)
- return oldEffectMethod.call(this, {
- options: args,
- duration: args.duration,
- callback: args.complete,
- mode: args.mode
- });
- }
- },
-
- _show: $.fn.show,
- show: function( speed ) {
- if ( standardSpeed( speed ) ) {
- return this._show.apply( this, arguments );
- } else {
- var args = _normalizeArguments.apply( this, arguments );
- args.mode = "show";
- return this.effect.call( this, args );
- }
- },
-
- _hide: $.fn.hide,
- hide: function( speed ) {
- if ( standardSpeed( speed ) ) {
- return this._hide.apply( this, arguments );
- } else {
- var args = _normalizeArguments.apply( this, arguments );
- args.mode = "hide";
- return this.effect.call( this, args );
- }
- },
-
- // jQuery core overloads toggle and creates _toggle
- __toggle: $.fn.toggle,
- toggle: function( speed ) {
- if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
- return this.__toggle.apply( this, arguments );
- } else {
- var args = _normalizeArguments.apply( this, arguments );
- args.mode = "toggle";
- return this.effect.call( this, args );
- }
- },
-
- // helper functions
- cssUnit: function(key) {
- var style = this.css( key ),
- val = [];
-
- $.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
- if ( style.indexOf( unit ) > 0 )
- val = [ parseFloat( style ), unit ];
- });
- return val;
- }
-});
-
-
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- *
- * Open source under the BSD License.
- *
- * Copyright 2008 George McGinley Smith
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-$.easing.jswing = $.easing.swing;
-
-$.extend( $.easing, {
- def: "easeOutQuad",
- swing: function ( x, t, b, c, d ) {
- return $.easing[ $.easing.def ]( x, t, b, c, d );
- },
- easeInQuad: function ( x, t, b, c, d ) {
- return c * ( t /= d ) * t + b;
- },
- easeOutQuad: function ( x, t, b, c, d ) {
- return -c * ( t /= d ) * ( t - 2 ) + b;
- },
- easeInOutQuad: function ( x, t, b, c, d ) {
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b;
- return -c / 2 * ( ( --t ) * ( t-2 ) - 1) + b;
- },
- easeInCubic: function ( x, t, b, c, d ) {
- return c * ( t /= d ) * t * t + b;
- },
- easeOutCubic: function ( x, t, b, c, d ) {
- return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b;
- },
- easeInOutCubic: function ( x, t, b, c, d ) {
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b;
- return c / 2 * ( ( t -= 2 ) * t * t + 2) + b;
- },
- easeInQuart: function ( x, t, b, c, d ) {
- return c * ( t /= d ) * t * t * t + b;
- },
- easeOutQuart: function ( x, t, b, c, d ) {
- return -c * ( ( t = t / d - 1 ) * t * t * t - 1) + b;
- },
- easeInOutQuart: function ( x, t, b, c, d ) {
- if ( (t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b;
- return -c / 2 * ( ( t -= 2 ) * t * t * t - 2) + b;
- },
- easeInQuint: function ( x, t, b, c, d ) {
- return c * ( t /= d ) * t * t * t * t + b;
- },
- easeOutQuint: function ( x, t, b, c, d ) {
- return c * ( ( t = t / d - 1 ) * t * t * t * t + 1) + b;
- },
- easeInOutQuint: function ( x, t, b, c, d ) {
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b;
- return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2) + b;
- },
- easeInSine: function ( x, t, b, c, d ) {
- return -c * Math.cos( t / d * ( Math.PI / 2 ) ) + c + b;
- },
- easeOutSine: function ( x, t, b, c, d ) {
- return c * Math.sin( t / d * ( Math.PI /2 ) ) + b;
- },
- easeInOutSine: function ( x, t, b, c, d ) {
- return -c / 2 * ( Math.cos( Math.PI * t / d ) - 1 ) + b;
- },
- easeInExpo: function ( x, t, b, c, d ) {
- return ( t==0 ) ? b : c * Math.pow( 2, 10 * ( t / d - 1) ) + b;
- },
- easeOutExpo: function ( x, t, b, c, d ) {
- return ( t==d ) ? b + c : c * ( -Math.pow( 2, -10 * t / d) + 1) + b;
- },
- easeInOutExpo: function ( x, t, b, c, d ) {
- if ( t==0 ) return b;
- if ( t==d ) return b + c;
- if ( ( t /= d / 2) < 1) return c / 2 * Math.pow( 2, 10 * (t - 1) ) + b;
- return c / 2 * ( -Math.pow( 2, -10 * --t ) + 2 ) + b;
- },
- easeInCirc: function ( x, t, b, c, d ) {
- return -c * ( Math.sqrt( 1 - ( t /= d ) * t ) - 1 ) + b;
- },
- easeOutCirc: function ( x, t, b, c, d ) {
- return c * Math.sqrt( 1 - ( t = t / d - 1 ) * t ) + b;
- },
- easeInOutCirc: function ( x, t, b, c, d ) {
- if ( ( t /= d / 2) < 1 ) return -c / 2 * ( Math.sqrt( 1 - t * t ) - 1 ) + b;
- return c / 2 * ( Math.sqrt( 1 - ( t -= 2 ) * t ) + 1 ) + b;
- },
- easeInElastic: function ( x, t, b, c, d ) {
- var s = 1.70158,
- p = d * 0.3,
- a = c;
- if ( t == 0 ) return b;
- if ( ( t /= d ) == 1 ) return b+c;
- if ( a < Math.abs( c ) ) {
- a = c;
- s = p / 4;
- } else {
- s = p / ( 2 * Math.PI ) * Math.asin( c / a );
- }
- return - ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s) * ( 2 * Math.PI ) / p ) ) + b;
- },
- easeOutElastic: function ( x, t, b, c, d ) {
- var s = 1.70158,
- p = d * 0.3,
- a = c;
- if ( t == 0 ) return b;
- if ( ( t /= d ) == 1 ) return b+c;
- if ( a < Math.abs( c ) ) {
- a = c;
- s = p / 4;
- } else {
- s = p / ( 2 * Math.PI ) * Math.asin( c / a );
- }
- return a * Math.pow( 2, -10 * t ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) + c + b;
- },
- easeInOutElastic: function ( x, t, b, c, d ) {
- var s = 1.70158,
- p = d * ( 0.3 * 1.5 ),
- a = c;
- if ( t == 0 ) return b;
- if ( ( t /= d / 2 ) == 2 ) return b+c;
- if ( a < Math.abs( c ) ) {
- a = c;
- s = p / 4;
- } else {
- s = p / ( 2 * Math.PI ) * Math.asin( c / a );
- }
- if ( t < 1 ) return -.5 * ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b;
- return a * Math.pow( 2, -10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) *.5 + c + b;
- },
- easeInBack: function ( x, t, b, c, d, s ) {
- if ( s == undefined ) s = 1.70158;
- return c * ( t /= d ) * t * ( ( s+1 ) * t - s ) + b;
- },
- easeOutBack: function ( x, t, b, c, d, s ) {
- if ( s == undefined ) s = 1.70158;
- return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s) + 1) + b;
- },
- easeInOutBack: function ( x, t, b, c, d, s ) {
- if ( s == undefined ) s = 1.70158;
- if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= 1.525 ) + 1 ) * t - s ) ) + b;
- return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= 1.525 ) + 1 ) * t + s) + 2) + b;
- },
- easeInBounce: function ( x, t, b, c, d ) {
- return c - $.easing.easeOutBounce( x, d - t, 0, c, d ) + b;
- },
- easeOutBounce: function ( x, t, b, c, d ) {
- if ( ( t /= d ) < ( 1 / 2.75 ) ) {
- return c * ( 7.5625 * t * t ) + b;
- } else if ( t < ( 2 / 2.75 ) ) {
- return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + .75 ) + b;
- } else if ( t < ( 2.5 / 2.75 ) ) {
- return c * ( 7.5625 * ( t -= ( 2.25/ 2.75 ) ) * t + .9375 ) + b;
- } else {
- return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + .984375 ) + b;
- }
- },
- easeInOutBounce: function ( x, t, b, c, d ) {
- if ( t < d / 2 ) return $.easing.easeInBounce( x, t * 2, 0, c, d ) * .5 + b;
- return $.easing.easeOutBounce( x, t * 2 - d, 0, c, d ) * .5 + c * .5 + b;
- }
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- *
- * Open source under the BSD License.
- *
- * Copyright 2001 Robert Penner
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js
deleted file mode 100755
index 9e92123a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * jQuery UI Effects 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-jQuery.effects||function(f,m){function r(c){var a;if(c&&c.constructor===Array&&c.length===3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return s.transparent;return s[f.trim(c).toLowerCase()]}function t(){var c=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(d=c.length;d--;){b=c[d];if(typeof c[b]==="string")a[f.camelCase(b)]=c[b]}else for(b in c)if(typeof c[b]===
-"string")a[b]=c[b];return a}function o(c,a,b,d){if(f.isPlainObject(c))return c;c={effect:c};if(a===m)a={};if(f.isFunction(a)){d=a;b=null;a={}}if(f.type(a)==="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a&&f.extend(c,a);b=b||a.duration;c.duration=f.fx.off?0:typeof b==="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;c.complete=d||a.complete;return c}function q(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects.effect[c]){if(u&&
-f.effects[c])return false;return true}return false}var u=f.uiBackCompat!==false;f.effects={effect:{}};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){var d;d=b.elem;var e=a,g;do{g=f.curCSS(d,e);if(g!=""&&g!=="transparent"||f.nodeName(d,"body"))break;e="backgroundColor"}while(d=d.parentNode);d=r(g);b.start=d;b.end=r(b.end);b.colorInit=true}b.elem.style[a]=
-"rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var s={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,
-0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,
-203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},w=["add","remove","toggle"],x={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(c,a){f.fx.step[a]=function(b){if(b.end!=="none"&&!b.setAttr||b.pos===1&&!b.setAttr){jQuery.style(b.elem,a,b.end);b.setAttr=
-true}}});f.effects.animateClass=function(c,a,b,d){var e=f.speed(a,b,d);return this.queue(function(){var g=f(this),h=g.attr("class")||"",n,j=e.children?g.find("*").andSelf():g;j=j.map(function(){var k=f(this);return{el:k,originalStyleAttr:k.attr("style")||" ",start:t.call(this)}});f.each(w,function(k,i){if(c[i])g[i+"Class"](c[i])});n=g.attr("class");j=j.map(function(){this.end=t.call(this.el[0]);var k=this.start,i=this.end,v={},l,p;for(l in i){p=i[l];if(k[l]!=p)if(!x[l])if(f.fx.step[l]||!isNaN(parseFloat(p)))v[l]=
-p}this.diff=v;return this});g.attr("class",h);j=j.map(function(){var k=this,i=f.Deferred();this.el.animate(this.diff,{duration:e.duration,easing:e.easing,queue:false,complete:function(){i.resolve(k)}});return i.promise()});f.when.apply(f,j.get()).done(function(){g.attr("class",n);f.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});e.complete.call(g[0])})})};
-f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a==="boolean"||a===m?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
-[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.9pre",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a==="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b,d;switch(c[0]){case "top":b=
-0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":d=0;break;case "center":d=0.5;break;case "right":d=1;break;default:d=c[1]/a.width}return{x:d,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
-d={width:c.width(),height:c.height()},e=document.activeElement;c.wrap(b);if(c[0]===e||f.contains(c[0],e))f(e).focus();b=c.parent();if(c.css("position")==="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(g,h){a[h]=c.css(h);if(isNaN(parseInt(a[h],10)))a[h]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}c.css(d);return b.css(a).show()},
-removeWrapper:function(c){var a=document.activeElement;if(c.parent().is(".ui-effects-wrapper")){c.parent().replaceWith(c);if(c[0]===a||f.contains(c[0],a))f(a).focus()}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){var h=c.cssUnit(g);if(h[0]>0)d[g]=h[0]*b+h[1]});return d}});f.fn.extend({effect:function(){function c(h){function n(){f.isFunction(k)&&k.call(j[0]);f.isFunction(h)&&h()}var j=f(this),k=a.complete,i=a.mode;(j.is(":hidden")?i==="hide":i==="show")?n():e.call(j[0],
-a,n)}var a=o.apply(this,arguments),b=a.mode,d=a.queue,e=f.effects.effect[a.effect],g=!e&&u&&f.effects[a.effect];if(f.fx.off||!(e||g))return b?this[b](a.duration,a.complete):this.each(function(){a.complete&&a.complete.call(this)});return e?d===false?this.each(c):this.queue(d||"fx",c):g.call(this,{options:a,duration:a.duration,callback:a.complete,mode:a.mode})},_show:f.fn.show,show:function(c){if(q(c))return this._show.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="show";return this.effect.call(this,
-a)}},_hide:f.fn.hide,hide:function(c){if(q(c))return this._hide.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="hide";return this.effect.call(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(q(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="toggle";return this.effect.call(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),
-e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,
-b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*
-((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+
-b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*
-e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3*1.5,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*
-Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,
-d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js
deleted file mode 100755
index 0569bd4d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js
+++ /dev/null
@@ -1,103 +0,0 @@
-// <--- --------------------------------------------------------------------------------------- ----
-
-// Blog Entry:
-// Ask Ben: Print Part Of A Web Page With jQuery
-
-// Author:
-// Ben Nadel / Kinky Solutions
-
-// Link:
-// http://www.bennadel.com/index.cfm?event=blog.view&id=1591
-
-// Date Posted:
-// May 21, 2009 at 9:10 PM
-
-// ---- --------------------------------------------------------------------------------------- --->
-
-
-// Create a jquery plugin that prints the given element.
-jQuery.fn.print = function(){
- // NOTE: We are trimming the jQuery collection down to the
- // first element in the collection.
- if (this.size() > 1){
- this.eq( 0 ).print();
- return;
- } else if (!this.size()){
- return;
- }
-
- var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
- var imgelem = chart.jqplotToImageElem();
- console.log(imgelem);
-
- // ASSERT: At this point, we know that the current jQuery
- // collection (as defined by THIS), contains only one
- // printable element.
-
- // Create a random name for the print frame.
- var strFrameName = ("printer-" + (new Date()).getTime());
-
- // Create an iFrame with the new name.
- var jFrame = $( "<iframe name='" + strFrameName + "'>" );
-
- // Hide the frame (sort of) and attach to the body.
- jFrame
- .css( "width", "1px" )
- .css( "height", "1px" )
- .css( "position", "absolute" )
- .css( "left", "-9999px" )
- .appendTo( $( "body:first" ) )
- ;
-
- // Get a FRAMES reference to the new frame.
- var objFrame = window.frames[ strFrameName ];
-
- // Get a reference to the DOM in the new frame.
- var objDoc = objFrame.document;
-
- // Grab all the style tags and copy to the new
- // document so that we capture look and feel of
- // the current document.
-
- // Create a temp document DIV to hold the style tags.
- // This is the only way I could find to get the style
- // tags into IE.
- var jStyleDiv = $( "<div>" ).append(
- $( "style" ).clone()
- );
-
- // Write the HTML for the document. In this, we will
- // write out the HTML of the current element.
- objDoc.open();
- objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
- objDoc.write( "<html>" );
- objDoc.write( "<body>" );
- objDoc.write( "<head>" );
- objDoc.write( "<title>" );
- objDoc.write( document.title );
- objDoc.write( "</title>" );
- objDoc.write( jStyleDiv.html() );
- objDoc.write( "</head>" );
- if ($.jqplot.use_excanvas) {
- objDoc.write( this.html() );
- }
- else {
- objDoc.write( '<img src="' + imgelem.src + '">' );
- }
- objDoc.write( "</body>" );
- objDoc.write( "</html>" );
- objDoc.close();
-
- // Print the document.
- objFrame.focus();
- objFrame.print();
-
- // Have the frame remove itself in about a minute so that
- // we don't build up too many of these frames.
- setTimeout(
- function(){
- jFrame.remove();
- },
- (60 * 1000)
- );
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js
deleted file mode 100755
index 27c8d8d2..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/// <reference path="http://code.jquery.com/jquery-1.4.1-vsdoc.js" />
-/*
-* Print Element Plugin 1.2
-*
-* Copyright (c) 2010 Erik Zaadi
-*
-* Inspired by PrintArea (http://plugins.jquery.com/project/PrintArea) and
-* http://stackoverflow.com/questions/472951/how-do-i-print-an-iframe-from-javascript-in-safari-chrome
-*
-* Home Page : http://projects.erikzaadi/jQueryPlugins/jQuery.printElement
-* Issues (bug reporting) : http://github.com/erikzaadi/jQueryPlugins/issues/labels/printElement
-* jQuery plugin page : http://plugins.jquery.com/project/printElement
-*
-* Thanks to David B (http://github.com/ungenio) and icgJohn (http://www.blogger.com/profile/11881116857076484100)
-* For their great contributions!
-*
-* Dual licensed under the MIT and GPL licenses:
-* http://www.opensource.org/licenses/mit-license.php
-* http://www.gnu.org/licenses/gpl.html
-*
-* Note, Iframe Printing is not supported in Opera and Chrome 3.0, a popup window will be shown instead
-*/
-;(function(g){function k(c){c&&c.printPage?c.printPage():setTimeout(function(){k(c)},50)}function l(c){c=a(c);a(":checked",c).each(function(){this.setAttribute("checked","checked")});a("input[type='text']",c).each(function(){this.setAttribute("value",a(this).val())});a("select",c).each(function(){var b=a(this);a("option",b).each(function(){b.val()==a(this).val()&&this.setAttribute("selected","selected")})});a("textarea",c).each(function(){var b=a(this).attr("value");if(a.browser.b&&this.firstChild)this.firstChild.textContent=
-b;else this.innerHTML=b});return a("<div></div>").append(c.clone()).html()}function m(c,b){var i=a(c);c=l(c);var d=[];d.push("<html><head><title>"+b.pageTitle+"</title>");if(b.overrideElementCSS){if(b.overrideElementCSS.length>0)for(var f=0;f<b.overrideElementCSS.length;f++){var e=b.overrideElementCSS[f];typeof e=="string"?d.push('<link type="text/css" rel="stylesheet" href="'+e+'" >'):d.push('<link type="text/css" rel="stylesheet" href="'+e.href+'" media="'+e.media+'" >')}}else a("link",j).filter(function(){return a(this).attr("rel").toLowerCase()==
-"stylesheet"}).each(function(){d.push('<link type="text/css" rel="stylesheet" href="'+a(this).attr("href")+'" media="'+a(this).attr("media")+'" >')});d.push('<base href="'+(g.location.protocol+"//"+g.location.hostname+(g.location.port?":"+g.location.port:"")+g.location.pathname)+'" />');d.push('</head><body style="'+b.printBodyOptions.styleToAdd+'" class="'+b.printBodyOptions.classNameToAdd+'">');d.push('<div class="'+i.attr("class")+'">'+c+"</div>");d.push('<script type="text/javascript">function printPage(){focus();print();'+
-(!a.browser.opera&&!b.leaveOpen&&b.printMode.toLowerCase()=="popup"?"close();":"")+"}<\/script>");d.push("</body></html>");return d.join("")}var j=g.document,a=g.jQuery;a.fn.printElement=function(c){var b=a.extend({},a.fn.printElement.defaults,c);if(b.printMode=="iframe")if(a.browser.opera||/chrome/.test(navigator.userAgent.toLowerCase()))b.printMode="popup";a("[id^='printElement_']").remove();return this.each(function(){var i=a.a?a.extend({},b,a(this).data()):b,d=a(this);d=m(d,i);var f=null,e=null;
-if(i.printMode.toLowerCase()=="popup"){f=g.open("about:blank","printElementWindow","width=650,height=440,scrollbars=yes");e=f.document}else{f="printElement_"+Math.round(Math.random()*99999).toString();var h=j.createElement("IFRAME");a(h).attr({style:i.iframeElementOptions.styleToAdd,id:f,className:i.iframeElementOptions.classNameToAdd,frameBorder:0,scrolling:"no",src:"about:blank"});j.body.appendChild(h);e=h.contentWindow||h.contentDocument;if(e.document)e=e.document;h=j.frames?j.frames[f]:j.getElementById(f);
-f=h.contentWindow||h}focus();e.open();e.write(d);e.close();k(f)})};a.fn.printElement.defaults={printMode:"iframe",pageTitle:"",overrideElementCSS:null,printBodyOptions:{styleToAdd:"padding:10px;margin:10px;",classNameToAdd:""},leaveOpen:false,iframeElementOptions:{styleToAdd:"border:none;position:absolute;width:0px;height:0px;bottom:0px;left:0px;",classNameToAdd:""}};a.fn.printElement.cssElement={href:"",media:""}})(window); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt b/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt
deleted file mode 100755
index b6a0cffa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt
+++ /dev/null
@@ -1 +0,0 @@
-[[1, 3, 2, 4, 6, 9]] \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js b/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js
deleted file mode 100755
index 0f1d3719..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js
+++ /dev/null
@@ -1,136 +0,0 @@
-// <--- --------------------------------------------------------------------------------------- ----
-
-// Blog Entry:
-// Ask Ben: Print Part Of A Web Page With jQuery
-
-// Author:
-// Ben Nadel / Kinky Solutions
-
-// Link:
-// http://www.bennadel.com/index.cfm?event=blog.view&id=1591
-
-// Date Posted:
-// May 21, 2009 at 9:10 PM
-
-// ---- --------------------------------------------------------------------------------------- --->
-
-
-// Create a jquery plugin that prints the given element.
-jQuery.fn.print = function(){
- // NOTE: We are trimming the jQuery collection down to the
- // first element in the collection.
- if (this.size() > 1){
- this.eq( 0 ).print();
- return;
- } else if (!this.size()){
- return;
- }
-
- var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
- // var imgelem = chart.jqplotToImageElem();
- var imageElemStr = chart.jqplotToImageElemStr();
- // var statsrows = $(this).closest('div.quintile-outer-container').find('table.stats-table tr');
- var statsTable = $('<div></div>').append($(this).closest('div.quintile-outer-container').find('table.stats-table').clone());
- // var rowstyles = window.getComputedStyle(statsrows.get(0), '');
-
- // ASSERT: At this point, we know that the current jQuery
- // collection (as defined by THIS), contains only one
- // printable element.
-
- // Create a random name for the print frame.
- var strFrameName = ("printer-" + (new Date()).getTime());
-
- // Create an iFrame with the new name.
- var jFrame = $( "<iframe name='" + strFrameName + "'>" );
-
- // Hide the frame (sort of) and attach to the body.
- jFrame
- .css( "width", "1px" )
- .css( "height", "1px" )
- .css( "position", "absolute" )
- .css( "left", "-9999px" )
- .appendTo( $( "body:first" ) )
- ;
-
- // Get a FRAMES reference to the new frame.
- var objFrame = window.frames[ strFrameName ];
-
- // Get a reference to the DOM in the new frame.
- var objDoc = objFrame.document;
-
- // Grab all the style tags and copy to the new
- // document so that we capture look and feel of
- // the current document.
-
- // Create a temp document DIV to hold the style tags.
- // This is the only way I could find to get the style
- // tags into IE.
- var jStyleDiv = $( "<div>" ).append(
- $( "style" ).clone()
- );
-
- // Write the HTML for the document. In this, we will
- // write out the HTML of the current element.
- objDoc.open();
- objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
- objDoc.write( "<html>" );
- objDoc.write( "<body>" );
- objDoc.write( "<head>" );
- objDoc.write( "<title>" );
- objDoc.write( document.title );
- objDoc.write( "</title>" );
- objDoc.write( jStyleDiv.html() );
- objDoc.write( "</head>" );
-
- // Typically, would just write out the html.
- // objDoc.write( this.html() );
-
- // We need to do specific manipulation for kcp quintiles.
- objDoc.write( '<div class="quintile-outer-container ui-widget ui-corner-all"> \
- <div class="quintile-content ui-widget-content ui-corner-bottom"> \
- <table class="quintile-display"> \
- <tr> \
- <td class="chart-cell">');
-
- objDoc.write(imageElemStr);
-
- objDoc.write('</td> <td class="stats-cell">');
-
- objDoc.write(statsTable.html());
-
- objDoc.write('</td></tr></table></div></div>');
-
- objDoc.write( "</body>" );
- objDoc.write( "</html>" );
- objDoc.close();
-
- //
- // When the iframe is completely loaded, print it.
- // This seemed worked in IE 9, but caused problems in FF.
- //
- // $(objFrame).load(function() {
- // objFrame.focus();
- // objFrame.print();
- // });
-
- //
- // This works in all supported browsers.
- // Note, might have to adjust time.
- //
- setTimeout(
- function() {
- objFrame.focus();
- objFrame.print();
- }, 750);
-
-
- // Have the frame remove itself in about a minute so that
- // we don't build up too many of these frames.
- setTimeout(
- function(){
- jFrame.empty();
- jFrame.remove();
- },
- (60 * 1000)
- );
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html
deleted file mode 100755
index 58a33198..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html
+++ /dev/null
@@ -1,284 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Area Chart</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="index.html">Previous</a> <a href="./">Examples</a> <a href="kcp_area2.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
-
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px 0px 30px 30px;
- width: 900px;
- height: 400px;
-
- }
-
- table.jqplot-table-legend {
- font-size: 0.65em;
- line-height: 1em;
- margin: 0px 0px 10px 15px;
- border-collapse: collapse;
- }
-
- td.jqplot-table-legend-label {
- width: 20em;
- }
-
- div.jqplot-table-legend-swatch {
- border-width: 2px 6px;
- }
-
- div.jqplot-table-legend-swatch-outline {
- border: none;
- }
-
- tr.jqplot-table-legend td {
- padding: 2px;
- }
-
- .legend-row-highlighted {
- background-color: #666666;
- }
-
- .legend-text-highlighted {
- color: #ffffff;
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
-/* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- </style>
-
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
-
- <pre class="code brush:js"></pre>
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
-
- ///////////
- // Function to parse a csv file.
- // Note, this IS NOT a complete parser. It does not handle quoted text.
- // It is implemented to demonstrate functionality from within JavaScript.
- // If a full csv parser is needed, check out:
- // http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm
- ///////////
- var parseCSVFile = function(url) {
- var ret = null;
- var labels = [];
- var ticks = [];
- var values = [];
- var temp;
- $.ajax({
- // have to use synchronous here, else returns before data is fetched
- async: false,
- url: url,
- dataType:'text',
- success: function(data) {
- // parse csv data
- var lines = data.split('\n');
- var line;
- for (var i=0, l=lines.length; i<l; i++) {
- line = lines[i].replace('\r', '').split(',');
- // console.log(line);
- if (line.length > 1) {
- if (i === 0) {
- ticks = line.slice(1, line.length);
- for (var n=0, nl=ticks.length; n<nl; n++) {
- ticks[n] = [n+1, ticks[n]];
- }
- }
- else {
- labels.push(line[0]);
- values.push(line.slice(1, line.length));
- temp = values[values.length-1];
- // make a copy of temp
- temp = temp.slice(0, temp.length);
- for (var n=0, nl=temp.length; n<nl; n++) {
- values[values.length-1][n] = parseFloat(temp[n]);
- }
- }
- }
- }
- ret = [values, labels, ticks];
- }
- });
- return ret;
- };
-
- var jsonurl = "./KCPsample4.csv";
-
- var infos = parseCSVFile(jsonurl);
-
- // area plots are made with all series except last 2
- data = infos[0].slice(0, infos[0].length-2);
- labels = infos[1].slice(0, infos[1].length-2);
- ticks = infos[2];
-
- // make the plot
-
- plot1 = $.jqplot('chart1', data, {
- title: 'Area Plot',
- stackSeries: true,
- seriesDefaults: {
- showMarker: false,
- fill: true,
- fillAndStroke: true
- },
- legend: {
- show: true,
- placement: 'outsideGrid',
- labels: labels,
- location: 'ne',
- rowSpacing: '0px'
- },
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- axes: {
- xaxis: {
- pad: 0,
- ticks: ticks,
- label: 'Population Vingtile',
- tickOptions: {
- showGridline: false
- }
- },
- yaxis: {
- min: 0,
- max: 100,
- label: 'Share of Item in Total Expenditure (%)',
- tickOptions: {
- showGridline: false,
- suffix: '%'
- }
- }
- },
- grid: {
- drawBorder: false,
- shadow: false,
- // background: 'rgba(0,0,0,0)' works to make transparent.
- background: 'white'
- }
- });
-
- // add a date at the bottom.
-
- var d = new $.jsDate();
- $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v'));
-
- // make it resizable.
-
- $("div.chart-container").resizable({delay:20});
-
- $('div.chart-container').bind('resize', function(event, ui) {
- plot1.replot();
- });
-
- $('#chart1').bind('jqplotDataHighlight', function(ev, seriesIndex, pointIndex, data) {
- var idx = 21 - seriesIndex
- $('tr.jqplot-table-legend').removeClass('legend-row-highlighted');
- $('tr.jqplot-table-legend').children('.jqplot-table-legend-label').removeClass('legend-text-highlighted');
- $('tr.jqplot-table-legend').eq(idx).addClass('legend-row-highlighted');
- $('tr.jqplot-table-legend').eq(idx).children('.jqplot-table-legend-label').addClass('legend-text-highlighted');
- });
-
- $('#chart1').bind('jqplotDataUnhighlight', function(ev, seriesIndex, pointIndex, data) {
- $('tr.jqplot-table-legend').removeClass('legend-row-highlighted');
- $('tr.jqplot-table-legend').children('.jqplot-table-legend-label').removeClass('legend-text-highlighted');
- });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html
deleted file mode 100755
index 9550b2ca..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html
+++ /dev/null
@@ -1,217 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Area Chart 2</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_area.html">Previous</a> <a href="./">Examples</a> <a href="kcp_cdf.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
-
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px 0px 30px 30px;
- width: 900px;
- height: 400px;
-
- }
-
- table.jqplot-table-legend {
- border: 0px;
- }
-
- td.jqplot-table-legend-label {
- padding: 0.25em;
- }
-
- td.jqplot-table-legend-label + td.jqplot-table-legend-swatch {
- padding-left: 1.5em;
- }
-
- div.jqplot-table-legend-swatch {
- border-width: 4px 6px;
- }
-
- div.jqplot-table-legend-swatch-outline {
- border: none;
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
-/* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- </style>
-
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
-
- <pre class="code brush:js"></pre>
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
-
- var labels = ['Rural', 'Urban'];
-
- // make the plot
-
- var makePlot = function (data, textStatus, jqXHR) {
- plot1 = $.jqplot('chart1', [data.rural, data.urban], {
- title: 'Contribution of Urban and Rural Population to National Percentiles (edited data)',
- stackSeries: true,
- seriesColors: ['#77933C', '#B9CDE5'],
- seriesDefaults: {
- showMarker: false,
- fill: true,
- fillAndStroke: true
- },
- legend: {
- show: true,
- renderer: $.jqplot.EnhancedLegendRenderer,
- rendererOptions: {
- numberRows: 1
- },
- placement: 'outsideGrid',
- labels: labels,
- location: 's'
- },
- axes: {
- xaxis: {
- pad: 0,
- min: 1,
- max: 100,
- label: 'Population Percentile',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickInterval: 3,
- tickOptions: {
- showGridline: false
- }
- },
- yaxis: {
- min: 0,
- max: 1,
- label: 'Percentage of Population',
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- tickOptions: {
- formatter: $.jqplot.PercentTickFormatter,
- showGridline: false,
- formatString: '%d%%'
- }
- }
- },
- grid: {
- drawBorder: false,
- shadow: false,
- // background: 'rgba(0,0,0,0)' works to make transparent.
- background: 'white'
- }
- });
- };
-
- // data is in json format in plain file.
- // Each series is represented by a 1-D array of y values.
- // X values will be added by jqPlot and will start 1 by default.
- $.getJSON('kcp_area2.json', '', makePlot);
-
- // add a date at the bottom.
-
- var d = new $.jsDate();
- $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v'));
-
- // make it resizable.
-
- $("div.chart-container").resizable({delay:20});
-
- $('div.chart-container').bind('resize', function(event, ui) {
- plot1.replot();
- });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json
deleted file mode 100755
index 167454a3..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{"rural": [0.9176, 0.9296, 0.927, 0.9251, 0.9241, 0.9225, 0.9197, 0.9164, 0.9131, 0.9098, 0.9064, 0.9028, 0.8991, 0.8957, 0.8925, 0.8896, 0.8869, 0.8844, 0.882, 0.8797, 0.8776, 0.8755, 0.8735, 0.8715, 0.8696, 0.8677, 0.8658, 0.8637, 0.8616, 0.8594, 0.8572, 0.8548, 0.8524, 0.8499, 0.8473, 0.8446, 0.8418, 0.8389, 0.8359, 0.8328, 0.8295, 0.8262, 0.8227, 0.8191, 0.8155, 0.8119, 0.8083, 0.8048, 0.8013, 0.7979, 0.7945, 0.7912, 0.7879, 0.7846, 0.7813, 0.778, 0.7747, 0.7714, 0.768, 0.7647, 0.7612, 0.7577, 0.7538, 0.7496, 0.7449, 0.7398, 0.7342, 0.7279, 0.721, 0.7137, 0.7059, 0.6977, 0.6889, 0.6797, 0.6698, 0.6593, 0.6482, 0.6367, 0.6247, 0.6121, 0.5989, 0.5852, 0.571, 0.5561, 0.5402, 0.5232, 0.505, 0.4855, 0.4643, 0.4414, 0.4166, 0.3893, 0.3577, 0.3204, 0.2764, 0.2272, 0.1774, 0.1231, 0.0855, 0.0849],
-"urban": [0.0824, 0.0704, 0.073, 0.0749, 0.0759, 0.0775, 0.0803, 0.0836, 0.0869, 0.0902, 0.0936, 0.0972, 0.1009, 0.1043, 0.1075, 0.1104, 0.1131, 0.1156, 0.118, 0.1203, 0.1224, 0.1245, 0.1265, 0.1285, 0.1304, 0.1323, 0.1342, 0.1363, 0.1384, 0.1406, 0.1428, 0.1452, 0.1476, 0.1501, 0.1527, 0.1554, 0.1582, 0.1611, 0.1641, 0.1672, 0.1705, 0.1738, 0.1773, 0.1809, 0.1845, 0.1881, 0.1917, 0.1952, 0.1987, 0.2021, 0.2055, 0.2088, 0.2121, 0.2154, 0.2187, 0.222, 0.2253, 0.2286, 0.232, 0.2353, 0.2388, 0.2423, 0.2462, 0.2504, 0.2551, 0.2602, 0.2658, 0.2721, 0.279, 0.2863, 0.2941, 0.3023, 0.3111, 0.3203, 0.3302, 0.3407, 0.3518, 0.3633, 0.3753, 0.3879, 0.4011, 0.4148, 0.429, 0.4439, 0.4598, 0.4768, 0.495, 0.5145, 0.5357, 0.5586, 0.5834, 0.6107, 0.6423, 0.6796, 0.7236, 0.7728, 0.8226, 0.8769, 0.9145, 0.9151]} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html
deleted file mode 100755
index 7fc9c654..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html
+++ /dev/null
@@ -1,351 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Cumulative Density Function Chart</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_area2.html">Previous</a> <a href="./">Examples</a> <a href="kcp_engel.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
-
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px;
- width: 500px;
- height: 400px;
-
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
-/* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- </style>
-
- <table class="app">
- <td class="controls">
-
- <div>
- Data Series:
- <ul>
- <li><input name="dataSeries" value="national" type="radio" checked />National</li>
- <li><input name="dataSeries" value="urban" type="radio" />Urban</li>
- <li><input name="dataSeries" value="rural" type="radio" />Rural</li>
- </ul>
- </div>
-
- <div>
- Background Color:
- <ul>
- <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
- <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
- </ul>
- </div>
-
- <div>
- Line Width:
- <ul>
- <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li>
- <li><input name="lineWidth" value="5" type="radio" />Thick</li>
- </ul>
- </div>
-
- <div>
- Grids:
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
- </ul>
- </div>
-
- <div>
- Set lines at:
- <ul>
- <li><input name="userLine1" value="8250" type="text" size="8" /> and </li>
- <li><input name="userLine2" value="60000" type="text" size="8" /></li>
- </ul>
- </div>
- </td>
-
- <td class="chart">
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
- </td>
-
- </table>
-
- <pre class="code brush:js"></pre>
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
- var dataSets = {
- national: [[1521.3938, 0.034259], [1626.3757, 0.036908], [1738.6018, 0.039957], [1858.5719, 0.043623], [1986.8205, 0.048008], [2123.9187, 0.053278], [2270.4772, 0.059665], [2427.1488, 0.067405], [2594.6313, 0.076951], [2773.6707, 0.088909], [2965.0643, 0.103706], [3169.6651, 0.121406], [3388.384, 0.142376], [3622.1955, 0.167456], [3872.1408, 0.198392], [4139.3332, 0.237371], [4424.963, 0.287096], [4730.3023, 0.350664], [5056.7112, 0.43322], [5405.6431, 0.546538], [5778.6531, 0.703419], [6177.4022, 0.921534], [6603.6665, 1.225405], [7059.3446, 1.658248], [7546.4664, 2.286919], [8067.2013, 3.168531], [8623.869, 4.338121], [9218.9488, 5.828025], [9855.0905, 7.674282], [10535.1293, 9.856185], [11262.0934, 12.427952], [12039.2208, 15.374906], [12869.973, 18.559853], [13758.0502, 21.938501], [14707.4081, 25.480211], [15722.2754, 29.195872], [16807.1724, 33.040813], [17966.9296, 36.929108], [19206.7162, 40.883239], [20532.0529, 44.934876], [21948.8429, 48.979949], [23463.3991, 52.874709], [25082.4581, 56.569122], [26813.238, 60.143349], [28663.448, 63.632698], [30641.3597, 67.019887], [32755.7239, 70.272329], [35015.9867, 73.31569], [37432.2159, 76.137996], [40015.1736, 78.734309], [42776.4074, 81.144203], [45728.1335, 83.364771], [48883.5393, 85.40072], [52256.6796, 87.276365], [55862.5786, 88.994984], [59717.3573, 90.547773], [63838.07, 91.930153], [68243.1267, 93.143588], [72952.1481, 94.19365], [77986.109, 95.093093], [83367.4313, 95.863261], [89120.1733, 96.518119], [95269.7861, 97.07861], [101843.7444, 97.555507], [108871.3294, 97.958887], [116383.8431, 98.29631], [124414.8718, 98.57645], [132999.9458, 98.805892], [142177.421, 98.994988], [151988.1749, 99.15183], [162475.9062, 99.279882], [173687.5023, 99.384116], [185672.5653, 99.470272], [198484.6408, 99.541871], [212180.7957, 99.601871], [226822.0345, 99.653556], [242473.814, 99.698334], [259205.3802, 99.737113], [277091.4846, 99.770733], [296211.7947, 99.800151], [316651.475, 99.826487], [338501.5668, 99.85018], [361859.7555, 99.871291], [386829.3815, 99.889939], [413522.0015, 99.906286], [442056.5084, 99.92045], [472559.9991, 99.932702], [505168.8456, 99.9433], [540027.3147, 99.952485], [577291.1437, 99.960528], [617126.311, 99.96755], [659710.2484, 99.9736], [705233.3359, 99.978742], [753896.9752, 99.983126], [805918.5808, 99.986929], [861529.8645, 99.990275], [920978.5269, 99.993221], [984529.3611, 99.995794], [1052466.484, 99.998031], [1125090.461, 100]],
-
- urban: [[2918.1368, 0.022476], [3099.059, 0.026364], [3291.1983, 0.031079], [3495.2501, 0.03683], [3711.9529, 0.043812], [3942.0911, 0.052123], [4186.4977, 0.061977], [4446.0574, 0.07392], [4721.7095, 0.08836], [5014.4519, 0.105627], [5325.3441, 0.126649], [5655.5113, 0.152991], [6006.1487, 0.186685], [6378.5253, 0.230466], [6773.9889, 0.288337], [7193.971, 0.364009], [7639.9917, 0.462362], [8113.6654, 0.591815], [8616.7064, 0.763717], [9150.9356, 0.990265], [9718.2865, 1.291577], [10320.8128, 1.689361], [10960.6953, 2.197829], [11640.25, 2.833156], [12361.9366, 3.607935], [13128.3672, 4.531058], [13942.3158, 5.612064], [14806.7287, 6.829389], [15724.7345, 8.150496], [16699.656, 9.587093], [17735.0219, 11.139531], [18834.5796, 12.843232], [20002.3091, 14.744], [21242.4369, 16.882944], [22559.4426, 19.274088], [23958.1299, 21.898373], [25443.5105, 24.70402], [27020.9832, 27.725078], [28696.2577, 31.02485], [30475.3976, 34.577391], [32364.8747, 38.361881], [34371.4652, 42.220399], [36502.4624, 46.204947], [38765.5793, 50.279452], [41169.0072, 54.284933], [43721.489, 58.020934], [46432.1785, 61.527083], [49310.9281, 65.059633], [52368.1573, 68.631977], [55614.9317, 72.134933], [59063.062, 75.35901], [62724.914, 78.289798], [66613.7972, 80.980675], [70743.7873, 83.426691], [75129.8328, 85.63051], [79787.8886, 87.600439], [84734.6595, 89.324337], [89988.1253, 90.82494], [95567.3009, 92.132382], [101492.3799, 93.28344], [107784.9158, 94.291515], [114467.4749, 95.165628], [121564.3462, 95.917569], [129101.2165, 96.566309], [137105.3654, 97.111687], [145605.9093, 97.557321], [154633.333, 97.923776], [164220.4481, 98.224115], [174401.955, 98.472073], [185214.7052, 98.683427], [196698.0321, 98.864412], [208893.1174, 99.018636], [221844.2859, 99.150765], [235598.4142, 99.266909], [250205.285, 99.369967], [265718.0332, 99.460335], [282192.2909, 99.538693], [299687.9363, 99.60658], [318268.2947, 99.665149], [338000.617, 99.716006], [358956.683, 99.76009], [381211.6455, 99.798168], [404846.394, 99.830962], [429946.4736, 99.858805], [456602.7336, 99.881656], [484912.1405, 99.900176], [514976.218, 99.91564], [546904.2389, 99.928971], [580811.7657, 99.940546], [616821.5259, 99.950572], [655064.5111, 99.959091], [695677.8688, 99.966315], [738809.2149, 99.97239], [784614.6621, 99.97761], [833260.0023, 99.982252], [884922.1907, 99.986425], [939786.4993, 99.990223], [998052.3412, 99.993742], [1059930.608, 99.996997], [1125645.267, 100]],
-
- rural: [[1522.3755, 0.044856], [1621.4335, 0.048153], [1726.937, 0.051764], [1839.3056, 0.055907], [1958.9857, 0.060801], [2086.4531, 0.066762], [2222.2145, 0.073899], [2366.8099, 0.082612], [2520.8136, 0.093168], [2684.8381, 0.106164], [2859.5353, 0.122508], [3045.6, 0.142886], [3243.7713, 0.16758], [3454.8371, 0.19669], [3679.6367, 0.23118], [3919.0639, 0.273098], [4174.0698, 0.325019], [4445.6684, 0.390807], [4734.9398, 0.474177], [5043.0332, 0.579565], [5371.1735, 0.719638], [5720.6654, 0.911325], [6092.8986, 1.175054], [6489.3516, 1.537895], [6911.6011, 2.041596], [7361.3256, 2.758826], [7840.3135, 3.776691], [8350.4675, 5.133703], [8893.8162, 6.852621], [9472.5195, 8.948744], [10088.8789, 11.417648], [10745.3427, 14.293846], [11444.5212, 17.634387], [12189.194, 21.360828], [12982.3225, 25.29956], [13827.0569, 29.428878], [14726.7567, 33.707138], [15684.9997, 38.129755], [16705.5921, 42.671778], [17792.5925, 47.229102], [18950.322, 51.800588], [20183.3846, 56.383771], [21496.6782, 60.886558], [22895.4161, 65.12792], [24385.1837, 69.030354], [25971.888, 72.617033], [27661.8365, 75.986887], [29461.7179, 79.112304], [31378.744, 81.975561], [33420.5079, 84.537139], [35595.0905, 86.782817], [37911.2052, 88.71901], [40378.0258, 90.413815], [43005.3584, 91.908817], [45803.6014, 93.228911], [48783.9674, 94.381653], [51958.2609, 95.359352], [55339.1005, 96.170082], [58939.867, 96.837248], [62774.9884, 97.378991], [66859.655, 97.8273], [71210.033, 98.200135], [75843.5542, 98.506646], [80778.5711, 98.752685], [86034.7015, 98.949784], [91632.7482, 99.10766], [97595.1423, 99.232528], [103945.4998, 99.334335], [110709.0646, 99.42121], [117912.6058, 99.497035], [125584.9876, 99.563629], [133756.5988, 99.621726], [142459.781, 99.672192], [151729.4076, 99.715746], [161602.1937, 99.752893], [172117.386, 99.784601], [183316.6015, 99.811139], [195244.7151, 99.833203], [207948.9717, 99.852181], [221479.8735, 99.868723], [235890.9734, 99.883153], [251240.0159, 99.89576], [267587.7958, 99.906951], [284999.0141, 99.917064], [303543.4372, 99.926265], [323294.5157, 99.9346], [344330.7648, 99.942191], [366735.4418, 99.949086], [390598.3214, 99.955426], [416013.9199, 99.961279], [443083.2701, 99.966677], [471913.507, 99.971673], [502620.1526, 99.976302], [535324.8297, 99.980575], [570156.9769, 99.984496], [607256.1655, 99.988063], [646769.3381, 99.991314], [688853.5686, 99.994366], [733675.418, 99.997264], [781414.486, 100]]
- };
-
- // Initial values for the user lines.
- var userLine1Val = 8250;
- var userLine2Val = 60000;
-
-
-
- plot1 = $.jqplot("chart1", [dataSets.national], {
- title: "Cumulative Density Function",
- cursor: {
- show: false
- },
- highlighter: {
- show: true,
- showMarker: false,
- useAxesFormatters: false,
- formatString: '%d, %.1f'
- },
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- seriesDefaults: {
- showMarker: false
- },
- axes: {
- xaxis: {
- label: "Per Capita Expenditure (local currency)",
- renderer: $.jqplot.LogAxisRenderer,
- pad:0,
- ticks: [700, 7000, 70000, 700000, {value:1000000, showLabel:false, showMark:false, showGridline:false}],
- tickOptions: {
- formatString: "%d"
- }
- },
- yaxis: {
- label: "Population Share (%)",
- forceTickAt0: true,
- pad: 0
- }
- },
- grid: {
- drawBorder: false,
- shadow: false,
- // background: 'rgba(0,0,0,0)' works.
- background: "white"
- },
- canvasOverlay: {
- show: true,
- objects: [
- {verticalLine: {
- name: "line1",
- x: userLine1Val,
- color: "#d4c35D",
- yOffset: 0,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "PCE=%'d",
- showTooltipPrecision: 0.5
- }},
- {verticalLine: {
- name: "line2",
- x: userLine2Val,
- color: "#d4c35D",
- yOffset: 0,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "PCE=%'d",
- showTooltipPrecision: 0.5
- }}
- ]
- }
- });
-
- // add a date at the bottom.
-
- var d = new $.jsDate();
- $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
- // initialize form elements
- // set these before attaching event handlers.
-
- $("input[type=radio][name=dataSeries]").attr("checked", false);
- $("input[type=radio][name=dataSeries][value=national]").attr("checked", true);
-
- $("input[type=radio][name=backgroundColor]").attr("checked", false);
- $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
-
- $("input[type=radio][name=lineWidth]").attr("checked", false);
- $('input[type=radio][name=lineWidth][value="2.5"]').attr("checked", true);
-
- $("input[type=text][name=userLine1]").val(userLine1Val);
- $("input[type=text][name=userLine2]").val(userLine2Val);
-
- $("input[type=checkbox][name=gridsVertical]").attr("checked", true);
- $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true);
-
- $("input[type=radio][name=backgroundColor]").change(function(){
- plot1.grid.background = $(this).val();
- plot1.replot();
- });
-
- $("input[type=radio][name=dataSeries]").change(function(){
- var val = $(this).val();
- plot1.series[0].data = dataSets[val];
-
- switch (val) {
- case "national":
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
- break;
- case "urban":
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#c54b62";
- break;
- case "rural":
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#b2c54b";
- break;
- default:
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
- break;
- }
- // hack to make sure plot auto computes a new format string if needed.
- plot1.axes.yaxis.tickOptions.formatString = ''
- plot1.replot({resetAxes:["yaxis"]});
- });
-
- $("input[type=checkbox][name=gridsVertical]").change(function(){
- plot1.axes.xaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- });
-
- $("input[type=checkbox][name=gridsHorizontal]").change(function(){
- plot1.axes.yaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- });
-
- $("input[type=text][name=userLine1]").keyup(function(){
- var val = parseFloat($(this).val());
- plot1.plugins.canvasOverlay.get("line1").options.x = val;
- plot1.replot();
- });
-
- $("input[type=text][name=userLine2]").keyup(function(){
- var val = parseFloat($(this).val());
- plot1.plugins.canvasOverlay.get("line2").options.x = val;
- plot1.replot();
- });
-
- $("input[type=radio][name=lineWidth]").change(function(){
- var val = parseFloat($(this).val()), shadowOffset;
- plot1.series[0].renderer.shapeRenderer.lineWidth = val;
- plot1.series[0].renderer.shadowRenderer.lineWidth = val;
- // for thick lines, scale shadow offset.
- if (val > 2.5) {
- shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6);
- // var shadow_offset = this.shadowOffset;
- }
- // for skinny lines, don't make such a big shadow.
- else {
- shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163;
- }
- plot1.series[0].renderer.shadowRenderer.offset = shadowOffset;
- plot1.plugins.canvasOverlay.get("line1").options.lineWidth = val;
- plot1.plugins.canvasOverlay.get("line2").options.lineWidth = val;
- plot1.replot();
- });
-
-
- $("div.chart-container").resizable({delay:20});
-
- $("div.chart-container").bind("resize", function(event, ui) {
- plot1.replot();
- });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html
deleted file mode 100755
index 940c2d5a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Engel Curves</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_cdf.html">Previous</a> <a href="./">Examples</a> <a href="kcp_lorenz.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
-
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px 0px 30px 30px;
- width: 900px;
- height: 400px;
-
- }
-
- table.jqplot-table-legend {
- font-size: 0.65em;
- line-height: 1em;
- margin: 0px 0px 10px 15px;
- }
-
- td.jqplot-table-legend-label {
- width: 20em;
- }
-
- div.jqplot-table-legend-swatch {
- border-width: 1.5px 6px;
- }
-
- div.jqplot-table-legend-swatch-outline {
- border: none;
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
-/* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- </style>
-
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
-
- <pre class="code brush:js"></pre>
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
-
- ///////////
- // This is NOT a full csv parser.
- // It does not handle quoated text.
- // It is for demonstration only.
- // For a full featured csv parser, look at:
- //
- // http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm
- ///////////
-
- var parseCSVFile = function(url) {
- var ret = null;
- var labels = [];
- var ticks = [];
- var values = [];
- var temp;
- $.ajax({
- // have to use synchronous here, else returns before data is fetched
- async: false,
- url: url,
- dataType:"text",
- success: function(data) {
- // parse csv data
- var lines = data.split('\n');
- var line;
- for (var i=0, l=lines.length; i<l; i++) {
- line = lines[i].replace('\r', '').split(',');
- // console.log(line);
- if (line.length > 1) {
- if (i === 0) {
- ticks = line.slice(1, line.length);
- }
- else {
- labels.push(line[0]);
- values.push(line.slice(1, line.length));
- temp = values[values.length-1];
- for (n in temp) {
- values[values.length-1][n] = parseFloat(temp[n]);
- }
- }
- }
- }
- ret = [values, labels, ticks];
- }
- });
- return ret;
- };
-
- var jsonurl = "./KCPsample4.csv";
-
- var infos = parseCSVFile(jsonurl);
- var data = infos[0];
- var labels = infos[1];
- var ticks = infos[2];
-
- // make the plot
-
- plot1 = $.jqplot("chart1", data, {
- title: "Engel Curves",
- animate: true,
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- seriesDefaults: {
- showMarker: false
- },
- legend: {
- show: true,
- renderer: $.jqplot.EnhancedLegendRenderer,
- placement: "outsideGrid",
- labels: labels,
- location: "ne",
- rowSpacing: "0px",
- rendererOptions: {
- // set to true to replot when toggling series on/off
- // set to an options object to pass in replot options.
- seriesToggle: 'normal',
- seriesToggleReplot: {resetAxes: true}
- }
- },
- axes: {
- xaxis: {
- label: 'Population Percentile',
- pad: 1.01,
- tickOptions: {
- showGridline: false
- }
- },
- yaxis: {
- label: 'Share in Total Expenditure (%)',
- tickOptions: {
- suffix: '%'
- },
- padMin: 0,
- padMax: 1.05
- }
- },
- grid: {
- drawBorder: false,
- shadow: false,
- // background: 'rgba(0,0,0,0)' works to make transparent.
- background: "white"
- }
- });
-
- // add a date at the bottom.
-
- var d = new $.jsDate();
- $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
- // make it resizable.
-
- $("div.chart-container").resizable({delay:20});
-
- $("div.chart-container").bind("resize", function(event, ui) {
- plot1.replot();
- });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html
deleted file mode 100755
index 2fcf661d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html
+++ /dev/null
@@ -1,528 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Lorenz Curves</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_engel.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pdf.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
-
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px;
- width: 500px;
- height: 400px;
-
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
-/* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- </style>
-
- <table class="app">
- <td class="controls">
-
- <div>
- Data Series:
- <ul>
- <li><input class="dataSeries-checkbox" name="dataSeries_national" value="national" type="checkbox" checked />National</li>
- <li><input class="dataSeries-checkbox" name="dataSeries_urban" value="urban" type="checkbox" />Urban</li>
- <li><input class="dataSeries-checkbox" name="dataSeries_rural" value="rural" type="checkbox" />Rural</li>
- </ul>
- </div>
-
- <div>
- Background Color:
- <ul>
- <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
- <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
- </ul>
- </div>
-
- <div>
- Line Width:
- <ul>
- <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li>
- <li><input name="lineWidth" value="5" type="radio" />Thick</li>
- </ul>
- </div>
-
- <div>
- Grids:
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
- </ul>
- </div>
-
- <div>
- Cutoff Lines:
- <ul>
- <li><input name="cutoffLines" value="showCutoffLines" type="checkbox" checked />Show</li>
- <li>Low:&nbsp;&nbsp;<input name="userLine1" value="42" type="text" size="6" /></li>
- <li>High:&nbsp;<input name="userLine2" value="75" type="text" size="6" /></li>
- </ul>
- </div>
- </td>
-
- <td class="chart">
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
- </td>
-
- </table>
-
- <pre class="code brush:js"></pre>
-
-
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
- var dataSets = {
- national: [[0, 0], [0.034259, 0.000122], [0.036908, 0.000271], [0.039957, 0.000457], [0.043623, 0.000699], [0.048008, 0.001005], [0.053278, 0.001404], [0.059665, 0.001916], [0.067405, 0.002587], [0.076951, 0.003482], [0.088909, 0.004676], [0.103706, 0.006234], [0.121406, 0.008198], [0.142376, 0.010698], [0.167456, 0.013945], [0.198392, 0.018266], [0.237371, 0.024152], [0.287096, 0.03217], [0.350664, 0.043128], [0.43322, 0.058856], [0.546538, 0.08196], [0.703419, 0.116382], [0.921534, 0.167573], [1.225405, 0.244101], [1.658248, 0.362099], [2.286919, 0.545089], [3.168531, 0.811148], [4.338121, 1.180312], [5.828025, 1.677699], [7.674282, 2.317937], [9.856185, 3.124879], [12.427952, 4.135038], [15.374906, 5.337835], [18.559853, 6.704187], [21.938501, 8.240167], [25.480211, 9.968066], [29.195872, 11.896316], [33.040813, 13.995922], [36.929108, 16.268393], [40.883239, 18.753271], [44.934876, 21.456742], [48.979949, 24.281483], [52.874709, 27.163823], [56.569122, 30.090586], [60.143349, 33.155912], [63.632698, 36.332609], [67.019887, 39.647977], [70.272329, 42.982924], [73.31569, 46.301522], [76.137996, 49.580067], [78.734309, 52.80729], [81.144203, 56.013671], [83.364771, 59.154237], [85.40072, 62.237023], [87.276365, 65.274088], [88.994984, 68.231226], [90.547773, 71.063226], [91.930153, 73.740825], [93.143588, 76.235257], [94.19365, 78.526502], [95.093093, 80.626967], [95.863261, 82.534767], [96.518119, 84.276606], [97.07861, 85.871008], [97.555507, 87.313822], [97.958887, 88.612275], [98.29631, 89.76839], [98.57645, 90.788966], [98.805892, 91.680096], [98.994988, 92.471419], [99.15183, 93.168954], [99.279882, 93.771844], [99.384116, 94.303287], [99.470272, 94.773123], [99.541871, 95.191639], [99.601871, 95.572501], [99.653556, 95.924822], [99.698334, 96.25129], [99.737113, 96.553878], [99.770733, 96.834228], [99.800151, 97.099569], [99.826487, 97.355328], [99.85018, 97.600349], [99.871291, 97.832168], [99.889939, 98.050737], [99.906286, 98.254414], [99.92045, 98.442305], [99.932702, 98.616245], [99.9433, 98.776877], [99.952485, 98.926517], [99.960528, 99.066855], [99.96755, 99.196967], [99.9736, 99.316087], [99.978742, 99.423943], [99.983126, 99.523155], [99.986929, 99.615949], [99.990275, 99.703425], [99.993221, 99.785398], [99.995794, 99.861721], [99.998031, 99.932812], [100, 100]],
-
- urban: [[0, 0], [0.022476, 0.000211], [0.026364, 0.000483], [0.031079, 0.000832], [0.03683, 0.001286], [0.043812, 0.001867], [0.052123, 0.002596], [0.061977, 0.003523], [0.07392, 0.00472], [0.08836, 0.006245], [0.105627, 0.008192], [0.126649, 0.010745], [0.152991, 0.014185], [0.186685, 0.01887], [0.230466, 0.025421], [0.288337, 0.034602], [0.364009, 0.047302], [0.462362, 0.064833], [0.591815, 0.0896], [0.763717, 0.124292], [0.990265, 0.173076], [1.291577, 0.242086], [1.689361, 0.337485], [2.197829, 0.465168], [2.833156, 0.632983], [3.607935, 0.847553], [4.531058, 1.117227], [5.612064, 1.448077], [6.829389, 1.832426], [8.150496, 2.276607], [9.587093, 2.787319], [11.139531, 3.375891], [12.843232, 4.068491], [14.744, 4.894875], [16.882944, 5.879821], [19.274088, 7.043989], [21.898373, 8.377077], [24.70402, 9.889069], [27.725078, 11.639484], [31.02485, 13.647365], [34.577391, 15.957918], [38.361881, 18.496115], [42.220399, 21.242326], [46.204947, 24.281703], [50.279452, 27.501128], [54.284933, 30.800251], [58.020934, 34.003512], [61.527083, 37.314968], [65.059633, 40.928214], [68.631977, 44.751812], [72.134933, 48.615769], [75.35901, 52.332308], [78.289798, 55.927374], [80.980675, 59.439449], [83.426691, 62.80086], [85.63051, 66.024375], [87.600439, 69.040545], [89.324337, 71.839628], [90.82494, 74.405703], [92.132382, 76.808559], [93.28344, 79.051197], [94.291515, 81.128944], [95.165628, 83.025406], [95.917569, 84.765777], [96.566309, 86.346045], [97.111687, 87.728898], [97.557321, 88.935715], [97.923776, 89.98232], [98.224115, 90.896808], [98.472073, 91.712405], [98.683427, 92.454973], [98.864412, 93.127257], [99.018636, 93.73762], [99.150765, 94.298112], [99.266909, 94.826197], [99.369967, 95.321988], [99.460335, 95.779249], [99.538693, 96.200706], [99.60658, 96.587402], [99.665149, 96.942925], [99.716006, 97.27086], [99.76009, 97.572073], [99.798168, 97.847633], [99.830962, 98.099393], [99.858805, 98.322381], [99.881656, 98.513678], [99.900176, 98.68098], [99.91564, 98.83196], [99.928971, 98.970904], [99.940546, 99.098968], [99.950572, 99.216266], [99.959091, 99.321169], [99.966315, 99.415471], [99.97239, 99.500041], [99.97761, 99.578707], [99.982252, 99.653757], [99.986425, 99.725788], [99.990223, 99.796075], [99.993742, 99.865362], [99.996997, 99.933105], [100, 100]],
-
- rural: [[0, 0], [0.044856, 0.00021], [0.048153, 0.000449], [0.051764, 0.000737], [0.055907, 0.001092], [0.060801, 0.00155], [0.066762, 0.002138], [0.073899, 0.002894], [0.082612, 0.003876], [0.093168, 0.005148], [0.106164, 0.006835], [0.122508, 0.009095], [0.142886, 0.012069], [0.16758, 0.015833], [0.19669, 0.020566], [0.23118, 0.026579], [0.273098, 0.034447], [0.325019, 0.044958], [0.390807, 0.059161], [0.474177, 0.078318], [0.579565, 0.104359], [0.719638, 0.14226], [0.911325, 0.197784], [1.175054, 0.278915], [1.537895, 0.397967], [2.041596, 0.57646], [2.758826, 0.848809], [3.776691, 1.250019], [5.133703, 1.8048], [6.852621, 2.537016], [8.948744, 3.478047], [11.417648, 4.640509], [14.293846, 6.085098], [17.634387, 7.851123], [21.360828, 9.886831], [25.29956, 12.160142], [29.428878, 14.674388], [33.707138, 17.452533], [38.129755, 20.506174], [42.671778, 23.796002], [47.229102, 27.303349], [51.800588, 31.060857], [56.383771, 35.053496], [60.886558, 39.145526], [65.12792, 43.181575], [69.030354, 47.116849], [72.617033, 51.025646], [75.986887, 54.923636], [79.112304, 58.743632], [81.975561, 62.443223], [84.537139, 65.922443], [86.782817, 69.135506], [88.71901, 72.103335], [90.413815, 74.878966], [91.908817, 77.500639], [93.228911, 79.953304], [94.381653, 82.20716], [95.359352, 84.209133], [96.170082, 85.973719], [96.837248, 87.5051], [97.378991, 88.838761], [97.8273, 90.020506], [98.200135, 91.065991], [98.506646, 91.96714], [98.752685, 92.735267], [98.949784, 93.390185], [99.10766, 93.94721], [99.232528, 94.417506], [99.334335, 94.838423], [99.42121, 95.226477], [99.497035, 95.589049], [99.563629, 95.927413], [99.621726, 96.240868], [99.672192, 96.530566], [99.715746, 96.794464], [99.752893, 97.034788], [99.784601, 97.251679], [99.811139, 97.442528], [99.833203, 97.614678], [99.852181, 97.774104], [99.868723, 97.92227], [99.883153, 98.05955], [99.89576, 98.188276], [99.906951, 98.310902], [99.917064, 98.429897], [99.926265, 98.545001], [99.9346, 98.656238], [99.942191, 98.76409], [99.949086, 98.868769], [99.955426, 98.971691], [99.961279, 99.072938], [99.966677, 99.172455], [99.971673, 99.270765], [99.976302, 99.367541], [99.980575, 99.462525], [99.984496, 99.554946], [99.988063, 99.644199], [99.991314, 99.731953], [99.994366, 99.820708], [99.997264, 99.910225], [100, 100]]
- }
-
- // Initial values for the user lines.
- var userLine1Val = 42;
- var userLine2Val = 75;
-
- // find the index of the data point with the closest y value.
- // assumes y values are monotonically increasing.
- var findXValue = function (y, data) {
- var l = data.length;
- var temp;
- var d;
- var idx;
- var mid = Math.round(l/2);
- var interval = mid;
- var prevInterval = mid;
- var dist = null;
- var absDist = null;
- var hold = null;
- var ret = null;
- var x, x0, x1, y0, y1, lowidx, hiidx;
-
- // check to see if we're in range
- if (y > data[l-1][1]) {
- return [l-1, data[l-1]];
- }
- else if (y < data[0][1]) {
- return [0, data[0]];
- }
-
- for (var i=0; i<l; i++) {
- d = data[mid][1];
- dist = d - y;
- absDist = Math.abs(dist);
- interval = Math.round(interval/2);
-
- if (absDist < hold || hold === null) {
- hold = absDist;
- idx = mid;
- }
-
- // if we're right on the pont, get out of here
- if (dist === 0) {
- ret = [idx, data[idx]];
- break;
- }
-
- // if we've narrowed it down to an interval,
- // interpolate and get out of here
- else if (prevInterval === 1) {
- // to the right, interpolate -1 to here
- if (dist > 0) {
- lowidx = idx - 1;
- hiidx = idx;
- }
- else {
- lowidx = idx;
- hiidx = idx + 1;
- }
-
- x0 = data[lowidx][0];
- x1 = data[hiidx][0];
- y0 = data[lowidx][1];
- y1 = data[hiidx][1];
-
- x = x0 + (y - y0) / (y1 - y0) * (x1 - x0);
-
- ret = [idx, [x, y]];
- break;
- }
- // to the right, go left and reduce
- else if (dist > 0) {
- mid -= interval;
- }
- // to the left go right and increase
- else if (dist < 0) {
- mid += interval;
- }
-
- prevInterval = interval;
- }
- return ret;
- }
-
- // determine initial values for horizontal and vertical overlay lines.
-
- var line1x = findXValue(userLine1Val, dataSets.national)[1][0];
- var line2x = findXValue(userLine2Val, dataSets.national)[1][0];;
- var line3y = userLine1Val;
- var line4y = userLine2Val;
-
- // make the plot
-
- plot1 = $.jqplot("chart1", [dataSets.national, dataSets.urban, dataSets.rural], {
- title: "Lorenz Curve",
- // To control the size of the grid, can set the gridPadding option,
-
- // gridPadding: {top: 40, bottom: 60, left: 70, right: 50},
-
- // but must know size of container ahead of time and figure out what paddings
- // you want to get a square grid.
- // Alternatively, can use the gridDimensions option.
- // gridDimensions doesn't get reapplied on replot() because plots
- // _gridPadding attribute is set the first time it is drawn and it
- // won't be overwritten.
-
- gridDimensions: {height: 290, width: 290},
- seriesColors: ["#4bb2c5", "#c54b62", "#b2c54b"],
- cursor: {
- show: false
- },
- highlighter: {
- show: true,
- showMarker: false,
- useAxesFormatters: false,
- formatString: '%d, %.1f'
- },
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- seriesDefaults: {
- showMarker: false
- },
- series: [
- {show: true},
- {show: false},
- {show: false}
- ],
- axes: {
- xaxis: {
- label: '% of Population',
- pad:0
- },
- yaxis: {
- label: '% of Expenditure',
- pad: 0
- }
- },
- grid: {
- drawBorder: false,
- shadow: false,
- // background: 'rgba(0,0,0,0)' works.
- background: "white"
- },
- canvasOverlay: {
- show: true,
- objects: [,
- {line: {
- name: "line5",
- start: [0,0],
- stop: [100,100],
- color: "#666666",
- shadow: false,
- showTooltip: false,
- lineWidth: 3
- }},
- {horizontalLine: {
- name: "line1",
- y: userLine1Val,
- color: "#d4c35D",
- xmin: 0,
- xmax: line1x,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "%nPS=%'d",
- showTooltipPrecision: 0.5
- }},
- {horizontalLine: {
- name: "line2",
- y: userLine2Val,
- color: "#d4c35D",
- xmin: 0,
- xmax: line2x,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "%nPS=%'d",
- showTooltipPrecision: 0.5
- }},
- {verticalLine: {
- name: "line3",
- x: line1x,
- color: "#d4c35D",
- ymin: 0,
- ymax: line3y,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "PCE=%'d",
- showTooltipPrecision: 0.5
- }},
- {verticalLine: {
- name: "line4",
- x: line2x,
- color: "#d4c35D",
- ymin: 0,
- ymax: line4y,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "PCE=%'d",
- showTooltipPrecision: 0.5
- }}
- ]
- }
- });
-
- // add a date at the bottom.
-
- var d = new $.jsDate();
- $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
- // initialize form elements
- // set these before attaching event handlers.
-
- $("input.dataSeries-checkbox").attr("checked", false);
- $("input.dataSeries-checkbox[name=dataSeries_national]").attr("checked", true);
-
- $("input[type=radio][name=backgroundColor]").attr("checked", false);
- $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
-
- $("input[type=radio][name=lineWidth]").attr("checked", false);
- $('input[type=radio][name=lineWidth][value="2.5"]').attr("checked", true);
-
- $("input[type=text][name=userLine1]").val(userLine1Val);
- $("input[type=text][name=userLine2]").val(userLine2Val);
-
- $("input[type=checkbox][name=gridsVertical]").attr("checked", true);
- $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true);
- $("input[type=checkbox][name=cutoffLines]").attr("checked", true);
-
-
- // attach event handlers to form elements
-
- $("input[type=radio][name=backgroundColor]").change(function(){
- plot1.grid.background = $(this).val();
- plot1.replot();
- });
-
- $("input.dataSeries-checkbox").change(function(){
-
- plot1.series[0].show = false;
- plot1.series[1].show = false;
- plot1.series[2].show = false;
-
- if ($('input[name=dataSeries_national]').get(0).checked === true) {
- plot1.series[0].show = true;
- }
-
- if ($('input[name=dataSeries_urban]').get(0).checked === true) {
- plot1.series[1].show = true;
- }
-
- if ($('input[name=dataSeries_rural]').get(0).checked === true) {
- plot1.series[2].show = true;
- }
-
- // var co = plot1.plugins.canvasOverlay;
- // var x1max = findXValue($("input[type=text][name=userLine1]").val(), dataSets[val])[1][0];
- // co.get("line1").options.xmax = co.get("line3").options.x = x1max;
- // var x2max = findXValue($("input[type=text][name=userLine2]").val(), dataSets[val])[1][0];
- // co.get("line2").options.xmax = co.get("line4").options.x = x2max;
-
- plot1.replot();
- });
-
- $("input[type=checkbox][name=gridsVertical]").change(function(){
- plot1.axes.xaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- });
-
- $("input[type=checkbox][name=gridsHorizontal]").change(function(){
- plot1.axes.yaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- });
-
- $("input[type=checkbox][name=cutoffLines]").change(function(){
- var co = plot1.plugins.canvasOverlay;
- if (this.checked) {
- co.get('line1').options.show = true;
- co.get('line2').options.show = true;
- co.get('line3').options.show = true;
- co.get('line4').options.show = true;
- }
- else {
- co.get('line1').options.show = false;
- co.get('line2').options.show = false;
- co.get('line3').options.show = false;
- co.get('line4').options.show = false;
- }
- plot1.replot();
- });
-
- $("input[type=text][name=userLine1]").keyup(function(){
- var val = parseFloat($(this).val());
-
- var co = plot1.plugins.canvasOverlay;
-
- co.get("line1").options.y = val;
- co.get("line3").options.ymax = val;
-
- var xx = findXValue(val, plot1.series[0].data)[1][0];
- co.get("line1").options.xmax = co.get("line3").options.x = xx;
-
- plot1.replot();
- });
-
- $("input[type=text][name=userLine2]").keyup(function(){
- var val = parseFloat($(this).val());
-
- var co = plot1.plugins.canvasOverlay;
-
- co.get("line2").options.y = val;
- co.get("line4").options.ymax = val;
-
- var xx = findXValue(val, plot1.series[0].data)[1][0];
- co.get("line2").options.xmax = co.get("line4").options.x = xx;
-
- plot1.replot();
- });
-
- $("input[type=radio][name=lineWidth]").change(function(){
- var val = parseFloat($(this).val()), shadowOffset;
- plot1.series[0].renderer.shapeRenderer.lineWidth = val;
- plot1.series[0].renderer.shadowRenderer.lineWidth = val;
- // for thick lines, scale shadow offset.
- if (val > 2.5) {
- shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6);
- // var shadow_offset = this.shadowOffset;
- }
- // for skinny lines, don't make such a big shadow.
- else {
- shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163;
- }
- plot1.series[0].renderer.shadowRenderer.offset = shadowOffset;
- for (var i=0, l=plot1.plugins.canvasOverlay.objects.length; i<l; i++) {
- plot1.plugins.canvasOverlay.objects[i].options.lineWidth = val;
- }
- plot1.replot();
- });
-
-
- $("div.chart-container").resizable({delay:20, aspectRatio: true});
-
- $("div.chart-container").bind("resize", function(event, ui) {
- plot1.replot();
- });
-
- $(".jqplot-target").mouseleave(function(){ $('.jqplot-canvasOverlay-tooltip, .jqplot-highlighter-tooltip, .jqpot-cursor-tooltip').hide(); });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->>
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html
deleted file mode 100755
index 161ae911..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html
+++ /dev/null
@@ -1,387 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Probability Density Function Chart</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_lorenz.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
-
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px;
- width: 500px;
- height: 400px;
-
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
-/* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
-
- </style>
-
- <table class="app">
- <td class="controls">
-
- <div>
- Data Series:
- <ul>
- <li><input name="dataSeries" value="national" type="radio" checked />National</li>
- <li><input name="dataSeries" value="urban" type="radio" />Urban</li>
- <li><input name="dataSeries" value="rural" type="radio" />Rural</li>
- </ul>
- </div>
-
- <div>
- Background Color:
- <ul>
- <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
- <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
- </ul>
- </div>
-
- <div>
- Line Width:
- <ul>
- <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li>
- <li><input name="lineWidth" value="5" type="radio" />Thick</li>
- </ul>
- </div>
-
- <div>
- Grids:
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
- </ul>
- </div>
-
- <div>
- Set lines at:
- <ul>
- <li><input name="userLine1" value="8250" type="text" size="8" /> and </li>
- <li><input name="userLine2" value="60000" type="text" size="8" /></li>
- </ul>
- </div>
- </td>
-
- <td class="chart">
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
- </td>
-
- </table>
-
- <pre class="code brush:js"></pre>
-
-
-
- <script class="code" type="text/javascript">
-$(document).ready(function(){
- var dataSets = {
- national: [[1521.3938, 0.03708],[1626.3757, 0.042449],[1738.6018, 0.049646],[1858.5719, 0.060338],[1986.8205, 0.071497],
- [2123.9187, 0.087044],[2270.4772, 0.104666],[2427.1488, 0.128184],[2594.6313, 0.159819],[2773.6707, 0.199611],
- [2965.0643, 0.243673],[3169.6651, 0.287224],[3388.384, 0.342159],[3622.1955, 0.415635],[3872.1408, 0.517318],
- [4139.3332, 0.659341],[4424.963, 0.840113],[4730.3023, 1.074108],[5056.7112, 1.442097],[5405.6431, 1.981591],
- [5778.6531, 2.7619],[6177.4022, 3.842131],[6603.6665, 5.373085],[7059.3446, 7.749981],[7546.4664, 11.242774],
- [8067.2013, 15.291262],[8623.869, 19.8475],[9218.9488, 25.015106],[9855.0905, 30.121086],[10535.1293, 35.513309],
- [11262.0934, 41.587183],[12039.2208, 46.321554],[12869.973, 49.223654],[13758.0502, 51.762768],[14707.4081, 54.47173],
- [15722.2754, 56.863937],[16807.1724, 57.920473],[17966.9296, 58.642722],[19206.7162, 59.984755],[20532.0529, 61.048963],
- [21948.8429, 59.669989],[23463.3991, 56.956409],[25082.4581, 54.101304],[26813.238, 53.0051],[28663.448, 51.385158],
- [30641.3597, 50.165756],[32755.7239, 47.205435],[35015.9867, 43.941876],[37432.2159, 40.609332],[40015.1736, 37.393368],
- [42776.4074, 34.753172],[45728.1335, 31.843056],[48883.5393, 29.239575],[52256.6796, 26.946508],[55862.5786, 24.54375],
- [59717.3573, 21.987525],[63838.07, 19.447158],[68243.1267, 16.947396],[72952.1481, 14.562087],[77986.109, 12.487872],
- [83367.4313, 10.610279],[89120.1733, 9.061827],[95269.7861, 7.759485],[101843.7444, 6.5685],[108871.3294, 5.529717],
- [116383.8431, 4.605731],[124414.8718, 3.803268],[132999.9458, 3.106561],[142177.421, 2.580555],[151988.1749, 2.127878],
- [162475.9062, 1.720439],[173687.5023, 1.418638],[185672.5653, 1.173246],[198484.6408, 0.977631],[212180.7957, 0.832246],
- [226822.0345, 0.720185],[242473.814, 0.624252],[259205.3802, 0.54125],[277091.4846, 0.469102],[296211.7947, 0.415329],
- [316651.475, 0.374489],[338501.5668, 0.335609],[361859.7555, 0.297025],[386829.3815, 0.261974],[413522.0015, 0.228367],
- [442056.5084, 0.19707],[472559.9991, 0.17066],[505168.8456, 0.147428],[540027.3147, 0.128476],[577291.1437, 0.112712],
- [617126.311, 0.097754],[659710.2484, 0.083718],[705233.3359, 0.070908],[753896.9752, 0.061016],[805918.5808, 0.053385],
- [861529.8645, 0.047077],[920978.5269, 0.041268],[984529.3611, 0.035943],[1052466.484, 0.031318],[1125090.461, 0.027688]],
-
- urban: [[2918.1368, 0.0059], [3099.059, 0.0071], [3291.1983, 0.0086], [3495.2501, 0.0105], [3711.9529, 0.0127],
- [3942.0911, 0.015], [4186.4977, 0.018], [4446.0574, 0.0218], [4721.7095, 0.0262], [5014.4519, 0.0315],
- [5325.3441, 0.03890], [5655.5113, 0.0493], [6006.1487, 0.0633], [6378.5253, 0.0833], [6773.9889, 0.1099],
- [7193.971, 0.1432], [7639.9917, 0.18610], [8113.6654, 0.2476], [8616.7064, 0.3266], [9150.9356, 0.432399],
- [9718.2865, 0.5759], [10320.8128, 0.7497], [10960.6953, 0.9448], [11640.25, 1.1693], [12361.9366, 1.4078],
- [13128.3672, 1.6660], [13942.3158, 1.9247], [14806.7287, 2.10529], [15724.7345, 2.291], [16699.656, 2.4804],
- [17735.0219, 2.6917], [18834.5796, 2.9825], [20002.3091, 3.350899], [21242.4369, 3.7607], [22559.4426, 4.1855],
- [23958.1299, 4.5129], [25443.5105, 4.8198], [27020.9832, 5.254099], [28696.2577, 5.6751], [30475.3976, 6.1493],
- [32364.8747, 6.3607], [34371.4652, 6.4803], [36502.4624, 6.7534], [38765.5793, 6.7358], [41169.0072, 6.4996],
- [43721.489, 5.9422], [46432.1785, 5.7844], [49310.9281, 5.943099], [52368.1573, 5.9219], [55614.9317, 5.635099],
- [59063.062, 5.1036], [62724.914, 4.6486], [66613.7972, 4.2762], [70743.7873, 3.8538], [75129.8328, 3.4799],
- [79787.8886, 3.066], [84734.6595, 2.6792], [89988.1253, 2.312799], [95567.3009, 2.0393], [101492.3799, 1.7922],
- [107784.9158, 1.5635], [114467.4749, 1.3438], [121564.3462, 1.1612], [129101.2165, 0.992799], [137105.3654, 0.818],
- [145605.9093, 0.6722], [154633.333, 0.549], [164220.4481, 0.4517], [174401.955, 0.379299], [185214.7052, 0.3252],
- [196698.0321, 0.2772], [208893.1174, 0.23700], [221844.2859, 0.2049], [235598.4142, 0.1818], [250205.285, 0.1607],
- [265718.0332, 0.1396], [282192.2909, 0.1211], [299687.9363, 0.1047], [318268.2947, 0.0906], [338000.617, 0.0787],
- [358956.683, 0.0681], [381211.6455, 0.0586], [404846.394, 0.0504], [429946.4736, 0.0421], [456602.7336, 0.034],
- [484912.1405, 0.02799], [514976.218, 0.0238], [546904.2389, 0.0206], [580811.7657, 0.0179], [616821.5259, 0.0154],
- [655064.5111, 0.013], [695677.8688, 0.011], [738809.2149, 0.0093], [784614.6621, 0.0081], [833260.0023, 0.0073],
- [884922.1907, 0.0066], [939786.4993, 0.0061], [998052.3412, 0.0056], [1059930.608, 0.0052], [1125645.267, 0.0048]],
-
- rural: [[1522.3755, 0.005], [1621.4335, 0.005], [1726.937, 0.006], [1839.3056, 0.00699], [1958.9857, 0.009],
- [2086.4531, 0.01], [2222.2145, 0.012], [2366.8099, 0.015], [2520.8136, 0.018], [2684.8381, 0.023], [2859.5353, 0.029],
- [3045.6, 0.036], [3243.7713, 0.043], [3454.8371, 0.05], [3679.6367, 0.06], [3919.0639, 0.074], [4174.0698, 0.092],
- [4445.6684, 0.117], [4734.9398, 0.148], [5043.0332, 0.189], [5371.1735, 0.258], [5720.6654, 0.356],
- [6092.8986, 0.488], [6489.3516, 0.672], [6911.6011, 0.946], [7361.3256, 1.355], [7840.3135, 1.87399],
- [8350.4675, 2.434], [8893.8162, 3.016], [9472.5195, 3.639], [10088.8789, 4.22], [10745.3427, 4.92399],
- [11444.5212, 5.652], [12189.194, 6.117], [12982.3225, 6.414], [13827.0569, 6.66], [14726.7567, 6.9099],
- [15684.9997, 7.131], [16705.5921, 7.213], [17792.5925, 7.22], [18950.322, 7.263], [20183.3846, 7.2459],
- [21496.6782, 6.973], [22895.4161, 6.457], [24385.1837, 5.9110], [25971.888, 5.513], [27661.8365, 5.162],
- [29461.7179, 4.749], [31378.744, 4.319], [33420.5079, 3.81299], [35595.0905, 3.306], [37911.2052, 2.867],
- [40378.0258, 2.518], [43005.3584, 2.233], [45803.6014, 1.96099], [48783.9674, 1.692], [51958.2609, 1.411],
- [55339.1005, 1.168],[58939.867, 0.9520], [62774.9884, 0.77799], [66859.655, 0.647], [71210.033, 0.538],
- [75843.5542, 0.4349], [80778.5711, 0.348], [86034.7015, 0.2789999], [91632.7482, 0.22300], [97595.1423, 0.177],
- [103945.4998, 0.148], [110709.0646, 0.128], [117912.6058, 0.112999], [125584.9876, 0.099], [133756.5988, 0.086],
- [142459.781, 0.074], [151729.4076, 0.064], [161602.1937, 0.054], [172117.386, 0.046], [183316.6015, 0.038],
- [195244.7151, 0.032], [207948.9717, 0.02799], [221479.8735, 0.025], [235890.9734, 0.021], [251240.0159, 0.019],
- [267587.7958, 0.017], [284999.0141, 0.015], [303543.4372, 0.013999], [323294.5157, 0.013], [344330.7648, 0.011],
- [366735.4418, 0.01], [390598.3214, 0.01], [416013.9199, 0.009], [443083.2701, 0.008], [471913.507, 0.008],
- [502620.1526, 0.00699], [535324.8297, 0.006], [570156.9769, 0.006], [607256.1655, 0.005], [646769.3381, 0.005],
- [688853.5686, 0.005], [733675.418, 0.004], [781414.486, 0.004]]
- }
-
-
-
- plot1 = $.jqplot("chart1", [dataSets.national], {
- title: "Probability Density Function",
- cursor: {
- show: false
- },
- highlighter: {
- show: true,
- showMarker: false,
- useAxesFormatters: false,
- formatString: '%d, %.1f'
- },
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- seriesDefaults: {
- showMarker: false
- },
- axes: {
- xaxis: {
- label: 'Per Capita Expenditure (local currency)',
- renderer: $.jqplot.LogAxisRenderer,
- pad:0,
- ticks: [700, 7000, 70000, 700000, {value:1000000, showLabel:false, showMark:false, showGridline:false}],
- tickOptions: {
- formatString: "%d"
- }
- },
- yaxis: {
- label: 'Population Share (%)',
- forceTickAt0: true,
- pad: 0
- }
- },
- grid: {
- drawBorder: false,
- shadow: false,
- // background: 'rgba(0,0,0,0)' works.
- background: "white"
- },
- canvasOverlay: {
- show: true,
- objects: [
- {verticalLine: {
- name: "line1",
- x: 8250,
- color: "#d4c35D",
- yOffset: 0,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "PCE=%'d",
- showTooltipPrecision: 0.5
- }},
- {verticalLine: {
- name: "line2",
- x: 60000,
- color: "#d4c35D",
- yOffset: 0,
- shadow: false,
- showTooltip: true,
- tooltipFormatString: "PCE=%'d",
- showTooltipPrecision: 0.5
- }}
- ]
- }
- });
-
- var d = new $.jsDate();
- $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
- $("input[type=radio][name=backgroundColor]").change(function(){
- plot1.grid.background = $(this).val();
- plot1.replot();
- });
-
- $("input[type=radio][name=dataSeries]").change(function(){
- var val = $(this).val();
- plot1.series[0].data = dataSets[val];
-
- switch (val) {
- case "national":
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
- break;
- case "urban":
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#c54b62";
- break;
- case "rural":
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#b2c54b";
- break;
- default:
- plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
- break;
- }
- // hack to make sure plot auto computes a new format string if needed.
- plot1.axes.yaxis.tickOptions.formatString = ''
- plot1.replot({resetAxes:["yaxis"]});
- });
-
- $("input[type=checkbox][name=gridsVertical]").change(function(){
- plot1.axes.xaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- });
-
- $("input[type=checkbox][name=gridsHorizontal]").change(function(){
- plot1.axes.yaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- });
-
- $("input[type=text][name=userLine1]").keyup(function(){
- var val = parseFloat($(this).val());
- plot1.plugins.canvasOverlay.get("line1").options.x = val;
- plot1.replot();
- });
-
- $("input[type=text][name=userLine2]").keyup(function(){
- var val = parseFloat($(this).val());
- plot1.plugins.canvasOverlay.get("line2").options.x = val;
- plot1.replot();
- });
-
- $("input[type=radio][name=lineWidth]").change(function(){
- var val = parseFloat($(this).val()), shadowOffset;
- plot1.series[0].renderer.shapeRenderer.lineWidth = val;
- plot1.series[0].renderer.shadowRenderer.lineWidth = val;
- // for thick lines, scale shadow offset.
- if (val > 2.5) {
- shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6);
- // var shadow_offset = this.shadowOffset;
- }
- // for skinny lines, don't make such a big shadow.
- else {
- shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163;
- }
- plot1.series[0].renderer.shadowRenderer.offset = shadowOffset;
- plot1.plugins.canvasOverlay.get("line1").options.lineWidth = val;
- plot1.plugins.canvasOverlay.get("line2").options.lineWidth = val;
- plot1.replot();
- });
-
-
- $("div.chart-container").resizable({delay:20});
-
- $("div.chart-container").bind("resize", function(event, ui) {
- plot1.replot();
- });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->>
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html
deleted file mode 100755
index ed048869..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Pyramid Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_pdf.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid2.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
-
- <style type="text/css">
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px;
- width: 600px;
- height: 700px;
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
- /* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- div.tooltip {
- border: 1px solid #aaa;
- margin-right: 10px;
- }
-
- </style>
-
- <table class="app">
- <td class="controls">
-
- <div style="margin-bottom: 15px;">
- Axes:
- <select name="axisPosition">
- <option value="both">Left &amp; Right</option>
- <option value = "left">Left</option>
- <option value = "right">Right</option>
- <option value = "mid">Mid</option>
- </select>
- </div>
-
- <div>
- Background Color:
- <ul>
- <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
- <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
- </ul>
- </div>
-
- <div>
- Pyramid Color:
- <ul>
- <li><input name="seriesColor" value="green" type="radio" checked />Green</li>
- <li><input name="seriesColor" value="blue" type="radio" />Blue</li>
- </ul>
- </div>
-
- <div>
- Grids:
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
- <li><input name="showMinorTicks" value="true" type="checkbox" />Only major</li>
- <li><input name="plotBands" value="true" type="checkbox" />Plot Bands</li>
- </ul>
- </div>
-
- <div>
- <ul>
- <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li>
- <!-- value for showContour is speed at which to fade lines in/out -->
- <li><input name="showContour" value="500" type="checkbox" checked />Comparison Line</li>
- </ul>
- </div>
-
- <div class="tooltip">
- <table>
- <tr>
- <td>Age: </td><td><div class="tooltip-item" id="tooltipAge">&nbsp;</div></td>
- </tr>
- <tr>
- <td>Male: </td><td><div class="tooltip-item" id="tooltipMale">&nbsp;</div></td>
- </tr>
- <tr>
- <td>Female: </td><td><div class="tooltip-item" id="tooltipFemale">&nbsp;</div></td>
- </tr>
- <tr>
- <td>Ratio: </td><td><div class="tooltip-item" id="tooltipRatio">&nbsp;</div></td>
- </tr>
- </table>
- </div>
- </td>
-
- <td class="chart">
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
- </td>
-
- </table>
-
- <pre class="code brush:js"></pre>
-
-
-
- <script class="code" type="text/javascript" language="javascript">
- $(document).ready(function(){
-
- // the "x" values from the data will go into the ticks array.
- // ticks should be strings for this case where we have values like "75+"
- var ticks = ["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", "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", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75+", ""];
-
- // The "y" values of the data are put into seperate series arrays.
- var male = [0.635441, 1.066868, 0.889602, 0.816883, 1.016458, 0.916705, 0.79569, 0.970443, 1.046451, 1.335686, 0.926962, 0.936646, 0.919405, 0.722027, 0.896342, 0.993397, 0.613794, 0.916921, 0.828748, 0.43487, 0.391652, 0.517303, 0.507104, 0.336168, 0.554176, 0.691826, 0.66553, 0.686232, 0.7097, 0.356915, 0.756028, 0.430155, 0.420597, 0.608589, 0.609348, 0.83607, 0.79871, 0.63388, 0.866719, 0.711042, 1.160429, 0.439268, 0.659694, 0.468406, 0.340002, 0.996662, 0.371047, 0.638918, 0.462334, 0.467053, 0.545638, 0.463275, 0.480992, 0.515747, 0.499415, 0.287639, 0.520332, 0.443779, 0.334986, 0.43161, 0.474405, 0.179186, 0.620127, 0.219074, 0.411669, 0.495684, 0.315231, 0.275056, 0.157341, 0.113926, 0.24991, 0.128113, 0.175297, 0.103093, 0.253292, 0.988836];
- var female = [0.767078, 0.679554, 1.064493, 0.915063, 0.860792, 0.785728, 0.892471, 0.687886, 1.055313, 0.921839, 0.659624, 1.14516, 0.910735, 1.279864, 0.714669, 0.873929, 0.928453, 0.595752, 1.093534, 0.501142, 0.52829, 0.411606, 0.633309, 0.616121, 0.621781, 0.621598, 0.638378, 0.703724, 0.742589, 0.48523, 0.735727, 0.898816, 0.740614, 0.991105, 1.48909, 1.226996, 1.020624, 0.737742, 0.946817, 0.69129, 0.933744, 0.957472, 0.793112, 0.581121, 0.767528, 1.031739, 1.202133, 0.626926, 0.959522, 0.594303, 1.202145, 0.611707, 0.480779, 0.383338, 0.532876, 0.849878, 0.52453, 0.660183, 0.25419, 0.137567, 0.762322, 0.490294, 0.463194, 0.566921, 0.353006, 0.730591, 0.34669, 0.271638, 0.309785, 0.152756, 0.478111, 0.177234, 0.269302, 0.396318, 0.194934, 1.683044];
- var male2 = [0.230476, 0.175917, 0.225027, 0.40564, 0.408617, 0.495873, 0.441314, 0.282774, 0.47483, 0.393433, 0.580612, 0.220204, 0.514281, 0.32985, 0.514933, 0.507871, 0.398236, 0.362535, 0.603625, 0.528885, 0.550904, 0.87645, 0.857331, 0.713371, 0.703566, 0.703473, 0.858118, 0.751679, 0.832039, 0.752134, 1.202689, 1.069239, 1.051431, 0.732728, 0.992696, 0.828825, 0.723044, 0.857868, 1.088298, 0.86951, 0.914989, 0.549574, 0.672405, 0.637425, 0.530195, 0.706179, 0.941525, 0.576152, 0.913033, 0.647477, 0.734785, 0.441276, 0.583452, 0.537074, 0.7625, 0.662768, 0.307013, 0.384606, 0.470416, 0.22771, 0.470173, 0.152773, 0.338433, 0.348797, 0.10273, 0.285215, 0.139796, 0.186955, 0.143478, 0.178882, 0.141022, 0.1435, 0.146959, 0.056583, 0.05317, 0.784258];
- var female2 = [0.203297, 0.298698, 0.452947, 0.783013, 0.50033, 0.53629, 0.451817, 0.69927, 0.741356, 0.545433, 0.559643, 0.334842, 0.443899, 0.437309, 0.584658, 0.451757, 0.509258, 0.73483, 0.640501, 0.698825, 0.803701, 1.018148, 1.504918, 0.701318, 0.781324, 1.792142, 0.968484, 1.3288, 1.059729, 1.079985, 2.245553, 1.080526, 1.122927, 1.512428, 1.296163, 1.047212, 0.988065, 1.239462, 1.521174, 1.05187, 1.253013, 0.983437, 1.181799, 1.090029, 0.718064, 1.578813, 1.121987, 1.010202, 1.438581, 1.051654, 1.656156, 0.732428, 0.719311, 0.742441, 0.623806, 0.643911, 0.579092, 0.472909, 0.683453, 0.39008, 0.437458, 0.464595, 0.385552, 0.520029, 0.240536, 0.457316, 0.339587, 0.203276, 0.282141, 0.19517, 0.283663, 0.12404, 0.147211, 0.141153, 0.177653, 1.193951];
-
- // Custom color arrays are set up for each series to get the look that is desired.
- // Two color arrays are created for the default and optional color which the user can pick.
- var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
- var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
- // To accomodate changing y axis, need to keep track of plot options, so they are defined separately
- // changing axes will require recreating the plot, so need to keep
- // track of state changes.
- var plotOptions = {
- // We set up a customized title which acts as labels for the left and right sides of the pyramid.
- title: '<div style="float:left;width:50%;text-align:center">Male</div><div style="float:right;width:50%;text-align:center">Female</div>',
-
- // by default, the series will use the green color scheme.
- seriesColors: greenColors,
-
- grid: {
- drawBorder: false,
- shadow: false,
- background: 'white',
- rendererOptions: {
- // plotBands is an option of the pyramidGridRenderer.
- // it will put banding at starting at a specified value
- // along the y axis with an adjustable interval.
- plotBands: {
- show: false
- }
- }
- },
-
- // This makes the effective starting value of the axes 0 instead of 1.
- // For display, the y axis will use the ticks we supplied.
- defaultAxisStart: 0,
- seriesDefaults: {
- renderer: $.jqplot.PyramidRenderer,
- rendererOptions: {
- barPadding: 2,
- offsetBars: true
- },
- yaxis: 'yaxis',
- shadow: false
- },
-
- // We have 4 series, the left and right pyramid bars and
- // the left and rigt overlay lines.
- series: [
- // For pyramid plots, the default side is right.
- // We want to override here to put first set of bars
- // on left.
- {
- rendererOptions:{
- side: 'left',
- synchronizeHighlight: 1
- }
- },
- {
- yaxis: 'y2axis',
- rendererOptions:{
- synchronizeHighlight: 0
- }
- },
- // Pyramid series are filled bars by default.
- // The overlay series will be unfilled lines.
- {
- rendererOptions: {
- fill: false,
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis',
- rendererOptions: {
- fill: false
- }
- }
- ],
-
- // Set up all the y axes, since users are allowed to switch between them.
- // The only axis that will show is the one that the series are "attached" to.
- // We need the appropriate options for the others for when the user switches.
- axes: {
- xaxis: {
- tickOptions: {},
- rendererOptions: {
- baselineWidth: 2
- }
- },
- yaxis: {
- label: 'Age',
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- tickInterval: 5,
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: false,
- baselineWidth: 2
- }
- },
- yMidAxis: {
- label: 'Age',
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- tickInterval: 5,
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: false,
- baselineWidth: 2
- }
- },
- y2axis: {
- label: 'Age',
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- tickInterval: 5,
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: false,
- baselineWidth: 2
- }
- }
- }
- };
-
- // initialize form elements
- // set these before attaching event handlers.
-
- $('input[type=checkbox][name=gridsVertical]').attr('checked', true);
- $('input[type=checkbox][name=gridsHorizontal]').attr('checked', true);
- $('input[type=checkbox][name=showMinorTicks]').attr('checked', false);
- $('input[type=checkbox][name=plotBands]').attr('checked', false);
- $('input[type=checkbox][name=showContour]').attr('checked', true);
- $('input[type=checkbox][name=barPadding]').attr('checked', true);
- $('select[name=axisPosition]').val('both');
- $('input[type=radio][name=backgroundColor]').attr('checked', false);
- $('input[type=radio][name=backgroundColor][value=white]').attr('checked', true);
- $('input[type=radio][name=backgroundColor]').attr('checked', false);
- $('input[type=radio][name=backgroundColor][value=white]').attr('checked', true);
- $('input[type=radio][name=seriesColor]').attr('checked', false);
- $('input[type=radio][name=seriesColor][value=green]').attr('checked', true);
-
- plot1 = $.jqplot('chart1', [male, female, male2, female2], plotOptions);
-
-
- // After plot creation, check to see if contours should be displayed
- checkContour();
-
- //////
- // The followng functions use verbose css selectors to make
- // it clear exactly which elements they are binging to/operating on
- //////
-
- //////
- // Function which checkes if the countour lines checkbox is checked.
- // If not, hide the contour lines by hiding the canvases they are
- // drawn on.
- //////
- function checkContour() {
- if (!$('input[type=checkbox][name=showContour]').get(0).checked) {
- plot1.series[2].canvas._elem.addClass('jqplot-series-hidden');
- plot1.series[2].canvas._elem.hide();
- plot1.series[3].canvas._elem.addClass('jqplot-series-hidden');
- plot1.series[3].canvas._elem.hide();
- }
- }
-
- $('select[name=axisPosition]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
-
- switch ($(this).val()) {
- case 'both':
- plotOptions.series[0].yaxis = 'yaxis';
- plotOptions.series[1].yaxis = 'y2axis';
- plotOptions.series[2].yaxis = 'yaxis';
- plotOptions.series[3].yaxis = 'y2axis';
- break;
- case 'left':
- plotOptions.series[0].yaxis = 'yaxis';
- plotOptions.series[1].yaxis = 'yaxis';
- plotOptions.series[2].yaxis = 'yaxis';
- plotOptions.series[3].yaxis = 'yaxis';
- break;
- case 'right':
- plotOptions.series[0].yaxis = 'y2axis';
- plotOptions.series[1].yaxis = 'y2axis';
- plotOptions.series[2].yaxis = 'y2axis';
- plotOptions.series[3].yaxis = 'y2axis';
- break;
- case 'mid':
- plotOptions.series[0].yaxis = 'yMidAxis';
- plotOptions.series[1].yaxis = 'yMidAxis';
- plotOptions.series[2].yaxis = 'yMidAxis';
- plotOptions.series[3].yaxis = 'yMidAxis';
- break;
- default:
- break;
-
- }
-
- plot1.destroy();
- plot1 = $.jqplot('chart1', [male, female, male2, female2], plotOptions);
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $('input[type=radio][name=backgroundColor]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.grid.background = $(this).val();
- plotOptions.grid.background = $(this).val();
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $('input[type=radio][name=seriesColor]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- if ($(this).val() === 'blue') {
- // reset highlight colors so they will be recalculated.
- plot1.series[0].highlightColors = [];
- plot1.series[1].highlightColors = [];
- // reset series color to properly calculate highlight color.
- plot1.series[0].color = blueColors[0];
- plot1.series[1].color = blueColors[1];
- // to actually draw a new color, have to set the color on the shaperenderer.
- plot1.series[0].renderer.shapeRenderer.fillStyle = blueColors[0];
- plot1.series[1].renderer.shapeRenderer.fillStyle = blueColors[1];
- // update plot options state.
- plotOptions.seriesColors = blueColors;
- }
- else if ($(this).val() === 'green') {
- // reset highlight colors so they will be recalculated.
- plot1.series[0].highlightColors = [];
- plot1.series[1].highlightColors = [];
- // reset series color to properly calculate highlight color.
- plot1.series[0].color = greenColors[0];
- plot1.series[1].color = greenColors[1];
- // to actually draw a new color, have to set the color on the shaperenderer.
- plot1.series[0].renderer.shapeRenderer.fillStyle = greenColors[0];
- plot1.series[1].renderer.shapeRenderer.fillStyle = greenColors[1];
- // update plot options state.
- plotOptions.seriesColors = blueColors;
- }
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $('input[type=checkbox][name=gridsVertical]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.axes.xaxis.tickOptions.showGridline = this.checked;
- plotOptions.axes.xaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $('input[type=checkbox][name=gridsHorizontal]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.axes.yaxis.tickOptions.showGridline = this.checked;
- plot1.axes.y2axis.tickOptions.showGridline = this.checked;
- plot1.axes.yMidAxis.tickOptions.showGridline = this.checked;
- plotOptions.axes.yaxis.tickOptions.showGridline = this.checked;
- plotOptions.axes.y2axis.tickOptions.showGridline = this.checked;
- plotOptions.axes.yMidAxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $('input[type=checkbox][name=showMinorTicks]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.axes.yaxis.showMinorTicks = !this.checked;
- plot1.axes.y2axis.showMinorTicks = !this.checked;
- plot1.axes.yMidAxis.showMinorTicks = !this.checked;
- plotOptions.axes.yaxis.showMinorTicks = !this.checked;
- plotOptions.axes.y2axis.showMinorTicks = !this.checked;
- plotOptions.axes.yMidAxis.showMinorTicks = !this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $('input[type=checkbox][name=plotBands]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.grid.plotBands.show = this.checked;
- plotOptions.grid.rendererOptions.plotBands.show = this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $('input[type=checkbox][name=showContour]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var speed = $(this).val();
- if (this.checked) {
- plot1.series[2].canvas._elem.removeClass('jqplot-series-hidden');
- plot1.series[2].canvas._elem.fadeIn(speed);
- plot1.series[3].canvas._elem.removeClass('jqplot-series-hidden');
- plot1.series[3].canvas._elem.fadeIn(speed);
- }
- else {
- plot1.series[2].canvas._elem.addClass('jqplot-series-hidden');
- plot1.series[2].canvas._elem.fadeOut(speed);
- plot1.series[3].canvas._elem.addClass('jqplot-series-hidden');
- plot1.series[3].canvas._elem.fadeOut(speed);
- }
- });
-
- $('input[type=checkbox][name=barPadding]').change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- if (this.checked) {
- var val = parseFloat($(this).val());
- plot1.series[0].barPadding = val;
- plot1.series[1].barPadding = val;
- plotOptions.seriesDefaults.rendererOptions.barPadding = val;
- }
- else {
- plot1.series[0].barPadding = 0;
- plot1.series[1].barPadding = 0;
- plotOptions.seriesDefaults.rendererOptions.barPadding = 0;
- }
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $('.jqplot-target').bind('jqplotDataHighlight', function(evt, seriesIndex, pointIndex, data) {
- // Here, assume first series is male poulation and second series is female population.
- // Adjust series indices as appropriate.
- var malePopulation = Math.abs(plot1.series[0].data[pointIndex][1]);
- var femalePopulation = Math.abs(plot1.series[1].data[pointIndex][1]);
- var ratio = femalePopulation / malePopulation * 100;
-
- $('#tooltipMale').stop(true, true).fadeIn(250).html(malePopulation.toPrecision(4));
- $('#tooltipFemale').stop(true, true).fadeIn(250).html(femalePopulation.toPrecision(4));
- $('#tooltipRatio').stop(true, true).fadeIn(250).html(ratio.toPrecision(4));
-
- // Since we don't know which axis is rendererd and acive with out a little extra work,
- // just use the supplied ticks array to get the age label.
- $('#tooltipAge').stop(true, true).fadeIn(250).html(ticks[pointIndex]);
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $('.jqplot-target').bind('jqplotDataUnhighlight', function(evt, seriesIndex, pointIndex, data) {
- // clear out all the tooltips.
- $('.tooltip-item').stop(true, true).fadeOut(200).html('');
- });
-
- // add a date at the bottom.
-
- var d = new $.jsDate();
- $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v'));
-
- $("div.chart-container").resizable({delay:20});
-
- $("div.chart-container").bind("resize", function(event, ui) {
- plot1.replot();
- });
-
- });
- </script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
- <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script>
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html
deleted file mode 100755
index 3714fd0c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html
+++ /dev/null
@@ -1,578 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Pyramid Charts 2</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_pyramid.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid_by_age.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
- .chart-container {
- border: 1px solid darkblue;
- padding: 30px;
- width: 600px;
- height: 700px;
- }
-
- #chart1 {
- width: 96%;
- height: 96%;
- }
-
- .jqplot-datestamp {
- font-size: 0.8em;
- color: #777;
- /* margin-top: 1em;
- text-align: right;*/
- font-style: italic;
- position: absolute;
- bottom: 15px;
- right: 15px;
- }
-
- td.controls li {
- list-style-type: none;
- }
-
- td.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- </style>
-
- <table class="app">
- <td class="controls">
-
- <div style="margin-bottom: 15px;">
- Axes:
- <select name="axisPosition">
- <option value="both">Left &amp; Right</option>
- <option value = "left">Left</option>
- <option value = "right">Right</option>
- <option value = "mid">Mid</option>
- </select>
- </div>
-
- <div>
- Background Color:
- <ul>
- <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
- <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
- </ul>
- </div>
-
- <div>
- Pyramid Color:
- <ul>
- <li><input name="seriesColor" value="green" type="radio" checked />Green</li>
- <li><input name="seriesColor" value="blue" type="radio" />Blue</li>
- </ul>
- </div>
-
- <div>
- Grids:
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
- <li><input name="showMinorTicks" value="true" type="checkbox" />Only major</li>
- <li><input name="plotBands" value="true" type="checkbox" />Plot Bands</li>
- </ul>
- </div>
-
- <div>
- <ul>
- <li><input name="barPadding" value="4" type="checkbox" checked />Gap between bars</li>
- <!-- value for showContour is speed at which to fade lines in/out -->
- <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
- </ul>
- </div>
-
- <div class="tooltip">
- <table>
- <tr>
- <td>Age: </td><td><div class="tooltip-item" id="tooltipAge">&nbsp;</div></td>
- </tr>
- <tr>
- <td>Male: </td><td><div class="tooltip-item" id="tooltipMale">&nbsp;</div></td>
- </tr>
- <tr>
- <td>Female: </td><td><div class="tooltip-item" id="tooltipFemale">&nbsp;</div></td>
- </tr>
- <tr>
- <td>Ratio: </td><td><div class="tooltip-item" id="tooltipRatio">&nbsp;</div></td>
- </tr>
- </table>
- </div>
- </td>
-
- <td class="chart">
- <div class="chart-container">
- <div id="chart1"></div>
- <div class="jqplot-datestamp"></div>
- </div>
- </td>
-
- </table>
-
- <pre class="code brush:js"></pre>
-
-
-
- <script class="code" type="text/javascript" language="javascript">
- $(document).ready(function(){
-
- // the "x" values from the data will go into the ticks array.
- // ticks should be strings for this case where we have values like "75+"
- var ticks = ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75+"];
-
- // The "y" values of the data are put into seperate series arrays.
- var male = [4.425251, 5.064975, 4.401382, 3.787731, 2.306403, 3.110203, 2.824716, 3.846422, 3.067799, 2.936013, 2.505067, 2.018346, 1.90446, 1.357237, 0.909704, 0.988836];
- var female = [4.28698, 4.343237, 4.710053, 3.99281, 2.811107, 3.191518, 4.855351, 4.62347, 4.032976, 4.414623, 3.210845, 2.426347, 2.635736, 1.811459, 1.515899, 1.683044];
- var male2 = [1.445677, 2.088224, 2.159879, 2.401152, 3.701622, 3.897444, 5.048783, 4.367545, 3.304588, 3.784367, 3.059088, 2.052513, 1.412907, 0.934326, 0.541234, 0.784258];
- var female2 =[2.238284, 2.974165, 2.360351, 3.03517, 4.80941, 6.229139, 7.257596, 5.847782, 5.226342, 6.201237, 4.474141, 2.769444, 2.048169, 1.47749, 0.87372, 1.193951];
-
- // Custom color arrays are set up for each series to get the look that is desired.
- // Two color arrays are created for the default and optional color which the user can pick.
- var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
- var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
- // To accomodate changing y axis, need to keep track of plot options.
- // changing axes will require recreating the plot, so need to keep
- // track of state changes.
- var plotOptions = {
- // We set up a customized title which acts as labels for the left and right sides of the pyramid.
- title: '<div style="float:left;width:50%;text-align:center">Male</div><div style="float:right;width:50%;text-align:center">Female</div>',
-
- // by default, the series will use the green color scheme.
- seriesColors: greenColors,
-
- grid: {
- drawBorder: false,
- shadow: false,
- background: "white",
- rendererOptions: {
- // plotBands is an option of the pyramidGridRenderer.
- // it will put banding at starting at a specified value
- // along the y axis with an adjustable interval.
- plotBands: {
- show: false,
- interval: 2
- }
- },
- },
-
- // This makes the effective starting value of the axes 0 instead of 1.
- // For display, the y axis will use the ticks we supplied.
- defaultAxisStart: 0,
- seriesDefaults: {
- renderer: $.jqplot.PyramidRenderer,
- rendererOptions: {
- barPadding: 4
- },
- yaxis: "yaxis",
- shadow: false
- },
-
- // We have 4 series, the left and right pyramid bars and
- // the left and rigt overlay lines.
- series: [
- // For pyramid plots, the default side is right.
- // We want to override here to put first set of bars
- // on left.
- {
- rendererOptions:{
- side: 'left',
- synchronizeHighlight: 1
- }
- },
- {
- yaxis: "y2axis",
- rendererOptions:{
- synchronizeHighlight: 0
- }
- },
- // Pyramid series are filled bars by default.
- // The overlay series will be unfilled lines.
- {
- rendererOptions: {
- fill: false,
- side: "left"
- }
- },
- {
- yaxis: "y2axis",
- rendererOptions: {
- fill: false
- }
- }
- ],
-
- // Set up all the y axes, since users are allowed to switch between them.
- // The only axis that will show is the one that the series are "attached" to.
- // We need the appropriate options for the others for when the user switches.
- axes: {
- xaxis: {
- tickOptions: {},
- rendererOptions: {
- baselineWidth: 2
- }
- },
- yaxis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: true,
- baselineWidth: 2
- }
- },
- yMidAxis: {
- label: "Age",
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: true,
- baselineWidth: 2
- }
- },
- y2axis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: true,
- baselineWidth: 2
- }
- }
- }
- };
-
- // initialize form elements
- // set these before attaching event handlers.
-
- $("input[type=checkbox][name=gridsVertical]").attr("checked", true);
- $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true);
- $("input[type=checkbox][name=showMinorTicks]").attr("checked", false);
- $("input[type=checkbox][name=plotBands]").attr("checked", false);
- $("input[type=checkbox][name=showContour]").attr("checked", true);
- $("input[type=checkbox][name=barPadding]").attr("checked", true);
- $("select[name=axisPosition]").val("both");
- $("input[type=radio][name=backgroundColor]").attr("checked", false);
- $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
- $("input[type=radio][name=backgroundColor]").attr("checked", false);
- $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
- $("input[type=radio][name=seriesColor]").attr("checked", false);
- $("input[type=radio][name=seriesColor][value=green]").attr("checked", true);
-
- plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions);
-
- // After plot creation, check to see if contours should be displayed
- checkContour();
-
- //////
- // The followng functions use verbose css selectors to make
- // it clear exactly which elements they are binging to/operating on
- //////
-
- //////
- // Function which checkes if the countour lines checkbox is checked.
- // If not, hide the contour lines.
- //////
- function checkContour() {
- if (!$("input[type=checkbox][name=showContour]").get(0).checked) {
- plot1.series[2].canvas._elem.addClass("jqplot-series-hidden");
- plot1.series[2].canvas._elem.hide();
- plot1.series[3].canvas._elem.addClass("jqplot-series-hidden");
- plot1.series[3].canvas._elem.hide();
- }
- }
-
- $("select[name=axisPosition]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
-
- switch ($(this).val()) {
- case "both":
- plotOptions.series[0].yaxis = "yaxis";
- plotOptions.series[1].yaxis = "y2axis";
- plotOptions.series[2].yaxis = "yaxis";
- plotOptions.series[3].yaxis = "y2axis";
- break;
- case "left":
- plotOptions.series[0].yaxis = "yaxis";
- plotOptions.series[1].yaxis = "yaxis";
- plotOptions.series[2].yaxis = "yaxis";
- plotOptions.series[3].yaxis = "yaxis";
- break;
- case "right":
- plotOptions.series[0].yaxis = "y2axis";
- plotOptions.series[1].yaxis = "y2axis";
- plotOptions.series[2].yaxis = "y2axis";
- plotOptions.series[3].yaxis = "y2axis";
- break;
- case "mid":
- plotOptions.series[0].yaxis = "yMidAxis";
- plotOptions.series[1].yaxis = "yMidAxis";
- plotOptions.series[2].yaxis = "yMidAxis";
- plotOptions.series[3].yaxis = "yMidAxis";
- break;
- default:
- break;
-
- }
-
- plot1.destroy();
- plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions);
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $("input[type=radio][name=backgroundColor]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.grid.background = $(this).val();
- plotOptions.grid.background = $(this).val();
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $("input[type=radio][name=seriesColor]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- if ($(this).val() === "blue") {
- // reset highlight colors so they will be recalculated.
- plot1.series[0].highlightColors = [];
- plot1.series[1].highlightColors = [];
- // reset series color to properly calculate highlight color.
- plot1.series[0].color = blueColors[0];
- plot1.series[1].color = blueColors[1];
- // to actually draw a new color, have to set the color on the shaperenderer.
- plot1.series[0].renderer.shapeRenderer.fillStyle = blueColors[0];
- plot1.series[1].renderer.shapeRenderer.fillStyle = blueColors[1];
- // update plot options state.
- plotOptions.seriesColors = blueColors;
- }
- else if ($(this).val() === "green") {
- // reset highlight colors so they will be recalculated.
- plot1.series[0].highlightColors = [];
- plot1.series[1].highlightColors = [];
- // reset series color to properly calculate highlight color.
- plot1.series[0].color = greenColors[0];
- plot1.series[1].color = greenColors[1];
- // to actually draw a new color, have to set the color on the shaperenderer.
- plot1.series[0].renderer.shapeRenderer.fillStyle = greenColors[0];
- plot1.series[1].renderer.shapeRenderer.fillStyle = greenColors[1];
- // update plot options state.
- plotOptions.seriesColors = blueColors;
- }
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
-
- $("input[type=checkbox][name=gridsVertical]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.axes.xaxis.tickOptions.showGridline = this.checked;
- plotOptions.axes.xaxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $("input[type=checkbox][name=gridsHorizontal]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.axes.yaxis.tickOptions.showGridline = this.checked;
- plot1.axes.y2axis.tickOptions.showGridline = this.checked;
- plot1.axes.yMidAxis.tickOptions.showGridline = this.checked;
- plotOptions.axes.yaxis.tickOptions.showGridline = this.checked;
- plotOptions.axes.y2axis.tickOptions.showGridline = this.checked;
- plotOptions.axes.yMidAxis.tickOptions.showGridline = this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $("input[type=checkbox][name=showMinorTicks]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.axes.yaxis.showMinorTicks = !this.checked;
- plot1.axes.y2axis.showMinorTicks = !this.checked;
- plot1.axes.yMidAxis.showMinorTicks = !this.checked;
- plotOptions.axes.yaxis.showMinorTicks = !this.checked;
- plotOptions.axes.y2axis.showMinorTicks = !this.checked;
- plotOptions.axes.yMidAxis.showMinorTicks = !this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $("input[type=checkbox][name=plotBands]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- plot1.grid.plotBands.show = this.checked;
- plotOptions.grid.rendererOptions.plotBands.show = this.checked;
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- $("input[type=checkbox][name=showContour]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var speed = $(this).val();
- if (this.checked) {
- plot1.series[2].canvas._elem.removeClass("jqplot-series-hidden");
- plot1.series[2].canvas._elem.fadeIn(speed);
- plot1.series[3].canvas._elem.removeClass("jqplot-series-hidden");
- plot1.series[3].canvas._elem.fadeIn(speed);
- }
- else {
- plot1.series[2].canvas._elem.addClass("jqplot-series-hidden");
- plot1.series[2].canvas._elem.fadeOut(speed);
- plot1.series[3].canvas._elem.addClass("jqplot-series-hidden");
- plot1.series[3].canvas._elem.fadeOut(speed);
- }
- });
-
- $("input[type=checkbox][name=barPadding]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- if (this.checked) {
- var val = parseFloat($(this).val());
- plot1.series[0].barPadding = val;
- plot1.series[1].barPadding = val;
- plotOptions.seriesDefaults.rendererOptions.barPadding = val;
- }
- else {
- plot1.series[0].barPadding = 0;
- plot1.series[1].barPadding = 0;
- plotOptions.seriesDefaults.rendererOptions.barPadding = 0;
- }
- plot1.replot();
- // Finally, check to see if we need to hide contour lines.
- checkContour();
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
- // Here, assume first series is male poulation and second series is female population.
- // Adjust series indices as appropriate.
- var malePopulation = Math.abs(plot1.series[0].data[pointIndex][1]);
- var femalePopulation = Math.abs(plot1.series[1].data[pointIndex][1]);
- var ratio = femalePopulation / malePopulation * 100;
-
- $("#tooltipMale").stop(true, true).fadeIn(250).html(malePopulation.toPrecision(4));
- $("#tooltipFemale").stop(true, true).fadeIn(250).html(femalePopulation.toPrecision(4));
- $("#tooltipRatio").stop(true, true).fadeIn(250).html(ratio.toPrecision(4));
-
- // Since we don't know which axis is rendererd and acive with out a little extra work,
- // just use the supplied ticks array to get the age label.
- $("#tooltipAge").stop(true, true).fadeIn(250).html(ticks[pointIndex]);
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
- // clear out all the tooltips.
- $(".tooltip-item").stop(true, true).fadeOut(200).html('');
- });
-
- // add a date at the bottom.
-
- var d = new $.jsDate();
- $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
- $("div.chart-container").resizable({delay:20});
-
- $("div.chart-container").bind("resize", function(event, ui) {
- plot1.replot();
- });
-
- });
- </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
- <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script>
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html
deleted file mode 100755
index 7fbf935e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html
+++ /dev/null
@@ -1,859 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Pyramid Chart By Age</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
- <link href="colorpicker/jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
-
- <style type="text/css">
-
- html {
- width: 100%;
- height: 100%;
- }
-
- body {
- width: 98%;
- height: 97%;
- margin: 6px;
- }
-
- .quintile-outer-container {
- width: 97%;
- height: 97%;
- margin: auto;
- }
-
- .jqplot-chart {
-/* width: 400px;
- height: 400px;*/
- }
-
- .quintile-toolbar .ui-icon {
- float: right;
- margin: 3px 5px;
- }
-
- table.stats-table td, table.highlighted-stats-table td {
- background-color: rgb(230, 230, 230);
- padding: 0.5em;
- }
-
- col.label {
- width: 14em;
- }
-
- col.value {
- width: 7em;
- }
-
- td.quintile-value {
- width: 7em;
- text-align: right;
- }
-
- table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header {
- background-color: rgb(200, 200, 200);
- }
-
- table.stats-table, table.highlighted-stats-table, td.contour-cell {
- font-size: 0.7em;
- }
-
- td.contour-cell {
- height: 1.5em;
- padding-left: 20px;
- padding-bottom: 1.5em;
- }
-
- table.highlighted-stats-table {
- margin-top: 15px;
- }
-
- div.stats-cell div.input {
- font-size: 0.7em;
- margin-top: 1.5em;
- }
-
- div.content-container {
- padding-left: 230px; /* LC width */
- padding-right: 300px; /* RC width */
- height: 100%;
- }
-
- div.content-container .column {
- position: relative;
- float: left;
- }
-
- div.controls {
- width: 170px; /* LC width */
- right: 230px; /* LC width */
- padding-left: 30px;
- padding-right: 30px;
- margin-left: -100%;
- margin-top: 30px;
- }
-
- div.chart-cell {
- width: 100%;
- height: 100%;
- }
-
- div.stats-cell {
- width: 270px; /* RC width */
- margin-right: -300px; /* RC width */
- padding-right: 30px;
- margin-top: 30px;
- }
-
- div.controls, div.controls select {
- font-size: 0.8em;
- }
-
- div.controls li {
- list-style-type: none;
- }
-
- div.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- div.overlay-chart-container {
- display: none;
- z-index: 11;
- position: fixed;
- width: 800px;
- left: 50%;
- margin-left: -400px;
- background-color: white;
- }
-
- div.overlay-chart-container div.ui-icon {
- float: right;
- margin: 3px 5px;
- }
-
- div.overlay-shadow {
- display: none;
- z-index: 10;
- background-color: rgba(0, 0, 0, 0.8);
- position: fixed;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 100%;
- }
-
- div.ui-colorpicker div.ui-dialog-titlebar {
- padding: 0.1em 0.3em;
- }
-
- input.color {
- display: none;
- }
-
- div.colorpicker-container span {
- padding: 3px;
- }
-
- div.quintile-content {
- width: 100%;
- height: 100%;
- }
-
-
- @media print {
- div.stats-cell {
- vertical-align: top;
- padding-top: 35px;
- }
-
- table.stats-table, table.stats-table td {
- color: #aaaaaa;
- border: 1px solid #bbbbbb;
- border-collapse: collapse;
- }
-
- table.stats-table tr {
- font-family: Verdana,Arial,sans-serif;
- /*font-size: 0.7em;*/
- }
- }
-
- </style>
-
-
-</head>
-<body>
-
-<!-- Example scripts go here -->
-
-
- <div class="overlay-shadow"></div>
-
- <div class="overlay-chart-container ui-corner-all">
- <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div>
- <div class="overlay-chart-container-content ui-corner-bottom"></div>
- </div>
-
- <div class="quintile-outer-container ui-widget ui-corner-all">
- <div class="quintile-toolbar ui-widget-header ui-corner-top">
- <span class="quintile-title">Income Level:</span>
- </div>
- <div class="quintile-content ui-widget-content ui-corner-bottom">
-
- <div class="content-container">
-
-
- <div class="chart-cell column">
- <div id="agesChart" class="jqplot-chart"></div>
- </div>
-
- <div class="controls column">
- <table>
- <tr>
- <td>
- Axes:
- </td>
- <td>
- <select name="axisPosition">
- <option value="both">Left &amp; Right</option>
- <option value = "left">Left</option>
- <option value = "right">Right</option>
- <option value = "mid">Mid</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- Colors:
- </td>
- <td>
- <ul>
- <li><input class="color" type="color" id="colorMale" /> Male</li>
- <li><input class="color" type="color" id="colorFemale" /> Female</li>
- <li><input class="color" type="color" id="colorBackground" /> Background</li>
- <li><input class="color" type="color" id="colorPlotBands" /> Plot Bands</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>
- Grids:
- </td>
- <td>
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" />Horizontal</li>
- <li><input name="showMinorTicks" value="true" type="checkbox" checked />Only major</li>
- <li><input name="plotBands" value="true" type="checkbox" checked />Plot Bands</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <ul>
- <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li>
- <!-- value for showContour is speed at which to fade lines in/out -->
- <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
- </ul>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="stats-cell column">
- <table class="stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr>
- <td class="ui-corner-tl">Mean Age:</td>
- <td class="quintile-value summary-meanAge ui-corner-tr"></td>
- </tr>
- <tr>
- <td>Sex Ratio:</td>
- <td class="quintile-value summary-sexRatio"></td>
- </tr>
- <tr>
- <td>Age Dependency Ratio:</td>
- <td class="quintile-value summary-ageDependencyRatio"></td>
- </tr>
- <tr>
- <td>Population, Total:</td>
- <td class="quintile-value summary-populationTotal"></td>
- </tr>
- <tr>
- <td>Population, Male:</td>
- <td class="quintile-value summary-populationMale"></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Population, Female:</td>
- <td class="quintile-value summary-populationFemale ui-corner-br"></td>
- </tr>
- </tbody>
- </table>
- <table class="highlighted-stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr class="tooltip-header">
- <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Age: <span class="tooltip-item tooltipAge">&nbsp;</span></td>
- </tr>
- <tr>
- <td>Population, Male: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipMale">&nbsp;</span></td>
- </tr>
- <tr>
- <td>Population, Female: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipFemale">&nbsp;</span></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Sex Ratio: </td>
- <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio">&nbsp;</span></td>
- </tr>
- <tbody>
- </table>
- </div>
-
- </div>
-
- </div>
- </div>
-
-
-
- <script class="code" type="text/javascript">
- $(document).ready(function(){
-
- // if browser supports canvas, show additional toolbar icons
- if (!$.jqplot.use_excanvas) {
- $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>');
- }
-
- // for this demo, all data is same for each quintile.
- // could do something like this to get the index of the quintile.
- // <!-- var quintileIndex = parseInt(< ? php echo $_GET["qidx"]; ? >); -->
-
- var male;
- var female;
- var summaryTable;
- var sexRatios;
- jsondata = [];
-
- $.ajax({
- type: "GET",
- dataType: 'json',
- async: false,
- url: "ages.json",
- contentType: "application/json",
- success: function (retdata) {
- // array of arrays of data for each quintile
- // each quintile array has data for following:
- // 0: summary table
- // 1: male data
- // 2: female data
- // 3: ratios
- jsondata = retdata;
- },
- error: function (xhr) { console.log("ERROR: ", xhr.statusText) }
- });
-
-
- // the "x" values from the data will go into the ticks array.
- // ticks should be strings for this case where we have values like "75+"
- var ticks = jsondata[4];
-
- $('td.summary-meanAge').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][3]));
- });
-
- $('td.summary-sexRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[3][0]));
- });
-
- $('td.summary-ageDependencyRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][6]));
- });
-
- $('td.summary-populationTotal').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][0]));
- });
-
- $('td.summary-populationMale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][1]));
- });
-
- $('td.summary-populationFemale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][2]));
- });
-
- // These two variables should be removed outside of the jqplot.com example environment.
- $.jqplot._noToImageButton = true;
- $.jqplot._noCodeBlock = true;
-
- // Custom color arrays are set up for each series to get the look that is desired.
- // Two color arrays are created for the default and optional color which the user can pick.
- var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
- var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
- // To accomodate changing y axis, need to keep track of plot options.
- // changing axes will require recreating the plot, so need to keep
- // track of state changes.
- var plotOptions = {
- // We set up a customized title which acts as labels for the left and right sides of the pyramid.
- title: {
- text: '<span style="margin-left:25%;">Male</span><span style="margin-left:33%;">Female</span>',
- textAlign: 'left'
- },
- // by default, the series will use the green color scheme.
- seriesColors: greenColors,
-
- grid: {
- drawBorder: false,
- shadow: false,
- background: "#ffffff",
- rendererOptions: {
- // plotBands is an option of the pyramidGridRenderer.
- // it will put banding at starting at a specified value
- // along the y axis with an adjustable interval.
- plotBands: {
- show: true,
- interval: 10,
- color: 'rgb(245, 235, 215)'
- }
- }
- },
-
- // This makes the effective starting value of the axes 0 instead of 1.
- // For display, the y axis will use the ticks we supplied.
- defaultAxisStart: 0,
- seriesDefaults: {
- renderer: $.jqplot.PyramidRenderer,
- rendererOptions: {
- barPadding: 1.5,
- offsetBars: true
- },
- yaxis: "yaxis",
- shadow: false
- },
-
- // We have 4 series, the left and right pyramid bars and
- // the left and rigt overlay lines.
- series: [
- // For pyramid plots, the default side is right.
- // We want to override here to put first set of bars
- // on left.
- {
- rendererOptions:{
- side: "left",
- synchronizeHighlight: 1
- }
- },
- {
- yaxis: "y2axis",
- rendererOptions: {
- synchronizeHighlight: 0
- }
- },
- {
- rendererOptions: {
- fill: false,
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis',
- rendererOptions: {
- fill: false
- }
- }
- ],
- axesDefaults: {
- tickOptions: {
- showGridline: false
- },
- pad: 0,
- rendererOptions: {
- baselineWidth: 2
- }
- },
-
- // Set up all the y axes, since users are allowed to switch between them.
- // The only axis that will show is the one that the series are "attached" to.
- // We need the appropriate options for the others for when the user switches.
- axes: {
- xaxis: {
- tickOptions: {
- formatter: $.jqplot.PercentTickFormatter,
- formatString: '%.1f%%'
- }
- },
- yaxis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- },
- yMidAxis: {
- label: "Age",
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- },
- y2axis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- }
- }
- };
-
- // resize the chart container to fill the space
- $('#agesChart').height($('div.chart-cell').height()*0.96);
- $('#agesChart').width($('div.chart-cell').width()*0.97);
-
- // $('#agesChart').jqplot([jsondata[1], jsondata[2]], plotOptions);
- $.jqplot.config.addDomReference = true;
- var plot1 = $.jqplot('agesChart', [jsondata[1], jsondata[2]], plotOptions);
-
- $(window).resize (function(event, ui) {
- // pass in resetAxes: true option to get rid of old ticks and axis properties
- // which should be recomputed based on new plot size.
- $('#agesChart').height($('div.chart-cell').height()*0.96);
- $('#agesChart').width($('div.chart-cell').width()*0.97);
- plot1.replot( { resetAxes: true } );
- });
-
- // initialize form elements
- // set these before attaching event handlers.
-
- $("input[type=checkbox][name=gridsVertical]").attr("checked", false);
- $("input[type=checkbox][name=gridsHorizontal]").attr("checked", false);
- $("input[type=checkbox][name=showMinorTicks]").attr("checked", true);
- $("input[type=checkbox][name=plotBands]").attr("checked", true);
- $("input[type=checkbox][name=showContour]").attr("checked", true);
- $("input[type=checkbox][name=barPadding]").attr("checked", true);
- $("select[name=axisPosition]").val("both");
-
- //////
- // The followng functions use verbose css selectors to make
- // it clear exactly which elements they are binging to/operating on
- //////
-
- $("select[name=axisPosition]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
-
- var opts = {series:[{}, {}, {}, {}]};
-
- switch ($(this).val()) {
- case "both":
- opts.series[0].yaxis = "yaxis";
- opts.series[1].yaxis = "y2axis";
- opts.series[2].yaxis = "yaxis";
- opts.series[3].yaxis = "y2axis";
- break;
- case "left":
- opts.series[0].yaxis = "yaxis";
- opts.series[1].yaxis = "yaxis";
- opts.series[2].yaxis = "yaxis";
- opts.series[3].yaxis = "yaxis";
- break;
- case "right":
- opts.series[0].yaxis = "y2axis";
- opts.series[1].yaxis = "y2axis";
- opts.series[2].yaxis = "y2axis";
- opts.series[3].yaxis = "y2axis";
- break;
- case "mid":
- opts.series[0].yaxis = "yMidAxis";
- opts.series[1].yaxis = "yMidAxis";
- opts.series[2].yaxis = "yMidAxis";
- opts.series[3].yaxis = "yMidAxis";
- break;
- default:
- break;
-
- }
-
- plot1.replot(opts);
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function(index){
- $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
- // Here, assume first series is male poulation and second series is female population.
- // Adjust series indices as appropriate.
- var plot = $(this).data('jqplot');
- var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * jsondata[0][1];
- var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * jsondata[0][2];
- var malePopulation = jsondata[1][pointIndex] * jsondata[0][1];
- var femalePopulation = jsondata[2][pointIndex] * jsondata[0][2];
- // var ratio = femalePopulation / malePopulation * 100;
- var ratio = jsondata[3][pointIndex];
-
- $('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation));
- $('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation));
- $('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio));
-
- // Since we don't know which axis is rendererd and acive with out a little extra work,
- // just use the supplied ticks array to get the age label.
- $('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]);
- });
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function() {
- $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
- // clear out all the tooltips.
- $(".tooltip-item").fadeOut(250);
- });
- });
-
- $('.ui-icon-print').click(function(){
- $(this).parent().next().print();
- });
-
-
- $("input[type=checkbox][name=gridsVertical]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {axes: {xaxis: {tickOptions: {showGridline: this.checked}}}};
- plot1.replot(opts);
- });
-
-
- $("input[type=checkbox][name=gridsHorizontal]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {
- axes: {
- yaxis: {
- tickOptions: {showGridline: this.checked}
- },
- y2axis: {
- tickOptions: {showGridline: this.checked}
- },
- yMidAxis: {
- tickOptions: {showGridline: this.checked}
- }
- }
- };
- plot1.replot(opts);
- });
-
- $("input[type=checkbox][name=plotBands]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {grid:{ rendererOptions: {plotBands: { show: this.checked}}}};
- plot1.replot(opts);
- });
-
- ////
- // To-Do
- //
- // initialize form elements on reload.
- // figure out what overlay line would be.
- // have to adjust ticks to do show minor.
- // make like kcp_pyramid.php
- ////
- $("input[type=checkbox][name=showMinorTicks]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {
- axes: {
- yaxis: {
- showMinorTicks: !this.checked
- },
- y2axis: {
- showMinorTicks: !this.checked
- },
- yMidAxis: {
- showMinorTicks: !this.checked
- }
- }
- };
- plot1.replot(opts);
- });
-
- $("input[type=checkbox][name=barPadding]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- if (this.checked) {
- var val = parseFloat($(this).val());
- var opts = {
- seriesDefaults: {
- rendererOptions: {
- barPadding: val
- }
- }
- };
- }
- else {
- var opts = {
- seriesDefaults: {
- rendererOptions: {
- barPadding: 0
- }
- }
- };
- }
- plot1.replot(opts);
- });
-
-
- $('.ui-icon-image').each(function() {
- $(this).bind('click', function(evt) {
- var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
- var imgelem = chart.jqplotToImageElem();
- var div = $('div.overlay-chart-container-content');
- div.empty();
- div.append(imgelem);
- $('div.overlay-shadow').fadeIn(600);
- div.parent().fadeIn(1000);
- div = null;
- });
- });
-
- $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){
- var div = $('div.overlay-chart-container-content');
- div.parent().fadeOut(600);
- $('div.overlay-shadow').fadeOut(1000);
- });
-
- function applyColors () {
- var opts = {series:[{}, {}], grid:{rendererOptions:{plotBands:{}}}};
- opts.series[0].color = $('#colorMale').data('colorpicker').color.toCSS();
- opts.series[1].color = $('#colorFemale').data('colorpicker').color.toCSS();
- opts.grid.background = $('#colorBackground').data('colorpicker').color.toCSS();
- opts.grid.rendererOptions.plotBands.color = $('#colorPlotBands').data('colorpicker').color.toCSS();
-
- plot1.replot(opts);
-
- };
-
- // $('#colorMale').val(plot1.series[0].color);
-
- $('#colorMale').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.series[0].color,
- onClose: applyColors
-
- });
-
- $('#colorFemale').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.series[1].color,
- onClose: applyColors
-
- });
-
- $('#colorBackground').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.grid.background,
- onClose: applyColors
-
- });
-
- $('#colorPlotBands').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.grid.plotBands.color,
- onClose: applyColors
-
- });
-
- });
- </script>
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
- <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script>
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.json2.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
- <script class="include" type="text/javascript" src="kcp.print.js"></script>
-
- <script src="colorpicker/jquery.colorpicker.js"></script>
-
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php
deleted file mode 100755
index 6e6bb3ba..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php
+++ /dev/null
@@ -1,862 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-<?php
- $title = "Pyramid Chart By Age";
-?>
-
- <title><?php print $title ?></title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.css" />
- <link rel="stylesheet" type="text/css" href="examples.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
- <link href="colorpicker/jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
-
- <style type="text/css">
-
- html {
- width: 100%;
- height: 100%;
- }
-
- body {
- width: 98%;
- height: 97%;
- margin: 6px;
- }
-
- .quintile-outer-container {
- width: 97%;
- height: 97%;
- margin: auto;
- }
-
- .jqplot-chart {
-/* width: 400px;
- height: 400px;*/
- }
-
- .quintile-toolbar .ui-icon {
- float: right;
- margin: 3px 5px;
- }
-
- table.stats-table td, table.highlighted-stats-table td {
- background-color: rgb(230, 230, 230);
- padding: 0.5em;
- }
-
- col.label {
- width: 14em;
- }
-
- col.value {
- width: 7em;
- }
-
- td.quintile-value {
- width: 7em;
- text-align: right;
- }
-
- table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header {
- background-color: rgb(200, 200, 200);
- }
-
- table.stats-table, table.highlighted-stats-table, td.contour-cell {
- font-size: 0.7em;
- }
-
- td.contour-cell {
- height: 1.5em;
- padding-left: 20px;
- padding-bottom: 1.5em;
- }
-
- table.highlighted-stats-table {
- margin-top: 15px;
- }
-
- div.stats-cell div.input {
- font-size: 0.7em;
- margin-top: 1.5em;
- }
-
- div.content-container {
- padding-left: 230px; /* LC width */
- padding-right: 300px; /* RC width */
- height: 100%;
- }
-
- div.content-container .column {
- position: relative;
- float: left;
- }
-
- div.controls {
- width: 170px; /* LC width */
- right: 230px; /* LC width */
- padding-left: 30px;
- padding-right: 30px;
- margin-left: -100%;
- margin-top: 30px;
- }
-
- div.chart-cell {
- width: 100%;
- height: 100%;
- }
-
- div.stats-cell {
- width: 270px; /* RC width */
- margin-right: -300px; /* RC width */
- padding-right: 30px;
- margin-top: 30px;
- }
-
- div.controls, div.controls select {
- font-size: 0.8em;
- }
-
- div.controls li {
- list-style-type: none;
- }
-
- div.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
-
- div.overlay-chart-container {
- display: none;
- z-index: 11;
- position: fixed;
- width: 800px;
- left: 50%;
- margin-left: -400px;
- background-color: white;
- }
-
- div.overlay-chart-container div.ui-icon {
- float: right;
- margin: 3px 5px;
- }
-
- div.overlay-shadow {
- display: none;
- z-index: 10;
- background-color: rgba(0, 0, 0, 0.8);
- position: fixed;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 100%;
- }
-
- div.ui-colorpicker div.ui-dialog-titlebar {
- padding: 0.1em 0.3em;
- }
-
- input.color {
- display: none;
- }
-
- div.colorpicker-container span {
- padding: 3px;
- }
-
- div.quintile-content {
- width: 100%;
- height: 100%;
- }
-
-
- @media print {
- div.stats-cell {
- vertical-align: top;
- padding-top: 35px;
- }
-
- table.stats-table, table.stats-table td {
- color: #aaaaaa;
- border: 1px solid #bbbbbb;
- border-collapse: collapse;
- }
-
- table.stats-table tr {
- font-family: Verdana,Arial,sans-serif;
- /*font-size: 0.7em;*/
- }
- }
-
- </style>
-
-
-</head>
-<body>
-
-<!-- Example scripts go here -->
-
-
- <div class="overlay-shadow"></div>
-
- <div class="overlay-chart-container ui-corner-all">
- <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div>
- <div class="overlay-chart-container-content ui-corner-bottom"></div>
- </div>
-
- <div class="quintile-outer-container ui-widget ui-corner-all">
- <div class="quintile-toolbar ui-widget-header ui-corner-top">
- <span class="quintile-title">Income Level:</span>
- </div>
- <div class="quintile-content ui-widget-content ui-corner-bottom">
-
- <div class="content-container">
-
-
- <div class="chart-cell column">
- <div id="agesChart" class="jqplot-chart"></div>
- </div>
-
- <div class="controls column">
- <table>
- <tr>
- <td>
- Axes:
- </td>
- <td>
- <select name="axisPosition">
- <option value="both">Left &amp; Right</option>
- <option value = "left">Left</option>
- <option value = "right">Right</option>
- <option value = "mid">Mid</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- Colors:
- </td>
- <td>
- <ul>
- <li><input class="color" type="color" id="colorMale" /> Male</li>
- <li><input class="color" type="color" id="colorFemale" /> Female</li>
- <li><input class="color" type="color" id="colorBackground" /> Background</li>
- <li><input class="color" type="color" id="colorPlotBands" /> Plot Bands</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>
- Grids:
- </td>
- <td>
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" />Horizontal</li>
- <li><input name="showMinorTicks" value="true" type="checkbox" checked />Only major</li>
- <li><input name="plotBands" value="true" type="checkbox" checked />Plot Bands</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <ul>
- <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li>
- <!-- value for showContour is speed at which to fade lines in/out -->
- <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
- </ul>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="stats-cell column">
- <table class="stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr>
- <td class="ui-corner-tl">Mean Age:</td>
- <td class="quintile-value summary-meanAge ui-corner-tr"></td>
- </tr>
- <tr>
- <td>Sex Ratio:</td>
- <td class="quintile-value summary-sexRatio"></td>
- </tr>
- <tr>
- <td>Age Dependency Ratio:</td>
- <td class="quintile-value summary-ageDependencyRatio"></td>
- </tr>
- <tr>
- <td>Population, Total:</td>
- <td class="quintile-value summary-populationTotal"></td>
- </tr>
- <tr>
- <td>Population, Male:</td>
- <td class="quintile-value summary-populationMale"></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Population, Female:</td>
- <td class="quintile-value summary-populationFemale ui-corner-br"></td>
- </tr>
- </tbody>
- </table>
- <table class="highlighted-stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr class="tooltip-header">
- <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Age: <span class="tooltip-item tooltipAge">&nbsp;</span></td>
- </tr>
- <tr>
- <td>Population, Male: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipMale">&nbsp;</span></td>
- </tr>
- <tr>
- <td>Population, Female: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipFemale">&nbsp;</span></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Sex Ratio: </td>
- <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio">&nbsp;</span></td>
- </tr>
- <tbody>
- </table>
- </div>
-
- </div>
-
- </div>
- </div>
-
-
-
- <script class="code" type="text/javascript">
- $(document).ready(function(){
-
- // if browser supports canvas, show additional toolbar icons
- if (!$.jqplot.use_excanvas) {
- $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>');
- }
-
- // for this demo, all data is same for each quintile.
- // could do something like this to get the index of the quintile.
- // <!-- var quintileIndex = parseInt(< ? php echo $_GET["qidx"]; ? >); -->
-
- var male;
- var female;
- var summaryTable;
- var sexRatios;
- jsondata = [];
-
- $.ajax({
- type: "GET",
- dataType: 'json',
- async: false,
- url: "ages.json",
- contentType: "application/json",
- success: function (retdata) {
- // array of arrays of data for each quintile
- // each quintile array has data for following:
- // 0: summary table
- // 1: male data
- // 2: female data
- // 3: ratios
- jsondata = retdata;
- },
- error: function (xhr) { console.log("ERROR: ", xhr.statusText) }
- });
-
-
- // the "x" values from the data will go into the ticks array.
- // ticks should be strings for this case where we have values like "75+"
- var ticks = jsondata[4];
-
- $('td.summary-meanAge').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][3]));
- });
-
- $('td.summary-sexRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[3][0]));
- });
-
- $('td.summary-ageDependencyRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][6]));
- });
-
- $('td.summary-populationTotal').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][0]));
- });
-
- $('td.summary-populationMale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][1]));
- });
-
- $('td.summary-populationFemale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][2]));
- });
-
- // These two variables should be removed outside of the jqplot.com example environment.
- $.jqplot._noToImageButton = true;
- $.jqplot._noCodeBlock = true;
-
- // Custom color arrays are set up for each series to get the look that is desired.
- // Two color arrays are created for the default and optional color which the user can pick.
- var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
- var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
- // To accomodate changing y axis, need to keep track of plot options.
- // changing axes will require recreating the plot, so need to keep
- // track of state changes.
- var plotOptions = {
- // We set up a customized title which acts as labels for the left and right sides of the pyramid.
- title: {
- text: '<span style="margin-left:25%;">Male</span><span style="margin-left:33%;">Female</span>',
- textAlign: 'left'
- },
- // by default, the series will use the green color scheme.
- seriesColors: greenColors,
-
- grid: {
- drawBorder: false,
- shadow: false,
- background: "#ffffff",
- rendererOptions: {
- // plotBands is an option of the pyramidGridRenderer.
- // it will put banding at starting at a specified value
- // along the y axis with an adjustable interval.
- plotBands: {
- show: true,
- interval: 10,
- color: 'rgb(245, 235, 215)'
- }
- }
- },
-
- // This makes the effective starting value of the axes 0 instead of 1.
- // For display, the y axis will use the ticks we supplied.
- defaultAxisStart: 0,
- seriesDefaults: {
- renderer: $.jqplot.PyramidRenderer,
- rendererOptions: {
- barPadding: 1.5,
- offsetBars: true
- },
- yaxis: "yaxis",
- shadow: false
- },
-
- // We have 4 series, the left and right pyramid bars and
- // the left and rigt overlay lines.
- series: [
- // For pyramid plots, the default side is right.
- // We want to override here to put first set of bars
- // on left.
- {
- rendererOptions:{
- side: "left",
- synchronizeHighlight: 1
- }
- },
- {
- yaxis: "y2axis",
- rendererOptions: {
- synchronizeHighlight: 0
- }
- },
- {
- rendererOptions: {
- fill: false,
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis',
- rendererOptions: {
- fill: false
- }
- }
- ],
- axesDefaults: {
- tickOptions: {
- showGridline: false
- },
- pad: 0,
- rendererOptions: {
- baselineWidth: 2
- }
- },
-
- // Set up all the y axes, since users are allowed to switch between them.
- // The only axis that will show is the one that the series are "attached" to.
- // We need the appropriate options for the others for when the user switches.
- axes: {
- xaxis: {
- tickOptions: {
- formatter: $.jqplot.PercentTickFormatter,
- formatString: '%.1f%%'
- }
- },
- yaxis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- },
- yMidAxis: {
- label: "Age",
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- },
- y2axis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- }
- }
- };
-
- // resize the chart container to fill the space
- $('#agesChart').height($('div.chart-cell').height()*0.96);
- $('#agesChart').width($('div.chart-cell').width()*0.97);
-
- // $('#agesChart').jqplot([jsondata[1], jsondata[2]], plotOptions);
- $.jqplot.config.addDomReference = true;
- var plot1 = $.jqplot('agesChart', [jsondata[1], jsondata[2]], plotOptions);
-
- $(window).resize (function(event, ui) {
- // pass in resetAxes: true option to get rid of old ticks and axis properties
- // which should be recomputed based on new plot size.
- $('#agesChart').height($('div.chart-cell').height()*0.96);
- $('#agesChart').width($('div.chart-cell').width()*0.97);
- plot1.replot( { resetAxes: true } );
- });
-
- // initialize form elements
- // set these before attaching event handlers.
-
- $("input[type=checkbox][name=gridsVertical]").attr("checked", false);
- $("input[type=checkbox][name=gridsHorizontal]").attr("checked", false);
- $("input[type=checkbox][name=showMinorTicks]").attr("checked", true);
- $("input[type=checkbox][name=plotBands]").attr("checked", true);
- $("input[type=checkbox][name=showContour]").attr("checked", true);
- $("input[type=checkbox][name=barPadding]").attr("checked", true);
- $("select[name=axisPosition]").val("both");
-
- //////
- // The followng functions use verbose css selectors to make
- // it clear exactly which elements they are binging to/operating on
- //////
-
- $("select[name=axisPosition]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
-
- var opts = {series:[{}, {}, {}, {}]};
-
- switch ($(this).val()) {
- case "both":
- opts.series[0].yaxis = "yaxis";
- opts.series[1].yaxis = "y2axis";
- opts.series[2].yaxis = "yaxis";
- opts.series[3].yaxis = "y2axis";
- break;
- case "left":
- opts.series[0].yaxis = "yaxis";
- opts.series[1].yaxis = "yaxis";
- opts.series[2].yaxis = "yaxis";
- opts.series[3].yaxis = "yaxis";
- break;
- case "right":
- opts.series[0].yaxis = "y2axis";
- opts.series[1].yaxis = "y2axis";
- opts.series[2].yaxis = "y2axis";
- opts.series[3].yaxis = "y2axis";
- break;
- case "mid":
- opts.series[0].yaxis = "yMidAxis";
- opts.series[1].yaxis = "yMidAxis";
- opts.series[2].yaxis = "yMidAxis";
- opts.series[3].yaxis = "yMidAxis";
- break;
- default:
- break;
-
- }
-
- plot1.replot(opts);
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function(index){
- $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
- // Here, assume first series is male poulation and second series is female population.
- // Adjust series indices as appropriate.
- var plot = $(this).data('jqplot');
- var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * jsondata[0][1];
- var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * jsondata[0][2];
- var malePopulation = jsondata[1][pointIndex] * jsondata[0][1];
- var femalePopulation = jsondata[2][pointIndex] * jsondata[0][2];
- // var ratio = femalePopulation / malePopulation * 100;
- var ratio = jsondata[3][pointIndex];
-
- $('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation));
- $('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation));
- $('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio));
-
- // Since we don't know which axis is rendererd and acive with out a little extra work,
- // just use the supplied ticks array to get the age label.
- $('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]);
- });
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function() {
- $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
- // clear out all the tooltips.
- $(".tooltip-item").fadeOut(250);
- });
- });
-
- $('.ui-icon-print').click(function(){
- $(this).parent().next().print();
- });
-
-
- $("input[type=checkbox][name=gridsVertical]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {axes: {xaxis: {tickOptions: {showGridline: this.checked}}}};
- plot1.replot(opts);
- });
-
-
- $("input[type=checkbox][name=gridsHorizontal]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {
- axes: {
- yaxis: {
- tickOptions: {showGridline: this.checked}
- },
- y2axis: {
- tickOptions: {showGridline: this.checked}
- },
- yMidAxis: {
- tickOptions: {showGridline: this.checked}
- }
- }
- };
- plot1.replot(opts);
- });
-
- $("input[type=checkbox][name=plotBands]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {grid:{ rendererOptions: {plotBands: { show: this.checked}}}};
- plot1.replot(opts);
- });
-
- ////
- // To-Do
- //
- // initialize form elements on reload.
- // figure out what overlay line would be.
- // have to adjust ticks to do show minor.
- // make like kcp_pyramid.php
- ////
- $("input[type=checkbox][name=showMinorTicks]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {
- axes: {
- yaxis: {
- showMinorTicks: !this.checked
- },
- y2axis: {
- showMinorTicks: !this.checked
- },
- yMidAxis: {
- showMinorTicks: !this.checked
- }
- }
- };
- plot1.replot(opts);
- });
-
- $("input[type=checkbox][name=barPadding]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- if (this.checked) {
- var val = parseFloat($(this).val());
- var opts = {
- seriesDefaults: {
- rendererOptions: {
- barPadding: val
- }
- }
- };
- }
- else {
- var opts = {
- seriesDefaults: {
- rendererOptions: {
- barPadding: 0
- }
- }
- };
- }
- plot1.replot(opts);
- });
-
-
- $('.ui-icon-image').each(function() {
- $(this).bind('click', function(evt) {
- var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
- var imgelem = chart.jqplotToImageElem();
- var div = $('div.overlay-chart-container-content');
- div.empty();
- div.append(imgelem);
- $('div.overlay-shadow').fadeIn(600);
- div.parent().fadeIn(1000);
- div = null;
- });
- });
-
- $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){
- var div = $('div.overlay-chart-container-content');
- div.parent().fadeOut(600);
- $('div.overlay-shadow').fadeOut(1000);
- });
-
- function applyColors () {
- var opts = {series:[{}, {}], grid:{rendererOptions:{plotBands:{}}}};
- opts.series[0].color = $('#colorMale').data('colorpicker').color.toCSS();
- opts.series[1].color = $('#colorFemale').data('colorpicker').color.toCSS();
- opts.grid.background = $('#colorBackground').data('colorpicker').color.toCSS();
- opts.grid.rendererOptions.plotBands.color = $('#colorPlotBands').data('colorpicker').color.toCSS();
-
- plot1.replot(opts);
-
- };
-
- // $('#colorMale').val(plot1.series[0].color);
-
- $('#colorMale').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.series[0].color,
- onClose: applyColors
-
- });
-
- $('#colorFemale').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.series[1].color,
- onClose: applyColors
-
- });
-
- $('#colorBackground').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.grid.background,
- onClose: applyColors
-
- });
-
- $('#colorPlotBands').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.grid.plotBands.color,
- onClose: applyColors
-
- });
-
- });
- </script>
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.js"></script>
-
- <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.js"></script>
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.json2.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
- <script class="include" type="text/javascript" src="kcp.print.js"></script>
-
- <script src="colorpicker/jquery.colorpicker.js"></script>
-
- <script type="text/javascript" src="example.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html
deleted file mode 100755
index 72077554..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html
+++ /dev/null
@@ -1,663 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Quintile Pyramid Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_pyramid_by_age.html">Previous</a> <a href="./">Examples</a> <a href="line-charts.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
-
- <style type="text/css">
-
- .quintile-outer-container {
- width: 900px;
- margin-bottom: 25px;
- }
-
- .jqplot-chart {
- width: 500px;
- height: 400px;
- }
-
- pre.code {
- margin-top: 45px;
- clear: both;
- }
-
- .quintile-toolbar .ui-icon {
- float: right;
- margin: 3px 5px;
- }
-
- table.stats-table td, table.highlighted-stats-table td {
- background-color: rgb(230, 230, 230);
- padding: 0.5em;
- }
-
- col.label {
- width: 14em;
- }
-
- col.value {
- width: 7em;
- }
-
- td.quintile-value {
- width: 7em;
- text-align: right;
- }
-
- table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header {
- background-color: rgb(200, 200, 200);
- }
-
- table.stats-table, table.highlighted-stats-table, td.contour-cell {
- font-size: 0.7em;
- }
-
- td.contour-cell {
- height: 1.5em;
- padding-left: 20px;
- padding-bottom: 1.5em;
- }
-
- table.highlighted-stats-table {
- margin-top: 15px;
- }
-
- td.stats-cell {
- padding-left: 20px;
- padding-top: 20px;
- vertical-align: top;
-
- }
-
- td.stats-cell div.input {
- font-size: 0.7em;
- margin-top: 1.5em;
- }
-
- div.overlay-chart-container {
- display: none;
- z-index: 11;
- position: fixed;
- width: 588px;
- left: 50%;
- margin-left: -294px;
- background-color: white;
- }
-
- div.overlay-chart-container .ui-icon {
- float: right;
- margin: 3px 5px;
- }
-
- div.overlay-shadow {
- display: none;
- z-index: 10;
- background-color: rgba(0, 0, 0, 0.8);
- position: fixed;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 100%;
- }
-
- @media print {
- td.stats-cell {
- vertical-align: top;
- padding-top: 35px;
- }
-
- table.stats-table, table.stats-table td {
- color: #aaaaaa;
- border: 1px solid #bbbbbb;
- border-collapse: collapse;
- }
-
- table.stats-table tr {
- font-family: Verdana,Arial,sans-serif;
- /*font-size: 0.7em;*/
- }
- }
-
- </style>
-
- <div class="overlay-shadow"></div>
-
- <div class="overlay-chart-container ui-corner-all">
- <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div>
- <div class="overlay-chart-container-content ui-corner-bottom"></div>
- </div>
-
- <div class="quintile-outer-container ui-widget ui-corner-all">
- <div class="quintile-toolbar ui-widget-header ui-corner-top">
- <span class="quintile-title">Income Level: First Quintile</span>
- <div class="quintile-toggle ui-icon ui-icon-arrowthickstop-1-n"></div>
- <div class="ui-icon ui-icon-newwin"></div>
- </div>
- <div class="quintile-content ui-widget-content ui-corner-bottom">
- <table class="quintile-display">
- <tr>
- <td class="chart-cell" rowspan="2">
- <div class="jqplot-chart"></div>
- </td>
- <td class="stats-cell">
- <table class="stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr>
- <td class="ui-corner-tl">Mean Age:</td>
- <td class="quintile-value summary-meanAge ui-corner-tr"></td>
- </tr>
- <tr>
- <td>Sex Ratio:</td>
- <td class="quintile-value summary-sexRatio"></td>
- </tr>
- <tr>
- <td>Age Dependency Ratio:</td>
- <td class="quintile-value summary-ageDependencyRatio"></td>
- </tr>
- <tr>
- <td>Population, Total:</td>
- <td class="quintile-value summary-populationTotal"></td>
- </tr>
- <tr>
- <td>Population, Male:</td>
- <td class="quintile-value summary-populationMale"></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Population, Female:</td>
- <td class="quintile-value summary-populationFemale ui-corner-br"></td>
- </tr>
- </tbody>
- </table>
- <table class="highlighted-stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr class="tooltip-header">
- <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Range: <span class="tooltip-item tooltipAge">&nbsp;</span></td>
- </tr>
- <tr>
- <td>Population, Male: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipMale">&nbsp;</span></td>
- </tr>
- <tr>
- <td>Population, Female: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipFemale">&nbsp;</span></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Sex Ratio: </td>
- <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio">&nbsp;</span></td>
- </tr>
- <tbody>
- </table>
- </td>
- </tr>
- <tr>
- <td class="contour-cell">
- <input name="showContour" type="checkbox" /> Use as overlay on other charts?
- </td>
- </tr>
- </table>
- </div>
- </div>
-
-
-
- <script class="code" type="text/javascript" language="javascript">
- $(document).ready(function(){
-
- // if browser supports canvas, show additional toolbar icons
- if (!$.jqplot.use_excanvas) {
- $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>');
- }
-
- var quintHash = {0: 'First Quintile', 1: 'Second Quintile', 2: 'Third Quintile', 3: 'Fourth Quintile', 4: 'Fifth Quintile'}
-
- // Add the needed containers:
- for (var i=1; i<5; i++) {
- var el = $('div.quintile-outer-container:last')
- var clone = el.clone();
- clone.find('span.quintile-title').html('Income Level: ' + quintHash[i]);
- clone.insertAfter(el);
- }
-
- var male;
- var female;
- var summaryTable;
- var sexRatios;
- var quintiles;
-
- $.ajax({
- type: "GET",
- dataType: 'json',
- async: false,
- url: "quintiles.json",
- contentType: "application/json",
- success: function (retdata) {
- // array of arrays of data for each quintile
- // each quintile array has data for following:
- // 0: summary table
- // 1: male data
- // 2: female data
- // 3: ratios
- quintiles = retdata;
- },
- error: function (xhr) { console.log(xhr.statusText) }
- });
-
- $('td.summary-meanAge').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][0][3]));
- });
-
- $('td.summary-sexRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][3][0]));
- });
-
- $('td.summary-ageDependencyRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][0][6]));
- });
-
- $('td.summary-populationTotal').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][0]));
- });
-
- $('td.summary-populationMale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][1]));
- });
-
- $('td.summary-populationFemale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][2]));
- });
-
- // These two variables should be removed outside of the jqplot.com example environment.
- $.jqplot._noToImageButton = true;
- $.jqplot._noCodeBlock = true;
-
- // the "x" values from the data will go into the ticks array.
- // ticks should be strings for this case where we have values like "75+"
- var ticks = ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75-79", "80-84", "85-90", "90-94", "95+"];
-
- // Custom color arrays are set up for each series to get the look that is desired.
- // Two color arrays are created for the default and optional color which the user can pick.
- var greenColors = ["#526D2C", "#77933C"];
-
- // These options are common to all plots.
- var plotOptions = {
- // We set up a customized title which acts as labels for the left and right sides of the pyramid.
- title: {
- text: '<span style="position:relative;left:25%;">Male</span><span style="position:relative;left:50%;">Female</span>',
- textAlign: 'left'
- },
- // by default, the series will use the green color scheme.
- seriesColors: greenColors,
-
- grid: {
- drawBorder: false,
- shadow: false,
- background: "white",
- rendererOptions: {
- // plotBands is an option of the pyramidGridRenderer.
- // it will put banding at starting at a specified value
- // along the y axis with an adjustable interval.
- plotBands: {
- show: true,
- interval: 2,
- color: 'rgb(250, 240, 225)'
- }
- }
- },
-
- // This makes the effective starting value of the axes 0 instead of 1.
- // For display, the y axis will use the ticks we supplied.
- defaultAxisStart: 0,
- seriesDefaults: {
- renderer: $.jqplot.PyramidRenderer,
- rendererOptions: {
- barPadding: 4,
- fill: false
- },
- yaxis: "yaxis",
- shadow: false,
- show: false
- },
-
- // We have 10 series, but only 2 will be shown at a time unless an overlay is turned on.
- // Set up options for all series now, so when turned on they will look right.
- series: [
- // For pyramid plots, the default side is right.
- // We want to override here to put first set of bars
- // on left.
- {
- rendererOptions:{
- side: "left"
- }
- },
- {
- yaxis: "y2axis"
- },
- {
- rendererOptions: {
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis'
- },
- {
- rendererOptions: {
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis'
- },
- {
- rendererOptions: {
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis'
- },
- {
- rendererOptions: {
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis'
- }
- ],
- axesDefaults: {
- tickOptions: {
- showGridline: false
- },
- pad: 0,
- rendererOptions: {
- baselineWidth: 2
- },
- scaleToHiddenSeries: true
- },
-
- // Set up all the y axes, since users are allowed to switch between them.
- // The only axis that will show is the one that the series are "attached" to.
- // We need the appropriate options for the others for when the user switches.
- axes: {
- xaxis: {
- tickOptions: {
- formatter: $.jqplot.PercentTickFormatter,
- formatString: '%d%%'
- }
- },
- yaxis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: true
- }
- },
- y2axis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: true,
- ticks: ticks,
- rendererOptions: {
- category: true
- }
- }
- }
- };
-
- // These options are different for each series.
- // sopts are common options for the overlay series in each plot.
- var sopts = {color: '#C57225'};
-
- // An array of 5 elements, one for each plot.
- var plotOptsArr = [];
-
- // Options for each individual plot
- plotOptsArr[0] = $.extend(true, {}, plotOptions, {series:[{show: true, rendererOptions:{synchronizeHighlight: 1, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 0, fill: true}}, sopts, sopts, sopts, sopts, sopts, sopts, sopts, sopts]});
-
- plotOptsArr[1] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 3, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 2, fill: true}}, sopts, sopts, sopts, sopts, sopts, sopts]});
-
- plotOptsArr[2] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 5, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 4, fill: true}}, sopts, sopts, sopts, sopts]});
-
- plotOptsArr[3] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 7, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 6, fill: true}}, sopts, sopts]});
-
- plotOptsArr[4] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 9, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 8, fill: true}}]});
-
-
- // Create all the plots at one time.
- // Use jQuery selecctor syntax to select all the plot targets. Here, no id's were specified on the targets, so they are auto generated.
- // You can get a reference to the individual plot object by:
- // var plot = $('div.jqplot-chart').eq(0).data('jqplot');
- //
- $('div.jqplot-chart').jqplot([quintiles[0][1], quintiles[0][2], quintiles[1][1], quintiles[1][2], quintiles[2][1], quintiles[2][2], quintiles[3][1], quintiles[3][2], quintiles[4][1], quintiles[4][2]], plotOptsArr[0], plotOptsArr[1], plotOptsArr[2], plotOptsArr[3], plotOptsArr[4]);
-
- //////
- // The followng functions use verbose css selectors to make
- // it clear exactly which elements they are binging to/operating on
- //////
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function(index){
- $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
- // Here, assume first series is male poulation and second series is female population.
- // Adjust series indices as appropriate.
- var plot = $(this).data('jqplot');
- var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * quintiles[index][0][1];
- var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * quintiles[index][0][2];
- var malePopulation = quintiles[index][1][pointIndex] * quintiles[index][0][1];
- var femalePopulation = quintiles[index][2][pointIndex] * quintiles[index][0][2];
- // var ratio = femalePopulation / malePopulation * 100;
- var ratio = quintiles[index][3][pointIndex+1];
-
- $(this).closest('table').find('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation));
- $(this).closest('table').find('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation));
- $(this).closest('table').find('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio));
-
- // Since we don't know which axis is rendererd and acive with out a little extra work,
- // just use the supplied ticks array to get the age label.
- $(this).closest('table').find('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]);
- });
- });
-
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function() {
- $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
- // clear out all the tooltips.
- $(this).closest('table').find(".tooltip-item").fadeOut(250);
- });
- });
-
- // Open and close the plot container.
- $('.quintile-toggle').each(function() {
- $(this).click(function(e) {
- if ($(this).hasClass('ui-icon-arrowthickstop-1-n')) {
- $(this).parent().next('.quintile-content').effect('blind', {mode:'hide'}, 600);
- // $('.quintile-content').jqplotEffect('blind', {mode: 'hide'}, 600);
- $(this).removeClass('ui-icon-arrowthickstop-1-n');
- $(this).addClass('ui-icon-arrowthickstop-1-s');
- }
- else if ($(this).hasClass('ui-icon-arrowthickstop-1-s')) {
- $(this).parent().next('.quintile-content').effect('blind', {mode:'show'}, 600, function() {
- $(this).find('div.jqplot-chart').data('jqplot').replot();
- });
- // $('.quintile-content').jqplotEffect('blind', {mode: 'show'}, 150);
- $(this).removeClass('ui-icon-arrowthickstop-1-s');
- $(this).addClass('ui-icon-arrowthickstop-1-n');
- }
- });
- });
-
- // Handle each of the checkboxes to display overlays.
- $('input[type=checkbox][name=showContour]').each(function(index) {
- // on load/reload, clear all the check boxes.
- $(this).get(0).checked = false;
-
- // bind to change event event on the checkbox.
- $(this).change(function(evt){
-
- // if check box is checked.
- if (this.checked) {
- // uncheck all other check boxes.
- $('input[type=checkbox][name=showContour]').each(function(cidx) {
- if (cidx !== index) {
- this.checked = false;
- }
- });
-
- // On each chart, show the checked plot's overlay and
- // show the original plot.
- $('div.jqplot-chart').each(function(pidx) {
- var plot = $(this).data('jqplot');
-
- // Set up options to hide all series.
- var seriesOpts = [{show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}];
-
- // Show series for this particular plot (pidx) and for the checked plot (index).
- seriesOpts[2 * pidx].show = true;
- seriesOpts[2 * pidx + 1].show = true;
- seriesOpts[2 * index].show = true;
- seriesOpts[2 * index + 1].show = true;
-
- // replot with the new options.
- plot.replot({series: seriesOpts});
-
- });
- }
-
- // if check box is not checked.
- else {
- $('div.jqplot-chart').each(function(pidx) {
- // Set up options to hide all series.
- var seriesOpts = [{show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}];
- var plot = $(this).data('jqplot');
-
- // Here showing only the series for this particular plot (pidx).
- seriesOpts[2 * pidx].show = true;
- seriesOpts[2 * pidx + 1].show = true;
-
- // replot with the new options.
- plot.replot({series: seriesOpts});
- });
- }
- })
- });
-
- $('.ui-icon-print').click(function(){
- $(this).parent().next().print();
- });
-
-
- $('.ui-icon-image').each(function() {
- $(this).bind('click', function(evt) {
- var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
- var imgelem = chart.jqplotToImageElem();
- var div = $('div.overlay-chart-container-content');
- div.empty();
- div.append(imgelem);
- $('div.overlay-shadow').fadeIn(600);
- div.parent().fadeIn(1000);
- div = null;
- });
- });
-
-
- $('.ui-icon-newwin').each(function(index) {
- $(this).bind('click', function(evt) {
- var url = 'kcp_pyramid_by_age.html?qidx='+index;
- window.open(url);
- });
- });
-
- $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){
- var div = $('div.overlay-chart-container-content');
- div.parent().fadeOut(600);
- $('div.overlay-shadow').fadeOut(1000);
- });
-
- });
- </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
- <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script>
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.js"></script>
- <script class="include" type="text/javascript" src="kcp.print.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html
deleted file mode 100755
index 0151bb23..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Line Charts and Options</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="kcp_quintiles.html">Previous</a> <a href="./">Examples</a> <a href="mekkoCharts.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<p>The most basic jqPlot chart takes a series of data and plots a line. No options need to be supplied. Data is passed in as an array of series. A series can be either an array of y values or an array of [x,y] data pairs. If y values only, x values are assigned like 1, 2, 3, ... Note, for this plot you don't need any plugins.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>The following plot uses a number of options to set the title, add axis labels, and shows how to use the canvasAxisLabelRenderer plugin to provide rotated axis labels.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>There are numerous line style options to control how the lines and markers are displayed.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var plot1 = $.jqplot ('chart1', [[3,7,9,1,5,3,8,2,5]]);
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var plot2 = $.jqplot ('chart2', [[3,7,9,1,5,3,8,2,5]], {
- // Give the plot a title.
- title: 'Plot With Options',
- // You can specify options for all axes on the plot at once with
- // the axesDefaults object. Here, we're using a canvas renderer
- // to draw the axis label which allows rotated text.
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- // Likewise, seriesDefaults specifies default options for all
- // series in a plot. Options specified in seriesDefaults or
- // axesDefaults can be overridden by individual series or
- // axes options.
- // Here we turn on smoothing for the line.
- seriesDefaults: {
- rendererOptions: {
- smooth: true
- }
- },
- // An axes object holds options for all axes.
- // Allowable axes are xaxis, x2axis, yaxis, y2axis, y3axis, ...
- // Up to 9 y axes are supported.
- axes: {
- // options for each axis are specified in seperate option objects.
- xaxis: {
- label: "X Axis",
- // Turn off "padding". This will allow data point to lie on the
- // edges of the grid. Default padding is 1.2 and will keep all
- // points inside the bounds of the grid.
- pad: 0
- },
- yaxis: {
- label: "Y Axis"
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // Some simple loops to build up data arrays.
- var cosPoints = [];
- for (var i=0; i<2*Math.PI; i+=1){
- cosPoints.push([i, Math.cos(i)]);
- }
-
- var sinPoints = [];
- for (var i=0; i<2*Math.PI; i+=0.4){
- sinPoints.push([i, 2*Math.sin(i-.8)]);
- }
-
- var powPoints1 = [];
- for (var i=0; i<2*Math.PI; i+=1) {
- powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]);
- }
-
- var powPoints2 = [];
- for (var i=0; i<2*Math.PI; i+=1) {
- powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]);
- }
-
- var plot3 = $.jqplot('chart3', [cosPoints, sinPoints, powPoints1, powPoints2],
- {
- title:'Line Style Options',
- // Set default options on all series, turn on smoothing.
- seriesDefaults: {
- rendererOptions: {
- smooth: true
- }
- },
- // Series options are specified as an array of objects, one object
- // for each series.
- series:[
- {
- // Change our line width and use a diamond shaped marker.
- lineWidth:2,
- markerOptions: { style:'dimaond' }
- },
- {
- // Don't show a line, just show markers.
- // Make the markers 7 pixels with an 'x' style
- showLine:false,
- markerOptions: { size: 7, style:"x" }
- },
- {
- // Use (open) circlular markers.
- markerOptions: { style:"circle" }
- },
- {
- // Use a thicker, 5 pixel line and 10 pixel
- // filled square markers.
- lineWidth:5,
- markerOptions: { style:"filledSquare", size:10 }
- }
- ]
- }
- );
-
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html b/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html
deleted file mode 100755
index 91b3395b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html
+++ /dev/null
@@ -1,269 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Mekko Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="line-charts.html">Previous</a> <a href="./">Examples</a> <a href="meritOrder.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
- <style type="text/css" media="screen">
- body {
- margin: 15px;
- font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
- }
-
- p {
- margin-top: 20px;
- margin-bottom: 20px;
- }
-
- .jqplot-target {
- margin: 60px;
- }
-
- pre {
- padding: 10px;
- background-color: #efead9;
- margin: 10px;
- }
- .jqplot-axis {
- font-size: 0.8em;
- }
-
- .jqplot-mekko-barLabel {
- font-size: 1em;
- }
-
- #chart2 .jqplot-axis {
- font-size: 0.7em;
- }
-
- #chart3 .jqplot-title {
- padding-bottom: 40px;
- }
- </style>
-<p>Data is specified per bar in the chart. You can specify data as an array of y values, or as an array of [label, value] pairs. Note that labels are used only on the first series. Labels on subsequent series are ignored:</p>
-<pre>
-bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
-bar2 = [15,6,9,13,6];
-bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
-</pre>
-
- <p>If you want to place labels for each bar under the axis, you use the barLabels option on the axes. The bar labels can be styled with the ".jqplot-mekko-barLabel" css class.</p>
-<pre>
-barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-axes:{xaxis:{barLabels:barLabels}}
-</pre>
-
- <div id="chart1" style="width:500px; height:300px;"></div>
-
- <p>You can add a secondary x axes, and the tick spacing of the axes can be separately controlled with the "tickMode" option. "bar" will produce tics at bar boundaries, "even" will produce evenly spaced ticks. If you set the axes max greater than the sum of the data range (the maximum x value), the plot will be padded. Note that you should set the max on both axes to the same value.</p>
-
-<pre>
-axes:{
- xaxis:{
- barLabels:barLabels,
- max: 175
- },
- x2axis:{
- show:true,
- tickMode:'even',
- max: 175
- }
-}
-</pre>
-
- <p>Here the borders between chart areas have been given a custom color using the "borderColor" option on the series renderer.</p>
-
-<pre>
- seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}}
-</pre>
-
- <p>Additionally, the legend can be placed "outside" (the default for a mekko chart) or "inside" of the grid area with the "placement" option on the legend renderer.</p>
-
-<pre>
-legend:{
- show:true,
- rendererOptions:{placement: "insideGrid"},
- location:'e'
-},
-</pre>
-
- <div id="chart2" style="width:500px; height:300px;"></div>
-
- <p>Legend labels can be specified independently of the series with the "labels" option on the legend. These will override any labels specified with the series. There are also options to control the number of rows and number of columns in the legend as well as placement.</p>
-
- <p>Here the legend is positioned to the "north" and set to render 1 row tall (number of columns determined automatically). Note that an extra css specification was added to pad the bottom of the title of this chart to give room for the legend above the plot.</p>
-
-<pre>
-legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes'];
-
-legend:{
- show:true,
- location: 'n',
- labels: legendLabels,
- rendererOptions:{numberRows: 1, placement: "outside"}
-},
-</pre>
-
- <p>Also, the borders between the chart areas have been turned off with the "showBorders: false" option.</p>
-
-<pre>
- seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}}
-</pre>
-
- <div id="chart3" style="width:500px; height:300px;"></div>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
- var bar2 = [15,6,9,13,6];
- var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
- var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-
- var plot1 = $.jqplot('chart1', [bar1, bar2, bar3], {
- title: 'Revenue Breakdown per Character',
- seriesDefaults:{renderer:$.jqplot.MekkoRenderer},
- legend:{show:true},
- axesDefaults:{
- renderer:$.jqplot.MekkoAxisRenderer
- },
- axes:{
- xaxis:{
- barLabels:barLabels,
- tickOptions:{formatString:'$%dM'}
- }
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
- var bar2 = [15,6,9,13,6];
- var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
- var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-
- var plot2 = $.jqplot('chart2', [bar1, bar2, bar3], {
- title: 'Revenue Breakdown per Character',
- seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}},
- legend:{
- show:true,
- rendererOptions:{placement: "insideGrid"},
- location:'e'
- },
- axesDefaults:{
- renderer:$.jqplot.MekkoAxisRenderer,
- tickOptions:{}
- },
- axes:{
- xaxis:{
- barLabels:barLabels,
- rendererOptions: {
- barLabelOptions: {
- angle: -35
- },
- barLabelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- max: 175,
- tickOptions:{formatString:'$%dM'}
- },
- x2axis:{
- show:true,
- tickMode:'even',
- max: 175,
- tickOptions:{formatString:'$%dM'}
- }
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
- var bar2 = [15,6,9,13,6];
- var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
- var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-
- var legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes'];
-
- var plot3 = $.jqplot('chart3', [bar1, bar2, bar3], {
- title: 'Revenue Breakdown per Character',
- seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}},
- legend:{
- show:true,
- location: 'n',
- labels: legendLabels,
- rendererOptions:{numberRows: 1, placement: "outside"}
- },
- axesDefaults:{
- renderer:$.jqplot.MekkoAxisRenderer,
- tickOptions:{showGridline:false}
- },
- axes:{
- xaxis:{
- tickMode:"bar",
- tickOptions:{formatString:'$%dM'}
- }
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.mekkoRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.mekkoAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html b/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html
deleted file mode 100755
index 67191726..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Merit Order Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="mekkoCharts.html">Previous</a> <a href="./">Examples</a> <a href="meterGauge.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
- <style type="text/css" media="screen">
- body {
- margin: 15px;
- font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
- }
-
- p {
- margin-top: 20px;
- margin-bottom: 20px;
- }
-
- .jqplot-target {
- margin: 60px;
- }
-
- pre {
- padding: 10px;
- background-color: #efead9;
- margin: 10px;
- }
-
- #chart3 .jqplot-title {
- padding-bottom: 40px;
- }
- </style>
-
- <div id="chart1" style="width:500px; height:300px;"></div>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- var data = [[473.34, 5.89], [232.35, 25.45], [2387.56, 28.55], [1484.8, 31.98], [0, 32.52], [0, 33.31], [0, 37.63], [3675.31, 47.98], [0, 61.06], [0, 61.6], [3035.76, 65.05], [3437.74, 70.62], [192.53, 75.32], [426.12, 84.5], [0, 117.45], [0, 139.08]];
-
- plot1 = $.jqplot('chart1', [[data[0]], [data[1]], [data[2]], [data[3]]], {
- seriesDefaults:{renderer:$.jqplot.MeritOrderRenderer},
- legend:{show:false},
- axesDefaults:{
- renderer:$.jqplot.MeritOrderAxisRenderer
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.meritOrderRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.meritOrderAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html b/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html
deleted file mode 100755
index bbb278ef..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Meter Gauge</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="meritOrder.html">Previous</a> <a href="./">Examples</a> <a href="multipleBarColors.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
-<style type="text/css">
-
-.plot {
- margin-bottom: 30px;
- margin-left: auto;
- margin-right: auto;
-}
-
-#chart0 .jqplot-meterGauge-label {
- font-size: 10pt;
-}
-
-#chart1 .jqplot-meterGauge-tick {
- font-size: 6pt;
-}
-
-#chart2 .jqplot-meterGauge-tick {
- font-size: 8pt;
-}
-
-#chart3 .jqplot-meterGauge-tick, #chart0 .jqplot-meterGauge-tic {
- font-size: 10pt;
-}
-
-#chart4 .jqplot-meterGauge-tick, #chart4 .jqplot-meterGauge-label {
- font-size: 12pt;
-}
-</style>
-
-
-<p>A meter gauge plot shows a data value in a speedometer style gauge. The "series" in consists of a single data value that positions the needle on the gauge. The span of the gauge will be automatically determined, or can be set with the "min" and "max" values in the "rendererOptions" of the series. The plot below also specifies a chart title and a "label" for the gauge.</p>
-
-<div id="chart0" class="plot" style="width:250px;height:170px;"></div>
-
-<p>For small gauges, it can be desirable to turn off the tick labels by setting the "showTickLabels" option in the rendererOptions to false. Also, colored interval bands can be specified. The interval ranges are specified as an array of values the "intervals" option and custom colors for each interval can be specified with the "intervalColors" option.</p>
-
-<div id="chart1" class="plot" style="width:120px;height:80px;"></div>
-
-<p>The inner and outer radii of the interval band will automatically adjust when tick Labels are turned on. Also, the gauge minimum and maximum can be specified with the "min" and "max" options in the rendererOptions.</p>
-
-<div id="chart3" class="plot" style="width:300px;height:180px;"></div>
-
-<p>The inner and outer radii of the interval band can also be specified with the "intervalInnerRadius" and "intervalOuterRadius" options. In the plot below, the "labelPosition" option was set to "bottom" to put the gauge label below the plot. The "labelHeightAdjust" option was set to -5 to raise the label slightly (5 pixels) to place it closer to the gauge.</p>
-<p>The gauge automatically resizes to best fit the container. The font size of the tick labels and gauge labels do not size to the container, however. The font size of the tick labels can be controlled by styling the css ".jqplot-meterGauge-ticks" class and the gauge label by the "jqplot-meterGauge-label" class.</p>
-<div id="chart4" class="plot" style="width:500px;height:300px;"></div>
-
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- s1 = [1];
-
- plot0 = $.jqplot('chart0',[s1],{
- title: 'Network Speed',
- seriesDefaults: {
- renderer: $.jqplot.MeterGaugeRenderer,
- rendererOptions: {
- label: 'MB/s'
- }
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- s1 = [1];
-
- plot1 = $.jqplot('chart1',[s1],{
- seriesDefaults: {
- renderer: $.jqplot.MeterGaugeRenderer,
- rendererOptions: {
- showTickLabels: false,
- intervals:[2,3,4],
- intervalColors:['#66cc66', '#E7E658', '#cc6666']
- }
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- s1 = [322];
-
- plot3 = $.jqplot('chart3',[s1],{
- seriesDefaults: {
- renderer: $.jqplot.MeterGaugeRenderer,
- rendererOptions: {
- min: 100,
- max: 500,
- intervals:[200, 300, 400, 500],
- intervalColors:['#66cc66', '#93b75f', '#E7E658', '#cc6666']
- }
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- s1 = [52200];
-
- plot4 = $.jqplot('chart4',[s1],{
- seriesDefaults: {
- renderer: $.jqplot.MeterGaugeRenderer,
- rendererOptions: {
- label: 'Metric Tons per Year',
- labelPosition: 'bottom',
- labelHeightAdjust: -5,
- intervalOuterRadius: 85,
- ticks: [10000, 30000, 50000, 70000],
- intervals:[22000, 55000, 70000],
- intervalColors:['#66cc66', '#E7E658', '#cc6666']
- }
- }
- });
-});
-</script>
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.meterGaugeRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html b/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html
deleted file mode 100755
index 0b64f86b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Bar Colors Example</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="meterGauge.html">Previous</a> <a href="./">Examples</a> <a href="openerNoHeader.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<div id="chart1" class="example-chart" style="height:300px;width:500px"></div>
-<div id="chart2" class="example-chart" style="height:300px;width:500px"></div>
-<div id="chart3" class="example-chart" style="height:300px;width:500px"></div>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- // A Bar chart from a single series will have all the bar colors the same.
- var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]];
-
- $('#chart1').jqplot([line1], {
- title:'Default Bar Chart',
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- },
- axes:{
- xaxis:{
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]];
-
- $('#chart2').jqplot([line1], {
- title:'Bar Chart with Varying Colors',
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions: {
- // Set the varyBarColor option to true to use different colors for each bar.
- // The default series colors are used.
- varyBarColor: true
- }
- },
- axes:{
- xaxis:{
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]];
-
- $('#chart3').jqplot([line1], {
- title:'Bar Chart with Custom Colors',
- // Provide a custom seriesColors array to override the default colors.
- seriesColors:['#85802b', '#00749F', '#73C774', '#C7754C', '#17BDB8'],
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions: {
- // Set varyBarColor to tru to use the custom colors on the bars.
- varyBarColor: true
- }
- },
- axes:{
- xaxis:{
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/nav.inc b/wqflask/wqflask/static/packages/jqplot/examples/nav.inc
deleted file mode 100755
index d54a4bf9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/nav.inc
+++ /dev/null
@@ -1,40 +0,0 @@
-<div class="example-nav">
- <?php
- $tmpnames = scandir('./');
- $skip = array('opener.php', 'bodyOpener.php', 'nav.php', 'closer.html', 'commonScripts.html', 'topbanner.html');
-
- foreach( $tmpnames as $value) {
- if (preg_match('/^[a-z0-9][a-z0-9_\-]+\.(html|php)$/i', $value)) {
- if (! in_array($value, $skip)) {
- $files[] = $value;
- }
- }
- }
- $fcount = count($files);
- $parts = explode("/", $_SERVER['SCRIPT_NAME']);
- $curfile = end($parts);
- $prevfile = '';
- $nextfile = '';
- // print_r($files);
-
- for ($i=0; $i<$fcount; $i++) {
- if ($curfile == $files[$i]) {
- if ($i == 0) {
- $prevfile = $files[$fcount-1];
- $nextfile = $files[1];
- }
- elseif ($i == $fcount-1) {
- $prevfile = $files[$i-1];
- $nextfile = $files[0];
- }
- else {
- $prevfile = $files[$i-1];
- $nextfile = $files[$i+1];
- }
- }
- }
-
- echo '<a href="'.$prevfile.'">Previous</a> <a href="./">Examples</a> <a href="'.$nextfile.'">Next</a>';
-
- ?>
-</div>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html
deleted file mode 100755
index ddae1477..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Pie and Donut Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="openerNoHeader.html">Previous</a> <a href="./">Examples</a> <a href="pieTest.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
- <style type="text/css">
-
- .jqplot-data-label {
- /*color: #444;*/
-/* font-size: 1.1em;*/
- }
- </style>
-
-<p>jqPlot bakes up the best pie and donut charts you've ever tasted! Like bar and filled line plots, pie and donut slices highlight when you mouse over.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>Too many calories in that pie? Get all the taste without the filling! Highlighting and data labels are still supported. You can even cut out the slices!</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>Coming straight from the same bakery, donut plots have nearly identical options as pie charts.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var data = [
- ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14],
- ['Out of home', 16],['Commuting', 7], ['Orientation', 9]
- ];
- var plot1 = jQuery.jqplot ('chart1', [data],
- {
- seriesDefaults: {
- // Make this a pie chart.
- renderer: jQuery.jqplot.PieRenderer,
- rendererOptions: {
- // Put data labels on the pie slices.
- // By default, labels show the percentage of the slice.
- showDataLabels: true
- }
- },
- legend: { show:true, location: 'e' }
- }
- );
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var data = [
- ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14],
- ['Out of home', 16],['Commuting', 7], ['Orientation', 9]
- ];
- var plot2 = jQuery.jqplot ('chart2', [data],
- {
- seriesDefaults: {
- renderer: jQuery.jqplot.PieRenderer,
- rendererOptions: {
- // Turn off filling of slices.
- fill: false,
- showDataLabels: true,
- // Add a margin to seperate the slices.
- sliceMargin: 4,
- // stroke the slices with a little thicker line.
- lineWidth: 5
- }
- },
- legend: { show:true, location: 'e' }
- }
- );
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var s1 = [['a',6], ['b',8], ['c',14], ['d',20]];
- var s2 = [['a', 8], ['b', 12], ['c', 6], ['d', 9]];
-
- var plot3 = $.jqplot('chart3', [s1, s2], {
- seriesDefaults: {
- // make this a donut chart.
- renderer:$.jqplot.DonutRenderer,
- rendererOptions:{
- // Donut's can be cut into slices like pies.
- sliceMargin: 3,
- // Pies and donuts can start at any arbitrary angle.
- startAngle: -90,
- showDataLabels: true,
- // By default, data labels show the percentage of the donut/pie.
- // You can show the data 'value' or data 'label' instead.
- dataLabels: 'value'
- }
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.donutRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html b/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html
deleted file mode 100755
index 43a11f13..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Pie Charts and Options</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="pie-donut-charts.html">Previous</a> <a href="./">Examples</a> <a href="pieTest4.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-
- <div id="pie1" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
- <div id="pie2" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
- <div id="pie3" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
- <div id="pie4" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
- <div id="pie5" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div>
-
- <div id="pie6" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div>
-
- <div id="pie7" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div>
-
- <div id="pie8" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-
-
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var plot1 = $.jqplot('pie1', [[['a',25],['b',14],['c',7]]], {
- gridPadding: {top:0, bottom:38, left:0, right:0},
- seriesDefaults:{
- renderer:$.jqplot.PieRenderer,
- trendline:{ show:false },
- rendererOptions: { padding: 8, showDataLabels: true }
- },
- legend:{
- show:true,
- placement: 'outside',
- rendererOptions: {
- numberRows: 1
- },
- location:'s',
- marginTop: '15px'
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var plot2 = $.jqplot('pie2', [[['a',25],['b',14],['c',7]]], {
- seriesDefaults:{ renderer:$.jqplot.PieRenderer, trendline:{ show: true } },
- legend:{ show: true }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var plot3 = $.jqplot('pie3', [[['a',1],['b',9],['c',1]]], {
- seriesDefaults:{
- shadow: false,
- renderer:$.jqplot.PieRenderer,
- rendererOptions:{
- sliceMargin: 4,
- // rotate the starting position of the pie around to 12 o'clock.
- startAngle: -90
- }
- },
- legend:{ show: true }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var plot4 = $.jqplot('pie4', [[["a",0],["b",1],["c",.01]]], {
- seriesDefaults:{
- renderer:$.jqplot.PieRenderer,
- rendererOptions:{ sliceMargin: 0 }
- },
- legend:{ show: true }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var plot5 = $.jqplot('pie5', [[["none",23],["error",0],["click",5],["impression",25]]], {
- seriesDefaults:{ renderer: $.jqplot.PieRenderer },
- legend:{ show:true }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var plot6 = $.jqplot('pie6', [[["none",0],["error",0],["click",0],["impression",0]]], {
- seriesDefaults:{ renderer: $.jqplot.PieRenderer },
- legend:{ show:true }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var plot7 = $.jqplot('pie7', [[["all", 10]]], {
- seriesDefaults:{
- renderer:$.jqplot.PieRenderer,
- rendererOptions: {
- showDataLabels: true
- }
- },
- legend:{show:true}
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var s1 = [['Sony',7], ['Samsumg',13.3], ['LG',14.7], ['Vizio',5.2], ['Insignia', 1.2]];
-
- var plot8 = $.jqplot('pie8', [s1], {
- grid: {
- drawBorder: false,
- drawGridlines: false,
- background: '#ffffff',
- shadow:false
- },
- axesDefaults: {
-
- },
- seriesDefaults:{
- renderer:$.jqplot.PieRenderer,
- rendererOptions: {
- showDataLabels: true
- }
- },
- legend: {
- show: true,
- rendererOptions: {
- numberRows: 1
- },
- location: 's'
- }
- });
-});</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js b/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js
deleted file mode 100755
index 91073fe6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js
+++ /dev/null
@@ -1,80 +0,0 @@
-$(document).ready(function(){
-
- $.jqplot.config.enablePlugins = true;
-
- s1 = [['a',2], ['b',6], ['c',7], ['d',10]];
- s2 = [['a', 4], ['b', 7], ['c', 6], ['d', 3]];
- s3 = [['a', 2], ['b', 1], ['c', 3], ['d', 3]];
- s4 = [['a', 4], ['b', 3], ['c', 2], ['d', 1]];
-
- s5 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
-
- plot1 = $.jqplot('chart1', [s1], {
- seriesDefaults:{
- renderer:$.jqplot.PieRenderer
- },
- legend: {show:true}
- });
-
- plot2 = $.jqplot('chart2', [s2], {
- seriesDefaults: {
- renderer:$.jqplot.PieRenderer,
- rendererOptions:{
- sliceMargin: 4,
- startAngle: -90
- }
- }
- });
-
- plot3 = $.jqplot('chart3', [s3], {
- captureRightClick: true,
- seriesDefaults:{
- renderer:$.jqplot.PieRenderer,
- shadow: false,
- rendererOptions:{
- startAngle: 90,
- sliceMargin: 4,
- highlightMouseDown: true
- }
- },
- legend: {
- show: true,
- location: 'e',
- placement: 'outside'
- }
- });
-
- plot5 = $.jqplot('chart5', [s5], {
- seriesDefaults:{
- renderer:$.jqplot.PieRenderer
- }
- });
-
- plot6 = $.jqplot('chart6', [[1,2,3,4]]);
-
- $('#chart1').bind('jqplotDataClick',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
-
- $('#chart2').bind('jqplotDataHighlight',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info2').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
-
- $('#chart2').bind('jqplotDataUnhighlight',
- function (ev) {
- $('#info2').html('Nothing');
- }
- );
-
- $('#chart3').bind('jqplotDataRightClick',
- function (ev, seriesIndex, pointIndex, data) {
- $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
- }
- );
-
- $(document).unload(function() {$('*').unbind(); });
-}); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html b/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html
deleted file mode 100755
index ba8832c7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Pie Charts and Options 2</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="pieTest.html">Previous</a> <a href="./">Examples</a> <a href="point-labels.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-
- <pre class="code brush:js"></pre>
-
- <div id="chart2" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-
- <pre class="code brush:js"></pre>
-
- <div id="chart3" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart4" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart5" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart6" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart7" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart8" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart9" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
- <div id="chart10" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
- <pre class="code brush:js"></pre>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- jQuery.jqplot.config.enablePlugins = true;
- plot1 = jQuery.jqplot('chart1',
- [[['Verwerkende FruedenStunde Companaziert Eine industrie', 9],['Retail', 8], ['Primaire producent', 7],
- ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]],
- {
- title: ' ',
- seriesDefaults: {
- shadow: false,
- renderer: jQuery.jqplot.PieRenderer,
- rendererOptions: { padding: 2, sliceMargin: 2, showDataLabels: false }
- },
- legend: { show:true, location: 'e' }
- }
- );
-});
-</script>
-
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot2 = jQuery.jqplot('chart2',
- [[['Verwerkende industrie', 9],['Retail', 0], ['Primaire producent', 0],
- ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 3], ['Bewerkende industrie', 2]]],
- {
- title: ' ',
- seriesDefaults: {
- shadow: false,
- renderer: jQuery.jqplot.PieRenderer,
- rendererOptions: {
- startAngle: 180,
- sliceMargin: 4,
- showDataLabels: true }
- },
- legend: { show:true, location: 'w' }
- }
- );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot3 = jQuery.jqplot('chart3',
- [[['Verwerkende industrie', 9],['Retail', 0], ['Primaire producent', 0],
- ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 2]]],
- {
- title: ' ',
- seriesDefaults: {
- shadow: false,
- renderer: jQuery.jqplot.PieRenderer,
- rendererOptions: {
- sliceMargin: 4,
- showDataLabels: true
- }
- },
- legend: { show:true, location: 'e' }
- }
- );
-
-
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot4 = jQuery.jqplot('chart4',
- [[['Verwerkende industrie', 30],['Retail', 0], ['Primaire producent', 0],
- ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]],
- {
- title: ' ',
- seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } },
- legend: { show:true, location: 'e' }
- }
- );
-
-
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot5 = jQuery.jqplot('chart5',
- [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0],
- ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]],
- {
- title: ' ',
- seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } },
- legend: { show:true }
- }
- );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot6 = jQuery.jqplot('chart6',
- [[['Verwerkende industrie', 100]]],
- {
- title: ' ',
- seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } },
- legend: { show:true }
- }
- );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- jQuery.jqplot.config.enablePlugins = true;
- plot7 = jQuery.jqplot('chart7',
- [[['Verwerkende industrie', 9],['Retail', 8], ['Primaire producent', 7],
- ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]],
- {
- title: ' ',
- seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { showDataLabels: true } },
- legend: { show:true }
- }
- );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot8 = jQuery.jqplot('chart8',
- [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0],
- ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]],
- {
- title: ' ',
- seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { showDataLabels: true } },
- legend: { show:true }
- }
- );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- jQuery.jqplot.config.enablePlugins = true;
- plot9 = jQuery.jqplot('chart9',
- [[['Verwerkende industrie', 9],['Retail', 8], ['Primaire producent', 7],
- ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]],
- {
- title: ' ',
- seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: {
- fill: false,
- sliceMargin: 4,
- showDataLabels: true
- }
- },
- legend: { show:true }
- }
- );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- plot10 = jQuery.jqplot('chart10',
- [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0],
- ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]],
- {
- title: ' ',
- seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: {
- fill: false,
- sliceMargin: 4,
- showDataLabels: true
- }
- },
- legend: { show:true }
- }
- );
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html b/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html
deleted file mode 100755
index c21e1bc0..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Data Point labels</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="pieTest4.html">Previous</a> <a href="./">Examples</a> <a href="resizablePlot.html">Next</a></div>
-
-
-<style type="text/css">
-#chart3 .jqplot-point-label {
- border: 1.5px solid #aaaaaa;
- padding: 1px 3px;
- background-color: #eeccdd;
-}
-</style>
-
-<!-- Example scripts go here -->
-<P>The pointLabels plugin places labels on the plot at the data point locations. Labeles can use the series data array or a separate labels array. If using the series data, the last value in the data point array is used as the label by default.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<P>Additional data can be added to the series and it will be used for labels. If additional data is provided, each data point must have a value for the label, even if it is "null".</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<P>Labels work with Bar charts as well. Here, the Labels have been supplied through the "labels" array on the "pointLabels" option to the series. Also, additional css styling has been provided to the labels.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="prettyprint brush: html">
-<style type="text/css">
-#chart3 .jqplot-point-label {
- border: 1.5px solid #aaaaaa;
- padding: 1px 3px;
- background-color: #eeccdd;
-}
-</style>
-</pre>
-<pre class="code prettyprint brush: js"></pre>
-
-<P>Point labels can be used on stacked bar charts. If no labels array is specified, they will use data from the chart. Values can be displayed individually for each series (stackedValue option is false, the default), or cumulative values for all series can be displayed (stackedValue option is true).</p>
-
-<div id="chart4" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<P>Data point labels have an "edgeTolerance" option. This options controls how close the data point label can be to an axis edge and still be drawn. The default of 0 allows labels to touch the axis. Positive values will increase the required distance between the axis and label, negative values will allow labels to overlap axes.</p>
-
-<div id="chart5" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [14, 32, 41, 44, 40, 47, 53, 67];
- var plot1 = $.jqplot('chart1', [line1], {
- title: 'Chart with Point Labels',
- seriesDefaults: {
- showMarker:false,
- pointLabels: { show:true }
- }
- });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [[-12, 7, null], [-3, 14, null], [2, -1, '(low)'],
- [7, -1, '(low)'], [11, 11, null], [13, -1, '(low)']];
- var plot2 = $.jqplot('chart2', [line1], {
- title: 'Point Labels From Extra Series Data',
- seriesDefaults: {
- showMarker:false,
- pointLabels:{ show:true, location:'s', ypadding:3 }
- },
- axes:{ yaxis:{ pad: 1.3 } }
- });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [14, 32, 41, 44, 40];
- var plot3 = $.jqplot('chart3', [line1], {
- title: 'Bar Chart with Point Labels',
- seriesDefaults: {renderer: $.jqplot.BarRenderer},
- series:[
- {pointLabels:{
- show: true,
- labels:['fourteen', 'thirty two', 'fourty one', 'fourty four', 'fourty']
- }}],
- axes: {
- xaxis:{renderer:$.jqplot.CategoryAxisRenderer},
- yaxis:{padMax:1.3}}
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [14, 32, 41, 44, 40, 37, 29];
- var line2 = [7, 12, 15, 17, 20, 27, 39];
- var plot4 = $.jqplot('chart4', [line1, line2], {
- title: 'Stacked Bar Chart with Cumulative Point Labels',
- stackSeries: true,
- seriesDefaults: {
- renderer: $.jqplot.BarRenderer,
- rendererOptions:{barMargin: 25},
- pointLabels:{show:true, stackedValue: true}
- },
- axes: {
- xaxis:{renderer:$.jqplot.CategoryAxisRenderer}
- }
- });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [14, 32, 41, 44, 40, 47, 53, 67];
- var plot5 = $.jqplot('chart5', [line1], {
- title: 'Chart with Point Labels',
- seriesDefaults: {
- showMarker:false,
- pointLabels: {
- show: true,
- edgeTolerance: 5
- }},
- axes:{
- xaxis:{min:3}
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json b/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json
deleted file mode 100755
index a46a169f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json
+++ /dev/null
@@ -1,348 +0,0 @@
-[
- [
- [27777522,
- 13657657,
- 14119865,
- 22.96185242727780,
- 22.92340104876670,
- 22.99840039165770,
- 95.15435452471940],
- [0.16814981778556500,
- 0.16938884829023600,
- 0.13029899959403300,
- 0.08445061806046640,
- 0.05811840452702920,
- 0.05631028061504850,
- 0.06512242137179920,
- 0.06861163659177230,
- 0.06020567860988050,
- 0.04355880225459750,
- 0.02803499342457000,
- 0.01912758869230340,
- 0.01515038483762410,
- 0.01223701332240520,
- 0.00869244058559189,
- 0.00529469386492945,
- 0.00328609724536106,
- 0.00194751964322071,
- 0.00114713861262733,
- 0.00086662207093871],
- [0.15777933298339800,
- 0.15671077815250300,
- 0.12447815070139100,
- 0.08939377850853680,
- 0.07830223837100820,
- 0.08053563812713150,
- 0.07682071635522590,
- 0.06269916689630620,
- 0.04365876627610810,
- 0.03084162032257200,
- 0.02432244409407740,
- 0.02120157090634930,
- 0.01791380814933710,
- 0.01326354596024400,
- 0.00968643784396050,
- 0.00633359323592785,
- 0.00349435421488265,
- 0.00158514030722019,
- 0.00062587894057936,
- 0.00035303965324001],
- [0.96726540940724300,
- 1.03084161446685000,
- 1.04551821911720000,
- 1.01249668698901000,
- 0.91377904610163700,
- 0.71793506186340200,
- 0.67630912102504800,
- 0.81996977584158100,
- 1.05847758500203000,
- 1.33386431492214000,
- 1.36610600401065000,
- 1.11490766666616000,
- 0.87264547467534200,
- 0.81805292713174800,
- 0.89240386671080400,
- 0.86800712885521700,
- 0.80860485322858600,
- 0.90961820179781800,
- 1.18839220506104000,
- 1.77284683642290000,
- 2.37438923518884000]
- ],[
- [27749565,
- 13838477,
- 13911088,
- 24.59760821726010,
- 24.93140692365050,
- 24.25806641635340,
- 77.89121151531350],
- [0.13460476947529500,
- 0.14372006850062500,
- 0.12847108657610600,
- 0.09875785820893480,
- 0.07155805029015120,
- 0.06299959058572970,
- 0.06669930695548060,
- 0.06620210601954020,
- 0.05883374707069510,
- 0.04833706700819440,
- 0.03521801565126300,
- 0.02559536412958920,
- 0.02062306586521670,
- 0.01576211515574400,
- 0.01023801649094930,
- 0.00572503164287636,
- 0.00307516687772024,
- 0.00165330051290922,
- 0.00104697926747485,
- 0.00087929371550523],
- [0.13970508453303800,
- 0.13975442365362800,
- 0.11681679473806300,
- 0.09435373241811580,
- 0.08802952295423720,
- 0.08580953135424240,
- 0.07740975573970180,
- 0.06538018068005290,
- 0.04960049471620990,
- 0.03735678030431880,
- 0.02976493031984740,
- 0.02384624281925690,
- 0.01786909883056510,
- 0.01280223896627530,
- 0.00854305561048803,
- 0.00534781144388522,
- 0.00336845668342047,
- 0.00201559921183726,
- 0.00124722944598909,
- 0.00097903557682698],
- [0.99478035075329800,
- 0.95846318148882600,
- 1.02300804808641000,
- 1.09402516010135000,
- 1.04121346671673000,
- 0.80864396372867400,
- 0.73034724501018900,
- 0.85714209189972800,
- 1.00728620755889000,
- 1.17996112502462000,
- 1.28717635944761000,
- 1.17702912743046000,
- 1.06774746443199000,
- 1.14809486978252000,
- 1.22477345443636000,
- 1.19214694369792000,
- 1.06494947429125000,
- 0.90816533289574900,
- 0.81597117843348200,
- 0.83506239070880300,
- 0.89343444858290900]
- ],[
- [27773083,
- 14068521,
- 13704562,
- 26.03124974398200,
- 26.46223974345070,
- 25.59233340000260,
- 66.99286359589060],
- [0.11075465721807600,
- 0.12531352270434800,
- 0.12461977157255700,
- 0.11125959454297800,
- 0.08638877858554280,
- 0.06731675090789110,
- 0.06187750302195390,
- 0.06283663484842800,
- 0.05868334457568110,
- 0.05026814063111530,
- 0.04079416969542070,
- 0.03139012243581270,
- 0.02388339994025160,
- 0.01756428234835730,
- 0.01203845901370310,
- 0.00701750790134651,
- 0.00386618590184589,
- 0.00206610447696370,
- 0.00117506121489637,
- 0.00088600846283140],
- [0.11432537302481000,
- 0.12667609073231400,
- 0.11974891524623500,
- 0.10506132545858400,
- 0.09301444384053810,
- 0.08267846594852100,
- 0.07221670745205490,
- 0.06493541188927070,
- 0.05720135869997910,
- 0.04682451198762990,
- 0.03485427327295350,
- 0.02629070404866000,
- 0.01998999845792230,
- 0.01428519039077750,
- 0.00980039073555805,
- 0.00599266397652053,
- 0.00331791767499821,
- 0.00156650907345305,
- 0.00072094415435746,
- 0.00049880393486330],
- [1.02655750690901000,
- 0.99449511323857500,
- 1.01551553024478000,
- 1.06831332671397000,
- 1.08712098857701000,
- 0.95343309606544400,
- 0.83582242597784900,
- 0.87958614394243600,
- 0.99337814815975000,
- 1.05315379343805000,
- 1.10205392288684000,
- 1.20150435531963000,
- 1.22567146812179000,
- 1.22649751828565000,
- 1.26219850103057000,
- 1.26098752647638000,
- 1.20211569414631000,
- 1.19619066818704000,
- 1.35395006440030000,
- 1.67317801793479000,
- 1.82343918147671000]
- ],[
- [27763227,
- 14197178,
- 13566049,
- 27.18018253648030,
- 27.20726467467510,
- 27.15223055717600,
- 58.62068064918010],
- [0.09684619409307840,
- 0.11118728522535100,
- 0.12478646127724500,
- 0.11986149426641600,
- 0.09520840637648180,
- 0.07266436962641580,
- 0.06157942773922730,
- 0.05776990145557140,
- 0.05595079146694350,
- 0.05422906155293650,
- 0.04606394160905190,
- 0.03460401579477880,
- 0.02431694855838520,
- 0.01695117276859440,
- 0.01211661291564830,
- 0.00784551008485565,
- 0.00430794264393258,
- 0.00206401896375649,
- 0.00099084255721430,
- 0.00065560102411584],
- [0.09693358901304290,
- 0.10652960384957600,
- 0.11580433409088400,
- 0.11321777793810400,
- 0.09912292067710200,
- 0.08131783917502760,
- 0.07048109387720830,
- 0.06833459006738460,
- 0.06313644652192900,
- 0.05255568033191890,
- 0.03903863379099840,
- 0.02910689297792140,
- 0.02269025908501970,
- 0.01651322011205660,
- 0.01126491285383100,
- 0.00657328507941835,
- 0.00372023325715849,
- 0.00195236631466226,
- 0.00099341991698984,
- 0.00071290106976617],
- [1.04652268320717000,
- 1.04557914271650000,
- 1.09227868937597000,
- 1.12769408251422000,
- 1.10793353197135000,
- 1.00519391705143000,
- 0.93515656400210500,
- 0.91434829403035100,
- 0.88472781091218400,
- 0.92741634411137500,
- 1.07984413189527000,
- 1.23485263418514000,
- 1.24416877771066000,
- 1.12154903817441000,
- 1.07427786276195000,
- 1.12564654732811000,
- 1.24907168423899000,
- 1.21184866195041000,
- 1.10637161065473000,
- 1.04380755195023000,
- 0.96240750921599800]
- ],[
- [27754352,
- 14075999,
- 13678353,
- 29.11682279982730,
- 29.25251358929000,
- 28.97478042663600,
- 50.90167162031000],
- [0.07773301902264660,
- 0.09756477612918870,
- 0.11769211568808000,
- 0.11953094319783700,
- 0.10070874902748300,
- 0.07710380627667010,
- 0.06107481209270700,
- 0.05557245339785060,
- 0.05625960991605260,
- 0.05655944052572760,
- 0.05050018273054490,
- 0.03998167380585820,
- 0.03018284824156070,
- 0.02178128532719260,
- 0.01546004923447120,
- 0.01053184010191340,
- 0.00618324070639374,
- 0.00309253762350306,
- 0.00148564380196157,
- 0.00100097315235749],
- [0.07414870947175290,
- 0.08945795766137910,
- 0.11321883781048900,
- 0.11651658562245200,
- 0.09931926283967810,
- 0.08029240511352740,
- 0.07198971835798040,
- 0.07305219001114050,
- 0.06968907391161920,
- 0.06031073521142600,
- 0.04701710534217110,
- 0.03436632086919040,
- 0.02578058253156860,
- 0.01918327371957260,
- 0.01236986721101920,
- 0.00632468067099160,
- 0.00324813634215291,
- 0.00173308253350124,
- 0.00107597562154257,
- 0.00090549914684498],
- [1.02907119007676000,
- 1.07881594924275000,
- 1.12232721275485000,
- 1.06972980730035000,
- 1.05569391096106000,
- 1.04346799653703000,
- 0.98820437091643300,
- 0.87304591541007500,
- 0.78283773210481600,
- 0.83076356851850300,
- 0.96506352588551000,
- 1.10530588311237000,
- 1.19721831153422000,
- 1.20479432618776000,
- 1.16843941971104000,
- 1.28614891275391000,
- 1.71360639234849000,
- 1.95896791328722000,
- 1.83628956559048000,
- 1.42088092397757000,
- 1.13757438283678000]
- ]
-] \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html b/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html
deleted file mode 100755
index 082b623a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Resizable Plots</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="point-labels.html">Previous</a> <a href="./">Examples</a> <a href="rotated-tick-labels.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- body {
- font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
- }
-
- p, pre {
- margin: 1.5em;
- }
-
- body table {
- margin: 2em;
- }
-
- #resizable1, #resizable2 {
- width: 440px;
- height: 330px;
- margin-top: 2em;
- margin-bottom: 2em;
- padding: 1.2em;
- }
-
-
- .jqplot-target {
- font-size: 16px;
- }
-
- .ui-resizable-helper {
- border: 2px solid gray;
- }
- </style>
-
-<p>Plot targets can be placed inside of resizable containers for dynamic plot sizing. The examples here use the jQuery UI package for resizing functionality.</p>
-
- <table><tr>
- <td>
-<div id="resizable1" class="ui-widget-content">
- <div id="chart1" style="height:96%; width:96%;"></div>
-</div>
-</td>
-<td>
-
-<p>The first plot has good resize performance in Firefox, Safari and other canvas enabled browsers. The plot will resize dynamically with the container. IE performance will be slow since IE doesn't natively support the canvas element.</p>
-
-<p>Resizing is handled by binding a handler to the 'resize' event. The handler function replots the plot during resize. Here, the plot targets's height and width must be specified as a percentage of the container and the container must be visible.</p>
-
-<p>The event handler looks like:</p>
-<pre>
- $('#resizable1').bind('resize', function(event, ui) {
- plot1.replot( { resetAxes: true } );
- });
-</pre>
-</td>
-</tr></table>
-<table><tr>
- <td>
-
-<div id="resizable2" class="ui-widget-content">
- <div id="chart2" style="height:96%; width:96%;"></div>
-</div>
-</td>
-<td>
-<p>The second plot uses an alternative sizing method that is more responsive in all browsers, especially IE. The differnece? First, the plot target is given a static height and width that will fit inside the resizable container. Then, instead of resizing dynamically with the container, the plots replot() method is called at the end of the resize. When resizing is done, the plot targets hieght and width are set to a percentage of the container's and then the replot method is called.</p>
-
-<p>Also, an options object is passed into the replot method. It contains a single option, resetAxes, which, if true, resets all axes so the min, max, numberTicks and tickInterval are recalculated.</p>
-<pre>
- $('#resizable2').bind('resizestop', function(event, ui) {
- $('#chart2').height($('#resizable2').height()*0.96);
- $('#chart2').width($('#resizable2').width()*0.96);
- plot2.replot({resetAxes:true});
- });
-</pre>
-
-<p>You can also pass in option objects to reset specific axes like:</p>
-
-<pre>
- {resetAxes:['yaxis', 'y2axis']};
-
- or
-
- {resetAxes:{yaxis:true, y2axis:true}};
-</pre>
-
-</td></tr></table>
-
-<pre class="code brush:js"></pre>
-
-
- <script type="text/javascript" class="code">
-
- $(document).ready(function(){
-
- $.jqplot._noToImageButton = true;
-
- var l1 = [18, 36, 41, 93, 100, 115, 133, 129, 119, 107, 91, 146, 169];
- var l2 = [[8, 66], [13, 46], [22,14]];
- var l3 = [[3.3, 7], [9.5, 22], [12.1, 37], [18.6, 95], [24, 102]];
-
- var options = {
- title: "Lines",
- legend:{show:true, location:'se'},
- seriesDefaults:{trendline:{show:true, type:"exp"}},
- axes:{
- yaxis:{
- renderer:$.jqplot.LogAxisRenderer
- }
- }
- };
-
- $("#resizable1").resizable({delay:20});
- $("#resizable2").resizable({delay:20, helper:'ui-resizable-helper'});
-
- $('#resizable1').bind('resize', function(event, ui) {
- // pass in resetAxes: true option to get rid of old ticks and axis properties
- // which should be recomputed based on new plot size.
- plot1.replot( { resetAxes: true } );
- });
-
- $('#resizable2').bind('resizestop', function(event, ui) {
- $('#chart2').height($('#resizable2').height()*0.96);
- $('#chart2').width($('#resizable2').width()*0.96);
- // pass in resetAxes: true option to get rid of old ticks and axis properties
- // which should be recomputed based on new plot size.
- plot2.replot( { resetAxes:true } );
- });
-
- var plot1 = $.jqplot('chart1', [l1, l3], options);
- var plot2 = $.jqplot('chart2', [l1, l3], options);
-
- });
-
- </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.trendline.min.js"></script>
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html b/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html
deleted file mode 100755
index e80830ad..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html
+++ /dev/null
@@ -1,216 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Rotated Labels and Font Styling</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="resizablePlot.html">Previous</a> <a href="./">Examples</a> <a href="rotatedTickLabelsZoom.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<p>Rotated axis tick labels are possible through the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisTickRenderer.min.js" plugins. Native canvas font rendering capabilities are used in supported browsers. This includes most recent browsers (including IE 9). In browsers which don't support native canvas font text, text is rendered in the Hershey font.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-
-<p>For comparison, here is the same graph with the "fontFamily" and "fontSize" set. If you have a supported browser, you should see a difference in label fonts.</p>
-
-<div id="chart1b" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>The default positioning applies to either primary or secondary axes and accounts for label rotation to ensure that the labels point to the appropriate bar or tick position.</p>
-
-<p>Also note here the use of the "autoscale" option on the y axes. Turning this option on will force the y axes to line up tick marks for consistend grid lines across the grid.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>You can override the default position by specifying a labelPosition of 'start', 'middle' or 'end'. The results probably are not as pleasing as the default 'auto' setting.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15],
- ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3],
- ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
-
- var plot1 = $.jqplot('chart1', [line1], {
- title: 'Concern vs. Occurrance',
- series:[{renderer:$.jqplot.BarRenderer}],
- axesDefaults: {
- tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
- tickOptions: {
- angle: -30,
- fontSize: '10pt'
- }
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15],
- ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3],
- ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
- var plot1b = $.jqplot('chart1b', [line1], {
- title: 'Concern vs. Occurrance',
- series:[{renderer:$.jqplot.BarRenderer}],
- axesDefaults: {
- tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
- tickOptions: {
- fontFamily: 'Georgia',
- fontSize: '10pt',
- angle: -30
- }
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- }
- }
- });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15],
- ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3],
- ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
- var line2 = [['Nickle', 28], ['Aluminum', 13], ['Xenon', 54], ['Silver', 47],
- ['Sulfer', 16], ['Silicon', 14], ['Vanadium', 23]];
-
- var plot2 = $.jqplot('chart2', [line1, line2], {
- series:[{renderer:$.jqplot.BarRenderer}, {xaxis:'x2axis', yaxis:'y2axis'}],
- axesDefaults: {
- tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
- tickOptions: {
- angle: 30
- }
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer
- },
- x2axis: {
- renderer: $.jqplot.CategoryAxisRenderer
- },
- yaxis: {
- autoscale:true
- },
- y2axis: {
- autoscale:true
- }
- }
- });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15],
- ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3],
- ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
- var plot3 = $.jqplot('chart3', [line1], {
- title: 'Concern vs. Occurrance',
- series:[{renderer:$.jqplot.BarRenderer}],
- axesDefaults: {
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -30
- }
- },
- axes: {
- xaxis: {
- renderer: $.jqplot.CategoryAxisRenderer,
- tickOptions: {
- labelPosition: 'middle'
- }
- },
- yaxis: {
- autoscale:true,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- labelPosition: 'start'
- }
- }
- }
- });
-});
-</script>
-
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html b/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html
deleted file mode 100755
index 902b021b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Date Axes, Rotated Labels and Zooming</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="rotated-tick-labels.html">Previous</a> <a href="./">Examples</a> <a href="selectorSyntax.html">Next</a></div>
-
- <div class="example-plot" id="chart" style="width: 600px; height: 400px;"></div>
-
-<!-- Example scripts go here -->
-
-<style type="text/css">
- .jqplot-target: {
- margin-left: 70px;
- }
-</style>
-
-<script type="text/javascript" class="code">
-
-$(document).ready(function(){
- // Enable plugins like highlighter and cursor by default.
- // Otherwise, must specify show: true option for those plugins.
- $.jqplot.config.enablePlugins = true;
-
- var line1=[['2008-09-30', 4], ['2008-10-30', 6.5], ['2008-11-30', 5.7], ['2008-12-30', 9],
- ['2009-01-30', 8.2], ['2009-02-28', 7.6], ['2009-03-30', 11.4], ['2009-04-30', 16.2],
- ['2009-05-30', 21.8], ['2009-06-30', 19.3], ['2009-07-30', 29.7], ['2009-08-30', 36.7],
- ['2009-09-30', 38.7], ['2009-10-30', 33.7], ['2009-11-30', 49.7], ['2009-12-30', 62.7]];
-
- var plot1 = $.jqplot('chart', [line1], {
- title:'Rotated Axis Text',
- axes:{
- xaxis:{
- renderer:$.jqplot.DateAxisRenderer,
- rendererOptions:{
- tickRenderer:$.jqplot.CanvasAxisTickRenderer
- },
- tickOptions:{
- fontSize:'10pt',
- fontFamily:'Tahoma',
- angle:-40
- }
- },
- yaxis:{
- rendererOptions:{
- tickRenderer:$.jqplot.CanvasAxisTickRenderer},
- tickOptions:{
- fontSize:'10pt',
- fontFamily:'Tahoma',
- angle:30
- }
- }
- },
- series:[{ lineWidth:4, markerOptions:{ style:'square' } }],
- cursor:{
- zoom:true,
- looseZoom: true
- }
- });
-
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <!-- to render rotated axis ticks, include both the canvasText and canvasAxisTick renderers -->
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html b/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html
deleted file mode 100755
index 3dad914e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Plot Creation with jQuery Selectors</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="rotatedTickLabelsZoom.html">Previous</a> <a href="./">Examples</a> <a href="smoothedLine.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<div class="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<div class="jqplot" style="height:300px; width:500px;"></div>
-
-<div class="jqplot" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // Use jQuery selector for a specific element ID.
- $('#chart1').jqplot([[3,7,9,1,5,3,8,2,5]]);
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // jQuery selector for elements with a specific class attribute.
- // Here, there is one div with the class "chart2"
- $(".chart2").jqplot ([[3,7,9,1,5,3,8,2,5]], {
- title: "Plot With Options",
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- seriesDefaults: {
- rendererOptions: {
- smooth: true
- }
- },
- axes: {
- xaxis: {
- label: "X Axis",
- pad: 0
- },
- yaxis: {
- label: "Y Axis"
- }
- }
- });
-});
-
-// the jqPlot plot object can be accessed through the jQuery "data" method:
-//
-// >>> $('.chart2').data('jqplot').series[0].data
-// [[1, 3], [2, 7], [3, 9], [4, 1], [5, 5], [6, 3], [7, 8], [8, 2], [9, 5]]
-
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- // Some simple loops to build up data arrays.
- var cosPoints = [];
- for (var i=0; i<2*Math.PI; i+=1){
- cosPoints.push([i, Math.cos(i)]);
- }
-
- var sinPoints = [];
- for (var i=0; i<2*Math.PI; i+=0.4){
- sinPoints.push([i, 2*Math.sin(i-.8)]);
- }
-
- var powPoints1 = [];
- for (var i=0; i<2*Math.PI; i+=1) {
- powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]);
- }
-
- var powPoints2 = [];
- for (var i=0; i<2*Math.PI; i+=1) {
- powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]);
- }
-
- // jQuery selector for all divs with a class of "jqplot".
- // Here, there are two divs that match. By supplying 2 seperate
- // arrays of data, each plot will have it's own independent series.
- // Only one options array is supplied, so it will be used for both
- // plots.
- $("div.jqplot").jqplot([cosPoints, sinPoints], [powPoints1, powPoints2], {
- title: "One Selector, Multiple Plots",
- seriesDefaults: {
- rendererOptions: {
- smooth: true
- }
- }
- });
-
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html b/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html
deleted file mode 100755
index 782a44d4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Smoothed Lines</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="selectorSyntax.html">Previous</a> <a href="./">Examples</a> <a href="theming.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- body {
- background-color: #f3f3f3;
- }
- </style>
-
-
- <div id="chart1" style="height:400px; width:600px;"></div>
-
- <pre class="code brush:js"></pre>
-
- <script type="text/javascript" class="code">
- $(document).ready(function(){
-
- var d1 = [[0, -10.3], [1, 7.0], [2, 15.7], [3, 0.5], [4, -10.4], [5, 1.1], [6, 13.2],
- [7, 1.8], [8, -4.5], [9, -1.8], [10, 2.0], [11, 3.0], [12, -3.5], [13, -7.4], [14, -11.3]];
- var d2 = [[0, 1.3], [1, 12.8], [2, -8.2], [3, -5.2], [4, 16.4], [5, -5.3], [6, 8.1],
- [7, 15.1], [8, -4.4], [9, 7.8], [10, -1.4], [11, 0.2], [12, 1.3], [13, 11.7], [14, -9.7]];
-
- var plot1 = $.jqplot('chart1', [d1, d2], {
- grid: {
- drawBorder: false,
- shadow: false,
- background: 'rgba(0,0,0,0)'
- },
- highlighter: { show: true },
- seriesDefaults: {
- shadowAlpha: 0.1,
- shadowDepth: 2,
- fillToZero: true
- },
- series: [
- {
- color: 'rgba(198,88,88,.6)',
- negativeColor: 'rgba(100,50,50,.6)',
- showMarker: true,
- showLine: true,
- fill: true,
- fillAndStroke: true,
- markerOptions: {
- style: 'filledCircle',
- size: 8
- },
- rendererOptions: {
- smooth: true
- }
- },
- {
- color: 'rgba(44, 190, 160, 0.7)',
- showMarker: true,
- rendererOptions: {
- smooth: true,
- },
- markerOptions: {
- style: 'filledSquare',
- size: 8
- },
- }
- ],
- axes: {
- xaxis: {
- // padding of 0 or of 1 produce same results, range
- // is multiplied by 1x, so it is not padded.
- pad: 1.0,
- tickOptions: {
- showGridline: false
- }
- },
- yaxis: {
- pad: 1.05
- }
- }
- });
-
- });
-
- </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE
deleted file mode 100755
index 3f9959fc..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE
+++ /dev/null
@@ -1,165 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library. \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE
deleted file mode 100755
index e7c70ba1..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2003, 2004 Jim Weirich
-
-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.
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js
deleted file mode 100755
index 4e29bdde..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d<c.9;d++)i[c[d]]=a}2 o(c){1 a=r.H("J"),d=3;a.K=c;a.M="L/t";a.G="t";a.u=a.v=2(){6(!d&&(!8.7||8.7=="F"||8.7=="z")){d=q;e[c]=q;a:{4(1 p y e)6(e[p]==3)B a;j&&5.C(k)}a.u=a.v=x;a.D.O(a)}};r.N.R(a)}1 f=Q,l=h.P(),i={},e={},j=3,k=x,b;5.T=2(c){k=c;j=q};4(b=0;b<f.9;b++){1 m=f[b].w?f[b]:f[b].S(/\\s+/),g=m.w();n(m,g)}4(b=0;b<l.9;b++)6(g=i[l[b].E.A]){e[g]=3;o(g)}}})();',56,56,'|var|function|false|for|SyntaxHighlighter|if|readyState|this|length|||||||||||||||||true|document||javascript|onload|onreadystatechange|pop|null|in|complete|brush|break|highlight|parentNode|params|loaded|language|createElement|autoloader|script|src|text|type|body|removeChild|findElements|arguments|appendChild|split|all'.split('|'),0,{}))
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js
deleted file mode 100755
index b8df12a1..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(h,b,j,f,g,i){g=function(a){return(a<b?"":g(parseInt(a/b)))+((a=a%b)>35?String.fromCharCode(a+29):a.toString(36))};if(!"".replace(/^/,String)){while(j--){i[g(j)]=f[j]||g(j)}f=[function(a){return i[a]}];g=function(){return"\\w+"};j=1}while(j--){if(f[j]){h=h.replace(new RegExp("\\b"+g(j)+"\\b","g"),f[j])}}return h}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d<c.9;d++)i[c[d]]=a}2 o(c){1 a=r.H("J"),d=3;a.K=c;a.M="L/t";a.G="t";a.u=a.v=2(){6(!d&&(!8.7||8.7=="F"||8.7=="z")){d=q;e[c]=q;a:{4(1 p y e)6(e[p]==3)B a;j&&5.C(k)}a.u=a.v=x;a.D.O(a)}};r.N.R(a)}1 f=Q,l=h.P(),i={},e={},j=3,k=x,b;5.T=2(c){k=c;j=q};4(b=0;b<f.9;b++){1 m=f[b].w?f[b]:f[b].S(/\\s+/),g=m.w();n(m,g)}4(b=0;b<l.9;b++)6(g=i[l[b].E.A]){e[g]=3;o(g)}}})();',56,56,"|var|function|false|for|SyntaxHighlighter|if|readyState|this|length|||||||||||||||||true|document||javascript|onload|onreadystatechange|pop|null|in|complete|brush|break|highlight|parentNode|params|loaded|language|createElement|autoloader|script|src|text|type|body|removeChild|findElements|arguments|appendChild|split|all".split("|"),0,{})); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js
deleted file mode 100755
index ff98daba..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-;(function()
-{
- // CommonJS
- typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
-
- function Brush()
- {
- var keywords = 'break case catch continue ' +
- 'default delete do else false ' +
- 'for function if in instanceof ' +
- 'new null return super switch ' +
- 'this throw true try typeof var while with'
- ;
-
- var r = SyntaxHighlighter.regexLib;
-
- this.regexList = [
- { regex: r.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings
- { regex: r.multiLineSingleQuotedString, css: 'string' }, // single quoted strings
- { regex: r.singleLineCComments, css: 'comments' }, // one line comments
- { regex: r.multiLineCComments, css: 'comments' }, // multiline comments
- { regex: /\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion
- { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keywords
- ];
-
- this.forHtmlScript(r.scriptScriptTags);
- };
-
- Brush.prototype = new SyntaxHighlighter.Highlighter();
- Brush.aliases = ['js', 'jscript', 'javascript'];
-
- SyntaxHighlighter.brushes.JScript = Brush;
-
- // CommonJS
- typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js
deleted file mode 100755
index c9dc5868..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){typeof(require)!="undefined"?SyntaxHighlighter=require("shCore").SyntaxHighlighter:null;function a(){var b="break case catch continue default delete do else false for function if in instanceof new null return super switch this throw true try typeof var while with";var c=SyntaxHighlighter.regexLib;this.regexList=[{regex:c.multiLineDoubleQuotedString,css:"string"},{regex:c.multiLineSingleQuotedString,css:"string"},{regex:c.singleLineCComments,css:"comments"},{regex:c.multiLineCComments,css:"comments"},{regex:/\s*#.*/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"keyword"}];this.forHtmlScript(c.scriptScriptTags)}a.prototype=new SyntaxHighlighter.Highlighter();a.aliases=["js","jscript","javascript"];SyntaxHighlighter.brushes.JScript=a;typeof(exports)!="undefined"?exports.Brush=a:null})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js
deleted file mode 100755
index 69d9fd0b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-;(function()
-{
- // CommonJS
- typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
-
- function Brush()
- {
- function process(match, regexInfo)
- {
- var constructor = SyntaxHighlighter.Match,
- code = match[0],
- tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
- result = []
- ;
-
- if (match.attributes != null)
- {
- var attributes,
- regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
- '\\s*=\\s*' +
- '(?<value> ".*?"|\'.*?\'|\\w+)',
- 'xg');
-
- while ((attributes = regex.exec(code)) != null)
- {
- result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
- result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
- }
- }
-
- if (tag != null)
- result.push(
- new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
- );
-
- return result;
- }
-
- this.regexList = [
- { regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'), css: 'color2' }, // <![ ... [ ... ]]>
- { regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // <!-- ... -->
- { regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
- ];
- };
-
- Brush.prototype = new SyntaxHighlighter.Highlighter();
- Brush.aliases = ['xml', 'xhtml', 'xslt', 'html'];
-
- SyntaxHighlighter.brushes.Xml = Brush;
-
- // CommonJS
- typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js
deleted file mode 100755
index a1c959c7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){typeof(require)!="undefined"?SyntaxHighlighter=require("shCore").SyntaxHighlighter:null;function a(){function b(f,j){var g=SyntaxHighlighter.Match,i=f[0],d=new XRegExp("(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)","xg").exec(i),c=[];if(f.attributes!=null){var e,h=new XRegExp("(?<name> [\\w:\\-\\.]+)\\s*=\\s*(?<value> \".*?\"|'.*?'|\\w+)","xg");while((e=h.exec(i))!=null){c.push(new g(e.name,f.index+e.index,"color1"));c.push(new g(e.value,f.index+e.index+e[0].indexOf(e.value),"string"))}}if(d!=null){c.push(new g(d.name,f.index+d[0].indexOf(d.name),"keyword"))}return c}this.regexList=[{regex:new XRegExp("(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)","gm"),css:"color2"},{regex:SyntaxHighlighter.regexLib.xmlComments,css:"comments"},{regex:new XRegExp("(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)","sg"),func:b}]}a.prototype=new SyntaxHighlighter.Highlighter();a.aliases=["xml","xhtml","xslt","html"];SyntaxHighlighter.brushes.Xml=a;typeof(exports)!="undefined"?exports.Brush=a:null})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js
deleted file mode 100755
index b47b6454..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+=" ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,'||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83'.split('|'),0,{}))
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js
deleted file mode 100755
index 0ec48344..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(h,b,j,f,g,i){g=function(a){return(a<b?"":g(parseInt(a/b)))+((a=a%b)>35?String.fromCharCode(a+29):a.toString(36))};if(!"".replace(/^/,String)){while(j--){i[g(j)]=f[j]||g(j)}f=[function(a){return i[a]}];g=function(){return"\\w+"};j=1}while(j--){if(f[j]){h=h.replace(new RegExp("\\b"+g(j)+"\\b","g"),f[j])}}return h}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+=" ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,"||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83".split("|"),0,{})); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css
deleted file mode 100755
index 34f6864a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter a,
-.syntaxhighlighter div,
-.syntaxhighlighter code,
-.syntaxhighlighter table,
-.syntaxhighlighter table td,
-.syntaxhighlighter table tr,
-.syntaxhighlighter table tbody,
-.syntaxhighlighter table thead,
-.syntaxhighlighter table caption,
-.syntaxhighlighter textarea {
- -moz-border-radius: 0 0 0 0 !important;
- -webkit-border-radius: 0 0 0 0 !important;
- background: none !important;
- border: 0 !important;
- bottom: auto !important;
- float: none !important;
- height: auto !important;
- left: auto !important;
- line-height: 1.1em !important;
- margin: 0 !important;
- outline: 0 !important;
- overflow: visible !important;
- padding: 0 !important;
- position: static !important;
- right: auto !important;
- text-align: left !important;
- top: auto !important;
- vertical-align: baseline !important;
- width: auto !important;
- box-sizing: content-box !important;
- font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
- font-weight: normal !important;
- font-style: normal !important;
- font-size: 1em !important;
- min-height: inherit !important;
- min-height: auto !important;
-}
-
-.syntaxhighlighter {
- width: 100% !important;
- margin: 1em 0 1em 0 !important;
- position: relative !important;
- overflow: auto !important;
- font-size: 1em !important;
-}
-.syntaxhighlighter.source {
- overflow: hidden !important;
-}
-.syntaxhighlighter .bold {
- font-weight: bold !important;
-}
-.syntaxhighlighter .italic {
- font-style: italic !important;
-}
-.syntaxhighlighter .line {
- white-space: pre !important;
-}
-.syntaxhighlighter table {
- width: 100% !important;
-}
-.syntaxhighlighter table caption {
- text-align: left !important;
- padding: .5em 0 0.5em 1em !important;
-}
-.syntaxhighlighter table td.code {
- width: 100% !important;
-}
-.syntaxhighlighter table td.code .container {
- position: relative !important;
-}
-.syntaxhighlighter table td.code .container textarea {
- box-sizing: border-box !important;
- position: absolute !important;
- left: 0 !important;
- top: 0 !important;
- width: 100% !important;
- height: 100% !important;
- border: none !important;
- background: white !important;
- padding-left: 1em !important;
- overflow: hidden !important;
- white-space: pre !important;
-}
-.syntaxhighlighter table td.gutter .line {
- text-align: right !important;
- padding: 0 0.5em 0 1em !important;
-}
-.syntaxhighlighter table td.code .line {
- padding: 0 1em !important;
-}
-.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
- padding-left: 0em !important;
-}
-.syntaxhighlighter.show {
- display: block !important;
-}
-.syntaxhighlighter.collapsed table {
- display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
- padding: 0.1em 0.8em 0em 0.8em !important;
- font-size: 1em !important;
- position: static !important;
- width: auto !important;
- height: auto !important;
-}
-.syntaxhighlighter.collapsed .toolbar span {
- display: inline !important;
- margin-right: 1em !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a {
- padding: 0 !important;
- display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource {
- display: inline !important;
-}
-.syntaxhighlighter .toolbar {
- position: absolute !important;
- right: 1px !important;
- top: 1px !important;
- width: 11px !important;
- height: 11px !important;
- font-size: 10px !important;
- z-index: 10 !important;
-}
-.syntaxhighlighter .toolbar span.title {
- display: inline !important;
-}
-.syntaxhighlighter .toolbar a {
- display: block !important;
- text-align: center !important;
- text-decoration: none !important;
- padding-top: 1px !important;
-}
-.syntaxhighlighter .toolbar a.expandSource {
- display: none !important;
-}
-.syntaxhighlighter.ie {
- font-size: .9em !important;
- padding: 1px 0 1px 0 !important;
-}
-.syntaxhighlighter.ie .toolbar {
- line-height: 8px !important;
-}
-.syntaxhighlighter.ie .toolbar a {
- padding-top: 0px !important;
-}
-.syntaxhighlighter.printing .line.alt1 .content,
-.syntaxhighlighter.printing .line.alt2 .content,
-.syntaxhighlighter.printing .line.highlighted .number,
-.syntaxhighlighter.printing .line.highlighted.alt1 .content,
-.syntaxhighlighter.printing .line.highlighted.alt2 .content {
- background: none !important;
-}
-.syntaxhighlighter.printing .line .number {
- color: #bbbbbb !important;
-}
-.syntaxhighlighter.printing .line .content {
- color: black !important;
-}
-.syntaxhighlighter.printing .toolbar {
- display: none !important;
-}
-.syntaxhighlighter.printing a {
- text-decoration: none !important;
-}
-.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
- color: black !important;
-}
-.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
- color: #008200 !important;
-}
-.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
- color: blue !important;
-}
-.syntaxhighlighter.printing .keyword {
- color: #006699 !important;
- font-weight: bold !important;
-}
-.syntaxhighlighter.printing .preprocessor {
- color: gray !important;
-}
-.syntaxhighlighter.printing .variable {
- color: #aa7700 !important;
-}
-.syntaxhighlighter.printing .value {
- color: #009900 !important;
-}
-.syntaxhighlighter.printing .functions {
- color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .constants {
- color: #0066cc !important;
-}
-.syntaxhighlighter.printing .script {
- font-weight: bold !important;
-}
-.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
- color: gray !important;
-}
-.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
- color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
- color: red !important;
-}
-.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
- color: black !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css
deleted file mode 100755
index a2d3a61f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;height:auto!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace!important;font-weight:normal!important;font-style:normal!important;font-size:1em!important;min-height:inherit!important;min-height:auto!important;}.syntaxhighlighter{width:100%!important;margin:1em 0 1em 0!important;position:relative!important;overflow:auto!important;font-size:1em!important;}.syntaxhighlighter.source{overflow:hidden!important;}.syntaxhighlighter .bold{font-weight:bold!important;}.syntaxhighlighter .italic{font-style:italic!important;}.syntaxhighlighter .line{white-space:pre!important;}.syntaxhighlighter table{width:100%!important;}.syntaxhighlighter table caption{text-align:left!important;padding:.5em 0 .5em 1em!important;}.syntaxhighlighter table td.code{width:100%!important;}.syntaxhighlighter table td.code .container{position:relative!important;}.syntaxhighlighter table td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important;}.syntaxhighlighter table td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important;}.syntaxhighlighter table td.code .line{padding:0 1em!important;}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important;}.syntaxhighlighter.show{display:block!important;}.syntaxhighlighter.collapsed table{display:none!important;}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important;height:auto!important;}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important;}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important;}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important;}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important;}.syntaxhighlighter .toolbar span.title{display:inline!important;}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important;}.syntaxhighlighter .toolbar a.expandSource{display:none!important;}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important;}.syntaxhighlighter.ie .toolbar{line-height:8px!important;}.syntaxhighlighter.ie .toolbar a{padding-top:0!important;}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important;}.syntaxhighlighter.printing .line .number{color:#bbb!important;}.syntaxhighlighter.printing .line .content{color:black!important;}.syntaxhighlighter.printing .toolbar{display:none!important;}.syntaxhighlighter.printing a{text-decoration:none!important;}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important;}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important;}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important;}.syntaxhighlighter.printing .keyword{color:#069!important;font-weight:bold!important;}.syntaxhighlighter.printing .preprocessor{color:gray!important;}.syntaxhighlighter.printing .variable{color:#a70!important;}.syntaxhighlighter.printing .value{color:#090!important;}.syntaxhighlighter.printing .functions{color:#ff1493!important;}.syntaxhighlighter.printing .constants{color:#06c!important;}.syntaxhighlighter.printing .script{font-weight:bold!important;}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important;}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important;}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important;}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css
deleted file mode 100755
index 08f9e10e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css
+++ /dev/null
@@ -1,328 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter a,
-.syntaxhighlighter div,
-.syntaxhighlighter code,
-.syntaxhighlighter table,
-.syntaxhighlighter table td,
-.syntaxhighlighter table tr,
-.syntaxhighlighter table tbody,
-.syntaxhighlighter table thead,
-.syntaxhighlighter table caption,
-.syntaxhighlighter textarea {
- -moz-border-radius: 0 0 0 0 !important;
- -webkit-border-radius: 0 0 0 0 !important;
- background: none !important;
- border: 0 !important;
- bottom: auto !important;
- float: none !important;
- height: auto !important;
- left: auto !important;
- line-height: 1.1em !important;
- margin: 0 !important;
- outline: 0 !important;
- overflow: visible !important;
- padding: 0 !important;
- position: static !important;
- right: auto !important;
- text-align: left !important;
- top: auto !important;
- vertical-align: baseline !important;
- width: auto !important;
- box-sizing: content-box !important;
- font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
- font-weight: normal !important;
- font-style: normal !important;
- font-size: 1em !important;
- min-height: inherit !important;
- min-height: auto !important;
-}
-
-.syntaxhighlighter {
- width: 100% !important;
- margin: 1em 0 1em 0 !important;
- position: relative !important;
- overflow: auto !important;
- font-size: 1em !important;
-}
-.syntaxhighlighter.source {
- overflow: hidden !important;
-}
-.syntaxhighlighter .bold {
- font-weight: bold !important;
-}
-.syntaxhighlighter .italic {
- font-style: italic !important;
-}
-.syntaxhighlighter .line {
- white-space: pre !important;
-}
-.syntaxhighlighter table {
- width: 100% !important;
-}
-.syntaxhighlighter table caption {
- text-align: left !important;
- padding: .5em 0 0.5em 1em !important;
-}
-.syntaxhighlighter table td.code {
- width: 100% !important;
-}
-.syntaxhighlighter table td.code .container {
- position: relative !important;
-}
-.syntaxhighlighter table td.code .container textarea {
- box-sizing: border-box !important;
- position: absolute !important;
- left: 0 !important;
- top: 0 !important;
- width: 100% !important;
- height: 100% !important;
- border: none !important;
- background: white !important;
- padding-left: 1em !important;
- overflow: hidden !important;
- white-space: pre !important;
-}
-.syntaxhighlighter table td.gutter .line {
- text-align: right !important;
- padding: 0 0.5em 0 1em !important;
-}
-.syntaxhighlighter table td.code .line {
- padding: 0 1em !important;
-}
-.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
- padding-left: 0em !important;
-}
-.syntaxhighlighter.show {
- display: block !important;
-}
-.syntaxhighlighter.collapsed table {
- display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
- padding: 0.1em 0.8em 0em 0.8em !important;
- font-size: 1em !important;
- position: static !important;
- width: auto !important;
- height: auto !important;
-}
-.syntaxhighlighter.collapsed .toolbar span {
- display: inline !important;
- margin-right: 1em !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a {
- padding: 0 !important;
- display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource {
- display: inline !important;
-}
-.syntaxhighlighter .toolbar {
- position: absolute !important;
- right: 1px !important;
- top: 1px !important;
- width: 11px !important;
- height: 11px !important;
- font-size: 10px !important;
- z-index: 10 !important;
-}
-.syntaxhighlighter .toolbar span.title {
- display: inline !important;
-}
-.syntaxhighlighter .toolbar a {
- display: block !important;
- text-align: center !important;
- text-decoration: none !important;
- padding-top: 1px !important;
-}
-.syntaxhighlighter .toolbar a.expandSource {
- display: none !important;
-}
-.syntaxhighlighter.ie {
- font-size: .9em !important;
- padding: 1px 0 1px 0 !important;
-}
-.syntaxhighlighter.ie .toolbar {
- line-height: 8px !important;
-}
-.syntaxhighlighter.ie .toolbar a {
- padding-top: 0px !important;
-}
-.syntaxhighlighter.printing .line.alt1 .content,
-.syntaxhighlighter.printing .line.alt2 .content,
-.syntaxhighlighter.printing .line.highlighted .number,
-.syntaxhighlighter.printing .line.highlighted.alt1 .content,
-.syntaxhighlighter.printing .line.highlighted.alt2 .content {
- background: none !important;
-}
-.syntaxhighlighter.printing .line .number {
- color: #bbbbbb !important;
-}
-.syntaxhighlighter.printing .line .content {
- color: black !important;
-}
-.syntaxhighlighter.printing .toolbar {
- display: none !important;
-}
-.syntaxhighlighter.printing a {
- text-decoration: none !important;
-}
-.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
- color: black !important;
-}
-.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
- color: #008200 !important;
-}
-.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
- color: blue !important;
-}
-.syntaxhighlighter.printing .keyword {
- color: #006699 !important;
- font-weight: bold !important;
-}
-.syntaxhighlighter.printing .preprocessor {
- color: gray !important;
-}
-.syntaxhighlighter.printing .variable {
- color: #aa7700 !important;
-}
-.syntaxhighlighter.printing .value {
- color: #009900 !important;
-}
-.syntaxhighlighter.printing .functions {
- color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .constants {
- color: #0066cc !important;
-}
-.syntaxhighlighter.printing .script {
- font-weight: bold !important;
-}
-.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
- color: gray !important;
-}
-.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
- color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
- color: red !important;
-}
-.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
- color: black !important;
-}
-
-.syntaxhighlighter {
- background-color: white !important;
-}
-.syntaxhighlighter .line.alt1 {
- background-color: white !important;
-}
-.syntaxhighlighter .line.alt2 {
- background-color: white !important;
-}
-.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
- background-color: #e0e0e0 !important;
-}
-.syntaxhighlighter .line.highlighted.number {
- color: black !important;
-}
-.syntaxhighlighter table caption {
- color: black !important;
-}
-.syntaxhighlighter .gutter {
- color: #afafaf !important;
-}
-.syntaxhighlighter .gutter .line {
- border-right: 3px solid #6ce26c !important;
-}
-.syntaxhighlighter .gutter .line.highlighted {
- background-color: #6ce26c !important;
- color: white !important;
-}
-.syntaxhighlighter.printing .line .content {
- border: none !important;
-}
-.syntaxhighlighter.collapsed {
- overflow: visible !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
- color: blue !important;
- background: white !important;
- border: 1px solid #6ce26c !important;
-}
-.syntaxhighlighter.collapsed .toolbar a {
- color: blue !important;
-}
-.syntaxhighlighter.collapsed .toolbar a:hover {
- color: red !important;
-}
-.syntaxhighlighter .toolbar {
- color: white !important;
- background: #6ce26c !important;
- border: none !important;
-}
-.syntaxhighlighter .toolbar a {
- color: white !important;
-}
-.syntaxhighlighter .toolbar a:hover {
- color: black !important;
-}
-.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
- color: black !important;
-}
-.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
- color: #008200 !important;
-}
-.syntaxhighlighter .string, .syntaxhighlighter .string a {
- color: blue !important;
-}
-.syntaxhighlighter .keyword {
- color: #006699 !important;
-}
-.syntaxhighlighter .preprocessor {
- color: gray !important;
-}
-.syntaxhighlighter .variable {
- color: #aa7700 !important;
-}
-.syntaxhighlighter .value {
- color: #009900 !important;
-}
-.syntaxhighlighter .functions {
- color: #ff1493 !important;
-}
-.syntaxhighlighter .constants {
- color: #0066cc !important;
-}
-.syntaxhighlighter .script {
- font-weight: bold !important;
- color: #006699 !important;
- background-color: none !important;
-}
-.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
- color: gray !important;
-}
-.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
- color: #ff1493 !important;
-}
-.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
- color: red !important;
-}
-
-.syntaxhighlighter .keyword {
- font-weight: bold !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css
deleted file mode 100755
index 0b99c299..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;height:auto!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace!important;font-weight:normal!important;font-style:normal!important;font-size:1em!important;min-height:inherit!important;min-height:auto!important;}.syntaxhighlighter{width:100%!important;margin:1em 0 1em 0!important;position:relative!important;overflow:auto!important;font-size:1em!important;}.syntaxhighlighter.source{overflow:hidden!important;}.syntaxhighlighter .bold{font-weight:bold!important;}.syntaxhighlighter .italic{font-style:italic!important;}.syntaxhighlighter .line{white-space:pre!important;}.syntaxhighlighter table{width:100%!important;}.syntaxhighlighter table caption{text-align:left!important;padding:.5em 0 .5em 1em!important;}.syntaxhighlighter table td.code{width:100%!important;}.syntaxhighlighter table td.code .container{position:relative!important;}.syntaxhighlighter table td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important;}.syntaxhighlighter table td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important;}.syntaxhighlighter table td.code .line{padding:0 1em!important;}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important;}.syntaxhighlighter.show{display:block!important;}.syntaxhighlighter.collapsed table{display:none!important;}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important;height:auto!important;}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important;}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important;}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important;}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important;}.syntaxhighlighter .toolbar span.title{display:inline!important;}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important;}.syntaxhighlighter .toolbar a.expandSource{display:none!important;}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important;}.syntaxhighlighter.ie .toolbar{line-height:8px!important;}.syntaxhighlighter.ie .toolbar a{padding-top:0!important;}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important;}.syntaxhighlighter.printing .line .number{color:#bbb!important;}.syntaxhighlighter.printing .line .content{color:black!important;}.syntaxhighlighter.printing .toolbar{display:none!important;}.syntaxhighlighter.printing a{text-decoration:none!important;}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important;}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important;}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important;}.syntaxhighlighter.printing .keyword{color:#069!important;font-weight:bold!important;}.syntaxhighlighter.printing .preprocessor{color:gray!important;}.syntaxhighlighter.printing .variable{color:#a70!important;}.syntaxhighlighter.printing .value{color:#090!important;}.syntaxhighlighter.printing .functions{color:#ff1493!important;}.syntaxhighlighter.printing .constants{color:#06c!important;}.syntaxhighlighter.printing .script{font-weight:bold!important;}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important;}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important;}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important;}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important;}.syntaxhighlighter{background-color:white!important;}.syntaxhighlighter .line.alt1{background-color:white!important;}.syntaxhighlighter .line.alt2{background-color:white!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css
deleted file mode 100755
index 13654117..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter {
- background-color: white !important;
-}
-.syntaxhighlighter .line.alt1 {
- background-color: white !important;
-}
-.syntaxhighlighter .line.alt2 {
- background-color: white !important;
-}
-.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
- background-color: #e0e0e0 !important;
-}
-.syntaxhighlighter .line.highlighted.number {
- color: black !important;
-}
-.syntaxhighlighter table caption {
- color: black !important;
-}
-.syntaxhighlighter .gutter {
- color: #afafaf !important;
-}
-.syntaxhighlighter .gutter .line {
- border-right: 3px solid #6ce26c !important;
-}
-.syntaxhighlighter .gutter .line.highlighted {
- background-color: #6ce26c !important;
- color: white !important;
-}
-.syntaxhighlighter.printing .line .content {
- border: none !important;
-}
-.syntaxhighlighter.collapsed {
- overflow: visible !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
- color: blue !important;
- background: white !important;
- border: 1px solid #6ce26c !important;
-}
-.syntaxhighlighter.collapsed .toolbar a {
- color: blue !important;
-}
-.syntaxhighlighter.collapsed .toolbar a:hover {
- color: red !important;
-}
-.syntaxhighlighter .toolbar {
- color: white !important;
- background: #6ce26c !important;
- border: none !important;
-}
-.syntaxhighlighter .toolbar a {
- color: white !important;
-}
-.syntaxhighlighter .toolbar a:hover {
- color: black !important;
-}
-.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
- color: black !important;
-}
-.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
- color: #008200 !important;
-}
-.syntaxhighlighter .string, .syntaxhighlighter .string a {
- color: blue !important;
-}
-.syntaxhighlighter .keyword {
- color: #006699 !important;
-}
-.syntaxhighlighter .preprocessor {
- color: gray !important;
-}
-.syntaxhighlighter .variable {
- color: #aa7700 !important;
-}
-.syntaxhighlighter .value {
- color: #009900 !important;
-}
-.syntaxhighlighter .functions {
- color: #ff1493 !important;
-}
-.syntaxhighlighter .constants {
- color: #0066cc !important;
-}
-.syntaxhighlighter .script {
- font-weight: bold !important;
- color: #006699 !important;
- background-color: none !important;
-}
-.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
- color: gray !important;
-}
-.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
- color: #ff1493 !important;
-}
-.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
- color: red !important;
-}
-
-.syntaxhighlighter .keyword {
- font-weight: bold !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css
deleted file mode 100755
index 57326f47..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter{background-color:white!important;}.syntaxhighlighter .line.alt1{background-color:white!important;}.syntaxhighlighter .line.alt2{background-color:white!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css
deleted file mode 100755
index 9ccf1074..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- *
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter {
- background-color: transparent !important;
-}
-.syntaxhighlighter .line.alt1 {
- background-color: transparent !important;
-}
-.syntaxhighlighter .line.alt2 {
- background-color: transparent !important;
-}
-.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
- background-color: #e0e0e0 !important;
-}
-.syntaxhighlighter .line.highlighted.number {
- color: black !important;
-}
-.syntaxhighlighter table caption {
- color: black !important;
-}
-.syntaxhighlighter .gutter {
- color: #afafaf !important;
-}
-.syntaxhighlighter .gutter .line {
- border-right: 3px solid #6ce26c !important;
-}
-.syntaxhighlighter .gutter .line.highlighted {
- background-color: #6ce26c !important;
- color: white !important;
-}
-.syntaxhighlighter.printing .line .content {
- border: none !important;
-}
-.syntaxhighlighter.collapsed {
- overflow: visible !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
- color: blue !important;
- background: white !important;
- border: 1px solid #6ce26c !important;
-}
-.syntaxhighlighter.collapsed .toolbar a {
- color: blue !important;
-}
-.syntaxhighlighter.collapsed .toolbar a:hover {
- color: red !important;
-}
-.syntaxhighlighter .toolbar {
- color: white !important;
- background: #6ce26c !important;
- border: none !important;
-}
-.syntaxhighlighter .toolbar a {
- color: white !important;
-}
-.syntaxhighlighter .toolbar a:hover {
- color: black !important;
-}
-.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
- color: black !important;
-}
-.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
- color: #008200 !important;
-}
-.syntaxhighlighter .string, .syntaxhighlighter .string a {
- color: blue !important;
-}
-.syntaxhighlighter .keyword {
- color: #006699 !important;
-}
-.syntaxhighlighter .preprocessor {
- color: gray !important;
-}
-.syntaxhighlighter .variable {
- color: #aa7700 !important;
-}
-.syntaxhighlighter .value {
- color: #009900 !important;
-}
-.syntaxhighlighter .functions {
- color: #ff1493 !important;
-}
-.syntaxhighlighter .constants {
- color: #0066cc !important;
-}
-.syntaxhighlighter .script {
- font-weight: bold !important;
- color: #006699 !important;
- background-color: none !important;
-}
-.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
- color: gray !important;
-}
-.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
- color: #ff1493 !important;
-}
-.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
- color: red !important;
-}
-
-.syntaxhighlighter .keyword {
- font-weight: bold !important;
-}
-
-.syntaxhighlighter a,
-.syntaxhighlighter div,
-.syntaxhighlighter code,
-.syntaxhighlighter table,
-.syntaxhighlighter table td,
-.syntaxhighlighter table tr,
-.syntaxhighlighter table tbody,
-.syntaxhighlighter table thead,
-.syntaxhighlighter table caption,
-.syntaxhighlighter textarea {
- line-height: 1.3em !important;
-}
-
-div.syntaxhighlighter {
- font-size: 0.85em !important;
-}
-
-div.include div.syntaxhighlighter table td.code .line {
- margin-top: 0.1em !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css
deleted file mode 100755
index 20210ff7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter{background-color:transparent!important;}.syntaxhighlighter .line.alt1{background-color:transparent!important;}.syntaxhighlighter .line.alt2{background-color:transparent!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;}.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{line-height:1.3em!important;}div.syntaxhighlighter{font-size:.85em!important;}div.include div.syntaxhighlighter table td.code .line{margin-top:.1em!important;} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/theming.html b/wqflask/wqflask/static/packages/jqplot/examples/theming.html
deleted file mode 100755
index 92f397a4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/theming.html
+++ /dev/null
@@ -1,519 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Chart Theming</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="smoothedLine.html">Previous</a> <a href="./">Examples</a> <a href="waterfall.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
-<style type="text/css">
-.jqplot-target {
- margin: 30px;
-}
-</style>
-
-<p>jqPlot has basic theming support for commonly styled atributes of plot elements. Upon creation, each plot will have a "themeEngine" that controls modificaition, adding, removing and activating of plot themes. In addition, each plot will have a "Default" theme which corresponds to the styling of the plot at plot creation.<p>
-
-<p>Creation of new themes is easy. A "style" object is created with properties for the various plot elements to be styles. Attached to each of those is an ojbect with the actual styling properties. A simple style object might look like:</p>
-
-<pre>
- gabe = {
- series: [
- {color: 'rgba(216, 159, 60, 0.4)'},
- {color: 'rgba(159, 216, 60, 0.4)'},
- {color: 'rgba(60, 159, 216, 0.4)'},
- ],
- grid: {
- backgroundColor: '#DEA493'
- }
- }
-</pre>
-
-<p>This new style would then be added to the plot's themeEngine as a new theme. it can then be activated by calling the plot's <code>activateTheme</code> method.</p>
-<pre>
- plot1b.themeEngine.newTheme('gabe', gabe);
- plot1b.activateTheme('gabe');
-</pre>
-
-<div id="chart1b" class="plot" style="width:400px;height:260px;"></div>
-<p>Select Theme for area plot:
-<select id="p1bswitcher" onchange="switch1b();">
- <option value="Default" selected>Default</option>
- <option value="gabe">gabe</option>
-</select>
-</p>
-
-<p>Themes can be reused between plots. Here a style object is created and assigned to two different plots. For convenience, the theme is given the same name when added to each plot's themeEngine. Since each plot keeps it's own copy of the theme, the names do not need to be the same. Also note that themes are added as deep copies by value and not by reference. This avoids strange behavior due to the cascading nature of css related styles.</p>
-
-<pre>
- temp = {
- seriesStyles: {
- seriesColors: ['red', 'orange', 'yellow', 'green', 'blue', 'indigo'],
- highlightColors: ['lightpink', 'lightsalmon', 'lightyellow', 'lightgreen', 'lightblue', 'mediumslateblue']
- },
- legend: {
- fontSize: '8pt'
- },
- title: {
- fontSize: '18pt'
- },
- grid: {
- backgroundColor: 'rgb(211, 233, 195)'
- }
- };
-
- plot3.themeEngine.newTheme('uma', temp);
- plot5.themeEngine.newTheme('uma', temp);
-</pre>
-
-<p>Select Theme for funnel and pie charts at same time:
-<select id="p35switcher" onchange="switch35();">
- <option value="Default" selected>Default</option>
- <option value="uma">uma</option>
-</select>
-</p>
-
-<div id="chart3" class="plot" style="width:400px;height:320px;"></div>
-
-<p>Select Theme for funnel plot:
-<select id="p3switcher" onchange="switch3();">
- <option value="Default" selected>Default</option>
- <option value="uma">uma</option>
-</select>
-</p>
-
-<div id="chart5" class="plot" style="width:400px;height:260px;"></div>
-
-<p>Select Theme for pie chart:
-<select id="p5switcher" onchange="switch5();">
- <option value="Default" selected>Default</option>
- <option value="uma">uma</option>
-</select>
-</p>
-
-<p>There are various was to create and edit themes for a plot. Below are two different methods for creating additional themes for a line plot and adding them to the plots themeEngine. Here the <code>axesStyles</code> property is used to supply styling to all axes at one time. A similar property, <code>seriesStyles</code>, exists for styling all series of a plot at one time. Note, neither of these methods is as straightforward as using the <code>newTheme()</code> method of the plots themeEngine, but are included for illustrative purposes.</p>
-
-<pre>
- e1 = plot1.themeEngine;
- brass = e1.copy('Default', 'brass');
- brass.title.fontFamily = 'Copperplate, Impact';
- brass.grid.backgroundColor = "rgb(216, 198, 114)";
- brass.grid.drawGridlines = false;
- brass.series[0].lineWidth = 6.5;
- brass.series[0].markerOptions.show = false;
- brass.axesStyles.label.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
- brass.axesStyles.ticks.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
- brass.axesStyles.label.fontSize = '14pt';
-
- temp = {
- grid: {
- backgroundColor: "#593D2B",
- gridLineColor: '#E8E8E8',
- gridLineWidth: 3
- },
- title: {
- fontFamily: '"Comic Sans MS", cursive',
- fontSize: '18pt',
- textColor: '#C7CC4E'
- },
- seriesStyles: {
- color: "#DBBCAF",
- lineWidth: 8,
- markerOptions: {
- show: false
- }
- },
- axes: {
- xaxis: {
- label: {
- fontFamily: '"Comic Sans MS", cursive',
- textColor: '#C7CC4E'
- }
- }
- }
- };
-
- chocolate = plot1.themeEngine.copy('Default', 'chocolate', temp);
-</pre>
-
-<div id="chart1" class="plot" style="width:400px;height:260px;"></div>
-
-<p>Select theme for line chart:
-<select id="p1switcher" onchange="switch1();">
- <option value="Default" selected>Default</option>
- <option value="brass">brass</option>
- <option value="chocolate">chocolate</option>
-</select>
-</p>
-
-<p>The example below shows more extensive use of the various styling options to give the chart a rather ugly and dated appearence. Note that, for bar (and funnel, pie and donut charts), <code>highlightColors</code> can be specified as an array of colors which will be applied to each bar individually, as a single string giving a color to apply to all bars, or as an empty array which will force jqPlot to auto calculate highlight colors based on the current bar color.<p>
-
-<pre>
- oldstyle = {
- title: {
- fontFamily: 'Times New Roman',
- textColor: 'black'
- },
- axesStyles: {
- borderWidth: 0,
- ticks: {
- fontSize: '12pt',
- fontFamily: 'Times New Roman',
- textColor: 'black'
- },
- label: {
- fontFamily: 'Times New Roman',
- textColor: 'black'
- }
- },
- grid: {
- backgroundColor: 'white',
- borderWidth: 0,
- gridLineColor: 'black',
- gridLineWidth: 2,
- borderColor: 'black'
- },
- series: [
- {color: 'red', highlightColors: ['aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow']},
- {color: 'green', highlightColors: []},
- {color: 'blue', highlightColors: []},
- {color: 'yellow', highlightColors: 'rgb(255, 245, 185)'}
- ],
- legend: {
- background: 'white',
- textColor: 'black',
- fontFamily: 'Times New Roman',
- border: '1px solid black'
- }
- };
-
- plot2.themeEngine.newTheme('oldstyle', oldstyle);
-</pre>
-
-<div id="chart2" class="plot" style="width:760px;height:360px;"></div>
-
-<p>Select theme for bar chart:
-<select id="p2switcher" onchange="switch2();">
- <option value="Default" selected>Default</option>
- <option value="oldstyle">oldstyle</option>
-</select>
-</p>
-
-
- </div>
-
-
-<script language="javascript" type="text/javascript">
-$(document).ready(function(){
-
- l1 = [['Seoul', 1], ['Paris', 7], ['Singapore',3], ['Hong Kong',5], ['Chicago', 2], ['New York', 9]];
- l2 = [11, 9, 5, 12, 14];
- l3 = [4, 8, 5, 3, 6];
- l4 = [12, 6, 13, 11, 2];
- l5 = [4, -3, 3, 6, 2, -2];
-
- pop1980 = [7071639, 2968528, 3005072, 1595138, 789704, 1688210, 785940, 904599];
- pop1990 = [7322564, 3485398, 2783726, 1630553, 983403, 1585577, 935933, 1006877];
- pop2000 = [8008654, 3694644, 2896051, 1974152, 1322025, 1517550, 1160005, 1188603];
- pop2008 = [8363710, 3833995, 2853114, 2242193, 1567924, 1447395, 1351305, 1279910];
-
- ticks = ["New York", "Los Angeles", "Chicago", "Houston", "Phoenix", "Philadelphia", "San Antonio", "Dallas"];
-
- plot1 = $.jqplot('chart1',[l2],{
- title: 'Line Chart',
- highlighter: {
- show:true
- },
- cursor: {
- show: true,
- zoom: true
- },
- axes: {
- xaxis: {
- label: 'Sample'
- }
- }
- });
-
- plot1b = $.jqplot('chart1b',[l2, l3, l4],{
- stackSeries: true,
- showMarker: false,
- seriesDefaults: {
- fill: true
- }
- });
-
- plot2 = $.jqplot('chart2',[pop1980, pop1990, pop2000, pop2008],{
- title: 'City Population',
- legend: {
- show: true
- },
- seriesDefaults: {
- renderer: $.jqplot.BarRenderer,
- rendererOptions: {
- barPadding: 2
- }
- },
- series: [
- {label: '1980'},
- {label: '1990'},
- {label: '2000'},
- {label: '2008 (est)'}
- ],
- axes: {
- xaxis: {
- label: 'City',
- renderer: $.jqplot.CategoryAxisRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- ticks: ticks,
- tickOptions: {
- angle: -30
- }
- },
- yaxis: {
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- max: 9000000,
- min: 0,
- tickOptions: {
- formatString: '%d',
- angle: -30
- }
- }
- }
- });
-
- plot3 = $.jqplot('chart3',[l1],{
- title: 'Global City Index',
- legend: {
- show: true,
- rendererOptions: {
- // numberColumns: 2,
- fontSize: '10pt'
- }
- },
- seriesDefaults: {
- renderer: $.jqplot.FunnelRenderer
- }
- });
-
- plot5 = $.jqplot('chart5',[l1],{
- title: 'Pie Chart',
- seriesDefaults: {
- renderer: $.jqplot.PieRenderer
- },
- legend: {
- show: true
- }
- });
-
- e1 = plot1.themeEngine;
- brass = e1.copy('Default', 'brass');
- brass.title.fontFamily = 'Copperplate, Impact';
- brass.grid.backgroundColor = "rgb(216, 198, 114)";
- brass.grid.drawGridlines = false;
- brass.series[0].lineWidth = 6.5;
- brass.series[0].markerOptions.show = false;
- // brass.axes.xaxis.ticks.fontFamily = "Copperplate, Impact";
- brass.axesStyles.label.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
- brass.axesStyles.ticks.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
- brass.axesStyles.label.fontSize = '14pt';
-
- temp = {
- grid: {
- backgroundColor: "#593D2B",
- gridLineColor: '#E8E8E8',
- gridLineWidth: 3
- },
- title: {
- fontFamily: '"Comic Sans MS", cursive',
- fontSize: '18pt',
- textColor: '#C7CC4E'
- },
- seriesStyles: {
- color: "#DBBCAF",
- lineWidth: 8,
- markerOptions: {
- show: false
- }
- },
- axes: {
- xaxis: {
- label: {
- fontFamily: '"Comic Sans MS", cursive',
- textColor: '#C7CC4E'
- }
- }
- }
- };
-
- chocolate = plot1.themeEngine.copy('Default', 'chocolate', temp);
-
- gabe = {
- series: [
- {color: 'rgba(216, 159, 60, 0.6)'},
- {color: 'rgba(159, 216, 60, 0.6)'},
- {color: 'rgba(60, 159, 216, 0.6)'},
- ],
- grid: {
- backgroundColor: '#DEA493'
- }
- }
-
- gabe = plot1b.themeEngine.newTheme('gabe', gabe);
-
- oldstyle = {
- title: {
- fontFamily: 'Times New Roman',
- textColor: 'black'
- },
- axesStyles: {
- borderWidth: 0,
- ticks: {
- fontSize: '12pt',
- fontFamily: 'Times New Roman',
- textColor: 'black'
- },
- label: {
- fontFamily: 'Times New Roman',
- textColor: 'black'
- }
- },
- grid: {
- backgroundColor: 'white',
- borderWidth: 0,
- gridLineColor: 'black',
- gridLineWidth: 2,
- borderColor: 'black'
- },
- series: [
- {color: 'red', highlightColors: ['aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow']},
- {color: 'green', highlightColors: []},
- {color: 'blue', highlightColors: []},
- {color: 'yellow', highlightColors: 'rgb(255, 245, 185)'}
- ],
- legend: {
- background: 'white',
- textColor: 'black',
- fontFamily: 'Times New Roman',
- border: '1px solid black'
- }
- };
-
- plot2.themeEngine.newTheme('oldstyle', oldstyle);
-
- temp = {
- seriesStyles: {
- seriesColors: ['red', 'orange', 'yellow', 'green', 'blue', 'indigo'],
- highlightColors: ['lightpink', 'lightsalmon', 'lightyellow', 'lightgreen', 'lightblue', 'mediumslateblue']
- },
- legend: {
- fontSize: '8pt'
- },
- title: {
- fontSize: '18pt'
- },
- grid: {
- backgroundColor: 'rgb(211, 233, 195)'
- }
- };
-
- plot3.themeEngine.newTheme('uma', temp);
- plot5.themeEngine.newTheme('uma', temp);
-
-});
-
-function switch1() {
- var th = $('#p1switcher').val();
- plot1.activateTheme(th);
-}
-
-function switch1b() {
- var th = $('#p1bswitcher').val();
- plot1b.activateTheme(th);
-}
-
-function switch2() {
- var th = $('#p2switcher').val();
- plot2.activateTheme(th);
-}
-
-function switch3() {
- var th = $('#p3switcher').val();
- plot3.activateTheme(th);
-}
-
-function switch5() {
- var th = $('#p5switcher').val();
- plot5.activateTheme(th);
-}
-
-function switch35() {
- var th = $('#p35switcher').val();
- plot3.activateTheme(th);
- plot5.activateTheme(th);
-}
-
-
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.donutRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.funnelRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc b/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc
deleted file mode 100755
index 6977d1f9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html b/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html
deleted file mode 100755
index 639c7c4e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Waterfall Charts</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="theming.html">Previous</a> <a href="./">Examples</a> <a href="waterfall2.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css" media="screen">
- .jqplot-axis {
- font-size: 0.85em;
- }
- .jqplot-title {
- font-size: 16px;
- }
- p {
- margin: 20px;
- font-family:Arial,Helvetica,Sans-serif;
- }
- </style>
-
- <p>Waterfall chart using default bar colors.</p>
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
- <p>Waterfall chart using custom colors and "useNegativeColors" set to "false".</p>
- <div id="chart2" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var line1 = [14, 3, 4, -3, 5, 2, -3, -7];
- var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
- var plot1 = $.jqplot('chart1', [line1], {
- title: 'Crop Yield Charnge, 2008 to 2009',
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions:{
- waterfall:true,
- varyBarColor: true
- },
- pointLabels: {
- hideZeros: true
- },
- yaxis:'y2axis'
- },
- axes:{
- xaxis:{
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -90,
- fontSize: '10pt',
- showMark: false,
- showGridline: false
- }
- },
- y2axis: {
- min: 0,
- tickInterval: 5
- }
- }
- });
-});</script>
-
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-
- var line1 = [14, 3, 4, -3, 5, 2, -3, -7];
- var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
- var plot2 = $.jqplot('chart2', [line1], {
- title: 'Crop Yield Charnge, 2008 to 2009',
- seriesColors:['#333333', '#999999', '#3EA140', '#3EA140', '#3EA140', '#783F16', '#783F16', '#783F16', '#333333'],
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions:{
- waterfall:true,
- varyBarColor: true,
- useNegativeColors: false
- },
- pointLabels: {
- hideZeros: true
- },
- yaxis:'y2axis'
- },
- axes:{
- xaxis:{
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -90,
- fontSize: '10pt',
- showMark: false,
- showGridline: false
- }
- },
- y2axis: {
- min: 0,
- tickInterval: 5
- }
- }
- });
-});</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html b/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html
deleted file mode 100755
index 541f7e33..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Waterfall charts 2</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="waterfall.html">Previous</a> <a href="./">Examples</a> <a href="zoom1.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css" media="screen">
- .jqplot-axis {
- font-size: 0.85em;
- }
- .jqplot-title {
- font-size: 16px;
- }
- p {
- margin: 20px;
- font-family:Arial,Helvetica,Sans-serif;
- }
- </style>
-
-
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
- <div id="chart1b" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
- <div id="chart1c" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
- <div id="chart1d" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-
-
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var line1 = [14, 4, 3, -23, 5, 2, -3, -7];
- var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
- plot1 = $.jqplot('chart1', [line1], {
- title: 'Crop Yield Change, 2008 to 2009',
- seriesDefaults:{
- fill: true,
- fillToZero: true,
- renderer:$.jqplot.BarRenderer,
- rendererOptions:{
- waterfall:true,
- disableStack: true,
- varyBarColor: true
- },
- pointLabels: {
- show: true,
- hideZeros: true
- },
- yaxis:'y2axis'
- },
- axes:{
- xaxis:{
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -90,
- fontSize: '10pt',
- showMark: false,
- showGridline: false
- }
- }
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var line1 = [14, 4, 0, -23, 5, 0, -3, -7];
- var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
- plot1b = $.jqplot('chart1b', [line1], {
- title: 'Crop Yield Change, 2008 to 2009',
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions:{
- waterfall:true,
- varyBarColor: true
- },
- pointLabels: {
- show: true,
- hideZeros: true
- },
- yaxis:'y2axis'
- },
- axes:{
- xaxis:{
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -90,
- fontSize: '10pt',
- showMark: false,
- showGridline: false
- }
- }
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var line1 = [14, 0, 13, 0, -5, -9, 3, 7];
- var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
- plot1c = $.jqplot('chart1c', [line1], {
- title: 'Crop Yield Change, 2008 to 2009',
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions:{
- waterfall:true,
- varyBarColor: true
- },
- pointLabels: {
- show: true,
- hideZeros: true
- },
- yaxis:'y2axis'
- },
- axes:{
- xaxis:{
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -90,
- fontSize: '10pt',
- showMark: false,
- showGridline: false
- }
- }
- }
- });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
- var line1 = [-14, 0, -13, 0, 5, 9, -3, -7];
- var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
- plot1d = $.jqplot('chart1d', [line1], {
- title: 'Crop Yield Change, 2008 to 2009',
- seriesDefaults:{
- renderer:$.jqplot.BarRenderer,
- rendererOptions:{
- waterfall: true,
- varyBarColor: true
- },
- pointLabels: {
- show: true,
- hideZeros: true
- },
- yaxis:'y2axis'
- },
- axes:{
- xaxis:{
- renderer:$.jqplot.CategoryAxisRenderer,
- ticks:ticks,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -90,
- fontSize: '10pt',
- showMark: false,
- showGridline: false
- }
- }
- }
- });
-});</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js
deleted file mode 100755
index 66dcb749..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js
+++ /dev/null
@@ -1,1807 +0,0 @@
-var yahoo=[["2011-10-18",580.19,592.56,577.40,590.51,3800800,590.51],
-["2011-10-17",583.72,591.83,578.00,582.41,4008200,582.41],
-["2011-10-14",599.47,599.60,587.57,591.68,8529900,591.68],
-["2011-10-13",550.03,559.00,548.02,558.99,5639600,558.99],
-["2011-10-12",548.13,555.23,544.63,548.50,3177800,548.50],
-["2011-10-11",533.46,546.80,533.46,543.18,2853400,543.18],
-["2011-10-10",525.18,537.47,523.20,537.17,2322200,537.17],
-["2011-10-07",516.83,520.50,510.30,515.12,2855900,515.12],
-["2011-10-06",507.50,515.23,502.60,514.71,3424300,514.71],
-["2011-10-05",496.35,507.80,480.77,504.70,4534100,504.70],
-["2011-10-04",490.03,503.44,480.60,501.90,4158800,501.90],
-["2011-10-03",509.85,512.00,495.00,495.52,4474400,495.52],
-["2011-09-30",520.21,524.00,514.38,515.04,2723600,515.04],
-["2011-09-29",536.04,537.30,519.41,527.50,2906600,527.50],
-["2011-09-28",541.50,544.02,527.70,528.84,2263300,528.84],
-["2011-09-27",538.20,547.05,536.05,539.34,3010900,539.34],
-["2011-09-26",527.25,532.93,513.25,531.89,2634200,531.89],
-["2011-09-23",516.56,526.42,514.50,525.51,2777300,525.51],
-["2011-09-22",526.25,528.78,514.00,520.66,4400300,520.66],
-["2011-09-21",547.69,555.00,538.86,539.20,2514300,539.20],
-["2011-09-20",549.40,558.52,542.67,546.63,2779100,546.63],
-["2011-09-19",540.35,549.90,535.38,546.67,2468400,546.67],
-["2011-09-16",544.80,546.84,543.14,546.68,3534300,546.68],
-["2011-09-15",535.50,544.98,534.56,542.56,2960800,542.56],
-["2011-09-14",532.59,536.95,525.82,532.07,2694400,532.07],
-["2011-09-13",532.00,533.88,523.40,529.52,2354200,529.52],
-["2011-09-12",517.96,531.99,517.50,530.12,2670400,530.12],
-["2011-09-09",531.40,534.65,521.19,524.85,3268800,524.85],
-["2011-09-08",533.80,539.10,531.90,534.96,2380500,534.96],
-["2011-09-07",530.45,535.94,527.40,534.03,2755800,534.03],
-["2011-09-06",510.80,522.76,510.50,522.18,2715800,522.18],
-["2011-09-02",524.47,527.92,520.73,524.84,2401200,524.84],
-["2011-09-01",540.75,543.83,531.22,532.50,2415500,532.50],
-["2011-08-31",544.74,546.30,536.00,540.96,2693300,540.96],
-["2011-08-30",538.19,542.99,530.81,540.70,2989000,540.70],
-["2011-08-29",534.56,539.45,533.56,539.08,2335800,539.08],
-["2011-08-26",519.99,530.45,513.14,526.86,3596300,526.86],
-["2011-08-25",530.38,537.27,518.30,520.04,3293000,520.04],
-["2011-08-24",519.33,530.00,517.23,523.29,3594500,523.29],
-["2011-08-23",503.50,521.41,499.06,518.82,4346800,518.82],
-["2011-08-22",504.00,507.00,494.53,498.17,4905900,498.17],
-["2011-08-19",499.34,514.87,490.86,490.92,5410000,490.92],
-["2011-08-18",523.47,524.89,500.49,504.88,6290700,504.88],
-["2011-08-17",540.03,543.69,530.77,533.15,4055000,533.15],
-["2011-08-16",552.43,552.44,530.30,539.00,6939400,539.00],
-["2011-08-15",553.43,564.99,546.05,557.23,7144900,557.23],
-["2011-08-12",569.50,570.50,560.40,563.77,3154300,563.77],
-["2011-08-11",553.82,568.50,548.41,562.13,4830600,562.13],
-["2011-08-10",561.38,564.12,547.73,549.01,5369600,549.01],
-["2011-08-09",561.00,574.61,541.01,573.41,6469700,573.41],
-["2011-08-08",562.98,569.00,544.35,546.02,7496600,546.02],
-["2011-08-05",582.54,590.00,562.00,579.04,5929100,579.04],
-["2011-08-04",594.50,598.85,577.47,577.52,4914600,577.52],
-["2011-08-03",594.27,603.00,583.63,601.17,3825700,601.17],
-["2011-08-02",606.00,609.67,591.57,592.40,3200600,592.40],
-["2011-08-01",611.22,615.50,599.18,606.77,3966100,606.77],
-["2011-07-29",604.23,614.96,603.69,603.69,4137400,603.69],
-["2011-07-28",605.19,615.98,603.00,610.94,3108400,610.94],
-["2011-07-27",617.18,620.95,604.75,607.22,3934400,607.22],
-["2011-07-26",618.05,627.50,617.22,622.52,2342900,622.52],
-["2011-07-25",613.36,625.41,613.00,618.98,3131600,618.98],
-["2011-07-22",605.39,619.50,604.27,618.23,3528200,618.23],
-["2011-07-21",594.03,608.06,594.01,606.99,3469500,606.99],
-["2011-07-20",602.18,602.83,595.35,595.35,2227800,595.35],
-["2011-07-19",596.14,604.68,595.53,602.55,2967500,602.55],
-["2011-07-18",592.49,602.05,592.00,594.94,4468300,594.94],
-["2011-07-15",597.50,600.25,588.16,597.62,13732100,597.62],
-["2011-07-14",539.12,542.00,526.73,528.94,6594400,528.94],
-["2011-07-13",537.00,544.00,536.48,538.26,2790200,538.26],
-["2011-07-12",528.16,539.42,526.00,534.01,2841200,534.01],
-["2011-07-11",528.18,535.98,525.50,527.28,2839300,527.28],
-["2011-07-08",532.95,537.65,527.27,531.99,4770200,531.99],
-["2011-07-07",541.00,550.68,535.88,546.60,3935500,546.60],
-["2011-07-06",533.50,538.51,533.04,535.36,2695600,535.36],
-["2011-07-05",525.30,535.40,525.30,532.44,3849200,532.44],
-["2011-07-01",506.74,521.18,506.38,521.03,3636700,521.03],
-["2011-06-30",501.99,506.67,501.50,506.38,2428400,506.38],
-["2011-06-29",496.54,500.25,492.38,497.57,2343000,497.57],
-["2011-06-28",484.02,496.21,484.02,493.65,2715100,493.65],
-["2011-06-27",474.00,488.40,473.60,482.80,3444700,482.80],
-["2011-06-24",480.68,480.75,473.02,474.88,3805600,474.88],
-["2011-06-23",482.13,482.86,473.73,480.22,4801700,480.22],
-["2011-06-22",491.45,492.35,486.73,487.01,2407100,487.01],
-["2011-06-21",487.19,493.94,484.73,493.00,2765400,493.00],
-["2011-06-20",485.00,486.23,479.23,484.58,3028600,484.58],
-["2011-06-17",506.18,506.69,484.80,485.02,5245400,485.02],
-["2011-06-16",502.81,506.57,496.67,500.37,2757000,500.37],
-["2011-06-15",505.03,508.35,500.61,502.95,2073300,502.95],
-["2011-06-14",508.15,514.08,506.99,508.37,2341500,508.37],
-["2011-06-13",510.00,510.20,502.17,504.73,2427300,504.73],
-["2011-06-10",514.08,516.69,509.29,509.51,2439900,509.51],
-["2011-06-09",520.00,520.00,515.64,516.73,1689100,516.73],
-["2011-06-08",516.53,521.24,515.78,519.17,1653400,519.17],
-["2011-06-07",522.89,524.63,518.99,519.03,1907600,519.03],
-["2011-06-06",523.54,526.82,519.25,521.06,1942100,521.06],
-["2011-06-03",522.00,527.60,521.50,523.08,1748500,523.08],
-["2011-06-02",527.57,530.30,522.48,528.06,2204500,528.06],
-["2011-06-01",528.04,533.20,525.31,525.60,2955900,525.60],
-["2011-05-31",525.00,529.05,523.50,529.02,2687300,529.02],
-["2011-05-27",518.48,521.79,516.30,520.90,1745800,520.90],
-["2011-05-26",517.70,522.12,515.00,518.13,2118500,518.13],
-["2011-05-25",517.33,522.77,517.25,519.67,1301600,519.67],
-["2011-05-24",520.37,523.96,518.15,518.26,1888400,518.26],
-["2011-05-23",516.60,520.00,513.40,518.39,2252700,518.39],
-["2011-05-20",531.80,531.99,523.13,524.03,2317500,524.03],
-["2011-05-19",532.73,536.54,529.72,531.25,2468700,531.25],
-["2011-05-18",529.54,530.33,525.70,529.81,1953200,529.81],
-["2011-05-17",515.43,531.22,515.03,530.46,3303600,530.46],
-["2011-05-16",526.31,527.27,516.40,518.42,2958200,518.42],
-["2011-05-13",534.61,535.92,529.05,529.55,2108700,529.55],
-["2011-05-12",535.24,536.94,530.91,535.05,1400000,535.05],
-["2011-05-11",540.14,543.55,533.69,535.45,2338800,535.45],
-["2011-05-10",540.00,544.43,537.54,542.66,2042900,542.66],
-["2011-05-09",535.00,538.49,531.10,537.68,1948700,537.68],
-["2011-05-06",538.15,541.46,535.18,535.30,2056100,535.30],
-["2011-05-05",533.86,539.42,531.50,534.27,1997800,534.27],
-["2011-05-04",535.17,539.00,533.02,535.79,2117000,535.79],
-["2011-05-03",537.13,542.01,529.63,533.89,2081500,533.89],
-["2011-05-02",545.70,545.73,537.12,538.56,2133700,538.56],
-["2011-04-29",540.00,544.10,538.51,544.10,4200000,544.10],
-["2011-04-28",538.06,539.25,534.08,537.97,2037400,537.97],
-["2011-04-27",538.00,538.11,534.35,537.76,2298400,537.76],
-["2011-04-26",526.52,537.44,525.21,532.82,3535400,532.82],
-["2011-04-25",525.25,527.00,522.01,525.05,1630800,525.05],
-["2011-04-21",527.49,528.28,522.39,525.10,2470100,525.10],
-["2011-04-20",525.90,526.82,521.39,525.73,3060000,525.73],
-["2011-04-19",529.95,530.88,520.90,521.53,2684100,521.53],
-["2011-04-18",526.42,527.66,519.00,526.84,5039800,526.84],
-["2011-04-15",545.29,545.75,530.06,530.70,14043700,530.70],
-["2011-04-14",575.19,579.45,572.10,578.51,5456300,578.51],
-["2011-04-13",575.51,577.60,571.75,576.28,2069400,576.28],
-["2011-04-12",575.00,576.91,568.05,570.61,2085600,570.61],
-["2011-04-11",576.20,578.10,573.00,577.37,1858200,577.37],
-["2011-04-08",584.89,584.89,578.06,578.16,1901800,578.16],
-["2011-04-07",575.73,580.64,574.19,580.00,2531500,580.00],
-["2011-04-06",572.18,575.16,568.00,574.18,2668300,574.18],
-["2011-04-05",581.08,581.49,565.68,569.09,6047500,569.09],
-["2011-04-04",593.00,594.74,583.10,587.68,2054500,587.68],
-["2011-04-01",588.76,595.19,588.76,591.80,2613200,591.80],
-["2011-03-31",583.00,588.16,581.74,586.76,2029400,586.76],
-["2011-03-30",584.38,585.50,580.58,581.84,1422300,581.84],
-["2011-03-29",576.00,581.89,573.01,581.73,1604800,581.73],
-["2011-03-28",582.07,584.99,574.71,575.36,2218400,575.36],
-["2011-03-25",586.88,586.91,579.24,579.74,2858400,579.74],
-["2011-03-24",585.43,588.39,578.80,586.89,2098700,586.89],
-["2011-03-23",575.19,582.45,572.00,582.16,1816200,582.16],
-["2011-03-22",577.27,579.23,572.51,577.32,1886900,577.32],
-["2011-03-21",570.22,579.80,569.02,576.50,3020900,576.50],
-["2011-03-18",564.64,567.99,559.74,561.06,3298600,561.06],
-["2011-03-17",564.48,569.00,560.54,561.36,2899300,561.36],
-["2011-03-16",568.01,569.79,551.28,557.10,3798500,557.10],
-["2011-03-15",557.50,571.00,555.50,569.56,4005600,569.56],
-["2011-03-14",572.80,578.29,568.02,569.99,2816100,569.99],
-["2011-03-11",578.22,580.00,573.33,576.71,3032000,576.71],
-["2011-03-10",585.44,586.62,579.45,580.30,3128100,580.30],
-["2011-03-09",591.00,594.51,585.75,591.77,2151000,591.77],
-["2011-03-08",592.93,597.98,590.20,592.31,2284900,592.31],
-["2011-03-07",600.55,603.69,587.00,591.66,3462700,591.66],
-["2011-03-04",608.33,608.98,600.20,600.62,3011000,600.62],
-["2011-03-03",606.38,611.49,605.00,609.56,1945300,609.56],
-["2011-03-02",599.80,606.00,595.19,600.79,2026700,600.79],
-["2011-03-01",617.78,619.22,599.30,600.76,3323200,600.76],
-["2011-02-28",610.00,616.49,608.01,613.40,2281500,613.40],
-["2011-02-25",611.86,614.72,609.50,610.04,1932400,610.04],
-["2011-02-24",611.39,613.09,601.35,608.82,2711700,608.82],
-["2011-02-23",610.33,614.70,604.00,611.32,2889600,611.32],
-["2011-02-22",620.03,624.93,607.77,610.21,3639900,610.21],
-["2011-02-18",626.00,631.18,624.18,630.08,3217900,630.08],
-["2011-02-17",621.25,627.25,620.28,625.26,1478800,625.26],
-["2011-02-16",625.63,626.50,622.10,624.22,1684000,624.22],
-["2011-02-15",627.32,630.09,623.10,624.15,2092000,624.15],
-["2011-02-14",623.34,629.64,620.04,628.15,2128000,628.15],
-["2011-02-11",613.79,625.00,613.00,624.50,2589900,624.50],
-["2011-02-10",613.90,617.50,611.56,616.44,2334400,616.44],
-["2011-02-09",616.87,619.45,612.34,616.50,1842500,616.50],
-["2011-02-08",614.93,619.63,614.51,618.38,1694900,618.38],
-["2011-02-07",610.16,618.39,609.21,614.29,1799600,614.29],
-["2011-02-04",610.15,611.44,606.61,610.98,1550800,610.98],
-["2011-02-03",609.48,611.45,606.13,610.15,1495100,610.15],
-["2011-02-02",611.00,614.34,607.53,612.00,1760700,612.00],
-["2011-02-01",604.49,613.35,603.11,611.04,2745300,611.04],
-["2011-01-31",603.60,604.47,595.55,600.36,2804900,600.36],
-["2011-01-28",619.07,620.36,599.76,600.99,4231100,600.99],
-["2011-01-27",617.89,619.70,613.25,616.79,2019200,616.79],
-["2011-01-26",620.33,622.49,615.28,616.50,2038100,616.50],
-["2011-01-25",608.20,620.69,606.52,619.91,3646800,619.91],
-["2011-01-24",607.57,612.49,601.23,611.08,4599200,611.08],
-["2011-01-21",639.58,641.73,611.36,611.83,8904400,611.83],
-["2011-01-20",632.21,634.08,623.29,626.77,5485800,626.77],
-["2011-01-19",642.12,642.96,629.66,631.75,3406100,631.75],
-["2011-01-18",626.06,641.99,625.27,639.63,3617000,639.63],
-["2011-01-14",617.40,624.27,617.08,624.18,2365600,624.18],
-["2011-01-13",616.97,619.67,614.16,616.69,1334000,616.69],
-["2011-01-12",619.35,619.35,614.77,616.87,1632700,616.87],
-["2011-01-11",617.71,618.80,614.50,616.01,1439300,616.01],
-["2011-01-10",614.80,615.39,608.56,614.21,1579200,614.21],
-["2011-01-07",615.91,618.25,610.13,616.44,2101200,616.44],
-["2011-01-06",610.68,618.43,610.05,613.50,2057800,613.50],
-["2011-01-05",600.07,610.33,600.05,609.07,2532300,609.07],
-["2011-01-04",605.62,606.18,600.12,602.12,1824500,602.12],
-["2011-01-03",596.48,605.59,596.48,604.35,2365200,604.35],
-["2010-12-31",596.74,598.42,592.03,593.97,1539300,593.97],
-["2010-12-30",598.00,601.33,597.39,598.86,989500,598.86],
-["2010-12-29",602.00,602.41,598.92,601.00,1019200,601.00],
-["2010-12-28",602.05,603.87,598.01,598.92,1064800,598.92],
-["2010-12-27",602.74,603.78,599.50,602.38,1208100,602.38],
-["2010-12-23",605.34,606.00,602.03,604.23,1110800,604.23],
-["2010-12-22",604.00,607.00,603.28,605.49,1207500,605.49],
-["2010-12-21",598.57,604.72,597.61,603.07,1879500,603.07],
-["2010-12-20",594.65,597.88,588.66,595.06,1973300,595.06],
-["2010-12-17",591.00,592.56,587.67,590.80,3087100,590.80],
-["2010-12-16",592.85,593.77,588.07,591.71,1596900,591.71],
-["2010-12-15",594.20,596.45,589.15,590.30,2167700,590.30],
-["2010-12-14",597.09,598.29,592.48,594.91,1643300,594.91],
-["2010-12-13",597.12,603.00,594.09,594.62,2398500,594.62],
-["2010-12-10",593.14,593.99,590.29,592.21,1704700,592.21],
-["2010-12-09",593.88,595.58,589.00,591.50,1868900,591.50],
-["2010-12-08",591.97,592.52,583.69,590.54,1756900,590.54],
-["2010-12-07",591.27,593.00,586.00,587.14,3042200,587.14],
-["2010-12-06",580.57,582.00,576.61,578.36,2093800,578.36],
-["2010-12-03",569.45,576.48,568.00,573.00,2631200,573.00],
-["2010-12-02",568.66,573.33,565.35,571.82,2547900,571.82],
-["2010-12-01",563.00,571.57,562.40,564.35,3754100,564.35],
-["2010-11-30",574.32,574.32,553.31,555.71,7117400,555.71],
-["2010-11-29",589.17,589.80,579.95,582.11,2859700,582.11],
-["2010-11-26",590.46,592.98,587.00,590.00,1311100,590.00],
-["2010-11-24",587.31,596.60,587.05,594.97,2396400,594.97],
-["2010-11-23",587.01,589.01,578.20,583.01,2162600,583.01],
-["2010-11-22",587.47,593.44,582.75,591.22,2186600,591.22],
-["2010-11-19",597.00,597.89,590.34,590.83,2297500,590.83],
-["2010-11-18",589.00,599.98,588.56,596.56,2590000,596.56],
-["2010-11-17",585.00,589.50,581.37,583.55,2442500,583.55],
-["2010-11-16",592.76,597.89,583.45,583.72,3307400,583.72],
-["2010-11-15",603.08,604.00,594.05,595.47,3478900,595.47],
-["2010-11-12",613.99,616.90,601.21,603.29,3393000,603.29],
-["2010-11-11",619.70,619.85,614.21,617.19,2261600,617.19],
-["2010-11-10",622.08,623.00,617.51,622.88,2497000,622.88],
-["2010-11-09",630.00,630.85,620.51,624.82,2237200,624.82],
-["2010-11-08",624.02,629.49,623.13,626.77,2101300,626.77],
-["2010-11-05",623.18,625.49,621.11,625.08,1765700,625.08],
-["2010-11-04",624.64,629.92,622.10,624.27,3570800,624.27],
-["2010-11-03",617.50,621.83,613.50,620.18,3380500,620.18],
-["2010-11-02",618.67,620.00,614.58,615.60,1997600,615.60],
-["2010-11-01",615.73,620.66,611.21,615.00,3087100,615.00],
-["2010-10-29",617.07,619.00,612.99,613.70,2278300,613.70],
-["2010-10-28",620.05,621.00,613.30,618.58,2184300,618.58],
-["2010-10-27",615.77,620.00,612.33,616.47,2241900,616.47],
-["2010-10-26",613.10,621.23,611.03,618.60,2512900,618.60],
-["2010-10-25",615.59,624.74,614.97,616.50,3158400,616.50],
-["2010-10-22",611.92,614.82,610.05,612.53,2256100,612.53],
-["2010-10-21",611.51,616.00,606.00,611.99,2920500,611.99],
-["2010-10-20",608.14,617.38,607.50,607.98,3525100,607.98],
-["2010-10-19",608.85,614.82,602.86,607.83,4587900,607.83],
-["2010-10-18",600.55,619.69,600.55,617.71,7098200,617.71],
-["2010-10-15",599.27,601.64,591.60,601.45,14824800,601.45],
-["2010-10-14",544.18,545.25,537.11,540.93,6634100,540.93],
-["2010-10-13",547.00,547.49,542.33,543.30,3055600,543.30],
-["2010-10-12",540.12,545.99,537.79,541.39,3753600,541.39],
-["2010-10-11",538.48,544.60,537.17,538.84,2626300,538.84],
-["2010-10-08",532.77,537.60,527.62,536.35,2859200,536.35],
-["2010-10-07",536.21,537.20,529.14,530.01,2395800,530.01],
-["2010-10-06",539.26,539.95,529.94,534.35,2762300,534.35],
-["2010-10-05",528.38,540.00,526.55,538.23,3507100,538.23],
-["2010-10-04",524.95,528.25,518.85,522.35,1940500,522.35],
-["2010-10-01",530.00,530.62,523.00,525.62,2225000,525.62],
-["2010-09-30",529.16,531.87,518.92,525.79,3244100,525.79],
-["2010-09-29",527.85,532.94,524.71,527.69,2172200,527.69],
-["2010-09-28",533.48,533.59,518.45,527.17,3654700,527.17],
-["2010-09-27",528.85,536.85,528.85,530.41,3107400,530.41],
-["2010-09-24",521.74,527.83,518.26,527.29,3356900,527.29],
-["2010-09-23",514.61,519.69,511.30,513.48,2317400,513.48],
-["2010-09-22",512.86,517.78,511.68,516.00,2537100,516.00],
-["2010-09-21",509.68,519.98,508.91,513.46,4466300,513.46],
-["2010-09-20",492.50,510.41,492.06,508.28,4403500,508.28],
-["2010-09-17",483.75,491.20,481.18,490.15,5641600,490.15],
-["2010-09-16",479.95,482.45,479.41,481.06,1969500,481.06],
-["2010-09-15",479.95,481.89,478.50,480.64,2402800,480.64],
-["2010-09-14",482.01,484.75,480.08,480.43,2216500,480.43],
-["2010-09-13",480.90,484.35,479.53,482.27,2241500,482.27],
-["2010-09-10",479.02,479.79,475.08,476.14,1974300,476.14],
-["2010-09-09",477.83,480.40,470.58,476.18,2430600,476.18],
-["2010-09-08",465.19,472.50,464.51,470.58,2401800,470.58],
-["2010-09-07",464.50,467.59,463.02,464.40,1709900,464.40],
-["2010-09-03",470.52,471.88,467.44,470.30,2540400,470.30],
-["2010-09-02",462.84,464.43,460.31,463.18,1684200,463.18],
-["2010-09-01",454.98,464.94,452.50,460.33,3228300,460.33],
-["2010-08-31",450.11,454.87,448.00,450.02,1946800,450.02],
-["2010-08-30",459.15,459.76,452.42,452.69,1231400,452.69],
-["2010-08-27",452.56,459.99,447.65,458.83,2312400,458.83],
-["2010-08-26",456.06,457.26,450.44,450.98,1777000,450.98],
-["2010-08-25",450.00,457.81,450.00,454.62,2592100,454.62],
-["2010-08-24",457.70,458.37,450.92,451.39,2762700,451.39],
-["2010-08-23",461.50,468.25,457.73,464.07,2986200,464.07],
-["2010-08-20",467.97,471.59,461.02,462.02,3917600,462.02],
-["2010-08-19",481.01,482.51,467.25,467.97,3925000,467.97],
-["2010-08-18",490.44,490.87,481.55,482.15,2686400,482.15],
-["2010-08-17",488.53,494.70,486.03,490.52,1890700,490.52],
-["2010-08-16",483.68,489.87,480.50,485.59,1305000,485.59],
-["2010-08-13",489.00,491.19,486.01,486.35,1934700,486.35],
-["2010-08-12",483.94,494.75,482.51,492.01,2204600,492.01],
-["2010-08-11",497.73,498.00,491.50,491.74,2223000,491.74],
-["2010-08-10",502.35,506.00,498.57,503.71,2074000,503.71],
-["2010-08-09",502.25,505.50,501.36,505.35,1872200,505.35],
-["2010-08-06",505.40,505.74,496.05,500.22,3319500,500.22],
-["2010-08-05",505.89,508.60,503.56,508.10,2420400,508.10],
-["2010-08-04",492.18,507.00,491.05,506.32,3812500,506.32],
-["2010-08-03",490.50,492.46,486.76,489.83,1802300,489.83],
-["2010-08-02",488.99,493.28,486.94,490.41,1858700,490.41],
-["2010-07-30",479.65,487.36,479.14,484.85,2144100,484.85],
-["2010-07-29",485.95,488.88,479.33,484.99,2675500,484.99],
-["2010-07-28",494.94,495.25,482.67,484.35,2496000,484.35],
-["2010-07-27",490.58,497.50,490.17,492.63,2451200,492.63],
-["2010-07-26",489.09,490.75,484.88,488.97,1995200,488.97],
-["2010-07-23",480.77,490.59,480.01,490.06,2264400,490.06],
-["2010-07-22",483.23,488.98,482.48,484.81,2147700,484.81],
-["2010-07-21",484.00,485.70,475.43,477.50,3279600,477.50],
-["2010-07-20",461.03,482.99,460.60,481.59,4054500,481.59],
-["2010-07-19",461.01,469.65,457.52,466.18,4550300,466.18],
-["2010-07-16",469.12,470.56,459.52,459.61,7824800,459.61],
-["2010-07-15",491.73,494.70,482.68,494.02,4858200,494.02],
-["2010-07-14",489.88,493.83,486.46,491.34,3118000,491.34],
-["2010-07-13",482.25,492.99,480.28,489.20,3976300,489.20],
-["2010-07-12",472.37,479.44,471.08,475.83,3334400,475.83],
-["2010-07-09",471.96,473.26,462.78,467.49,4331500,467.49],
-["2010-07-08",453.55,457.33,449.66,456.56,2668900,456.56],
-["2010-07-07",438.31,451.29,435.38,450.20,3129700,450.20],
-["2010-07-06",444.00,447.67,433.63,436.07,2560100,436.07],
-["2010-07-02",441.62,442.28,436.00,436.55,1936000,436.55],
-["2010-07-01",445.29,448.40,433.63,439.49,3513600,439.49],
-["2010-06-30",454.96,457.83,444.72,444.95,3603200,444.95],
-["2010-06-29",463.44,464.55,451.12,454.26,3502100,454.26],
-["2010-06-28",472.59,477.55,469.01,472.08,1762300,472.08],
-["2010-06-25",477.06,477.65,470.56,472.68,2245200,472.68],
-["2010-06-24",479.66,482.75,473.26,475.10,1893600,475.10],
-["2010-06-23",486.89,486.89,478.16,482.05,2029100,482.05],
-["2010-06-22",489.90,496.60,485.73,486.25,2219700,486.25],
-["2010-06-21",499.90,500.97,484.89,488.56,2983500,488.56],
-["2010-06-18",502.51,503.47,498.13,500.03,2872900,500.03],
-["2010-06-17",503.45,505.87,496.69,500.08,1977300,500.08],
-["2010-06-16",496.17,504.00,496.11,501.27,2289300,501.27],
-["2010-06-15",483.08,500.40,482.18,497.99,4259600,497.99],
-["2010-06-14",494.48,494.50,483.19,483.19,2040400,483.19],
-["2010-06-11",482.50,488.71,481.62,488.50,1781700,488.50],
-["2010-06-10",480.37,488.50,475.84,487.01,2577900,487.01],
-["2010-06-09",487.22,488.88,472.00,474.02,2729000,474.02],
-["2010-06-08",487.85,488.84,477.54,484.78,2685100,484.78],
-["2010-06-07",499.06,500.91,483.15,485.52,3632700,485.52],
-["2010-06-04",499.72,509.25,496.70,498.72,3920300,498.72],
-["2010-06-03",495.11,508.00,494.70,505.60,3650700,505.60],
-["2010-06-02",486.68,493.87,481.46,493.37,2540800,493.37],
-["2010-06-01",480.43,491.06,480.12,482.37,2666800,482.37],
-["2010-05-28",492.74,493.45,483.00,485.63,2894800,485.63],
-["2010-05-27",484.95,492.31,481.05,490.46,2809100,490.46],
-["2010-05-26",482.07,489.76,475.00,475.47,3475600,475.47],
-["2010-05-25",468.15,477.45,464.01,477.07,3017400,477.07],
-["2010-05-24",480.73,489.79,476.80,477.16,4345600,477.16],
-["2010-05-21",469.06,485.00,464.40,472.05,9690800,472.05],
-["2010-05-20",485.07,485.58,473.80,475.01,4913300,475.01],
-["2010-05-19",496.26,499.44,487.74,494.43,3445700,494.43],
-["2010-05-18",510.00,510.97,497.07,498.37,2825500,498.37],
-["2010-05-17",506.78,508.36,498.35,507.97,2793800,507.97],
-["2010-05-14",509.77,510.99,496.25,507.53,4116000,507.53],
-["2010-05-13",516.50,522.00,510.37,510.88,3325800,510.88],
-["2010-05-12",512.04,512.04,502.00,505.39,3851800,505.39],
-["2010-05-11",515.67,519.88,508.22,509.05,3322600,509.05],
-["2010-05-10",513.97,522.82,512.60,521.65,4128000,521.65],
-["2010-05-07",499.97,505.32,481.33,493.14,5089000,493.14],
-["2010-05-06",508.75,517.52,460.00,498.67,5000100,498.67],
-["2010-05-05",500.98,515.72,500.47,509.76,4582200,509.76],
-["2010-05-04",526.52,526.74,504.21,506.37,6076300,506.37],
-["2010-05-03",526.50,532.92,525.08,530.60,1857800,530.60],
-["2010-04-30",531.13,537.68,525.44,525.70,2435400,525.70],
-["2010-04-29",533.37,536.50,526.67,532.00,3058900,532.00],
-["2010-04-28",532.10,534.83,521.03,529.19,3406100,529.19],
-["2010-04-27",528.95,538.33,527.23,529.06,3844700,529.06],
-["2010-04-26",544.97,544.99,529.21,531.64,4368800,531.64],
-["2010-04-23",547.25,549.32,542.27,544.99,2089400,544.99],
-["2010-04-22",552.00,552.50,543.35,547.06,3280700,547.06],
-["2010-04-21",556.46,560.25,552.16,554.30,2391500,554.30],
-["2010-04-20",554.17,559.66,551.06,555.04,2977400,555.04],
-["2010-04-19",548.75,553.99,545.00,550.10,3894000,550.10],
-["2010-04-16",563.00,568.81,549.63,550.15,12235500,550.15],
-["2010-04-15",592.17,597.84,588.29,595.30,6761800,595.30],
-["2010-04-14",590.06,592.34,584.01,589.00,3402700,589.00],
-["2010-04-13",572.53,588.88,571.13,586.77,3912300,586.77],
-["2010-04-12",567.35,574.00,566.22,572.73,2352400,572.73],
-["2010-04-09",567.49,568.77,564.00,566.22,2056600,566.22],
-["2010-04-08",563.32,569.85,560.05,567.49,1947500,567.49],
-["2010-04-07",567.30,568.75,561.86,563.54,2581000,563.54],
-["2010-04-06",569.46,570.89,565.40,568.22,2060100,568.22],
-["2010-04-05",570.90,574.88,569.00,571.01,1901500,571.01],
-["2010-04-01",571.35,573.45,565.55,568.80,2102700,568.80],
-["2010-03-31",565.05,569.74,562.81,567.12,3030800,567.12],
-["2010-03-30",562.83,567.63,560.28,566.71,1977900,566.71],
-["2010-03-29",563.00,564.72,560.57,562.45,3104500,562.45],
-["2010-03-26",565.27,567.39,560.02,562.69,2696200,562.69],
-["2010-03-25",559.02,572.00,558.66,562.88,3930900,562.88],
-["2010-03-24",545.51,559.85,539.70,557.33,6565200,557.33],
-["2010-03-23",557.04,558.31,542.00,549.00,5501300,549.00],
-["2010-03-22",556.11,566.85,554.28,557.50,4004800,557.50],
-["2010-03-19",566.23,568.00,557.28,560.00,4792400,560.00],
-["2010-03-18",564.72,568.44,562.96,566.40,1777200,566.40],
-["2010-03-17",568.30,571.45,564.25,565.56,3321600,565.56],
-["2010-03-16",561.83,568.42,560.76,565.20,3431500,565.20],
-["2010-03-15",566.68,569.45,556.00,563.18,4653900,563.18],
-["2010-03-12",588.14,588.28,579.16,579.54,2753400,579.54],
-["2010-03-11",574.26,586.21,574.20,581.14,4233300,581.14],
-["2010-03-10",563.76,578.50,562.21,576.45,5654900,576.45],
-["2010-03-09",559.85,564.66,556.50,560.19,3176600,560.19],
-["2010-03-08",564.78,565.18,561.01,562.48,2386400,562.48],
-["2010-03-05",561.35,567.67,559.90,564.21,3912200,564.21],
-["2010-03-04",546.50,556.13,546.20,554.59,3183800,554.59],
-["2010-03-03",542.36,548.12,539.25,545.32,3089400,545.32],
-["2010-03-02",535.48,545.66,535.01,541.06,4356800,541.06],
-["2010-03-01",529.20,533.29,527.74,532.69,2237900,532.69],
-["2010-02-26",527.42,531.75,523.48,526.80,2049300,526.80],
-["2010-02-25",527.12,528.49,520.00,526.43,3309200,526.43],
-["2010-02-24",533.98,538.44,530.51,531.47,2326600,531.47],
-["2010-02-23",543.00,543.63,532.29,535.07,2872600,535.07],
-["2010-02-22",547.35,547.50,541.00,542.80,2144600,542.80],
-["2010-02-19",540.53,544.03,539.70,540.76,2553100,540.76],
-["2010-02-18",537.54,545.01,536.14,543.22,2336900,543.22],
-["2010-02-17",542.00,543.40,537.61,538.21,2029700,538.21],
-["2010-02-16",536.87,544.13,534.30,541.30,3654400,541.30],
-["2010-02-12",532.97,537.15,530.50,533.12,2279700,533.12],
-["2010-02-11",533.32,540.49,529.50,536.40,2410000,536.40],
-["2010-02-10",534.07,537.79,527.69,534.45,2674500,534.45],
-["2010-02-09",539.54,541.53,535.07,536.44,2819600,536.44],
-["2010-02-08",532.50,542.00,531.53,533.47,2694300,533.47],
-["2010-02-05",528.40,533.50,522.46,531.29,3156000,531.29],
-["2010-02-04",537.00,538.00,525.56,526.78,3377700,526.78],
-["2010-02-03",528.67,542.10,528.23,540.82,2999100,540.82],
-["2010-02-02",534.96,534.96,527.61,531.12,4096200,531.12],
-["2010-02-01",534.60,535.81,530.30,533.02,2250800,533.02],
-["2010-01-29",538.49,540.99,525.61,529.94,4140500,529.94],
-["2010-01-28",544.49,547.00,530.60,534.29,3229100,534.29],
-["2010-01-27",541.27,547.65,535.31,542.10,3964400,542.10],
-["2010-01-26",537.97,549.60,536.29,542.42,4355500,542.42],
-["2010-01-25",546.59,549.88,535.51,540.00,4419900,540.00],
-["2010-01-22",564.50,570.60,534.86,550.01,6800400,550.01],
-["2010-01-21",583.44,586.82,572.25,582.98,6307700,582.98],
-["2010-01-20",585.98,585.98,575.29,580.41,3250700,580.41],
-["2010-01-19",581.20,590.42,576.29,587.62,4316700,587.62],
-["2010-01-15",593.34,593.56,578.04,580.00,5434500,580.00],
-["2010-01-14",583.90,594.20,582.81,589.85,4240100,589.85],
-["2010-01-13",576.49,588.38,573.90,587.09,6496600,587.09],
-["2010-01-12",597.65,598.16,588.00,590.48,4853300,590.48],
-["2010-01-11",604.46,604.46,594.04,601.11,7212900,601.11],
-["2010-01-08",592.00,603.25,589.11,602.02,4724300,602.02],
-["2010-01-07",609.40,610.00,592.65,594.10,6414300,594.10],
-["2010-01-06",625.86,625.86,606.36,608.26,3978700,608.26],
-["2010-01-05",627.18,627.84,621.54,623.99,3004700,623.99],
-["2010-01-04",626.95,629.51,624.24,626.75,1956200,626.75],
-["2009-12-31",624.75,625.40,619.98,619.98,1219800,619.98],
-["2009-12-30",618.50,622.73,618.01,622.73,1465600,622.73],
-["2009-12-29",624.74,624.84,618.29,619.40,1424800,619.40],
-["2009-12-28",621.66,625.99,618.48,622.87,1697900,622.87],
-["2009-12-24",612.93,619.52,612.27,618.48,858700,618.48],
-["2009-12-23",603.50,612.87,602.85,611.68,2072700,611.68],
-["2009-12-22",601.34,601.50,598.85,601.12,1880800,601.12],
-["2009-12-21",597.61,599.84,595.67,598.68,2571200,598.68],
-["2009-12-18",596.03,598.93,595.00,596.42,3531500,596.42],
-["2009-12-17",596.44,597.64,593.76,593.94,2638800,593.94],
-["2009-12-16",598.60,600.37,596.64,597.76,2809400,597.76],
-["2009-12-15",593.30,596.38,590.99,593.14,2280400,593.14],
-["2009-12-14",595.35,597.31,592.61,595.73,1913400,595.73],
-["2009-12-11",594.68,594.75,587.73,590.51,1720000,590.51],
-["2009-12-10",590.44,594.71,590.41,591.50,1668300,591.50],
-["2009-12-09",587.50,589.33,583.58,589.02,1781000,589.02],
-["2009-12-08",583.50,590.66,582.00,587.05,1524000,587.05],
-["2009-12-07",584.21,588.69,581.00,586.25,1636200,586.25],
-["2009-12-04",593.02,594.83,579.18,585.01,2513600,585.01],
-["2009-12-03",589.04,591.45,585.00,585.74,1428700,585.74],
-["2009-12-02",591.00,593.01,586.22,587.51,1663200,587.51],
-["2009-12-01",588.13,591.22,583.00,589.87,2320300,589.87],
-["2009-11-30",580.63,583.67,577.11,583.00,1725100,583.00],
-["2009-11-27",572.00,582.46,570.97,579.76,1384600,579.76],
-["2009-11-25",586.41,587.06,582.69,585.74,1461200,585.74],
-["2009-11-24",582.52,584.29,576.54,583.09,1605200,583.09],
-["2009-11-23",576.49,586.60,575.86,582.35,2547500,582.35],
-["2009-11-20",569.50,571.60,569.40,569.96,2006200,569.96],
-["2009-11-19",573.77,574.00,570.00,572.99,2168000,572.99],
-["2009-11-18",576.65,578.78,572.07,576.65,1549600,576.65],
-["2009-11-17",574.87,577.50,573.72,577.49,1916700,577.49],
-["2009-11-16",575.00,576.99,572.78,576.28,2199200,576.28],
-["2009-11-13",569.29,572.51,566.61,572.05,1666800,572.05],
-["2009-11-12",569.56,572.90,565.50,567.85,1886300,567.85],
-["2009-11-11",570.48,573.50,565.86,570.56,2319700,570.56],
-["2009-11-10",562.73,568.78,562.00,566.76,2230800,566.76],
-["2009-11-09",555.45,562.58,554.23,562.51,2649900,562.51],
-["2009-11-06",547.72,551.78,545.50,551.10,1826700,551.10],
-["2009-11-05",543.49,549.77,542.66,548.65,1847700,548.65],
-["2009-11-04",540.80,545.50,536.42,540.33,2332700,540.33],
-["2009-11-03",530.01,537.50,528.30,537.29,2380200,537.29],
-["2009-11-02",537.08,539.46,528.24,533.99,3202100,533.99],
-["2009-10-30",550.00,550.17,534.24,536.12,3468500,536.12],
-["2009-10-29",543.01,551.83,541.00,551.05,2522600,551.05],
-["2009-10-28",547.87,550.00,538.25,540.30,2567800,540.30],
-["2009-10-27",550.97,554.56,544.16,548.29,3216500,548.29],
-["2009-10-26",555.75,561.64,550.89,554.21,2970400,554.21],
-["2009-10-23",555.25,557.89,551.20,553.69,2392700,553.69],
-["2009-10-22",550.00,555.00,548.00,554.09,2336500,554.09],
-["2009-10-21",549.91,559.35,549.00,551.10,3670600,551.10],
-["2009-10-20",551.64,552.95,540.70,551.72,4043700,551.72],
-["2009-10-19",552.69,553.60,548.73,552.09,3217900,552.09],
-["2009-10-16",547.33,554.75,544.53,549.85,8841900,549.85],
-["2009-10-15",533.75,536.90,527.27,529.91,6100400,529.91],
-["2009-10-14",532.46,535.58,530.00,535.32,3258400,535.32],
-["2009-10-13",524.39,527.46,521.38,526.11,3037400,526.11],
-["2009-10-12",523.42,525.76,519.32,524.04,3322200,524.04],
-["2009-10-09",516.65,521.51,514.50,516.25,2738100,516.25],
-["2009-10-08",519.57,523.25,513.34,514.18,4303800,514.18],
-["2009-10-07",499.00,518.99,497.81,517.54,4874200,517.54],
-["2009-10-06",491.70,499.37,491.70,498.74,2732300,498.74],
-["2009-10-05",487.65,492.43,483.34,488.52,2144600,488.52],
-["2009-10-02",483.74,491.74,482.60,484.58,2600800,484.58],
-["2009-10-01",493.00,496.47,487.00,487.20,2813200,487.20],
-["2009-09-30",500.00,500.14,487.24,495.85,3141700,495.85],
-["2009-09-29",499.53,499.75,493.01,498.53,2099200,498.53],
-["2009-09-28",494.84,501.50,493.30,498.53,1839300,498.53],
-["2009-09-25",494.29,499.93,492.00,492.48,2049600,492.48],
-["2009-09-24",500.47,501.41,493.00,496.77,2527600,496.77],
-["2009-09-23",500.78,507.00,497.71,498.46,2704200,498.46],
-["2009-09-22",500.92,501.99,497.81,499.06,3041200,499.06],
-["2009-09-21",487.74,498.90,486.22,497.00,2116400,497.00],
-["2009-09-18",496.77,496.98,491.23,491.46,3283500,491.46],
-["2009-09-17",490.57,497.37,487.15,491.72,4483100,491.72],
-["2009-09-16",479.80,489.37,478.48,488.29,2585300,488.29],
-["2009-09-15",475.08,478.91,472.71,477.54,2398100,477.54],
-["2009-09-14",470.51,476.80,470.05,475.12,1975700,475.12],
-["2009-09-11",470.40,473.30,467.63,472.14,1902900,472.14],
-["2009-09-10",466.65,470.94,462.00,470.94,2534600,470.94],
-["2009-09-09",459.06,466.27,458.80,463.97,2195400,463.97],
-["2009-09-08",464.29,466.99,455.84,458.62,2656700,458.62],
-["2009-09-04",457.57,462.60,455.78,461.30,1499200,461.30],
-["2009-09-03",455.82,458.25,455.00,457.52,1646200,457.52],
-["2009-09-02",455.82,458.33,452.59,453.01,1804800,453.01],
-["2009-09-01",459.68,466.82,454.42,455.76,2594900,455.76],
-["2009-08-31",459.79,461.86,458.00,461.67,1957900,461.67],
-["2009-08-28",469.26,472.37,463.38,464.75,1771600,464.75],
-["2009-08-27",468.58,468.58,460.73,466.06,1998900,466.06],
-["2009-08-26",472.76,473.00,466.70,468.00,1987800,468.00],
-["2009-08-25",469.13,474.35,468.72,471.37,2341000,471.37],
-["2009-08-24",467.35,470.09,464.42,468.73,2453400,468.73],
-["2009-08-21",465.54,466.09,462.65,465.24,3560500,465.24],
-["2009-08-20",452.00,462.18,451.23,460.41,3998900,460.41],
-["2009-08-19",439.99,445.00,438.56,443.97,2255000,443.97],
-["2009-08-18",445.10,447.70,442.32,445.28,2351100,445.28],
-["2009-08-17",451.50,451.99,443.12,444.89,2620200,444.89],
-["2009-08-14",462.78,463.18,456.89,460.00,1675100,460.00],
-["2009-08-13",462.15,464.72,458.91,462.28,1995200,462.28],
-["2009-08-12",455.41,461.75,454.92,458.58,2341400,458.58],
-["2009-08-11",453.67,457.23,452.38,453.94,1712500,453.94],
-["2009-08-10",455.14,458.41,453.79,456.61,1742000,456.61],
-["2009-08-07",455.67,459.42,454.99,457.10,2543100,457.10],
-["2009-08-06",454.30,454.88,448.53,450.36,2110900,450.36],
-["2009-08-05",456.00,456.91,447.88,451.14,2342000,451.14],
-["2009-08-04",449.37,454.00,448.43,453.73,2389800,453.73],
-["2009-08-03",448.74,453.90,447.64,452.21,2590300,452.21],
-["2009-07-31",449.98,452.70,442.43,443.05,2860400,443.05],
-["2009-07-30",442.61,451.47,442.61,445.64,3198600,445.64],
-["2009-07-29",437.23,437.80,431.89,436.24,1987000,436.24],
-["2009-07-28",441.00,442.81,436.10,439.85,2532500,439.85],
-["2009-07-27",446.04,446.75,437.61,444.80,2504400,444.80],
-["2009-07-24",435.81,450.49,435.00,446.72,3626900,446.72],
-["2009-07-23",428.68,441.21,425.50,437.34,3478200,437.34],
-["2009-07-22",428.00,430.20,423.50,427.69,2586700,427.69],
-["2009-07-21",430.94,431.90,425.72,427.90,2968200,427.90],
-["2009-07-20",429.88,432.85,426.25,430.17,3153500,430.17],
-["2009-07-17",433.00,435.48,426.70,430.25,6854100,430.25],
-["2009-07-16",436.68,445.75,434.10,442.60,6554500,442.60],
-["2009-07-15",429.66,438.68,428.49,438.17,3777000,438.17],
-["2009-07-14",423.71,426.73,420.87,424.69,2895800,424.69],
-["2009-07-13",416.17,424.52,415.18,424.30,4045700,424.30],
-["2009-07-10",409.58,417.37,408.70,414.40,2926600,414.40],
-["2009-07-09",406.12,414.45,405.80,410.39,3275600,410.39],
-["2009-07-08",400.00,406.00,398.06,402.49,3441200,402.49],
-["2009-07-07",408.24,409.19,395.98,396.63,3259300,396.63],
-["2009-07-06",406.50,410.64,401.66,409.61,2262600,409.61],
-["2009-07-02",415.41,415.41,406.81,408.49,2517600,408.49],
-["2009-07-01",424.20,426.40,418.15,418.99,2310800,418.99],
-["2009-06-30",424.00,427.21,418.22,421.59,2593900,421.59],
-["2009-06-29",426.00,427.80,422.24,424.14,2169300,424.14],
-["2009-06-26",413.68,428.23,413.11,425.32,3256700,425.32],
-["2009-06-25",407.00,415.90,406.51,415.77,3044500,415.77],
-["2009-06-24",408.74,412.23,406.56,409.29,2457800,409.29],
-["2009-06-23",406.65,408.99,402.55,405.68,2899600,405.68],
-["2009-06-22",416.95,417.49,401.89,407.35,4124400,407.35],
-["2009-06-19",418.21,420.46,414.58,420.09,4259100,420.09],
-["2009-06-18",415.68,418.69,413.00,414.06,3085200,414.06],
-["2009-06-17",416.19,419.72,411.56,415.16,3490100,415.16],
-["2009-06-16",419.31,421.09,415.42,416.00,3049700,416.00],
-["2009-06-15",421.50,421.50,414.00,416.77,3736900,416.77],
-["2009-06-12",426.86,427.70,421.21,424.84,2918400,424.84],
-["2009-06-11",431.77,433.73,428.37,429.00,2865200,429.00],
-["2009-06-10",436.23,437.89,426.67,432.60,3358900,432.60],
-["2009-06-09",438.58,440.50,431.76,435.62,3254900,435.62],
-["2009-06-08",439.50,440.92,434.12,438.77,3098700,438.77],
-["2009-06-05",445.07,447.34,439.46,444.32,3680800,444.32],
-["2009-06-04",435.30,441.24,434.50,440.28,3638100,440.28],
-["2009-06-03",426.00,432.46,424.00,431.65,3532800,431.65],
-["2009-06-02",426.25,429.96,423.40,428.40,2623600,428.40],
-["2009-06-01",418.73,429.60,418.53,426.56,3322400,426.56],
-["2009-05-29",412.11,417.23,410.70,417.23,2648200,417.23],
-["2009-05-28",408.68,411.62,404.61,410.40,2668800,410.40],
-["2009-05-27",405.64,411.86,404.81,405.56,3034300,405.56],
-["2009-05-26",391.95,405.00,390.00,404.36,3104500,404.36],
-["2009-05-22",396.66,398.65,392.00,393.50,1718600,393.50],
-["2009-05-21",396.30,402.84,393.84,396.50,2719800,396.50],
-["2009-05-20",402.09,405.67,395.00,397.18,2284000,397.18],
-["2009-05-19",396.10,401.64,393.00,398.88,2837500,398.88],
-["2009-05-18",394.73,397.31,385.40,396.84,3351700,396.84],
-["2009-05-15",391.10,394.11,389.09,390.00,3008700,390.00],
-["2009-05-14",388.80,392.21,384.69,387.50,2937000,387.50],
-["2009-05-13",394.09,396.39,388.35,389.54,2842800,389.54],
-["2009-05-12",410.01,410.99,395.11,399.01,3790800,399.01],
-["2009-05-11",402.80,412.00,401.20,407.98,2559300,407.98],
-["2009-05-08",402.85,410.13,395.00,407.33,3865100,407.33],
-["2009-05-07",404.10,404.99,392.50,396.61,2999800,396.61],
-["2009-05-06",406.79,408.28,401.00,403.47,2632900,403.47],
-["2009-05-05",399.98,405.00,397.25,402.99,2400800,402.99],
-["2009-05-04",398.17,402.40,394.79,401.98,3203000,401.98],
-["2009-05-01",395.03,397.59,391.55,393.69,2427700,393.69],
-["2009-04-30",395.76,403.75,394.80,395.97,4355700,395.97],
-["2009-04-29",385.97,394.97,385.83,391.47,3610000,391.47],
-["2009-04-28",383.75,389.05,381.54,383.71,2943600,383.71],
-["2009-04-27",384.34,389.49,382.75,385.95,2290600,385.95],
-["2009-04-24",386.05,393.18,380.50,389.49,3385400,389.49],
-["2009-04-23",387.51,389.75,381.11,384.69,2609000,384.69],
-["2009-04-22",381.75,390.00,379.01,383.86,3501800,383.86],
-["2009-04-21",376.17,384.30,376.10,381.47,3695400,381.47],
-["2009-04-20",386.15,390.65,375.89,379.30,4428900,379.30],
-["2009-04-17",386.02,399.82,384.81,392.24,10730800,392.24],
-["2009-04-16",381.50,392.90,381.02,388.74,10185100,388.74],
-["2009-04-15",367.10,381.06,364.16,379.50,4930700,379.50],
-["2009-04-14",376.94,376.99,365.60,368.91,3428600,368.91],
-["2009-04-13",371.33,379.10,370.30,378.11,3050100,378.11],
-["2009-04-09",369.50,374.35,366.25,372.50,3382600,372.50],
-["2009-04-08",363.50,365.00,356.21,362.00,2765200,362.00],
-["2009-04-07",362.60,363.75,355.31,358.65,3680100,358.65],
-["2009-04-06",367.00,369.82,361.40,368.24,3280300,368.24],
-["2009-04-03",364.50,371.72,358.00,369.78,3789800,369.78],
-["2009-04-02",363.31,369.76,360.32,362.50,4488000,362.50],
-["2009-04-01",343.78,355.24,340.61,354.09,3301200,354.09],
-["2009-03-31",348.93,353.51,346.18,348.06,3655300,348.06],
-["2009-03-30",342.55,343.81,336.05,342.69,3094100,342.69],
-["2009-03-27",350.00,352.00,345.47,347.70,3322800,347.70],
-["2009-03-26",353.13,359.16,348.50,353.29,6003300,353.29],
-["2009-03-25",350.40,351.34,336.25,344.07,4336300,344.07],
-["2009-03-24",346.50,353.84,344.00,347.17,3820000,347.17],
-["2009-03-23",333.56,349.45,333.03,348.60,4271500,348.60],
-["2009-03-20",330.30,332.99,326.34,330.16,4737900,330.16],
-["2009-03-19",331.68,336.00,327.38,329.94,4111200,329.94],
-["2009-03-18",334.81,340.00,328.05,333.10,5012200,333.10],
-["2009-03-17",320.18,335.34,319.09,335.34,4712500,335.34],
-["2009-03-16",325.99,329.73,318.59,319.69,4946800,319.69],
-["2009-03-13",326.10,327.46,319.03,324.42,3906400,324.42],
-["2009-03-12",317.54,325.00,313.65,323.53,5024100,323.53],
-["2009-03-11",310.10,320.00,305.71,317.91,5923600,317.91],
-["2009-03-10",298.25,310.50,294.25,308.17,6730200,308.17],
-["2009-03-09",299.98,306.57,289.45,290.89,6471300,290.89],
-["2009-03-06",307.22,310.19,294.25,308.57,7234200,308.57],
-["2009-03-05",316.48,319.08,302.64,305.64,6529900,305.64],
-["2009-03-04",323.16,329.00,315.38,318.92,7818400,318.92],
-["2009-03-03",330.07,333.69,322.35,325.48,6524800,325.48],
-["2009-03-02",333.33,340.70,326.00,327.16,5788500,327.16],
-["2009-02-27",332.95,343.82,331.11,337.99,5420000,337.99],
-["2009-02-26",345.96,352.49,337.16,337.18,5605600,337.18],
-["2009-02-25",342.15,352.30,338.92,341.64,6439100,341.64],
-["2009-02-24",331.02,349.62,330.89,345.45,6095900,345.45],
-["2009-02-23",347.00,349.80,329.55,330.06,5221100,330.06],
-["2009-02-20",338.05,348.92,335.00,346.45,6217100,346.45],
-["2009-02-19",357.47,359.80,341.41,342.64,4988700,342.64],
-["2009-02-18",347.24,353.38,340.52,353.11,6024500,353.11],
-["2009-02-17",346.51,347.09,339.69,342.66,5680400,342.66],
-["2009-02-13",362.19,362.99,355.23,357.68,4146700,357.68],
-["2009-02-12",353.16,363.62,351.48,363.05,5550300,363.05],
-["2009-02-11",358.95,365.00,353.00,358.04,5231600,358.04],
-["2009-02-10",375.98,377.50,357.89,358.51,7103700,358.51],
-["2009-02-09",371.28,381.00,367.30,378.77,4977300,378.77],
-["2009-02-06",356.46,373.81,355.44,371.28,7038100,371.28],
-["2009-02-05",340.91,355.38,337.00,353.72,7264400,353.72],
-["2009-02-04",340.07,354.44,339.17,343.00,6817400,343.00],
-["2009-02-03",342.57,343.00,333.83,340.45,6556500,340.45],
-["2009-02-02",334.29,345.00,332.00,340.57,5206900,340.57],
-["2009-01-30",344.69,348.80,336.00,338.53,4672000,338.53],
-["2009-01-29",344.54,345.05,340.11,343.32,7283800,343.32],
-["2009-01-28",337.98,352.33,336.31,348.67,7691400,348.67],
-["2009-01-27",326.45,333.87,324.27,331.48,4927300,331.48],
-["2009-01-26",324.85,328.00,320.56,323.87,4610700,323.87],
-["2009-01-23",309.27,331.96,304.22,324.70,10732800,324.70],
-["2009-01-22",298.04,309.35,295.15,306.50,8267000,306.50],
-["2009-01-21",288.35,303.50,288.35,303.08,4924500,303.08],
-["2009-01-20",299.14,299.50,282.75,282.75,5048200,282.75],
-["2009-01-16",305.02,308.25,295.70,299.67,5224400,299.67],
-["2009-01-15",297.57,303.58,286.79,298.99,5934500,298.99],
-["2009-01-14",310.00,313.80,297.75,300.97,5467900,300.97],
-["2009-01-13",311.77,320.60,310.39,314.32,4432500,314.32],
-["2009-01-12",316.31,318.95,310.23,312.69,3304300,312.69],
-["2009-01-09",327.50,327.50,313.40,315.07,4340500,315.07],
-["2009-01-08",318.28,325.19,317.34,325.19,3600700,325.19],
-["2009-01-07",328.32,330.91,318.75,322.01,4494500,322.01],
-["2009-01-06",332.98,340.80,326.39,334.06,6425200,334.06],
-["2009-01-05",321.00,331.24,315.00,328.05,4889000,328.05],
-["2009-01-02",308.60,321.82,305.50,321.32,3610500,321.32],
-["2008-12-31",304.20,311.00,302.61,307.65,2886800,307.65],
-["2008-12-30",300.80,306.81,298.71,303.11,3843500,303.11],
-["2008-12-29",300.22,301.38,291.58,297.42,3701900,297.42],
-["2008-12-26",304.07,305.26,298.31,300.36,1959100,300.36],
-["2008-12-24",301.48,306.34,298.38,302.95,1921500,302.95],
-["2008-12-23",300.43,303.31,296.67,298.02,3777700,298.02],
-["2008-12-22",308.56,309.50,290.63,297.11,3917600,297.11],
-["2008-12-19",310.99,317.79,309.00,310.17,5612600,310.17],
-["2008-12-18",316.70,320.35,309.11,310.28,4763500,310.28],
-["2008-12-17",318.64,322.13,312.42,315.24,5789700,315.24],
-["2008-12-16",314.52,329.50,311.27,325.28,7059600,325.28],
-["2008-12-15",314.01,318.49,305.11,310.67,6737900,310.67],
-["2008-12-12",295.71,316.47,294.00,315.76,5722100,315.76],
-["2008-12-11",304.17,312.88,297.80,300.22,6179200,300.22],
-["2008-12-10",309.24,314.90,304.51,308.82,5237000,308.82],
-["2008-12-09",297.69,318.00,297.01,305.97,6889900,305.97],
-["2008-12-08",289.99,309.44,282.00,302.11,8144300,302.11],
-["2008-12-05",271.02,284.24,264.02,283.99,6521200,283.99],
-["2008-12-04",276.53,283.49,268.77,274.34,4886600,274.34],
-["2008-12-03",269.85,281.36,265.34,279.43,5904800,279.43],
-["2008-12-02",269.73,277.78,262.58,275.11,5839700,275.11],
-["2008-12-01",286.68,287.38,265.98,265.99,5711200,265.99],
-["2008-11-28",290.58,296.45,288.28,292.96,2565500,292.96],
-["2008-11-26",280.28,295.46,276.20,292.09,6356600,292.09],
-["2008-11-25",268.68,286.66,267.32,282.05,10771200,282.05],
-["2008-11-24",269.26,269.95,249.01,257.44,10054700,257.44],
-["2008-11-21",262.51,269.37,247.30,262.43,10244500,262.43],
-["2008-11-20",274.89,282.94,259.04,259.56,9779400,259.56],
-["2008-11-19",295.39,300.19,278.58,280.18,7834600,280.18],
-["2008-11-18",301.57,303.73,285.35,297.42,8346100,297.42],
-["2008-11-17",303.00,310.16,297.95,300.12,7543800,300.12],
-["2008-11-14",303.25,324.99,302.56,310.02,9517100,310.02],
-["2008-11-13",291.77,313.00,280.00,312.08,13234700,312.08],
-["2008-11-12",302.05,312.49,287.76,291.00,10051100,291.00],
-["2008-11-11",308.69,316.30,300.52,311.46,10146600,311.46],
-["2008-11-10",328.00,329.44,309.47,318.78,8080100,318.78],
-["2008-11-07",333.12,341.15,325.33,331.14,4681300,331.14],
-["2008-11-06",339.97,344.42,325.81,331.22,8574800,331.22],
-["2008-11-05",362.15,368.88,341.31,342.24,6946500,342.24],
-["2008-11-04",353.44,372.36,345.50,366.94,7349900,366.94],
-["2008-11-03",357.58,362.99,341.43,346.49,5954500,346.49],
-["2008-10-31",356.16,371.96,354.27,359.36,7423300,359.36],
-["2008-10-30",368.46,372.00,358.37,359.69,7988900,359.69],
-["2008-10-29",365.79,371.00,352.37,358.00,9756600,358.00],
-["2008-10-28",339.05,369.31,328.51,368.75,8105400,368.75],
-["2008-10-27",334.81,343.00,325.60,329.49,6200700,329.49],
-["2008-10-24",326.47,350.47,324.74,339.29,7359000,339.29],
-["2008-10-23",353.65,358.00,337.99,352.32,6478900,352.32],
-["2008-10-22",356.99,369.69,344.00,355.67,6560000,355.67],
-["2008-10-21",372.39,383.78,362.00,362.75,5782000,362.75],
-["2008-10-20",379.75,380.98,359.59,379.32,6753400,379.32],
-["2008-10-17",378.96,386.00,363.55,372.54,14249200,372.54],
-["2008-10-16",332.76,356.50,309.44,353.02,16239700,353.02],
-["2008-10-15",354.65,359.00,338.83,339.17,6721400,339.17],
-["2008-10-14",393.53,394.50,357.00,362.71,7784800,362.71],
-["2008-10-13",355.79,381.95,345.75,381.02,8905500,381.02],
-["2008-10-10",313.16,341.89,310.30,332.00,10597800,332.00],
-["2008-10-09",344.52,348.57,321.67,328.98,8075000,328.98],
-["2008-10-08",330.16,358.99,326.11,338.11,11826400,338.11],
-["2008-10-07",373.33,374.98,345.37,346.01,11054400,346.01],
-["2008-10-06",373.98,375.99,357.16,371.21,11220600,371.21],
-["2008-10-03",397.35,412.50,383.07,386.91,7992900,386.91],
-["2008-10-02",409.79,409.98,386.00,390.49,5984900,390.49],
-["2008-10-01",411.15,416.98,403.10,411.72,6234800,411.72],
-["2008-09-30",395.98,425.08,392.32,400.52,3086300,400.52],
-["2008-09-29",419.51,423.51,380.71,381.00,10762900,381.00],
-["2008-09-26",428.00,437.16,421.03,431.04,5292500,431.04],
-["2008-09-25",438.84,450.00,435.98,439.60,5020300,439.60],
-["2008-09-24",430.34,445.00,430.11,435.11,4242000,435.11],
-["2008-09-23",433.25,440.79,425.72,429.27,5204200,429.27],
-["2008-09-22",454.13,454.13,429.00,430.14,4407300,430.14],
-["2008-09-19",461.00,462.07,443.28,449.15,10006000,449.15],
-["2008-09-18",422.64,439.18,410.50,439.08,8589400,439.08],
-["2008-09-17",438.48,439.14,413.44,414.49,9126900,414.49],
-["2008-09-16",425.96,449.28,425.49,442.93,6990700,442.93],
-["2008-09-15",424.00,441.97,423.71,433.86,6567400,433.86],
-["2008-09-12",430.21,441.99,429.00,437.66,6028000,437.66],
-["2008-09-11",408.35,435.09,406.38,433.75,6471400,433.75],
-["2008-09-10",424.47,424.48,409.68,414.16,6226800,414.16],
-["2008-09-09",423.17,432.38,415.00,418.66,7229600,418.66],
-["2008-09-08",452.02,452.94,417.55,419.95,9017900,419.95],
-["2008-09-05",445.49,452.46,440.08,444.25,4534300,444.25],
-["2008-09-04",460.00,463.24,449.40,450.26,4848500,450.26],
-["2008-09-03",468.73,474.29,459.58,464.41,4314600,464.41],
-["2008-09-02",476.77,482.18,461.42,465.25,6111500,465.25],
-["2008-08-29",469.75,471.01,462.33,463.29,3848200,463.29],
-["2008-08-28",472.49,476.45,470.33,473.78,3029700,473.78],
-["2008-08-27",473.73,474.83,464.84,468.58,4387100,468.58],
-["2008-08-26",483.46,483.46,470.59,474.16,3308200,474.16],
-["2008-08-25",486.11,497.00,481.50,483.01,2014300,483.01],
-["2008-08-22",491.50,494.88,489.48,490.59,2297200,490.59],
-["2008-08-21",482.92,489.90,479.27,486.53,3514100,486.53],
-["2008-08-20",494.72,496.69,482.57,485.00,3982100,485.00],
-["2008-08-19",490.43,498.28,486.63,490.50,3046500,490.50],
-["2008-08-18",509.84,510.00,495.51,498.30,3333900,498.30],
-["2008-08-15",506.99,510.66,505.50,510.15,3545700,510.15],
-["2008-08-14",497.70,507.61,496.29,505.49,2918600,505.49],
-["2008-08-13",501.60,503.54,493.88,500.03,3625500,500.03],
-["2008-08-12",502.00,506.13,498.00,502.61,2755700,502.61],
-["2008-08-11",492.47,508.88,491.78,500.84,4239300,500.84],
-["2008-08-08",480.15,495.75,475.69,495.01,3739300,495.01],
-["2008-08-07",482.00,484.00,476.41,479.12,2773800,479.12],
-["2008-08-06",478.37,489.77,472.51,486.34,3375800,486.34],
-["2008-08-05",467.59,480.08,466.33,479.85,3584500,479.85],
-["2008-08-04",468.12,473.01,461.90,463.00,2487000,463.00],
-["2008-08-01",472.51,473.22,462.50,467.86,3007900,467.86],
-["2008-07-31",474.56,480.89,471.44,473.75,2865100,473.75],
-["2008-07-30",485.50,486.02,472.81,482.70,3490700,482.70],
-["2008-07-29",479.30,487.26,478.00,483.11,2802800,483.11],
-["2008-07-28",492.09,492.09,475.13,477.12,3160000,477.12],
-["2008-07-25",486.49,493.13,481.50,491.98,3183500,491.98],
-["2008-07-24",496.70,496.87,475.62,475.62,3540900,475.62],
-["2008-07-23",481.61,497.23,478.10,489.22,4894100,489.22],
-["2008-07-22",466.72,480.25,465.60,477.11,4691500,477.11],
-["2008-07-21",480.88,484.09,465.70,468.80,5901500,468.80],
-["2008-07-18",498.35,498.98,478.19,481.32,11292400,481.32],
-["2008-07-17",534.16,537.05,524.50,533.44,8787400,533.44],
-["2008-07-16",514.04,536.50,510.60,535.60,4742200,535.60],
-["2008-07-15",516.28,527.50,501.10,516.09,6071000,516.09],
-["2008-07-14",539.00,540.06,515.45,521.62,4424800,521.62],
-["2008-07-11",536.50,539.50,519.43,533.80,4981400,533.80],
-["2008-07-10",545.00,549.50,530.72,540.57,4331700,540.57],
-["2008-07-09",550.76,555.68,540.73,541.55,4154000,541.55],
-["2008-07-08",545.99,555.19,540.00,554.53,4932400,554.53],
-["2008-07-07",542.30,549.00,535.60,543.91,4255200,543.91],
-["2008-07-03",530.88,539.23,527.50,537.00,2400500,537.00],
-["2008-07-02",536.51,540.38,526.06,527.04,4223000,527.04],
-["2008-07-01",519.58,536.72,517.00,534.73,4959900,534.73],
-["2008-06-30",532.47,538.00,523.06,526.42,3765300,526.42],
-["2008-06-27",527.68,530.00,515.09,528.07,5447500,528.07],
-["2008-06-26",544.10,544.93,528.26,528.82,5659500,528.82],
-["2008-06-25",544.97,557.80,543.67,551.00,4122200,551.00],
-["2008-06-24",545.14,551.19,535.10,542.30,4672600,542.30],
-["2008-06-23",545.36,553.15,542.02,545.21,3635900,545.21],
-["2008-06-20",556.98,556.98,544.51,546.43,5983100,546.43],
-["2008-06-19",555.35,563.78,550.81,560.20,5683100,560.20],
-["2008-06-18",564.51,568.99,559.16,562.38,3381200,562.38],
-["2008-06-17",576.35,578.07,568.38,569.46,3462900,569.46],
-["2008-06-16",566.50,579.10,566.50,572.81,3542800,572.81],
-["2008-06-13",561.49,575.70,561.34,571.51,6184400,571.51],
-["2008-06-12",548.76,558.00,546.88,552.95,5491600,552.95],
-["2008-06-11",556.24,557.34,544.46,545.20,3812900,545.20],
-["2008-06-10",549.56,558.82,546.78,554.17,3657400,554.17],
-["2008-06-09",568.06,570.00,545.40,557.87,5288300,557.87],
-["2008-06-06",579.75,580.72,567.00,567.00,4734500,567.00],
-["2008-06-05",577.08,588.04,576.21,586.30,3916700,586.30],
-["2008-06-04",565.33,578.00,564.55,572.22,3363200,572.22],
-["2008-06-03",576.50,580.50,560.61,567.30,4305300,567.30],
-["2008-06-02",582.50,583.89,571.27,575.00,3674200,575.00],
-["2008-05-30",583.47,589.92,581.30,585.80,3225200,585.80],
-["2008-05-29",574.79,585.88,573.20,583.00,4845000,583.00],
-["2008-05-28",567.94,571.49,561.10,568.24,4050400,568.24],
-["2008-05-27",544.96,562.60,543.85,560.90,3865500,560.90],
-["2008-05-23",546.96,553.00,537.81,544.62,4431500,544.62],
-["2008-05-22",551.95,554.21,540.25,549.46,5076300,549.46],
-["2008-05-21",578.52,581.41,547.89,549.99,6468100,549.99],
-["2008-05-20",574.63,582.48,572.91,578.60,3313600,578.60],
-["2008-05-19",578.55,588.88,573.52,577.52,5604500,577.52],
-["2008-05-16",581.43,584.68,578.32,580.07,4274100,580.07],
-["2008-05-15",579.00,582.95,575.61,581.00,4342700,581.00],
-["2008-05-14",586.49,591.19,575.25,576.30,4375800,576.30],
-["2008-05-13",586.23,587.95,578.55,583.00,5163500,583.00],
-["2008-05-12",574.75,586.75,568.91,584.94,4863900,584.94],
-["2008-05-09",579.00,585.00,571.30,573.20,4484900,573.20],
-["2008-05-08",586.20,589.30,578.91,583.01,5122900,583.01],
-["2008-05-07",590.27,599.49,576.43,579.00,6613000,579.00],
-["2008-05-06",591.00,592.00,583.00,586.36,4629300,586.36],
-["2008-05-05",598.86,599.00,587.13,594.90,6281000,594.90],
-["2008-05-02",598.49,602.45,579.30,581.29,6998800,581.29],
-["2008-05-01",578.31,594.93,576.97,593.08,6602800,593.08],
-["2008-04-30",562.21,584.86,558.47,574.29,7903000,574.29],
-["2008-04-29",550.83,563.40,550.01,558.47,4346000,558.47],
-["2008-04-28",545.88,556.81,539.00,552.12,4008600,552.12],
-["2008-04-25",549.02,553.00,542.73,544.06,4164400,544.06],
-["2008-04-24",551.29,554.49,540.02,543.04,4135100,543.04],
-["2008-04-23",557.94,559.31,540.95,546.49,4921500,546.49],
-["2008-04-22",537.57,560.83,537.56,555.00,7938500,555.00],
-["2008-04-21",539.39,542.59,530.29,537.79,7439700,537.79],
-["2008-04-18",535.21,547.70,524.77,539.41,18235600,539.41],
-["2008-04-17",455.63,459.37,446.52,449.54,13353000,449.54],
-["2008-04-16",444.40,458.28,441.00,455.03,7630700,455.03],
-["2008-04-15",458.13,459.72,443.72,446.84,4577600,446.84],
-["2008-04-14",457.16,457.45,450.15,451.66,3842600,451.66],
-["2008-04-11",464.07,467.26,455.01,457.45,4169700,457.45],
-["2008-04-10",464.96,473.86,461.85,469.08,5072400,469.08],
-["2008-04-09",469.13,472.00,457.54,464.19,6048100,464.19],
-["2008-04-08",473.04,474.14,462.01,467.81,4547000,467.81],
-["2008-04-07",477.03,485.44,473.53,476.82,5943500,476.82],
-["2008-04-04",457.01,477.83,456.20,471.09,5897200,471.09],
-["2008-04-03",461.73,463.29,448.13,455.12,6778400,455.12],
-["2008-04-02",469.90,475.74,460.39,465.70,5999000,465.70],
-["2008-04-01",447.74,466.50,446.87,465.71,6093100,465.71],
-["2008-03-31",435.64,442.69,432.01,440.47,4446400,440.47],
-["2008-03-28",447.46,453.57,434.31,438.08,4376200,438.08],
-["2008-03-27",446.00,448.61,440.49,444.08,5832200,444.08],
-["2008-03-26",452.59,462.87,449.29,458.19,5225700,458.19],
-["2008-03-25",457.46,457.47,446.00,450.78,5831600,450.78],
-["2008-03-24",438.43,465.78,437.72,460.56,6763500,460.56],
-["2008-03-20",427.32,435.70,417.50,433.55,9913400,433.55],
-["2008-03-19",441.11,447.50,431.67,432.00,6179000,432.00],
-["2008-03-18",428.98,440.84,425.53,439.16,7237200,439.16],
-["2008-03-17",427.99,433.71,412.11,419.87,7888200,419.87],
-["2008-03-14",442.98,449.34,430.62,437.92,6574400,437.92],
-["2008-03-13",432.67,446.98,428.78,443.01,7726600,443.01],
-["2008-03-12",440.01,447.88,438.07,440.18,6651900,440.18],
-["2008-03-11",425.26,440.15,424.65,439.84,8826900,439.84],
-["2008-03-10",428.83,431.00,413.04,413.62,7987600,413.62],
-["2008-03-07",428.88,440.00,426.24,433.35,8071800,433.35],
-["2008-03-06",447.69,453.30,431.18,432.70,7470100,432.70],
-["2008-03-05",445.25,454.17,444.00,447.70,7436600,447.70],
-["2008-03-04",450.95,453.36,435.78,444.60,13621700,444.60],
-["2008-03-03",471.51,472.72,450.11,457.02,7554500,457.02],
-["2008-02-29",471.87,479.74,464.65,471.18,9425400,471.18],
-["2008-02-28",470.50,479.09,467.36,475.39,6586900,475.39],
-["2008-02-27",460.13,475.49,459.64,472.86,10121900,472.86],
-["2008-02-26",461.20,466.47,446.85,464.19,23287300,464.19],
-["2008-02-25",505.95,506.50,485.74,486.44,8372800,486.44],
-["2008-02-22",502.06,509.00,497.55,507.80,5515900,507.80],
-["2008-02-21",512.85,513.21,499.50,502.86,5677800,502.86],
-["2008-02-20",503.51,511.01,498.82,509.00,6662200,509.00],
-["2008-02-19",534.94,535.06,506.50,508.95,6350400,508.95],
-["2008-02-15",528.31,532.66,524.33,529.64,5240100,529.64],
-["2008-02-14",538.35,541.04,531.00,532.25,6476700,532.25],
-["2008-02-13",522.50,534.99,518.69,534.62,6624700,534.62],
-["2008-02-12",523.39,530.60,513.03,518.09,6662300,518.09],
-["2008-02-11",520.52,523.71,513.40,521.16,5826000,521.16],
-["2008-02-08",509.41,517.73,508.70,516.69,6828900,516.69],
-["2008-02-07",496.86,514.19,494.76,504.95,7928900,504.95],
-["2008-02-06",511.14,511.17,497.93,501.71,7636400,501.71],
-["2008-02-05",489.43,509.00,488.52,506.80,11203300,506.80],
-["2008-02-04",509.07,512.78,492.55,495.43,13157100,495.43],
-["2008-02-01",528.67,536.67,510.00,515.90,17600500,515.90],
-["2008-01-31",539.01,573.00,534.29,564.30,14871300,564.30],
-["2008-01-30",549.19,560.43,543.51,548.27,7939600,548.27],
-["2008-01-29",560.47,561.33,540.67,550.52,6283000,550.52],
-["2008-01-28",570.97,572.24,548.60,555.98,5816700,555.98],
-["2008-01-25",591.81,595.00,566.18,566.40,6966000,566.40],
-["2008-01-24",558.80,579.69,554.14,574.49,9400900,574.49],
-["2008-01-23",560.71,568.00,519.00,548.62,16965700,548.62],
-["2008-01-22",562.03,597.50,561.20,584.35,9501500,584.35],
-["2008-01-18",608.36,609.99,598.45,600.25,8539600,600.25],
-["2008-01-17",620.76,625.74,598.01,600.79,8216800,600.79],
-["2008-01-16",628.97,639.99,601.93,615.95,10560000,615.95],
-["2008-01-15",645.90,649.05,635.38,637.65,5568200,637.65],
-["2008-01-14",651.14,657.40,645.25,653.82,4447500,653.82],
-["2008-01-11",642.70,649.47,630.11,638.25,4977000,638.25],
-["2008-01-10",645.01,657.20,640.11,646.73,6334200,646.73],
-["2008-01-09",630.04,653.34,622.51,653.20,6739700,653.20],
-["2008-01-08",653.00,659.96,631.00,631.68,5339100,631.68],
-["2008-01-07",653.94,662.28,637.35,649.25,6403400,649.25],
-["2008-01-04",679.69,680.96,655.00,657.00,5359800,657.00],
-["2008-01-03",685.26,686.85,676.52,685.33,3252500,685.33],
-["2008-01-02",692.87,697.37,677.73,685.19,4306900,685.19],
-["2007-12-31",698.57,702.49,690.58,691.48,2376200,691.48],
-["2007-12-28",704.93,707.95,696.54,702.53,2562700,702.53],
-["2007-12-27",707.07,716.00,700.74,700.74,2942500,700.74],
-["2007-12-26",698.99,713.22,698.21,710.84,2530000,710.84],
-["2007-12-24",694.99,700.73,693.06,700.73,1628400,700.73],
-["2007-12-21",697.88,699.26,693.24,696.69,5382000,696.69],
-["2007-12-20",685.83,691.00,680.61,689.69,4422200,689.69],
-["2007-12-19",674.21,679.50,669.00,677.37,4421100,677.37],
-["2007-12-18",674.16,676.71,652.50,673.35,7166700,673.35],
-["2007-12-17",688.00,695.42,663.67,669.23,5486000,669.23],
-["2007-12-14",687.51,699.70,687.26,689.96,3673500,689.96],
-["2007-12-13",696.31,697.62,681.21,694.05,5040800,694.05],
-["2007-12-12",714.00,714.32,688.50,699.35,6159100,699.35],
-["2007-12-11",719.94,720.99,698.78,699.20,6139100,699.20],
-["2007-12-10",715.99,724.80,714.00,718.42,3856200,718.42],
-["2007-12-07",714.99,718.00,710.50,714.87,3852100,714.87],
-["2007-12-06",697.80,716.56,697.01,715.26,4909000,715.26],
-["2007-12-05",692.73,698.93,687.50,698.51,4209600,698.51],
-["2007-12-04",678.31,692.00,677.12,684.16,4231800,684.16],
-["2007-12-03",691.01,695.00,681.14,681.53,4325100,681.53],
-["2007-11-30",711.00,711.06,682.11,693.00,7895500,693.00],
-["2007-11-29",690.75,702.79,687.77,697.00,6208000,697.00],
-["2007-11-28",682.11,694.30,672.14,692.26,7916500,692.26],
-["2007-11-27",674.80,676.43,650.26,673.57,8904500,673.57],
-["2007-11-26",680.20,693.40,665.00,666.00,6790100,666.00],
-["2007-11-23",670.00,678.28,668.11,676.70,2738700,676.70],
-["2007-11-21",643.77,669.97,642.08,660.52,7013500,660.52],
-["2007-11-20",636.48,659.10,632.87,648.54,9840600,648.54],
-["2007-11-19",629.59,636.77,618.50,625.85,5527400,625.85],
-["2007-11-16",633.94,635.49,616.02,633.63,9042800,633.63],
-["2007-11-15",638.57,647.50,624.00,629.65,6967700,629.65],
-["2007-11-14",673.28,675.49,636.27,641.68,8094700,641.68],
-["2007-11-13",644.99,660.92,632.07,660.55,8426100,660.55],
-["2007-11-12",657.74,669.93,626.21,632.07,10227300,632.07],
-["2007-11-09",675.78,681.88,661.21,663.97,11388100,663.97],
-["2007-11-08",734.60,734.89,677.18,693.84,16512200,693.84],
-["2007-11-07",741.13,747.24,723.14,732.94,8252900,732.94],
-["2007-11-06",737.56,741.79,725.00,741.79,8436300,741.79],
-["2007-11-05",706.99,730.23,706.07,725.65,8883700,725.65],
-["2007-11-02",710.51,713.58,697.34,711.25,5841500,711.25],
-["2007-11-01",702.79,713.72,701.78,703.21,6527200,703.21],
-["2007-10-31",700.69,707.00,696.04,707.00,6876800,707.00],
-["2007-10-30",677.51,699.91,677.51,694.77,6900600,694.77],
-["2007-10-29",677.77,680.00,672.09,679.23,3066300,679.23],
-["2007-10-26",674.03,676.54,668.06,674.60,3353900,674.60],
-["2007-10-25",678.68,678.97,663.55,668.51,5795500,668.51],
-["2007-10-24",672.71,677.47,659.56,675.82,7404200,675.82],
-["2007-10-23",661.25,677.60,660.00,675.77,6793700,675.77],
-["2007-10-22",638.67,655.00,636.28,650.75,6664400,650.75],
-["2007-10-19",654.56,658.49,643.23,644.71,15789000,644.71],
-["2007-10-18",635.41,641.37,628.50,639.62,12289200,639.62],
-["2007-10-17",630.45,634.00,621.59,633.48,6030500,633.48],
-["2007-10-16",618.49,625.92,611.99,616.00,6025300,616.00],
-["2007-10-15",638.47,639.86,615.55,620.11,6943800,620.11],
-["2007-10-12",623.98,638.40,618.24,637.39,6823700,637.39],
-["2007-10-11",633.64,641.41,609.00,622.00,11799000,622.00],
-["2007-10-10",621.36,625.68,616.80,625.39,5385600,625.39],
-["2007-10-09",615.11,623.78,608.39,615.18,8767800,615.18],
-["2007-10-08",595.00,610.26,593.95,609.62,5028000,609.62],
-["2007-10-05",587.11,596.00,587.01,594.05,5068700,594.05],
-["2007-10-04",585.09,585.09,577.06,579.03,2986700,579.03],
-["2007-10-03",586.25,588.99,580.36,584.02,3879500,584.02],
-["2007-10-02",583.38,596.81,580.01,584.39,7067500,584.39],
-["2007-10-01",569.97,584.35,569.61,582.55,4711300,582.55],
-["2007-09-28",567.00,569.55,564.12,567.27,2639500,567.27],
-["2007-09-27",571.73,571.74,565.78,567.50,2056300,567.50],
-["2007-09-26",570.40,571.79,563.81,568.16,3346100,568.16],
-["2007-09-25",564.00,569.56,562.86,569.00,2730600,569.00],
-["2007-09-24",561.00,571.46,560.00,568.02,5297000,568.02],
-["2007-09-21",556.34,560.79,552.83,560.10,8011700,560.10],
-["2007-09-20",547.00,556.80,546.03,552.83,5525000,552.83],
-["2007-09-19",539.27,549.45,538.86,546.85,5526900,546.85],
-["2007-09-18",526.52,537.25,524.27,535.27,4215700,535.27],
-["2007-09-17",526.53,529.28,524.07,525.30,2197500,525.30],
-["2007-09-14",523.20,530.27,522.22,528.75,2764900,528.75],
-["2007-09-13",524.06,527.21,523.22,524.78,1891100,524.78],
-["2007-09-12",520.53,527.98,519.00,522.65,2986000,522.65],
-["2007-09-11",516.99,521.65,515.73,521.33,2703600,521.33],
-["2007-09-10",521.28,522.07,510.88,514.48,3225800,514.48],
-["2007-09-07",517.86,521.24,516.80,519.35,3663600,519.35],
-["2007-09-06",529.36,529.83,518.24,523.52,3625900,523.52],
-["2007-09-05",523.40,529.48,522.25,527.80,3312900,527.80],
-["2007-09-04",515.02,528.00,514.62,525.15,3693700,525.15],
-["2007-08-31",513.10,516.50,511.47,515.25,2977600,515.25],
-["2007-08-30",512.36,515.40,510.58,511.40,2651700,511.40],
-["2007-08-29",507.84,513.30,507.23,512.88,2549300,512.88],
-["2007-08-28",511.53,514.98,505.79,506.40,3273900,506.40],
-["2007-08-27",514.43,517.45,511.40,513.26,2325100,513.26],
-["2007-08-24",512.61,515.55,508.50,515.00,2472700,515.00],
-["2007-08-23",516.00,516.13,507.00,512.19,3076700,512.19],
-["2007-08-22",509.96,516.25,509.25,512.75,3252700,512.75],
-["2007-08-21",498.94,508.16,497.77,506.61,3610600,506.61],
-["2007-08-20",502.46,502.56,496.00,497.92,2697300,497.92],
-["2007-08-17",497.44,501.00,491.65,500.04,5479400,500.04],
-["2007-08-16",492.02,496.43,480.46,491.52,8645600,491.52],
-["2007-08-15",509.00,511.69,496.71,497.55,5409500,497.55],
-["2007-08-14",515.72,517.40,508.00,508.60,3633700,508.60],
-["2007-08-13",519.54,519.75,513.03,515.50,3179300,515.50],
-["2007-08-10",510.18,518.72,505.63,515.75,5875200,515.75],
-["2007-08-09",520.80,526.82,514.63,514.73,4846500,514.73],
-["2007-08-08",519.34,525.78,517.09,525.78,4068800,525.78],
-["2007-08-07",509.75,519.88,509.04,516.02,4264300,516.02],
-["2007-08-06",503.00,510.15,502.50,510.00,3651500,510.00],
-["2007-08-03",510.05,513.20,503.00,503.00,3176200,503.00],
-["2007-08-02",513.72,514.99,509.00,511.01,3154900,511.01],
-["2007-08-01",510.50,516.51,508.14,512.94,4421500,512.94],
-["2007-07-31",520.23,520.44,510.00,510.00,4270500,510.00],
-["2007-07-30",512.92,519.34,510.50,516.11,3963300,516.11],
-["2007-07-27",508.53,516.62,505.50,511.89,5509100,511.89],
-["2007-07-26",508.74,512.59,498.88,508.00,6883400,508.00],
-["2007-07-25",516.98,517.02,505.56,509.76,5545000,509.76],
-["2007-07-24",509.30,518.69,507.11,514.00,5572100,514.00],
-["2007-07-23",519.01,520.00,512.15,512.51,6356700,512.51],
-["2007-07-20",511.90,523.18,509.50,520.12,17772300,520.12],
-["2007-07-19",553.46,553.52,542.24,548.59,11127200,548.59],
-["2007-07-18",553.89,554.50,543.81,549.50,6080000,549.50],
-["2007-07-17",555.04,557.73,552.38,555.00,4328600,555.00],
-["2007-07-16",550.30,558.58,549.31,552.99,6599500,552.99],
-["2007-07-13",547.91,552.67,547.25,552.16,5237100,552.16],
-["2007-07-12",545.86,547.32,540.22,545.33,3441600,545.33],
-["2007-07-11",543.61,546.50,540.01,544.47,3309300,544.47],
-["2007-07-10",543.79,547.00,541.65,543.34,3856000,543.34],
-["2007-07-09",543.00,548.74,540.26,542.56,3729800,542.56],
-["2007-07-06",541.25,543.87,538.73,539.40,2747000,539.40],
-["2007-07-05",535.56,544.40,532.15,541.63,4942900,541.63],
-["2007-07-03",531.06,534.40,527.50,534.34,1871800,534.34],
-["2007-07-02",525.49,531.85,524.20,530.38,3487600,530.38],
-["2007-06-29",526.02,527.40,519.46,522.70,3880600,522.70],
-["2007-06-28",524.88,529.50,523.80,525.01,4168400,525.01],
-["2007-06-27",525.00,527.99,519.56,526.29,6123100,526.29],
-["2007-06-26",532.73,533.20,526.24,530.26,5689500,530.26],
-["2007-06-25",528.98,534.99,523.38,527.42,7925000,527.42],
-["2007-06-22",516.42,524.99,516.10,524.98,7203700,524.98],
-["2007-06-21",510.98,515.29,506.28,514.11,4409700,514.11],
-["2007-06-20",516.96,518.75,509.06,509.97,4338200,509.97],
-["2007-06-19",514.01,517.25,511.54,514.31,4355300,514.31],
-["2007-06-18",506.18,516.00,504.24,515.20,4835900,515.20],
-["2007-06-15",508.19,509.00,501.23,505.89,6174100,505.89],
-["2007-06-14",505.38,505.88,501.70,502.84,4621200,502.84],
-["2007-06-13",507.09,508.54,498.69,505.24,7034000,505.24],
-["2007-06-12",508.71,511.67,503.17,504.77,6419500,504.77],
-["2007-06-11",514.02,518.25,510.00,511.34,4647700,511.34],
-["2007-06-08",516.20,519.64,509.46,515.49,6358200,515.49],
-["2007-06-07",519.75,526.50,512.51,515.06,10630500,515.06],
-["2007-06-06",516.75,520.78,515.26,518.25,7886700,518.25],
-["2007-06-05",509.75,519.00,506.61,518.84,10447100,518.84],
-["2007-06-04",497.91,510.51,497.59,507.07,7101000,507.07],
-["2007-06-01",501.00,505.02,497.93,500.40,4799000,500.40],
-["2007-05-31",500.56,508.78,497.06,497.91,8924300,497.91],
-["2007-05-30",484.50,498.84,483.00,498.60,7245800,498.60],
-["2007-05-29",485.00,491.80,484.00,487.11,5218000,487.11],
-["2007-05-25",479.70,484.95,477.27,483.52,5348500,483.52],
-["2007-05-24",475.15,479.20,471.50,474.33,4173600,474.33],
-["2007-05-23",480.82,483.41,473.75,473.97,5060200,473.97],
-["2007-05-22",473.00,479.01,473.00,475.86,3839000,475.86],
-["2007-05-21",469.53,479.20,466.72,470.60,6159300,470.60],
-["2007-05-18",472.03,472.70,469.75,470.32,3695900,470.32],
-["2007-05-17",472.46,475.22,470.81,470.96,4660600,470.96],
-["2007-05-16",462.00,473.14,459.02,472.61,6554200,472.61],
-["2007-05-15",461.96,462.54,457.41,458.00,4119000,458.00],
-["2007-05-14",465.48,467.51,460.00,461.78,3872700,461.78],
-["2007-05-11",461.83,467.00,461.00,466.74,2944100,466.74],
-["2007-05-10",467.04,469.49,461.02,461.47,3686300,461.47],
-["2007-05-09",466.15,471.73,463.88,469.25,3889900,469.25],
-["2007-05-08",466.13,468.17,464.73,466.81,2905100,466.81],
-["2007-05-07",472.14,472.82,466.47,467.27,3020100,467.27],
-["2007-05-04",470.12,474.84,465.88,471.12,3950000,471.12],
-["2007-05-03",466.22,474.07,465.29,473.23,3594200,473.23],
-["2007-05-02",468.65,471.08,465.73,465.78,3062700,465.78],
-["2007-05-01",472.19,472.81,464.17,469.00,3658200,469.00],
-["2007-04-30",479.15,481.35,471.38,471.38,3641200,471.38],
-["2007-04-27",480.07,482.40,478.33,479.01,2925700,479.01],
-["2007-04-26",478.10,484.45,477.11,481.18,4124900,481.18],
-["2007-04-25",480.00,481.37,476.11,477.99,3966800,477.99],
-["2007-04-24",478.61,479.98,475.55,477.53,3694700,477.53],
-["2007-04-23",480.10,485.00,478.26,479.08,5674600,479.08],
-["2007-04-20",490.52,492.50,482.02,482.48,12161500,482.48],
-["2007-04-19",474.50,481.95,469.59,471.65,11009600,471.65],
-["2007-04-18",471.26,479.90,469.53,476.01,5670500,476.01],
-["2007-04-17",473.80,476.39,471.60,472.80,3210100,472.80],
-["2007-04-16",468.46,476.99,468.15,474.27,5077900,474.27],
-["2007-04-13",468.45,468.77,463.36,466.29,2794800,466.29],
-["2007-04-12",464.00,468.00,462.24,467.39,2707900,467.39],
-["2007-04-11",466.06,469.40,462.61,464.53,3812000,464.53],
-["2007-04-10",467.09,470.79,465.16,466.50,2979300,466.50],
-["2007-04-09",472.98,473.00,465.59,468.21,3062100,468.21],
-["2007-04-05",471.30,472.09,469.62,471.51,2715800,471.51],
-["2007-04-04",472.14,473.00,469.58,471.02,3778800,471.02],
-["2007-04-03",464.05,474.25,464.00,472.60,6501800,472.60],
-["2007-04-02",457.76,458.53,452.12,458.53,3448500,458.53],
-["2007-03-30",462.10,463.40,456.14,458.16,3380200,458.16],
-["2007-03-29",464.55,466.00,455.00,460.92,3988500,460.92],
-["2007-03-28",461.87,465.44,460.15,461.88,4591600,461.88],
-["2007-03-27",463.55,465.23,460.34,463.62,3741200,463.62],
-["2007-03-26",460.55,465.00,455.62,465.00,4710300,465.00],
-["2007-03-23",461.45,463.39,457.08,461.83,4111300,461.83],
-["2007-03-22",455.61,462.17,452.53,462.04,5680700,462.04],
-["2007-03-21",445.30,456.57,445.21,456.55,5798300,456.55],
-["2007-03-20",445.79,447.60,443.60,445.28,3421500,445.28],
-["2007-03-19",443.25,448.50,440.63,447.23,5197700,447.23],
-["2007-03-16",445.65,446.70,439.89,440.85,5659100,440.85],
-["2007-03-15",447.86,449.82,443.94,446.19,3944200,446.19],
-["2007-03-14",443.23,448.66,439.00,448.00,8016900,448.00],
-["2007-03-13",450.11,451.93,442.83,443.03,6377300,443.03],
-["2007-03-12",452.57,455.25,451.11,454.75,3465400,454.75],
-["2007-03-09",458.00,458.40,450.10,452.96,4977700,452.96],
-["2007-03-08",459.22,465.50,454.10,454.72,5362800,454.72],
-["2007-03-07",462.69,463.14,454.29,455.64,6534100,455.64],
-["2007-03-06",447.47,459.00,447.38,457.55,7533700,457.55],
-["2007-03-05",437.02,445.50,437.00,440.95,6355100,440.95],
-["2007-03-02",445.11,448.70,438.68,438.68,6583600,438.68],
-["2007-03-01",442.67,452.42,440.00,448.23,8685200,448.23],
-["2007-02-28",450.41,453.67,443.04,449.45,8032300,449.45],
-["2007-02-27",455.00,459.80,447.17,448.77,9312800,448.77],
-["2007-02-26",472.83,475.25,463.75,464.93,3969900,464.93],
-["2007-02-23",475.75,476.95,467.80,470.62,3882600,470.62],
-["2007-02-22",478.69,484.24,474.39,475.85,5743900,475.85],
-["2007-02-21",469.84,478.68,467.74,475.86,5640600,475.86],
-["2007-02-20",468.47,472.75,464.71,472.10,4067600,472.10],
-["2007-02-16",462.80,470.15,462.06,469.94,6177000,469.94],
-["2007-02-15",466.00,466.13,460.72,461.47,4042400,461.47],
-["2007-02-14",460.00,469.13,459.22,465.93,5698800,465.93],
-["2007-02-13",459.15,462.78,457.26,459.10,4062600,459.10],
-["2007-02-12",460.68,462.39,455.02,458.29,5754500,458.29],
-["2007-02-09",471.65,472.68,461.50,461.89,4858600,461.89],
-["2007-02-08",468.05,473.75,465.15,471.03,4076700,471.03],
-["2007-02-07",473.82,474.35,468.78,470.01,4119800,470.01],
-["2007-02-06",468.10,473.30,467.26,471.48,5321900,471.48],
-["2007-02-05",477.50,478.00,466.19,467.16,7206900,467.16],
-["2007-02-02",482.61,485.00,477.81,481.50,6286500,481.50],
-["2007-02-01",506.00,506.01,481.53,481.75,15658700,481.75],
-["2007-01-31",496.49,505.00,495.51,501.50,12206100,501.50],
-["2007-01-30",494.00,498.00,491.22,494.32,4180500,494.32],
-["2007-01-29",498.00,498.75,490.50,492.47,4775700,492.47],
-["2007-01-26",490.93,497.90,487.03,495.84,5496500,495.84],
-["2007-01-25",501.00,504.50,485.66,488.09,6368500,488.09],
-["2007-01-24",484.45,499.54,483.29,499.07,6059300,499.07],
-["2007-01-23",480.79,484.75,477.29,479.05,4665500,479.05],
-["2007-01-22",492.50,492.65,478.50,480.84,5404300,480.84],
-["2007-01-19",487.98,490.76,486.74,489.75,4978300,489.75],
-["2007-01-18",494.52,496.48,487.43,487.83,5932000,487.83],
-["2007-01-17",503.39,507.77,494.38,497.28,6699100,497.28],
-["2007-01-16",507.55,513.00,503.30,504.28,7568900,504.28],
-["2007-01-12",501.99,505.00,500.00,505.00,4473700,505.00],
-["2007-01-11",497.20,501.75,496.18,499.72,7208200,499.72],
-["2007-01-10",484.43,493.55,482.04,489.46,5968500,489.46],
-["2007-01-09",485.45,488.25,481.20,485.50,5381400,485.50],
-["2007-01-08",487.69,489.87,482.20,483.58,4754400,483.58],
-["2007-01-05",482.50,487.50,478.11,487.19,6872100,487.19],
-["2007-01-04",469.00,483.95,468.35,483.26,7887600,483.26],
-["2007-01-03",466.00,476.66,461.11,467.59,7706500,467.59],
-["2006-12-29",462.10,464.47,459.86,460.48,2559200,460.48],
-["2006-12-28",467.12,468.58,462.25,462.56,3116200,462.56],
-["2006-12-27",460.00,468.08,459.10,468.03,4231500,468.03],
-["2006-12-26",456.52,459.47,454.59,457.53,2074300,457.53],
-["2006-12-22",457.50,458.64,452.73,455.58,3988300,455.58],
-["2006-12-21",464.18,465.25,452.34,456.20,6953300,456.20],
-["2006-12-20",470.00,471.50,462.33,462.90,4367800,462.90],
-["2006-12-19",461.72,469.31,458.50,468.63,6587000,468.63],
-["2006-12-18",482.51,482.74,460.72,462.80,8016600,462.80],
-["2006-12-15",482.64,484.11,479.84,480.30,5190800,480.30],
-["2006-12-14",480.25,483.75,477.26,482.12,4748900,482.12],
-["2006-12-13",484.69,485.50,477.02,478.99,4662100,478.99],
-["2006-12-12",483.85,486.36,480.28,481.78,4181000,481.78],
-["2006-12-11",484.92,488.90,483.80,483.93,3263400,483.93],
-["2006-12-08",481.94,488.60,480.00,484.11,3974900,484.11],
-["2006-12-07",490.23,491.80,482.42,482.64,4664300,482.64],
-["2006-12-06",486.96,492.40,484.52,488.71,4450300,488.71],
-["2006-12-05",487.40,489.44,484.89,487.00,4103000,487.00],
-["2006-12-04",483.00,487.43,479.35,484.85,4899900,484.85],
-["2006-12-01",485.98,488.39,478.50,480.80,5631400,480.80],
-["2006-11-30",484.19,490.40,481.55,484.81,5577500,484.81],
-["2006-11-29",494.24,494.74,482.25,484.65,6315300,484.65],
-["2006-11-28",481.13,489.86,477.03,489.50,7797600,489.50],
-["2006-11-27",501.37,501.78,484.75,484.75,7324700,484.75],
-["2006-11-24",504.50,507.50,504.00,505.00,1732700,505.00],
-["2006-11-22",510.97,513.00,505.78,508.01,4500700,508.01],
-["2006-11-21",496.54,510.00,495.83,509.65,8427500,509.65],
-["2006-11-20",498.40,498.40,492.65,495.05,5124500,495.05],
-["2006-11-17",493.25,499.66,493.00,498.79,5511000,498.79],
-["2006-11-16",495.00,497.68,492.56,495.90,5092600,495.90],
-["2006-11-15",493.43,499.85,491.93,491.93,8370700,491.93],
-["2006-11-14",480.70,489.95,480.50,489.30,7223400,489.30],
-["2006-11-13",474.90,481.17,474.14,481.03,4341900,481.03],
-["2006-11-10",473.78,474.72,470.29,473.55,2796700,473.55],
-["2006-11-09",476.50,479.49,471.86,472.63,4879200,472.63],
-["2006-11-08",470.35,481.74,468.60,475.00,7965000,475.00],
-["2006-11-07",476.95,479.02,471.77,472.57,4897100,472.57],
-["2006-11-06",473.77,479.66,472.33,476.95,4991500,476.95],
-["2006-11-03",472.23,473.75,465.06,471.80,4907700,471.80],
-["2006-11-02",467.50,473.73,466.38,469.91,5236700,469.91],
-["2006-11-01",478.76,479.13,465.26,467.50,5426300,467.50],
-["2006-10-31",478.06,482.16,473.84,476.39,6285400,476.39],
-["2006-10-30",474.82,480.46,470.01,476.57,6563100,476.57],
-["2006-10-27",483.90,485.24,472.49,475.20,6604000,475.20],
-["2006-10-26",487.68,491.96,484.20,485.10,7031700,485.10],
-["2006-10-25",477.49,488.50,475.11,486.60,9187500,486.60],
-["2006-10-24",476.28,477.86,471.41,473.31,8660200,473.31],
-["2006-10-23",462.28,484.64,460.37,480.78,15104500,480.78],
-["2006-10-20",458.99,460.10,453.59,459.67,11647900,459.67],
-["2006-10-19",420.23,429.50,419.57,426.06,11503500,426.06],
-["2006-10-18",422.99,424.75,417.50,419.31,6017300,419.31],
-["2006-10-17",420.30,423.75,416.70,420.64,5211000,420.64],
-["2006-10-16",427.70,429.20,421.34,421.75,4319400,421.75],
-["2006-10-13",427.76,429.50,425.56,427.30,3622500,427.30],
-["2006-10-12",428.56,429.68,424.00,427.44,4844000,427.44],
-["2006-10-11",425.02,429.91,423.76,426.50,5635400,426.50],
-["2006-10-10",431.56,437.85,422.39,426.65,9788600,426.65],
-["2006-10-09",424.80,431.95,423.42,429.00,7583300,429.00],
-["2006-10-06",410.22,421.91,409.75,420.50,7336500,420.50],
-["2006-10-05",414.70,418.24,410.86,411.81,5789800,411.81],
-["2006-10-04",404.97,415.77,403.05,415.70,6661800,415.70],
-["2006-10-03",401.29,406.46,398.19,404.04,5464700,404.04],
-["2006-10-02",401.90,406.00,400.80,401.44,3651900,401.44],
-["2006-09-29",405.13,405.62,401.41,401.90,3310900,401.90],
-["2006-09-28",404.08,406.98,400.54,403.58,5107400,403.58],
-["2006-09-27",406.30,411.22,402.37,402.92,5876700,402.92],
-["2006-09-26",405.50,407.68,401.77,406.87,5289400,406.87],
-["2006-09-25",405.58,409.45,402.50,403.98,5737300,403.98],
-["2006-09-22",404.98,407.45,401.36,403.78,4649600,403.78],
-["2006-09-21",400.30,408.45,399.86,406.85,10692100,406.85],
-["2006-09-20",407.10,407.39,394.62,397.00,9147800,397.00],
-["2006-09-19",415.46,415.49,392.74,403.81,14292900,403.81],
-["2006-09-18",410.00,418.69,409.47,414.69,7106700,414.69],
-["2006-09-15",407.48,410.05,406.74,409.88,7838200,409.88],
-["2006-09-14",404.30,406.28,401.93,403.98,5366100,403.98],
-["2006-09-13",395.15,406.76,395.10,406.57,9768200,406.57],
-["2006-09-12",385.00,392.73,384.88,391.90,5442200,391.90],
-["2006-09-11",378.26,384.69,377.77,384.09,4529200,384.09],
-["2006-09-08",376.72,380.79,376.72,377.85,3083400,377.85],
-["2006-09-07",379.39,381.75,377.40,378.49,3842000,378.49],
-["2006-09-06",382.10,383.19,379.66,380.14,3724100,380.14],
-["2006-09-05",379.87,385.40,377.44,384.36,4074300,384.36],
-["2006-09-01",380.99,381.28,377.19,378.60,2672900,378.60],
-["2006-08-31",381.49,382.15,378.20,378.53,2959900,378.53],
-["2006-08-30",379.21,384.65,378.51,380.75,4044400,380.75],
-["2006-08-29",380.78,382.32,377.20,378.95,4460000,378.95],
-["2006-08-28",375.61,380.95,375.00,380.95,4164000,380.95],
-["2006-08-25",373.08,375.32,372.50,373.26,2466700,373.26],
-["2006-08-24",374.44,376.40,372.26,373.73,3482500,373.73],
-["2006-08-23",377.64,378.27,372.66,373.43,3642300,373.43],
-["2006-08-22",377.73,379.26,374.84,378.29,4164100,378.29],
-["2006-08-21",378.10,379.00,375.22,377.30,4023300,377.30],
-["2006-08-18",386.31,387.09,380.75,383.36,4952200,383.36],
-["2006-08-17",386.39,390.00,383.92,385.80,5080200,385.80],
-["2006-08-16",383.48,388.45,382.12,387.72,5853200,387.72],
-["2006-08-15",374.11,381.67,372.60,380.97,6698200,380.97],
-["2006-08-14",371.50,375.13,368.67,369.43,4968300,369.43],
-["2006-08-11",374.40,375.28,368.00,368.50,3766500,368.50],
-["2006-08-10",373.88,377.67,372.46,374.20,4261900,374.20],
-["2006-08-09",382.80,384.68,376.36,376.94,4311000,376.94],
-["2006-08-08",382.82,384.50,379.09,381.00,5743200,381.00],
-["2006-08-07",371.50,379.73,371.15,377.95,3946900,377.95],
-["2006-08-04",379.56,380.68,371.75,373.85,5095200,373.85],
-["2006-08-03",364.98,377.91,363.36,375.39,6327000,375.39],
-["2006-08-02",375.60,377.17,365.20,367.23,7097800,367.23],
-["2006-08-01",385.11,385.77,375.51,375.51,5463200,375.51],
-["2006-07-31",388.00,389.17,383.31,386.60,4595300,386.60],
-["2006-07-28",382.00,389.56,381.73,388.12,4083600,388.12],
-["2006-07-27",387.37,387.49,377.95,382.40,5641100,382.40],
-["2006-07-26",388.20,391.91,383.00,385.50,5531900,385.50],
-["2006-07-25",385.02,391.31,383.80,389.36,5761100,389.36],
-["2006-07-24",392.82,393.89,381.21,390.90,8086100,390.90],
-["2006-07-21",386.14,391.75,377.69,390.11,11754600,390.11],
-["2006-07-20",404.28,404.44,385.66,387.12,12538700,387.12],
-["2006-07-19",395.01,401.14,394.66,399.00,8518500,399.00],
-["2006-07-18",409.75,410.57,397.74,403.05,8536800,403.05],
-["2006-07-17",404.63,411.00,403.72,407.89,5811900,407.89],
-["2006-07-14",410.33,411.49,398.61,403.50,7552100,403.50],
-["2006-07-13",414.00,418.34,406.83,408.83,6924500,408.83],
-["2006-07-12",422.09,422.74,416.73,417.25,4906700,417.25],
-["2006-07-11",418.51,425.05,413.03,424.56,5971300,424.56],
-["2006-07-10",423.44,425.23,416.38,418.20,4436400,418.20],
-["2006-07-07",426.05,427.89,415.88,420.45,6041900,420.45],
-["2006-07-06",423.38,425.38,421.98,423.19,3687100,423.19],
-["2006-07-05",421.52,422.80,415.64,421.46,4985600,421.46],
-["2006-07-03",420.04,423.77,419.45,423.20,2156700,423.20],
-["2006-06-30",415.60,419.33,412.33,419.33,6258000,419.33],
-["2006-06-29",407.99,418.20,405.82,417.81,6658200,417.81],
-["2006-06-28",404.01,406.48,401.13,406.11,3710500,406.11],
-["2006-06-27",405.71,408.00,401.01,402.32,4107100,402.32],
-["2006-06-26",406.75,408.30,403.25,404.22,3551200,404.22],
-["2006-06-23",402.76,409.75,400.74,404.86,5314800,404.86],
-["2006-06-22",401.58,406.00,388.00,399.95,5911900,399.95],
-["2006-06-21",391.06,404.00,389.75,402.13,8744400,402.13],
-["2006-06-20",388.03,391.87,386.51,387.17,4039900,387.17],
-["2006-06-19",390.85,394.80,386.98,388.14,7633100,388.14],
-["2006-06-16",389.10,390.93,388.00,390.70,5304600,390.70],
-["2006-06-15",386.62,392.25,383.00,391.00,6785700,391.00],
-["2006-06-14",389.83,391.10,378.52,384.39,7772000,384.39],
-["2006-06-13",380.90,387.00,378.12,386.52,7659100,386.52],
-["2006-06-12",388.34,390.49,381.00,381.54,5019100,381.54],
-["2006-06-09",392.19,395.43,385.35,386.57,6157500,386.57],
-["2006-06-08",387.75,394.27,378.59,393.30,10359500,393.30],
-["2006-06-07",393.24,394.86,386.50,386.51,8911300,386.51],
-["2006-06-06",376.58,390.00,376.30,389.99,10259800,389.99],
-["2006-06-05",376.18,381.45,374.15,374.44,5558500,374.44],
-["2006-06-02",386.84,387.08,377.45,379.44,6386400,379.44],
-["2006-06-01",373.54,382.99,371.60,382.62,6278000,382.62],
-["2006-05-31",373.80,378.25,366.78,371.82,7981300,371.82],
-["2006-05-30",378.28,381.00,371.45,371.94,4316000,371.94],
-["2006-05-26",384.55,385.88,380.03,381.35,3667000,381.35],
-["2006-05-25",379.08,383.00,372.31,382.99,8194600,382.99],
-["2006-05-24",377.35,383.44,371.61,381.25,9553800,381.25],
-["2006-05-23",374.21,383.88,373.56,375.58,8983000,375.58],
-["2006-05-22",367.85,373.03,365.25,370.95,8604400,370.95],
-["2006-05-19",373.28,374.50,360.57,370.02,11398200,370.02],
-["2006-05-18",378.78,381.81,370.71,370.99,5835000,370.99],
-["2006-05-17",370.61,379.84,370.22,374.50,10643800,374.50],
-["2006-05-16",375.99,376.86,369.89,371.30,6491100,371.30],
-["2006-05-15",375.93,380.15,368.25,376.20,8590100,376.20],
-["2006-05-12",383.54,384.87,373.55,374.13,10087600,374.13],
-["2006-05-11",403.42,404.71,384.98,387.00,8892800,387.00],
-["2006-05-10",408.31,411.71,401.86,402.98,6187200,402.98],
-["2006-05-09",395.70,409.00,393.75,408.80,9140600,408.80],
-["2006-05-08",395.11,397.12,390.05,394.78,5118600,394.78],
-["2006-05-05",397.60,400.68,391.78,394.30,6065000,394.30],
-["2006-05-04",395.03,398.87,392.21,394.75,4652000,394.75],
-["2006-05-03",396.35,401.50,390.88,394.17,8072200,394.17],
-["2006-05-02",401.08,402.49,388.40,394.80,13104300,394.80],
-["2006-05-01",418.47,419.44,398.55,398.90,10361200,398.90],
-["2006-04-28",418.63,425.73,416.30,417.94,7421300,417.94],
-["2006-04-27",422.91,426.91,419.39,420.03,8337900,420.03],
-["2006-04-26",427.74,430.04,423.53,425.97,7277800,425.97],
-["2006-04-25",439.63,441.04,426.00,427.16,9569000,427.16],
-["2006-04-24",439.40,444.70,436.52,440.50,8836400,440.50],
-["2006-04-21",448.90,450.72,436.17,437.10,22551300,437.10],
-["2006-04-20",411.01,416.00,408.20,415.00,12271500,415.00],
-["2006-04-19",412.57,413.64,406.73,410.50,6781700,410.50],
-["2006-04-18",407.93,409.83,401.50,404.24,8137600,404.24],
-["2006-04-17",403.45,412.50,400.84,406.82,8259500,406.82],
-["2006-04-13",408.63,409.76,400.50,402.16,6552900,402.16],
-["2006-04-12",409.00,411.33,405.19,408.95,6017000,408.95],
-["2006-04-11",416.42,419.10,406.22,409.66,11107200,409.66],
-["2006-04-10",407.08,417.17,405.25,416.38,9320100,416.38],
-["2006-04-07",412.41,412.85,404.02,406.16,7025900,406.16],
-["2006-04-06",406.49,413.89,405.43,411.18,8598500,411.18],
-["2006-04-05",408.20,414.57,402.82,407.99,13410500,407.99],
-["2006-04-04",389.90,404.90,388.14,404.34,15715700,404.34],
-["2006-04-03",389.53,392.47,387.93,389.70,8122700,389.70],
-["2006-03-31",388.74,391.87,384.03,390.00,36521400,390.00],
-["2006-03-30",389.19,393.50,383.61,388.44,14711700,388.44],
-["2006-03-29",379.94,399.00,379.51,394.98,19027500,394.98],
-["2006-03-28",371.71,377.86,371.17,377.20,8945800,377.20],
-["2006-03-27",367.09,371.71,365.00,369.69,7023700,369.69],
-["2006-03-24",368.62,370.09,362.51,365.80,15180600,365.80],
-["2006-03-23",342.35,345.75,340.20,341.89,7434700,341.89],
-["2006-03-22",339.75,344.10,337.50,340.22,7596000,340.22],
-["2006-03-21",350.01,351.66,339.08,339.92,9831100,339.92],
-["2006-03-20",342.34,350.09,341.54,348.19,10407600,348.19],
-["2006-03-17",338.80,341.78,334.93,339.79,8551700,339.79],
-["2006-03-16",348.61,348.75,337.90,338.77,10016700,338.77],
-["2006-03-15",350.77,352.30,340.53,344.50,12768800,344.50],
-["2006-03-14",337.14,352.37,332.62,351.16,18450700,351.16],
-["2006-03-13",340.93,346.10,335.45,337.06,13642400,337.06],
-["2006-03-10",343.50,344.50,331.55,337.50,19325600,337.50],
-["2006-03-09",355.39,358.53,341.50,343.00,13910400,343.00],
-["2006-03-08",353.93,360.03,350.54,353.88,11745600,353.88],
-["2006-03-07",365.02,368.45,358.15,364.45,10378800,364.45],
-["2006-03-06",380.91,383.40,367.14,368.10,8939700,368.10],
-["2006-03-03",384.30,387.24,375.76,378.18,11962000,378.18],
-["2006-03-02",364.28,381.10,362.20,376.45,18330300,376.45],
-["2006-03-01",368.56,369.45,361.30,364.80,12061200,364.80],
-["2006-02-28",393.20,397.54,338.51,362.62,39437600,362.62],
-["2006-02-27",381.27,391.70,380.28,390.38,10212200,390.38],
-["2006-02-24",377.30,380.07,373.49,377.40,6484300,377.40],
-["2006-02-23",365.61,381.24,365.39,378.07,12551600,378.07],
-["2006-02-22",367.15,368.95,363.86,365.49,6476200,365.49],
-["2006-02-21",366.44,373.54,365.11,366.59,8686000,366.59],
-["2006-02-17",369.86,372.14,363.62,368.75,14320200,368.75],
-["2006-02-16",345.67,367.00,344.49,366.46,21315500,366.46],
-["2006-02-15",341.27,346.00,337.83,342.38,12947000,342.38],
-["2006-02-14",345.33,351.69,342.40,343.32,14654000,343.32],
-["2006-02-13",346.64,350.60,341.89,345.70,19717800,345.70],
-["2006-02-10",361.95,364.50,353.14,362.61,15223500,362.61],
-["2006-02-09",371.20,374.40,356.11,358.77,11912400,358.77],
-["2006-02-08",368.48,370.69,354.67,369.08,20804100,369.08],
-["2006-02-07",382.99,383.70,363.35,367.92,16630200,367.92],
-["2006-02-06",385.31,389.90,379.56,385.10,8940400,385.10],
-["2006-02-03",393.62,393.90,372.57,381.55,18281800,381.55],
-["2006-02-02",403.82,406.50,395.98,396.04,11807700,396.04],
-["2006-02-01",389.03,402.00,387.52,401.78,27122500,401.78],
-["2006-01-31",430.57,439.60,423.97,432.66,22066000,432.66],
-["2006-01-30",429.23,433.28,425.00,426.82,8588900,426.82],
-["2006-01-27",435.00,438.22,428.98,433.49,8452200,433.49],
-["2006-01-26",439.54,439.99,423.56,434.27,12926100,434.27],
-["2006-01-25",451.26,454.23,429.22,433.00,18739800,433.00],
-["2006-01-24",436.03,444.95,434.48,443.03,15464600,443.03],
-["2006-01-23",407.38,428.39,405.73,427.50,22741400,427.50],
-["2006-01-20",438.70,440.03,394.74,399.46,41116700,399.46],
-["2006-01-19",451.17,453.49,433.00,436.45,14537300,436.45],
-["2006-01-18",447.30,457.36,443.25,444.91,20485700,444.91],
-["2006-01-17",463.06,469.90,462.53,467.11,8270300,467.11],
-["2006-01-13",464.31,466.89,461.61,466.25,7656600,466.25],
-["2006-01-12",473.72,474.99,461.50,463.63,10125300,463.63],
-["2006-01-11",471.27,475.11,469.18,471.63,9007400,471.63],
-["2006-01-10",464.42,470.25,462.04,469.76,9097100,469.76],
-["2006-01-09",466.41,473.40,460.94,466.90,12791900,466.90],
-["2006-01-06",456.87,470.50,453.24,465.66,17756900,465.66],
-["2006-01-05",446.00,451.55,441.50,451.24,10808300,451.24],
-["2006-01-04",443.90,448.96,439.75,445.24,15286400,445.24],
-["2006-01-03",422.52,435.67,418.22,435.23,13121200,435.23],
-["2005-12-30",417.27,418.21,413.74,414.86,7587100,414.86],
-["2005-12-29",427.98,428.73,419.17,420.15,6945800,420.15],
-["2005-12-28",424.34,427.78,421.26,426.69,7117900,426.69],
-["2005-12-27",431.86,431.86,422.76,424.64,6702800,424.64],
-["2005-12-23",432.15,432.50,428.78,430.93,4595100,430.93],
-["2005-12-22",431.77,432.86,425.93,432.04,7546600,432.04],
-["2005-12-21",433.55,436.86,420.71,426.33,11221900,426.33],
-["2005-12-20",427.86,432.20,424.67,429.74,10084700,429.74],
-["2005-12-19",432.20,446.21,420.11,424.60,21936800,424.60],
-["2005-12-16",425.34,432.50,422.75,430.15,16330500,430.15],
-["2005-12-15",419.11,423.14,416.50,422.55,6045800,422.55],
-["2005-12-14",417.04,419.73,415.49,418.96,6630400,418.96],
-["2005-12-13",412.50,418.00,411.64,417.49,8157000,417.49],
-["2005-12-12",414.63,415.21,409.95,412.61,6950100,412.61],
-["2005-12-09",415.00,415.78,408.56,409.20,7643400,409.20],
-["2005-12-08",405.30,410.65,402.64,410.65,8910100,410.65],
-["2005-12-07",406.16,406.70,399.01,404.22,11665900,404.22],
-["2005-12-06",408.70,416.41,401.70,404.54,15114700,404.54],
-["2005-12-05",417.00,417.50,404.28,405.85,10289400,405.85],
-["2005-12-02",416.94,419.53,413.86,417.70,7543500,417.70],
-["2005-12-01",409.20,415.44,408.29,414.09,9744900,414.09],
-["2005-11-30",404.26,408.45,395.56,404.91,15596600,404.91],
-["2005-11-29",424.46,426.40,402.14,403.54,21495800,403.54],
-["2005-11-28",429.82,431.24,422.44,423.48,11008400,423.48],
-["2005-11-25",425.78,428.75,425.30,428.62,4840100,428.62],
-["2005-11-23",417.04,424.72,415.78,422.86,10085000,422.86],
-["2005-11-22",408.65,417.31,406.23,416.47,9596000,416.47],
-["2005-11-21",399.17,409.98,393.49,409.36,10335100,409.36],
-["2005-11-18",403.49,404.50,399.85,400.21,7025700,400.21],
-["2005-11-17",401.80,403.81,399.53,403.45,9212200,403.45],
-["2005-11-16",396.20,398.85,394.11,398.15,8695200,398.15],
-["2005-11-15",394.38,397.00,390.95,392.80,8624900,392.80],
-["2005-11-14",392.12,398.22,391.53,396.97,7807900,396.97],
-["2005-11-11",395.12,396.90,388.85,390.40,7063900,390.40],
-["2005-11-10",378.36,391.35,377.43,391.10,9128700,391.10],
-["2005-11-09",386.67,388.29,378.03,379.15,10466900,379.15],
-["2005-11-08",394.25,395.59,388.58,389.90,7897500,389.90],
-["2005-11-07",395.10,397.47,392.15,395.03,9591500,395.03],
-["2005-11-04",389.98,391.79,385.45,390.43,8824900,390.43],
-["2005-11-03",382.41,386.58,381.38,385.95,7448400,385.95],
-["2005-11-02",381.70,385.00,377.17,379.68,10565400,379.68],
-["2005-11-01",371.86,383.90,369.01,379.38,16356100,379.38],
-["2005-10-31",360.24,374.75,359.51,372.14,14342900,372.14],
-["2005-10-28",355.27,358.95,355.02,358.17,5903500,358.17],
-["2005-10-27",356.60,357.09,351.68,353.06,5134400,353.06],
-["2005-10-26",346.28,356.00,346.19,355.44,8907500,355.44],
-["2005-10-25",345.78,347.40,342.86,346.91,6878300,346.91],
-["2005-10-24",343.37,349.30,342.19,348.65,9431700,348.65],
-["2005-10-21",345.80,346.43,333.00,339.90,22892400,339.90],
-["2005-10-20",309.99,311.13,301.21,303.20,13911700,303.20],
-["2005-10-19",304.00,309.87,303.96,308.70,7010700,308.70],
-["2005-10-18",304.96,307.96,302.74,303.28,7077800,303.28],
-["2005-10-17",297.50,305.20,294.56,305.00,7566700,305.00],
-["2005-10-14",299.90,300.23,292.54,296.14,8519100,296.14],
-["2005-10-13",302.00,302.00,290.68,297.44,10567700,297.44],
-["2005-10-12",305.20,307.19,299.00,300.97,9306200,300.97],
-["2005-10-11",310.61,312.65,304.86,306.10,8542600,306.10],
-["2005-10-10",313.31,314.82,309.15,310.65,5572200,310.65],
-["2005-10-07",314.79,316.67,310.54,312.99,6770300,312.99],
-["2005-10-06",314.14,314.48,310.09,312.75,7993800,312.75],
-["2005-10-05",312.69,314.90,308.00,310.71,8328400,310.71],
-["2005-10-04",319.95,321.28,310.74,311.00,9144300,311.00],
-["2005-10-03",313.63,320.11,312.79,318.68,9160300,318.68],
-["2005-09-30",314.22,317.50,312.29,316.46,9151300,316.46],
-["2005-09-29",306.68,310.72,306.08,309.62,5613800,309.62],
-["2005-09-28",314.22,315.10,305.60,306.00,7997400,306.00],
-["2005-09-27",314.95,318.41,313.38,313.94,6873100,313.94],
-["2005-09-26",319.50,320.95,312.56,314.28,9894400,314.28],
-["2005-09-23",313.00,317.21,312.59,315.36,8483800,315.36],
-["2005-09-22",311.50,319.22,310.17,311.37,13006400,311.37],
-["2005-09-21",308.41,313.76,305.96,311.90,10119700,311.90],
-["2005-09-20",306.15,311.30,305.23,307.91,9351000,307.91],
-["2005-09-19",301.00,306.00,300.71,303.79,5761900,303.79],
-["2005-09-16",304.02,304.50,299.87,300.20,7579800,300.20],
-["2005-09-15",299.52,306.75,297.91,302.62,15466200,302.62],
-["2005-09-14",308.73,313.28,300.30,303.00,11275800,303.00],
-["2005-09-13",309.00,315.53,306.17,311.68,10299900,311.68],
-["2005-09-12",301.75,311.42,301.00,309.74,10386500,309.74],
-["2005-09-09",297.28,299.10,296.56,299.09,4390500,299.09],
-["2005-09-08",294.83,299.28,293.36,295.39,6613300,295.39],
-["2005-09-07",285.89,295.50,285.28,294.87,7499500,294.87],
-["2005-09-06",289.00,289.39,286.80,287.11,4212300,287.11],
-["2005-09-02",286.51,289.99,286.44,288.45,3434500,288.45],
-["2005-09-01",285.91,287.50,285.00,286.25,2742100,286.25],
-["2005-08-31",288.23,288.50,284.36,286.00,5034000,286.00],
-["2005-08-30",287.39,289.51,285.88,287.27,4792000,287.27],
-["2005-08-29",282.24,289.12,282.24,288.45,5903000,288.45],
-["2005-08-26",283.48,285.02,282.66,283.58,3755300,283.58],
-["2005-08-25",282.55,284.00,279.97,282.59,4376600,282.59],
-["2005-08-24",277.57,284.75,276.45,282.57,8593100,282.57],
-["2005-08-23",276.16,279.74,274.12,279.58,5821700,279.58],
-["2005-08-22",281.24,281.47,273.35,274.01,6813000,274.01],
-["2005-08-19",280.99,281.45,279.62,280.00,5542900,280.00],
-["2005-08-18",275.91,280.50,275.00,279.99,11872800,279.99],
-["2005-08-17",285.51,286.57,284.00,285.10,3883300,285.10],
-["2005-08-16",284.88,287.79,283.34,285.65,7109200,285.65],
-["2005-08-15",289.80,292.77,283.77,284.00,8174700,284.00],
-["2005-08-12",283.36,290.20,281.64,289.72,6585900,289.72],
-["2005-08-11",285.89,286.58,280.62,284.05,7514900,284.05],
-["2005-08-10",291.30,292.33,284.88,285.68,6879000,285.68],
-["2005-08-09",291.96,292.68,288.51,291.57,5779300,291.57],
-["2005-08-08",293.60,295.65,290.49,291.25,4481800,291.25],
-["2005-08-05",297.50,298.51,291.31,292.35,5939700,292.35],
-["2005-08-04",295.55,299.00,295.25,297.73,5236500,297.73],
-["2005-08-03",298.00,299.72,295.60,297.30,5930600,297.30],
-["2005-08-02",291.60,299.52,291.12,299.19,7290200,299.19],
-["2005-08-01",288.12,292.50,288.10,291.61,5662400,291.61],
-["2005-07-29",292.14,292.84,286.99,287.76,8363300,287.76],
-["2005-07-28",297.41,297.41,293.28,293.50,5925600,293.50],
-["2005-07-27",297.74,298.23,292.40,296.93,7217900,296.93],
-["2005-07-26",295.01,298.00,292.09,296.09,9816900,296.09],
-["2005-07-25",302.39,303.29,294.96,295.85,9658800,295.85],
-["2005-07-22",306.37,309.25,296.33,302.40,23386800,302.40],
-["2005-07-21",314.05,317.80,311.21,313.94,19789400,313.94],
-["2005-07-20",305.57,312.61,301.80,312.00,14310400,312.00],
-["2005-07-19",302.10,310.35,301.80,309.90,12621400,309.90],
-["2005-07-18",300.00,301.90,297.75,299.54,6207800,299.54],
-["2005-07-15",301.24,303.40,299.78,301.19,8438400,301.19],
-["2005-07-14",305.34,306.75,300.07,300.89,10667700,300.89],
-["2005-07-13",292.51,299.24,292.10,298.86,11437900,298.86],
-["2005-07-12",293.39,294.40,290.93,291.78,5864900,291.78],
-["2005-07-11",296.40,296.60,291.02,293.35,8390300,293.35],
-["2005-07-08",296.25,297.50,294.05,296.23,7457600,296.23],
-["2005-07-07",289.39,295.80,288.51,295.54,10672100,295.54],
-["2005-07-06",297.30,297.60,291.38,291.52,8000300,291.52],
-["2005-07-05",292.10,295.98,290.23,295.71,7494000,295.71],
-["2005-07-01",295.04,296.24,289.22,291.25,9227600,291.25],
-["2005-06-30",294.34,298.93,291.04,294.15,15094400,294.15],
-["2005-06-29",302.50,304.38,292.15,292.72,18298700,292.72],
-["2005-06-28",306.28,309.25,302.00,302.00,19036500,302.00],
-["2005-06-27",298.90,304.47,293.86,304.10,17802900,304.10],
-["2005-06-24",290.90,298.00,289.58,297.25,17771200,297.25],
-["2005-06-23",288.00,294.81,286.50,289.71,14056400,289.71],
-["2005-06-22",289.67,292.32,288.67,289.30,10474000,289.30],
-["2005-06-21",288.07,290.30,284.97,287.84,15132300,287.84],
-["2005-06-20",276.09,287.67,271.73,286.70,21024700,286.70],
-["2005-06-17",279.00,280.30,275.90,280.30,10434400,280.30],
-["2005-06-16",274.26,278.30,273.07,277.44,12462400,277.44],
-["2005-06-15",275.00,277.30,267.43,274.80,20883100,274.80],
-["2005-06-14",278.59,281.24,277.75,278.35,10091900,278.35],
-["2005-06-13",279.82,284.19,276.52,282.75,12803200,282.75],
-["2005-06-10",286.99,287.28,280.02,282.50,12696600,282.50],
-["2005-06-09",284.72,288.50,280.56,286.31,16441100,286.31],
-["2005-06-08",292.85,293.19,278.00,279.56,25700900,279.56],
-["2005-06-07",297.10,299.59,290.30,293.12,24323000,293.12],
-["2005-06-06",282.39,293.75,281.83,290.94,22525900,290.94],
-["2005-06-03",286.79,289.30,277.41,280.26,18782300,280.26],
-["2005-06-02",288.73,289.78,284.60,287.90,17974100,287.90],
-["2005-06-01",283.20,292.89,282.02,288.00,35191700,288.00],
-["2005-05-31",269.43,278.40,269.37,277.27,22236800,277.27],
-["2005-05-27",260.46,266.05,259.25,266.00,12184100,266.00],
-["2005-05-26",260.96,263.76,258.30,259.20,13546600,259.20],
-["2005-05-25",252.73,260.98,250.63,260.81,18057900,260.81],
-["2005-05-24",256.96,265.44,253.50,256.00,29043100,256.00],
-["2005-05-23",243.16,258.10,242.71,255.45,21388300,255.45],
-["2005-05-20",241.21,241.67,239.65,241.61,8163500,241.61],
-["2005-05-19",240.34,241.17,238.27,239.18,9716500,239.18],
-["2005-05-18",233.61,239.97,233.52,239.16,12312000,239.16],
-["2005-05-17",230.56,233.45,230.20,233.13,7808900,233.13],
-["2005-05-16",229.68,231.62,228.57,231.05,5681400,231.05],
-["2005-05-13",229.18,231.09,227.32,229.24,7415500,229.24],
-["2005-05-12",230.81,232.23,228.20,228.72,8948200,228.72],
-["2005-05-11",228.97,231.98,227.93,231.29,11478800,231.29],
-["2005-05-10",225.47,227.80,224.72,227.80,6345800,227.80],
-["2005-05-09",228.00,228.50,225.43,226.02,5536800,226.02],
-["2005-05-06",228.40,229.25,226.47,228.02,6763900,228.02],
-["2005-05-05",228.62,228.62,225.88,226.98,7509600,226.98],
-["2005-05-04",227.23,229.88,227.00,228.50,12083500,228.50],
-["2005-05-03",221.85,228.15,221.32,226.19,17780200,226.19],
-["2005-05-02",222.05,223.70,220.21,222.29,9767400,222.29],
-["2005-04-29",221.91,222.25,217.82,220.00,9170200,220.00],
-["2005-04-28",219.50,222.08,217.71,219.45,8682800,219.45],
-["2005-04-27",217.99,220.85,216.74,219.78,10264800,219.78],
-["2005-04-26",220.22,222.00,218.29,218.75,17272000,218.75],
-["2005-04-25",217.82,224.74,217.52,223.53,19840000,223.53],
-["2005-04-22",222.90,224.00,214.26,215.81,33205100,215.81],
-["2005-04-21",200.42,205.00,199.32,204.22,17751900,204.22],
-["2005-04-20",198.58,200.50,195.91,198.10,15451500,198.10],
-["2005-04-19",189.33,192.00,188.03,191.40,8430000,191.40],
-["2005-04-18",184.58,187.88,183.49,186.97,6550300,186.97],
-["2005-04-15",190.10,190.34,184.66,185.00,11577400,185.00],
-["2005-04-14",193.27,194.36,190.10,191.45,6152700,191.45],
-["2005-04-13",193.47,194.32,189.73,192.93,6555800,192.93],
-["2005-04-12",193.00,194.42,189.41,193.96,7319600,193.96],
-["2005-04-11",193.09,194.80,192.32,193.23,5410500,193.23],
-["2005-04-08",193.69,195.10,191.45,192.05,5116600,192.05],
-["2005-04-07",188.78,194.62,188.64,193.76,9692200,193.76],
-["2005-04-06",189.24,189.65,187.58,189.22,5252600,189.22],
-["2005-04-05",187.73,190.26,187.57,188.57,8736700,188.57],
-["2005-04-04",179.95,185.32,179.84,185.29,8076400,185.29],
-["2005-04-01",181.76,182.95,179.99,180.04,6182000,180.04],
-["2005-03-31",177.95,181.39,177.64,180.51,6768600,180.51],
-["2005-03-30",180.64,181.45,179.60,180.45,6236100,180.45],
-["2005-03-29",181.05,183.28,178.07,179.57,6473000,179.57],
-["2005-03-28",181.68,184.80,180.95,181.42,8738000,181.42],
-["2005-03-24",180.70,180.86,179.20,179.25,3705200,179.25],
-["2005-03-23",177.97,180.24,177.97,178.98,4845000,178.98],
-["2005-03-22",181.18,181.94,177.85,178.60,5631700,178.60],
-["2005-03-21",179.27,182.17,177.25,180.88,7483700,180.88],
-["2005-03-18",178.81,180.40,178.31,180.04,7090000,180.04],
-["2005-03-17",177.13,179.64,175.80,179.29,8260600,179.29],
-["2005-03-16",176.70,178.61,175.01,175.60,7106300,175.60],
-["2005-03-15",175.30,180.00,174.21,178.61,10422100,178.61],
-["2005-03-14",178.33,178.40,172.57,174.99,11146600,174.99],
-["2005-03-11",180.44,180.95,177.15,177.80,8028300,177.80],
-["2005-03-10",181.01,181.20,177.40,179.98,10960500,179.98],
-["2005-03-09",184.21,184.65,180.16,181.35,11360400,181.35],
-["2005-03-08",189.10,189.85,184.97,185.20,8046100,185.20],
-["2005-03-07",187.78,189.60,187.03,188.81,8667400,188.81],
-["2005-03-04",186.70,187.25,185.07,185.90,6774100,185.90],
-["2005-03-03",186.13,187.75,184.31,187.01,7608600,187.01],
-["2005-03-02",185.95,187.67,184.36,185.18,7285500,185.18],
-["2005-03-01",189.29,189.75,182.00,186.06,9311200,186.06],
-["2005-02-28",186.00,189.87,185.85,187.99,7818400,187.99],
-["2005-02-25",189.15,189.92,185.51,185.87,9973500,185.87],
-["2005-02-24",183.37,189.85,182.23,188.89,25814300,188.89],
-["2005-02-23",193.30,194.48,188.66,193.95,15586000,193.95],
-["2005-02-22",196.50,198.90,190.39,191.37,13483700,191.37],
-["2005-02-18",198.51,198.84,196.66,197.95,8485900,197.95],
-["2005-02-17",197.83,199.75,196.81,197.90,10414400,197.90],
-["2005-02-16",194.70,199.33,194.30,198.41,16532300,198.41],
-["2005-02-15",193.60,199.84,193.08,195.23,25782800,195.23],
-["2005-02-14",182.85,193.08,181.00,192.99,38562200,192.99],
-["2005-02-11",186.66,192.32,186.07,187.40,13116000,187.40],
-["2005-02-10",191.97,192.21,185.25,187.98,18982700,187.98],
-["2005-02-09",200.76,201.60,189.46,191.58,17171500,191.58],
-["2005-02-08",196.96,200.02,194.53,198.64,11480000,198.64],
-["2005-02-07",205.26,206.40,195.51,196.03,12960400,196.03],
-["2005-02-04",206.47,207.75,202.60,204.36,14819300,204.36],
-["2005-02-03",205.99,213.37,205.81,210.86,12988100,210.86],
-["2005-02-02",215.55,216.80,203.66,205.96,32799300,205.96],
-["2005-02-01",194.38,196.66,190.63,191.90,18839000,191.90],
-["2005-01-31",193.69,196.36,191.72,195.62,9596700,195.62],
-["2005-01-28",190.02,194.70,186.34,190.34,12208200,190.34],
-["2005-01-27",188.76,188.86,185.20,188.08,6627400,188.08],
-["2005-01-26",179.27,189.41,179.15,189.24,12307900,189.24],
-["2005-01-25",181.94,182.24,176.29,177.12,10659200,177.12],
-["2005-01-24",188.69,189.33,180.32,180.72,14022700,180.72],
-["2005-01-21",194.54,195.36,188.12,188.28,9258400,188.28],
-["2005-01-20",192.50,196.25,192.00,193.92,9001600,193.92],
-["2005-01-19",204.65,205.30,196.71,197.30,11257700,197.30],
-["2005-01-18",200.97,205.02,198.66,203.90,13172600,203.90],
-["2005-01-14",196.00,200.01,194.13,199.97,9640300,199.97],
-["2005-01-13",195.38,197.39,194.05,195.33,6849400,195.33],
-["2005-01-12",194.33,195.93,190.50,195.38,8177800,195.38],
-["2005-01-11",195.62,197.71,193.18,193.54,6958700,193.54],
-["2005-01-10",194.50,198.10,191.83,195.06,7539600,195.06],
-["2005-01-07",190.64,194.25,188.78,193.85,9662900,193.85],
-["2005-01-06",195.08,195.90,187.72,188.55,10387100,188.55],
-["2005-01-05",193.45,196.90,192.23,193.51,8236600,193.51],
-["2005-01-04",201.40,202.93,193.48,194.50,13755900,194.50],
-["2005-01-03",197.40,203.64,195.46,202.71,15844200,202.71],
-["2004-12-31",199.23,199.88,192.56,192.79,7668500,192.79],
-["2004-12-30",192.97,198.23,191.85,197.60,5904300,197.60],
-["2004-12-29",191.78,193.52,191.78,192.90,2678100,192.90],
-["2004-12-28",192.11,193.55,191.01,192.76,4145800,192.76],
-["2004-12-27",189.15,193.30,189.10,191.91,6104100,191.91],
-["2004-12-23",187.45,188.60,186.00,187.90,3614600,187.90],
-["2004-12-22",183.90,186.85,183.01,186.30,3907000,186.30],
-["2004-12-21",186.31,187.88,183.40,183.75,5516300,183.75],
-["2004-12-20",182.00,188.46,181.87,185.02,9834500,185.02],
-["2004-12-17",176.76,180.50,176.55,180.08,7386200,180.08],
-["2004-12-16",176.95,180.49,175.95,176.47,8572800,176.47],
-["2004-12-15",177.99,180.69,176.66,179.78,11471000,179.78],
-["2004-12-14",171.00,178.82,169.60,178.69,11088400,178.69],
-["2004-12-13",172.17,173.18,169.45,170.45,4818600,170.45],
-["2004-12-10",173.43,174.88,171.29,171.65,4317200,171.65],
-["2004-12-09",170.25,173.50,168.47,173.43,7654000,173.43],
-["2004-12-08",170.35,173.68,168.73,169.98,7541800,169.98],
-["2004-12-07",176.00,176.20,170.55,171.43,6870900,171.43],
-["2004-12-06",179.13,180.70,176.02,176.29,6254000,176.29],
-["2004-12-03",179.95,181.06,177.60,180.40,5869200,180.40],
-["2004-12-02",179.90,181.51,178.55,179.40,6260900,179.40],
-["2004-12-01",181.95,182.50,179.55,179.96,7864100,179.96],
-["2004-11-30",180.71,183.00,180.25,181.98,7700000,181.98],
-["2004-11-29",180.36,182.95,177.51,181.05,10666600,181.05],
-["2004-11-26",175.80,180.03,175.32,179.39,6480100,179.39],
-["2004-11-24",174.82,177.21,172.51,174.76,15281000,174.76],
-["2004-11-23",167.97,170.83,166.50,167.52,12413300,167.52],
-["2004-11-22",164.47,169.50,161.31,165.10,12368200,165.10],
-["2004-11-19",169.10,169.98,166.52,169.40,8769300,169.40],
-["2004-11-18",170.29,174.42,165.73,167.54,16629600,167.54],
-["2004-11-17",169.02,177.50,169.00,172.50,18132900,172.50],
-["2004-11-16",177.50,179.47,170.83,172.54,20917400,172.54],
-["2004-11-15",180.45,188.32,178.75,184.87,11901500,184.87],
-["2004-11-12",185.23,189.80,177.40,182.00,16746100,182.00],
-["2004-11-11",169.13,183.75,167.57,183.02,14985500,183.02],
-["2004-11-10",170.67,172.52,166.33,167.86,10644000,167.86],
-["2004-11-09",174.10,175.20,165.27,168.70,11064200,168.70],
-["2004-11-08",170.93,175.44,169.40,172.55,11191800,172.55],
-["2004-11-05",181.98,182.30,168.55,169.35,19833100,169.35],
-["2004-11-04",188.44,190.40,183.35,184.70,14409600,184.70],
-["2004-11-03",198.18,201.60,190.75,191.67,13888700,191.67],
-["2004-11-02",198.78,199.25,193.34,194.87,11346300,194.87],
-["2004-11-01",193.55,197.67,191.27,196.03,12224900,196.03],
-["2004-10-29",198.89,199.95,190.60,190.64,21162500,190.64],
-["2004-10-28",186.68,194.39,185.60,193.30,14846800,193.30],
-["2004-10-27",182.72,189.52,181.77,185.97,13356500,185.97],
-["2004-10-26",186.34,192.64,180.00,181.80,22307100,181.80],
-["2004-10-25",176.40,194.43,172.55,187.40,32764200,187.40],
-["2004-10-22",170.54,180.17,164.08,172.43,36891900,172.43],
-["2004-10-21",144.40,150.13,141.62,149.38,14589500,149.38],
-["2004-10-20",148.03,148.99,139.60,140.49,11372700,140.49],
-["2004-10-19",150.50,152.40,147.35,147.94,9064000,147.94],
-["2004-10-18",143.20,149.20,141.21,149.16,7025200,149.16],
-["2004-10-15",144.93,145.50,141.95,144.11,6604000,144.11],
-["2004-10-14",141.01,142.38,138.56,142.00,5226300,142.00],
-["2004-10-13",143.32,143.55,140.08,140.90,9893000,140.90],
-["2004-10-12",134.44,137.61,133.40,137.40,5838600,137.40],
-["2004-10-11",137.00,138.86,133.85,135.26,5241300,135.26],
-["2004-10-08",138.72,139.68,137.02,137.73,5540300,137.73],
-["2004-10-07",136.92,139.88,136.55,138.85,7064600,138.85],
-["2004-10-06",137.55,138.45,136.00,137.08,6697400,137.08],
-["2004-10-05",134.66,138.53,132.24,138.37,7494100,138.37],
-["2004-10-04",135.25,136.87,134.03,135.06,6517900,135.06],
-["2004-10-01",130.80,134.24,128.90,132.58,7570000,132.58],
-["2004-09-30",129.90,132.30,129.00,129.60,6885900,129.60],
-["2004-09-29",126.70,135.02,126.23,131.08,15273500,131.08],
-["2004-09-28",121.30,127.40,120.21,126.86,8473000,126.86],
-["2004-09-27",119.56,120.88,117.80,118.26,3536600,118.26],
-["2004-09-24",120.94,124.10,119.76,119.83,4566300,119.83],
-["2004-09-23",118.84,122.63,117.02,120.82,4272100,120.82],
-["2004-09-22",117.40,119.67,116.81,118.38,3794400,118.38],
-["2004-09-21",119.81,120.42,117.51,117.84,3618000,117.84],
-["2004-09-20",116.95,121.60,116.77,119.36,5319700,119.36],
-["2004-09-17",114.42,117.49,113.55,117.49,4741000,117.49],
-["2004-09-16",112.34,115.80,111.65,113.97,4637800,113.97],
-["2004-09-15",110.56,114.23,110.20,112.00,5361900,112.00],
-["2004-09-14",107.45,112.00,106.79,111.49,5419900,111.49],
-["2004-09-13",106.63,108.41,106.46,107.50,3926000,107.50],
-["2004-09-10",101.60,106.56,101.30,105.33,4353800,105.33],
-["2004-09-09",102.53,102.71,101.00,102.31,2032900,102.31],
-["2004-09-08",100.74,103.03,100.50,102.30,2495300,102.30],
-["2004-09-07",101.01,102.00,99.61,101.58,2926700,101.58],
-["2004-09-03",100.95,101.74,99.32,100.01,2578800,100.01],
-["2004-09-02",99.19,102.37,98.94,101.51,7566900,101.51],
-["2004-09-01",102.70,102.97,99.67,100.25,4573700,100.25],
-["2004-08-31",102.30,103.71,102.16,102.37,2461400,102.37],
-["2004-08-30",105.28,105.49,102.01,102.01,2601000,102.01],
-["2004-08-27",108.10,108.62,105.69,106.15,3109000,106.15],
-["2004-08-26",104.95,107.95,104.66,107.91,3551000,107.91],
-["2004-08-25",104.96,108.00,103.88,106.00,4598900,106.00],
-["2004-08-24",111.24,111.60,103.57,104.87,7631300,104.87],
-["2004-08-23",110.75,113.48,109.05,109.40,9137200,109.40],
-["2004-08-20",101.01,109.08,100.50,108.31,11428600,108.31],
-["2004-08-19",100.00,104.06,95.96,100.34,22351900,100.34]
-]; \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js
deleted file mode 100755
index 11da48a8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js
+++ /dev/null
@@ -1 +0,0 @@
-var yahoo=[["2011-10-18",580.19,592.56,577.4,590.51,3800800,590.51],["2011-10-17",583.72,591.83,578,582.41,4008200,582.41],["2011-10-14",599.47,599.6,587.57,591.68,8529900,591.68],["2011-10-13",550.03,559,548.02,558.99,5639600,558.99],["2011-10-12",548.13,555.23,544.63,548.5,3177800,548.5],["2011-10-11",533.46,546.8,533.46,543.18,2853400,543.18],["2011-10-10",525.18,537.47,523.2,537.17,2322200,537.17],["2011-10-07",516.83,520.5,510.3,515.12,2855900,515.12],["2011-10-06",507.5,515.23,502.6,514.71,3424300,514.71],["2011-10-05",496.35,507.8,480.77,504.7,4534100,504.7],["2011-10-04",490.03,503.44,480.6,501.9,4158800,501.9],["2011-10-03",509.85,512,495,495.52,4474400,495.52],["2011-09-30",520.21,524,514.38,515.04,2723600,515.04],["2011-09-29",536.04,537.3,519.41,527.5,2906600,527.5],["2011-09-28",541.5,544.02,527.7,528.84,2263300,528.84],["2011-09-27",538.2,547.05,536.05,539.34,3010900,539.34],["2011-09-26",527.25,532.93,513.25,531.89,2634200,531.89],["2011-09-23",516.56,526.42,514.5,525.51,2777300,525.51],["2011-09-22",526.25,528.78,514,520.66,4400300,520.66],["2011-09-21",547.69,555,538.86,539.2,2514300,539.2],["2011-09-20",549.4,558.52,542.67,546.63,2779100,546.63],["2011-09-19",540.35,549.9,535.38,546.67,2468400,546.67],["2011-09-16",544.8,546.84,543.14,546.68,3534300,546.68],["2011-09-15",535.5,544.98,534.56,542.56,2960800,542.56],["2011-09-14",532.59,536.95,525.82,532.07,2694400,532.07],["2011-09-13",532,533.88,523.4,529.52,2354200,529.52],["2011-09-12",517.96,531.99,517.5,530.12,2670400,530.12],["2011-09-09",531.4,534.65,521.19,524.85,3268800,524.85],["2011-09-08",533.8,539.1,531.9,534.96,2380500,534.96],["2011-09-07",530.45,535.94,527.4,534.03,2755800,534.03],["2011-09-06",510.8,522.76,510.5,522.18,2715800,522.18],["2011-09-02",524.47,527.92,520.73,524.84,2401200,524.84],["2011-09-01",540.75,543.83,531.22,532.5,2415500,532.5],["2011-08-31",544.74,546.3,536,540.96,2693300,540.96],["2011-08-30",538.19,542.99,530.81,540.7,2989000,540.7],["2011-08-29",534.56,539.45,533.56,539.08,2335800,539.08],["2011-08-26",519.99,530.45,513.14,526.86,3596300,526.86],["2011-08-25",530.38,537.27,518.3,520.04,3293000,520.04],["2011-08-24",519.33,530,517.23,523.29,3594500,523.29],["2011-08-23",503.5,521.41,499.06,518.82,4346800,518.82],["2011-08-22",504,507,494.53,498.17,4905900,498.17],["2011-08-19",499.34,514.87,490.86,490.92,5410000,490.92],["2011-08-18",523.47,524.89,500.49,504.88,6290700,504.88],["2011-08-17",540.03,543.69,530.77,533.15,4055000,533.15],["2011-08-16",552.43,552.44,530.3,539,6939400,539],["2011-08-15",553.43,564.99,546.05,557.23,7144900,557.23],["2011-08-12",569.5,570.5,560.4,563.77,3154300,563.77],["2011-08-11",553.82,568.5,548.41,562.13,4830600,562.13],["2011-08-10",561.38,564.12,547.73,549.01,5369600,549.01],["2011-08-09",561,574.61,541.01,573.41,6469700,573.41],["2011-08-08",562.98,569,544.35,546.02,7496600,546.02],["2011-08-05",582.54,590,562,579.04,5929100,579.04],["2011-08-04",594.5,598.85,577.47,577.52,4914600,577.52],["2011-08-03",594.27,603,583.63,601.17,3825700,601.17],["2011-08-02",606,609.67,591.57,592.4,3200600,592.4],["2011-08-01",611.22,615.5,599.18,606.77,3966100,606.77],["2011-07-29",604.23,614.96,603.69,603.69,4137400,603.69],["2011-07-28",605.19,615.98,603,610.94,3108400,610.94],["2011-07-27",617.18,620.95,604.75,607.22,3934400,607.22],["2011-07-26",618.05,627.5,617.22,622.52,2342900,622.52],["2011-07-25",613.36,625.41,613,618.98,3131600,618.98],["2011-07-22",605.39,619.5,604.27,618.23,3528200,618.23],["2011-07-21",594.03,608.06,594.01,606.99,3469500,606.99],["2011-07-20",602.18,602.83,595.35,595.35,2227800,595.35],["2011-07-19",596.14,604.68,595.53,602.55,2967500,602.55],["2011-07-18",592.49,602.05,592,594.94,4468300,594.94],["2011-07-15",597.5,600.25,588.16,597.62,13732100,597.62],["2011-07-14",539.12,542,526.73,528.94,6594400,528.94],["2011-07-13",537,544,536.48,538.26,2790200,538.26],["2011-07-12",528.16,539.42,526,534.01,2841200,534.01],["2011-07-11",528.18,535.98,525.5,527.28,2839300,527.28],["2011-07-08",532.95,537.65,527.27,531.99,4770200,531.99],["2011-07-07",541,550.68,535.88,546.6,3935500,546.6],["2011-07-06",533.5,538.51,533.04,535.36,2695600,535.36],["2011-07-05",525.3,535.4,525.3,532.44,3849200,532.44],["2011-07-01",506.74,521.18,506.38,521.03,3636700,521.03],["2011-06-30",501.99,506.67,501.5,506.38,2428400,506.38],["2011-06-29",496.54,500.25,492.38,497.57,2343000,497.57],["2011-06-28",484.02,496.21,484.02,493.65,2715100,493.65],["2011-06-27",474,488.4,473.6,482.8,3444700,482.8],["2011-06-24",480.68,480.75,473.02,474.88,3805600,474.88],["2011-06-23",482.13,482.86,473.73,480.22,4801700,480.22],["2011-06-22",491.45,492.35,486.73,487.01,2407100,487.01],["2011-06-21",487.19,493.94,484.73,493,2765400,493],["2011-06-20",485,486.23,479.23,484.58,3028600,484.58],["2011-06-17",506.18,506.69,484.8,485.02,5245400,485.02],["2011-06-16",502.81,506.57,496.67,500.37,2757000,500.37],["2011-06-15",505.03,508.35,500.61,502.95,2073300,502.95],["2011-06-14",508.15,514.08,506.99,508.37,2341500,508.37],["2011-06-13",510,510.2,502.17,504.73,2427300,504.73],["2011-06-10",514.08,516.69,509.29,509.51,2439900,509.51],["2011-06-09",520,520,515.64,516.73,1689100,516.73],["2011-06-08",516.53,521.24,515.78,519.17,1653400,519.17],["2011-06-07",522.89,524.63,518.99,519.03,1907600,519.03],["2011-06-06",523.54,526.82,519.25,521.06,1942100,521.06],["2011-06-03",522,527.6,521.5,523.08,1748500,523.08],["2011-06-02",527.57,530.3,522.48,528.06,2204500,528.06],["2011-06-01",528.04,533.2,525.31,525.6,2955900,525.6],["2011-05-31",525,529.05,523.5,529.02,2687300,529.02],["2011-05-27",518.48,521.79,516.3,520.9,1745800,520.9],["2011-05-26",517.7,522.12,515,518.13,2118500,518.13],["2011-05-25",517.33,522.77,517.25,519.67,1301600,519.67],["2011-05-24",520.37,523.96,518.15,518.26,1888400,518.26],["2011-05-23",516.6,520,513.4,518.39,2252700,518.39],["2011-05-20",531.8,531.99,523.13,524.03,2317500,524.03],["2011-05-19",532.73,536.54,529.72,531.25,2468700,531.25],["2011-05-18",529.54,530.33,525.7,529.81,1953200,529.81],["2011-05-17",515.43,531.22,515.03,530.46,3303600,530.46],["2011-05-16",526.31,527.27,516.4,518.42,2958200,518.42],["2011-05-13",534.61,535.92,529.05,529.55,2108700,529.55],["2011-05-12",535.24,536.94,530.91,535.05,1400000,535.05],["2011-05-11",540.14,543.55,533.69,535.45,2338800,535.45],["2011-05-10",540,544.43,537.54,542.66,2042900,542.66],["2011-05-09",535,538.49,531.1,537.68,1948700,537.68],["2011-05-06",538.15,541.46,535.18,535.3,2056100,535.3],["2011-05-05",533.86,539.42,531.5,534.27,1997800,534.27],["2011-05-04",535.17,539,533.02,535.79,2117000,535.79],["2011-05-03",537.13,542.01,529.63,533.89,2081500,533.89],["2011-05-02",545.7,545.73,537.12,538.56,2133700,538.56],["2011-04-29",540,544.1,538.51,544.1,4200000,544.1],["2011-04-28",538.06,539.25,534.08,537.97,2037400,537.97],["2011-04-27",538,538.11,534.35,537.76,2298400,537.76],["2011-04-26",526.52,537.44,525.21,532.82,3535400,532.82],["2011-04-25",525.25,527,522.01,525.05,1630800,525.05],["2011-04-21",527.49,528.28,522.39,525.1,2470100,525.1],["2011-04-20",525.9,526.82,521.39,525.73,3060000,525.73],["2011-04-19",529.95,530.88,520.9,521.53,2684100,521.53],["2011-04-18",526.42,527.66,519,526.84,5039800,526.84],["2011-04-15",545.29,545.75,530.06,530.7,14043700,530.7],["2011-04-14",575.19,579.45,572.1,578.51,5456300,578.51],["2011-04-13",575.51,577.6,571.75,576.28,2069400,576.28],["2011-04-12",575,576.91,568.05,570.61,2085600,570.61],["2011-04-11",576.2,578.1,573,577.37,1858200,577.37],["2011-04-08",584.89,584.89,578.06,578.16,1901800,578.16],["2011-04-07",575.73,580.64,574.19,580,2531500,580],["2011-04-06",572.18,575.16,568,574.18,2668300,574.18],["2011-04-05",581.08,581.49,565.68,569.09,6047500,569.09],["2011-04-04",593,594.74,583.1,587.68,2054500,587.68],["2011-04-01",588.76,595.19,588.76,591.8,2613200,591.8],["2011-03-31",583,588.16,581.74,586.76,2029400,586.76],["2011-03-30",584.38,585.5,580.58,581.84,1422300,581.84],["2011-03-29",576,581.89,573.01,581.73,1604800,581.73],["2011-03-28",582.07,584.99,574.71,575.36,2218400,575.36],["2011-03-25",586.88,586.91,579.24,579.74,2858400,579.74],["2011-03-24",585.43,588.39,578.8,586.89,2098700,586.89],["2011-03-23",575.19,582.45,572,582.16,1816200,582.16],["2011-03-22",577.27,579.23,572.51,577.32,1886900,577.32],["2011-03-21",570.22,579.8,569.02,576.5,3020900,576.5],["2011-03-18",564.64,567.99,559.74,561.06,3298600,561.06],["2011-03-17",564.48,569,560.54,561.36,2899300,561.36],["2011-03-16",568.01,569.79,551.28,557.1,3798500,557.1],["2011-03-15",557.5,571,555.5,569.56,4005600,569.56],["2011-03-14",572.8,578.29,568.02,569.99,2816100,569.99],["2011-03-11",578.22,580,573.33,576.71,3032000,576.71],["2011-03-10",585.44,586.62,579.45,580.3,3128100,580.3],["2011-03-09",591,594.51,585.75,591.77,2151000,591.77],["2011-03-08",592.93,597.98,590.2,592.31,2284900,592.31],["2011-03-07",600.55,603.69,587,591.66,3462700,591.66],["2011-03-04",608.33,608.98,600.2,600.62,3011000,600.62],["2011-03-03",606.38,611.49,605,609.56,1945300,609.56],["2011-03-02",599.8,606,595.19,600.79,2026700,600.79],["2011-03-01",617.78,619.22,599.3,600.76,3323200,600.76],["2011-02-28",610,616.49,608.01,613.4,2281500,613.4],["2011-02-25",611.86,614.72,609.5,610.04,1932400,610.04],["2011-02-24",611.39,613.09,601.35,608.82,2711700,608.82],["2011-02-23",610.33,614.7,604,611.32,2889600,611.32],["2011-02-22",620.03,624.93,607.77,610.21,3639900,610.21],["2011-02-18",626,631.18,624.18,630.08,3217900,630.08],["2011-02-17",621.25,627.25,620.28,625.26,1478800,625.26],["2011-02-16",625.63,626.5,622.1,624.22,1684000,624.22],["2011-02-15",627.32,630.09,623.1,624.15,2092000,624.15],["2011-02-14",623.34,629.64,620.04,628.15,2128000,628.15],["2011-02-11",613.79,625,613,624.5,2589900,624.5],["2011-02-10",613.9,617.5,611.56,616.44,2334400,616.44],["2011-02-09",616.87,619.45,612.34,616.5,1842500,616.5],["2011-02-08",614.93,619.63,614.51,618.38,1694900,618.38],["2011-02-07",610.16,618.39,609.21,614.29,1799600,614.29],["2011-02-04",610.15,611.44,606.61,610.98,1550800,610.98],["2011-02-03",609.48,611.45,606.13,610.15,1495100,610.15],["2011-02-02",611,614.34,607.53,612,1760700,612],["2011-02-01",604.49,613.35,603.11,611.04,2745300,611.04],["2011-01-31",603.6,604.47,595.55,600.36,2804900,600.36],["2011-01-28",619.07,620.36,599.76,600.99,4231100,600.99],["2011-01-27",617.89,619.7,613.25,616.79,2019200,616.79],["2011-01-26",620.33,622.49,615.28,616.5,2038100,616.5],["2011-01-25",608.2,620.69,606.52,619.91,3646800,619.91],["2011-01-24",607.57,612.49,601.23,611.08,4599200,611.08],["2011-01-21",639.58,641.73,611.36,611.83,8904400,611.83],["2011-01-20",632.21,634.08,623.29,626.77,5485800,626.77],["2011-01-19",642.12,642.96,629.66,631.75,3406100,631.75],["2011-01-18",626.06,641.99,625.27,639.63,3617000,639.63],["2011-01-14",617.4,624.27,617.08,624.18,2365600,624.18],["2011-01-13",616.97,619.67,614.16,616.69,1334000,616.69],["2011-01-12",619.35,619.35,614.77,616.87,1632700,616.87],["2011-01-11",617.71,618.8,614.5,616.01,1439300,616.01],["2011-01-10",614.8,615.39,608.56,614.21,1579200,614.21],["2011-01-07",615.91,618.25,610.13,616.44,2101200,616.44],["2011-01-06",610.68,618.43,610.05,613.5,2057800,613.5],["2011-01-05",600.07,610.33,600.05,609.07,2532300,609.07],["2011-01-04",605.62,606.18,600.12,602.12,1824500,602.12],["2011-01-03",596.48,605.59,596.48,604.35,2365200,604.35],["2010-12-31",596.74,598.42,592.03,593.97,1539300,593.97],["2010-12-30",598,601.33,597.39,598.86,989500,598.86],["2010-12-29",602,602.41,598.92,601,1019200,601],["2010-12-28",602.05,603.87,598.01,598.92,1064800,598.92],["2010-12-27",602.74,603.78,599.5,602.38,1208100,602.38],["2010-12-23",605.34,606,602.03,604.23,1110800,604.23],["2010-12-22",604,607,603.28,605.49,1207500,605.49],["2010-12-21",598.57,604.72,597.61,603.07,1879500,603.07],["2010-12-20",594.65,597.88,588.66,595.06,1973300,595.06],["2010-12-17",591,592.56,587.67,590.8,3087100,590.8],["2010-12-16",592.85,593.77,588.07,591.71,1596900,591.71],["2010-12-15",594.2,596.45,589.15,590.3,2167700,590.3],["2010-12-14",597.09,598.29,592.48,594.91,1643300,594.91],["2010-12-13",597.12,603,594.09,594.62,2398500,594.62],["2010-12-10",593.14,593.99,590.29,592.21,1704700,592.21],["2010-12-09",593.88,595.58,589,591.5,1868900,591.5],["2010-12-08",591.97,592.52,583.69,590.54,1756900,590.54],["2010-12-07",591.27,593,586,587.14,3042200,587.14],["2010-12-06",580.57,582,576.61,578.36,2093800,578.36],["2010-12-03",569.45,576.48,568,573,2631200,573],["2010-12-02",568.66,573.33,565.35,571.82,2547900,571.82],["2010-12-01",563,571.57,562.4,564.35,3754100,564.35],["2010-11-30",574.32,574.32,553.31,555.71,7117400,555.71],["2010-11-29",589.17,589.8,579.95,582.11,2859700,582.11],["2010-11-26",590.46,592.98,587,590,1311100,590],["2010-11-24",587.31,596.6,587.05,594.97,2396400,594.97],["2010-11-23",587.01,589.01,578.2,583.01,2162600,583.01],["2010-11-22",587.47,593.44,582.75,591.22,2186600,591.22],["2010-11-19",597,597.89,590.34,590.83,2297500,590.83],["2010-11-18",589,599.98,588.56,596.56,2590000,596.56],["2010-11-17",585,589.5,581.37,583.55,2442500,583.55],["2010-11-16",592.76,597.89,583.45,583.72,3307400,583.72],["2010-11-15",603.08,604,594.05,595.47,3478900,595.47],["2010-11-12",613.99,616.9,601.21,603.29,3393000,603.29],["2010-11-11",619.7,619.85,614.21,617.19,2261600,617.19],["2010-11-10",622.08,623,617.51,622.88,2497000,622.88],["2010-11-09",630,630.85,620.51,624.82,2237200,624.82],["2010-11-08",624.02,629.49,623.13,626.77,2101300,626.77],["2010-11-05",623.18,625.49,621.11,625.08,1765700,625.08],["2010-11-04",624.64,629.92,622.1,624.27,3570800,624.27],["2010-11-03",617.5,621.83,613.5,620.18,3380500,620.18],["2010-11-02",618.67,620,614.58,615.6,1997600,615.6],["2010-11-01",615.73,620.66,611.21,615,3087100,615],["2010-10-29",617.07,619,612.99,613.7,2278300,613.7],["2010-10-28",620.05,621,613.3,618.58,2184300,618.58],["2010-10-27",615.77,620,612.33,616.47,2241900,616.47],["2010-10-26",613.1,621.23,611.03,618.6,2512900,618.6],["2010-10-25",615.59,624.74,614.97,616.5,3158400,616.5],["2010-10-22",611.92,614.82,610.05,612.53,2256100,612.53],["2010-10-21",611.51,616,606,611.99,2920500,611.99],["2010-10-20",608.14,617.38,607.5,607.98,3525100,607.98],["2010-10-19",608.85,614.82,602.86,607.83,4587900,607.83],["2010-10-18",600.55,619.69,600.55,617.71,7098200,617.71],["2010-10-15",599.27,601.64,591.6,601.45,14824800,601.45],["2010-10-14",544.18,545.25,537.11,540.93,6634100,540.93],["2010-10-13",547,547.49,542.33,543.3,3055600,543.3],["2010-10-12",540.12,545.99,537.79,541.39,3753600,541.39],["2010-10-11",538.48,544.6,537.17,538.84,2626300,538.84],["2010-10-08",532.77,537.6,527.62,536.35,2859200,536.35],["2010-10-07",536.21,537.2,529.14,530.01,2395800,530.01],["2010-10-06",539.26,539.95,529.94,534.35,2762300,534.35],["2010-10-05",528.38,540,526.55,538.23,3507100,538.23],["2010-10-04",524.95,528.25,518.85,522.35,1940500,522.35],["2010-10-01",530,530.62,523,525.62,2225000,525.62],["2010-09-30",529.16,531.87,518.92,525.79,3244100,525.79],["2010-09-29",527.85,532.94,524.71,527.69,2172200,527.69],["2010-09-28",533.48,533.59,518.45,527.17,3654700,527.17],["2010-09-27",528.85,536.85,528.85,530.41,3107400,530.41],["2010-09-24",521.74,527.83,518.26,527.29,3356900,527.29],["2010-09-23",514.61,519.69,511.3,513.48,2317400,513.48],["2010-09-22",512.86,517.78,511.68,516,2537100,516],["2010-09-21",509.68,519.98,508.91,513.46,4466300,513.46],["2010-09-20",492.5,510.41,492.06,508.28,4403500,508.28],["2010-09-17",483.75,491.2,481.18,490.15,5641600,490.15],["2010-09-16",479.95,482.45,479.41,481.06,1969500,481.06],["2010-09-15",479.95,481.89,478.5,480.64,2402800,480.64],["2010-09-14",482.01,484.75,480.08,480.43,2216500,480.43],["2010-09-13",480.9,484.35,479.53,482.27,2241500,482.27],["2010-09-10",479.02,479.79,475.08,476.14,1974300,476.14],["2010-09-09",477.83,480.4,470.58,476.18,2430600,476.18],["2010-09-08",465.19,472.5,464.51,470.58,2401800,470.58],["2010-09-07",464.5,467.59,463.02,464.4,1709900,464.4],["2010-09-03",470.52,471.88,467.44,470.3,2540400,470.3],["2010-09-02",462.84,464.43,460.31,463.18,1684200,463.18],["2010-09-01",454.98,464.94,452.5,460.33,3228300,460.33],["2010-08-31",450.11,454.87,448,450.02,1946800,450.02],["2010-08-30",459.15,459.76,452.42,452.69,1231400,452.69],["2010-08-27",452.56,459.99,447.65,458.83,2312400,458.83],["2010-08-26",456.06,457.26,450.44,450.98,1777000,450.98],["2010-08-25",450,457.81,450,454.62,2592100,454.62],["2010-08-24",457.7,458.37,450.92,451.39,2762700,451.39],["2010-08-23",461.5,468.25,457.73,464.07,2986200,464.07],["2010-08-20",467.97,471.59,461.02,462.02,3917600,462.02],["2010-08-19",481.01,482.51,467.25,467.97,3925000,467.97],["2010-08-18",490.44,490.87,481.55,482.15,2686400,482.15],["2010-08-17",488.53,494.7,486.03,490.52,1890700,490.52],["2010-08-16",483.68,489.87,480.5,485.59,1305000,485.59],["2010-08-13",489,491.19,486.01,486.35,1934700,486.35],["2010-08-12",483.94,494.75,482.51,492.01,2204600,492.01],["2010-08-11",497.73,498,491.5,491.74,2223000,491.74],["2010-08-10",502.35,506,498.57,503.71,2074000,503.71],["2010-08-09",502.25,505.5,501.36,505.35,1872200,505.35],["2010-08-06",505.4,505.74,496.05,500.22,3319500,500.22],["2010-08-05",505.89,508.6,503.56,508.1,2420400,508.1],["2010-08-04",492.18,507,491.05,506.32,3812500,506.32],["2010-08-03",490.5,492.46,486.76,489.83,1802300,489.83],["2010-08-02",488.99,493.28,486.94,490.41,1858700,490.41],["2010-07-30",479.65,487.36,479.14,484.85,2144100,484.85],["2010-07-29",485.95,488.88,479.33,484.99,2675500,484.99],["2010-07-28",494.94,495.25,482.67,484.35,2496000,484.35],["2010-07-27",490.58,497.5,490.17,492.63,2451200,492.63],["2010-07-26",489.09,490.75,484.88,488.97,1995200,488.97],["2010-07-23",480.77,490.59,480.01,490.06,2264400,490.06],["2010-07-22",483.23,488.98,482.48,484.81,2147700,484.81],["2010-07-21",484,485.7,475.43,477.5,3279600,477.5],["2010-07-20",461.03,482.99,460.6,481.59,4054500,481.59],["2010-07-19",461.01,469.65,457.52,466.18,4550300,466.18],["2010-07-16",469.12,470.56,459.52,459.61,7824800,459.61],["2010-07-15",491.73,494.7,482.68,494.02,4858200,494.02],["2010-07-14",489.88,493.83,486.46,491.34,3118000,491.34],["2010-07-13",482.25,492.99,480.28,489.2,3976300,489.2],["2010-07-12",472.37,479.44,471.08,475.83,3334400,475.83],["2010-07-09",471.96,473.26,462.78,467.49,4331500,467.49],["2010-07-08",453.55,457.33,449.66,456.56,2668900,456.56],["2010-07-07",438.31,451.29,435.38,450.2,3129700,450.2],["2010-07-06",444,447.67,433.63,436.07,2560100,436.07],["2010-07-02",441.62,442.28,436,436.55,1936000,436.55],["2010-07-01",445.29,448.4,433.63,439.49,3513600,439.49],["2010-06-30",454.96,457.83,444.72,444.95,3603200,444.95],["2010-06-29",463.44,464.55,451.12,454.26,3502100,454.26],["2010-06-28",472.59,477.55,469.01,472.08,1762300,472.08],["2010-06-25",477.06,477.65,470.56,472.68,2245200,472.68],["2010-06-24",479.66,482.75,473.26,475.1,1893600,475.1],["2010-06-23",486.89,486.89,478.16,482.05,2029100,482.05],["2010-06-22",489.9,496.6,485.73,486.25,2219700,486.25],["2010-06-21",499.9,500.97,484.89,488.56,2983500,488.56],["2010-06-18",502.51,503.47,498.13,500.03,2872900,500.03],["2010-06-17",503.45,505.87,496.69,500.08,1977300,500.08],["2010-06-16",496.17,504,496.11,501.27,2289300,501.27],["2010-06-15",483.08,500.4,482.18,497.99,4259600,497.99],["2010-06-14",494.48,494.5,483.19,483.19,2040400,483.19],["2010-06-11",482.5,488.71,481.62,488.5,1781700,488.5],["2010-06-10",480.37,488.5,475.84,487.01,2577900,487.01],["2010-06-09",487.22,488.88,472,474.02,2729000,474.02],["2010-06-08",487.85,488.84,477.54,484.78,2685100,484.78],["2010-06-07",499.06,500.91,483.15,485.52,3632700,485.52],["2010-06-04",499.72,509.25,496.7,498.72,3920300,498.72],["2010-06-03",495.11,508,494.7,505.6,3650700,505.6],["2010-06-02",486.68,493.87,481.46,493.37,2540800,493.37],["2010-06-01",480.43,491.06,480.12,482.37,2666800,482.37],["2010-05-28",492.74,493.45,483,485.63,2894800,485.63],["2010-05-27",484.95,492.31,481.05,490.46,2809100,490.46],["2010-05-26",482.07,489.76,475,475.47,3475600,475.47],["2010-05-25",468.15,477.45,464.01,477.07,3017400,477.07],["2010-05-24",480.73,489.79,476.8,477.16,4345600,477.16],["2010-05-21",469.06,485,464.4,472.05,9690800,472.05],["2010-05-20",485.07,485.58,473.8,475.01,4913300,475.01],["2010-05-19",496.26,499.44,487.74,494.43,3445700,494.43],["2010-05-18",510,510.97,497.07,498.37,2825500,498.37],["2010-05-17",506.78,508.36,498.35,507.97,2793800,507.97],["2010-05-14",509.77,510.99,496.25,507.53,4116000,507.53],["2010-05-13",516.5,522,510.37,510.88,3325800,510.88],["2010-05-12",512.04,512.04,502,505.39,3851800,505.39],["2010-05-11",515.67,519.88,508.22,509.05,3322600,509.05],["2010-05-10",513.97,522.82,512.6,521.65,4128000,521.65],["2010-05-07",499.97,505.32,481.33,493.14,5089000,493.14],["2010-05-06",508.75,517.52,460,498.67,5000100,498.67],["2010-05-05",500.98,515.72,500.47,509.76,4582200,509.76],["2010-05-04",526.52,526.74,504.21,506.37,6076300,506.37],["2010-05-03",526.5,532.92,525.08,530.6,1857800,530.6],["2010-04-30",531.13,537.68,525.44,525.7,2435400,525.7],["2010-04-29",533.37,536.5,526.67,532,3058900,532],["2010-04-28",532.1,534.83,521.03,529.19,3406100,529.19],["2010-04-27",528.95,538.33,527.23,529.06,3844700,529.06],["2010-04-26",544.97,544.99,529.21,531.64,4368800,531.64],["2010-04-23",547.25,549.32,542.27,544.99,2089400,544.99],["2010-04-22",552,552.5,543.35,547.06,3280700,547.06],["2010-04-21",556.46,560.25,552.16,554.3,2391500,554.3],["2010-04-20",554.17,559.66,551.06,555.04,2977400,555.04],["2010-04-19",548.75,553.99,545,550.1,3894000,550.1],["2010-04-16",563,568.81,549.63,550.15,12235500,550.15],["2010-04-15",592.17,597.84,588.29,595.3,6761800,595.3],["2010-04-14",590.06,592.34,584.01,589,3402700,589],["2010-04-13",572.53,588.88,571.13,586.77,3912300,586.77],["2010-04-12",567.35,574,566.22,572.73,2352400,572.73],["2010-04-09",567.49,568.77,564,566.22,2056600,566.22],["2010-04-08",563.32,569.85,560.05,567.49,1947500,567.49],["2010-04-07",567.3,568.75,561.86,563.54,2581000,563.54],["2010-04-06",569.46,570.89,565.4,568.22,2060100,568.22],["2010-04-05",570.9,574.88,569,571.01,1901500,571.01],["2010-04-01",571.35,573.45,565.55,568.8,2102700,568.8],["2010-03-31",565.05,569.74,562.81,567.12,3030800,567.12],["2010-03-30",562.83,567.63,560.28,566.71,1977900,566.71],["2010-03-29",563,564.72,560.57,562.45,3104500,562.45],["2010-03-26",565.27,567.39,560.02,562.69,2696200,562.69],["2010-03-25",559.02,572,558.66,562.88,3930900,562.88],["2010-03-24",545.51,559.85,539.7,557.33,6565200,557.33],["2010-03-23",557.04,558.31,542,549,5501300,549],["2010-03-22",556.11,566.85,554.28,557.5,4004800,557.5],["2010-03-19",566.23,568,557.28,560,4792400,560],["2010-03-18",564.72,568.44,562.96,566.4,1777200,566.4],["2010-03-17",568.3,571.45,564.25,565.56,3321600,565.56],["2010-03-16",561.83,568.42,560.76,565.2,3431500,565.2],["2010-03-15",566.68,569.45,556,563.18,4653900,563.18],["2010-03-12",588.14,588.28,579.16,579.54,2753400,579.54],["2010-03-11",574.26,586.21,574.2,581.14,4233300,581.14],["2010-03-10",563.76,578.5,562.21,576.45,5654900,576.45],["2010-03-09",559.85,564.66,556.5,560.19,3176600,560.19],["2010-03-08",564.78,565.18,561.01,562.48,2386400,562.48],["2010-03-05",561.35,567.67,559.9,564.21,3912200,564.21],["2010-03-04",546.5,556.13,546.2,554.59,3183800,554.59],["2010-03-03",542.36,548.12,539.25,545.32,3089400,545.32],["2010-03-02",535.48,545.66,535.01,541.06,4356800,541.06],["2010-03-01",529.2,533.29,527.74,532.69,2237900,532.69],["2010-02-26",527.42,531.75,523.48,526.8,2049300,526.8],["2010-02-25",527.12,528.49,520,526.43,3309200,526.43],["2010-02-24",533.98,538.44,530.51,531.47,2326600,531.47],["2010-02-23",543,543.63,532.29,535.07,2872600,535.07],["2010-02-22",547.35,547.5,541,542.8,2144600,542.8],["2010-02-19",540.53,544.03,539.7,540.76,2553100,540.76],["2010-02-18",537.54,545.01,536.14,543.22,2336900,543.22],["2010-02-17",542,543.4,537.61,538.21,2029700,538.21],["2010-02-16",536.87,544.13,534.3,541.3,3654400,541.3],["2010-02-12",532.97,537.15,530.5,533.12,2279700,533.12],["2010-02-11",533.32,540.49,529.5,536.4,2410000,536.4],["2010-02-10",534.07,537.79,527.69,534.45,2674500,534.45],["2010-02-09",539.54,541.53,535.07,536.44,2819600,536.44],["2010-02-08",532.5,542,531.53,533.47,2694300,533.47],["2010-02-05",528.4,533.5,522.46,531.29,3156000,531.29],["2010-02-04",537,538,525.56,526.78,3377700,526.78],["2010-02-03",528.67,542.1,528.23,540.82,2999100,540.82],["2010-02-02",534.96,534.96,527.61,531.12,4096200,531.12],["2010-02-01",534.6,535.81,530.3,533.02,2250800,533.02],["2010-01-29",538.49,540.99,525.61,529.94,4140500,529.94],["2010-01-28",544.49,547,530.6,534.29,3229100,534.29],["2010-01-27",541.27,547.65,535.31,542.1,3964400,542.1],["2010-01-26",537.97,549.6,536.29,542.42,4355500,542.42],["2010-01-25",546.59,549.88,535.51,540,4419900,540],["2010-01-22",564.5,570.6,534.86,550.01,6800400,550.01],["2010-01-21",583.44,586.82,572.25,582.98,6307700,582.98],["2010-01-20",585.98,585.98,575.29,580.41,3250700,580.41],["2010-01-19",581.2,590.42,576.29,587.62,4316700,587.62],["2010-01-15",593.34,593.56,578.04,580,5434500,580],["2010-01-14",583.9,594.2,582.81,589.85,4240100,589.85],["2010-01-13",576.49,588.38,573.9,587.09,6496600,587.09],["2010-01-12",597.65,598.16,588,590.48,4853300,590.48],["2010-01-11",604.46,604.46,594.04,601.11,7212900,601.11],["2010-01-08",592,603.25,589.11,602.02,4724300,602.02],["2010-01-07",609.4,610,592.65,594.1,6414300,594.1],["2010-01-06",625.86,625.86,606.36,608.26,3978700,608.26],["2010-01-05",627.18,627.84,621.54,623.99,3004700,623.99],["2010-01-04",626.95,629.51,624.24,626.75,1956200,626.75],["2009-12-31",624.75,625.4,619.98,619.98,1219800,619.98],["2009-12-30",618.5,622.73,618.01,622.73,1465600,622.73],["2009-12-29",624.74,624.84,618.29,619.4,1424800,619.4],["2009-12-28",621.66,625.99,618.48,622.87,1697900,622.87],["2009-12-24",612.93,619.52,612.27,618.48,858700,618.48],["2009-12-23",603.5,612.87,602.85,611.68,2072700,611.68],["2009-12-22",601.34,601.5,598.85,601.12,1880800,601.12],["2009-12-21",597.61,599.84,595.67,598.68,2571200,598.68],["2009-12-18",596.03,598.93,595,596.42,3531500,596.42],["2009-12-17",596.44,597.64,593.76,593.94,2638800,593.94],["2009-12-16",598.6,600.37,596.64,597.76,2809400,597.76],["2009-12-15",593.3,596.38,590.99,593.14,2280400,593.14],["2009-12-14",595.35,597.31,592.61,595.73,1913400,595.73],["2009-12-11",594.68,594.75,587.73,590.51,1720000,590.51],["2009-12-10",590.44,594.71,590.41,591.5,1668300,591.5],["2009-12-09",587.5,589.33,583.58,589.02,1781000,589.02],["2009-12-08",583.5,590.66,582,587.05,1524000,587.05],["2009-12-07",584.21,588.69,581,586.25,1636200,586.25],["2009-12-04",593.02,594.83,579.18,585.01,2513600,585.01],["2009-12-03",589.04,591.45,585,585.74,1428700,585.74],["2009-12-02",591,593.01,586.22,587.51,1663200,587.51],["2009-12-01",588.13,591.22,583,589.87,2320300,589.87],["2009-11-30",580.63,583.67,577.11,583,1725100,583],["2009-11-27",572,582.46,570.97,579.76,1384600,579.76],["2009-11-25",586.41,587.06,582.69,585.74,1461200,585.74],["2009-11-24",582.52,584.29,576.54,583.09,1605200,583.09],["2009-11-23",576.49,586.6,575.86,582.35,2547500,582.35],["2009-11-20",569.5,571.6,569.4,569.96,2006200,569.96],["2009-11-19",573.77,574,570,572.99,2168000,572.99],["2009-11-18",576.65,578.78,572.07,576.65,1549600,576.65],["2009-11-17",574.87,577.5,573.72,577.49,1916700,577.49],["2009-11-16",575,576.99,572.78,576.28,2199200,576.28],["2009-11-13",569.29,572.51,566.61,572.05,1666800,572.05],["2009-11-12",569.56,572.9,565.5,567.85,1886300,567.85],["2009-11-11",570.48,573.5,565.86,570.56,2319700,570.56],["2009-11-10",562.73,568.78,562,566.76,2230800,566.76],["2009-11-09",555.45,562.58,554.23,562.51,2649900,562.51],["2009-11-06",547.72,551.78,545.5,551.1,1826700,551.1],["2009-11-05",543.49,549.77,542.66,548.65,1847700,548.65],["2009-11-04",540.8,545.5,536.42,540.33,2332700,540.33],["2009-11-03",530.01,537.5,528.3,537.29,2380200,537.29],["2009-11-02",537.08,539.46,528.24,533.99,3202100,533.99],["2009-10-30",550,550.17,534.24,536.12,3468500,536.12],["2009-10-29",543.01,551.83,541,551.05,2522600,551.05],["2009-10-28",547.87,550,538.25,540.3,2567800,540.3],["2009-10-27",550.97,554.56,544.16,548.29,3216500,548.29],["2009-10-26",555.75,561.64,550.89,554.21,2970400,554.21],["2009-10-23",555.25,557.89,551.2,553.69,2392700,553.69],["2009-10-22",550,555,548,554.09,2336500,554.09],["2009-10-21",549.91,559.35,549,551.1,3670600,551.1],["2009-10-20",551.64,552.95,540.7,551.72,4043700,551.72],["2009-10-19",552.69,553.6,548.73,552.09,3217900,552.09],["2009-10-16",547.33,554.75,544.53,549.85,8841900,549.85],["2009-10-15",533.75,536.9,527.27,529.91,6100400,529.91],["2009-10-14",532.46,535.58,530,535.32,3258400,535.32],["2009-10-13",524.39,527.46,521.38,526.11,3037400,526.11],["2009-10-12",523.42,525.76,519.32,524.04,3322200,524.04],["2009-10-09",516.65,521.51,514.5,516.25,2738100,516.25],["2009-10-08",519.57,523.25,513.34,514.18,4303800,514.18],["2009-10-07",499,518.99,497.81,517.54,4874200,517.54],["2009-10-06",491.7,499.37,491.7,498.74,2732300,498.74],["2009-10-05",487.65,492.43,483.34,488.52,2144600,488.52],["2009-10-02",483.74,491.74,482.6,484.58,2600800,484.58],["2009-10-01",493,496.47,487,487.2,2813200,487.2],["2009-09-30",500,500.14,487.24,495.85,3141700,495.85],["2009-09-29",499.53,499.75,493.01,498.53,2099200,498.53],["2009-09-28",494.84,501.5,493.3,498.53,1839300,498.53],["2009-09-25",494.29,499.93,492,492.48,2049600,492.48],["2009-09-24",500.47,501.41,493,496.77,2527600,496.77],["2009-09-23",500.78,507,497.71,498.46,2704200,498.46],["2009-09-22",500.92,501.99,497.81,499.06,3041200,499.06],["2009-09-21",487.74,498.9,486.22,497,2116400,497],["2009-09-18",496.77,496.98,491.23,491.46,3283500,491.46],["2009-09-17",490.57,497.37,487.15,491.72,4483100,491.72],["2009-09-16",479.8,489.37,478.48,488.29,2585300,488.29],["2009-09-15",475.08,478.91,472.71,477.54,2398100,477.54],["2009-09-14",470.51,476.8,470.05,475.12,1975700,475.12],["2009-09-11",470.4,473.3,467.63,472.14,1902900,472.14],["2009-09-10",466.65,470.94,462,470.94,2534600,470.94],["2009-09-09",459.06,466.27,458.8,463.97,2195400,463.97],["2009-09-08",464.29,466.99,455.84,458.62,2656700,458.62],["2009-09-04",457.57,462.6,455.78,461.3,1499200,461.3],["2009-09-03",455.82,458.25,455,457.52,1646200,457.52],["2009-09-02",455.82,458.33,452.59,453.01,1804800,453.01],["2009-09-01",459.68,466.82,454.42,455.76,2594900,455.76],["2009-08-31",459.79,461.86,458,461.67,1957900,461.67],["2009-08-28",469.26,472.37,463.38,464.75,1771600,464.75],["2009-08-27",468.58,468.58,460.73,466.06,1998900,466.06],["2009-08-26",472.76,473,466.7,468,1987800,468],["2009-08-25",469.13,474.35,468.72,471.37,2341000,471.37],["2009-08-24",467.35,470.09,464.42,468.73,2453400,468.73],["2009-08-21",465.54,466.09,462.65,465.24,3560500,465.24],["2009-08-20",452,462.18,451.23,460.41,3998900,460.41],["2009-08-19",439.99,445,438.56,443.97,2255000,443.97],["2009-08-18",445.1,447.7,442.32,445.28,2351100,445.28],["2009-08-17",451.5,451.99,443.12,444.89,2620200,444.89],["2009-08-14",462.78,463.18,456.89,460,1675100,460],["2009-08-13",462.15,464.72,458.91,462.28,1995200,462.28],["2009-08-12",455.41,461.75,454.92,458.58,2341400,458.58],["2009-08-11",453.67,457.23,452.38,453.94,1712500,453.94],["2009-08-10",455.14,458.41,453.79,456.61,1742000,456.61],["2009-08-07",455.67,459.42,454.99,457.1,2543100,457.1],["2009-08-06",454.3,454.88,448.53,450.36,2110900,450.36],["2009-08-05",456,456.91,447.88,451.14,2342000,451.14],["2009-08-04",449.37,454,448.43,453.73,2389800,453.73],["2009-08-03",448.74,453.9,447.64,452.21,2590300,452.21],["2009-07-31",449.98,452.7,442.43,443.05,2860400,443.05],["2009-07-30",442.61,451.47,442.61,445.64,3198600,445.64],["2009-07-29",437.23,437.8,431.89,436.24,1987000,436.24],["2009-07-28",441,442.81,436.1,439.85,2532500,439.85],["2009-07-27",446.04,446.75,437.61,444.8,2504400,444.8],["2009-07-24",435.81,450.49,435,446.72,3626900,446.72],["2009-07-23",428.68,441.21,425.5,437.34,3478200,437.34],["2009-07-22",428,430.2,423.5,427.69,2586700,427.69],["2009-07-21",430.94,431.9,425.72,427.9,2968200,427.9],["2009-07-20",429.88,432.85,426.25,430.17,3153500,430.17],["2009-07-17",433,435.48,426.7,430.25,6854100,430.25],["2009-07-16",436.68,445.75,434.1,442.6,6554500,442.6],["2009-07-15",429.66,438.68,428.49,438.17,3777000,438.17],["2009-07-14",423.71,426.73,420.87,424.69,2895800,424.69],["2009-07-13",416.17,424.52,415.18,424.3,4045700,424.3],["2009-07-10",409.58,417.37,408.7,414.4,2926600,414.4],["2009-07-09",406.12,414.45,405.8,410.39,3275600,410.39],["2009-07-08",400,406,398.06,402.49,3441200,402.49],["2009-07-07",408.24,409.19,395.98,396.63,3259300,396.63],["2009-07-06",406.5,410.64,401.66,409.61,2262600,409.61],["2009-07-02",415.41,415.41,406.81,408.49,2517600,408.49],["2009-07-01",424.2,426.4,418.15,418.99,2310800,418.99],["2009-06-30",424,427.21,418.22,421.59,2593900,421.59],["2009-06-29",426,427.8,422.24,424.14,2169300,424.14],["2009-06-26",413.68,428.23,413.11,425.32,3256700,425.32],["2009-06-25",407,415.9,406.51,415.77,3044500,415.77],["2009-06-24",408.74,412.23,406.56,409.29,2457800,409.29],["2009-06-23",406.65,408.99,402.55,405.68,2899600,405.68],["2009-06-22",416.95,417.49,401.89,407.35,4124400,407.35],["2009-06-19",418.21,420.46,414.58,420.09,4259100,420.09],["2009-06-18",415.68,418.69,413,414.06,3085200,414.06],["2009-06-17",416.19,419.72,411.56,415.16,3490100,415.16],["2009-06-16",419.31,421.09,415.42,416,3049700,416],["2009-06-15",421.5,421.5,414,416.77,3736900,416.77],["2009-06-12",426.86,427.7,421.21,424.84,2918400,424.84],["2009-06-11",431.77,433.73,428.37,429,2865200,429],["2009-06-10",436.23,437.89,426.67,432.6,3358900,432.6],["2009-06-09",438.58,440.5,431.76,435.62,3254900,435.62],["2009-06-08",439.5,440.92,434.12,438.77,3098700,438.77],["2009-06-05",445.07,447.34,439.46,444.32,3680800,444.32],["2009-06-04",435.3,441.24,434.5,440.28,3638100,440.28],["2009-06-03",426,432.46,424,431.65,3532800,431.65],["2009-06-02",426.25,429.96,423.4,428.4,2623600,428.4],["2009-06-01",418.73,429.6,418.53,426.56,3322400,426.56],["2009-05-29",412.11,417.23,410.7,417.23,2648200,417.23],["2009-05-28",408.68,411.62,404.61,410.4,2668800,410.4],["2009-05-27",405.64,411.86,404.81,405.56,3034300,405.56],["2009-05-26",391.95,405,390,404.36,3104500,404.36],["2009-05-22",396.66,398.65,392,393.5,1718600,393.5],["2009-05-21",396.3,402.84,393.84,396.5,2719800,396.5],["2009-05-20",402.09,405.67,395,397.18,2284000,397.18],["2009-05-19",396.1,401.64,393,398.88,2837500,398.88],["2009-05-18",394.73,397.31,385.4,396.84,3351700,396.84],["2009-05-15",391.1,394.11,389.09,390,3008700,390],["2009-05-14",388.8,392.21,384.69,387.5,2937000,387.5],["2009-05-13",394.09,396.39,388.35,389.54,2842800,389.54],["2009-05-12",410.01,410.99,395.11,399.01,3790800,399.01],["2009-05-11",402.8,412,401.2,407.98,2559300,407.98],["2009-05-08",402.85,410.13,395,407.33,3865100,407.33],["2009-05-07",404.1,404.99,392.5,396.61,2999800,396.61],["2009-05-06",406.79,408.28,401,403.47,2632900,403.47],["2009-05-05",399.98,405,397.25,402.99,2400800,402.99],["2009-05-04",398.17,402.4,394.79,401.98,3203000,401.98],["2009-05-01",395.03,397.59,391.55,393.69,2427700,393.69],["2009-04-30",395.76,403.75,394.8,395.97,4355700,395.97],["2009-04-29",385.97,394.97,385.83,391.47,3610000,391.47],["2009-04-28",383.75,389.05,381.54,383.71,2943600,383.71],["2009-04-27",384.34,389.49,382.75,385.95,2290600,385.95],["2009-04-24",386.05,393.18,380.5,389.49,3385400,389.49],["2009-04-23",387.51,389.75,381.11,384.69,2609000,384.69],["2009-04-22",381.75,390,379.01,383.86,3501800,383.86],["2009-04-21",376.17,384.3,376.1,381.47,3695400,381.47],["2009-04-20",386.15,390.65,375.89,379.3,4428900,379.3],["2009-04-17",386.02,399.82,384.81,392.24,10730800,392.24],["2009-04-16",381.5,392.9,381.02,388.74,10185100,388.74],["2009-04-15",367.1,381.06,364.16,379.5,4930700,379.5],["2009-04-14",376.94,376.99,365.6,368.91,3428600,368.91],["2009-04-13",371.33,379.1,370.3,378.11,3050100,378.11],["2009-04-09",369.5,374.35,366.25,372.5,3382600,372.5],["2009-04-08",363.5,365,356.21,362,2765200,362],["2009-04-07",362.6,363.75,355.31,358.65,3680100,358.65],["2009-04-06",367,369.82,361.4,368.24,3280300,368.24],["2009-04-03",364.5,371.72,358,369.78,3789800,369.78],["2009-04-02",363.31,369.76,360.32,362.5,4488000,362.5],["2009-04-01",343.78,355.24,340.61,354.09,3301200,354.09],["2009-03-31",348.93,353.51,346.18,348.06,3655300,348.06],["2009-03-30",342.55,343.81,336.05,342.69,3094100,342.69],["2009-03-27",350,352,345.47,347.7,3322800,347.7],["2009-03-26",353.13,359.16,348.5,353.29,6003300,353.29],["2009-03-25",350.4,351.34,336.25,344.07,4336300,344.07],["2009-03-24",346.5,353.84,344,347.17,3820000,347.17],["2009-03-23",333.56,349.45,333.03,348.6,4271500,348.6],["2009-03-20",330.3,332.99,326.34,330.16,4737900,330.16],["2009-03-19",331.68,336,327.38,329.94,4111200,329.94],["2009-03-18",334.81,340,328.05,333.1,5012200,333.1],["2009-03-17",320.18,335.34,319.09,335.34,4712500,335.34],["2009-03-16",325.99,329.73,318.59,319.69,4946800,319.69],["2009-03-13",326.1,327.46,319.03,324.42,3906400,324.42],["2009-03-12",317.54,325,313.65,323.53,5024100,323.53],["2009-03-11",310.1,320,305.71,317.91,5923600,317.91],["2009-03-10",298.25,310.5,294.25,308.17,6730200,308.17],["2009-03-09",299.98,306.57,289.45,290.89,6471300,290.89],["2009-03-06",307.22,310.19,294.25,308.57,7234200,308.57],["2009-03-05",316.48,319.08,302.64,305.64,6529900,305.64],["2009-03-04",323.16,329,315.38,318.92,7818400,318.92],["2009-03-03",330.07,333.69,322.35,325.48,6524800,325.48],["2009-03-02",333.33,340.7,326,327.16,5788500,327.16],["2009-02-27",332.95,343.82,331.11,337.99,5420000,337.99],["2009-02-26",345.96,352.49,337.16,337.18,5605600,337.18],["2009-02-25",342.15,352.3,338.92,341.64,6439100,341.64],["2009-02-24",331.02,349.62,330.89,345.45,6095900,345.45],["2009-02-23",347,349.8,329.55,330.06,5221100,330.06],["2009-02-20",338.05,348.92,335,346.45,6217100,346.45],["2009-02-19",357.47,359.8,341.41,342.64,4988700,342.64],["2009-02-18",347.24,353.38,340.52,353.11,6024500,353.11],["2009-02-17",346.51,347.09,339.69,342.66,5680400,342.66],["2009-02-13",362.19,362.99,355.23,357.68,4146700,357.68],["2009-02-12",353.16,363.62,351.48,363.05,5550300,363.05],["2009-02-11",358.95,365,353,358.04,5231600,358.04],["2009-02-10",375.98,377.5,357.89,358.51,7103700,358.51],["2009-02-09",371.28,381,367.3,378.77,4977300,378.77],["2009-02-06",356.46,373.81,355.44,371.28,7038100,371.28],["2009-02-05",340.91,355.38,337,353.72,7264400,353.72],["2009-02-04",340.07,354.44,339.17,343,6817400,343],["2009-02-03",342.57,343,333.83,340.45,6556500,340.45],["2009-02-02",334.29,345,332,340.57,5206900,340.57],["2009-01-30",344.69,348.8,336,338.53,4672000,338.53],["2009-01-29",344.54,345.05,340.11,343.32,7283800,343.32],["2009-01-28",337.98,352.33,336.31,348.67,7691400,348.67],["2009-01-27",326.45,333.87,324.27,331.48,4927300,331.48],["2009-01-26",324.85,328,320.56,323.87,4610700,323.87],["2009-01-23",309.27,331.96,304.22,324.7,10732800,324.7],["2009-01-22",298.04,309.35,295.15,306.5,8267000,306.5],["2009-01-21",288.35,303.5,288.35,303.08,4924500,303.08],["2009-01-20",299.14,299.5,282.75,282.75,5048200,282.75],["2009-01-16",305.02,308.25,295.7,299.67,5224400,299.67],["2009-01-15",297.57,303.58,286.79,298.99,5934500,298.99],["2009-01-14",310,313.8,297.75,300.97,5467900,300.97],["2009-01-13",311.77,320.6,310.39,314.32,4432500,314.32],["2009-01-12",316.31,318.95,310.23,312.69,3304300,312.69],["2009-01-09",327.5,327.5,313.4,315.07,4340500,315.07],["2009-01-08",318.28,325.19,317.34,325.19,3600700,325.19],["2009-01-07",328.32,330.91,318.75,322.01,4494500,322.01],["2009-01-06",332.98,340.8,326.39,334.06,6425200,334.06],["2009-01-05",321,331.24,315,328.05,4889000,328.05],["2009-01-02",308.6,321.82,305.5,321.32,3610500,321.32],["2008-12-31",304.2,311,302.61,307.65,2886800,307.65],["2008-12-30",300.8,306.81,298.71,303.11,3843500,303.11],["2008-12-29",300.22,301.38,291.58,297.42,3701900,297.42],["2008-12-26",304.07,305.26,298.31,300.36,1959100,300.36],["2008-12-24",301.48,306.34,298.38,302.95,1921500,302.95],["2008-12-23",300.43,303.31,296.67,298.02,3777700,298.02],["2008-12-22",308.56,309.5,290.63,297.11,3917600,297.11],["2008-12-19",310.99,317.79,309,310.17,5612600,310.17],["2008-12-18",316.7,320.35,309.11,310.28,4763500,310.28],["2008-12-17",318.64,322.13,312.42,315.24,5789700,315.24],["2008-12-16",314.52,329.5,311.27,325.28,7059600,325.28],["2008-12-15",314.01,318.49,305.11,310.67,6737900,310.67],["2008-12-12",295.71,316.47,294,315.76,5722100,315.76],["2008-12-11",304.17,312.88,297.8,300.22,6179200,300.22],["2008-12-10",309.24,314.9,304.51,308.82,5237000,308.82],["2008-12-09",297.69,318,297.01,305.97,6889900,305.97],["2008-12-08",289.99,309.44,282,302.11,8144300,302.11],["2008-12-05",271.02,284.24,264.02,283.99,6521200,283.99],["2008-12-04",276.53,283.49,268.77,274.34,4886600,274.34],["2008-12-03",269.85,281.36,265.34,279.43,5904800,279.43],["2008-12-02",269.73,277.78,262.58,275.11,5839700,275.11],["2008-12-01",286.68,287.38,265.98,265.99,5711200,265.99],["2008-11-28",290.58,296.45,288.28,292.96,2565500,292.96],["2008-11-26",280.28,295.46,276.2,292.09,6356600,292.09],["2008-11-25",268.68,286.66,267.32,282.05,10771200,282.05],["2008-11-24",269.26,269.95,249.01,257.44,10054700,257.44],["2008-11-21",262.51,269.37,247.3,262.43,10244500,262.43],["2008-11-20",274.89,282.94,259.04,259.56,9779400,259.56],["2008-11-19",295.39,300.19,278.58,280.18,7834600,280.18],["2008-11-18",301.57,303.73,285.35,297.42,8346100,297.42],["2008-11-17",303,310.16,297.95,300.12,7543800,300.12],["2008-11-14",303.25,324.99,302.56,310.02,9517100,310.02],["2008-11-13",291.77,313,280,312.08,13234700,312.08],["2008-11-12",302.05,312.49,287.76,291,10051100,291],["2008-11-11",308.69,316.3,300.52,311.46,10146600,311.46],["2008-11-10",328,329.44,309.47,318.78,8080100,318.78],["2008-11-07",333.12,341.15,325.33,331.14,4681300,331.14],["2008-11-06",339.97,344.42,325.81,331.22,8574800,331.22],["2008-11-05",362.15,368.88,341.31,342.24,6946500,342.24],["2008-11-04",353.44,372.36,345.5,366.94,7349900,366.94],["2008-11-03",357.58,362.99,341.43,346.49,5954500,346.49],["2008-10-31",356.16,371.96,354.27,359.36,7423300,359.36],["2008-10-30",368.46,372,358.37,359.69,7988900,359.69],["2008-10-29",365.79,371,352.37,358,9756600,358],["2008-10-28",339.05,369.31,328.51,368.75,8105400,368.75],["2008-10-27",334.81,343,325.6,329.49,6200700,329.49],["2008-10-24",326.47,350.47,324.74,339.29,7359000,339.29],["2008-10-23",353.65,358,337.99,352.32,6478900,352.32],["2008-10-22",356.99,369.69,344,355.67,6560000,355.67],["2008-10-21",372.39,383.78,362,362.75,5782000,362.75],["2008-10-20",379.75,380.98,359.59,379.32,6753400,379.32],["2008-10-17",378.96,386,363.55,372.54,14249200,372.54],["2008-10-16",332.76,356.5,309.44,353.02,16239700,353.02],["2008-10-15",354.65,359,338.83,339.17,6721400,339.17],["2008-10-14",393.53,394.5,357,362.71,7784800,362.71],["2008-10-13",355.79,381.95,345.75,381.02,8905500,381.02],["2008-10-10",313.16,341.89,310.3,332,10597800,332],["2008-10-09",344.52,348.57,321.67,328.98,8075000,328.98],["2008-10-08",330.16,358.99,326.11,338.11,11826400,338.11],["2008-10-07",373.33,374.98,345.37,346.01,11054400,346.01],["2008-10-06",373.98,375.99,357.16,371.21,11220600,371.21],["2008-10-03",397.35,412.5,383.07,386.91,7992900,386.91],["2008-10-02",409.79,409.98,386,390.49,5984900,390.49],["2008-10-01",411.15,416.98,403.1,411.72,6234800,411.72],["2008-09-30",395.98,425.08,392.32,400.52,3086300,400.52],["2008-09-29",419.51,423.51,380.71,381,10762900,381],["2008-09-26",428,437.16,421.03,431.04,5292500,431.04],["2008-09-25",438.84,450,435.98,439.6,5020300,439.6],["2008-09-24",430.34,445,430.11,435.11,4242000,435.11],["2008-09-23",433.25,440.79,425.72,429.27,5204200,429.27],["2008-09-22",454.13,454.13,429,430.14,4407300,430.14],["2008-09-19",461,462.07,443.28,449.15,10006000,449.15],["2008-09-18",422.64,439.18,410.5,439.08,8589400,439.08],["2008-09-17",438.48,439.14,413.44,414.49,9126900,414.49],["2008-09-16",425.96,449.28,425.49,442.93,6990700,442.93],["2008-09-15",424,441.97,423.71,433.86,6567400,433.86],["2008-09-12",430.21,441.99,429,437.66,6028000,437.66],["2008-09-11",408.35,435.09,406.38,433.75,6471400,433.75],["2008-09-10",424.47,424.48,409.68,414.16,6226800,414.16],["2008-09-09",423.17,432.38,415,418.66,7229600,418.66],["2008-09-08",452.02,452.94,417.55,419.95,9017900,419.95],["2008-09-05",445.49,452.46,440.08,444.25,4534300,444.25],["2008-09-04",460,463.24,449.4,450.26,4848500,450.26],["2008-09-03",468.73,474.29,459.58,464.41,4314600,464.41],["2008-09-02",476.77,482.18,461.42,465.25,6111500,465.25],["2008-08-29",469.75,471.01,462.33,463.29,3848200,463.29],["2008-08-28",472.49,476.45,470.33,473.78,3029700,473.78],["2008-08-27",473.73,474.83,464.84,468.58,4387100,468.58],["2008-08-26",483.46,483.46,470.59,474.16,3308200,474.16],["2008-08-25",486.11,497,481.5,483.01,2014300,483.01],["2008-08-22",491.5,494.88,489.48,490.59,2297200,490.59],["2008-08-21",482.92,489.9,479.27,486.53,3514100,486.53],["2008-08-20",494.72,496.69,482.57,485,3982100,485],["2008-08-19",490.43,498.28,486.63,490.5,3046500,490.5],["2008-08-18",509.84,510,495.51,498.3,3333900,498.3],["2008-08-15",506.99,510.66,505.5,510.15,3545700,510.15],["2008-08-14",497.7,507.61,496.29,505.49,2918600,505.49],["2008-08-13",501.6,503.54,493.88,500.03,3625500,500.03],["2008-08-12",502,506.13,498,502.61,2755700,502.61],["2008-08-11",492.47,508.88,491.78,500.84,4239300,500.84],["2008-08-08",480.15,495.75,475.69,495.01,3739300,495.01],["2008-08-07",482,484,476.41,479.12,2773800,479.12],["2008-08-06",478.37,489.77,472.51,486.34,3375800,486.34],["2008-08-05",467.59,480.08,466.33,479.85,3584500,479.85],["2008-08-04",468.12,473.01,461.9,463,2487000,463],["2008-08-01",472.51,473.22,462.5,467.86,3007900,467.86],["2008-07-31",474.56,480.89,471.44,473.75,2865100,473.75],["2008-07-30",485.5,486.02,472.81,482.7,3490700,482.7],["2008-07-29",479.3,487.26,478,483.11,2802800,483.11],["2008-07-28",492.09,492.09,475.13,477.12,3160000,477.12],["2008-07-25",486.49,493.13,481.5,491.98,3183500,491.98],["2008-07-24",496.7,496.87,475.62,475.62,3540900,475.62],["2008-07-23",481.61,497.23,478.1,489.22,4894100,489.22],["2008-07-22",466.72,480.25,465.6,477.11,4691500,477.11],["2008-07-21",480.88,484.09,465.7,468.8,5901500,468.8],["2008-07-18",498.35,498.98,478.19,481.32,11292400,481.32],["2008-07-17",534.16,537.05,524.5,533.44,8787400,533.44],["2008-07-16",514.04,536.5,510.6,535.6,4742200,535.6],["2008-07-15",516.28,527.5,501.1,516.09,6071000,516.09],["2008-07-14",539,540.06,515.45,521.62,4424800,521.62],["2008-07-11",536.5,539.5,519.43,533.8,4981400,533.8],["2008-07-10",545,549.5,530.72,540.57,4331700,540.57],["2008-07-09",550.76,555.68,540.73,541.55,4154000,541.55],["2008-07-08",545.99,555.19,540,554.53,4932400,554.53],["2008-07-07",542.3,549,535.6,543.91,4255200,543.91],["2008-07-03",530.88,539.23,527.5,537,2400500,537],["2008-07-02",536.51,540.38,526.06,527.04,4223000,527.04],["2008-07-01",519.58,536.72,517,534.73,4959900,534.73],["2008-06-30",532.47,538,523.06,526.42,3765300,526.42],["2008-06-27",527.68,530,515.09,528.07,5447500,528.07],["2008-06-26",544.1,544.93,528.26,528.82,5659500,528.82],["2008-06-25",544.97,557.8,543.67,551,4122200,551],["2008-06-24",545.14,551.19,535.1,542.3,4672600,542.3],["2008-06-23",545.36,553.15,542.02,545.21,3635900,545.21],["2008-06-20",556.98,556.98,544.51,546.43,5983100,546.43],["2008-06-19",555.35,563.78,550.81,560.2,5683100,560.2],["2008-06-18",564.51,568.99,559.16,562.38,3381200,562.38],["2008-06-17",576.35,578.07,568.38,569.46,3462900,569.46],["2008-06-16",566.5,579.1,566.5,572.81,3542800,572.81],["2008-06-13",561.49,575.7,561.34,571.51,6184400,571.51],["2008-06-12",548.76,558,546.88,552.95,5491600,552.95],["2008-06-11",556.24,557.34,544.46,545.2,3812900,545.2],["2008-06-10",549.56,558.82,546.78,554.17,3657400,554.17],["2008-06-09",568.06,570,545.4,557.87,5288300,557.87],["2008-06-06",579.75,580.72,567,567,4734500,567],["2008-06-05",577.08,588.04,576.21,586.3,3916700,586.3],["2008-06-04",565.33,578,564.55,572.22,3363200,572.22],["2008-06-03",576.5,580.5,560.61,567.3,4305300,567.3],["2008-06-02",582.5,583.89,571.27,575,3674200,575],["2008-05-30",583.47,589.92,581.3,585.8,3225200,585.8],["2008-05-29",574.79,585.88,573.2,583,4845000,583],["2008-05-28",567.94,571.49,561.1,568.24,4050400,568.24],["2008-05-27",544.96,562.6,543.85,560.9,3865500,560.9],["2008-05-23",546.96,553,537.81,544.62,4431500,544.62],["2008-05-22",551.95,554.21,540.25,549.46,5076300,549.46],["2008-05-21",578.52,581.41,547.89,549.99,6468100,549.99],["2008-05-20",574.63,582.48,572.91,578.6,3313600,578.6],["2008-05-19",578.55,588.88,573.52,577.52,5604500,577.52],["2008-05-16",581.43,584.68,578.32,580.07,4274100,580.07],["2008-05-15",579,582.95,575.61,581,4342700,581],["2008-05-14",586.49,591.19,575.25,576.3,4375800,576.3],["2008-05-13",586.23,587.95,578.55,583,5163500,583],["2008-05-12",574.75,586.75,568.91,584.94,4863900,584.94],["2008-05-09",579,585,571.3,573.2,4484900,573.2],["2008-05-08",586.2,589.3,578.91,583.01,5122900,583.01],["2008-05-07",590.27,599.49,576.43,579,6613000,579],["2008-05-06",591,592,583,586.36,4629300,586.36],["2008-05-05",598.86,599,587.13,594.9,6281000,594.9],["2008-05-02",598.49,602.45,579.3,581.29,6998800,581.29],["2008-05-01",578.31,594.93,576.97,593.08,6602800,593.08],["2008-04-30",562.21,584.86,558.47,574.29,7903000,574.29],["2008-04-29",550.83,563.4,550.01,558.47,4346000,558.47],["2008-04-28",545.88,556.81,539,552.12,4008600,552.12],["2008-04-25",549.02,553,542.73,544.06,4164400,544.06],["2008-04-24",551.29,554.49,540.02,543.04,4135100,543.04],["2008-04-23",557.94,559.31,540.95,546.49,4921500,546.49],["2008-04-22",537.57,560.83,537.56,555,7938500,555],["2008-04-21",539.39,542.59,530.29,537.79,7439700,537.79],["2008-04-18",535.21,547.7,524.77,539.41,18235600,539.41],["2008-04-17",455.63,459.37,446.52,449.54,13353000,449.54],["2008-04-16",444.4,458.28,441,455.03,7630700,455.03],["2008-04-15",458.13,459.72,443.72,446.84,4577600,446.84],["2008-04-14",457.16,457.45,450.15,451.66,3842600,451.66],["2008-04-11",464.07,467.26,455.01,457.45,4169700,457.45],["2008-04-10",464.96,473.86,461.85,469.08,5072400,469.08],["2008-04-09",469.13,472,457.54,464.19,6048100,464.19],["2008-04-08",473.04,474.14,462.01,467.81,4547000,467.81],["2008-04-07",477.03,485.44,473.53,476.82,5943500,476.82],["2008-04-04",457.01,477.83,456.2,471.09,5897200,471.09],["2008-04-03",461.73,463.29,448.13,455.12,6778400,455.12],["2008-04-02",469.9,475.74,460.39,465.7,5999000,465.7],["2008-04-01",447.74,466.5,446.87,465.71,6093100,465.71],["2008-03-31",435.64,442.69,432.01,440.47,4446400,440.47],["2008-03-28",447.46,453.57,434.31,438.08,4376200,438.08],["2008-03-27",446,448.61,440.49,444.08,5832200,444.08],["2008-03-26",452.59,462.87,449.29,458.19,5225700,458.19],["2008-03-25",457.46,457.47,446,450.78,5831600,450.78],["2008-03-24",438.43,465.78,437.72,460.56,6763500,460.56],["2008-03-20",427.32,435.7,417.5,433.55,9913400,433.55],["2008-03-19",441.11,447.5,431.67,432,6179000,432],["2008-03-18",428.98,440.84,425.53,439.16,7237200,439.16],["2008-03-17",427.99,433.71,412.11,419.87,7888200,419.87],["2008-03-14",442.98,449.34,430.62,437.92,6574400,437.92],["2008-03-13",432.67,446.98,428.78,443.01,7726600,443.01],["2008-03-12",440.01,447.88,438.07,440.18,6651900,440.18],["2008-03-11",425.26,440.15,424.65,439.84,8826900,439.84],["2008-03-10",428.83,431,413.04,413.62,7987600,413.62],["2008-03-07",428.88,440,426.24,433.35,8071800,433.35],["2008-03-06",447.69,453.3,431.18,432.7,7470100,432.7],["2008-03-05",445.25,454.17,444,447.7,7436600,447.7],["2008-03-04",450.95,453.36,435.78,444.6,13621700,444.6],["2008-03-03",471.51,472.72,450.11,457.02,7554500,457.02],["2008-02-29",471.87,479.74,464.65,471.18,9425400,471.18],["2008-02-28",470.5,479.09,467.36,475.39,6586900,475.39],["2008-02-27",460.13,475.49,459.64,472.86,10121900,472.86],["2008-02-26",461.2,466.47,446.85,464.19,23287300,464.19],["2008-02-25",505.95,506.5,485.74,486.44,8372800,486.44],["2008-02-22",502.06,509,497.55,507.8,5515900,507.8],["2008-02-21",512.85,513.21,499.5,502.86,5677800,502.86],["2008-02-20",503.51,511.01,498.82,509,6662200,509],["2008-02-19",534.94,535.06,506.5,508.95,6350400,508.95],["2008-02-15",528.31,532.66,524.33,529.64,5240100,529.64],["2008-02-14",538.35,541.04,531,532.25,6476700,532.25],["2008-02-13",522.5,534.99,518.69,534.62,6624700,534.62],["2008-02-12",523.39,530.6,513.03,518.09,6662300,518.09],["2008-02-11",520.52,523.71,513.4,521.16,5826000,521.16],["2008-02-08",509.41,517.73,508.7,516.69,6828900,516.69],["2008-02-07",496.86,514.19,494.76,504.95,7928900,504.95],["2008-02-06",511.14,511.17,497.93,501.71,7636400,501.71],["2008-02-05",489.43,509,488.52,506.8,11203300,506.8],["2008-02-04",509.07,512.78,492.55,495.43,13157100,495.43],["2008-02-01",528.67,536.67,510,515.9,17600500,515.9],["2008-01-31",539.01,573,534.29,564.3,14871300,564.3],["2008-01-30",549.19,560.43,543.51,548.27,7939600,548.27],["2008-01-29",560.47,561.33,540.67,550.52,6283000,550.52],["2008-01-28",570.97,572.24,548.6,555.98,5816700,555.98],["2008-01-25",591.81,595,566.18,566.4,6966000,566.4],["2008-01-24",558.8,579.69,554.14,574.49,9400900,574.49],["2008-01-23",560.71,568,519,548.62,16965700,548.62],["2008-01-22",562.03,597.5,561.2,584.35,9501500,584.35],["2008-01-18",608.36,609.99,598.45,600.25,8539600,600.25],["2008-01-17",620.76,625.74,598.01,600.79,8216800,600.79],["2008-01-16",628.97,639.99,601.93,615.95,10560000,615.95],["2008-01-15",645.9,649.05,635.38,637.65,5568200,637.65],["2008-01-14",651.14,657.4,645.25,653.82,4447500,653.82],["2008-01-11",642.7,649.47,630.11,638.25,4977000,638.25],["2008-01-10",645.01,657.2,640.11,646.73,6334200,646.73],["2008-01-09",630.04,653.34,622.51,653.2,6739700,653.2],["2008-01-08",653,659.96,631,631.68,5339100,631.68],["2008-01-07",653.94,662.28,637.35,649.25,6403400,649.25],["2008-01-04",679.69,680.96,655,657,5359800,657],["2008-01-03",685.26,686.85,676.52,685.33,3252500,685.33],["2008-01-02",692.87,697.37,677.73,685.19,4306900,685.19],["2007-12-31",698.57,702.49,690.58,691.48,2376200,691.48],["2007-12-28",704.93,707.95,696.54,702.53,2562700,702.53],["2007-12-27",707.07,716,700.74,700.74,2942500,700.74],["2007-12-26",698.99,713.22,698.21,710.84,2530000,710.84],["2007-12-24",694.99,700.73,693.06,700.73,1628400,700.73],["2007-12-21",697.88,699.26,693.24,696.69,5382000,696.69],["2007-12-20",685.83,691,680.61,689.69,4422200,689.69],["2007-12-19",674.21,679.5,669,677.37,4421100,677.37],["2007-12-18",674.16,676.71,652.5,673.35,7166700,673.35],["2007-12-17",688,695.42,663.67,669.23,5486000,669.23],["2007-12-14",687.51,699.7,687.26,689.96,3673500,689.96],["2007-12-13",696.31,697.62,681.21,694.05,5040800,694.05],["2007-12-12",714,714.32,688.5,699.35,6159100,699.35],["2007-12-11",719.94,720.99,698.78,699.2,6139100,699.2],["2007-12-10",715.99,724.8,714,718.42,3856200,718.42],["2007-12-07",714.99,718,710.5,714.87,3852100,714.87],["2007-12-06",697.8,716.56,697.01,715.26,4909000,715.26],["2007-12-05",692.73,698.93,687.5,698.51,4209600,698.51],["2007-12-04",678.31,692,677.12,684.16,4231800,684.16],["2007-12-03",691.01,695,681.14,681.53,4325100,681.53],["2007-11-30",711,711.06,682.11,693,7895500,693],["2007-11-29",690.75,702.79,687.77,697,6208000,697],["2007-11-28",682.11,694.3,672.14,692.26,7916500,692.26],["2007-11-27",674.8,676.43,650.26,673.57,8904500,673.57],["2007-11-26",680.2,693.4,665,666,6790100,666],["2007-11-23",670,678.28,668.11,676.7,2738700,676.7],["2007-11-21",643.77,669.97,642.08,660.52,7013500,660.52],["2007-11-20",636.48,659.1,632.87,648.54,9840600,648.54],["2007-11-19",629.59,636.77,618.5,625.85,5527400,625.85],["2007-11-16",633.94,635.49,616.02,633.63,9042800,633.63],["2007-11-15",638.57,647.5,624,629.65,6967700,629.65],["2007-11-14",673.28,675.49,636.27,641.68,8094700,641.68],["2007-11-13",644.99,660.92,632.07,660.55,8426100,660.55],["2007-11-12",657.74,669.93,626.21,632.07,10227300,632.07],["2007-11-09",675.78,681.88,661.21,663.97,11388100,663.97],["2007-11-08",734.6,734.89,677.18,693.84,16512200,693.84],["2007-11-07",741.13,747.24,723.14,732.94,8252900,732.94],["2007-11-06",737.56,741.79,725,741.79,8436300,741.79],["2007-11-05",706.99,730.23,706.07,725.65,8883700,725.65],["2007-11-02",710.51,713.58,697.34,711.25,5841500,711.25],["2007-11-01",702.79,713.72,701.78,703.21,6527200,703.21],["2007-10-31",700.69,707,696.04,707,6876800,707],["2007-10-30",677.51,699.91,677.51,694.77,6900600,694.77],["2007-10-29",677.77,680,672.09,679.23,3066300,679.23],["2007-10-26",674.03,676.54,668.06,674.6,3353900,674.6],["2007-10-25",678.68,678.97,663.55,668.51,5795500,668.51],["2007-10-24",672.71,677.47,659.56,675.82,7404200,675.82],["2007-10-23",661.25,677.6,660,675.77,6793700,675.77],["2007-10-22",638.67,655,636.28,650.75,6664400,650.75],["2007-10-19",654.56,658.49,643.23,644.71,15789000,644.71],["2007-10-18",635.41,641.37,628.5,639.62,12289200,639.62],["2007-10-17",630.45,634,621.59,633.48,6030500,633.48],["2007-10-16",618.49,625.92,611.99,616,6025300,616],["2007-10-15",638.47,639.86,615.55,620.11,6943800,620.11],["2007-10-12",623.98,638.4,618.24,637.39,6823700,637.39],["2007-10-11",633.64,641.41,609,622,11799000,622],["2007-10-10",621.36,625.68,616.8,625.39,5385600,625.39],["2007-10-09",615.11,623.78,608.39,615.18,8767800,615.18],["2007-10-08",595,610.26,593.95,609.62,5028000,609.62],["2007-10-05",587.11,596,587.01,594.05,5068700,594.05],["2007-10-04",585.09,585.09,577.06,579.03,2986700,579.03],["2007-10-03",586.25,588.99,580.36,584.02,3879500,584.02],["2007-10-02",583.38,596.81,580.01,584.39,7067500,584.39],["2007-10-01",569.97,584.35,569.61,582.55,4711300,582.55],["2007-09-28",567,569.55,564.12,567.27,2639500,567.27],["2007-09-27",571.73,571.74,565.78,567.5,2056300,567.5],["2007-09-26",570.4,571.79,563.81,568.16,3346100,568.16],["2007-09-25",564,569.56,562.86,569,2730600,569],["2007-09-24",561,571.46,560,568.02,5297000,568.02],["2007-09-21",556.34,560.79,552.83,560.1,8011700,560.1],["2007-09-20",547,556.8,546.03,552.83,5525000,552.83],["2007-09-19",539.27,549.45,538.86,546.85,5526900,546.85],["2007-09-18",526.52,537.25,524.27,535.27,4215700,535.27],["2007-09-17",526.53,529.28,524.07,525.3,2197500,525.3],["2007-09-14",523.2,530.27,522.22,528.75,2764900,528.75],["2007-09-13",524.06,527.21,523.22,524.78,1891100,524.78],["2007-09-12",520.53,527.98,519,522.65,2986000,522.65],["2007-09-11",516.99,521.65,515.73,521.33,2703600,521.33],["2007-09-10",521.28,522.07,510.88,514.48,3225800,514.48],["2007-09-07",517.86,521.24,516.8,519.35,3663600,519.35],["2007-09-06",529.36,529.83,518.24,523.52,3625900,523.52],["2007-09-05",523.4,529.48,522.25,527.8,3312900,527.8],["2007-09-04",515.02,528,514.62,525.15,3693700,525.15],["2007-08-31",513.1,516.5,511.47,515.25,2977600,515.25],["2007-08-30",512.36,515.4,510.58,511.4,2651700,511.4],["2007-08-29",507.84,513.3,507.23,512.88,2549300,512.88],["2007-08-28",511.53,514.98,505.79,506.4,3273900,506.4],["2007-08-27",514.43,517.45,511.4,513.26,2325100,513.26],["2007-08-24",512.61,515.55,508.5,515,2472700,515],["2007-08-23",516,516.13,507,512.19,3076700,512.19],["2007-08-22",509.96,516.25,509.25,512.75,3252700,512.75],["2007-08-21",498.94,508.16,497.77,506.61,3610600,506.61],["2007-08-20",502.46,502.56,496,497.92,2697300,497.92],["2007-08-17",497.44,501,491.65,500.04,5479400,500.04],["2007-08-16",492.02,496.43,480.46,491.52,8645600,491.52],["2007-08-15",509,511.69,496.71,497.55,5409500,497.55],["2007-08-14",515.72,517.4,508,508.6,3633700,508.6],["2007-08-13",519.54,519.75,513.03,515.5,3179300,515.5],["2007-08-10",510.18,518.72,505.63,515.75,5875200,515.75],["2007-08-09",520.8,526.82,514.63,514.73,4846500,514.73],["2007-08-08",519.34,525.78,517.09,525.78,4068800,525.78],["2007-08-07",509.75,519.88,509.04,516.02,4264300,516.02],["2007-08-06",503,510.15,502.5,510,3651500,510],["2007-08-03",510.05,513.2,503,503,3176200,503],["2007-08-02",513.72,514.99,509,511.01,3154900,511.01],["2007-08-01",510.5,516.51,508.14,512.94,4421500,512.94],["2007-07-31",520.23,520.44,510,510,4270500,510],["2007-07-30",512.92,519.34,510.5,516.11,3963300,516.11],["2007-07-27",508.53,516.62,505.5,511.89,5509100,511.89],["2007-07-26",508.74,512.59,498.88,508,6883400,508],["2007-07-25",516.98,517.02,505.56,509.76,5545000,509.76],["2007-07-24",509.3,518.69,507.11,514,5572100,514],["2007-07-23",519.01,520,512.15,512.51,6356700,512.51],["2007-07-20",511.9,523.18,509.5,520.12,17772300,520.12],["2007-07-19",553.46,553.52,542.24,548.59,11127200,548.59],["2007-07-18",553.89,554.5,543.81,549.5,6080000,549.5],["2007-07-17",555.04,557.73,552.38,555,4328600,555],["2007-07-16",550.3,558.58,549.31,552.99,6599500,552.99],["2007-07-13",547.91,552.67,547.25,552.16,5237100,552.16],["2007-07-12",545.86,547.32,540.22,545.33,3441600,545.33],["2007-07-11",543.61,546.5,540.01,544.47,3309300,544.47],["2007-07-10",543.79,547,541.65,543.34,3856000,543.34],["2007-07-09",543,548.74,540.26,542.56,3729800,542.56],["2007-07-06",541.25,543.87,538.73,539.4,2747000,539.4],["2007-07-05",535.56,544.4,532.15,541.63,4942900,541.63],["2007-07-03",531.06,534.4,527.5,534.34,1871800,534.34],["2007-07-02",525.49,531.85,524.2,530.38,3487600,530.38],["2007-06-29",526.02,527.4,519.46,522.7,3880600,522.7],["2007-06-28",524.88,529.5,523.8,525.01,4168400,525.01],["2007-06-27",525,527.99,519.56,526.29,6123100,526.29],["2007-06-26",532.73,533.2,526.24,530.26,5689500,530.26],["2007-06-25",528.98,534.99,523.38,527.42,7925000,527.42],["2007-06-22",516.42,524.99,516.1,524.98,7203700,524.98],["2007-06-21",510.98,515.29,506.28,514.11,4409700,514.11],["2007-06-20",516.96,518.75,509.06,509.97,4338200,509.97],["2007-06-19",514.01,517.25,511.54,514.31,4355300,514.31],["2007-06-18",506.18,516,504.24,515.2,4835900,515.2],["2007-06-15",508.19,509,501.23,505.89,6174100,505.89],["2007-06-14",505.38,505.88,501.7,502.84,4621200,502.84],["2007-06-13",507.09,508.54,498.69,505.24,7034000,505.24],["2007-06-12",508.71,511.67,503.17,504.77,6419500,504.77],["2007-06-11",514.02,518.25,510,511.34,4647700,511.34],["2007-06-08",516.2,519.64,509.46,515.49,6358200,515.49],["2007-06-07",519.75,526.5,512.51,515.06,10630500,515.06],["2007-06-06",516.75,520.78,515.26,518.25,7886700,518.25],["2007-06-05",509.75,519,506.61,518.84,10447100,518.84],["2007-06-04",497.91,510.51,497.59,507.07,7101000,507.07],["2007-06-01",501,505.02,497.93,500.4,4799000,500.4],["2007-05-31",500.56,508.78,497.06,497.91,8924300,497.91],["2007-05-30",484.5,498.84,483,498.6,7245800,498.6],["2007-05-29",485,491.8,484,487.11,5218000,487.11],["2007-05-25",479.7,484.95,477.27,483.52,5348500,483.52],["2007-05-24",475.15,479.2,471.5,474.33,4173600,474.33],["2007-05-23",480.82,483.41,473.75,473.97,5060200,473.97],["2007-05-22",473,479.01,473,475.86,3839000,475.86],["2007-05-21",469.53,479.2,466.72,470.6,6159300,470.6],["2007-05-18",472.03,472.7,469.75,470.32,3695900,470.32],["2007-05-17",472.46,475.22,470.81,470.96,4660600,470.96],["2007-05-16",462,473.14,459.02,472.61,6554200,472.61],["2007-05-15",461.96,462.54,457.41,458,4119000,458],["2007-05-14",465.48,467.51,460,461.78,3872700,461.78],["2007-05-11",461.83,467,461,466.74,2944100,466.74],["2007-05-10",467.04,469.49,461.02,461.47,3686300,461.47],["2007-05-09",466.15,471.73,463.88,469.25,3889900,469.25],["2007-05-08",466.13,468.17,464.73,466.81,2905100,466.81],["2007-05-07",472.14,472.82,466.47,467.27,3020100,467.27],["2007-05-04",470.12,474.84,465.88,471.12,3950000,471.12],["2007-05-03",466.22,474.07,465.29,473.23,3594200,473.23],["2007-05-02",468.65,471.08,465.73,465.78,3062700,465.78],["2007-05-01",472.19,472.81,464.17,469,3658200,469],["2007-04-30",479.15,481.35,471.38,471.38,3641200,471.38],["2007-04-27",480.07,482.4,478.33,479.01,2925700,479.01],["2007-04-26",478.1,484.45,477.11,481.18,4124900,481.18],["2007-04-25",480,481.37,476.11,477.99,3966800,477.99],["2007-04-24",478.61,479.98,475.55,477.53,3694700,477.53],["2007-04-23",480.1,485,478.26,479.08,5674600,479.08],["2007-04-20",490.52,492.5,482.02,482.48,12161500,482.48],["2007-04-19",474.5,481.95,469.59,471.65,11009600,471.65],["2007-04-18",471.26,479.9,469.53,476.01,5670500,476.01],["2007-04-17",473.8,476.39,471.6,472.8,3210100,472.8],["2007-04-16",468.46,476.99,468.15,474.27,5077900,474.27],["2007-04-13",468.45,468.77,463.36,466.29,2794800,466.29],["2007-04-12",464,468,462.24,467.39,2707900,467.39],["2007-04-11",466.06,469.4,462.61,464.53,3812000,464.53],["2007-04-10",467.09,470.79,465.16,466.5,2979300,466.5],["2007-04-09",472.98,473,465.59,468.21,3062100,468.21],["2007-04-05",471.3,472.09,469.62,471.51,2715800,471.51],["2007-04-04",472.14,473,469.58,471.02,3778800,471.02],["2007-04-03",464.05,474.25,464,472.6,6501800,472.6],["2007-04-02",457.76,458.53,452.12,458.53,3448500,458.53],["2007-03-30",462.1,463.4,456.14,458.16,3380200,458.16],["2007-03-29",464.55,466,455,460.92,3988500,460.92],["2007-03-28",461.87,465.44,460.15,461.88,4591600,461.88],["2007-03-27",463.55,465.23,460.34,463.62,3741200,463.62],["2007-03-26",460.55,465,455.62,465,4710300,465],["2007-03-23",461.45,463.39,457.08,461.83,4111300,461.83],["2007-03-22",455.61,462.17,452.53,462.04,5680700,462.04],["2007-03-21",445.3,456.57,445.21,456.55,5798300,456.55],["2007-03-20",445.79,447.6,443.6,445.28,3421500,445.28],["2007-03-19",443.25,448.5,440.63,447.23,5197700,447.23],["2007-03-16",445.65,446.7,439.89,440.85,5659100,440.85],["2007-03-15",447.86,449.82,443.94,446.19,3944200,446.19],["2007-03-14",443.23,448.66,439,448,8016900,448],["2007-03-13",450.11,451.93,442.83,443.03,6377300,443.03],["2007-03-12",452.57,455.25,451.11,454.75,3465400,454.75],["2007-03-09",458,458.4,450.1,452.96,4977700,452.96],["2007-03-08",459.22,465.5,454.1,454.72,5362800,454.72],["2007-03-07",462.69,463.14,454.29,455.64,6534100,455.64],["2007-03-06",447.47,459,447.38,457.55,7533700,457.55],["2007-03-05",437.02,445.5,437,440.95,6355100,440.95],["2007-03-02",445.11,448.7,438.68,438.68,6583600,438.68],["2007-03-01",442.67,452.42,440,448.23,8685200,448.23],["2007-02-28",450.41,453.67,443.04,449.45,8032300,449.45],["2007-02-27",455,459.8,447.17,448.77,9312800,448.77],["2007-02-26",472.83,475.25,463.75,464.93,3969900,464.93],["2007-02-23",475.75,476.95,467.8,470.62,3882600,470.62],["2007-02-22",478.69,484.24,474.39,475.85,5743900,475.85],["2007-02-21",469.84,478.68,467.74,475.86,5640600,475.86],["2007-02-20",468.47,472.75,464.71,472.1,4067600,472.1],["2007-02-16",462.8,470.15,462.06,469.94,6177000,469.94],["2007-02-15",466,466.13,460.72,461.47,4042400,461.47],["2007-02-14",460,469.13,459.22,465.93,5698800,465.93],["2007-02-13",459.15,462.78,457.26,459.1,4062600,459.1],["2007-02-12",460.68,462.39,455.02,458.29,5754500,458.29],["2007-02-09",471.65,472.68,461.5,461.89,4858600,461.89],["2007-02-08",468.05,473.75,465.15,471.03,4076700,471.03],["2007-02-07",473.82,474.35,468.78,470.01,4119800,470.01],["2007-02-06",468.1,473.3,467.26,471.48,5321900,471.48],["2007-02-05",477.5,478,466.19,467.16,7206900,467.16],["2007-02-02",482.61,485,477.81,481.5,6286500,481.5],["2007-02-01",506,506.01,481.53,481.75,15658700,481.75],["2007-01-31",496.49,505,495.51,501.5,12206100,501.5],["2007-01-30",494,498,491.22,494.32,4180500,494.32],["2007-01-29",498,498.75,490.5,492.47,4775700,492.47],["2007-01-26",490.93,497.9,487.03,495.84,5496500,495.84],["2007-01-25",501,504.5,485.66,488.09,6368500,488.09],["2007-01-24",484.45,499.54,483.29,499.07,6059300,499.07],["2007-01-23",480.79,484.75,477.29,479.05,4665500,479.05],["2007-01-22",492.5,492.65,478.5,480.84,5404300,480.84],["2007-01-19",487.98,490.76,486.74,489.75,4978300,489.75],["2007-01-18",494.52,496.48,487.43,487.83,5932000,487.83],["2007-01-17",503.39,507.77,494.38,497.28,6699100,497.28],["2007-01-16",507.55,513,503.3,504.28,7568900,504.28],["2007-01-12",501.99,505,500,505,4473700,505],["2007-01-11",497.2,501.75,496.18,499.72,7208200,499.72],["2007-01-10",484.43,493.55,482.04,489.46,5968500,489.46],["2007-01-09",485.45,488.25,481.2,485.5,5381400,485.5],["2007-01-08",487.69,489.87,482.2,483.58,4754400,483.58],["2007-01-05",482.5,487.5,478.11,487.19,6872100,487.19],["2007-01-04",469,483.95,468.35,483.26,7887600,483.26],["2007-01-03",466,476.66,461.11,467.59,7706500,467.59],["2006-12-29",462.1,464.47,459.86,460.48,2559200,460.48],["2006-12-28",467.12,468.58,462.25,462.56,3116200,462.56],["2006-12-27",460,468.08,459.1,468.03,4231500,468.03],["2006-12-26",456.52,459.47,454.59,457.53,2074300,457.53],["2006-12-22",457.5,458.64,452.73,455.58,3988300,455.58],["2006-12-21",464.18,465.25,452.34,456.2,6953300,456.2],["2006-12-20",470,471.5,462.33,462.9,4367800,462.9],["2006-12-19",461.72,469.31,458.5,468.63,6587000,468.63],["2006-12-18",482.51,482.74,460.72,462.8,8016600,462.8],["2006-12-15",482.64,484.11,479.84,480.3,5190800,480.3],["2006-12-14",480.25,483.75,477.26,482.12,4748900,482.12],["2006-12-13",484.69,485.5,477.02,478.99,4662100,478.99],["2006-12-12",483.85,486.36,480.28,481.78,4181000,481.78],["2006-12-11",484.92,488.9,483.8,483.93,3263400,483.93],["2006-12-08",481.94,488.6,480,484.11,3974900,484.11],["2006-12-07",490.23,491.8,482.42,482.64,4664300,482.64],["2006-12-06",486.96,492.4,484.52,488.71,4450300,488.71],["2006-12-05",487.4,489.44,484.89,487,4103000,487],["2006-12-04",483,487.43,479.35,484.85,4899900,484.85],["2006-12-01",485.98,488.39,478.5,480.8,5631400,480.8],["2006-11-30",484.19,490.4,481.55,484.81,5577500,484.81],["2006-11-29",494.24,494.74,482.25,484.65,6315300,484.65],["2006-11-28",481.13,489.86,477.03,489.5,7797600,489.5],["2006-11-27",501.37,501.78,484.75,484.75,7324700,484.75],["2006-11-24",504.5,507.5,504,505,1732700,505],["2006-11-22",510.97,513,505.78,508.01,4500700,508.01],["2006-11-21",496.54,510,495.83,509.65,8427500,509.65],["2006-11-20",498.4,498.4,492.65,495.05,5124500,495.05],["2006-11-17",493.25,499.66,493,498.79,5511000,498.79],["2006-11-16",495,497.68,492.56,495.9,5092600,495.9],["2006-11-15",493.43,499.85,491.93,491.93,8370700,491.93],["2006-11-14",480.7,489.95,480.5,489.3,7223400,489.3],["2006-11-13",474.9,481.17,474.14,481.03,4341900,481.03],["2006-11-10",473.78,474.72,470.29,473.55,2796700,473.55],["2006-11-09",476.5,479.49,471.86,472.63,4879200,472.63],["2006-11-08",470.35,481.74,468.6,475,7965000,475],["2006-11-07",476.95,479.02,471.77,472.57,4897100,472.57],["2006-11-06",473.77,479.66,472.33,476.95,4991500,476.95],["2006-11-03",472.23,473.75,465.06,471.8,4907700,471.8],["2006-11-02",467.5,473.73,466.38,469.91,5236700,469.91],["2006-11-01",478.76,479.13,465.26,467.5,5426300,467.5],["2006-10-31",478.06,482.16,473.84,476.39,6285400,476.39],["2006-10-30",474.82,480.46,470.01,476.57,6563100,476.57],["2006-10-27",483.9,485.24,472.49,475.2,6604000,475.2],["2006-10-26",487.68,491.96,484.2,485.1,7031700,485.1],["2006-10-25",477.49,488.5,475.11,486.6,9187500,486.6],["2006-10-24",476.28,477.86,471.41,473.31,8660200,473.31],["2006-10-23",462.28,484.64,460.37,480.78,15104500,480.78],["2006-10-20",458.99,460.1,453.59,459.67,11647900,459.67],["2006-10-19",420.23,429.5,419.57,426.06,11503500,426.06],["2006-10-18",422.99,424.75,417.5,419.31,6017300,419.31],["2006-10-17",420.3,423.75,416.7,420.64,5211000,420.64],["2006-10-16",427.7,429.2,421.34,421.75,4319400,421.75],["2006-10-13",427.76,429.5,425.56,427.3,3622500,427.3],["2006-10-12",428.56,429.68,424,427.44,4844000,427.44],["2006-10-11",425.02,429.91,423.76,426.5,5635400,426.5],["2006-10-10",431.56,437.85,422.39,426.65,9788600,426.65],["2006-10-09",424.8,431.95,423.42,429,7583300,429],["2006-10-06",410.22,421.91,409.75,420.5,7336500,420.5],["2006-10-05",414.7,418.24,410.86,411.81,5789800,411.81],["2006-10-04",404.97,415.77,403.05,415.7,6661800,415.7],["2006-10-03",401.29,406.46,398.19,404.04,5464700,404.04],["2006-10-02",401.9,406,400.8,401.44,3651900,401.44],["2006-09-29",405.13,405.62,401.41,401.9,3310900,401.9],["2006-09-28",404.08,406.98,400.54,403.58,5107400,403.58],["2006-09-27",406.3,411.22,402.37,402.92,5876700,402.92],["2006-09-26",405.5,407.68,401.77,406.87,5289400,406.87],["2006-09-25",405.58,409.45,402.5,403.98,5737300,403.98],["2006-09-22",404.98,407.45,401.36,403.78,4649600,403.78],["2006-09-21",400.3,408.45,399.86,406.85,10692100,406.85],["2006-09-20",407.1,407.39,394.62,397,9147800,397],["2006-09-19",415.46,415.49,392.74,403.81,14292900,403.81],["2006-09-18",410,418.69,409.47,414.69,7106700,414.69],["2006-09-15",407.48,410.05,406.74,409.88,7838200,409.88],["2006-09-14",404.3,406.28,401.93,403.98,5366100,403.98],["2006-09-13",395.15,406.76,395.1,406.57,9768200,406.57],["2006-09-12",385,392.73,384.88,391.9,5442200,391.9],["2006-09-11",378.26,384.69,377.77,384.09,4529200,384.09],["2006-09-08",376.72,380.79,376.72,377.85,3083400,377.85],["2006-09-07",379.39,381.75,377.4,378.49,3842000,378.49],["2006-09-06",382.1,383.19,379.66,380.14,3724100,380.14],["2006-09-05",379.87,385.4,377.44,384.36,4074300,384.36],["2006-09-01",380.99,381.28,377.19,378.6,2672900,378.6],["2006-08-31",381.49,382.15,378.2,378.53,2959900,378.53],["2006-08-30",379.21,384.65,378.51,380.75,4044400,380.75],["2006-08-29",380.78,382.32,377.2,378.95,4460000,378.95],["2006-08-28",375.61,380.95,375,380.95,4164000,380.95],["2006-08-25",373.08,375.32,372.5,373.26,2466700,373.26],["2006-08-24",374.44,376.4,372.26,373.73,3482500,373.73],["2006-08-23",377.64,378.27,372.66,373.43,3642300,373.43],["2006-08-22",377.73,379.26,374.84,378.29,4164100,378.29],["2006-08-21",378.1,379,375.22,377.3,4023300,377.3],["2006-08-18",386.31,387.09,380.75,383.36,4952200,383.36],["2006-08-17",386.39,390,383.92,385.8,5080200,385.8],["2006-08-16",383.48,388.45,382.12,387.72,5853200,387.72],["2006-08-15",374.11,381.67,372.6,380.97,6698200,380.97],["2006-08-14",371.5,375.13,368.67,369.43,4968300,369.43],["2006-08-11",374.4,375.28,368,368.5,3766500,368.5],["2006-08-10",373.88,377.67,372.46,374.2,4261900,374.2],["2006-08-09",382.8,384.68,376.36,376.94,4311000,376.94],["2006-08-08",382.82,384.5,379.09,381,5743200,381],["2006-08-07",371.5,379.73,371.15,377.95,3946900,377.95],["2006-08-04",379.56,380.68,371.75,373.85,5095200,373.85],["2006-08-03",364.98,377.91,363.36,375.39,6327000,375.39],["2006-08-02",375.6,377.17,365.2,367.23,7097800,367.23],["2006-08-01",385.11,385.77,375.51,375.51,5463200,375.51],["2006-07-31",388,389.17,383.31,386.6,4595300,386.6],["2006-07-28",382,389.56,381.73,388.12,4083600,388.12],["2006-07-27",387.37,387.49,377.95,382.4,5641100,382.4],["2006-07-26",388.2,391.91,383,385.5,5531900,385.5],["2006-07-25",385.02,391.31,383.8,389.36,5761100,389.36],["2006-07-24",392.82,393.89,381.21,390.9,8086100,390.9],["2006-07-21",386.14,391.75,377.69,390.11,11754600,390.11],["2006-07-20",404.28,404.44,385.66,387.12,12538700,387.12],["2006-07-19",395.01,401.14,394.66,399,8518500,399],["2006-07-18",409.75,410.57,397.74,403.05,8536800,403.05],["2006-07-17",404.63,411,403.72,407.89,5811900,407.89],["2006-07-14",410.33,411.49,398.61,403.5,7552100,403.5],["2006-07-13",414,418.34,406.83,408.83,6924500,408.83],["2006-07-12",422.09,422.74,416.73,417.25,4906700,417.25],["2006-07-11",418.51,425.05,413.03,424.56,5971300,424.56],["2006-07-10",423.44,425.23,416.38,418.2,4436400,418.2],["2006-07-07",426.05,427.89,415.88,420.45,6041900,420.45],["2006-07-06",423.38,425.38,421.98,423.19,3687100,423.19],["2006-07-05",421.52,422.8,415.64,421.46,4985600,421.46],["2006-07-03",420.04,423.77,419.45,423.2,2156700,423.2],["2006-06-30",415.6,419.33,412.33,419.33,6258000,419.33],["2006-06-29",407.99,418.2,405.82,417.81,6658200,417.81],["2006-06-28",404.01,406.48,401.13,406.11,3710500,406.11],["2006-06-27",405.71,408,401.01,402.32,4107100,402.32],["2006-06-26",406.75,408.3,403.25,404.22,3551200,404.22],["2006-06-23",402.76,409.75,400.74,404.86,5314800,404.86],["2006-06-22",401.58,406,388,399.95,5911900,399.95],["2006-06-21",391.06,404,389.75,402.13,8744400,402.13],["2006-06-20",388.03,391.87,386.51,387.17,4039900,387.17],["2006-06-19",390.85,394.8,386.98,388.14,7633100,388.14],["2006-06-16",389.1,390.93,388,390.7,5304600,390.7],["2006-06-15",386.62,392.25,383,391,6785700,391],["2006-06-14",389.83,391.1,378.52,384.39,7772000,384.39],["2006-06-13",380.9,387,378.12,386.52,7659100,386.52],["2006-06-12",388.34,390.49,381,381.54,5019100,381.54],["2006-06-09",392.19,395.43,385.35,386.57,6157500,386.57],["2006-06-08",387.75,394.27,378.59,393.3,10359500,393.3],["2006-06-07",393.24,394.86,386.5,386.51,8911300,386.51],["2006-06-06",376.58,390,376.3,389.99,10259800,389.99],["2006-06-05",376.18,381.45,374.15,374.44,5558500,374.44],["2006-06-02",386.84,387.08,377.45,379.44,6386400,379.44],["2006-06-01",373.54,382.99,371.6,382.62,6278000,382.62],["2006-05-31",373.8,378.25,366.78,371.82,7981300,371.82],["2006-05-30",378.28,381,371.45,371.94,4316000,371.94],["2006-05-26",384.55,385.88,380.03,381.35,3667000,381.35],["2006-05-25",379.08,383,372.31,382.99,8194600,382.99],["2006-05-24",377.35,383.44,371.61,381.25,9553800,381.25],["2006-05-23",374.21,383.88,373.56,375.58,8983000,375.58],["2006-05-22",367.85,373.03,365.25,370.95,8604400,370.95],["2006-05-19",373.28,374.5,360.57,370.02,11398200,370.02],["2006-05-18",378.78,381.81,370.71,370.99,5835000,370.99],["2006-05-17",370.61,379.84,370.22,374.5,10643800,374.5],["2006-05-16",375.99,376.86,369.89,371.3,6491100,371.3],["2006-05-15",375.93,380.15,368.25,376.2,8590100,376.2],["2006-05-12",383.54,384.87,373.55,374.13,10087600,374.13],["2006-05-11",403.42,404.71,384.98,387,8892800,387],["2006-05-10",408.31,411.71,401.86,402.98,6187200,402.98],["2006-05-09",395.7,409,393.75,408.8,9140600,408.8],["2006-05-08",395.11,397.12,390.05,394.78,5118600,394.78],["2006-05-05",397.6,400.68,391.78,394.3,6065000,394.3],["2006-05-04",395.03,398.87,392.21,394.75,4652000,394.75],["2006-05-03",396.35,401.5,390.88,394.17,8072200,394.17],["2006-05-02",401.08,402.49,388.4,394.8,13104300,394.8],["2006-05-01",418.47,419.44,398.55,398.9,10361200,398.9],["2006-04-28",418.63,425.73,416.3,417.94,7421300,417.94],["2006-04-27",422.91,426.91,419.39,420.03,8337900,420.03],["2006-04-26",427.74,430.04,423.53,425.97,7277800,425.97],["2006-04-25",439.63,441.04,426,427.16,9569000,427.16],["2006-04-24",439.4,444.7,436.52,440.5,8836400,440.5],["2006-04-21",448.9,450.72,436.17,437.1,22551300,437.1],["2006-04-20",411.01,416,408.2,415,12271500,415],["2006-04-19",412.57,413.64,406.73,410.5,6781700,410.5],["2006-04-18",407.93,409.83,401.5,404.24,8137600,404.24],["2006-04-17",403.45,412.5,400.84,406.82,8259500,406.82],["2006-04-13",408.63,409.76,400.5,402.16,6552900,402.16],["2006-04-12",409,411.33,405.19,408.95,6017000,408.95],["2006-04-11",416.42,419.1,406.22,409.66,11107200,409.66],["2006-04-10",407.08,417.17,405.25,416.38,9320100,416.38],["2006-04-07",412.41,412.85,404.02,406.16,7025900,406.16],["2006-04-06",406.49,413.89,405.43,411.18,8598500,411.18],["2006-04-05",408.2,414.57,402.82,407.99,13410500,407.99],["2006-04-04",389.9,404.9,388.14,404.34,15715700,404.34],["2006-04-03",389.53,392.47,387.93,389.7,8122700,389.7],["2006-03-31",388.74,391.87,384.03,390,36521400,390],["2006-03-30",389.19,393.5,383.61,388.44,14711700,388.44],["2006-03-29",379.94,399,379.51,394.98,19027500,394.98],["2006-03-28",371.71,377.86,371.17,377.2,8945800,377.2],["2006-03-27",367.09,371.71,365,369.69,7023700,369.69],["2006-03-24",368.62,370.09,362.51,365.8,15180600,365.8],["2006-03-23",342.35,345.75,340.2,341.89,7434700,341.89],["2006-03-22",339.75,344.1,337.5,340.22,7596000,340.22],["2006-03-21",350.01,351.66,339.08,339.92,9831100,339.92],["2006-03-20",342.34,350.09,341.54,348.19,10407600,348.19],["2006-03-17",338.8,341.78,334.93,339.79,8551700,339.79],["2006-03-16",348.61,348.75,337.9,338.77,10016700,338.77],["2006-03-15",350.77,352.3,340.53,344.5,12768800,344.5],["2006-03-14",337.14,352.37,332.62,351.16,18450700,351.16],["2006-03-13",340.93,346.1,335.45,337.06,13642400,337.06],["2006-03-10",343.5,344.5,331.55,337.5,19325600,337.5],["2006-03-09",355.39,358.53,341.5,343,13910400,343],["2006-03-08",353.93,360.03,350.54,353.88,11745600,353.88],["2006-03-07",365.02,368.45,358.15,364.45,10378800,364.45],["2006-03-06",380.91,383.4,367.14,368.1,8939700,368.1],["2006-03-03",384.3,387.24,375.76,378.18,11962000,378.18],["2006-03-02",364.28,381.1,362.2,376.45,18330300,376.45],["2006-03-01",368.56,369.45,361.3,364.8,12061200,364.8],["2006-02-28",393.2,397.54,338.51,362.62,39437600,362.62],["2006-02-27",381.27,391.7,380.28,390.38,10212200,390.38],["2006-02-24",377.3,380.07,373.49,377.4,6484300,377.4],["2006-02-23",365.61,381.24,365.39,378.07,12551600,378.07],["2006-02-22",367.15,368.95,363.86,365.49,6476200,365.49],["2006-02-21",366.44,373.54,365.11,366.59,8686000,366.59],["2006-02-17",369.86,372.14,363.62,368.75,14320200,368.75],["2006-02-16",345.67,367,344.49,366.46,21315500,366.46],["2006-02-15",341.27,346,337.83,342.38,12947000,342.38],["2006-02-14",345.33,351.69,342.4,343.32,14654000,343.32],["2006-02-13",346.64,350.6,341.89,345.7,19717800,345.7],["2006-02-10",361.95,364.5,353.14,362.61,15223500,362.61],["2006-02-09",371.2,374.4,356.11,358.77,11912400,358.77],["2006-02-08",368.48,370.69,354.67,369.08,20804100,369.08],["2006-02-07",382.99,383.7,363.35,367.92,16630200,367.92],["2006-02-06",385.31,389.9,379.56,385.1,8940400,385.1],["2006-02-03",393.62,393.9,372.57,381.55,18281800,381.55],["2006-02-02",403.82,406.5,395.98,396.04,11807700,396.04],["2006-02-01",389.03,402,387.52,401.78,27122500,401.78],["2006-01-31",430.57,439.6,423.97,432.66,22066000,432.66],["2006-01-30",429.23,433.28,425,426.82,8588900,426.82],["2006-01-27",435,438.22,428.98,433.49,8452200,433.49],["2006-01-26",439.54,439.99,423.56,434.27,12926100,434.27],["2006-01-25",451.26,454.23,429.22,433,18739800,433],["2006-01-24",436.03,444.95,434.48,443.03,15464600,443.03],["2006-01-23",407.38,428.39,405.73,427.5,22741400,427.5],["2006-01-20",438.7,440.03,394.74,399.46,41116700,399.46],["2006-01-19",451.17,453.49,433,436.45,14537300,436.45],["2006-01-18",447.3,457.36,443.25,444.91,20485700,444.91],["2006-01-17",463.06,469.9,462.53,467.11,8270300,467.11],["2006-01-13",464.31,466.89,461.61,466.25,7656600,466.25],["2006-01-12",473.72,474.99,461.5,463.63,10125300,463.63],["2006-01-11",471.27,475.11,469.18,471.63,9007400,471.63],["2006-01-10",464.42,470.25,462.04,469.76,9097100,469.76],["2006-01-09",466.41,473.4,460.94,466.9,12791900,466.9],["2006-01-06",456.87,470.5,453.24,465.66,17756900,465.66],["2006-01-05",446,451.55,441.5,451.24,10808300,451.24],["2006-01-04",443.9,448.96,439.75,445.24,15286400,445.24],["2006-01-03",422.52,435.67,418.22,435.23,13121200,435.23],["2005-12-30",417.27,418.21,413.74,414.86,7587100,414.86],["2005-12-29",427.98,428.73,419.17,420.15,6945800,420.15],["2005-12-28",424.34,427.78,421.26,426.69,7117900,426.69],["2005-12-27",431.86,431.86,422.76,424.64,6702800,424.64],["2005-12-23",432.15,432.5,428.78,430.93,4595100,430.93],["2005-12-22",431.77,432.86,425.93,432.04,7546600,432.04],["2005-12-21",433.55,436.86,420.71,426.33,11221900,426.33],["2005-12-20",427.86,432.2,424.67,429.74,10084700,429.74],["2005-12-19",432.2,446.21,420.11,424.6,21936800,424.6],["2005-12-16",425.34,432.5,422.75,430.15,16330500,430.15],["2005-12-15",419.11,423.14,416.5,422.55,6045800,422.55],["2005-12-14",417.04,419.73,415.49,418.96,6630400,418.96],["2005-12-13",412.5,418,411.64,417.49,8157000,417.49],["2005-12-12",414.63,415.21,409.95,412.61,6950100,412.61],["2005-12-09",415,415.78,408.56,409.2,7643400,409.2],["2005-12-08",405.3,410.65,402.64,410.65,8910100,410.65],["2005-12-07",406.16,406.7,399.01,404.22,11665900,404.22],["2005-12-06",408.7,416.41,401.7,404.54,15114700,404.54],["2005-12-05",417,417.5,404.28,405.85,10289400,405.85],["2005-12-02",416.94,419.53,413.86,417.7,7543500,417.7],["2005-12-01",409.2,415.44,408.29,414.09,9744900,414.09],["2005-11-30",404.26,408.45,395.56,404.91,15596600,404.91],["2005-11-29",424.46,426.4,402.14,403.54,21495800,403.54],["2005-11-28",429.82,431.24,422.44,423.48,11008400,423.48],["2005-11-25",425.78,428.75,425.3,428.62,4840100,428.62],["2005-11-23",417.04,424.72,415.78,422.86,10085000,422.86],["2005-11-22",408.65,417.31,406.23,416.47,9596000,416.47],["2005-11-21",399.17,409.98,393.49,409.36,10335100,409.36],["2005-11-18",403.49,404.5,399.85,400.21,7025700,400.21],["2005-11-17",401.8,403.81,399.53,403.45,9212200,403.45],["2005-11-16",396.2,398.85,394.11,398.15,8695200,398.15],["2005-11-15",394.38,397,390.95,392.8,8624900,392.8],["2005-11-14",392.12,398.22,391.53,396.97,7807900,396.97],["2005-11-11",395.12,396.9,388.85,390.4,7063900,390.4],["2005-11-10",378.36,391.35,377.43,391.1,9128700,391.1],["2005-11-09",386.67,388.29,378.03,379.15,10466900,379.15],["2005-11-08",394.25,395.59,388.58,389.9,7897500,389.9],["2005-11-07",395.1,397.47,392.15,395.03,9591500,395.03],["2005-11-04",389.98,391.79,385.45,390.43,8824900,390.43],["2005-11-03",382.41,386.58,381.38,385.95,7448400,385.95],["2005-11-02",381.7,385,377.17,379.68,10565400,379.68],["2005-11-01",371.86,383.9,369.01,379.38,16356100,379.38],["2005-10-31",360.24,374.75,359.51,372.14,14342900,372.14],["2005-10-28",355.27,358.95,355.02,358.17,5903500,358.17],["2005-10-27",356.6,357.09,351.68,353.06,5134400,353.06],["2005-10-26",346.28,356,346.19,355.44,8907500,355.44],["2005-10-25",345.78,347.4,342.86,346.91,6878300,346.91],["2005-10-24",343.37,349.3,342.19,348.65,9431700,348.65],["2005-10-21",345.8,346.43,333,339.9,22892400,339.9],["2005-10-20",309.99,311.13,301.21,303.2,13911700,303.2],["2005-10-19",304,309.87,303.96,308.7,7010700,308.7],["2005-10-18",304.96,307.96,302.74,303.28,7077800,303.28],["2005-10-17",297.5,305.2,294.56,305,7566700,305],["2005-10-14",299.9,300.23,292.54,296.14,8519100,296.14],["2005-10-13",302,302,290.68,297.44,10567700,297.44],["2005-10-12",305.2,307.19,299,300.97,9306200,300.97],["2005-10-11",310.61,312.65,304.86,306.1,8542600,306.1],["2005-10-10",313.31,314.82,309.15,310.65,5572200,310.65],["2005-10-07",314.79,316.67,310.54,312.99,6770300,312.99],["2005-10-06",314.14,314.48,310.09,312.75,7993800,312.75],["2005-10-05",312.69,314.9,308,310.71,8328400,310.71],["2005-10-04",319.95,321.28,310.74,311,9144300,311],["2005-10-03",313.63,320.11,312.79,318.68,9160300,318.68],["2005-09-30",314.22,317.5,312.29,316.46,9151300,316.46],["2005-09-29",306.68,310.72,306.08,309.62,5613800,309.62],["2005-09-28",314.22,315.1,305.6,306,7997400,306],["2005-09-27",314.95,318.41,313.38,313.94,6873100,313.94],["2005-09-26",319.5,320.95,312.56,314.28,9894400,314.28],["2005-09-23",313,317.21,312.59,315.36,8483800,315.36],["2005-09-22",311.5,319.22,310.17,311.37,13006400,311.37],["2005-09-21",308.41,313.76,305.96,311.9,10119700,311.9],["2005-09-20",306.15,311.3,305.23,307.91,9351000,307.91],["2005-09-19",301,306,300.71,303.79,5761900,303.79],["2005-09-16",304.02,304.5,299.87,300.2,7579800,300.2],["2005-09-15",299.52,306.75,297.91,302.62,15466200,302.62],["2005-09-14",308.73,313.28,300.3,303,11275800,303],["2005-09-13",309,315.53,306.17,311.68,10299900,311.68],["2005-09-12",301.75,311.42,301,309.74,10386500,309.74],["2005-09-09",297.28,299.1,296.56,299.09,4390500,299.09],["2005-09-08",294.83,299.28,293.36,295.39,6613300,295.39],["2005-09-07",285.89,295.5,285.28,294.87,7499500,294.87],["2005-09-06",289,289.39,286.8,287.11,4212300,287.11],["2005-09-02",286.51,289.99,286.44,288.45,3434500,288.45],["2005-09-01",285.91,287.5,285,286.25,2742100,286.25],["2005-08-31",288.23,288.5,284.36,286,5034000,286],["2005-08-30",287.39,289.51,285.88,287.27,4792000,287.27],["2005-08-29",282.24,289.12,282.24,288.45,5903000,288.45],["2005-08-26",283.48,285.02,282.66,283.58,3755300,283.58],["2005-08-25",282.55,284,279.97,282.59,4376600,282.59],["2005-08-24",277.57,284.75,276.45,282.57,8593100,282.57],["2005-08-23",276.16,279.74,274.12,279.58,5821700,279.58],["2005-08-22",281.24,281.47,273.35,274.01,6813000,274.01],["2005-08-19",280.99,281.45,279.62,280,5542900,280],["2005-08-18",275.91,280.5,275,279.99,11872800,279.99],["2005-08-17",285.51,286.57,284,285.1,3883300,285.1],["2005-08-16",284.88,287.79,283.34,285.65,7109200,285.65],["2005-08-15",289.8,292.77,283.77,284,8174700,284],["2005-08-12",283.36,290.2,281.64,289.72,6585900,289.72],["2005-08-11",285.89,286.58,280.62,284.05,7514900,284.05],["2005-08-10",291.3,292.33,284.88,285.68,6879000,285.68],["2005-08-09",291.96,292.68,288.51,291.57,5779300,291.57],["2005-08-08",293.6,295.65,290.49,291.25,4481800,291.25],["2005-08-05",297.5,298.51,291.31,292.35,5939700,292.35],["2005-08-04",295.55,299,295.25,297.73,5236500,297.73],["2005-08-03",298,299.72,295.6,297.3,5930600,297.3],["2005-08-02",291.6,299.52,291.12,299.19,7290200,299.19],["2005-08-01",288.12,292.5,288.1,291.61,5662400,291.61],["2005-07-29",292.14,292.84,286.99,287.76,8363300,287.76],["2005-07-28",297.41,297.41,293.28,293.5,5925600,293.5],["2005-07-27",297.74,298.23,292.4,296.93,7217900,296.93],["2005-07-26",295.01,298,292.09,296.09,9816900,296.09],["2005-07-25",302.39,303.29,294.96,295.85,9658800,295.85],["2005-07-22",306.37,309.25,296.33,302.4,23386800,302.4],["2005-07-21",314.05,317.8,311.21,313.94,19789400,313.94],["2005-07-20",305.57,312.61,301.8,312,14310400,312],["2005-07-19",302.1,310.35,301.8,309.9,12621400,309.9],["2005-07-18",300,301.9,297.75,299.54,6207800,299.54],["2005-07-15",301.24,303.4,299.78,301.19,8438400,301.19],["2005-07-14",305.34,306.75,300.07,300.89,10667700,300.89],["2005-07-13",292.51,299.24,292.1,298.86,11437900,298.86],["2005-07-12",293.39,294.4,290.93,291.78,5864900,291.78],["2005-07-11",296.4,296.6,291.02,293.35,8390300,293.35],["2005-07-08",296.25,297.5,294.05,296.23,7457600,296.23],["2005-07-07",289.39,295.8,288.51,295.54,10672100,295.54],["2005-07-06",297.3,297.6,291.38,291.52,8000300,291.52],["2005-07-05",292.1,295.98,290.23,295.71,7494000,295.71],["2005-07-01",295.04,296.24,289.22,291.25,9227600,291.25],["2005-06-30",294.34,298.93,291.04,294.15,15094400,294.15],["2005-06-29",302.5,304.38,292.15,292.72,18298700,292.72],["2005-06-28",306.28,309.25,302,302,19036500,302],["2005-06-27",298.9,304.47,293.86,304.1,17802900,304.1],["2005-06-24",290.9,298,289.58,297.25,17771200,297.25],["2005-06-23",288,294.81,286.5,289.71,14056400,289.71],["2005-06-22",289.67,292.32,288.67,289.3,10474000,289.3],["2005-06-21",288.07,290.3,284.97,287.84,15132300,287.84],["2005-06-20",276.09,287.67,271.73,286.7,21024700,286.7],["2005-06-17",279,280.3,275.9,280.3,10434400,280.3],["2005-06-16",274.26,278.3,273.07,277.44,12462400,277.44],["2005-06-15",275,277.3,267.43,274.8,20883100,274.8],["2005-06-14",278.59,281.24,277.75,278.35,10091900,278.35],["2005-06-13",279.82,284.19,276.52,282.75,12803200,282.75],["2005-06-10",286.99,287.28,280.02,282.5,12696600,282.5],["2005-06-09",284.72,288.5,280.56,286.31,16441100,286.31],["2005-06-08",292.85,293.19,278,279.56,25700900,279.56],["2005-06-07",297.1,299.59,290.3,293.12,24323000,293.12],["2005-06-06",282.39,293.75,281.83,290.94,22525900,290.94],["2005-06-03",286.79,289.3,277.41,280.26,18782300,280.26],["2005-06-02",288.73,289.78,284.6,287.9,17974100,287.9],["2005-06-01",283.2,292.89,282.02,288,35191700,288],["2005-05-31",269.43,278.4,269.37,277.27,22236800,277.27],["2005-05-27",260.46,266.05,259.25,266,12184100,266],["2005-05-26",260.96,263.76,258.3,259.2,13546600,259.2],["2005-05-25",252.73,260.98,250.63,260.81,18057900,260.81],["2005-05-24",256.96,265.44,253.5,256,29043100,256],["2005-05-23",243.16,258.1,242.71,255.45,21388300,255.45],["2005-05-20",241.21,241.67,239.65,241.61,8163500,241.61],["2005-05-19",240.34,241.17,238.27,239.18,9716500,239.18],["2005-05-18",233.61,239.97,233.52,239.16,12312000,239.16],["2005-05-17",230.56,233.45,230.2,233.13,7808900,233.13],["2005-05-16",229.68,231.62,228.57,231.05,5681400,231.05],["2005-05-13",229.18,231.09,227.32,229.24,7415500,229.24],["2005-05-12",230.81,232.23,228.2,228.72,8948200,228.72],["2005-05-11",228.97,231.98,227.93,231.29,11478800,231.29],["2005-05-10",225.47,227.8,224.72,227.8,6345800,227.8],["2005-05-09",228,228.5,225.43,226.02,5536800,226.02],["2005-05-06",228.4,229.25,226.47,228.02,6763900,228.02],["2005-05-05",228.62,228.62,225.88,226.98,7509600,226.98],["2005-05-04",227.23,229.88,227,228.5,12083500,228.5],["2005-05-03",221.85,228.15,221.32,226.19,17780200,226.19],["2005-05-02",222.05,223.7,220.21,222.29,9767400,222.29],["2005-04-29",221.91,222.25,217.82,220,9170200,220],["2005-04-28",219.5,222.08,217.71,219.45,8682800,219.45],["2005-04-27",217.99,220.85,216.74,219.78,10264800,219.78],["2005-04-26",220.22,222,218.29,218.75,17272000,218.75],["2005-04-25",217.82,224.74,217.52,223.53,19840000,223.53],["2005-04-22",222.9,224,214.26,215.81,33205100,215.81],["2005-04-21",200.42,205,199.32,204.22,17751900,204.22],["2005-04-20",198.58,200.5,195.91,198.1,15451500,198.1],["2005-04-19",189.33,192,188.03,191.4,8430000,191.4],["2005-04-18",184.58,187.88,183.49,186.97,6550300,186.97],["2005-04-15",190.1,190.34,184.66,185,11577400,185],["2005-04-14",193.27,194.36,190.1,191.45,6152700,191.45],["2005-04-13",193.47,194.32,189.73,192.93,6555800,192.93],["2005-04-12",193,194.42,189.41,193.96,7319600,193.96],["2005-04-11",193.09,194.8,192.32,193.23,5410500,193.23],["2005-04-08",193.69,195.1,191.45,192.05,5116600,192.05],["2005-04-07",188.78,194.62,188.64,193.76,9692200,193.76],["2005-04-06",189.24,189.65,187.58,189.22,5252600,189.22],["2005-04-05",187.73,190.26,187.57,188.57,8736700,188.57],["2005-04-04",179.95,185.32,179.84,185.29,8076400,185.29],["2005-04-01",181.76,182.95,179.99,180.04,6182000,180.04],["2005-03-31",177.95,181.39,177.64,180.51,6768600,180.51],["2005-03-30",180.64,181.45,179.6,180.45,6236100,180.45],["2005-03-29",181.05,183.28,178.07,179.57,6473000,179.57],["2005-03-28",181.68,184.8,180.95,181.42,8738000,181.42],["2005-03-24",180.7,180.86,179.2,179.25,3705200,179.25],["2005-03-23",177.97,180.24,177.97,178.98,4845000,178.98],["2005-03-22",181.18,181.94,177.85,178.6,5631700,178.6],["2005-03-21",179.27,182.17,177.25,180.88,7483700,180.88],["2005-03-18",178.81,180.4,178.31,180.04,7090000,180.04],["2005-03-17",177.13,179.64,175.8,179.29,8260600,179.29],["2005-03-16",176.7,178.61,175.01,175.6,7106300,175.6],["2005-03-15",175.3,180,174.21,178.61,10422100,178.61],["2005-03-14",178.33,178.4,172.57,174.99,11146600,174.99],["2005-03-11",180.44,180.95,177.15,177.8,8028300,177.8],["2005-03-10",181.01,181.2,177.4,179.98,10960500,179.98],["2005-03-09",184.21,184.65,180.16,181.35,11360400,181.35],["2005-03-08",189.1,189.85,184.97,185.2,8046100,185.2],["2005-03-07",187.78,189.6,187.03,188.81,8667400,188.81],["2005-03-04",186.7,187.25,185.07,185.9,6774100,185.9],["2005-03-03",186.13,187.75,184.31,187.01,7608600,187.01],["2005-03-02",185.95,187.67,184.36,185.18,7285500,185.18],["2005-03-01",189.29,189.75,182,186.06,9311200,186.06],["2005-02-28",186,189.87,185.85,187.99,7818400,187.99],["2005-02-25",189.15,189.92,185.51,185.87,9973500,185.87],["2005-02-24",183.37,189.85,182.23,188.89,25814300,188.89],["2005-02-23",193.3,194.48,188.66,193.95,15586000,193.95],["2005-02-22",196.5,198.9,190.39,191.37,13483700,191.37],["2005-02-18",198.51,198.84,196.66,197.95,8485900,197.95],["2005-02-17",197.83,199.75,196.81,197.9,10414400,197.9],["2005-02-16",194.7,199.33,194.3,198.41,16532300,198.41],["2005-02-15",193.6,199.84,193.08,195.23,25782800,195.23],["2005-02-14",182.85,193.08,181,192.99,38562200,192.99],["2005-02-11",186.66,192.32,186.07,187.4,13116000,187.4],["2005-02-10",191.97,192.21,185.25,187.98,18982700,187.98],["2005-02-09",200.76,201.6,189.46,191.58,17171500,191.58],["2005-02-08",196.96,200.02,194.53,198.64,11480000,198.64],["2005-02-07",205.26,206.4,195.51,196.03,12960400,196.03],["2005-02-04",206.47,207.75,202.6,204.36,14819300,204.36],["2005-02-03",205.99,213.37,205.81,210.86,12988100,210.86],["2005-02-02",215.55,216.8,203.66,205.96,32799300,205.96],["2005-02-01",194.38,196.66,190.63,191.9,18839000,191.9],["2005-01-31",193.69,196.36,191.72,195.62,9596700,195.62],["2005-01-28",190.02,194.7,186.34,190.34,12208200,190.34],["2005-01-27",188.76,188.86,185.2,188.08,6627400,188.08],["2005-01-26",179.27,189.41,179.15,189.24,12307900,189.24],["2005-01-25",181.94,182.24,176.29,177.12,10659200,177.12],["2005-01-24",188.69,189.33,180.32,180.72,14022700,180.72],["2005-01-21",194.54,195.36,188.12,188.28,9258400,188.28],["2005-01-20",192.5,196.25,192,193.92,9001600,193.92],["2005-01-19",204.65,205.3,196.71,197.3,11257700,197.3],["2005-01-18",200.97,205.02,198.66,203.9,13172600,203.9],["2005-01-14",196,200.01,194.13,199.97,9640300,199.97],["2005-01-13",195.38,197.39,194.05,195.33,6849400,195.33],["2005-01-12",194.33,195.93,190.5,195.38,8177800,195.38],["2005-01-11",195.62,197.71,193.18,193.54,6958700,193.54],["2005-01-10",194.5,198.1,191.83,195.06,7539600,195.06],["2005-01-07",190.64,194.25,188.78,193.85,9662900,193.85],["2005-01-06",195.08,195.9,187.72,188.55,10387100,188.55],["2005-01-05",193.45,196.9,192.23,193.51,8236600,193.51],["2005-01-04",201.4,202.93,193.48,194.5,13755900,194.5],["2005-01-03",197.4,203.64,195.46,202.71,15844200,202.71],["2004-12-31",199.23,199.88,192.56,192.79,7668500,192.79],["2004-12-30",192.97,198.23,191.85,197.6,5904300,197.6],["2004-12-29",191.78,193.52,191.78,192.9,2678100,192.9],["2004-12-28",192.11,193.55,191.01,192.76,4145800,192.76],["2004-12-27",189.15,193.3,189.1,191.91,6104100,191.91],["2004-12-23",187.45,188.6,186,187.9,3614600,187.9],["2004-12-22",183.9,186.85,183.01,186.3,3907000,186.3],["2004-12-21",186.31,187.88,183.4,183.75,5516300,183.75],["2004-12-20",182,188.46,181.87,185.02,9834500,185.02],["2004-12-17",176.76,180.5,176.55,180.08,7386200,180.08],["2004-12-16",176.95,180.49,175.95,176.47,8572800,176.47],["2004-12-15",177.99,180.69,176.66,179.78,11471000,179.78],["2004-12-14",171,178.82,169.6,178.69,11088400,178.69],["2004-12-13",172.17,173.18,169.45,170.45,4818600,170.45],["2004-12-10",173.43,174.88,171.29,171.65,4317200,171.65],["2004-12-09",170.25,173.5,168.47,173.43,7654000,173.43],["2004-12-08",170.35,173.68,168.73,169.98,7541800,169.98],["2004-12-07",176,176.2,170.55,171.43,6870900,171.43],["2004-12-06",179.13,180.7,176.02,176.29,6254000,176.29],["2004-12-03",179.95,181.06,177.6,180.4,5869200,180.4],["2004-12-02",179.9,181.51,178.55,179.4,6260900,179.4],["2004-12-01",181.95,182.5,179.55,179.96,7864100,179.96],["2004-11-30",180.71,183,180.25,181.98,7700000,181.98],["2004-11-29",180.36,182.95,177.51,181.05,10666600,181.05],["2004-11-26",175.8,180.03,175.32,179.39,6480100,179.39],["2004-11-24",174.82,177.21,172.51,174.76,15281000,174.76],["2004-11-23",167.97,170.83,166.5,167.52,12413300,167.52],["2004-11-22",164.47,169.5,161.31,165.1,12368200,165.1],["2004-11-19",169.1,169.98,166.52,169.4,8769300,169.4],["2004-11-18",170.29,174.42,165.73,167.54,16629600,167.54],["2004-11-17",169.02,177.5,169,172.5,18132900,172.5],["2004-11-16",177.5,179.47,170.83,172.54,20917400,172.54],["2004-11-15",180.45,188.32,178.75,184.87,11901500,184.87],["2004-11-12",185.23,189.8,177.4,182,16746100,182],["2004-11-11",169.13,183.75,167.57,183.02,14985500,183.02],["2004-11-10",170.67,172.52,166.33,167.86,10644000,167.86],["2004-11-09",174.1,175.2,165.27,168.7,11064200,168.7],["2004-11-08",170.93,175.44,169.4,172.55,11191800,172.55],["2004-11-05",181.98,182.3,168.55,169.35,19833100,169.35],["2004-11-04",188.44,190.4,183.35,184.7,14409600,184.7],["2004-11-03",198.18,201.6,190.75,191.67,13888700,191.67],["2004-11-02",198.78,199.25,193.34,194.87,11346300,194.87],["2004-11-01",193.55,197.67,191.27,196.03,12224900,196.03],["2004-10-29",198.89,199.95,190.6,190.64,21162500,190.64],["2004-10-28",186.68,194.39,185.6,193.3,14846800,193.3],["2004-10-27",182.72,189.52,181.77,185.97,13356500,185.97],["2004-10-26",186.34,192.64,180,181.8,22307100,181.8],["2004-10-25",176.4,194.43,172.55,187.4,32764200,187.4],["2004-10-22",170.54,180.17,164.08,172.43,36891900,172.43],["2004-10-21",144.4,150.13,141.62,149.38,14589500,149.38],["2004-10-20",148.03,148.99,139.6,140.49,11372700,140.49],["2004-10-19",150.5,152.4,147.35,147.94,9064000,147.94],["2004-10-18",143.2,149.2,141.21,149.16,7025200,149.16],["2004-10-15",144.93,145.5,141.95,144.11,6604000,144.11],["2004-10-14",141.01,142.38,138.56,142,5226300,142],["2004-10-13",143.32,143.55,140.08,140.9,9893000,140.9],["2004-10-12",134.44,137.61,133.4,137.4,5838600,137.4],["2004-10-11",137,138.86,133.85,135.26,5241300,135.26],["2004-10-08",138.72,139.68,137.02,137.73,5540300,137.73],["2004-10-07",136.92,139.88,136.55,138.85,7064600,138.85],["2004-10-06",137.55,138.45,136,137.08,6697400,137.08],["2004-10-05",134.66,138.53,132.24,138.37,7494100,138.37],["2004-10-04",135.25,136.87,134.03,135.06,6517900,135.06],["2004-10-01",130.8,134.24,128.9,132.58,7570000,132.58],["2004-09-30",129.9,132.3,129,129.6,6885900,129.6],["2004-09-29",126.7,135.02,126.23,131.08,15273500,131.08],["2004-09-28",121.3,127.4,120.21,126.86,8473000,126.86],["2004-09-27",119.56,120.88,117.8,118.26,3536600,118.26],["2004-09-24",120.94,124.1,119.76,119.83,4566300,119.83],["2004-09-23",118.84,122.63,117.02,120.82,4272100,120.82],["2004-09-22",117.4,119.67,116.81,118.38,3794400,118.38],["2004-09-21",119.81,120.42,117.51,117.84,3618000,117.84],["2004-09-20",116.95,121.6,116.77,119.36,5319700,119.36],["2004-09-17",114.42,117.49,113.55,117.49,4741000,117.49],["2004-09-16",112.34,115.8,111.65,113.97,4637800,113.97],["2004-09-15",110.56,114.23,110.2,112,5361900,112],["2004-09-14",107.45,112,106.79,111.49,5419900,111.49],["2004-09-13",106.63,108.41,106.46,107.5,3926000,107.5],["2004-09-10",101.6,106.56,101.3,105.33,4353800,105.33],["2004-09-09",102.53,102.71,101,102.31,2032900,102.31],["2004-09-08",100.74,103.03,100.5,102.3,2495300,102.3],["2004-09-07",101.01,102,99.61,101.58,2926700,101.58],["2004-09-03",100.95,101.74,99.32,100.01,2578800,100.01],["2004-09-02",99.19,102.37,98.94,101.51,7566900,101.51],["2004-09-01",102.7,102.97,99.67,100.25,4573700,100.25],["2004-08-31",102.3,103.71,102.16,102.37,2461400,102.37],["2004-08-30",105.28,105.49,102.01,102.01,2601000,102.01],["2004-08-27",108.1,108.62,105.69,106.15,3109000,106.15],["2004-08-26",104.95,107.95,104.66,107.91,3551000,107.91],["2004-08-25",104.96,108,103.88,106,4598900,106],["2004-08-24",111.24,111.6,103.57,104.87,7631300,104.87],["2004-08-23",110.75,113.48,109.05,109.4,9137200,109.4],["2004-08-20",101.01,109.08,100.5,108.31,11428600,108.31],["2004-08-19",100,104.06,95.96,100.34,22351900,100.34]]; \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html b/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html
deleted file mode 100755
index 5808fb16..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Zooming</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="waterfall2.html">Previous</a> <a href="./">Examples</a> <a href="zoomOptions.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- .jqplot-cursor-legend {
- width: 160px;
- font-family: "Courier New";
- font-size: 0.85em;
- }
-
- td.jqplot-cursor-legend-swatch {
- width: 1.3em;
- }
- </style>
-
-
-
- <div id="chart1" style="height:200px; width:600px;"></div>
- <div id="chart2" style="height:500px; width:600px;"></div>
-
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- goog = [["6/22/2009",425.32], ["6/8/2009",424.84], ["5/26/2009",417.23], ["5/11/2009",390],
- ["4/27/2009",393.69], ["4/13/2009",392.24], ["3/30/2009",369.78], ["3/16/2009",330.16], ["3/2/2009",308.57],
- ["2/17/2009",346.45], ["2/2/2009",371.28], ["1/20/2009",324.7], ["1/5/2009",315.07], ["12/22/2008",300.36],
- ["12/8/2008",315.76], ["11/24/2008",292.96], ["11/10/2008",310.02], ["10/27/2008",359.36], ["10/13/2008",372.54],
- ["9/29/2008",386.91], ["9/15/2008",449.15], ["9/2/2008",444.25], ["8/25/2008",463.29], ["8/11/2008",510.15],
- ["7/28/2008",467.86], ["7/14/2008",481.32], ["6/30/2008",537], ["6/16/2008",546.43], ["6/2/2008",567],
- ["5/19/2008",544.62], ["5/5/2008",573.2], ["4/21/2008",544.06], ["4/7/2008",457.45], ["3/24/2008",438.08],
- ["3/10/2008",437.92], ["2/25/2008",471.18], ["2/11/2008",529.64], ["1/28/2008",515.9], ["1/14/2008",600.25],
- ["12/31/2007",657], ["12/17/2007",696.69], ["12/3/2007",714.87], ["11/19/2007",676.7], ["11/5/2007",663.97],
- ["10/22/2007",674.6], ["10/8/2007",637.39], ["9/24/2007",567.27], ["9/10/2007",528.75], ["8/27/2007",515.25]];
-
- var plot1 = $.jqplot('chart1', [goog], {
- title: 'Google, Inc.',
- series: [{
- label: 'Google, Inc.',
- neighborThreshold: -1
- }],
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -30
- }
- },
- yaxis: {
- renderer: $.jqplot.LogAxisRenderer,
- tickOptions:{ prefix: '$' }
- }
- },
- cursor:{
- show: true,
- zoom: true
- }
- });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
- plot2 = $.jqplot('chart2', [goog], {
- title: 'Google, Inc.',
- series: [{
- label: 'Google, Inc.',
- neighborThreshold: -1
- }],
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- tickOptions: {
- angle: -30
- }
- },
- yaxis: {
- renderer: $.jqplot.LogAxisRenderer,
- tickOptions:{ prefix: '$' }
- }
- },
- cursor:{
- show: true,
- zoom: true
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html b/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html
deleted file mode 100755
index ace74b43..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Zoom Options</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="zoom1.html">Previous</a> <a href="./">Examples</a> <a href="zoomProxy.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
- <style type="text/css" media="screen">
- .jqplot-axis {
- font-size: 0.85em;
- }
- .jqplot-axis{
- font-size: 0.75em;
- }
- </style>
-
-<p>Zooming has been enhanced to maintain plot zoom while the mouse moves over the entire document, not just the plot. Two new options have been added to the cursor plugin to further enhance zooming:</p>
-
-<dl>
- <dt>constrainOutsideZoom</dt>
- <dd>True to limit the resulting zoom area to the edges of grid, even if the cursor is outside of the grid. That is, you can't expand the axis ranges by moving the cursor outside of the plot area when this is true. If set to false, you can effectively zoom out by mousing outside of the plot region. Default false.</dd>
- <dt>showTooltipOutsideZoom</dt>
- <dd>True to keep showing and updating the tooltip even when the cursor is outside of the plot area. Not applicable if zoomOutsidePlot is false. Default false</dd>
-</dl>
-
-<p>The fist plot demonstrates the default functionality where you can move the mouse off of the plot while zooming but the actual area zoomed will not extend beyond the axes.</p>
- <div id="chart1" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div>
- <div style="padding-top:20px"><button value="reset" type="button" onclick="plot1.resetZoom();">Reset Zoom</button></div>
-
- <pre class="code brush:js"></pre>
-
-<p>The second plot sets constrainOutsideZoom to false, so zooming will not only function when the mouse is outside of the plot, but the zoom range will be extended to the mouse position outside of the grid.</p>
- <div id="chart2" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div>
- <div style="padding-top:20px"><button value="reset" type="button" onclick="plot2.resetZoom();">Reset Zoom</button></div>
-
- <pre class="code brush:js"></pre>
-
-<p>The third plot is like the third, but showTooltipOutsideZoom is true and the tooltip is set to follow the mouse, so you have an idea of what your range is while zooming.</p>
- <div id="chart3" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div>
- <div style="padding-top:20px"><button value="reset" type="button" onclick="plot3.resetZoom();">Reset Zoom</button></div>
-
- <pre class="code brush:js"></pre>
-
-
- <script type="text/javascript" class="code">
- $(document).ready(function(){
- // Enable plugins like cursor and highlighter by default.
- $.jqplot.config.enablePlugins = true;
- // For these examples, don't show the to image button.
- $.jqplot._noToImageButton = true;
-
- goog = [["6/22/2009",425.32],["6/15/2009",420.09],["6/8/2009",424.84],["6/1/2009",444.32],["5/26/2009",417.23],
- ["5/18/2009",393.5],["5/11/2009",390],["5/4/2009",407.33],["4/27/2009",393.69],["4/20/2009",389.49],
- ["4/13/2009",392.24],["4/6/2009",372.5],["3/30/2009",369.78],["3/23/2009",347.7],["3/16/2009",330.16],
- ["3/9/2009",324.42],["3/2/2009",308.57],["2/23/2009",337.99],["2/17/2009",346.45],["2/9/2009",357.68],
- ["2/2/2009",371.28],["1/26/2009",338.53],["1/20/2009",324.7],["1/12/2009",299.67],["1/5/2009",315.07],
- ["12/29/2008",321.32],["12/22/2008",300.36],["12/15/2008",310.17],["12/8/2008",315.76],["12/1/2008",283.99],
- ["11/24/2008",292.96],["11/17/2008",262.43],["11/10/2008",310.02],["11/3/2008",331.14],["10/27/2008",359.36],
- ["10/20/2008",339.29],["10/13/2008",372.54],["10/6/2008",332],["9/29/2008",386.91],["9/22/2008",431.04],
- ["9/15/2008",449.15],["9/8/2008",437.66],["9/2/2008",444.25],["8/25/2008",463.29],["8/18/2008",490.59],
- ["8/11/2008",510.15], ["8/4/2008",495.01], ["7/28/2008",467.86],["7/21/2008",491.98], ["7/14/2008",481.32],
- ["7/7/2008",533.8],["6/30/2008",537], ["6/23/2008",528.07], ["6/16/2008",546.43],["6/9/2008",571.51],["6/2/2008",567],
- ["5/27/2008",585.8],["5/19/2008",544.62], ["5/12/2008",580.07],["5/5/2008",573.2],["4/28/2008",581.29],
- ["4/21/2008",544.06],["4/14/2008",539.41],["4/7/2008",457.45], ["3/31/2008",471.09],["3/24/2008",438.08],
- ["3/17/2008",433.55], ["3/10/2008",437.92], ["3/3/2008",433.35],["2/25/2008",471.18],["2/19/2008",507.8],
- ["2/11/2008",529.64],["2/4/2008",516.69],["1/28/2008",515.9], ["1/22/2008",566.4],["1/14/2008",600.25],
- ["1/7/2008",638.25],["12/31/2007",657],["12/24/2007",702.53],["12/17/2007",696.69],["12/10/2007",689.96],
- ["12/3/2007",714.87], ["11/26/2007",693], ["11/19/2007",676.7],["11/12/2007",633.63],["11/5/2007",663.97],
- ["10/29/2007",711.25],["10/22/2007",674.6],["10/15/2007",644.71],["10/8/2007",637.39],["10/1/2007",594.05],
- ["9/24/2007",567.27], ["9/17/2007",560.1], ["9/10/2007",528.75], ["9/4/2007",519.35],["8/27/2007",515.25],
- ["8/20/2007",515]];
-
-
- opts = {
- title: 'Google, Inc.',
- series: [{
- neighborThreshold: 0
- }],
- axes: {
- xaxis: {
- renderer:$.jqplot.DateAxisRenderer,
- min:'August 1, 2007',
- tickInterval: "6 months",
- tickOptions:{formatString:"%Y/%#m/%#d"}
- },
- yaxis: {
- // renderer: $.jqplot.LogAxisRenderer,
- tickOptions:{prefix: '$'}
- }
- },
- cursor:{zoom:true}
- };
-
- plot1 = $.jqplot('chart1', [goog], opts);
- });
-
- </script>
- <script type="text/javascript" class="code">
- $(document).ready(function(){
- opts.cursor = {
- zoom:true,
- looseZoom: true,
- constrainOutsideZoom: false
- };
-
- plot2 = $.jqplot('chart2', [goog], opts);
-
- });
- </script>
- <script type="text/javascript" class="code">
- $(document).ready(function(){
- opts.cursor = {
- zoom:true,
- looseZoom: true,
- showTooltip:true,
- followMouse: true,
- showTooltipOutsideZoom: true,
- constrainOutsideZoom: false
- };
-
- plot3 = $.jqplot('chart3', [goog], opts);
- });
- </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html b/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html
deleted file mode 100755
index 1596a886..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Zoom Proxy - Control one plot from another</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="zoomOptions.html">Previous</a> <a href="./">Examples</a> <a href="zooming.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- .jqplot-cursor-legend {
- width: 160px;
- font-family: "Courier New";
- font-size: 0.8em;
- }
-
- td.jqplot-cursor-legend-swatch {
- width: 1.3em;
- }
-
- div.jqplot-cursor-legend-swatch {
-/* width: 15px;*/
- }
- </style>
-
-<p>Click and drag on the bottom plot to zoom on the top plot. Double click inside the bottom plot or click the "reset" button to reset zoom.</p>
-
-<div class="jqPlot" id="chart1" style="height:320px; width:600px;"></div>
-<div class="jqPlot" id="chart2" style="margin-top: 30px; height:100px; width:600px;"></div>
-<button value="reset" onclick="controllerPlot.resetZoom();">Reset</button>
-
-<pre class="code brush:js"></pre>
-
-
-<script type="text/javascript">
-// Disable automatic image button insertion.
-
-var InPr = [[0.0,85.0],[10.0,87.4],[20.0,90.0],[30.0,91.3],[40.0,93.5],[50.0,94.1],[60.0,95.4],[70.0,95.8],[80.0,96.1],[90.0,97.6],[100.0,97.4],[110.0,97.7],[120.0,97.9],[130.0,98.3],[140.0,97.9],[150.0,98.4],[160.0,99.8],[170.0,100.5],[180.0,100.4],[190.0,100.3],[200.0,102.9],[210.0,104.1],[220.0,104.4],[230.0,103.9],[240.0,104.4],[250.0,104.0],[260.0,103.9],[270.0,103.5],[280.0,105.4],[290.0,105.7],[300.0,105.7],[310.0,105.3],[320.0,105.0],[330.0,105.1],[340.0,105.0],[350.0,105.1],[360.0,104.7],[370.0,104.4],[380.0,104.3],[390.0,105.7],[400.0,106.4],[410.0,105.7],[420.0,105.4],[430.0,105.7],[440.0,105.7],[450.0,105.9],[460.0,105.3],[470.0,105.7],[480.0,105.8],[490.0,105.4],[500.0,105.4],[510.0,105.4],[520.0,105.6],[530.0,104.9],[540.0,104.8],[550.0,105.2],[560.0,105.2],[570.0,105.1],[580.0,104.8],[590.0,104.6],[600.0,104.3],[610.0,104.2],[620.0,104.1],[630.0,104.7],[640.0,104.6],[650.0,104.7],[660.0,104.6],[670.0,104.4],[680.0,106.8],[690.0,106.6],
-[700.0,106.3],[710.0,107.1],[720.0,106.2],[730.0,106.1],[740.0,106.7],[750.0,106.5],[760.0,106.8],[770.0,106.7],[780.0,106.6],[790.0,106.7],[800.0,106.8],[810.0,106.4],[820.0,106.7],[830.0,106.5],[840.0,106.9],[850.0,106.7],[860.0,106.7],[870.0,106.8],[880.0,107.1],[890.0,106.6],[900.0,106.8],[910.0,106.9],[920.0,106.8],[930.0,107.3],[940.0,106.9],[950.0,106.5],[960.0,107.2],[970.0,107.0],[980.0,106.9],[990.0,107.2],[1000.0,107.7],[1010.0,107.6],[1020.0,107.1],[1030.0,107.6],[1040.0,107.2],[1050.0,107.2],[1060.0,107.5],[1070.0,107.7],[1080.0,107.3],[1090.0,107.0],[1100.0,107.7],[1110.0,107.0],[1120.0,107.8],[1130.0,107.8],[1140.0,107.7],[1150.0,107.4],[1160.0,107.8],[1170.0,107.8],[1180.0,107.6],[1190.0,107.7],[1200.0,107.4],[1210.0,108.0],[1220.0,372.6],[1230.0,90.4],[1240.0,125.0],[1250.0,110.4],[1260.0,108.5],[1270.0,109.7],[1280.0,108.9],[1290.0,109.6],[1300.0,110.2],[1310.0,110.0],[1320.0,110.7],[1330.0,110.3],[1340.0,110.6],[1350.0,110.5],
-[1360.0,110.8],[1370.0,110.6],[1380.0,111.0],[1390.0,113.0],[1400.0,112.1],[1410.0,112.3],[1420.0,112.3],[1430.0,137.6],[1440.0,179.0],[1450.0,216.9],[1460.0,399.2],[1470.0,433.6],[1480.0,203.5],[1490.0,223.3],[1500.0,229.8],[1510.0,416.9],[1520.0,198.8],[1530.0,208.7],[1540.0,172.0],[1550.0,145.7],[1560.0,119.2],[1570.0,104.8],[1580.0,100.1],[1590.0,97.7],[1600.0,97.2],[1610.0,98.8],[1620.0,98.1],[1630.0,98.1],[1640.0,98.8],[1650.0,98.7],[1660.0,98.5],[1670.0,98.8],[1680.0,98.2],[1690.0,98.2],[1700.0,97.7],[1710.0,98.1],[1720.0,97.1],[1730.0,97.6],[1740.0,97.7],[1750.0,97.4],[1760.0,97.6],[1770.0,98.0],[1780.0,97.6],[1790.0,97.7],[1800.0,97.8],[1810.0,97.6],[1820.0,97.9],
-[1830.0,97.9],[1840.0,97.8],[1850.0,97.7],[1860.0,97.7],[1870.0,97.7],[1880.0,97.4],[1890.0,97.3],[1900.0,97.2],[1910.0,96.9],[1920.0,97.2],[1930.0,97.4],[1940.0,97.7],[1950.0,97.1],[1960.0,97.1],[1970.0,96.6],[1980.0,96.7],[1990.0,96.5],[2000.0,97.2],[2010.0,96.6],[2020.0,96.4],[2030.0,96.7],[2040.0,96.8],[2050.0,96.6],[2060.0,96.6],[2070.0,96.5],[2080.0,96.6],[2090.0,96.4],[2100.0,96.6],[2110.0,96.5],[2120.0,96.2],[2130.0,96.2],[2140.0,96.5],[2150.0,96.0],[2160.0,96.2],[2170.0,96.3],[2180.0,96.4],[2190.0,97.0],[2200.0,96.8],[2210.0,96.5],[2220.0,96.6],[2230.0,96.1],[2240.0,96.1],[2250.0,96.6],[2260.0,96.5],[2270.0,96.6],[2280.0,96.4],[2290.0,96.5],[2300.0,96.6],[2310.0,96.9],[2320.0,96.8],[2330.0,96.9],[2340.0,97.2],[2350.0,96.6],[2360.0,97.3],[2370.0,97.4],[2380.0,97.1],[2390.0,97.1],[2400.0,96.8],[2410.0,97.0],[2420.0,97.1],[2430.0,97.1],[2440.0,97.0],[2450.0,97.1],[2460.0,97.1],[2470.0,97.5],[2480.0,96.9],[2490.0,96.8],[2500.0,96.8],[2510.0,97.0],[2520.0,96.7],[2530.0,97.0],[2540.0,97.1],[2550.0,97.2],[2560.0,97.1],[2570.0,97.1],[2580.0,97.1],[2590.0,96.8],[2600.0,97.2],[2610.0,97.1],[2620.0,97.3],[2630.0,97.1],[2640.0,97.1],[2650.0,97.1],[2660.0,97.0],[2670.0,96.8],[2680.0,97.3],[2690.0,97.4],[2700.0,97.3],[2710.0,97.2],[2720.0,97.1],[2730.0,97.2],[2740.0,97.1],[2750.0,97.1],[2760.0,97.1],[2770.0,96.8],[2780.0,96.4],[2790.0,96.6],[2800.0,96.6]];
-var OutPr = [[0.0,1788.1],[10.0,1803.3],[20.0,1807.3],[30.0,1813.5],[40.0,1822.0],[50.0,1820.3],[60.0,1823.7],[70.0,1823.7],[80.0,1825.3],[90.0,1831.0],[100.0,1832.1],[110.0,1834.4],[120.0,1834.4],[130.0,1831.5],[140.0,1832.7],[150.0,1834.4],[160.0,1831.5],[170.0,1832.1],[180.0,1830.4],[190.0,1831.0],[200.0,1830.4],[210.0,1829.3],[220.0,1829.9],[230.0,1828.2],[240.0,1831.0],[250.0,1828.7],[260.0,1827.0],[270.0,1829.3],[280.0,1826.5],[290.0,1824.8],[300.0,1824.2],[310.0,1823.7],[320.0,1823.7],[330.0,1823.7],[340.0,1825.3],[350.0,1822.0],[360.0,1820.3],[370.0,1818.0],[380.0,1819.1],[390.0,1816.3],[400.0,1820.8],[410.0,1820.8],[420.0,1819.7],[430.0,1820.3],[440.0,1819.7],[450.0,1819.1],
-[460.0,1819.1],[470.0,1821.4],[480.0,1821.4],[490.0,1818.0],[500.0,1816.9],[510.0,1819.1],[520.0,1818.6],[530.0,1816.9],[540.0,1816.9],[550.0,1815.2],[560.0,1814.1],[570.0,1814.6],[580.0,1811.2],[590.0,1814.1],[600.0,1813.5],[610.0,1812.4],[620.0,1809.0],[630.0,1813.5],[640.0,1811.8],[650.0,1815.8],[660.0,1816.3],[670.0,1815.2],[680.0,1815.2],[690.0,1815.8],[700.0,1816.3],[710.0,1818.6],[720.0,1816.9],[730.0,1814.6],[740.0,1816.3],[750.0,1814.1],[760.0,1812.9],[770.0,1812.9],[780.0,1811.2],[790.0,1812.4],[800.0,1815.2],[810.0,1812.4],[820.0,1813.5],[830.0,1811.8],[840.0,1811.2],[850.0,1812.9],[860.0,1809.0],[870.0,1811.2],[880.0,1816.9],[890.0,1815.2],[900.0,1813.5],[910.0,1812.9],
-[920.0,1815.8],[930.0,1819.1],[940.0,1818.0],[950.0,1816.3],[960.0,1818.0],[970.0,1815.2],[980.0,1818.6],[990.0,1815.2],[1000.0,1822.5],[1010.0,1822.5],[1020.0,1816.9],[1030.0,1816.3],[1040.0,1817.4],[1050.0,1816.9],[1060.0,1811.8],[1070.0,1818.6],[1080.0,1818.6],[1090.0,1815.2],[1100.0,1816.9],[1110.0,1815.8],[1120.0,1815.8],[1130.0,1816.9],[1140.0,1815.2],[1150.0,1815.2],[1160.0,1818.0],[1170.0,1817.4],[1180.0,1818.0],[1190.0,1819.1],[1200.0,1817.4],[1210.0,1822.5],[1220.0,1313.9],[1230.0,1694.5],[1240.0,1891.3],[1250.0,1813.5],[1260.0,1827.0],[1270.0,1831.5],[1280.0,1827.6],[1290.0,1832.1],[1300.0,1831.5],[1310.0,1829.9],[1320.0,1834.4],[1330.0,1831.0],[1340.0,1827.6],
-[1350.0,1829.3],[1360.0,1832.1],[1370.0,1834.9],[1380.0,1834.9],[1390.0,1839.4],[1400.0,1830.4],[1410.0,1832.7],[1420.0,1833.8],[1430.0,1847.9],[1440.0,1770.6],[1450.0,1668.0],[1460.0,1279.5],[1470.0,1138.5],[1480.0,1724.4],[1490.0,1571.0],[1500.0,1740.8],[1510.0,1326.8],[1520.0,1661.2],[1530.0,1859.2],[1540.0,1851.8],[1550.0,1885.7],[1560.0,1876.1],[1570.0,1860.3],[1580.0,1870.5],[1590.0,1851.8],[1600.0,1853.5],[1610.0,1863.7],[1620.0,1854.1],[1630.0,1855.8],[1640.0,1858.6],[1650.0,1857.5],[1660.0,1858.6],[1670.0,1841.7],[1680.0,1824.2],[1690.0,1817.4],[1700.0,1813.5],[1710.0,1814.6],[1720.0,1809.0],[1730.0,1806.2],[1740.0,1803.9],[1750.0,1804.5],[1760.0,1798.8],[1770.0,1793.8],[1780.0,1792.1],[1790.0,1793.2],[1800.0,1792.6],[1810.0,1787.0],[1820.0,1787.0],[1830.0,1786.4],[1840.0,1788.1],[1850.0,1784.7],
-[1860.0,1781.4],[1870.0,1780.2],[1880.0,1777.4],[1890.0,1775.7],[1900.0,1775.2],[1910.0,1775.2],[1920.0,1776.8],[1930.0,1778.0],[1940.0,1775.7],[1950.0,1769.5],[1960.0,1769.5],[1970.0,1768.4],[1980.0,1771.2],[1990.0,1770.1],[2000.0,1769.5],[2010.0,1767.8],[2020.0,1764.4],[2030.0,1764.4],[2040.0,1765.0],[2050.0,1762.7],[2060.0,1765.6],[2070.0,1763.9],[2080.0,1762.2],[2090.0,1759.9],[2100.0,1759.9],[2110.0,1762.2],[2120.0,1762.7],[2130.0,1762.2],[2140.0,1762.7],[2150.0,1759.4],[2160.0,1761.1],[2170.0,1761.6],[2180.0,1763.3],[2190.0,1765.0],[2200.0,1768.4],[2210.0,1763.3],[2220.0,1762.7],[2230.0,1759.9],[2240.0,1762.7],[2250.0,1764.4],[2260.0,1765.6],[2270.0,1766.7],[2280.0,1763.3],[2290.0,1763.3],[2300.0,1763.9],[2310.0,1762.7],[2320.0,1762.7],[2330.0,1767.3],[2340.0,1767.8],[2350.0,1765.6],[2360.0,1766.1],
-[2370.0,1766.7],[2380.0,1766.7],[2390.0,1765.0],[2400.0,1765.0],[2410.0,1765.0],[2420.0,1765.0],[2430.0,1765.6],[2440.0,1765.6],[2450.0,1763.3],[2460.0,1767.8],[2470.0,1767.8],[2480.0,1765.0],[2490.0,1761.6],[2500.0,1761.6],[2510.0,1762.7],[2520.0,1763.3],[2530.0,1763.3],[2540.0,1763.9],[2550.0,1765.0],[2560.0,1766.1],[2570.0,1765.6],[2580.0,1766.7],[2590.0,1765.6],[2600.0,1768.4],[2610.0,1766.7],[2620.0,1764.4],[2630.0,1764.4],[2640.0,1766.1],[2650.0,1766.1],[2660.0,1766.1],[2670.0,1763.9],[2680.0,1765.6],[2690.0,1765.6],[2700.0,1765.6],[2710.0,1765.0],[2720.0,1765.6],[2730.0,1766.1],[2740.0,1767.3],[2750.0,1766.7],[2760.0,1762.2],[2770.0,1754.9],[2780.0,1750.9],[2790.0,1750.3],[2800.0,1748.1]];
-var ERPM = [[0.0,1503.],[10.0,3006.],[20.0,3005.],[30.0,1505.],[40.0,1505.],[50.0,3015.],[60.0,1503.],[70.0,3006.],[80.0,3006.],[90.0,1503.],[100.0,1503.],[110.0,1503.],[120.0,1500.],[130.0,1503.],[140.0,752.],[150.0,1503.],[160.0,1503.],[170.0,1503.],[180.0,1505.],[190.0,1503.],[200.0,1503.],[210.0,3006.],[220.0,1503.],[230.0,1503.],[240.0,1502.],[250.0,1503.],[260.0,3005.],[270.0,1500.],[280.0,1502.],[290.0,1502.],[300.0,1502.],[310.0,752.],[320.0,1502.],[330.0,1502.],[340.0,1504.],[350.0,1502.],[360.0,1502.],[370.0,1501.],[380.0,1502.],[390.0,501.],[400.0,1501.],[410.0,501.],[420.0,751.],[430.0,751.],[440.0,1503.],[450.0,750.],[460.0,1501.],[470.0,1503.],[480.0,501.],[490.0,1501.],[500.0,1501.],[510.0,501.],[520.0,1501.],[530.0,751.],[540.0,1501.],[550.0,1501.],[560.0,1501.],[570.0,1501.],[580.0,1504.],[590.0,1504.],
-[600.0,1502.],[610.0,751.],[620.0,1501.],[630.0,1501.],[640.0,1501.],[650.0,1501.],[660.0,1504.],[670.0,1502.],[680.0,751.],[690.0,751.],[700.0,1501.],[710.0,751.],[720.0,1501.],[730.0,1502.],[740.0,1502.],[750.0,751.],[760.0,376.],[770.0,1502.],[780.0,1501.],[790.0,1502.],[800.0,1499.],[810.0,1499.],[820.0,750.],[830.0,1499.],[840.0,501.],[850.0,300.],[860.0,1504.],[870.0,751.],[880.0,1502.],[890.0,1502.],[900.0,1502.],[910.0,751.],[920.0,501.],[930.0,1502.],[940.0,751.],[950.0,1502.],[960.0,501.],[970.0,1504.],[980.0,751.],[990.0,1502.],[1000.0,751.],[1010.0,1502.],[1020.0,500.],[1030.0,751.],[1040.0,1502.],[1050.0,751.],[1060.0,1502.],[1070.0,1502.],[1080.0,751.],[1090.0,751.],[1100.0,1502.],[1110.0,750.],[1120.0,1502.],[1130.0,375.],[1140.0,1502.],[1150.0,300.],[1160.0,375.],[1170.0,1499.],[1180.0,300.],
-[1190.0,375.],[1200.0,1502.],[1210.0,373.],[1220.0,368.],[1230.0,502.],[1240.0,495.],[1250.0,1475.],[1260.0,1468.],[1270.0,732.],[1280.0,1461.],[1290.0,1458.],[1300.0,1456.],[1310.0,1456.],[1320.0,1451.],[1330.0,1453.],[1340.0,1453.],[1350.0,726.],[1360.0,1451.],[1370.0,1451.],[1380.0,1451.],[1390.0,1451.],[1400.0,1449.],[1410.0,1449.],[1420.0,1449.],[1430.0,1944.],[1440.0,1197.],[1450.0,786.],[1460.0,0.],[1470.0,0.],[1480.0,1079.],[1490.0,1070.],[1500.0,1085.],[1510.0,923.],[1520.0,1121.],[1530.0,1293.],[1540.0,1762.],[1550.0,367.],[1560.0,352.],[1570.0,186.],[1580.0,892.],[1590.0,892.],[1600.0,892.],[1610.0,892.],[1620.0,892.],[1630.0,892.],[1640.0,892.],[1650.0,892.],[1660.0,892.],[1670.0,892.],[1680.0,0.],[1690.0,0.],[1700.0,0.],[1710.0,0.],[1720.0,0.],[1730.0,0.],[1740.0,0.],[1750.0,0.],[1760.0,0.],
-[1770.0,0.],[1780.0,0.],[1790.0,0.],[1800.0,0.],[1810.0,0.],[1820.0,0.],[1830.0,0.],[1840.0,0.],[1850.0,0.],[1860.0,0.],[1870.0,0.],[1880.0,0.],[1890.0,0.],[1900.0,0.],[1910.0,0.],[1920.0,0.],[1930.0,0.],[1940.0,0.],[1950.0,0.],[1960.0,0.],[1970.0,0.],[1980.0,0.],[1990.0,0.],[2000.0,0.],[2010.0,0.],[2020.0,0.],[2030.0,0.],[2040.0,0.],[2050.0,0.],[2060.0,0.],[2070.0,0.],[2080.0,0.],[2090.0,0.],[2100.0,0.],[2110.0,0.],[2120.0,0.],[2130.0,0.],[2140.0,0.],[2150.0,0.],[2160.0,0.],[2170.0,0.],[2180.0,0.],[2190.0,0.],[2200.0,0.],[2210.0,0.],[2220.0,0.],[2230.0,0.],[2240.0,0.],[2250.0,0.],[2260.0,0.],[2270.0,0.],[2280.0,0.],[2290.0,0.],[2300.0,0.],[2310.0,0.],[2320.0,0.],[2330.0,0.],[2340.0,0.],[2350.0,0.],[2360.0,0.],[2370.0,0.],[2380.0,0.],[2390.0,0.],[2400.0,0.],[2410.0,0.],[2420.0,0.],[2430.0,0.],[2440.0,0.],
-[2450.0,0.],[2460.0,0.],[2470.0,0.],[2480.0,0.],[2490.0,0.],[2500.0,0.],[2510.0,0.],[2520.0,0.],[2530.0,0.],[2540.0,0.],[2550.0,0.],[2560.0,0.],[2570.0,0.],[2580.0,0.],[2590.0,0.],[2600.0,0.],[2610.0,0.],[2620.0,0.],[2630.0,0.],[2640.0,0.],[2650.0,0.],[2660.0,0.],[2670.0,0.],[2680.0,0.],[2690.0,0.],[2700.0,0.],[2710.0,0.],[2720.0,0.],[2730.0,0.],[2740.0,0.],[2750.0,0.],[2760.0,0.],[2770.0,0.],[2780.0,0.],[2790.0,0.],[2800.0,0.]];
-</script>
-
-
- <script type="text/javascript" class="code">
- $(document).ready(function(){
- // InPr, OutPr and ERPM are defined separately. They are large datasets.
- targetPlot = $.jqplot('chart1', [InPr, OutPr, ERPM], {
- seriesDefaults:{ showMarker: false },
- series:[
- {label:'P In'},
- {label:'P Out', yaxis:'y2axis'},
- {label:'RPM', yaxis:'y3axis'},
- ],
- cursor:{
- show: true,
- zoom:true,
- showTooltip:false
- },
- legend:{
- location:'nw',
- xoffset: 270,
- yoffset: 100
- },
- axesDefaults: {
- useSeriesColor:true,
- rendererOptions: {
- alignTicks: true
- }
- }
-
- });
-
- controllerPlot = $.jqplot('chart2', [InPr, OutPr, ERPM], {
- seriesDefaults:{ showMarker: false },
- series:[
- {label:'P In'},
- {label:'P Out', yaxis:'y2axis'},
- {label:'RPM', yaxis:'y3axis'},
- ],
- cursor:{
- show: true,
- showTooltip: false,
- zoom:true,
- constrainZoomTo: 'x'
- },
- axesDefaults: {
- useSeriesColor:true,
- rendererOptions: {
- alignTicks: true
- }
- }
- });
-
- $.jqplot.Cursor.zoomProxy(targetPlot, controllerPlot);
-
- $.jqplot._noToImageButton = true;
-
- });
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zooming.html b/wqflask/wqflask/static/packages/jqplot/examples/zooming.html
deleted file mode 100755
index 4c1cb2b6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zooming.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
- <title>Plot Zooming and Cursor Control</title>
-
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="examples.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-
-</head>
-<body>
- <div class="logo">
- <div class="nav">
- <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
- <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
- <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
- <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
- <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
- </div>
-</div>
- <div class="example-content">
-
- <div class="example-nav">
- <a href="zoomProxy.html">Previous</a> <a href="./">Examples</a> <a href="area.html">Next</a></div>
-
-
-<!-- Example scripts go here -->
-
- <style type="text/css">
- .button-reset {
- margin: 30px;
- margin-left: 90px;
- }
-
-
- </style>
-
-<p>The cursor plugin also enables plot zooming functionality. Click and drag on the plot to zoom. Double click to reset.</p>
-
-<p>You can disable the double click zoom reset. The cursor plugin also extends the plot object with a resetZoom() method which can be called from user code or other html element (a button for example) to reset the plot zoom.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-<button class="button-reset">Reset Zoom</button>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>Plot zooming also works will multiple axes. The following plot uses 3 large datasets.</p>
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script language="javascript" type="text/javascript">
-var goog = [["6/22/2009 16:00:00",425.32],
-["6/8/2009 16:00:00",424.84],
-["5/26/2009 16:00:00",417.23],
-["5/11/2009 16:00:00",390],
-["4/27/2009 16:00:00",393.69],
-["4/13/2009 16:00:00",392.24],
-["3/30/2009 16:00:00",369.78],
-["3/16/2009 16:00:00",330.16],
-["3/2/2009 16:00:00",308.57],
-["2/17/2009 16:00:00",346.45],
-["2/2/2009 16:00:00",371.28],
-["1/20/2009 16:00:00",324.7],
-["1/5/2009 16:00:00",315.07],
-["12/22/2008 16:00:00",300.36],
-["12/8/2008 16:00:00",315.76],
-["11/24/2008 16:00:00",292.96],
-["11/10/2008 16:00:00",310.02],
-["10/27/2008 16:00:00",359.36],
-["10/13/2008 16:00:00",372.54],
-["9/29/2008 16:00:00",386.91],
-["9/15/2008 16:00:00",449.15],
-["9/2/2008 16:00:00",444.25],
-["8/25/2008 16:00:00",463.29],
-["8/11/2008 16:00:00",510.15],
-["7/28/2008 16:00:00",467.86],
-["7/14/2008 16:00:00",481.32],
-["6/30/2008 16:00:00",537],
-["6/16/2008 16:00:00",546.43],
-["6/2/2008 16:00:00",567],
-["5/19/2008 16:00:00",544.62],
-["5/5/2008 16:00:00",573.2],
-["4/21/2008 16:00:00",544.06],
-["4/7/2008 16:00:00",457.45],
-["3/24/2008 16:00:00",438.08],
-["3/10/2008 16:00:00",437.92],
-["2/25/2008 16:00:00",471.18],
-["2/11/2008 16:00:00",529.64],
-["1/28/2008 16:00:00",515.9],
-["1/14/2008 16:00:00",600.25],
-["12/31/2007 16:00:00",657],
-["12/17/2007 16:00:00",696.69],
-["12/3/2007 16:00:00",714.87],
-["11/19/2007 16:00:00",676.7],
-["11/5/2007 16:00:00",663.97],
-["10/22/2007 16:00:00",674.6],
-["10/8/2007 16:00:00",637.39],
-["9/24/2007 16:00:00",567.27],
-["9/10/2007 16:00:00",528.75],
-["8/27/2007 16:00:00",515.25]];
-var InPr = [[0.0,85.0],[10.0,87.4],[20.0,90.0],[30.0,91.3],[40.0,93.5],[50.0,94.1],[60.0,95.4],[70.0,95.8],[80.0,96.1],[90.0,97.6],[100.0,97.4],[110.0,97.7],[120.0,97.9],[130.0,98.3],[140.0,97.9],[150.0,98.4],[160.0,99.8],[170.0,100.5],[180.0,100.4],[190.0,100.3],[200.0,102.9],[210.0,104.1],[220.0,104.4],[230.0,103.9],[240.0,104.4],[250.0,104.0],[260.0,103.9],[270.0,103.5],[280.0,105.4],[290.0,105.7],[300.0,105.7],[310.0,105.3],[320.0,105.0],[330.0,105.1],[340.0,105.0],[350.0,105.1],[360.0,104.7],[370.0,104.4],[380.0,104.3],[390.0,105.7],[400.0,106.4],[410.0,105.7],[420.0,105.4],[430.0,105.7],[440.0,105.7],[450.0,105.9],[460.0,105.3],[470.0,105.7],[480.0,105.8],[490.0,105.4],[500.0,105.4],[510.0,105.4],[520.0,105.6],[530.0,104.9],[540.0,104.8],[550.0,105.2],[560.0,105.2],[570.0,105.1],[580.0,104.8],[590.0,104.6],[600.0,104.3],[610.0,104.2],[620.0,104.1],[630.0,104.7],[640.0,104.6],[650.0,104.7],[660.0,104.6],[670.0,104.4],[680.0,106.8],[690.0,106.6],
-[700.0,106.3],[710.0,107.1],[720.0,106.2],[730.0,106.1],[740.0,106.7],[750.0,106.5],[760.0,106.8],[770.0,106.7],[780.0,106.6],[790.0,106.7],[800.0,106.8],[810.0,106.4],[820.0,106.7],[830.0,106.5],[840.0,106.9],[850.0,106.7],[860.0,106.7],[870.0,106.8],[880.0,107.1],[890.0,106.6],[900.0,106.8],[910.0,106.9],[920.0,106.8],[930.0,107.3],[940.0,106.9],[950.0,106.5],[960.0,107.2],[970.0,107.0],[980.0,106.9],[990.0,107.2],[1000.0,107.7],[1010.0,107.6],[1020.0,107.1],[1030.0,107.6],[1040.0,107.2],[1050.0,107.2],[1060.0,107.5],[1070.0,107.7],[1080.0,107.3],[1090.0,107.0],[1100.0,107.7],[1110.0,107.0],[1120.0,107.8],[1130.0,107.8],[1140.0,107.7],[1150.0,107.4],[1160.0,107.8],[1170.0,107.8],[1180.0,107.6],[1190.0,107.7],[1200.0,107.4],[1210.0,108.0],[1220.0,372.6],[1230.0,90.4],[1240.0,125.0],[1250.0,110.4],[1260.0,108.5],[1270.0,109.7],[1280.0,108.9],[1290.0,109.6],[1300.0,110.2],[1310.0,110.0],[1320.0,110.7],[1330.0,110.3],[1340.0,110.6],[1350.0,110.5],
-[1360.0,110.8],[1370.0,110.6],[1380.0,111.0],[1390.0,113.0],[1400.0,112.1],[1410.0,112.3],[1420.0,112.3],[1430.0,137.6],[1440.0,179.0],[1450.0,216.9],[1460.0,399.2],[1470.0,433.6],[1480.0,203.5],[1490.0,223.3],[1500.0,229.8],[1510.0,416.9],[1520.0,198.8],[1530.0,208.7],[1540.0,172.0],[1550.0,145.7],[1560.0,119.2],[1570.0,104.8],[1580.0,100.1],[1590.0,97.7],[1600.0,97.2],[1610.0,98.8],[1620.0,98.1],[1630.0,98.1],[1640.0,98.8],[1650.0,98.7],[1660.0,98.5],[1670.0,98.8],[1680.0,98.2],[1690.0,98.2],[1700.0,97.7],[1710.0,98.1],[1720.0,97.1],[1730.0,97.6],[1740.0,97.7],[1750.0,97.4],[1760.0,97.6],[1770.0,98.0],[1780.0,97.6],[1790.0,97.7],[1800.0,97.8],[1810.0,97.6],[1820.0,97.9],
-[1830.0,97.9],[1840.0,97.8],[1850.0,97.7],[1860.0,97.7],[1870.0,97.7],[1880.0,97.4],[1890.0,97.3],[1900.0,97.2],[1910.0,96.9],[1920.0,97.2],[1930.0,97.4],[1940.0,97.7],[1950.0,97.1],[1960.0,97.1],[1970.0,96.6],[1980.0,96.7],[1990.0,96.5],[2000.0,97.2],[2010.0,96.6],[2020.0,96.4],[2030.0,96.7],[2040.0,96.8],[2050.0,96.6],[2060.0,96.6],[2070.0,96.5],[2080.0,96.6],[2090.0,96.4],[2100.0,96.6],[2110.0,96.5],[2120.0,96.2],[2130.0,96.2],[2140.0,96.5],[2150.0,96.0],[2160.0,96.2],[2170.0,96.3],[2180.0,96.4],[2190.0,97.0],[2200.0,96.8],[2210.0,96.5],[2220.0,96.6],[2230.0,96.1],[2240.0,96.1],[2250.0,96.6],[2260.0,96.5],[2270.0,96.6],[2280.0,96.4],[2290.0,96.5],[2300.0,96.6],[2310.0,96.9],[2320.0,96.8],[2330.0,96.9],[2340.0,97.2],[2350.0,96.6],[2360.0,97.3],[2370.0,97.4],[2380.0,97.1],[2390.0,97.1],[2400.0,96.8],[2410.0,97.0],[2420.0,97.1],[2430.0,97.1],[2440.0,97.0],[2450.0,97.1],[2460.0,97.1],[2470.0,97.5],[2480.0,96.9],[2490.0,96.8],[2500.0,96.8],[2510.0,97.0],[2520.0,96.7],[2530.0,97.0],[2540.0,97.1],[2550.0,97.2],[2560.0,97.1],[2570.0,97.1],[2580.0,97.1],[2590.0,96.8],[2600.0,97.2],[2610.0,97.1],[2620.0,97.3],[2630.0,97.1],[2640.0,97.1],[2650.0,97.1],[2660.0,97.0],[2670.0,96.8],[2680.0,97.3],[2690.0,97.4],[2700.0,97.3],[2710.0,97.2],[2720.0,97.1],[2730.0,97.2],[2740.0,97.1],[2750.0,97.1],[2760.0,97.1],[2770.0,96.8],[2780.0,96.4],[2790.0,96.6],[2800.0,96.6]];
-var OutPr = [[0.0,1788.1],[10.0,1803.3],[20.0,1807.3],[30.0,1813.5],[40.0,1822.0],[50.0,1820.3],[60.0,1823.7],[70.0,1823.7],[80.0,1825.3],[90.0,1831.0],[100.0,1832.1],[110.0,1834.4],[120.0,1834.4],[130.0,1831.5],[140.0,1832.7],[150.0,1834.4],[160.0,1831.5],[170.0,1832.1],[180.0,1830.4],[190.0,1831.0],[200.0,1830.4],[210.0,1829.3],[220.0,1829.9],[230.0,1828.2],[240.0,1831.0],[250.0,1828.7],[260.0,1827.0],[270.0,1829.3],[280.0,1826.5],[290.0,1824.8],[300.0,1824.2],[310.0,1823.7],[320.0,1823.7],[330.0,1823.7],[340.0,1825.3],[350.0,1822.0],[360.0,1820.3],[370.0,1818.0],[380.0,1819.1],[390.0,1816.3],[400.0,1820.8],[410.0,1820.8],[420.0,1819.7],[430.0,1820.3],[440.0,1819.7],[450.0,1819.1],
-[460.0,1819.1],[470.0,1821.4],[480.0,1821.4],[490.0,1818.0],[500.0,1816.9],[510.0,1819.1],[520.0,1818.6],[530.0,1816.9],[540.0,1816.9],[550.0,1815.2],[560.0,1814.1],[570.0,1814.6],[580.0,1811.2],[590.0,1814.1],[600.0,1813.5],[610.0,1812.4],[620.0,1809.0],[630.0,1813.5],[640.0,1811.8],[650.0,1815.8],[660.0,1816.3],[670.0,1815.2],[680.0,1815.2],[690.0,1815.8],[700.0,1816.3],[710.0,1818.6],[720.0,1816.9],[730.0,1814.6],[740.0,1816.3],[750.0,1814.1],[760.0,1812.9],[770.0,1812.9],[780.0,1811.2],[790.0,1812.4],[800.0,1815.2],[810.0,1812.4],[820.0,1813.5],[830.0,1811.8],[840.0,1811.2],[850.0,1812.9],[860.0,1809.0],[870.0,1811.2],[880.0,1816.9],[890.0,1815.2],[900.0,1813.5],[910.0,1812.9],
-[920.0,1815.8],[930.0,1819.1],[940.0,1818.0],[950.0,1816.3],[960.0,1818.0],[970.0,1815.2],[980.0,1818.6],[990.0,1815.2],[1000.0,1822.5],[1010.0,1822.5],[1020.0,1816.9],[1030.0,1816.3],[1040.0,1817.4],[1050.0,1816.9],[1060.0,1811.8],[1070.0,1818.6],[1080.0,1818.6],[1090.0,1815.2],[1100.0,1816.9],[1110.0,1815.8],[1120.0,1815.8],[1130.0,1816.9],[1140.0,1815.2],[1150.0,1815.2],[1160.0,1818.0],[1170.0,1817.4],[1180.0,1818.0],[1190.0,1819.1],[1200.0,1817.4],[1210.0,1822.5],[1220.0,1313.9],[1230.0,1694.5],[1240.0,1891.3],[1250.0,1813.5],[1260.0,1827.0],[1270.0,1831.5],[1280.0,1827.6],[1290.0,1832.1],[1300.0,1831.5],[1310.0,1829.9],[1320.0,1834.4],[1330.0,1831.0],[1340.0,1827.6],
-[1350.0,1829.3],[1360.0,1832.1],[1370.0,1834.9],[1380.0,1834.9],[1390.0,1839.4],[1400.0,1830.4],[1410.0,1832.7],[1420.0,1833.8],[1430.0,1847.9],[1440.0,1770.6],[1450.0,1668.0],[1460.0,1279.5],[1470.0,1138.5],[1480.0,1724.4],[1490.0,1571.0],[1500.0,1740.8],[1510.0,1326.8],[1520.0,1661.2],[1530.0,1859.2],[1540.0,1851.8],[1550.0,1885.7],[1560.0,1876.1],[1570.0,1860.3],[1580.0,1870.5],[1590.0,1851.8],[1600.0,1853.5],[1610.0,1863.7],[1620.0,1854.1],[1630.0,1855.8],[1640.0,1858.6],[1650.0,1857.5],[1660.0,1858.6],[1670.0,1841.7],[1680.0,1824.2],[1690.0,1817.4],[1700.0,1813.5],[1710.0,1814.6],[1720.0,1809.0],[1730.0,1806.2],[1740.0,1803.9],[1750.0,1804.5],[1760.0,1798.8],[1770.0,1793.8],[1780.0,1792.1],[1790.0,1793.2],[1800.0,1792.6],[1810.0,1787.0],[1820.0,1787.0],[1830.0,1786.4],[1840.0,1788.1],[1850.0,1784.7],
-[1860.0,1781.4],[1870.0,1780.2],[1880.0,1777.4],[1890.0,1775.7],[1900.0,1775.2],[1910.0,1775.2],[1920.0,1776.8],[1930.0,1778.0],[1940.0,1775.7],[1950.0,1769.5],[1960.0,1769.5],[1970.0,1768.4],[1980.0,1771.2],[1990.0,1770.1],[2000.0,1769.5],[2010.0,1767.8],[2020.0,1764.4],[2030.0,1764.4],[2040.0,1765.0],[2050.0,1762.7],[2060.0,1765.6],[2070.0,1763.9],[2080.0,1762.2],[2090.0,1759.9],[2100.0,1759.9],[2110.0,1762.2],[2120.0,1762.7],[2130.0,1762.2],[2140.0,1762.7],[2150.0,1759.4],[2160.0,1761.1],[2170.0,1761.6],[2180.0,1763.3],[2190.0,1765.0],[2200.0,1768.4],[2210.0,1763.3],[2220.0,1762.7],[2230.0,1759.9],[2240.0,1762.7],[2250.0,1764.4],[2260.0,1765.6],[2270.0,1766.7],[2280.0,1763.3],[2290.0,1763.3],[2300.0,1763.9],[2310.0,1762.7],[2320.0,1762.7],[2330.0,1767.3],[2340.0,1767.8],[2350.0,1765.6],[2360.0,1766.1],
-[2370.0,1766.7],[2380.0,1766.7],[2390.0,1765.0],[2400.0,1765.0],[2410.0,1765.0],[2420.0,1765.0],[2430.0,1765.6],[2440.0,1765.6],[2450.0,1763.3],[2460.0,1767.8],[2470.0,1767.8],[2480.0,1765.0],[2490.0,1761.6],[2500.0,1761.6],[2510.0,1762.7],[2520.0,1763.3],[2530.0,1763.3],[2540.0,1763.9],[2550.0,1765.0],[2560.0,1766.1],[2570.0,1765.6],[2580.0,1766.7],[2590.0,1765.6],[2600.0,1768.4],[2610.0,1766.7],[2620.0,1764.4],[2630.0,1764.4],[2640.0,1766.1],[2650.0,1766.1],[2660.0,1766.1],[2670.0,1763.9],[2680.0,1765.6],[2690.0,1765.6],[2700.0,1765.6],[2710.0,1765.0],[2720.0,1765.6],[2730.0,1766.1],[2740.0,1767.3],[2750.0,1766.7],[2760.0,1762.2],[2770.0,1754.9],[2780.0,1750.9],[2790.0,1750.3],[2800.0,1748.1]];
-var ERPM = [[0.0,1503.],[10.0,3006.],[20.0,3005.],[30.0,1505.],[40.0,1505.],[50.0,3015.],[60.0,1503.],[70.0,3006.],[80.0,3006.],[90.0,1503.],[100.0,1503.],[110.0,1503.],[120.0,1500.],[130.0,1503.],[140.0,752.],[150.0,1503.],[160.0,1503.],[170.0,1503.],[180.0,1505.],[190.0,1503.],[200.0,1503.],[210.0,3006.],[220.0,1503.],[230.0,1503.],[240.0,1502.],[250.0,1503.],[260.0,3005.],[270.0,1500.],[280.0,1502.],[290.0,1502.],[300.0,1502.],[310.0,752.],[320.0,1502.],[330.0,1502.],[340.0,1504.],[350.0,1502.],[360.0,1502.],[370.0,1501.],[380.0,1502.],[390.0,501.],[400.0,1501.],[410.0,501.],[420.0,751.],[430.0,751.],[440.0,1503.],[450.0,750.],[460.0,1501.],[470.0,1503.],[480.0,501.],[490.0,1501.],[500.0,1501.],[510.0,501.],[520.0,1501.],[530.0,751.],[540.0,1501.],[550.0,1501.],[560.0,1501.],[570.0,1501.],[580.0,1504.],[590.0,1504.],
-[600.0,1502.],[610.0,751.],[620.0,1501.],[630.0,1501.],[640.0,1501.],[650.0,1501.],[660.0,1504.],[670.0,1502.],[680.0,751.],[690.0,751.],[700.0,1501.],[710.0,751.],[720.0,1501.],[730.0,1502.],[740.0,1502.],[750.0,751.],[760.0,376.],[770.0,1502.],[780.0,1501.],[790.0,1502.],[800.0,1499.],[810.0,1499.],[820.0,750.],[830.0,1499.],[840.0,501.],[850.0,300.],[860.0,1504.],[870.0,751.],[880.0,1502.],[890.0,1502.],[900.0,1502.],[910.0,751.],[920.0,501.],[930.0,1502.],[940.0,751.],[950.0,1502.],[960.0,501.],[970.0,1504.],[980.0,751.],[990.0,1502.],[1000.0,751.],[1010.0,1502.],[1020.0,500.],[1030.0,751.],[1040.0,1502.],[1050.0,751.],[1060.0,1502.],[1070.0,1502.],[1080.0,751.],[1090.0,751.],[1100.0,1502.],[1110.0,750.],[1120.0,1502.],[1130.0,375.],[1140.0,1502.],[1150.0,300.],[1160.0,375.],[1170.0,1499.],[1180.0,300.],
-[1190.0,375.],[1200.0,1502.],[1210.0,373.],[1220.0,368.],[1230.0,502.],[1240.0,495.],[1250.0,1475.],[1260.0,1468.],[1270.0,732.],[1280.0,1461.],[1290.0,1458.],[1300.0,1456.],[1310.0,1456.],[1320.0,1451.],[1330.0,1453.],[1340.0,1453.],[1350.0,726.],[1360.0,1451.],[1370.0,1451.],[1380.0,1451.],[1390.0,1451.],[1400.0,1449.],[1410.0,1449.],[1420.0,1449.],[1430.0,1944.],[1440.0,1197.],[1450.0,786.],[1460.0,0.],[1470.0,0.],[1480.0,1079.],[1490.0,1070.],[1500.0,1085.],[1510.0,923.],[1520.0,1121.],[1530.0,1293.],[1540.0,1762.],[1550.0,367.],[1560.0,352.],[1570.0,186.],[1580.0,892.],[1590.0,892.],[1600.0,892.],[1610.0,892.],[1620.0,892.],[1630.0,892.],[1640.0,892.],[1650.0,892.],[1660.0,892.],[1670.0,892.],[1680.0,0.],[1690.0,0.],[1700.0,0.],[1710.0,0.],[1720.0,0.],[1730.0,0.],[1740.0,0.],[1750.0,0.],[1760.0,0.],
-[1770.0,0.],[1780.0,0.],[1790.0,0.],[1800.0,0.],[1810.0,0.],[1820.0,0.],[1830.0,0.],[1840.0,0.],[1850.0,0.],[1860.0,0.],[1870.0,0.],[1880.0,0.],[1890.0,0.],[1900.0,0.],[1910.0,0.],[1920.0,0.],[1930.0,0.],[1940.0,0.],[1950.0,0.],[1960.0,0.],[1970.0,0.],[1980.0,0.],[1990.0,0.],[2000.0,0.],[2010.0,0.],[2020.0,0.],[2030.0,0.],[2040.0,0.],[2050.0,0.],[2060.0,0.],[2070.0,0.],[2080.0,0.],[2090.0,0.],[2100.0,0.],[2110.0,0.],[2120.0,0.],[2130.0,0.],[2140.0,0.],[2150.0,0.],[2160.0,0.],[2170.0,0.],[2180.0,0.],[2190.0,0.],[2200.0,0.],[2210.0,0.],[2220.0,0.],[2230.0,0.],[2240.0,0.],[2250.0,0.],[2260.0,0.],[2270.0,0.],[2280.0,0.],[2290.0,0.],[2300.0,0.],[2310.0,0.],[2320.0,0.],[2330.0,0.],[2340.0,0.],[2350.0,0.],[2360.0,0.],[2370.0,0.],[2380.0,0.],[2390.0,0.],[2400.0,0.],[2410.0,0.],[2420.0,0.],[2430.0,0.],[2440.0,0.],
-[2450.0,0.],[2460.0,0.],[2470.0,0.],[2480.0,0.],[2490.0,0.],[2500.0,0.],[2510.0,0.],[2520.0,0.],[2530.0,0.],[2540.0,0.],[2550.0,0.],[2560.0,0.],[2570.0,0.],[2580.0,0.],[2590.0,0.],[2600.0,0.],[2610.0,0.],[2620.0,0.],[2630.0,0.],[2640.0,0.],[2650.0,0.],[2660.0,0.],[2670.0,0.],[2680.0,0.],[2690.0,0.],[2700.0,0.],[2710.0,0.],[2720.0,0.],[2730.0,0.],[2740.0,0.],[2750.0,0.],[2760.0,0.],[2770.0,0.],[2780.0,0.],[2790.0,0.],[2800.0,0.]];
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var plot1 = $.jqplot('chart1', [goog], {
- title: 'Google, Inc.',
- series: [{
- label: 'Google, Inc.',
- neighborThreshold: -1
- }],
- axes: {
- xaxis: {
- renderer: $.jqplot.DateAxisRenderer
- },
- yaxis: {
- tickOptions:{ prefix: '$' }
- }
- },
- cursor:{
- show: true,
- zoom:true,
- showTooltip:false
- }
- });
-
- $('.button-reset').click(function() { plot1.resetZoom() });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
- var plot2 = $.jqplot('chart2', [InPr, OutPr, ERPM], {
- title:'Plot with Zooming and 3 Y Axes',
- seriesDefaults: {showMarker:false},
- series:[
- {},
- {yaxis:'y2axis'},
- {yaxis:'y3axis'}
- ],
- cursor: {
- show: true,
- tooltipLocation:'sw',
- zoom:true
- },
- axesDefaults:{
- // color the axes baselines the same color as the series.
- useSeriesColor: true,
- rendererOptions: {
- // align ticks for each axis across the grid
- alignTicks: true
- }
- },
- axes:{
- // Let the lines start at the edge of the axis.
- xaxis:{ pad: 0 }
- }
- });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
- <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
- <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
- </div>
- <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore
deleted file mode 100755
index 99eb693b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore
+++ /dev/null
@@ -1,27 +0,0 @@
-
-# Jekyll Files #
-################
-_site
-
-
-# Random Files #
-################
-*.swp
-*~
-*.log
-
-
-# Private Test Data #
-#####################
-*REALDATA*
-
-
-# OS generated files #
-######################
-.DS_Store*
-ehthumbs.db
-Icon?
-Thumbs.db
-# nodejs packages #
-######################
-node_modules
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc
deleted file mode 100755
index 66d7029b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "asi": true
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js
deleted file mode 100755
index b6ed18ae..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js
+++ /dev/null
@@ -1,106 +0,0 @@
-module.exports = function(grunt) {
-
- //Project configuration.
- grunt.initConfig({
- pkg: grunt.file.readJSON('package.json'),
- concat: {
- options: {
- separator: ''
- },
- dist: {
- src: [
- 'src/intro.js',
- 'src/core.js',
- 'src/interactiveLayer.js',
- 'src/tooltip.js',
- 'src/utils.js',
- 'src/models/axis.js',
- 'src/models/historicalBar.js',
- 'src/models/bullet.js',
- 'src/models/bulletChart.js',
- 'src/models/cumulativeLineChart.js',
- 'src/models/discreteBar.js',
- 'src/models/discreteBarChart.js',
- 'src/models/distribution.js',
- 'src/models/historicalBar.js',
- 'src/models/historicalBarChart.js',
- 'src/models/indentedTree.js',
- 'src/models/legend.js',
- 'src/models/line.js',
- 'src/models/lineChart.js',
- 'src/models/linePlusBarChart.js',
- 'src/models/lineWithFocusChart.js',
- 'src/models/linePlusBarWithFocusChart.js',
- 'src/models/multiBar.js',
- 'src/models/multiBarChart.js',
- 'src/models/multiBarHorizontal.js',
- 'src/models/multiBarHorizontalChart.js',
- 'src/models/multiChart.js',
- 'src/models/ohlcBar.js',
- 'src/models/pie.js',
- 'src/models/pieChart.js',
- 'src/models/scatter.js',
- 'src/models/scatterChart.js',
- 'src/models/scatterPlusLineChart.js',
- 'src/models/sparkline.js',
- 'src/models/sparklinePlus.js',
- 'src/models/stackedArea.js',
- 'src/models/stackedAreaChart.js',
- 'src/outro.js'
- ],
- dest: 'nv.d3.js'
- }
- },
- uglify: {
- options: {
- banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
- '<%= grunt.template.today("yyyy-mm-dd") %> */'
- },
- js: {
- files: {
- 'nv.d3.min.js': ['nv.d3.js']
- }
- }
- },
- jshint: {
- foo: {
- src: "src/**/*.js"
- },
- options: {
- jshintrc: '.jshintrc'
- }
- },
- watch: {
- js: {
- files: ["src/**/*.js"],
- tasks: ['concat']
- }
- },
- copy: {
- css: {
- files: [
- { src: 'src/nv.d3.css', dest: 'nv.d3.css' }
- ]
- }
- },
- cssmin: {
- dist: {
- files: {
- 'nv.d3.min.css' : ['nv.d3.css']
- }
- }
- }
- });
-
- grunt.loadNpmTasks('grunt-contrib-watch');
- grunt.loadNpmTasks('grunt-contrib-concat');
- grunt.loadNpmTasks('grunt-contrib-jshint');
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-contrib-copy');
- grunt.loadNpmTasks('grunt-contrib-cssmin');
-
- grunt.registerTask('default', ['concat', 'copy']);
- grunt.registerTask('production', ['concat', 'uglify', 'copy', 'cssmin']);
- grunt.registerTask('release', ['production']);
- grunt.registerTask('lint', ['jshint']);
-};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md
deleted file mode 100755
index 82bfea0c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md
+++ /dev/null
@@ -1,49 +0,0 @@
-
-##nvd3.js License
-
-Copyright (c) 2011, 2012 [Novus Partners, Inc.][novus]
-
-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.
-
-[novus]: https://www.novus.com/
-
-
-
-##d3.js License
-
-Copyright (c) 2012, Michael Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* The name Michael Bostock may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile
deleted file mode 100755
index a234fed8..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile
+++ /dev/null
@@ -1,72 +0,0 @@
-JS_FILES = \
- src/intro.js \
- src/core.js \
- src/interactiveLayer.js \
- src/tooltip.js \
- src/utils.js \
- src/models/axis.js \
- src/models/bullet.js \
- src/models/bulletChart.js \
- src/models/cumulativeLineChart.js \
- src/models/discreteBar.js \
- src/models/discreteBarChart.js \
- src/models/distribution.js \
- src/models/historicalBar.js \
- src/models/historicalBarChart.js \
- src/models/indentedTree.js \
- src/models/legend.js \
- src/models/line.js \
- src/models/lineChart.js \
- src/models/linePlusBarChart.js \
- src/models/lineWithFocusChart.js \
- src/models/linePlusBarWithFocusChart.js \
- src/models/multiBar.js \
- src/models/multiBarChart.js \
- src/models/multiBarHorizontal.js \
- src/models/multiBarHorizontalChart.js \
- src/models/multiChart.js \
- src/models/ohlcBar.js \
- src/models/pie.js \
- src/models/pieChart.js \
- src/models/scatter.js \
- src/models/scatterChart.js \
- src/models/scatterPlusLineChart.js \
- src/models/sparkline.js \
- src/models/sparklinePlus.js \
- src/models/stackedArea.js \
- src/models/stackedAreaChart.js \
- src/outro.js
-CSS_FILES = \
- src/nv.d3.css
-
-JS_COMPILER = \
- uglifyjs
-
-CSS_COMPILER = \
- cssmin
-
-all: nv.d3.js nv.d3.min.js nv.d3.css nv.d3.min.css
-nv.d3.js: $(JS_FILES)
-nv.d3.min.js: $(JS_FILES)
-nv.d3.css: $(CSS_FILES)
-nv.d3.min.css: $(CSS_FILES)
-
-nv.d3.js: Makefile
- rm -f $@
- cat $(filter %.js,$^) >> $@
-
-nv.d3.css: Makefile
- rm -f $@
- cat $(filter %.css,$^) >> $@
-
-%.min.js:: Makefile
- rm -f $@
- $(JS_COMPILER) nv.d3.js >> $@
-
-%.min.css:: Makefile
- rm -f $@
- $(CSS_COMPILER) nv.d3.css >> $@
-
-
-clean:
- rm -rf nv.d3*.js nv.d3*.css
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md
deleted file mode 100755
index 7c61aa49..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# NVD3 - v1.1.10-beta
-## Release notes for version 1.1.10 beta
-* Line charts now have a new tooltip option available. This new tooltip displays all series information at once, and shows up anywhere your mouse moves.
-To enable, set **useInteractiveGuideline** to true. See examples in the **test/** directory for how this tooltip works.
-* New test pages have been created for various kinds of charts. They live in the **test/** directory. The goal of these test pages is to aid
-in regression testing coverage when changes are made to charts.
-* Pie charts accept data in a different way, and if you update to version 1.1, **your pie charts will break**. See the pie chart examples for how
-data should be properly passed in. It's a very simple change.
-* Pie charts can now accept a 'labelType' property.
-* Tooltip transitions are **turned off** by default, if you update to the latest nv.d3.css. To bring them back, add a 'with-transitions' CSS class
-to the containing chart DIV.
-* Stacked area charts have transitions again. Duration is controlled via a 'transitionDuration' property.
-* Line, cumulative, scatter, multi bar and discrete bar charts also have the 'transitionDuration' property.
-* Issue #127: Adding ability to override individual scatter plot point colors.
-* Issue #216: Exposing xRange and yRange overrides for all charts.
-* Issue #168: Adding legend.radioButtonMode(). When set to true, legend click behavior will match those of radio buttons.
-* Line stroke-width has been reduced to 1.5px, from 2.5px.
-* Hover points on line and stacked area charts are now a small solid dot, instead of a large ring.
-* Added Multibar chart property "groupSpacing".
-* Charts now have a method called "options()", where you can pass in chart configurations via an object.
-* examples/index.html page created, for quick access to all NVD3 examples and test pages.
-
-## Overview
-A reusable chart library for d3.js.
-
-NVD3 may change from its current state, but will always try to follow the style of d3.js.
-
-You can also check out the [examples page](http://nvd3.org/ghpages/examples.html).
-**Note:** The examples on nvd3.org are outdated. For examples on how to use the latest NVD3, please checkout the **examples/** directory in the repository.
-
----
-
-# Current development focus
-
-- Getting documentation up.
-- Unifying common API functions between charts.
-- Bug fixes that come up.
-
----
-
-# Installation Instructions
-
-`d3.v3.js` is a dependency of `nv.d3.js`. Be sure to include in in your project, then:
-Add a script tag to include `nv.d3.js` OR `nv.d3.min.js` in your project.
-Also add a link to the `nv.d3.css` file.
-
-See wiki -> Documentation for more detail
-
----
-
-If one of [the existing models](https://github.com/novus/nvd3/tree/master/src/models) doesn't meet your needs, fork the project, implement the model and an example using it, send us a pull request, for consideration for inclusion in the project.
-
-We cannot honor all pull requests, but we will review all of them.
-
-Please do not aggregate pull requests. Aggregated pull requests are actually more difficult to review.
-
-We are currently changing our branch structure so that master will be gauranteed stable. In addition, there is now a "development" branch. This branch reflects the latest changes to NVD3 and is not necessarily stable.
-
----
-
-## Minifying your fork:
-
-### Using Make
-The Makefile requires [UglifyJS](https://github.com/mishoo/UglifyJS) and [CSSMin](https://github.com/jbleuzen/node-cssmin)
-
-The easiest way to install UglifyJS and CSSMin is via npm. Run `npm install -g uglify-js cssmin`. After installing verify the setup by running `uglifyjs --version` and `cssmin --help`.
-
-Once you have the `uglifyjs` and `cssmin` commands available, running `make` from your
-fork's root directory will rebuild both `nv.d3.js` and `nv.d3.min.js`.
-
- make # build nv.d3.js and nv.d3.css and minify
- make nv.d3.js # Build nv.d3.js
- make nv.d3.min.js # Minify nv.d3.js into nv.d3.min.js
- make nv.d3.css # Build nv.d3.css
- make nv.d3.min.css # Minify nv.d3.css into nv.d3.min.css
- make clean # Delete nv.d3.*js and nv.d3.*css
-
-
-*Without UglifyJS of CSSMin, you won't get the minified versions when running make.**
-
-### Using Grunt
-
-You can use grunt instead of makefile to build js file. See more about [grunt](http://gruntjs.com/).
-***[Nodejs](http://nodejs.org/) must be installed before you can use grunt.***
-Run `npm install` in root dir to install grunt and it's dependencies.
-
-Then, you can use these commands:
-
- grunt # build nv.d3.js
- grunt production # build nv.d3.js and nv.d3.min.js
- grunt watch # watch file changes in src/, and rebuild nv.d3.js, it's very helpful when delevop NVD3
- grunt lint # run jshint on src/**/*.js
-
-**We ask that you DO NOT minify pull requests...
-If you need to minify please build pull request in separate branch, and
-merge and minify in your master.
-
-## Supported Browsers
-NVD3 runs best on WebKit based browsers.
-
-* **Google Chrome: latest version (preferred)**
-* **Opera 15+ (preferred)**
-* Safari: latest version
-* Firefox: latest version
-* Internet Explorer: 9 and 10
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json
deleted file mode 100755
index 37470dc2..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "nvd3",
- "version": "1.1.14-beta",
- "homepage": "http://www.nvd3.org",
- "authors": [
- "Bob Monteverde",
- "Tyler Wolf",
- "Robin Hu",
- "Frank Shao"
- ],
- "description": "Re-usable charts and chart components for d3.",
- "main": ["nv.d3.js", "src/nv.d3.css"],
- "keywords": [
- "d3",
- "visualization",
- "svg",
- "charts"
- ],
- "license": "Apache License, v2.0",
- "dependencies": {
- "d3": "3.3.5"
- },
- "ignore" : [
- "**/.*",
- "node_modules",
- "bower_components",
- "test",
- "tests",
- "src/models/*",
- "src/*.js",
- "lib",
- "examples",
- "deprecated"
- ]
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat
deleted file mode 100755
index de98b5a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off
-copy src\intro.js /B + src\core.js /B + src\tooltip.js /B temp1.js /B
-copy src\models\*.js /B temp2.js /B
-copy temp1.js /B + temp2.js /B + src\outro.js /B nv.d3.js /B
-del temp1.js
-del temp2.js
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html
deleted file mode 100755
index f25e177b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html
+++ /dev/null
@@ -1,198 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/bar.js"></script>
-<script>
-
- var testdata = [
- {
- label: "One is a very long",
- y: 5
- },
- {
- label: "Two is also very long",
- y: 2
- },
- {
- label: "Three",
- y: 9
- },
- {
- label: "Four",
- y: 7
- },
- {
- label: "Five",
- y: 4
- },
- {
- label: "Six",
- y: 3
- }
- ];
-
-
- var testdata2 = [
- {
- label: "One is a very long",
- y: 1
- },
- {
- label: "Two is also very long",
- y: 12
- },
- {
- label: "Three",
- y: -9
- },
- {
- label: "Four",
- y: 4
- },
- {
- label: "Five",
- y: 6
- }
- ];
-
- var td = 0;
- var a = (Math.random()*10)+1;
- if (a > 5) td = 1;
-
-//Format A
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.bar()
- .width(width)
- .height(height)
- .labelField('label')
- .dataField('y')
- .showLabels(true)
- .title("This is a sample chart title")
- ;
-
- if (td === 0) {
- d3.select("#test1")
- .attr('width', width)
- .attr('height', height)
- .datum(testdata)
- .call(chart);
- } else {
- d3.select("#test1")
- .attr('width', width)
- .attr('height', height)
- .datum(testdata2)
- .call(chart);
- }
-
- return chart;
- },
- callback: function(graph) {
-
- graph.dispatch.on('tooltipShow', function(e) {
- var offsetElement = document.getElementById("chart"),
- left = e.pos[0],
- top = e.pos[1];
-
- var content = '<h3>' + e.label + '</h3>' +
- '<p>' +
- e.value +
- '</p>';
-
- nv.tooltip.show([left, top], content);
- });
-
- graph.dispatch.on('tooltipHide', function(e) {
- nv.tooltip.cleanup();
- });
-
- graph.dispatch.on('elementClick', function(e) {
- console.log("Bar Click",e);
- });
-
- graph.dispatch.on('chartClick', function(e) {
- console.log("Chart Click",e);
- });
-
- graph.dispatch.on('chartClick', function(e) {
- console.log('Click Switching to');
- if (td === 0) {
- d3.select("#test1")
- .datum(testdata2)
- .call(graph);
- td = 1;
-
- } else {
- d3.select("#test1")
- .datum(testdata)
- .call(graph);
- td = 0;
- }
- });
-
-
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- d3.select("#test1")
- .attr('width', width)
- .attr('height', height)
- .call(
- graph
- .width(width)
- .height(height)
- )
- };
- }
-});
-
-/*
-//Format B
-nv.addGraph(function() {
- var selection = d3.select("body")
- .datum(irwinHallDistribution(10000, 10));
-
- var chart = nv.models.histogram()
- .bins(d3.scale.linear().ticks(20))
- .tickFormat(d3.format(".02f"));
-
- chart(selection);
-
- return chart;
-}, function(g) { console.log(g.width(), g.height()) })
-
-//Format C
-nv.addGraph(function() {
- return nv.models.histogram()
- .bins(d3.scale.linear().ticks(20))
- .tickFormat(d3.format(".02f"))(
- d3.select("body")
- .datum(irwinHallDistribution(10000, 10))
- );
-}, function(g) { console.log(g.width(), g.height()) })
-*/
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js
deleted file mode 100755
index 3aa38e76..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js
+++ /dev/null
@@ -1,250 +0,0 @@
-
-nv.models.bar = function() {
- var margin = {top: 20, right: 10, bottom: 80, left: 60},
- width = 960,
- height = 500,
- animate = 500,
- label ='label',
- rotatedLabel = true,
- showLabels = true,
- id = Math.floor(Math.random() * 10000), //Create semi-unique ID in case user doesn't select one
- color = d3.scale.category20(),
- field ='y',
- title = '';
-
- var x = d3.scale.ordinal(),
- y = d3.scale.linear(),
- xAxis = d3.svg.axis().scale(x).orient('bottom'),
- yAxis = d3.svg.axis().scale(y).orient('left'),
- dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'tooltipShow', 'tooltipHide');
-
-
- function chart(selection) {
- selection.each(function(data) {
- x .domain(data.map(function(d,i) { return d[label]; }))
- .rangeRoundBands([0, width - margin.left - margin.right], .1);
-
-
- var min = d3.min(data, function(d) { return d[field] });
- var max = d3.max(data, function(d) { return d[field] });
- var x0 = Math.max(-min, max);
- var x1 = -x0;
-
- // If we have no negative values, then lets stack this with just positive bars
- if (min >= 0) x1 = 0;
-
- y .domain([x1, x0])
- .range([height - margin.top - margin.bottom, 0])
- .nice();
-
- xAxis.ticks( width / 100 );
- yAxis.ticks( height / 36 ).tickSize(-(width - margin.right - margin.left), 0);
-
- var parent = d3.select(this)
- .on("click", function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
- var wrap = parent.selectAll('g.wrap').data([data]);
- var gEnter = wrap.enter();
- gEnter.append("text")
- .attr("class", "title")
- .attr("dy", ".91em")
- .attr("text-anchor", "start")
- .text(title);
- gEnter = gEnter.append('g').attr('class', 'nvd3 wrap').attr('id','wrap-'+id).append('g');
-
-
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'bars');
-
-
- wrap.attr('width', width)
- .attr('height', height);
-
- var g = wrap.select('g')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- var bars = wrap.select('.bars').selectAll('.bar')
- .data(function(d) { return d; });
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('svg:rect')
- .attr('class', function(d) { return d[field] < 0 ? "bar negative" : "bar positive"})
- .attr("fill", function(d, i) { return color(i); })
- .attr('x', 0 )
- .on('mouseover', function(d,i){
- d3.select(this).classed('hover', true);
- dispatch.tooltipShow({
- label: d[label],
- value: d[field],
- data: d,
- index: i,
- // TODO: Calculate the center to the bar
- pos: [d3.event.pageX, d3.event.pageY],
- id: id
- });
-
- })
- .on('mouseout', function(d,i){
- d3.select(this).classed('hover', false);
- dispatch.tooltipHide({
- label: d[label],
- value: d[field],
- data: d,
- index: i,
- id: id
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- label: d[label],
- value: d[field],
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- label: d[label],
- value: d[field],
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
-
- bars
- .attr('class', function(d) { return d[field] < 0 ? "bar negative" : "bar positive"})
- .attr('transform', function(d,i) { return 'translate(' + x(d[label]) + ',0)'; })
- .attr('width', x.rangeBand )
- .order()
- .transition()
- .duration(animate)
- .attr('y', function(d) { return y(Math.max(0, d[field])); })
- .attr('height', function(d) { return Math.abs(y(d[field]) - y(0)); });
-
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .call(xAxis);
-
-
- if (rotatedLabel) {
- g.select('.x.axis').selectAll('text').attr('text-anchor','start').attr("transform", function(d) {
- return "rotate(35)translate(" + this.getBBox().height/2 + "," + '0' + ")";
- });
- }
- if (!showLabels) {
- g.select('.x.axis').selectAll('text').attr('fill', 'rgba(0,0,0,0)');
- g.select('.x.axis').selectAll('line').attr('style', 'opacity: 0');
- }
- /*else {
- g.select('.x.axis').selectAll('text').attr('fill', 'rgba(0,0,0,1)');
- g.select('.x.axis').selectAll('line').attr('style', 'opacity: 1');
- }*/
-
-
-
- g.select('.y.axis')
- .call(yAxis);
- });
-
- return chart;
- }
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- if (margin.left + margin.right + 20 > _)
- width = margin.left + margin.right + 20; // Min width
- else
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- if (margin.top + margin.bottom + 20 > _)
- height = margin.top + margin.bottom + 20; // Min height
- else
- height = _;
- return chart;
- };
-
- chart.animate = function(_) {
- if (!arguments.length) return animate;
- animate = _;
- return chart;
- };
-
- chart.labelField = function(_) {
- if (!arguments.length) return (label);
- label = _;
- return chart;
- };
-
- chart.dataField = function(_) {
- if (!arguments.length) return (field);
- field = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.rotatedLabel = function(_) {
- if (!arguments.length) return rotatedLabel;
- rotatedLabel = _;
- return chart;
- };
-
- chart.showLabels = function(_) {
- if (!arguments.length) return (showLabels);
- showLabels = _;
- return chart;
- };
-
- chart.title = function(_) {
- if (!arguments.length) return (title);
- title = _;
- return chart;
- };
-
- chart.xaxis = {};
- // Expose the x-axis' tickFormat method.
- d3.rebind(chart.xaxis, xAxis, 'tickFormat');
-
- chart.yaxis = {};
- // Expose the y-axis' tickFormat method.
- d3.rebind(chart.yaxis, yAxis, 'tickFormat');
-
- chart.dispatch = dispatch;
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js
deleted file mode 100755
index 43022ccb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js
+++ /dev/null
@@ -1,174 +0,0 @@
-
-// This technique works AS IS for month end data points
-// In fact, this works for any series where each value is evenly spaced,
-// and every series starts at the same value and is 1 to 1
-// In other words, values at the same index, need to have the same x value
-// for all series
-//
-// TODO: now that tooltips don't use jquery, could likely get rid of the charts
-// collection by simply adding some optional functionality to the model
-nv.charts.cumulativeLineChartDaily = function() {
- var selector = null,
- data = [],
- duration = 500,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- };
-
-
- var graph = nv.models.cumulativeLine()
- .x(function(d,i) { return i })
- .color(d3.scale.category10().range()),
- showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatX = graph.xAxis.tickFormat(),
- formatY = graph.yAxis.tickFormat(),
- x = formatX(graph.x()(e, e.pointIndex)),
- //x = formatX(graph.x()(e.point)),
- y = formatY(graph.y()(e.point)),
- content = tooltip(e.series.key, x, y, e, graph);
-
- nv.tooltip.show([left, top], content);
- };
-
- //setting component defaults
- //graph.xAxis.tickFormat(d3.format(',r'));
- graph.xAxis.tickFormat(function(d) {
- //return d3.time.format('%x')(new Date(d))
- return d3.time.format('%x')(new Date(data[0].values[d].x))
- });
-
- //graph.yAxis.tickFormat(d3.format(',.2f'));
- graph.yAxis.tickFormat(d3.format(',.2%'));
-
-
- //TODO: consider a method more similar to how the models are built
- function chart() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
- return chart;
- }
-
-
- // This should always only be called once, then update should be used after,
- // in which case should consider the 'd3 way' and merge this with update,
- // but simply do this on enter... will try another example the d3 way
- chart.build = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- graph
- .width(width)
- .height(height);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return graph;
- },
- callback: function(graph) {
- graph.dispatch.on('tooltipShow', showTooltip);
- graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
- //TODO: fix issue of multiple graphs failing on resize
- //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
- window.onresize =
- function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select(selector + ' svg')
- .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', graph.height()())
- .call(graph);
- };
- }
- });
-
- return chart;
- };
-
-
- /*
- // moved to chart()
- chart.update = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return chart;
- };
- */
-
- chart.data = function(_) {
- if (!arguments.length) return data;
- data = _;
- return chart;
- };
-
- chart.selector = function(_) {
- if (!arguments.length) return selector;
- selector = _;
- return chart;
- };
-
- chart.duration = function(_) {
- if (!arguments.length) return duration;
- duration = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.xTickFormat = function(_) {
- if (!arguments.length) return graph.xAxis.tickFormat();
- graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return graph.yAxis.tickFormat();
- graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.xAxisLabel = function(_) {
- if (!arguments.length) return graph.xAxis.axisLabel();
- graph.xAxis.axisLabel(_);
- return chart;
- };
-
- chart.yAxisLabel = function(_) {
- if (!arguments.length) return graph.yAxis.axisLabel();
- graph.yAxis.axisLabel(_);
- return chart;
- };
-
- d3.rebind(chart, graph, 'x', 'y');
-
- chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
- return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js
deleted file mode 100755
index db22ca34..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js
+++ /dev/null
@@ -1,157 +0,0 @@
-
-nv.charts.discreteBar = function() {
- var selector = null,
- data = [],
- duration = 500,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + x + '</h3>' +
- '<p>' + y + '</p>'
- };
-
-
- var graph = nv.models.discreteBarWithAxes(),
- showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatY = graph.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatX = graph.xAxis.tickFormat(),
- x = formatX(graph.x()(e.point)),
- y = formatY(graph.y()(e.point)),
- content = tooltip(e.series.key, x, y, e, graph);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
- };
-
- //setting component defaults
- graph.xAxis.tickFormat(function(d) { return d });
- graph.yAxis.tickFormat(d3.format(',.f'));
-
-
- //TODO: consider a method more similar to how the models are built
- function chart() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
- return chart;
- }
-
-
- // This should always only be called once, then update should be used after,
- // in which case should consider the 'd3 way' and merge this with update,
- // but simply do this on enter... should try anoter example that way
- chart.build = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- graph
- .width(width)
- .height(height);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return graph;
- },
- callback: function(graph) {
- graph.dispatch.on('tooltipShow', showTooltip);
- graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
- //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
- nv.utils.windowResize(
- function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select(selector + ' svg')
- .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', graph.height()())
- .transition().duration(duration).call(graph);
- //.call(graph);
- }
- );
- }
- });
-
- return chart;
- };
-
-
- /*
- // moved to chart()
- chart.update = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return chart;
- };
- */
-
- chart.data = function(_) {
- if (!arguments.length) return data;
- data = _;
- return chart;
- };
-
- chart.selector = function(_) {
- if (!arguments.length) return selector;
- selector = _;
- return chart;
- };
-
- chart.duration = function(_) {
- if (!arguments.length) return duration;
- duration = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.xTickFormat = function(_) {
- if (!arguments.length) return graph.xAxis.tickFormat();
- graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return graph.yAxis.tickFormat();
- graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.xAxisLabel = function(_) {
- if (!arguments.length) return graph.xAxis.axisLabel();
- graph.xAxis.axisLabel(_);
- return chart;
- };
-
- chart.yAxisLabel = function(_) {
- if (!arguments.length) return graph.yAxis.axisLabel();
- graph.yAxis.axisLabel(_);
- return chart;
- };
-
- d3.rebind(chart, graph, 'x', 'y', 'staggerLabels');
-
- chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
- return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js
deleted file mode 100755
index 35da87e4..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js
+++ /dev/null
@@ -1,159 +0,0 @@
-
-// This is an attempt to make an extremely easy to use chart that is ready to go,
-// basically the chart models with the extra glue... Queuing, tooltips, automatic resize, etc.
-// I may make these more specific, like 'time series line with month end data points', etc.
-// or may make yet another layer of abstraction... common settings.
-nv.charts.line = function() {
- var selector = null,
- data = [],
- duration = 500,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- };
-
-
- var graph = nv.models.lineWithLegend(),
- showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatX = graph.xAxis.tickFormat(),
- formatY = graph.yAxis.tickFormat(),
- x = formatX(graph.x()(e.point)),
- y = formatY(graph.y()(e.point)),
- content = tooltip(e.series.key, x, y, e, graph);
-
- nv.tooltip.show([left, top], content);
- };
-
- //setting component defaults
- graph.xAxis.tickFormat(d3.format(',r'));
- graph.yAxis.tickFormat(d3.format(',.2f'));
-
-
- //TODO: consider a method more similar to how the models are built
- function chart() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
- return chart;
- }
-
-
- // This should always only be called once, then update should be used after,
- // in which case should consider the 'd3 way' and merge this with update,
- // but simply do this on enter... should try anoter example that way
- chart.build = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- graph
- .width(width)
- .height(height);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return graph;
- },
- callback: function(graph) {
- graph.dispatch.on('tooltipShow', showTooltip);
- graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
- //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
- window.onresize =
- function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select(selector + ' svg')
- .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', graph.height()())
- .call(graph);
- };
- }
- });
-
- return chart;
- };
-
-
- /*
- // moved to chart()
- chart.update = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return chart;
- };
- */
-
- chart.data = function(_) {
- if (!arguments.length) return data;
- data = _;
- return chart;
- };
-
- chart.selector = function(_) {
- if (!arguments.length) return selector;
- selector = _;
- return chart;
- };
-
- chart.duration = function(_) {
- if (!arguments.length) return duration;
- duration = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.xTickFormat = function(_) {
- if (!arguments.length) return graph.xAxis.tickFormat();
- graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return graph.yAxis.tickFormat();
- graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.xAxisLabel = function(_) {
- if (!arguments.length) return graph.xAxis.axisLabel();
- graph.xAxis.axisLabel(_);
- return chart;
- };
-
- chart.yAxisLabel = function(_) {
- if (!arguments.length) return graph.yAxis.axisLabel();
- graph.yAxis.axisLabel(_);
- return chart;
- };
-
- d3.rebind(chart, graph, 'x', 'y');
-
- chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
- return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js
deleted file mode 100755
index 592a2851..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js
+++ /dev/null
@@ -1,168 +0,0 @@
-
-// This is an attempt to make an extremely easy to use chart that is ready to go,
-// basically the chart models with the extra glue... Queuing, tooltips, automatic resize, etc.
-// I may make these more specific, like 'time series line with month end data points', etc.
-// or may make yet another layer of abstraction... common settings.
-nv.charts.lineChartDaily = function() {
- var selector = null,
- data = [],
- duration = 500,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- };
-
-
- var graph = nv.models.lineWithLegend()
- .x(function(d,i) { return i }),
- showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatX = graph.xAxis.tickFormat(),
- formatY = graph.yAxis.tickFormat(),
- x = formatX(graph.x()(e, e.pointIndex)),
- //x = formatX(graph.x()(e.point)),
- y = formatY(graph.y()(e.point)),
- content = tooltip(e.series.key, x, y, e, graph);
-
- nv.tooltip.show([left, top], content);
- };
-
- //setting component defaults
- //graph.xAxis.tickFormat(d3.format(',r'));
- graph.xAxis.tickFormat(function(d) {
- //return d3.time.format('%x')(new Date(d))
- //log(d, data[0].values[d]);
- return d3.time.format('%x')(new Date(data[0].values[d].x))
- });
-
- //graph.yAxis.tickFormat(d3.format(',.2f'));
- graph.yAxis.tickFormat(d3.format(',.2%'));
-
-
- //TODO: consider a method more similar to how the models are built
- function chart() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
- return chart;
- }
-
-
- // This should always only be called once, then update should be used after,
- // in which case should consider the 'd3 way' and merge this with update,
- // but simply do this on enter... should try anoter example that way
- chart.build = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- graph
- .width(width)
- .height(height);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return graph;
- },
- callback: function(graph) {
- graph.dispatch.on('tooltipShow', showTooltip);
- graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
- //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
- window.onresize =
- function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select(selector + ' svg')
- .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', graph.height()())
- .call(graph);
- };
- }
- });
-
- return chart;
- };
-
-
- /*
- // moved to chart()
- chart.update = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return chart;
- };
- */
-
- chart.data = function(_) {
- if (!arguments.length) return data;
- data = _;
- return chart;
- };
-
- chart.selector = function(_) {
- if (!arguments.length) return selector;
- selector = _;
- return chart;
- };
-
- chart.duration = function(_) {
- if (!arguments.length) return duration;
- duration = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.xTickFormat = function(_) {
- if (!arguments.length) return graph.xAxis.tickFormat();
- graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return graph.yAxis.tickFormat();
- graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.xAxisLabel = function(_) {
- if (!arguments.length) return graph.xAxis.axisLabel();
- graph.xAxis.axisLabel(_);
- return chart;
- };
-
- chart.yAxisLabel = function(_) {
- if (!arguments.length) return graph.yAxis.axisLabel();
- graph.yAxis.axisLabel(_);
- return chart;
- };
-
- d3.rebind(chart, graph, 'x', 'y');
-
- chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
- return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js
deleted file mode 100755
index 8444bbbd..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js
+++ /dev/null
@@ -1,177 +0,0 @@
-
-/***
- * This chart treats the X position as the INDEX, not the value
- * Each series at the same index MUST be the same x value for a valid representation
- * This is needed specifically for daily data where the gap between Friday and Monday
- * should be equal to the gap from Monday to Tuesday. (and of course, holidays can be
- * omitted without issue, as long as ALL series omit the same days).
- * An intentional side effect is that ALL ticks will land on actual data points,
- * so this visualization can also be used for Month End data points, showing Month End
- * ticks on the X axis
- ***/
-
-nv.charts.stackedAreaChart = function() {
- var selector = null,
- data = [],
- duration = 500,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- };
-
-
- var graph = nv.models.stackedAreaWithLegend()
- .x(function(d,i) { return i }),
- showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatX = graph.xAxis.tickFormat(),
- formatY = graph.yAxis.tickFormat(),
- x = formatX(graph.x()(e, e.pointIndex)),
- //x = formatX(graph.x()(e.point)),
- y = formatY(graph.y()(e.point)),
- content = tooltip(e.series.key, x, y, e, graph);
-
- nv.tooltip.show([left, top], content);
- };
-
- //setting component defaults
- //graph.xAxis.tickFormat(d3.format(',r'));
- graph.xAxis.tickFormat(function(d) {
- //return d3.time.format('%x')(new Date(d))
- //log(d, data[0].values[d]);
- return d3.time.format('%x')(new Date(data[0].values[d].x))
- });
-
- //graph.yAxis.tickFormat(d3.format(',.2f'));
- graph.yAxis.tickFormat(d3.format(',.2%'));
-
-
- //TODO: consider a method more similar to how the models are built
- function chart() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration)
- .call(graph); //consider using transition chaining like in the models
-
- return chart;
- }
-
-
- // This should always only be called once, then update should be used after,
- // in which case should consider the 'd3 way' and merge this with update,
- // but simply do this on enter... should try anoter example that way
- chart.build = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- graph
- .width(width)
- .height(height);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration)
- .call(graph);
-
- return graph;
- },
- callback: function(graph) {
- graph.dispatch.on('tooltipShow', showTooltip);
- graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
- //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
- window.onresize =
- function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select(selector + ' svg')
- .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', graph.height()())
- .call(graph);
- };
- }
- });
-
- return chart;
- };
-
-
- /*
- // moved to chart()
- chart.update = function() {
- if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
- d3.select(selector).select('svg')
- .datum(data)
- .transition().duration(duration).call(graph);
-
- return chart;
- };
- */
-
- chart.data = function(_) {
- if (!arguments.length) return data;
- data = _;
- return chart;
- };
-
- chart.selector = function(_) {
- if (!arguments.length) return selector;
- selector = _;
- return chart;
- };
-
- chart.duration = function(_) {
- if (!arguments.length) return duration;
- duration = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.xTickFormat = function(_) {
- if (!arguments.length) return graph.xAxis.tickFormat();
- graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return graph.yAxis.tickFormat();
- graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
- return chart;
- };
-
- chart.xAxisLabel = function(_) {
- if (!arguments.length) return graph.xAxis.axisLabel();
- graph.xAxis.axisLabel(_);
- return chart;
- };
-
- chart.yAxisLabel = function(_) {
- if (!arguments.length) return graph.yAxis.axisLabel();
- graph.yAxis.axisLabel(_);
- return chart;
- };
-
- d3.rebind(chart, graph, 'x', 'y');
-
- chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
- return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html
deleted file mode 100755
index 0a7bab8b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body>
-
- <div id="test1">
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/cumulativeLine.js"></script>
-<script>
-
-
-
-var cumulativeMonthEndTestData = [
- {
- key: "Long",
- values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.743156781239] , [ 1078030800000 , 29.597478802228] , [ 1080709200000 , 30.831697585341] , [ 1083297600000 , 28.054068024708] , [ 1085976000000 , 29.294079423832] , [ 1088568000000 , 30.269264061274] , [ 1091246400000 , 24.934526898906] , [ 1093924800000 , 24.265982759406] , [ 1096516800000 , 27.217794897473] , [ 1099195200000 , 30.802601992077] , [ 1101790800000 , 36.331003758254] , [ 1104469200000 , 43.142498700060] , [ 1107147600000 , 40.558263931958] , [ 1109566800000 , 42.543622385800] , [ 1112245200000 , 41.683584710331] , [ 1114833600000 , 36.375367302328] , [ 1117512000000 , 40.719688980730] , [ 1120104000000 , 43.897963036919] , [ 1122782400000 , 49.797033975368] , [ 1125460800000 , 47.085993935989] , [ 1128052800000 , 46.601972859745] , [ 1130734800000 , 41.567784572762] , [ 1133326800000 , 47.296923737245] , [ 1136005200000 , 47.642969612080] , [ 1138683600000 , 50.781515820954] , [ 1141102800000 , 52.600229204305] , [ 1143781200000 , 55.599684490628] , [ 1146369600000 , 57.920388436633] , [ 1149048000000 , 53.503593218971] , [ 1151640000000 , 53.522973979964] , [ 1154318400000 , 49.846822298548] , [ 1156996800000 , 54.721341614650] , [ 1159588800000 , 58.186236223191] , [ 1162270800000 , 63.908065540997] , [ 1164862800000 , 69.767285129367] , [ 1167541200000 , 72.534013373592] , [ 1170219600000 , 77.991819436573] , [ 1172638800000 , 78.143584404990] , [ 1175313600000 , 83.702398665233] , [ 1177905600000 , 91.140859312418] , [ 1180584000000 , 98.590960607028] , [ 1183176000000 , 96.245634754228] , [ 1185854400000 , 92.326364432615] , [ 1188532800000 , 97.068765332230] , [ 1191124800000 , 105.81025556260] , [ 1193803200000 , 114.38348777791] , [ 1196398800000 , 103.59604949810] , [ 1199077200000 , 101.72488429307] , [ 1201755600000 , 89.840147735028] , [ 1204261200000 , 86.963597532664] , [ 1206936000000 , 84.075505208491] , [ 1209528000000 , 93.170105645831] , [ 1212206400000 , 103.62838083121] , [ 1214798400000 , 87.458241365091] , [ 1217476800000 , 85.808374141319] , [ 1220155200000 , 93.158054469193] , [ 1222747200000 , 65.973252382360] , [ 1225425600000 , 44.580686638224] , [ 1228021200000 , 36.418977140128] , [ 1230699600000 , 38.727678144761] , [ 1233378000000 , 36.692674173387] , [ 1235797200000 , 30.033022809480] , [ 1238472000000 , 36.707532162718] , [ 1241064000000 , 52.191457688389] , [ 1243742400000 , 56.357883979735] , [ 1246334400000 , 57.629002180305] , [ 1249012800000 , 66.650985790166] , [ 1251691200000 , 70.839243432186] , [ 1254283200000 , 78.731998491499] , [ 1256961600000 , 72.375528540349] , [ 1259557200000 , 81.738387881630] , [ 1262235600000 , 87.539792394232] , [ 1264914000000 , 84.320762662273] , [ 1267333200000 , 90.621278391889] , [ 1270008000000 , 102.47144881651] , [ 1272600000000 , 102.79320353429] , [ 1275278400000 , 90.529736050479] , [ 1277870400000 , 76.580859994531] , [ 1280548800000 , 86.548979376972] , [ 1283227200000 , 81.879653334089] , [ 1285819200000 , 101.72550015956] , [ 1288497600000 , 107.97964852260] , [ 1291093200000 , 106.16240630785] , [ 1293771600000 , 114.84268599533] , [ 1296450000000 , 121.60793322282] , [ 1298869200000 , 133.41437346605] , [ 1301544000000 , 125.46646042904] , [ 1304136000000 , 129.76784954301] , [ 1306814400000 , 128.15798861044] , [ 1309406400000 , 121.92388706072] , [ 1312084800000 , 116.70036100870] , [ 1314763200000 , 88.367701837033] , [ 1317355200000 , 59.159665765725] , [ 1320033600000 , 79.793568139753] , [ 1322629200000 , 75.903834028417] , [ 1325307600000 , 72.704218209157] , [ 1327986000000 , 84.936990804097] , [ 1330491600000 , 93.388148670744]]
- },
- {
- key: "Short",
- values: [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , -0.049184266875945] , [ 1078030800000 , -0.10757569491991] , [ 1080709200000 , -0.075601531307242] , [ 1083297600000 , -0.061245277988149] , [ 1085976000000 , -0.068227316401169] , [ 1088568000000 , -0.11242758058502] , [ 1091246400000 , -0.074848439408270] , [ 1093924800000 , -0.11465623676497] , [ 1096516800000 , -0.24370633342416] , [ 1099195200000 , -0.21523268478893] , [ 1101790800000 , -0.37859370911822] , [ 1104469200000 , -0.41932884345151] , [ 1107147600000 , -0.45393735984802] , [ 1109566800000 , -0.50868179522598] , [ 1112245200000 , -0.48164396881207] , [ 1114833600000 , -0.41605962887194] , [ 1117512000000 , -0.48490348490240] , [ 1120104000000 , -0.55071036101311] , [ 1122782400000 , -0.67489170505394] , [ 1125460800000 , -0.74978070939342] , [ 1128052800000 , -0.86395050745343] , [ 1130734800000 , -0.78524898506764] , [ 1133326800000 , -0.99800440950854] , [ 1136005200000 , -1.1177951153878] , [ 1138683600000 , -1.4119975432964] , [ 1141102800000 , -1.2409959736465] , [ 1143781200000 , -1.3088936375431] , [ 1146369600000 , -1.5495785469683] , [ 1149048000000 , -1.1563414981293] , [ 1151640000000 , -0.87192471725994] , [ 1154318400000 , -0.84073995183442] , [ 1156996800000 , -0.88761892867370] , [ 1159588800000 , -0.81748513917485] , [ 1162270800000 , -1.2874081041274] , [ 1164862800000 , -1.9234702981339] , [ 1167541200000 , -1.8377768147648] , [ 1170219600000 , -2.7107654031830] , [ 1172638800000 , -2.6493268125418] , [ 1175313600000 , -3.0814553134551] , [ 1177905600000 , -3.8509837783574] , [ 1180584000000 , -5.2919167850718] , [ 1183176000000 , -5.2297750650773] , [ 1185854400000 , -3.9335668501451] , [ 1188532800000 , -2.3695525190114] , [ 1191124800000 , -2.3084243151854] , [ 1193803200000 , -3.0753680726738] , [ 1196398800000 , -2.2346609938962] , [ 1199077200000 , -3.0598810361615] , [ 1201755600000 , -1.8410154270386] , [ 1204261200000 , -1.6479442038620] , [ 1206936000000 , -1.9293858622780] , [ 1209528000000 , -3.0769590460943] , [ 1212206400000 , -4.2423933501421] , [ 1214798400000 , -2.6951491617768] , [ 1217476800000 , -2.8981825939957] , [ 1220155200000 , -2.9662727940324] , [ 1222747200000 , 0.21556750497498] , [ 1225425600000 , 2.6784995167088] , [ 1228021200000 , 4.1296711248958] , [ 1230699600000 , 3.7311068218734] , [ 1233378000000 , 4.7695330866954] , [ 1235797200000 , 5.1919133040990] , [ 1238472000000 , 4.1025856045660] , [ 1241064000000 , 2.8498939666225] , [ 1243742400000 , 2.8106017222851] , [ 1246334400000 , 2.8456526669963] , [ 1249012800000 , 0.65563070754298] , [ 1251691200000 , -0.30022343874633] , [ 1254283200000 , -1.1600358228964] , [ 1256961600000 , -0.26674408835052] , [ 1259557200000 , -1.4693389757812] , [ 1262235600000 , -2.7855421590594] , [ 1264914000000 , -1.2668244065703] , [ 1267333200000 , -2.5537804115548] , [ 1270008000000 , -4.9144552474502] , [ 1272600000000 , -6.0484408234831] , [ 1275278400000 , -3.3834349033750] , [ 1277870400000 , -0.46752826932523] , [ 1280548800000 , -1.8030186027963] , [ 1283227200000 , -0.99623230097881] , [ 1285819200000 , -3.3475370235594] , [ 1288497600000 , -3.8187026520342] , [ 1291093200000 , -4.2354146250353] , [ 1293771600000 , -5.6795404292885] , [ 1296450000000 , -6.2928665328172] , [ 1298869200000 , -6.8549277434419] , [ 1301544000000 , -6.9925308360918] , [ 1304136000000 , -8.3216548655839] , [ 1306814400000 , -7.7682867271435] , [ 1309406400000 , -6.9244213301058] , [ 1312084800000 , -5.7407624451404] , [ 1314763200000 , -2.1813149077927] , [ 1317355200000 , 2.9407596325999] , [ 1320033600000 , -1.1130607112134] , [ 1322629200000 , -2.0274822307752] , [ 1325307600000 , -1.8372559072154] , [ 1327986000000 , -4.0732815531148] , [ 1330491600000 , -6.4417038470291]]
- },
- {
- key: "Gross",
- values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.693972514363] , [ 1078030800000 , 29.489903107308] , [ 1080709200000 , 30.756096054034] , [ 1083297600000 , 27.992822746720] , [ 1085976000000 , 29.225852107431] , [ 1088568000000 , 30.156836480689] , [ 1091246400000 , 24.859678459498] , [ 1093924800000 , 24.151326522641] , [ 1096516800000 , 26.974088564049] , [ 1099195200000 , 30.587369307288] , [ 1101790800000 , 35.952410049136] , [ 1104469200000 , 42.723169856608] , [ 1107147600000 , 40.104326572110] , [ 1109566800000 , 42.034940590574] , [ 1112245200000 , 41.201940741519] , [ 1114833600000 , 35.959307673456] , [ 1117512000000 , 40.234785495828] , [ 1120104000000 , 43.347252675906] , [ 1122782400000 , 49.122142270314] , [ 1125460800000 , 46.336213226596] , [ 1128052800000 , 45.738022352292] , [ 1130734800000 , 40.782535587694] , [ 1133326800000 , 46.298919327736] , [ 1136005200000 , 46.525174496692] , [ 1138683600000 , 49.369518277658] , [ 1141102800000 , 51.359233230659] , [ 1143781200000 , 54.290790853085] , [ 1146369600000 , 56.370809889665] , [ 1149048000000 , 52.347251720842] , [ 1151640000000 , 52.651049262704] , [ 1154318400000 , 49.006082346714] , [ 1156996800000 , 53.833722685976] , [ 1159588800000 , 57.368751084016] , [ 1162270800000 , 62.620657436870] , [ 1164862800000 , 67.843814831233] , [ 1167541200000 , 70.696236558827] , [ 1170219600000 , 75.281054033390] , [ 1172638800000 , 75.494257592448] , [ 1175313600000 , 80.620943351778] , [ 1177905600000 , 87.289875534061] , [ 1180584000000 , 93.299043821956] , [ 1183176000000 , 91.015859689151] , [ 1185854400000 , 88.392797582470] , [ 1188532800000 , 94.699212813219] , [ 1191124800000 , 103.50183124741] , [ 1193803200000 , 111.30811970524] , [ 1196398800000 , 101.36138850420] , [ 1199077200000 , 98.665003256909] , [ 1201755600000 , 87.999132307989] , [ 1204261200000 , 85.315653328802] , [ 1206936000000 , 82.146119346213] , [ 1209528000000 , 90.093146599737] , [ 1212206400000 , 99.385987481068] , [ 1214798400000 , 84.763092203314] , [ 1217476800000 , 82.910191547323] , [ 1220155200000 , 90.191781675161] , [ 1222747200000 , 66.188819887335] , [ 1225425600000 , 47.259186154933] , [ 1228021200000 , 40.548648265024] , [ 1230699600000 , 42.458784966634] , [ 1233378000000 , 41.462207260082] , [ 1235797200000 , 35.224936113579] , [ 1238472000000 , 40.810117767284] , [ 1241064000000 , 55.041351655012] , [ 1243742400000 , 59.168485702020] , [ 1246334400000 , 60.474654847301] , [ 1249012800000 , 67.306616497709] , [ 1251691200000 , 70.539019993440] , [ 1254283200000 , 77.571962668603] , [ 1256961600000 , 72.108784451998] , [ 1259557200000 , 80.269048905849] , [ 1262235600000 , 84.754250235173] , [ 1264914000000 , 83.053938255703] , [ 1267333200000 , 88.067497980334] , [ 1270008000000 , 97.556993569060] , [ 1272600000000 , 96.744762710807] , [ 1275278400000 , 87.146301147104] , [ 1277870400000 , 76.113331725206] , [ 1280548800000 , 84.745960774176] , [ 1283227200000 , 80.883421033110] , [ 1285819200000 , 98.377963136001] , [ 1288497600000 , 104.16094587057] , [ 1291093200000 , 101.92699168281] , [ 1293771600000 , 109.16314556604] , [ 1296450000000 , 115.31506669000] , [ 1298869200000 , 126.55944572261] , [ 1301544000000 , 118.47392959295] , [ 1304136000000 , 121.44619467743] , [ 1306814400000 , 120.38970188330] , [ 1309406400000 , 114.99946573061] , [ 1312084800000 , 110.95959856356] , [ 1314763200000 , 86.186386929240] , [ 1317355200000 , 62.100425398325] , [ 1320033600000 , 78.680507428540] , [ 1322629200000 , 73.876351797642] , [ 1325307600000 , 70.866962301942] , [ 1327986000000 , 80.863709250982] , [ 1330491600000 , 86.946444823715]]
- },
- {
- key: "S&P 1500",
- values: [ [ 1025409600000 , -7.0674410638835] , [ 1028088000000 , -14.663359292964] , [ 1030766400000 , -14.104393060540] , [ 1033358400000 , -23.114477037218] , [ 1036040400000 , -16.774256687841] , [ 1038632400000 , -11.902028464000] , [ 1041310800000 , -16.883038668422] , [ 1043989200000 , -19.104223676831] , [ 1046408400000 , -20.420523282736] , [ 1049086800000 , -19.660555051587] , [ 1051675200000 , -13.106911231646] , [ 1054353600000 , -8.2448460302143] , [ 1056945600000 , -7.0313058730976] , [ 1059624000000 , -5.1485118700389] , [ 1062302400000 , -3.0011028761469] , [ 1064894400000 , -4.1367265281467] , [ 1067576400000 , 1.5425209565025] , [ 1070168400000 , 2.7673533607299] , [ 1072846800000 , 7.7077114755360] , [ 1075525200000 , 9.7565015112434] , [ 1078030800000 , 11.396888609473] , [ 1080709200000 , 10.013964745578] , [ 1083297600000 , 8.0558890950562] , [ 1085976000000 , 9.6081966657458] , [ 1088568000000 , 11.918590426432] , [ 1091246400000 , 7.9945345523982] , [ 1093924800000 , 8.3201276776796] , [ 1096516800000 , 9.8283954846342] , [ 1099195200000 , 11.527125859650] , [ 1101790800000 , 16.413657596527] , [ 1104469200000 , 20.393798297928] , [ 1107147600000 , 17.456308413907] , [ 1109566800000 , 20.087778400999] , [ 1112245200000 , 17.988336990817] , [ 1114833600000 , 15.378490151331] , [ 1117512000000 , 19.474322935730] , [ 1120104000000 , 20.013851070354] , [ 1122782400000 , 24.749943726975] , [ 1125460800000 , 23.558710274826] , [ 1128052800000 , 24.558915040889] , [ 1130734800000 , 22.355860488034] , [ 1133326800000 , 27.138026265756] , [ 1136005200000 , 27.202220808591] , [ 1138683600000 , 31.219437344964] , [ 1141102800000 , 31.392355525125] , [ 1143781200000 , 33.373099232542] , [ 1146369600000 , 35.095277582309] , [ 1149048000000 , 30.923356507615] , [ 1151640000000 , 31.083717332561] , [ 1154318400000 , 31.290690671561] , [ 1156996800000 , 34.247769216679] , [ 1159588800000 , 37.411073177620] , [ 1162270800000 , 42.079177096411] , [ 1164862800000 , 44.978191659648] , [ 1167541200000 , 46.713271025310] , [ 1170219600000 , 49.203892437699] , [ 1172638800000 , 46.684723471826] , [ 1175313600000 , 48.385458973500] , [ 1177905600000 , 54.660197840305] , [ 1180584000000 , 60.311838415602] , [ 1183176000000 , 57.583282204682] , [ 1185854400000 , 52.425398898751] , [ 1188532800000 , 54.663538086985] , [ 1191124800000 , 60.181844325224] , [ 1193803200000 , 62.877219773621] , [ 1196398800000 , 55.760611512951] , [ 1199077200000 , 54.735280367784] , [ 1201755600000 , 45.495912959474] , [ 1204261200000 , 40.934919015876] , [ 1206936000000 , 40.303777633187] , [ 1209528000000 , 47.403740368773] , [ 1212206400000 , 49.951960898839] , [ 1214798400000 , 37.534590035098] , [ 1217476800000 , 36.405758293321] , [ 1220155200000 , 38.545373001858] , [ 1222747200000 , 26.106358664455] , [ 1225425600000 , 4.2658006768744] , [ 1228021200000 , -3.5517839867557] , [ 1230699600000 , -2.0878920761513] , [ 1233378000000 , -10.408879093829] , [ 1235797200000 , -19.924242196038] , [ 1238472000000 , -12.906491912782] , [ 1241064000000 , -3.9774866468346] , [ 1243742400000 , 1.0319171601402] , [ 1246334400000 , 1.3109350357718] , [ 1249012800000 , 9.1668309061935] , [ 1251691200000 , 13.121178985954] , [ 1254283200000 , 17.578680237511] , [ 1256961600000 , 14.971294355085] , [ 1259557200000 , 21.551327027338] , [ 1262235600000 , 24.592328423819] , [ 1264914000000 , 20.158087829555] , [ 1267333200000 , 24.135661929185] , [ 1270008000000 , 31.815205405903] , [ 1272600000000 , 34.389524768466] , [ 1275278400000 , 23.785555857522] , [ 1277870400000 , 17.082756649072] , [ 1280548800000 , 25.248007727100] , [ 1283227200000 , 19.415179069165] , [ 1285819200000 , 30.413636349327] , [ 1288497600000 , 35.357952964550] , [ 1291093200000 , 35.886413535859] , [ 1293771600000 , 45.003601951959] , [ 1296450000000 , 48.274893564020] , [ 1298869200000 , 53.562864914648] , [ 1301544000000 , 54.108274337412] , [ 1304136000000 , 58.618190111927] , [ 1306814400000 , 56.806793965598] , [ 1309406400000 , 54.135477252994] , [ 1312084800000 , 50.735258942442] , [ 1314763200000 , 42.208170945813] , [ 1317355200000 , 31.617916826724] , [ 1320033600000 , 46.492005006737] , [ 1322629200000 , 46.203116922145] , [ 1325307600000 , 47.541427643137] , [ 1327986000000 , 54.518998440993] , [ 1330491600000 , 61.099720234693]]
- }
-].map(function(line) {
- line.values = line.values.map(function(d) { return {x: d[0], y: d[1]/100 }});
- return line;
-});
-
-
-
-
-
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.cumulativeLine()
- .width(width)
- .height(height)
- .color(d3.scale.category10().range())
- //.margin({top: 20, right: 10, bottom: 50, left: 80})
-
- //chart.yAxis.axisLabel('Cumulative');
- //chart.xAxis.axisLabel('Date');
-
- //these are specific for a chart containing only month end data points
- chart.xAxis.scale(d3.time.scale());
- chart.xAxis.ticks(d3.time.monthEnds, 12); //need to figure out the best way to calculate the step here... preferably without knowledge of the data domain
-
- chart.yAxis.tickFormat(d3.format(',%'));
- chart.xAxis.tickFormat(function(d) {
- return d3.time.format('%x')(new Date(d))
- });
-
- //chart.xaxis.tickFormat(d3.format(".02f"))
-
- var svg = d3.select('#test1 svg')
- .attr('width', width)
- .attr('height', height)
- .datum(cumulativeMonthEndTestData)
-
- svg.transition().duration(500).call(chart);
-
- return chart;
- },
- callback: function(graph) {
-
- graph.dispatch.on('tooltipShow', function(e) {
- var offsetElement = document.getElementById("test1"),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatterY = d3.format(",.2%"),
- formatterX = function(d) {
- return d3.time.format('%x')(new Date(d))
- };
-
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatterY(graph.y()(e.point)) + ' on ' + formatterX(graph.x()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content);
- });
-
- graph.dispatch.on('tooltipHide', function(e) {
- nv.tooltip.cleanup();
- });
-
-
-
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40,
- margin = graph.margin();
-
-
- if (width < margin.left + margin.right + 20)
- width = margin.left + margin.right + 20;
-
- if (height < margin.top + margin.bottom + 20)
- height = margin.top + margin.bottom + 20;
-
-
- graph
- .width(width)
- .height(height);
-
- d3.select('#test1 svg')
- .attr('width', width)
- .attr('height', height)
- .call(graph);
-
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js
deleted file mode 100755
index 127d9407..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js
+++ /dev/null
@@ -1,334 +0,0 @@
-
-nv.models.cumulativeLine = function() {
- var margin = {top: 30, right: 20, bottom: 30, left: 60},
- getWidth = function() { return 960 },
- getHeight = function() { return 500 },
- color = d3.scale.category20().range(),
- dotRadius = function() { return 2.5 },
- getX = function(d) { return d.x },
- getY = function(d) { return d.y },
- id = Math.floor(Math.random() * 10000), //Create semi-unique ID incase user doesn't select one
- showRescaleToggle = true,
- rescaleY = true;
-
- var x = d3.scale.linear(),
- dx = d3.scale.linear(),
- y = d3.scale.linear(),
- xAxis = nv.models.axis().scale(x).orient('bottom'),
- yAxis = nv.models.axis().scale(y).orient('left'),
- legend = nv.models.legend().height(30),
- controls = nv.models.legend().height(30),
- lines = nv.models.line(),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
- index = {i: 0, x: 0};
-
- //TODO: let user select default
- var controlsData = [
- { key: 'Re-scale y-axis' }
- ];
-
- var indexDrag = d3.behavior.drag()
- .on('dragstart', dragStart)
- .on('drag', dragMove)
- .on('dragend', dragEnd);
-
- function dragStart(d,i) {}
-
- function dragMove(d,i) {
- d.x += d3.event.dx;
- d.i = Math.round(dx.invert(d.x));
-
- //d3.transition(d3.select('.chart-' + id)).call(chart);
- d3.select(this).attr("transform", "translate(" + dx(d.i) + ",0)");
- }
-
- function dragEnd(d,i) {
- d3.transition(d3.select('.chart-' + id)).call(chart);
- }
-
-
- function chart(selection) {
- selection.each(function(data) {
- var width = getWidth(),
- height = getHeight(),
- availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom;
-
- var series = indexify(index.i, data);
-
- var seriesData = series
- .filter(function(d) { return !rescaleY || !d.disabled }) // only filter out if rescaling y axis
- .map(function(d) { return d.values });
-
-
- x .domain(d3.extent(d3.merge(seriesData), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
- dx .domain([0, data[0].values.length - 1]) //Assumes all series have same length
- .range([0, availableWidth])
- .clamp(true);
-
- y .domain(d3.extent(d3.merge(seriesData), function(d) { return d.y } ))
- .range([availableHeight, 0]);
-
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var wrap = d3.select(this).classed('chart-' + id, true).selectAll('g.wrap').data([series]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 cumulativeLine').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'linesWrap');
- gEnter.append('g').attr('class', 'legendWrap');
- gEnter.append('g').attr('class', 'controlsWrap');
-
-
-
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height();
-
- var g = wrap.select('g')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- legend.width(width/2 - margin.right);
-
- g.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
- .call(legend);
-
- if (showRescaleToggle) {
- controls.width(140).color(['#444', '#444', '#444']);
- g.select('.controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
-
- var linesWrap = g.select('.linesWrap')
- .datum(series.filter(function(d) { return !d.disabled }))
-
-
- d3.transition(linesWrap).call(lines);
-
-
- var indexLine = linesWrap.selectAll('.indexLine')
- .data([index]);
- indexLine.enter().append('rect').attr('class', 'indexLine')
- .attr('width', 3)
- .attr('x', -2)
- .attr('fill', 'red')
- .attr('fill-opacity', .5)
- .call(indexDrag)
-
- indexLine
- .attr("transform", function(d) { return "translate(" + dx(d.i) + ",0)" })
- .attr('height', availableHeight)
-
-
- xAxis
- .domain(x.domain())
- .range(x.range())
- .ticks( width / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- yAxis
- .domain(y.domain())
- .range(y.range())
- .ticks( height / 36 )
- .tickSize(-availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
-
-
-
- // ********** EVENT LISTENERS **********
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
- /*
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
-
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
- */
-
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
- rescaleY = !d.disabled;
-
- //console.log(d,i,arguments);
-
- selection.transition().call(chart);
- });
-
-
-
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow({
- point: e.point,
- series: e.series,
- pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
- seriesIndex: e.seriesIndex,
- pointIndex: e.pointIndex
- });
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
-
- });
-
- return chart;
- }
-
-
-
- // ********** FUNCTIONS **********
-
- /* Normalize the data according to an index point. */
- function indexify(idx, data) {
- return data.map(function(line, i) {
- var v = getY(line.values[idx], idx);
-
- return {
- key: line.key,
- values: line.values.map(function(point, pointIndex) {
- return {'x': getX(point, pointIndex), 'y': (getY(point, pointIndex) - v) / (1 + v) };
- }),
- disabled: line.disabled,
- hover: line.hover
- /*
- if (v < -.9) {
- //if a series loses more than 100%, calculations fail.. anything close can cause major distortion (but is mathematically currect till it hits 100)
- }
- */
- };
- });
- };
-
-
-
-
- // ********** PUBLIC ACCESSORS **********
-
- chart.dispatch = dispatch;
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- //lines.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- //lines.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- /*
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
- */
-
- chart.width = function(_) {
- if (!arguments.length) return getWidth;
- getWidth = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return getHeight;
- getHeight = d3.functor(_);
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- legend.color(_);
- return chart;
- };
-
- chart.dotRadius = function(_) {
- if (!arguments.length) return dotRadius;
- dotRadius = d3.functor(_);
- lines.dotRadius = _;
- return chart;
- };
-
- chart.showRescaleToggle = function(_) {
- if (!arguments.length) return showRescaleToggle;
- showRescaleToggle = _;
- return chart;
- };
-
-
- // Expose the x-axis' tickFormat method.
- //chart.xAxis = {};
- //d3.rebind(chart.xAxis, xAxis, 'tickFormat');
- chart.xAxis = xAxis;
-
- // Expose the y-axis' tickFormat method.
- //chart.yAxis = {};
- //d3.rebind(chart.yAxis, yAxis, 'tickFormat');
- chart.yAxis = yAxis;
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html
deleted file mode 100755
index f23732cc..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#wrapper {
- width: 960;
- padding: 100px;
-}
-
-#chart1 {
- width: 960px;
-}
-
-#chart1 svg{
- height: 500px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 10px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
- <div id="wrapper">
-
- <div id="chart1">
- <svg></svg>
- </div>
-
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/discreteBar.js"></script>
-<script src="../src/models/discreteBarChartWithEnabledTooltip.js"></script>
-<script>
-
-
-
-
-
-historicalBarChart = [
- {
- key: "Cumulative Return",
- values: [
- {
- "label" : "CDS / Options" ,
- "value" : -29.765957771107
- } ,
- {
- "label" : "Cash" ,
- "value" : 0
- } ,
- {
- "label" : "Corporate Bonds" ,
- "value" : 32.807804682612
- } ,
- {
- "label" : "Equity" ,
- "value" : 196.45946739256
- } ,
- {
- "label" : "Index Futures" ,
- "value" : 0.19434030906893
- } ,
- {
- "label" : "Options" ,
- "value" : -98.079782601442
- } ,
- {
- "label" : "Preferred" ,
- "value" : -13.925743130903
- } ,
- {
- "label" : "Not Available" ,
- "value" : -5.1387322875705
- }
- ]
- }
-];
-
-
-
-
-nv.addGraph(function() {
- var chart = nv.models.discreteBarChart()
- .x(function(d) { return d.label })
- .y(function(d) { return d.value })
- .staggerLabels(true)
- //.staggerLabels(historicalBarChart[0].values.length > 8)
- .tooltips(true)
- .showValues(true)
-
-
- d3.select('#chart1 svg')
- .datum(historicalBarChart)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-
-</script>
-</body> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js
deleted file mode 100755
index d4465cac..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js
+++ /dev/null
@@ -1,222 +0,0 @@
-
-nv.models.discreteBarChart = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- width = null,
- height = null,
- color = d3.scale.category20().range(),
- staggerLabels = false,
- tooltips = true,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + x + '</h3>' +
- '<p>' + y + '</p>'
- };
-
-
- var discretebar = nv.models.discreteBar(),
- x = discretebar.xScale(),
- y = discretebar.yScale(),
- xAxis = nv.models.axis().scale(x).orient('bottom').highlightZero(false).showMaxMin(false),
- yAxis = nv.models.axis().scale(y).orient('left'),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- xAxis.tickFormat(function(d) { return d });
- yAxis.tickFormat(d3.format(',.1f'));
-
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(discretebar.x()(e.point)),
- y = yAxis.tickFormat()(discretebar.y()(e.point)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
-
- //TODO: let user select default
- var controlsData = [
- { key: 'Grouped' },
- { key: 'Stacked', disabled: true }
- ];
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- discretebar
- .width(availableWidth)
- .height(availableHeight);
-
-
- var wrap = container.selectAll('g.wrap.discreteBarWithAxes').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 discreteBarWithAxes').append('g');
- var defsEnter = gEnter.append('defs');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'barsWrap');
-
-
-
- var g = wrap.select('g');
-
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- var barsWrap = g.select('.barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
-
- d3.transition(barsWrap).call(discretebar);
-
-
- defsEnter.append('clipPath')
- .attr('id', 'x-label-clip-' + discretebar.id())
- .append('rect')
-
- g.select('#x-label-clip-' + discretebar.id() + ' rect')
- .attr('width', x.rangeBand() * (staggerLabels ? 2 : 1))
- .attr('height', 16)
- .attr('x', -x.rangeBand() / (staggerLabels ? 1 : 2 ));
-
- /*
- var evenLabelClips = defsEnter.append('clipPath')
- .attr('id', 'x-label-clip-even-' + discretebar.id())
- .selectAll('rect')
- .data(function(d) { return d[0].values.filter(function(d,i) { return i % 2 === 0 }) });
-
- evenLabelClips.enter().append('rect')
- .attr('width', x.rangeBand())
- .attr('height', 32)
- .attr('y', y.range()[0])
- .attr('x', function(d,i) { return x(discretebar.x()(d,i)) });
-
- var oddLabelClips = defsEnter.append('clipPath')
- .attr('id', 'x-label-clip-odd-' + discretebar.id())
- .selectAll('rect')
- .data(function(d) { return d[0].values.filter(function(d,i) { return i % 2 === 1 }) });
-
- oddLabelClips.enter().append('rect')
- .attr('width', x.rangeBand())
- .attr('height', 16)
- .attr('y', y.range()[0] + 16 + (staggerLabels ? 12: 0))
- .attr('x', function(d,i) { return x(discretebar.x()(d,i)) });
- */
-
-
-
- xAxis
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + (y.range()[0] + (discretebar.showValues() ? 16 : 0)) + ')')
- //d3.transition(g.select('.x.axis'))
- g.select('.x.axis').transition().duration(0)
- .call(xAxis);
-
-
- var xTicks = g.select('.x.axis').selectAll('g');
-
- if (staggerLabels)
- xTicks
- .selectAll('text')
- .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '0' : '12') + ')' })
-
- xTicks
- .selectAll('text')
- .attr('clip-path', function(d,i,j) { return 'url(#x-label-clip-' + discretebar.id() + ')' });
-
-
- yAxis
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
- discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
- if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, that.parentNode) } ); // TODO: maybe merge with above?
-
- discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
- if (tooltips) dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- //TODO: decide if this makes sense to add into all the models for ease of updating (updating without needing the selection)
- chart.update = function() { selection.transition().call(chart); };
- chart.container = this; // I need a reference to the container in order to have outside code check if the chart is visible or not
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.discretebar = discretebar; // really just makign the accessible for discretebar.dispatch, may rethink slightly
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'id', 'showValues', 'valueFormat');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- discretebar.color(_);
- return chart;
- };
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html
deleted file mode 100755
index fc7ef621..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/discreteBar.js"></script>
-<script src="../src/models/discreteBarWithAxes.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-
-historicalBarChart = [
- {
- key: "Cumulative Return",
- values: [
- {
- "label" : "CDS / Options" ,
- "value" : -29.765957771107
- } ,
- {
- "label" : "Cash" ,
- "value" : 0
- } ,
- {
- "label" : "Corporate Bonds" ,
- "value" : 32.807804682612
- } ,
- {
- "label" : "Equity" ,
- "value" : 196.45946739256
- } ,
- {
- "label" : "Index Futures" ,
- "value" : 0.19434030906893
- } ,
- {
- "label" : "Options" ,
- "value" : -98.079782601442
- } ,
- {
- "label" : "Preferred" ,
- "value" : -13.925743130903
- } ,
- {
- "label" : "Not Available" ,
- "value" : -5.1387322875705
- }
- ]
- }
-];
-
-
-
-
-
-
-var selector = '#chart1',
- chart = nv.models.discreteBarWithAxes()
- .color(d3.scale.category10().range())
- .x(function(d) { return d.label })
- .y(function(d) { return d.value }),
- data = historicalBarChart,
- xTickFormat = function(d) { return d },
- yTickFormat = d3.format(',.2f'),
- xAxisLabel = null,
- yAxisLabel = null,
- duration = 500;
-
-nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- chart
- .width(width)
- .height(height)
- .staggerLabels(true);
-
- chart.xAxis
- .tickFormat(xTickFormat);
-
- chart.yAxis
- .tickFormat(yTickFormat)
- .axisLabel(yAxisLabel);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(chart);
-
- return chart;
- },
- callback: function(chart) {
- var showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatX = chart.xAxis.tickFormat();
-
- // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
- // ex. daily data without weekends, x is the index, while you want the date
- var content = '<h3>' + formatX(chart.x()(e.point)) + '</h3>' +
- '<p>' +
- formatY(chart.y()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
- };
-
- chart.dispatch.on('tooltipShow', showTooltip);
- chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- window.onresize= function() {
- // now that width and height are functions, should be automatic..of course you can always override them
-
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .transition().duration(duration)
- .call(chart);
-
-/*
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .call(chart);
-*/
- };
- }
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js
deleted file mode 100755
index 558efaf5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js
+++ /dev/null
@@ -1,152 +0,0 @@
-
-nv.models.discreteBarWithAxes = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- width = function() { return 960 },
- height = function() { return 500 },
- color = d3.scale.category20().range(),
- staggerLabels = false;
-
- var discretebar = nv.models.discreteBar(),
- x = discretebar.xScale(),
- y = discretebar.yScale(),
- xAxis = nv.models.axis().scale(x).orient('bottom').highlightZero(false),
- yAxis = nv.models.axis().scale(y).orient('left'),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- //TODO: let user select default
- var controlsData = [
- { key: 'Grouped' },
- { key: 'Stacked', disabled: true }
- ];
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width() - margin.left - margin.right,
- availableHeight = height() - margin.top - margin.bottom;
-
- var seriesData = data.filter(function(d) { return !d.disabled })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: discretebar.x()(d,i), y: discretebar.y()(d,i) }
- })
- });
-
-
-
- discretebar
- .width(availableWidth)
- .height(availableHeight);
-
-
- var wrap = d3.select(this).selectAll('g.wrap.discreteBarWithAxes').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 discreteBarWithAxes').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'barsWrap');
-
-
-
- var g = wrap.select('g');
-
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- var barsWrap = g.select('.barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
-
- d3.transition(barsWrap).call(discretebar);
-
-
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
-
- var xTicks = g.select('.x.axis').selectAll('g');
-
- if (staggerLabels)
- xTicks
- .selectAll('text')
- .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '0' : '12') + ')' })
-
- /*
- xTicks.filter(function(d,i) {
- return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
- })
- .selectAll('line, text')
- .style('opacity', 0)
- */
-
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
- discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'clipEdge', 'id');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = d3.functor(_);
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- discretebar.color(_);
- return chart;
- };
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html
deleted file mode 100755
index 84f0c705..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithLegend.js"></script>
-<script src="../src/charts/lineChart.js"></script>
-<script>
-
-
-
-nv.charts.line()
- .selector('#chart1')
- .data(sinAndCos())
- .y(function(d) { return d.voltage })
- .yAxisLabel('Voltage (v)')
- .build();
-
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [],
- r1 = Math.random(),
- r2 = Math.random();
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, voltage: r2 * Math.sin(i/10)});
- cos.push({x: i, voltage: r1 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html
deleted file mode 100755
index 2ef09544..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithLegend.js"></script>
-<script src="../src/charts/lineChartDaily.js"></script>
-<script>
-
-
-
-var cumulativeDailyTestData = [
- {
- key: "Actual Return" ,
- values: [ [ 1317614400000 , -1.4475640131507] , [ 1317700800000 , -0.50785241139112] , [ 1317787200000 , 1.2232844878178] , [ 1317873600000 , 2.3277976069464] , [ 1317960000000 , 0.87828538009238] , [ 1318046400000 , 0.87828538009238] , [ 1318132800000 , 0.87828538009238] , [ 1318219200000 , 2.8821394715025] , [ 1318305600000 , 3.0600496997189] , [ 1318392000000 , 4.1615801183747] , [ 1318478400000 , 3.8560316339337] , [ 1318564800000 , 4.2624578565545] , [ 1318651200000 , 4.2624578565545] , [ 1318737600000 , 4.2624578565545] , [ 1318824000000 , 2.8760203477064] , [ 1318910400000 , 4.2802792900813] , [ 1318996800000 , 3.5644216125341] , [ 1319083200000 , 3.8267230522883] , [ 1319169600000 , 4.5897674196334] , [ 1319256000000 , 4.5897674196334] , [ 1319342400000 , 4.5897674196334] , [ 1319428800000 , 6.1435681595838] , [ 1319515200000 , 4.6773634913148] , [ 1319601600000 , 5.5686828861057] , [ 1319688000000 , 8.6510229437140] , [ 1319774400000 , 8.4035095885256] , [ 1319860800000 , 8.4035095885256] , [ 1319947200000 , 8.4035095885256] , [ 1320033600000 , 5.9304228949775] , [ 1320120000000 , 4.6694048881845] , [ 1320206400000 , 5.5755229192740] , [ 1320292800000 , 5.9596062543264] , [ 1320379200000 , 5.8750173069172] , [ 1320465600000 , 5.8750173069172] , [ 1320552000000 , 5.8750173069172] , [ 1320642000000 , 6.2705601567990] , [ 1320728400000 , 6.4422984536501] , [ 1320814800000 , 3.7696655204518] , [ 1320901200000 , 3.9256502879070] , [ 1320987600000 , 4.9896568610477] , [ 1321074000000 , 4.9896568610477] , [ 1321160400000 , 4.9896568610477] , [ 1321246800000 , 4.5101581898062] , [ 1321333200000 , 5.1852026589187] , [ 1321419600000 , 4.1412722333259] , [ 1321506000000 , 2.6646651357988] , [ 1321592400000 , 2.5391402402758] , [ 1321678800000 , 2.5391402402758] , [ 1321765200000 , 2.5391402402758] , [ 1321851600000 , 1.4480191418839] , [ 1321938000000 , 1.1851353770435] , [ 1322024400000 , -0.0110471601546] , [ 1322110800000 , -0.0110471601546] , [ 1322197200000 , -0.2607790366052] , [ 1322283600000 , -0.2607790366052] , [ 1322370000000 , -0.2607790366052] , [ 1322456400000 , -0.2993491727393] , [ 1322542800000 , -0.8721365094791] , [ 1322629200000 , 1.3826624677829] , [ 1322715600000 , 1.1413888639683] , [ 1322802000000 , 1.1916488459919] , [ 1322888400000 , 1.1916488459919] , [ 1322974800000 , 1.1916488459919] , [ 1323061200000 , 1.6640075295100] , [ 1323147600000 , 1.4333447279330] , [ 1323234000000 , 1.5756501095903] , [ 1323320400000 , 0.1566240837346] , [ 1323406800000 , 1.1957087351357] , [ 1323493200000 , 1.1957087351357] , [ 1323579600000 , 1.1957087351357] , [ 1323666000000 , 0.1529279857726] , [ 1323752400000 , -0.4379146622043] , [ 1323838800000 , -1.6307803651431] , [ 1323925200000 , -1.8097182178695] , [ 1324011600000 , -1.6612784009542] , [ 1324098000000 , -1.6612784009542] , [ 1324184400000 , -1.6612784009542] , [ 1324270800000 , -2.7123628804330] , [ 1324357200000 , -0.9156099608796] , [ 1324443600000 , -1.3441101479801] , [ 1324530000000 , -0.4285924644141] , [ 1324616400000 , 0.0289302220607] , [ 1324702800000 , 0.0289302220607] , [ 1324789200000 , 0.0289302220607] , [ 1324875600000 , 0.0289302220607] , [ 1324962000000 , -0.1680182906741] , [ 1325048400000 , -1.1735228321827] , [ 1325134800000 , -0.4819867447246] , [ 1325221200000 , -0.5667569440908] , [ 1325307600000 , -0.5667569440908] , [ 1325394000000 , -0.5667569440908] , [ 1325480400000 , -0.5667569440908] , [ 1325566800000 , 0.6031318427099] , [ 1325653200000 , 0.5247518205078] , [ 1325739600000 , 0.8575949798359] , [ 1325826000000 , 0.9983061584652] , [ 1325912400000 , 0.9983061584652] , [ 1325998800000 , 0.9983061584652] , [ 1326085200000 , 1.4032665222444] , [ 1326171600000 , 1.8976558759597] , [ 1326258000000 , 2.1532858156245] , [ 1326344400000 , 2.3864413393018] , [ 1326430800000 , 1.8718218939651] , [ 1326517200000 , 1.8718218939651] , [ 1326603600000 , 1.8718218939651] , [ 1326690000000 , 1.8718218939651] , [ 1326776400000 , 1.7604328445901] , [ 1326862800000 , 2.6068832572249] , [ 1326949200000 , 3.0615220945767] , [ 1327035600000 , 2.9348684033730] , [ 1327122000000 , 2.9348684033730] , [ 1327208400000 , 2.9348684033730] , [ 1327294800000 , 3.1172684824147] , [ 1327381200000 , 2.9842827363639] , [ 1327467600000 , 3.2794961257832] , [ 1327554000000 , 3.2797701308936] , [ 1327640400000 , 3.7651100285428] , [ 1327726800000 , 3.7651100285428] , [ 1327813200000 , 3.7651100285428] , [ 1327899600000 , 3.4448337693528] , [ 1327986000000 , 3.4404569794837] , [ 1328072400000 , 4.1401512200522] , [ 1328158800000 , 4.6727018946707] , [ 1328245200000 , 5.2867004865128] , [ 1328331600000 , 5.2867004865128] , [ 1328418000000 , 5.2867004865128] , [ 1328504400000 , 5.3018888374398] , [ 1328590800000 , 5.1280880489145] , [ 1328677200000 , 5.4871623117969] , [ 1328763600000 , 5.9003310858354] , [ 1328850000000 , 5.0814183419277] , [ 1328936400000 , 5.0814183419277] , [ 1329022800000 , 5.0814183419277] , [ 1329109200000 , 5.2642419624752] , [ 1329195600000 , 4.8821179791227] , [ 1329282000000 , 4.5757484771430] , [ 1329368400000 , 5.3842423229681] , [ 1329454800000 , 5.8228981100571] , [ 1329541200000 , 5.8228981100571] , [ 1329627600000 , 5.8228981100571] , [ 1329714000000 , 5.8228981100571] , [ 1329800400000 , 5.9363351939783] , [ 1329886800000 , 5.8228361646391] , [ 1329973200000 , 6.0558840413572] , [ 1330059600000 , 5.9445876811563] , [ 1330146000000 , 5.9445876811563] , [ 1330232400000 , 5.9445876811563] , [ 1330318800000 , 6.1681584877353] , [ 1330405200000 , 6.3035995639854] , [ 1330491600000 , 5.6363506399283]]
- },
- {
- key: "Average Exposure Return" ,
- values: [ [ 1317614400000 , -1.4090582224638] , [ 1317700800000 , -0.33947919866996] , [ 1317787200000 , 1.3209670502436] , [ 1317873600000 , 2.4188464341509] , [ 1317960000000 , 1.0255951936249] , [ 1318046400000 , 1.0255951936249] , [ 1318132800000 , 1.0255951936249] , [ 1318219200000 , 2.6899883270271] , [ 1318305600000 , 2.8018416928856] , [ 1318392000000 , 3.8403942243892] , [ 1318478400000 , 3.5468986968984] , [ 1318564800000 , 4.0243375950513] , [ 1318651200000 , 4.0243375950513] , [ 1318737600000 , 4.0243375950513] , [ 1318824000000 , 2.4581180602808] , [ 1318910400000 , 4.1316695396727] , [ 1318996800000 , 3.1991658519074] , [ 1319083200000 , 3.3754265861117] , [ 1319169600000 , 4.4804434889521] , [ 1319256000000 , 4.4804434889521] , [ 1319342400000 , 4.4804434889521] , [ 1319428800000 , 6.0509760703797] , [ 1319515200000 , 4.5220450819341] , [ 1319601600000 , 5.4035696887952] , [ 1319688000000 , 8.5378579094975] , [ 1319774400000 , 8.3016796632707] , [ 1319860800000 , 8.3016796632707] , [ 1319947200000 , 8.3016796632707] , [ 1320033600000 , 6.2091232673734] , [ 1320120000000 , 4.6685577522987] , [ 1320206400000 , 5.6873278908841] , [ 1320292800000 , 6.1826552943765] , [ 1320379200000 , 6.0959959548027] , [ 1320465600000 , 6.0959959548027] , [ 1320552000000 , 6.0959959548027] , [ 1320642000000 , 6.4745420383103] , [ 1320728400000 , 6.6925431963260] , [ 1320814800000 , 4.0430621035979] , [ 1320901200000 , 4.2956347789229] , [ 1320987600000 , 5.5492974385965] , [ 1321074000000 , 5.5492974385965] , [ 1321160400000 , 5.5492974385965] , [ 1321246800000 , 5.0642000641245] , [ 1321333200000 , 5.6666120553597] , [ 1321419600000 , 4.6202390103380] , [ 1321506000000 , 3.0124066565603] , [ 1321592400000 , 2.8681458220660] , [ 1321678800000 , 2.8681458220660] , [ 1321765200000 , 2.8681458220660] , [ 1321851600000 , 1.6604177140523] , [ 1321938000000 , 1.3391308252236] , [ 1322024400000 , -0.1027204753207] , [ 1322110800000 , -0.1027204753207] , [ 1322197200000 , -0.4062707232214] , [ 1322283600000 , -0.4062707232214] , [ 1322370000000 , -0.4062707232214] , [ 1322456400000 , 0.5651520529190] , [ 1322542800000 , 0.1114911016548] , [ 1322629200000 , 2.2135818365753] , [ 1322715600000 , 1.9445161544187] , [ 1322802000000 , 1.9427980090936] , [ 1322888400000 , 1.9427980090936] , [ 1322974800000 , 1.9427980090936] , [ 1323061200000 , 2.3501860364827] , [ 1323147600000 , 2.1136672636407] , [ 1323234000000 , 2.2418743103244] , [ 1323320400000 , 1.0064931140733] , [ 1323406800000 , 1.9661258515092] , [ 1323493200000 , 1.9661258515092] , [ 1323579600000 , 1.9661258515092] , [ 1323666000000 , 1.0175542221399] , [ 1323752400000 , 0.5024676440828] , [ 1323838800000 , -0.6545437495700] , [ 1323925200000 , -0.8689652158149] , [ 1324011600000 , -0.7645004652824] , [ 1324098000000 , -0.7645004652824] , [ 1324184400000 , -0.7645004652824] , [ 1324270800000 , -1.7880862317039] , [ 1324357200000 , -0.1461682112898] , [ 1324443600000 , -0.5871487877962] , [ 1324530000000 , 0.2867400066741] , [ 1324616400000 , 0.7000618003773] , [ 1324702800000 , 0.7000618003773] , [ 1324789200000 , 0.7000618003773] , [ 1324875600000 , 0.7000618003773] , [ 1324962000000 , 0.4859463316191] , [ 1325048400000 , -0.4119526235861] , [ 1325134800000 , 0.2230991860845] , [ 1325221200000 , 0.1595400012524] , [ 1325307600000 , 0.1595400012524] , [ 1325394000000 , 0.1595400012524] , [ 1325480400000 , 0.1595400012524] , [ 1325566800000 , 1.2638744291023] , [ 1325653200000 , 1.1480591676914] , [ 1325739600000 , 1.4876618741657] , [ 1325826000000 , 1.6476476765120] , [ 1325912400000 , 1.6476476765120] , [ 1325998800000 , 1.6476476765120] , [ 1326085200000 , 2.1063050593731] , [ 1326171600000 , 2.5653649043989] , [ 1326258000000 , 2.8466857983576] , [ 1326344400000 , 3.0747141460071] , [ 1326430800000 , 2.4992620202541] , [ 1326517200000 , 2.4992620202541] , [ 1326603600000 , 2.4992620202541] , [ 1326690000000 , 2.4992620202541] , [ 1326776400000 , 2.2880782376570] , [ 1326862800000 , 3.1353436274553] , [ 1326949200000 , 3.5677616820370] , [ 1327035600000 , 3.5059469003623] , [ 1327122000000 , 3.5059469003623] , [ 1327208400000 , 3.5059469003623] , [ 1327294800000 , 3.6741640726128] , [ 1327381200000 , 3.5476135299444] , [ 1327467600000 , 3.8207752112587] , [ 1327554000000 , 3.8616315638872] , [ 1327640400000 , 4.3254831376284] , [ 1327726800000 , 4.3254831376284] , [ 1327813200000 , 4.3254831376284] , [ 1327899600000 , 4.0133484282063] , [ 1327986000000 , 4.0086992762233] , [ 1328072400000 , 4.6741072621578] , [ 1328158800000 , 5.1853600238372] , [ 1328245200000 , 5.7164828688020] , [ 1328331600000 , 5.7164828688020] , [ 1328418000000 , 5.7164828688020] , [ 1328504400000 , 5.7706486616140] , [ 1328590800000 , 5.5821721041319] , [ 1328677200000 , 5.9281978759001] , [ 1328763600000 , 6.3202608081270] , [ 1328850000000 , 5.4952215782126] , [ 1328936400000 , 5.4952215782126] , [ 1329022800000 , 5.4952215782126] , [ 1329109200000 , 5.6378737590063] , [ 1329195600000 , 5.2228974160623] , [ 1329282000000 , 4.8974412407240] , [ 1329368400000 , 5.7203603398934] , [ 1329454800000 , 6.1518150836713] , [ 1329541200000 , 6.1518150836713] , [ 1329627600000 , 6.1518150836713] , [ 1329714000000 , 6.1518150836713] , [ 1329800400000 , 6.2799444735621] , [ 1329886800000 , 6.1985966532271] , [ 1329973200000 , 6.3441512518544] , [ 1330059600000 , 6.2162658382840] , [ 1330146000000 , 6.2162658382840] , [ 1330232400000 , 6.2162658382840] , [ 1330318800000 , 6.4153940933982] , [ 1330405200000 , 6.5112028076997] , [ 1330491600000 , 5.8186218494908]]
- }
-].map(function(line) {
- line.values = line.values.map(function(d) { return {x: d[0], y: d[1]/100 }})
- .filter(function(d) {
- var day = (new Date(d.x)).getDay();
- return day != 0 && day != 6; //get rid of weekends for this example
- });
- return line;
-});
-
-
-
-
-
-
-
-
-
-
-nv.charts.lineChartDaily()
- .selector('#chart1')
- //.data(sinAndCos())
- .data(cumulativeDailyTestData)
- .build();
-
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [],
- r1 = Math.random(),
- r2 = Math.random();
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, voltage: r2 * Math.sin(i/10)});
- cos.push({x: i, voltage: r1 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html
deleted file mode 100755
index a64ec4bf..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/linePlusBar.js"></script>
-<script>
-
-
-
-var valueVsQuantity = [
- {
- "key" : "Quantity" ,
- "bar": true,
- "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , [ 1141102800000 , 1271000.0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 3899486.0] , [ 1162270800000 , 3899486.0] , [ 1164862800000 , 3899486.0] , [ 1167541200000 , 3564700.0] , [ 1170219600000 , 3564700.0] , [ 1172638800000 , 3564700.0] , [ 1175313600000 , 2648493.0] , [ 1177905600000 , 2648493.0] , [ 1180584000000 , 2648493.0] , [ 1183176000000 , 2522993.0] , [ 1185854400000 , 2522993.0] , [ 1188532800000 , 2522993.0] , [ 1191124800000 , 2906501.0] , [ 1193803200000 , 2906501.0] , [ 1196398800000 , 2906501.0] , [ 1199077200000 , 2206761.0] , [ 1201755600000 , 2206761.0] , [ 1204261200000 , 2206761.0] , [ 1206936000000 , 2287726.0] , [ 1209528000000 , 2287726.0] , [ 1212206400000 , 2287726.0] , [ 1214798400000 , 2732646.0] , [ 1217476800000 , 2732646.0] , [ 1220155200000 , 2732646.0] , [ 1222747200000 , 2599196.0] , [ 1225425600000 , 2599196.0] , [ 1228021200000 , 2599196.0] , [ 1230699600000 , 1924387.0] , [ 1233378000000 , 1924387.0] , [ 1235797200000 , 1924387.0] , [ 1238472000000 , 1756311.0] , [ 1241064000000 , 1756311.0] , [ 1243742400000 , 1756311.0] , [ 1246334400000 , 1743470.0] , [ 1249012800000 , 1743470.0] , [ 1251691200000 , 1743470.0] , [ 1254283200000 , 1519010.0] , [ 1256961600000 , 1519010.0] , [ 1259557200000 , 1519010.0] , [ 1262235600000 , 1591444.0] , [ 1264914000000 , 1591444.0] , [ 1267333200000 , 1591444.0] , [ 1270008000000 , 1543784.0] , [ 1272600000000 , 1543784.0] , [ 1275278400000 , 1543784.0] , [ 1277870400000 , 1309915.0] , [ 1280548800000 , 1309915.0] , [ 1283227200000 , 1309915.0] , [ 1285819200000 , 1331875.0] , [ 1288497600000 , 1331875.0] , [ 1291093200000 , 1331875.0] , [ 1293771600000 , 1331875.0] , [ 1296450000000 , 1154695.0] , [ 1298869200000 , 1154695.0] , [ 1301544000000 , 1194025.0] , [ 1304136000000 , 1194025.0] , [ 1306814400000 , 1194025.0] , [ 1309406400000 , 1194025.0] , [ 1312084800000 , 1194025.0] , [ 1314763200000 , 1244525.0] , [ 1317355200000 , 475000.0] , [ 1320033600000 , 475000.0] , [ 1322629200000 , 475000.0] , [ 1325307600000 , 690033.0] , [ 1327986000000 , 690033.0] , [ 1330491600000 , 690033.0] , [ 1333166400000 , 514733.0] , [ 1335758400000 , 514733.0]]
- } ,
-
- {
- "key" : "Price" ,
- "values" : [ [ 1136005200000 , 71.89] , [ 1138683600000 , 75.51] , [ 1141102800000 , 68.49] , [ 1143781200000 , 62.72] , [ 1146369600000 , 70.39] , [ 1149048000000 , 59.77] , [ 1151640000000 , 57.27] , [ 1154318400000 , 67.96] , [ 1156996800000 , 67.85] , [ 1159588800000 , 76.98] , [ 1162270800000 , 81.08] , [ 1164862800000 , 91.66] , [ 1167541200000 , 84.84] , [ 1170219600000 , 85.73] , [ 1172638800000 , 84.61] , [ 1175313600000 , 92.91] , [ 1177905600000 , 99.8] , [ 1180584000000 , 121.191] , [ 1183176000000 , 122.04] , [ 1185854400000 , 131.76] , [ 1188532800000 , 138.48] , [ 1191124800000 , 153.47] , [ 1193803200000 , 189.95] , [ 1196398800000 , 182.22] , [ 1199077200000 , 198.08] , [ 1201755600000 , 135.36] , [ 1204261200000 , 125.02] , [ 1206936000000 , 143.5] , [ 1209528000000 , 173.95] , [ 1212206400000 , 188.75] , [ 1214798400000 , 167.44] , [ 1217476800000 , 158.95] , [ 1220155200000 , 169.53] , [ 1222747200000 , 113.66] , [ 1225425600000 , 107.59] , [ 1228021200000 , 92.67] , [ 1230699600000 , 85.35] , [ 1233378000000 , 90.13] , [ 1235797200000 , 89.31] , [ 1238472000000 , 105.12] , [ 1241064000000 , 125.83] , [ 1243742400000 , 135.81] , [ 1246334400000 , 142.43] , [ 1249012800000 , 163.39] , [ 1251691200000 , 168.21] , [ 1254283200000 , 185.35] , [ 1256961600000 , 188.5] , [ 1259557200000 , 199.91] , [ 1262235600000 , 210.732] , [ 1264914000000 , 192.063] , [ 1267333200000 , 204.62] , [ 1270008000000 , 235.0] , [ 1272600000000 , 261.09] , [ 1275278400000 , 256.88] , [ 1277870400000 , 251.53] , [ 1280548800000 , 257.25] , [ 1283227200000 , 243.1] , [ 1285819200000 , 283.75] , [ 1288497600000 , 300.98] , [ 1291093200000 , 311.15] , [ 1293771600000 , 322.56] , [ 1296450000000 , 339.32] , [ 1298869200000 , 353.21] , [ 1301544000000 , 348.5075] , [ 1304136000000 , 350.13] , [ 1306814400000 , 347.83] , [ 1309406400000 , 335.67] , [ 1312084800000 , 390.48] , [ 1314763200000 , 384.83] , [ 1317355200000 , 381.32] , [ 1320033600000 , 404.78] , [ 1322629200000 , 382.2] , [ 1325307600000 , 405.0] , [ 1327986000000 , 456.48] , [ 1330491600000 , 542.44] , [ 1333166400000 , 599.55] , [ 1335758400000 , 583.98]]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
- return series;
-});
-
-
-
-
-
-var selector = '#chart1',
- chart = nv.models.linePlusBar(),
- //data = sinAndCos(),
- data = valueVsQuantity,
- xTickFormat = d3.format(',r'),
- y1TickFormat = d3.format(',f'),
- y2TickFormat = function(d) { return '$' + d3.format(',f')(d) },
- duration = 500;
-
-nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- chart
- .x(function(d,i) { return i })
- .width(width)
- .height(height)
- .color(d3.scale.category10().range());
-
- chart.xAxis.tickFormat(function(d) {
- var dx = data[0].values[d] && data[0].values[d].x || 0;
- return d3.time.format('%x')(new Date(dx))
- //return d3.time.format('%x')(new Date(data[0].values[d].x))
- });
-
- chart.yAxis1
- .tickFormat(y1TickFormat)
- chart.yAxis2
- .tickFormat(y2TickFormat)
-
- chart.bars.forceY([0]);
- //chart.lines.forceY([0]);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(chart);
-
- return chart;
- },
- callback: function(chart) {
- var showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatY1 = chart.yAxis1.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatY2 = chart.yAxis2.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatX = chart.xAxis.tickFormat(),
- x = formatX(chart.x()(e, e.pointIndex)),
- y = e.series.bar ? formatY1(chart.y()(e.point)) : formatY2(chart.y()(e.point));
-
-
-
- // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
- // ex. daily data without weekends, x is the index, while you want the date
- var content = '<h3>' + e.series.key.replace(/\s*\(.*\)/, '') + '</h3>' + //removing the (left/right axis) note from series label in tooltip
- '<p>' +
- y + ' at ' + x +
- '</p>';
-
- nv.tooltip.show([left, top], content, chart.y()(e.point) < 0 ? 'n' : 's' );
- };
-
- chart.dispatch.on('tooltipShow', showTooltip);
- chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- window.onresize= function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .call(chart);
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10) + 1});
- cos.push({x: i, y: .5 * Math.cos(i/10) + .5});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- bar: true
- },
- {
- values: cos,
- key: "Cosine Wave"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js
deleted file mode 100755
index c5c690af..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js
+++ /dev/null
@@ -1,250 +0,0 @@
-
-nv.models.linePlusBar = function() {
- var margin = {top: 30, right: 60, bottom: 50, left: 60},
- getWidth = function() { return 960 },
- getHeight = function() { return 500 },
- dotRadius = function() { return 2.5 },
- getX = function(d) { return d.x },
- getY = function(d) { return d.y },
- color = d3.scale.category20().range(),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- var x = d3.scale.linear(),
- y1 = d3.scale.linear(),
- y2 = d3.scale.linear(),
- xAxis = nv.models.axis().scale(x).orient('bottom'),
- yAxis1 = nv.models.axis().scale(y1).orient('left'),
- yAxis2 = nv.models.axis().scale(y2).orient('right'),
- legend = nv.models.legend().height(30),
- lines = nv.models.line(),
- bars = nv.models.historicalBar();
-
-
- function chart(selection) {
- selection.each(function(data) {
- var width = getWidth(),
- height = getHeight(),
- availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom;
-
- var series1 = data.filter(function(d) { return !d.disabled && d.bar })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i) }
- })
- });
-
- var series2 = data.filter(function(d) { return !d.disabled && !d.bar })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i) }
- })
- });
-
- x .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
- y1 .domain(d3.extent(d3.merge(series1), function(d) { return d.y } ))
- .range([availableHeight, 0]);
-
- y2 .domain(d3.extent(d3.merge(series2), function(d) { return d.y } ))
- .range([availableHeight, 0]);
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % 10];
- }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))
-
- bars
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % 10];
- }).filter(function(d,i) { return !data[i].disabled && data[i].bar }))
-
-
- var wrap = d3.select(this).selectAll('g.wrap.linePlusBar').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 linePlusBar').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y1 axis');
- gEnter.append('g').attr('class', 'y2 axis');
- gEnter.append('g').attr('class', 'barsWrap');
- gEnter.append('g').attr('class', 'linesWrap');
- gEnter.append('g').attr('class', 'legendWrap');
-
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow({
- point: e.point,
- series: e.series,
- pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
- seriesIndex: e.seriesIndex,
- pointIndex: e.pointIndex
- });
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
-
-
- bars.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
-
-
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height();
-
- var g = wrap.select('g')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- legend.width(width/2 - margin.right);
-
- g.select('.legendWrap')
- .datum(data.map(function(series) {
- series.key = series.key + (series.bar ? ' (left axis)' : ' (right axis)');
- return series;
- }))
- .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
- .call(legend);
-
-
- var barsData = data.filter(function(d) { return !d.disabled && d.bar });
-
- var barsWrap = g.select('.barsWrap')
- .datum(barsData.length ? barsData : [{values:[]}])
- //.datum(data.filter(function(d) { return !d.disabled && d.bar }))
-
- var linesWrap = g.select('.linesWrap')
- .datum(data.filter(function(d) { return !d.disabled && !d.bar }))
-
-
- d3.transition(barsWrap).call(bars);
- d3.transition(linesWrap).call(lines);
-
-
- xAxis
- .domain(x.domain())
- .range(x.range())
- .ticks( width / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y1.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- yAxis1
- .domain(y1.domain())
- .range(y1.range())
- .ticks( height / 36 )
- .tickSize(-availableWidth, 0);
-
- d3.transition(g.select('.y1.axis'))
- .call(yAxis1);
-
- yAxis2
- .domain(y2.domain())
- .range(y2.range())
- .ticks( height / 36 )
- .tickSize(series1.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
- g.select('.y2.axis')
- .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
- d3.transition(g.select('.y2.axis'))
- .call(yAxis2);
-
- });
-
- return chart;
- }
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.lines = lines;
- chart.bars = bars;
- chart.xAxis = xAxis;
- chart.yAxis1 = yAxis1;
- chart.yAxis2 = yAxis2;
-
- //d3.rebind(chart, lines, 'interactive');
- //consider rebinding x and y as well
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines.x(_);
- bars.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines.y(_);
- bars.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return getWidth;
- getWidth = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return getHeight;
- getHeight = d3.functor(_);
- return chart;
- };
-
- chart.dotRadius = function(_) {
- if (!arguments.length) return dotRadius;
- dotRadius = d3.functor(_);
- lines.dotRadius = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- legend.color(_);
- return chart;
- };
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html
deleted file mode 100755
index c845bcf8..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body>
-
- <div id="test1">
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocus.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
- var test_data = stream_layers(3,128,.1).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data
- };
- });
-
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.lineWithFocus()
- .width(width)
- .height(height)
- .yTickFormat(d3.format('.2r'))
- .xTickFormat(d3.format('.2r'))
-
-
- var svg = d3.select('#test1 svg')
- .attr('width', width)
- .attr('height', height)
- .datum(test_data);
-
- svg.transition().duration(500).call(chart);
-
- return chart;
- },
- callback: function(graph) {
-
- graph.dispatch.on('tooltipShow', function(e) {
- var offsetElement = document.getElementById("test1"),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatter = d3.format('.2r');
-
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatter(graph.y()(e.point)) + ', ' + formatter(graph.x()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content);
- });
-
- graph.dispatch.on('tooltipHide', function(e) {
- nv.tooltip.cleanup();
- });
-
-
-
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40,
- margin = graph.margin();
-
-
- if (width < margin.left + margin.right + 20)
- width = margin.left + margin.right + 20;
-
- if (height < margin.top + margin.bottom + 20)
- height = margin.top + margin.bottom + 20;
-
-
- graph
- .width(width)
- .height(height);
-
- d3.select('#test1 svg')
- .attr('width', width)
- .attr('height', height)
- .call(graph);
-
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js
deleted file mode 100755
index e359fff5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js
+++ /dev/null
@@ -1,354 +0,0 @@
-
-nv.models.lineWithFocus = function() {
- var margin = {top: 30, right: 20, bottom: 30, left: 60},
- margin2 = {top: 0, right: 20, bottom: 20, left: 60},
- width = 960,
- height = 500,
- height1 = 400,
- height2 = 100,
- color = d3.scale.category20().range(),
- getX = function(d) { return d.x },
- getY = function(d) { return d.y },
- id = Math.floor(Math.random() * 10000); //Create semi-unique ID incase user doesn't select one
-
- var x = d3.scale.linear(),
- y = d3.scale.linear(),
- x2 = d3.scale.linear(),
- y2 = d3.scale.linear(),
- xAxis = nv.models.axis().scale(x).orient('bottom'),
- yAxis = nv.models.axis().scale(y).orient('left'),
- xAxis2 = nv.models.axis().scale(x2).orient('bottom'),
- yAxis2 = nv.models.axis().scale(y2).orient('left'),
- legend = nv.models.legend().height(30),
- focus = nv.models.line().clipEdge(true),
- context = nv.models.line().interactive(false),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
- brush = d3.svg.brush()
- .x(x2);
-
-
- //var wrap, gEnter, g, focus, focusLines, contextWrap, focusWrap, contextLines; //brought all variables to this scope for use within brush function... is this a bad idea?
-
- //var seriesData; //Temporarily bringing this data to this scope.... may be bad idea (same with above).. may need to rethink brushing
-
- function chart(selection) {
- selection.each(function(data) {
- var seriesData = data.filter(function(d) { return !d.disabled })
- .map(function(d) { return d.values }),
- availableWidth = width - margin.left - margin.right,
- availableHeight1 = height1 - margin.top - margin.bottom,
- availableHeight2 = height2 - margin2.top - margin2.bottom;
-
- x2 .domain(d3.extent(d3.merge(seriesData), getX ))
- .range([0, availableWidth]);
- y2 .domain(d3.extent(d3.merge(seriesData), getY ))
- .range([availableHeight2, 0]);
-
- x .domain(brush.empty() ? x2.domain() : brush.extent())
- .range([0, availableWidth]);
- y .domain(y2.domain())
- .range([availableHeight1, 0]);
-
- brush.on('brush', onBrush);
-
- focus
- .width(availableWidth)
- .height(availableHeight1)
- .color(data.map(function(d,i) {
- return d.color || color[i % 10];
- }).filter(function(d,i) { return !data[i].disabled }))
-
- context
- .width(availableWidth)
- .height(availableHeight2)
- .color(data.map(function(d,i) {
- return d.color || color[i % 10];
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- updateFocus();
-
-
- var wrap = d3.select(this).selectAll('g.wrap').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithFocus').append('g');
-
- gEnter.append('g').attr('class', 'focus');
- gEnter.append('g').attr('class', 'context');
- gEnter.append('g').attr('class', 'legendWrap');
-
-
-
- var g = wrap.select('g')
- //.attr('transform', 'translate(0,0)');
-
-
-
-
- // ********** LEGEND **********
-
- legend.width(width/2 - margin.right);
-
- g.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (availableWidth / 2) + ',0)')
- .call(legend);
-
-
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height();
-
-
-
-
- // ********** FOCUS **********
-
- var focusWrap = g.select('.focus')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- gEnter.select('.focus').append('g').attr('class', 'x axis');
- gEnter.select('.focus').append('g').attr('class', 'y axis');
- gEnter.select('.focus').append('g').attr('class', 'focusLines');
-
-
- var focusLines = focusWrap.select('.focusLines')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(focusLines).call(focus);
-
-
- xAxis
- .domain(x.domain())
- .range(x.range())
- .ticks( width / 100 )
- .tickSize(-(availableHeight1), 0);
-
- focusWrap.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- yAxis
- .domain(y.domain())
- .range(y.range())
- .ticks( height / 36 )
- .tickSize(-(availableWidth), 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
-
-
- // ********** CONTEXT **********
-
- var contextWrap = g.select('.context')
- .attr('transform', 'translate(' + margin2.left + ',' + height1 + ')');
-
- gEnter.select('.context').append('g').attr('class', 'x2 axis');
- gEnter.select('.context').append('g').attr('class', 'y2 axis');
- gEnter.select('.context').append('g').attr('class', 'contextLines');
- gEnter.select('.context').append('g').attr('class', 'x brush')
- .attr('class', 'x brush')
- .call(brush)
- .selectAll('rect')
- .attr('y', -5)
- .attr('height', height2 + 4);
-
- var contextLines = contextWrap.select('.contextLines')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(contextLines).call(context);
-
-
- xAxis2
- .domain(x2.domain())
- .range(x2.range())
- .ticks( width / 100 )
- .tickSize(-(availableHeight2), 0);
-
- contextWrap.select('.x2.axis')
- .attr('transform', 'translate(0,' + y2.range()[0] + ')');
- d3.transition(contextWrap.select('.x2.axis'))
- .call(xAxis2);
-
-
- yAxis2
- .domain(y2.domain())
- .range(y2.range())
- .ticks( availableHeight2 / 24 )
- .tickSize(-(availableWidth), 0);
-
- contextWrap.select('.y2.axis');
-
- d3.transition(contextWrap.select('.y2.axis'))
- .call(yAxis2);
-
-
-
-
-
-
- // ********** EVENT LISTENERS **********
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
-/*
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
-*/
-
- focus.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow({
- point: e.point,
- series: e.series,
- pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
- seriesIndex: e.seriesIndex,
- pointIndex: e.pointIndex
- });
- });
- focus.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
-
-
-
-
- function onBrush() {
- updateFocus();
-
- focusLines.call(focus)
- wrap.select('.x.axis').call(xAxis);
- wrap.select('.y.axis').call(yAxis);
- }
-
- function updateFocus() {
- var yDomain = brush.empty() ? y2.domain() : d3.extent(d3.merge(seriesData).filter(function(d) {
- return getX(d) >= brush.extent()[0] && getX(d) <= brush.extent()[1];
- }), getY); //This doesn't account for the 1 point before and the 1 point after the domain. Would fix, but likely need to change entire methodology here
-
- if (typeof yDomain[0] == 'undefined') yDomain = y2.domain(); //incase the brush doesn't cover a single point
-
-
- x.domain(brush.empty() ? x2.domain() : brush.extent());
- y.domain(yDomain);
-
- //TODO: Rethink this... performance is horrible, likely need to cut off focus data to within the range
- // If I limit the data for focusLines would want to include 1 point before and after the extent,
- // Need to figure out an optimized way to accomplish this.
- // ***One concern is to try not to make the assumption that all lines are of the same length, and
- // points with the same index have the same x value (while this is true in our test cases, may
- // not always be)
-
- focus.xDomain(x.domain());
- focus.yDomain(y.domain());
- }
-
-
- });
-
- return chart;
- }
-
-
-
- // ********** FUNCTIONS **********
-
-
-
-
- // ********** PUBLIC ACCESSORS **********
-
- chart.dispatch = dispatch;
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- focus.x(_);
- context.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- focus.y(_);
- context.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- height1 = _ - height2;
- return chart;
- };
-
- chart.contextHeight = function(_) {
- if (!arguments.length) return height2;
- height2 = _;
- height1 = height - _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
-
- // Chart has multiple similar Axes, to prevent code duplication, probably need to link all axis functions manually like below
- chart.xTickFormat = function(_) {
- if (!arguments.length) return x.tickFormat();
- xAxis.tickFormat(_);
- xAxis2.tickFormat(_);
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return y.tickFormat();
- yAxis.tickFormat(_);
- yAxis2.tickFormat(_);
- return chart;
- };
-
-
-
- //TODO: allow for both focus and context axes to be linked
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html
deleted file mode 100755
index 736b5719..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFourAxes.js"></script>
-<script>
-
-/************
- * Considering making an nv.charts object which will contain abstractions similar to the one below,
- * but with the usual d3 reusable style.
- * I could make this abstraction inside the layer above, but this layer incorporates some jQuery, so
- * thinking nv.charts can be the glue that's not 100% d3
- ************/
-
-var selector = '#chart1',
- chart = nv.models.lineWithLegend(),
- data = sinAndCos(),
- xTickFormat = d3.format(',r'),
- yTickFormat = d3.format(',.2f'),
- xAxisLabel = null,
- yAxisLabel = 'Voltage (v)',
- duration = 500;
-
-nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- chart
- .width(width)
- .height(height)
-
- chart.xAxis
- .tickFormat(xTickFormat);
-
- chart.yAxis
- .tickFormat(yTickFormat)
- .axisLabel(yAxisLabel);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(chart);
-
- return chart;
- },
- callback: function(chart) {
- var showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatX = chart.xAxis.tickFormat();
-
- // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
- // ex. daily data without weekends, x is the index, while you want the date
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content);
- };
-
- chart.dispatch.on('tooltipShow', showTooltip);
- chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- window.onresize =
- function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .call(chart);
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js
deleted file mode 100755
index f42c7733..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js
+++ /dev/null
@@ -1,218 +0,0 @@
-
-nv.models.lineWithLegend = function() {
- var margin = {top: 60, right: 60, bottom: 40, left: 60},
- getWidth = function() { return 960 },
- getHeight = function() { return 500 },
- dotRadius = function() { return 2.5 },
- getX = function(d) { return d.x },
- getY = function(d) { return d.y },
- color = d3.scale.category20().range(),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- var x = d3.scale.linear(),
- y = d3.scale.linear(),
- xAxis = nv.models.axis().scale(x).orient('bottom'),
- yAxis = nv.models.axis().scale(y).orient('left'),
- x2Axis = nv.models.axis().scale(x).orient('top'),
- y2Axis = nv.models.axis().scale(y).orient('right'),
- legend = nv.models.legend().height(30),
- lines = nv.models.line();
-
-
- function chart(selection) {
- selection.each(function(data) {
- var width = getWidth(),
- height = getHeight(),
- availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom;
-
- var series = data.filter(function(d) { return !d.disabled })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i) }
- })
- });
-
- x .domain(d3.extent(d3.merge(series), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
- y .domain(d3.extent(d3.merge(series), function(d) { return d.y } ))
- .range([availableHeight, 0]);
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % 10];
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var wrap = d3.select(this).selectAll('g.wrap').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithLegend').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'x2 axis');
- gEnter.append('g').attr('class', 'y2 axis');
- gEnter.append('g').attr('class', 'linesWrap');
- gEnter.append('g').attr('class', 'legendWrap');
-
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
-/*
- //
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
-
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
-*/
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow({
- point: e.point,
- series: e.series,
- pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
- seriesIndex: e.seriesIndex,
- pointIndex: e.pointIndex
- });
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
-
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height() + 20; // 20 is for the x2 axis... this should be done in a better place, but just doing this to show the 4 axes in an example
-
- var g = wrap.select('g')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- legend.width(width/2 - margin.right);
-
- g.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
- .call(legend);
-
-
- var linesWrap = g.select('.linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
-
- d3.transition(linesWrap).call(lines);
-
-
- xAxis
- .domain(x.domain())
- .range(x.range())
- .ticks( width / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- yAxis
- .domain(y.domain())
- .range(y.range())
- .ticks( height / 36 )
- .tickSize(-availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
- x2Axis
- .domain(x.domain())
- .range(x.range())
- .ticks( width / 100 )
- .tickSize(-availableHeight, 0);
-
- d3.transition(g.select('.x2.axis'))
- .call(x2Axis);
-
- y2Axis
- .domain(y.domain())
- .range(y.range())
- .ticks( height / 36 )
- .tickSize(-availableWidth, 0);
-
- g.select('.y2.axis')
- .attr('transform', 'translate('+ x.range()[1] + ',0)');
- d3.transition(g.select('.y2.axis'))
- .call(y2Axis);
- });
-
- return chart;
- }
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, lines, 'interactive');
- //consider rebinding x and y as well
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return getWidth;
- getWidth = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return getHeight;
- getHeight = d3.functor(_);
- return chart;
- };
-
- chart.dotRadius = function(_) {
- if (!arguments.length) return dotRadius;
- dotRadius = d3.functor(_);
- lines.dotRadius = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html
deleted file mode 100755
index 9aa9fab6..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithLegend.js"></script>
-<script>
-
-
-var selector = '#chart1',
- chart = nv.models.lineWithLegend(),
- data = sinAndCos(),
- xTickFormat = d3.format(',r'),
- yTickFormat = d3.format(',.2f'),
- xAxisLabel = null,
- yAxisLabel = 'Voltage (v)',
- duration = 500;
-
-nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg').style('height', '500px');
-
- chart
- //.width(width)
- //.height(height);
-
- chart.xAxis
- .tickFormat(xTickFormat);
-
- chart.yAxis
- .tickFormat(yTickFormat)
- .axisLabel(yAxisLabel);
-
- svg
- //.attr('width', width())
- //.attr('height', height())
- .datum(data)
- .transition().duration(duration).call(chart);
-
- return chart;
- },
- callback: function(chart) {
- var showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatX = chart.xAxis.tickFormat();
-
- // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
- // ex. daily data without weekends, x is the index, while you want the date
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content);
- };
-
- chart.dispatch.on('tooltipShow', showTooltip);
- chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- window.onresize= function() {
- // now that width and height are functions, should be automatic..of course you can always override them
- d3.select('#chart1 svg')
- //.attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- //.attr('height', chart.height()())
- .call(chart);
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js
deleted file mode 100755
index edd5aef2..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js
+++ /dev/null
@@ -1,176 +0,0 @@
-
-nv.models.lineWithLegend = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- color = d3.scale.category20().range(),
- width, height;
-
- var lines = nv.models.line(),
- //x = d3.scale.linear(),
- //y = d3.scale.linear(),
- x = lines.xScale(),
- y = lines.yScale(),
- xAxis = nv.models.axis().scale(x).orient('bottom'),
- yAxis = nv.models.axis().scale(y).orient('left'),
- legend = nv.models.legend().height(30),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-
- function chart(selection) {
- selection.each(function(data) {
-
- var availableWidth = (width || parseInt(d3.select(this).style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(d3.select(this).style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % 10];
- }).filter(function(d,i) { return !data[i].disabled }));
-
-
- var wrap = d3.select(this).selectAll('g.wrap.lineWithLegend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithLegend').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'linesWrap');
- gEnter.append('g').attr('class', 'legendWrap');
-
-
-
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height();
-
- var g = wrap.select('g')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-
- legend.width(availableWidth / 2);
-
- g.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
- .call(legend);
-
-
-
- var linesWrap = g.select('.linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(linesWrap).call(lines);
-
-
-
- xAxis
- .domain(x.domain())
- .range(x.range())
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
-
- yAxis
- .domain(y.domain())
- .range(y.range())
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
-
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
-/*
- //
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
-
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
-*/
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow({
- point: e.point,
- series: e.series,
- pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
- seriesIndex: e.seriesIndex,
- pointIndex: e.pointIndex
- });
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- });
-
-
- // If the legend changed the margin's height, need to recalc positions... should think of a better way to prevent duplicate work
- if (margin.top != legend.height())
- chart(selection);
-
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- //width = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- //height = d3.functor(_);
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html
deleted file mode 100755
index fafd7020..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-</style>
-
-<body>
-
-
- <script src="../lib/d3.v2.js"></script>
- <script src="../nv.d3.js"></script>
- <script>
-
- function ilog(text) {
- console.log(text);
- return text;
- }
-
-
- function daysInMonth(month,year) {
- var m = [31,28,31,30,31,30,31,31,30,31,30,31];
- if (month != 2) return m[month - 1];
- if (year%4 != 0) return m[1];
- if (year%100 == 0 && year%400 != 0) return m[1];
- return m[1] + 1;
- }
-
-
- function d3_time_range(floor, step, number) {
- return function(t0, t1, dt) {
- var time = floor(t0), times = [];
- if (time < t0) step(time);
- if (dt > 1) {
- while (time < t1) {
- var date = new Date(+time);
- if (!(number(date) % dt)) times.push(date);
- step(time);
- }
- } else {
- while (time < t1) times.push(new Date(+time)), step(time);
- }
- return times;
- };
- }
-
-
- d3.time.monthEnd = function(date) {
- return new Date(date.getFullYear(), date.getMonth(), 0);
- };
-
-
- d3.time.monthEnds = d3_time_range(d3.time.monthEnd, function(date) {
- date.setUTCDate(date.getUTCDate() + 1);
- date.setDate(daysInMonth(date.getMonth() + 1, date.getFullYear()));
- }, function(date) {
- return date.getMonth();
- }
- );
-
-
-
-
- var margin = {top: 10, right: 40, bottom: 40, left: 40},
- width = 960 - margin.left - margin.right,
- height = 80 - margin.top - margin.bottom;
-
- var x = d3.time.scale()
- .domain([new Date(2010, 0, 1), new Date(2011, 0, 1)])
- .range([0, width]);
-
- var xAxis = d3.svg.axis()
- .scale(x)
- .orient("bottom")
- //.ticks(d3.time.months)
- .ticks(d3.time.monthEnds)
- //.tickSubdivide(3)
- .tickSize(8, 4, 0)
- .tickFormat(d3.time.format("%x"));
- //.tickFormat(d3.time.format("%B"));
-
- var svg = d3.select("body").append("svg")
- .attr("width", width + margin.left + margin.right)
- .attr("height", height + margin.top + margin.bottom)
- .append("g")
- .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
-
- svg.append("g")
- .attr("class", "x axis")
- .attr("transform", "translate(0," + height + ")")
- .call(xAxis)
-
- .selectAll("text")
- .attr("text-anchor", "middle")
- //.attr("text-anchor", "start")
- .attr("x", 0)
- .attr("y", 12);
-
- </script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html
deleted file mode 100755
index 297244ef..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBarHorizontal.js"></script>
-<script src="../src/models/multiBarHorizontalWithLegend.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-var test_data = stream_layers(3,12,.1).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data
- };
-});
-
-
-
-long_short_data = [
- {
- key: 'Short',
- color: '#d62728',
- values: [
- {
- "label" : "Information Technology" ,
- "y" : -1.8746444827653
- } ,
- {
- "label" : "Consumer Discretionary" ,
- "y" : -8.0961543492239
- } ,
- {
- "label" : "Health Care" ,
- "y" : -0.57072943117674
- } ,
- {
- "label" : "Consumer Staples" ,
- "y" : -2.4174010336624
- } ,
- {
- "label" : "Financials" ,
- "y" : -0.72009071426284
- } ,
- {
- "label" : "Industrials" ,
- "y" : -0.77154485523777
- } ,
- {
- "label" : "Energy" ,
- "y" : -0.90152097798131
- } ,
- {
- "label" : "Materials" ,
- "y" : -0.91445417330854
- } ,
- {
- "label" : "Telecommunication Services" ,
- "y" : -0.055746319141851
- }
- ]
- },
- {
- key: 'Long',
- color: '#1f77b4',
- values: [
- {
- "label" : "Information Technology" ,
- "y" : 25.307646510375
- } ,
- {
- "label" : "Consumer Discretionary" ,
- "y" : 16.756779544553
- } ,
- {
- "label" : "Health Care" ,
- "y" : 18.451534877007
- } ,
- {
- "label" : "Consumer Staples" ,
- "y" : 8.6142352811805
- } ,
- {
- "label" : "Financials" ,
- "y" : 7.8082472075876
- } ,
- {
- "label" : "Industrials" ,
- "y" : 5.259101026956
- } ,
- {
- "label" : "Energy" ,
- "y" : 0.30947953487127
- } ,
- {
- "label" : "Materials" ,
- "y" : 0
- } ,
- {
- "label" : "Telecommunication Services" ,
- "y" : 0
- }
- ]
- }
-];
-
-
-
- var selector = '#chart1',
- chart = nv.models.multiBarHorizontalWithLegend()
- .x(function(d) { return d.label })
- .margin({top: 30, right: 20, bottom: 50, left: 160})
- .showControls(false),
- data = long_short_data,
- //data = test_data,
- xTickFormat = function(d) { return d },
- //xTickFormat = d3.format(',r'),
- yTickFormat = d3.format(',.2f'),
- xAxisLabel = null,
- yAxisLabel = null,
- duration = 500;
-
-nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- chart
- .width(width)
- .height(height);
-
- chart.xAxis
- .tickFormat(xTickFormat);
-
- chart.yAxis
- .tickFormat(yTickFormat)
- .axisLabel(yAxisLabel);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(chart);
-
- return chart;
- },
- callback: function(chart) {
- var showTooltip = function showTooltip(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatX = chart.xAxis.tickFormat();
-
- // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
- // ex. daily data without weekends, x is the index, while you want the date
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatX(chart.x()(e.point)) + ': ' + formatY(chart.y()(e.point)) +
- //formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
- '</p>';
-
- var tooltip = nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w');
-
- /*
- if (!arguments[1]) {
- tooltip.onmouseenter = function() { showTooltip(e, 1) }; //working on geting tooltips to stay if mouse hovers over them
- //tooltip.onmouseout = function() { console.log('mouseout'); };
- tooltip.onmouseout = nv.tooltip.cleanup;
- }
- */
- };
-
- chart.dispatch.on('tooltipShow', showTooltip);
- chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- window.onresize= function() {
- // now that width and height are functions, should be automatic..of course you can always override them
-
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .transition().duration(duration)
- .call(chart);
-
-/*
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .call(chart);
-*/
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js
deleted file mode 100755
index ab2087be..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js
+++ /dev/null
@@ -1,226 +0,0 @@
-
-nv.models.multiBarHorizontalWithLegend = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- width = function() { return 960 },
- height = function() { return 500 },
- color = d3.scale.category20().range(),
- showControls = true;
-
- //var x = d3.scale.linear(),
- var x = d3.scale.ordinal(),
- y = d3.scale.linear(),
- xAxis = nv.models.axis().scale(x).orient('left').highlightZero(false),
- yAxis = nv.models.axis().scale(y).orient('bottom'),
- legend = nv.models.legend().height(30),
- controls = nv.models.legend().height(30),
- multibar = nv.models.multiBarHorizontal().stacked(false),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- //TODO: let user select default
- var controlsData = [
- { key: 'Grouped' },
- { key: 'Stacked', disabled: true },
- ];
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width() - margin.left - margin.right,
- availableHeight = height() - margin.top - margin.bottom,
- seriesData;
-
- if (multibar.stacked()) {
- seriesData = data.filter(function(d) { return !d.disabled })
- .reduce(function(prev, curr, index) { //sum up all the y's
- curr.values.forEach(function(d,i) {
- if (!index) prev[i] = {x: multibar.x()(d,i), y:0};
- prev[i].y += multibar.y()(d,i);
- });
- return prev;
- }, []);
- } else {
- seriesData = data.filter(function(d) { return !d.disabled })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: multibar.x()(d,i), y: multibar.y()(d,i) }
- })
- });
- }
-
-
- x .domain(d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands([0, availableHeight], .1);
-
- y .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(multibar.forceY) ))
- .range([0, availableWidth]);
-
- multibar
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % 10];
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
-
- var wrap = d3.select(this).selectAll('g.wrap').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiBarHorizontalWithLegend').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'linesWrap');
- gEnter.append('g').attr('class', 'legendWrap');
- gEnter.append('g').attr('class', 'controlsWrap');
-
-
-
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height();
-
- var g = wrap.select('g')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- legend.width(availableWidth / 2);
-
- g.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
- .call(legend);
-
- if (showControls) {
- controls.width(180).color(['#444', '#444', '#444']);
- g.select('.controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
-
- var linesWrap = g.select('.linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
-
- d3.transition(linesWrap).call(multibar);
-
-
- xAxis
- .scale(x)
- .ticks( availableHeight / 24 )
- .tickSize(-availableWidth, 0);
-
- //g.select('.x.axis')
- //.attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- var xTicks = g.select('.x.axis').selectAll('g');
-
- xTicks
- .selectAll('line, text')
- .style('opacity', 1)
-
- xTicks.filter(function(d,i) {
- return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
- })
- .selectAll('line, text')
- .style('opacity', 0)
-
- yAxis
- .domain(y.domain())
- .range(y.range())
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight, 0);
-
- g.select('.y.axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
-
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Grouped':
- multibar.stacked(false);
- break;
- case 'Stacked':
- multibar.stacked(true);
- break;
- }
-
- selection.transition().call(chart);
- });
-
-
- multibar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- multibar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'clipEdge', 'id');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = d3.functor(_);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html
deleted file mode 100755
index 2942b9fb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiBarWithLegend.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-var test_data = stream_layers(3,Math.random()*200,.1).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data
- };
-});
-
-
-
-
-
-
-
-
-var selector = '#chart1',
- chart = nv.models.multiBarWithLegend(),
- //.x(function(d) { return d.label })
- //.y(function(d) { return d.value })
- data = test_data,
- xTickFormat = d3.format(',f'),
- yTickFormat = d3.format(',.2f'),
- xAxisLabel = null,
- yAxisLabel = null,
- duration = 500;
-
-nv.addGraph({
- generate: function() {
- var container = d3.select(selector),
- width = function() { return parseInt(container.style('width')) },
- height = function() { return parseInt(container.style('height')) },
- svg = container.append('svg');
-
- chart
- .width(width)
- .height(height);
-
- chart.xAxis
- .tickFormat(xTickFormat);
-
- chart.yAxis
- .tickFormat(yTickFormat)
- .axisLabel(yAxisLabel);
-
- svg
- .attr('width', width())
- .attr('height', height())
- .datum(data)
- .transition().duration(duration).call(chart);
-
- return chart;
- },
- callback: function(chart) {
- var showTooltip = function(e) {
- var offsetElement = document.getElementById(selector.substr(1)),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
- formatX = chart.xAxis.tickFormat();
-
- // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
- // ex. daily data without weekends, x is the index, while you want the date
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
- };
-
- chart.dispatch.on('tooltipShow', showTooltip);
- chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- window.onresize= function() {
- // now that width and height are functions, should be automatic..of course you can always override them
-
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .transition().duration(duration)
- .call(chart);
-
-/*
- d3.select('#chart1 svg')
- .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
- .attr('height', chart.height()())
- .call(chart);
-*/
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js
deleted file mode 100755
index 2d3d4067..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js
+++ /dev/null
@@ -1,249 +0,0 @@
-
-nv.models.multiBarWithLegend = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- width = function() { return 960 },
- height = function() { return 500 },
- color = d3.scale.category20().range(),
- showControls = true,
- showLegend = true;
-
- //var x = d3.scale.linear(),
- var x = d3.scale.ordinal(),
- y = d3.scale.linear(),
- xAxis = nv.models.axis().scale(x).orient('bottom').highlightZero(false),
- yAxis = nv.models.axis().scale(y).orient('left'),
- legend = nv.models.legend().height(30),
- controls = nv.models.legend().height(30),
- multibar = nv.models.multiBar().stacked(false),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- //TODO: let user select default
- var controlsData = [
- { key: 'Grouped' },
- { key: 'Stacked', disabled: true }
- ];
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width() - margin.left - margin.right,
- availableHeight = height() - margin.top - margin.bottom,
- seriesData;
-
- if (multibar.stacked()) {
- seriesData = data.filter(function(d) { return !d.disabled })
- .reduce(function(prev, curr, index) { //sum up all the y's
- curr.values.forEach(function(d,i) {
- if (!index) prev[i] = {x: multibar.x()(d,i), y:0};
- prev[i].y += multibar.y()(d,i);
- });
- return prev;
- }, []);
- } else {
- seriesData = data.filter(function(d) { return !d.disabled })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: multibar.x()(d,i), y: multibar.y()(d,i) }
- })
- });
- }
-
-
- //x .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.x }).concat(multibar.forceX) ))
- //.range([0, availableWidth]);
-
- x .domain(d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands([0, availableWidth], .1);
- //.rangeRoundBands([0, availableWidth], .1);
-
- y .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(multibar.forceY) ))
- .range([availableHeight, 0]);
-
- multibar
- .width(availableWidth)
- .height(availableHeight)
- //.xDomain(x.domain())
- //.yDomain(y.domain())
- .color(data.map(function(d,i) {
- return d.color || color[i % 20];
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
-
- var wrap = d3.select(this).selectAll('g.wrap.multiBarWithLegend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiBarWithLegend').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'linesWrap');
- gEnter.append('g').attr('class', 'legendWrap');
- gEnter.append('g').attr('class', 'controlsWrap');
-
-
-
- var g = wrap.select('g');
-
-
- if (showLegend) {
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height();
-
- legend.width(availableWidth / 2);
-
- g.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
- .call(legend);
- }
-
- if (showControls) {
- controls.width(180).color(['#444', '#444', '#444']);
- g.select('.controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- var linesWrap = g.select('.linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
-
- d3.transition(linesWrap).call(multibar);
-
-
- xAxis
- .scale(x)
- //.domain(x.domain())
- //.range(x.range())
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- var xTicks = g.select('.x.axis').selectAll('g');
-
- xTicks
- .selectAll('line, text')
- .style('opacity', 1)
-
- xTicks.filter(function(d,i) {
- return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
- })
- .selectAll('line, text')
- .style('opacity', 0)
-
- yAxis
- .domain(y.domain())
- .range(y.range())
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
-
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Grouped':
- multibar.stacked(false);
- break;
- case 'Stacked':
- multibar.stacked(true);
- break;
- }
-
- selection.transition().call(chart);
- });
-
-
- multibar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- multibar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'clipEdge', 'id', 'stacked');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = d3.functor(_);
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- legend.color(_);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js
deleted file mode 100755
index 7c2f785a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js
+++ /dev/null
@@ -1,263 +0,0 @@
-
-nv.models.pie = function() {
- var margin = {top: 20, right: 20, bottom: 20, left: 20},
- width = 500,
- height = 500,
- animate = 2000,
- radius = Math.min(width-(margin.right+margin.left), height-(margin.top+margin.bottom)) / 2,
- label ='label',
- field ='y',
- id = Math.floor(Math.random() * 10000), //Create semi-unique ID in case user doesn't select one
- color = d3.scale.category20(),
- showLabels = true,
- donut = false,
- title = '';
-
- var lastWidth = 0,
- lastHeight = 0;
-
-
- var dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'tooltipShow', 'tooltipHide');
-
- function chart(selection) {
- selection.each(function(data) {
-
- var svg = d3.select(this)
- .on("click", function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
-
- var background = svg.selectAll('svg.margin').data([data]);
- var parent = background.enter();
- parent.append("text")
- .attr("class", "title")
- .attr("dy", ".91em")
- .attr("text-anchor", "start")
- .text(title);
- parent.append('svg')
- .attr('class','margin')
- .attr('x', margin.left)
- .attr('y', margin.top)
- .style('overflow','visible');
-
- var wrap = background.selectAll('g.wrap').data([data]);
- wrap.exit().remove();
- var wEnter = wrap.enter();
-
- wEnter
- .append('g')
- .attr('class', 'wrap')
- .attr('id','wrap-'+id)
- .append('g')
- .attr('class', 'pie');
-
-
-
- wrap
- .attr('width', width) //-(margin.left+margin.right))
- .attr('height', height) //-(margin.top+margin.bottom))
- .attr("transform", "translate(" + radius + "," + radius + ")");
-
-
-
-
- var arc = d3.svg.arc()
- .outerRadius((radius-(radius / 5)));
-
- if (donut) arc.innerRadius(radius / 2);
-
-
- // Setup the Pie chart and choose the data element
- var pie = d3.layout.pie()
- .value(function (d) { return d[field]; });
-
- var slices = background.select('.pie').selectAll(".slice")
- .data(pie);
-
- slices.exit().remove();
-
- var ae = slices.enter().append("svg:g")
- .attr("class", "slice")
- .on('mouseover', function(d,i){
- d3.select(this).classed('hover', true);
- dispatch.tooltipShow({
- label: d.data[label],
- value: d.data[field],
- data: d.data,
- index: i,
- pos: [d3.event.pageX, d3.event.pageY],
- id: id
- });
-
- })
- .on('mouseout', function(d,i){
- d3.select(this).classed('hover', false);
- dispatch.tooltipHide({
- label: d.data[label],
- value: d.data[field],
- data: d.data,
- index: i,
- id: id
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- label: d.data[label],
- value: d.data[field],
- data: d.data,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- label: d.data[label],
- value: d.data[field],
- data: d.data,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
- var paths = ae.append("svg:path")
- .attr('class','path')
- .attr("fill", function(d, i) { return color(i); });
- //.attr('d', arc);
-
- slices.select('.path')
- .attr('d', arc)
- .transition()
- .ease("bounce")
- .duration(animate)
- .attrTween("d", tweenPie);
-
- if (showLabels) {
- // This does the normal label
- ae.append("text");
-
- slices.select("text")
- .transition()
- .duration(animate)
- .ease('bounce')
- .attr("transform", function(d) {
- d.outerRadius = radius + 10; // Set Outer Coordinate
- d.innerRadius = radius + 15; // Set Inner Coordinate
- return "translate(" + arc.centroid(d) + ")";
- })
- .attr("text-anchor", "middle") //center the text on it's origin
- .style("font", "bold 12px Arial")
- .text(function(d, i) { return d.data[label]; });
- }
-
-
- // Computes the angle of an arc, converting from radians to degrees.
- function angle(d) {
- var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;
- return a > 90 ? a - 180 : a;
- }
-
-
-
-
-
- function tweenPie(b) {
- b.innerRadius = 0;
- var i = d3.interpolate({startAngle: 0, endAngle: 0}, b);
- return function(t) {
- return arc(i(t));
- };
- }
-
-
- });
-
- return chart;
- }
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- if (margin.left + margin.right + 20 > _) {
- width = margin.left + margin.right + 20; // Min width
- } else {
- width = _;
- }
- radius = Math.min(width-(margin.left+margin.right), height-(margin.top+margin.bottom)) / 2;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- if (margin.top + margin.bottom + 20 > _) {
- height = margin.top + margin.bottom + 20; // Min height
- } else {
- height = _;
- }
- radius = Math.min(width-(margin.left+margin.right), height-(margin.top+margin.bottom)) / 2;
- return chart;
- };
-
- chart.animate = function(_) {
- if (!arguments.length) return animate;
- animate = _;
- return chart;
- };
-
- chart.labelField = function(_) {
- if (!arguments.length) return (label);
- label = _;
- return chart;
- };
-
- chart.dataField = function(_) {
- if (!arguments.length) return (field);
- field = _;
- return chart;
- };
-
- chart.showLabels = function(_) {
- if (!arguments.length) return (showLabels);
- showLabels = _;
- return chart;
- };
-
- chart.donut = function(_) {
- if (!arguments.length) return (donut);
- donut = _;
- return chart;
- };
-
- chart.title = function(_) {
- if (!arguments.length) return (title);
- title = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.dispatch = dispatch;
-
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html
deleted file mode 100755
index 7bb78ae5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
- margin: 0;
- padding: 0;
-}
-
-svg {
- overflow: hidden;
-}
-
-div {
- border: 0;
- margin: 0;
-}
-
-/*
-#offsetDiv {
- margin-left: 100px;
- margin-top: 100px;
-}
-*/
-
-#test1 {
- margin: 0;
- height: 500px;
-}
-
-#test1 svg {
- height: 500px;
-}
-
-</style>
-
-<body>
-
-<div id="offsetDiv">
- <div id="test1" class="chartWrap">
- <svg></svg>
- </div>
-</div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterChart.js"></script>
-<script>
-
-
-
-//Format A
-nv.addGraph(function() {
- var chart = nv.models.scatterChart()
- .showDistX(true)
- .showDistY(true)
- //.height(500)
- .color(d3.scale.category10().range());
-
- chart.xAxis.tickFormat(d3.format('.02f'))
- chart.yAxis.tickFormat(d3.format('.02f'))
-
- d3.select('#test1 svg')
- .datum(randomData(4,40))
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-
-function randomData(groups, points) { //# groups,# points per group
- var data = [],
- shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
- random = d3.random.normal();
-
- for (i = 0; i < groups; i++) {
- data.push({
- key: 'Group ' + i,
- values: []
- });
-
- for (j = 0; j < points; j++) {
- data[i].values.push({
- x: random(),
- y: random(),
- size: Math.random(),
- shape: shapes[j % 6]
- });
- }
- }
-
- return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js
deleted file mode 100755
index 224dee8f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js
+++ /dev/null
@@ -1,293 +0,0 @@
-nv.models.scatterChart = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- width = null,
- height = null,
- color = d3.scale.category20().range(),
- showDistX = false,
- showDistY = false,
- showLegend = true,
- tooltips = true,
- tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' },
- tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' },
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- };
-
-
- var scatter = nv.models.scatter(),
- x = scatter.xScale(),
- y = scatter.yScale(),
- xAxis = nv.models.axis().orient('bottom').scale(x).tickPadding(10),
- yAxis = nv.models.axis().orient('left').scale(y).tickPadding(10),
- legend = nv.models.legend().height(30),
- distX = nv.models.distribution().axis('x').scale(x),
- distY = nv.models.distribution().axis('y').scale(y),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
- x0, y0; //TODO: abstract distribution component and have old scales stored there
-
- var showTooltip = function(e, offsetElement) {
- //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
- //var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- //top = e.pos[1] + ( offsetElement.offsetTop || 0),
- var leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
- leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
- topY = e.pos[1] + ( offsetElement.offsetTop || 0),
- xVal = xAxis.tickFormat()(scatter.x()(e.point)),
- yVal = yAxis.tickFormat()(scatter.y()(e.point)),
- contentX = tooltipX(e.series.key, xVal, yVal, e, chart),
- contentY = tooltipY(e.series.key, xVal, yVal, e, chart);
- //content = tooltip(e.series.key, xVal, yVal, e, chart);
-
- nv.tooltip.show([leftX, topX], contentX, 'n', 1);
- nv.tooltip.show([leftY, topY], contentY, 'e', 1);
- //nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
- };
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- //TODO: decide if this makes sense to add into all the models for ease of updating (updating without needing the selection)
- chart.update = function() { container.transition().call(chart) };
-
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
-
- x0 = x0 || scatter.xScale();
- y0 = y0 || scatter.yScale();
-
-
-
- var wrap = container.selectAll('g.wrap.scatterChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 scatterChart chart-' + scatter.id()).append('g');
-
- gEnter.append('g').attr('class', 'legendWrap');
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'scatterWrap');
- gEnter.append('g').attr('class', 'distWrap');
-
- var g = wrap.select('g')
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- wrap.select('.legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.legendWrap')
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
- }
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- var scatterWrap = wrap.select('.scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }));
- d3.transition(scatterWrap).call(scatter);
-
-
- xAxis
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight , 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
-
- yAxis
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
- distX
- .width(availableWidth)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.distWrap').append('g')
- .attr('class', 'distributionX')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- g.select('.distributionX')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
-
-
- distY
- .width(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.distWrap').append('g')
- .attr('class', 'distributionY')
- .attr('transform', 'translate(-' + distY.size() + ',0)');
- g.select('.distributionY')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
-
-
-
- legend.dispatch.on('legendClick', function(d,i, that) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- chart.update();
- });
-
- /*
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
-
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
- */
-
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .distx-' + e.pointIndex)
- .attr('y1', e.pos[1] - availableHeight);
- d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .disty-' + e.pointIndex)
- .attr('x2', e.pos[0] + distX.size());
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
- if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, that.parentNode) } ); // TODO: maybe merge with above?
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
-
- d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .distx-' + e.pointIndex)
- .attr('y1', 0);
- d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .disty-' + e.pointIndex)
- .attr('x2', distY.size());
- });
- if (tooltips) dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
- //store old scales for use in transitions on update, to animate from old to new positions, and sizes
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, scatter, 'interactive', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'fisheye', 'fisheyeRadius');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- legend.color(_);
- distX.color(_);
- distY.color(_);
- return chart;
- };
-
- chart.showDistX = function(_) {
- if (!arguments.length) return showDistX;
- showDistX = _;
- return chart;
- };
-
- chart.showDistY = function(_) {
- if (!arguments.length) return showDistY;
- showDistY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js
deleted file mode 100755
index d9963559..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js
+++ /dev/null
@@ -1,418 +0,0 @@
-
-nv.models.scatterFisheyeChart = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- width = null,
- height = null,
- color = nv.utils.defaultColor(),
- showDistX = false,
- showDistY = false,
- showLegend = true,
- showControls = true,
- fisheye = 0,
- tooltips = true,
- tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' },
- tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' },
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- },
- noData = "No Data Available."
- ;
-
- var x = d3.fisheye.scale(d3.scale.linear).distortion(0),
- y = d3.fisheye.scale(d3.scale.linear).distortion(0);
-
- var scatter = nv.models.scatter().xScale(x).yScale(y),
- //x = scatter.xScale(),
- //y = scatter.yScale(),
- xAxis = nv.models.axis().orient('bottom').scale(x).tickPadding(10),
- yAxis = nv.models.axis().orient('left').scale(y).tickPadding(10),
- legend = nv.models.legend().height(30),
- controls = nv.models.legend().height(30),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
- x0, y0; //TODO: abstract distribution component and have old scales stored there
-
- var showTooltip = function(e, offsetElement) {
- //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
- //var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- //top = e.pos[1] + ( offsetElement.offsetTop || 0),
- var leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
- leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
- topY = e.pos[1] + ( offsetElement.offsetTop || 0),
- xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
- yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex)),
- contentX = tooltipX(e.series.key, xVal, yVal, e, chart),
- contentY = tooltipY(e.series.key, xVal, yVal, e, chart);
- //content = tooltip(e.series.key, xVal, yVal, e, chart);
-
- nv.tooltip.show([leftX, topX], contentX, 'n', 1, offsetElement);
- nv.tooltip.show([leftY, topY], contentY, 'e', 1, offsetElement);
- //nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
- };
-
- var controlsData = [
- { key: 'Magnify', disabled: true }
- ];
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- //TODO: decide if this makes sense to add into all the models for ease of updating (updating without needing the selection)
- chart.update = function() { selection.transition().call(chart) };
-
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- container.append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('x', availableWidth / 2)
- .attr('y', availableHeight / 2)
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle')
- .text(noData);
- return chart;
- } else {
- container.select('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
-
- x0 = x0 || scatter.xScale();
- y0 = y0 || scatter.yScale();
-
-
- var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id()).append('g');
-
-
- gEnter.append('rect')
- .attr('class', 'nvd3 nv-background')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
-
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
- //gEnter.append('g').attr('class', 'nv-distWrap');
-
- var g = wrap.select('g')
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- wrap.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
- }
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- if (showControls) {
- controls.width(180).color(['#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- var scatterWrap = wrap.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }));
- d3.transition(scatterWrap).call(scatter);
-
-
- xAxis
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight , 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.nv-x.nv-axis'))
- .call(xAxis);
-
-
- yAxis
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.nv-y.nv-axis'))
- .call(yAxis);
-
-
-
-
- //TODO abstract Distribution into its own component
- if ( showDistX || showDistY) {
- var distWrap = scatterWrap.selectAll('g.nv-distribution')
- .data(function(d) { return d }, function(d) { return d.key });
-
- distWrap.enter().append('g').attr('class', function(d,i) { return 'nv-distribution nv-series-' + i })
-
- distWrap.style('stroke', function(d,i) { return color.filter(function(d,i) { return data[i] && !data[i].disabled })[i % color.length] })
- }
-
- if (showDistX) {
- var distX = distWrap.selectAll('line.nv-distX')
- .data(function(d) { return d.values })
- distX.enter().append('line')
- .attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
- .attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
- //d3.transition(distX.exit())
- d3.transition(distWrap.exit().selectAll('line.nv-distX'))
- .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
- .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
- .remove();
- distX
- .attr('class', function(d,i) { return 'nv-distX nv-distX-' + i })
- .attr('y1', y.range()[0])
- .attr('y2', y.range()[0] + 8);
- d3.transition(distX)
- .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
- .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
- }
-
-
- if (showDistY) {
- var distY = distWrap.selectAll('line.nv-distY')
- .data(function(d) { return d.values })
- distY.enter().append('line')
- .attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
- .attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
- //d3.transition(distY.exit())
- d3.transition(distWrap.exit().selectAll('line.nv-distY'))
- .attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
- .attr('y2', function(d,i) { return y(scatter.y()(d,i)) })
- .remove();
- distY
- .attr('class', function(d,i) { return 'nv-distY nv-distY-' + i })
- .attr('x1', x.range()[0])
- .attr('x2', x.range()[0] - 8)
- d3.transition(distY)
- .attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
- .attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
- }
-
-
-
-
- legend.dispatch.on('legendClick', function(d,i, that) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.nv-series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart)
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- fisheye = d.disabled ? 0 : 2.5;
- g.select('.nv-background').style('pointer-events', d.disabled ? 'none' : 'all');
- scatter.interactive(d.disabled);
- tooltips = d.disabled;
-
- if (d.disabled) {
- x.distortion(fisheye).focus(0);
- y.distortion(fisheye).focus(0);
-
- scatterWrap.call(scatter);
- g.select('.nv-x.nv-axis').call(xAxis);
- g.select('.nv-y.nv-axis').call(yAxis);
- }
-
- selection.transition().call(chart);
- });
-
- /*
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
-
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
- */
-
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- //scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distX-' + e.pointIndex)
- .attr('y1', e.pos[1]);
- //scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distY-' + e.pointIndex)
- .attr('x1', e.pos[0]);
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
- //if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, container[0][0].parentNode) } ); // TODO: maybe merge with above?
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
-
- //scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distX-' + e.pointIndex)
- .attr('y1', y.range()[0]);
- //scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distY-' + e.pointIndex)
- .attr('x1', x.range()[0]);
- });
- dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-
- //TODO: get distributions to work with fisheye
- g.select('.nv-background').on('mousemove', updateFisheye);
- g.select('.nv-point-paths').on('mousemove', updateFisheye);
-
- function updateFisheye() {
- var mouse = d3.mouse(this);
- x.distortion(fisheye).focus(mouse[0]);
- y.distortion(fisheye).focus(mouse[1]);
-
- scatterWrap.call(scatter);
- g.select('.nv-x.nv-axis').call(xAxis);
- g.select('.nv-y.nv-axis').call(yAxis);
- }
-
- //store old scales for use in transitions on update, to animate from old to new positions, and sizes
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, scatter, 'interactive', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'fisheye', 'fisheyeRadius');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showDistX = function(_) {
- if (!arguments.length) return showDistX;
- showDistX = _;
- return chart;
- };
-
- chart.showDistY = function(_) {
- if (!arguments.length) return showDistY;
- showDistY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.fisheye = function(_) {
- if (!arguments.length) return fisheye;
- fisheye = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html
deleted file mode 100755
index 24cb22bc..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
- margin: 0;
- padding: 0;
-}
-
-svg {
- overflow: hidden;
-}
-
-div {
- border: 0;
- margin: 0;
-}
-
-
-#offsetDiv {
-}
-
-
-#test1 {
- margin: 0;
-}
-
-
-</style>
-
-<body>
-
-<div id="offsetDiv">
- <div id="test1" class="chartWrap">
- <svg></svg>
- </div>
-</div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterWithLegend.js"></script>
-<script>
-
-
-
-//Format A
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.scatterWithLegend()
- .width(width)
- .height(height)
- .showDistX(true)
- .showDistY(true)
- .color(d3.scale.category10().range());
- //.width(width)
- //.height(height)
- //.forceX([-4,4])
- //.forceY([-4,4])
- //.margin({top: 20, right: 10, bottom: 50, left: 80})
-
-
- //chart.xaxis.tickFormat(d3.format(".02f"))
-
- var svg =d3.select('#test1 svg')
- .datum(randomData());
-
-
- svg.transition().duration(500)
- .attr('width', width)
- .attr('height', height)
- .call(chart)
- //.attr('width', wid0th)
- //.attr('height', height)
-
- return chart;
- },
- callback: function(graph) {
-
- graph.dispatch.on('tooltipShow', function(e) {
- var offsetElement = document.getElementById("test1"),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatter = d3.format(".2f");
-
-
- /*
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- '<span class="value"><span class="label">x:</span><span class="val">' + formatter(e.point.x) + '</span></span><br>' +
- '<s0pan class="value"><span class="label">y:</span><span class="val">' + formatter(e.point.y) + '</span></span>' +
- '</p>';
-
- nvtooltip.show([left, top], content);
- */
-
- var contentX = '<strong>' + formatter(e.point.x) + '</strong>';
- var contentY = '<strong>' + formatter(e.point.y) + '</strong>';
- var height = nv.utils.windowSize().height - 40;
-
- nv.tooltip.show([left, height - 50], contentX, 'n', 1);
- nv.tooltip.show([5, top], contentY, 'w', 1);
- });
-
-
- graph.dispatch.on('tooltipHide', function(e) {
- nv.tooltip.cleanup();
- });
-
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40,
- margin = graph.margin();
-
-
- if (width < margin.left + margin.right + 20)
- width = margin.left + margin.right + 20;
-
- if (height < margin.top + margin.bottom + 20)
- height = margin.top + margin.bottom + 20;
-
-
- graph
- .width(width)
- .height(height);
-
- d3.select('#test1 svg')
- .attr('width', width)
- .attr('height', height)
- .call(graph);
-
- };
- }
-});
-
-
-function randomData() {
- var data = [],
- random = d3.random.normal();
-
- for (i = 0; i < 2; i++) {
- data.push({
- key: 'Group ' + i,
- values: []
- });
-
- for (j = 0; j < 100; j++) {
- data[i].values.push({x: random(), y: random(), size: Math.random()});
- }
- }
-
- return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js
deleted file mode 100755
index 8434523f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js
+++ /dev/null
@@ -1,261 +0,0 @@
-
-nv.models.scatterWithLegend = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- width = function() { return 960 }, //TODO: should probably make this consistent... or maybe constant in the models, closure in the charts
- height = function() { return 500 },
- xAxisLabelText = false,
- yAxisLabelText = false,
- showDistX = false,
- showDistY = false,
- color = d3.scale.category20().range();
-
- var xAxis = nv.models.axis().orient('bottom').tickPadding(10),
- yAxis = nv.models.axis().orient('left').tickPadding(10),
- legend = nv.models.legend().height(30),
- scatter = nv.models.scatter(),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
- x, y, x0, y0;
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width() - margin.left - margin.right,
- availableHeight = height() - margin.top - margin.bottom;
-
- x0 = x0 || scatter.xScale();
- y0 = y0 || scatter.yScale();
-
-
-
- var wrap = d3.select(this).selectAll('g.wrap.scatterWithLegend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 scatterWithLegend').append('g');
-
- gEnter.append('g').attr('class', 'legendWrap');
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'scatterWrap');
- //gEnter.append('g').attr('class', 'distWrap');
-
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- //.xDomain(x.domain())
- //.yDomain(y.domain())
- .color(data.map(function(d,i) {
- return d.color || color[i % 20];
- }).filter(function(d,i) { return !data[i].disabled }))
-
- var scatterWrap = wrap.select('.scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }));
-
- d3.transition(scatterWrap).call(scatter);
-
-
- x = scatter.xScale();
- y = scatter.yScale();
-
- xAxis.scale(x);
- yAxis.scale(y);
-
-
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- //TODO: Fix height issue on first render if legend height is larger than margin.top, NEED TO FIX EVERY MODEL WITH A LEGEND
- margin.top = legend.height();
-
- var g = wrap.select('g')
- .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- legend.width(availableWidth / 2);
-
- wrap.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
- .call(legend);
-
-
-
-
- if ( showDistX || showDistY) {
- var distWrap = scatterWrap.selectAll('g.distribution')
- .data(function(d) { return d }, function(d) { return d.key });
-
- distWrap.enter().append('g').attr('class', function(d,i) { return 'distribution series-' + i })
-
- distWrap.style('stroke', function(d,i) { return color.filter(function(d,i) { return data[i] && !data[i].disabled })[i % 10] })
- }
-
- if (showDistX) {
- var distX = distWrap.selectAll('line.distX')
- .data(function(d) { return d.values })
- distX.enter().append('line')
- .attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
- .attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
- //d3.transition(distX.exit())
- d3.transition(distWrap.exit().selectAll('line.distX'))
- .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
- .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
- .remove();
- distX
- .attr('class', function(d,i) { return 'distX distX-' + i })
- .attr('y1', y.range()[0])
- .attr('y2', y.range()[0] + 8);
- d3.transition(distX)
- .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
- .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
- }
-
-
- if (showDistY) {
- var distY = distWrap.selectAll('line.distY')
- .data(function(d) { return d.values })
- distY.enter().append('line')
- .attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
- .attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
- //d3.transition(distY.exit())
- d3.transition(distWrap.exit().selectAll('line.distY'))
- .attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
- .attr('y2', function(d,i) { return y(scatter.y()(d,i)) })
- .remove();
- distY
- .attr('class', function(d,i) { return 'distY distY-' + i })
- .attr('x1', x.range()[0])
- .attr('x2', x.range()[0] - 8)
- d3.transition(distY)
- .attr('y1', function(d,i) { return y(scatter.y()(d,i)) }) .attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
- }
-
-
- xAxis
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight , 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
-
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
-
- yAxis
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
-
-
- legend.dispatch.on('legendClick', function(d,i, that) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart)
- });
-
- /*
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
-
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
- */
-
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow({
- point: e.point,
- series: e.series,
- pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
- seriesIndex: e.seriesIndex,
- pointIndex: e.pointIndex
- });
-
- scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
- .attr('y1', e.pos[1]);
- scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
- .attr('x1', e.pos[0]);
- });
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
-
- scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
- .attr('y1', y.range()[0]);
- scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
- .attr('x1', x.range()[0]);
- });
-
-
- //store old scales for use in transitions on update, to animate from old to new positions, and sizes
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius');
-
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = d3.functor(_);
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- legend.color(_);
- return chart;
- };
-
- chart.showDistX = function(_) {
- if (!arguments.length) return showDistX;
- showDistX = _;
- return chart;
- };
-
- chart.showDistY = function(_) {
- if (!arguments.length) return showDistY;
- showDistY = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js
deleted file mode 100755
index c5851cbd..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js
+++ /dev/null
@@ -1,286 +0,0 @@
-
-nv.models.stackedArea = function() {
- //Default Settings
- var margin = {top: 0, right: 0, bottom: 0, left: 0},
- width = 960,
- height = 500,
- color = d3.scale.category20().range(), // array of colors to be used in order
- id = Math.floor(Math.random() * 100000), //Create semi-unique ID incase user doesn't selet one
- getX = function(d) { return d.x }, // accessor to get the x value from a data point
- getY = function(d) { return d.y }, // accessor to get the y value from a data point
- style = 'stack',
- offset = 'zero',
- order = 'default',
- clipEdge = false; // if true, masks lines within x and y scale
-
-/************************************
- * offset:
- * 'wiggle' (stream)
- * 'zero' (stacked)
- * 'expand' (normalize to 100%)
- * 'silhouette' (simple centered)
- *
- * order:
- * 'inside-out' (stream)
- * 'default' (input order)
- ************************************/
-
- var scatter= nv.models.scatter()
- .size(2.2) // default size
- .sizeDomain([2.5]), //set to speed up calculation, needs to be unset if there is a cstom size accessor
- x = scatter.xScale(),
- y = scatter.yScale(),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'areaClick', 'areaMouseover', 'areaMouseout');
-
- function chart(selection) {
- selection.each(function(data) {
- // Need to leave data alone to switch between stacked, stream, and expanded
- var dataCopy = JSON.parse(JSON.stringify(data)),
- availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom;
-
- //TODO: try to get rid of the need for copying the data, and use the data directly
-
- //console.log(dataCopy);
- dataCopy = dataCopy.map(function(series,i) {
- if (series.disabled)
- series.values = series.values.map(function(d,i) {
- d._y = d.y || d._y;
- d.y = 0; //TODO: need to use value from getY, not always d.y
- return d
- });
- return series;
- });
-
-
- //TODO: deal with negative stacked charts
-
- //compute the data based on offset and order (calc's y0 for every point)
- dataCopy = d3.layout.stack()
- .offset(offset)
- .order(order)
- .values(function(d){ return d.values })
- .y(getY)
- (dataCopy);
-
-
-
- var wrap = d3.select(this).selectAll('g.wrap.stackedarea').data([dataCopy]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 stackedarea');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'areaWrap');
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- //.x(getX)
- .y(function(d) { return d.y + d.y0 }) // TODO: allow for getY to be other than d.y
- .forceY([0])
- .color(dataCopy.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !dataCopy[i].disabled }));
-
- gEnter.append('g').attr('class', 'scatterWrap');
- var scatterWrap= g.select('.scatterWrap')
- .datum(dataCopy.filter(function(d) { return !d.disabled }))
-
- d3.transition(scatterWrap).call(scatter);
-
-
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- defsEnter.append('clipPath')
- .attr('id', 'edge-clip-' + id)
- .append('rect');
-
- wrap.select('#edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#edge-clip-' + id + ')' : '');
-
-
-
-
- var area = d3.svg.area()
- .x(function(d,i) { return x(scatter.x()(d,i)) })
- .y0(function(d) { return y(d.y0) })
- .y1(function(d) { return y(d.y + d.y0) });
-
- var zeroArea = d3.svg.area()
- .x(function(d,i) { return x(scatter.x()(d,i)) })
- .y0(function(d) { return y(d.y0) })
- .y1(function(d) { return y(d.y0) });
-
-
- var path = g.select('.areaWrap').selectAll('path.area')
- .data(function(d) { return d });
- //.data(function(d) { return d }, function(d) { return d.key });
- path.enter().append('path').attr('class', function(d,i) { return 'area area-' + i })
- .on('mouseover', function(d,i) {
- d3.select(this).classed('hover', true);
- dispatch.areaMouseover({
- point: d,
- series: d.key,
- //pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: i
- //pointIndex: d.point
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.areaMouseout({
- point: d,
- series: d.key,
- //pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: i
- //pointIndex: d.point
- });
- })
- .on('click', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.areaClick({
- point: d,
- series: d.key,
- //pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: i
- //pointIndex: d.point
- });
- })
- d3.transition(path.exit())
- .attr('d', function(d,i) { return zeroArea(d.values,i) }) // TODO: fix this so transition is still fluid
- .remove();
- path
- .style('fill', function(d,i){ return d.color || color[i % color.length] })
- .style('stroke', function(d,i){ return d.color || color[i % color.length] });
- d3.transition(path)
- .attr('d', function(d,i) { return area(d.values,i) })
-
-
- scatter.dispatch.on('elementClick.area', function(e) {
- dispatch.areaClick(e);
- })
- scatter.dispatch.on('elementMouseover.area', function(e) {
- g.select('.area-' + e.seriesIndex).classed('hover', true);
- });
- scatter.dispatch.on('elementMouseout.area', function(e) {
- g.select('.area-' + e.seriesIndex).classed('hover', false);
- });
-
- });
-
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.scatter = scatter;
-
- d3.rebind(chart, scatter, 'x', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius');
-
- /*
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_);
- scatter.x(_);
- return chart;
- };
- */
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- //scatter.y(_);
- return chart;
- }
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- return chart;
- };
-
- chart.offset = function(_) {
- if (!arguments.length) return offset;
- offset = _;
- return chart;
- };
-
- chart.order = function(_) {
- if (!arguments.length) return order;
- order = _;
- return chart;
- };
-
- //shortcut for offset + order
- chart.style = function(_) {
- if (!arguments.length) return style;
- style = _;
-
- switch (style) {
- case 'stack':
- offset = 'zero';
- order = 'default';
- break;
- case 'stream':
- offset = 'wiggle';
- order = 'inside-out';
- break;
- case 'expand':
- offset = 'expand';
- order = 'default';
- break;
- }
-
- return chart;
- };
-
-
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html
deleted file mode 100755
index 340d7420..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1, #chart2 {
- height: 500px;
-}
-
-</style>
-<body>
-
- <div>
- <svg id="chart1"></svg>
- </div>
-
- <div>
- <svg id="chart2"></svg>
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaChart.js"></script>
-<script>
-
-
-var histcatexplong = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025298] , [ 1201755600000 , 17.286592443521] , [ 1204261200000 , 16.323141626569] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 29.46138169384] , [ 1283227200000 , 27.357322961862] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0.39001201038526] , [ 1335758400000 , 0.30945472725559] , [ 1338436800000 , 0.31062439305591]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , 13.356778764352] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.895903006119] , [ 1146369600000 , 6.9939633271352] , [ 1149048000000 , 6.7241510257675] , [ 1151640000000 , 5.5611293669516] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169279] , [ 1162270800000 , 7.0016334389777] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.968954653301] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.519182132226] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422456] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234549] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361713] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675084] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.637740867211] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362182] , [ 1314763200000 , 24.778452182432] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.2531374291] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741105] , [ 1333166400000 , 7.1424929577921] , [ 1335758400000 , 7.8076213051482] , [ 1338436800000 , 7.2462684949232]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 14.212410956029] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920665] , [ 1146369600000 , 14.38210972745] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090032] , [ 1154318400000 , 16.244839695188] , [ 1156996800000 , 16.017088850646] , [ 1159588800000 , 14.183951830055] , [ 1162270800000 , 14.148523245697] , [ 1164862800000 , 13.424326059972] , [ 1167541200000 , 12.974450435753] , [ 1170219600000 , 13.23247041802] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.246590583889] , [ 1183176000000 , 17.564505594809] , [ 1185854400000 , 17.872725373165] , [ 1188532800000 , 18.018998508757] , [ 1191124800000 , 15.584518016603] , [ 1193803200000 , 15.480850647181] , [ 1196398800000 , 15.699120036984] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605207] , [ 1204261200000 , 18.982314051295] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929761] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003979] , [ 1217476800000 , 18.929464156258] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.63289219025] , [ 1228021200000 , 14.667835024478] , [ 1230699600000 , 13.946993947308] , [ 1233378000000 , 14.394304684397] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035806] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438287] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670276] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800017] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560787] , [ 1288497600000 , 14.04516285753] , [ 1291093200000 , 13.697412447288] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.961511864531] , [ 1298869200000 , 21.049198298158] , [ 1301544000000 , 22.687631094008] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.883799437121] , [ 1309406400000 , 24.203843814248] , [ 1312084800000 , 22.138760964038] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944556] , [ 1320033600000 , 12.625642461969] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.786018336149] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650734] , [ 1333166400000 , 18.994731295388] , [ 1335758400000 , 18.450055817702] , [ 1338436800000 , 17.863719889669]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , 7.1590087090398] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.136053947247] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925082] , [ 1177905600000 , 5.5191481293345] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474575] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458946] , [ 1243742400000 , 4.7458462454774] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254155] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838003] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 5.1293714074325] , [ 1335758400000 , 5.2586794619016] , [ 1338436800000 , 5.1100853569977]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342042] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618803] , [ 1149048000000 , 21.142678863691] , [ 1151640000000 , 26.568489677529] , [ 1154318400000 , 24.839144939905] , [ 1156996800000 , 25.456187462167] , [ 1159588800000 , 26.350164502826] , [ 1162270800000 , 26.47833320519] , [ 1164862800000 , 26.425979547847] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625832] , [ 1180584000000 , 27.490862424829] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.060480671449] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194127] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664833] , [ 1199077200000 , 30.629727432728] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227842] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288523] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093843] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832098] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618401] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.246007102281] , [ 1241064000000 , 24.530543998509] , [ 1243742400000 , 25.084184918242] , [ 1246334400000 , 16.606166527358] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475753] , [ 1256961600000 , 23.017152085245] , [ 1259557200000 , 25.617745423683] , [ 1262235600000 , 24.061133998642] , [ 1264914000000 , 23.223933318644] , [ 1267333200000 , 24.425887263937] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878676] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450371] , [ 1285819200000 , 30.498967232092] , [ 1288497600000 , 32.403696817912] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.846330510051] , [ 1306814400000 , 39.857316881857] , [ 1309406400000 , 37.675127768208] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702577] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769976] , [ 1333166400000 , 26.434568573937] , [ 1335758400000 , 25.305617871002] , [ 1338436800000 , 24.520919418236]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.1989783050309] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) {
- return { x: d[0], y: d[1] }
- });
- return series;
-});
-
-
-
-var histcatexpshort = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , -0.62238434102863] , [ 1141102800000 , -0.61484565039024] , [ 1143781200000 , -1.0769367918668] , [ 1146369600000 , -1.2221156604129] , [ 1149048000000 , -1.2434858263377] , [ 1151640000000 , -0.58606435489597] , [ 1154318400000 , -0.61478911495141] , [ 1156996800000 , -0.61429362688591] , [ 1159588800000 , -1.1168614112788] , [ 1162270800000 , -1.1510268716612] , [ 1164862800000 , -1.1104724164222] , [ 1167541200000 , -1.2298338563471] , [ 1170219600000 , -1.5053664389104] , [ 1172638800000 , -1.5535266372193] , [ 1175313600000 , -3.1690472535854] , [ 1177905600000 , -3.1273013967041] , [ 1180584000000 , -3.155466271777] , [ 1183176000000 , -3.7158562579437] , [ 1185854400000 , -3.8244546635586] , [ 1188532800000 , -3.5524464859972] , [ 1191124800000 , -3.0472339109128] , [ 1193803200000 , -3.064978140815] , [ 1196398800000 , -3.0818130124986] , [ 1199077200000 , -2.9806791138312] , [ 1201755600000 , -3.7360958775824] , [ 1204261200000 , -3.4687841733263] , [ 1206936000000 , -3.3702018615806] , [ 1209528000000 , -3.1982756208679] , [ 1212206400000 , -3.0489433155104] , [ 1214798400000 , -3.7008275605963] , [ 1217476800000 , -3.8980507260892] , [ 1220155200000 , -3.7680083260241] , [ 1222747200000 , -3.2061890012391] , [ 1225425600000 , -2.6727551440484] , [ 1228021200000 , -2.4469327462935] , [ 1230699600000 , -3.0192419668784] , [ 1233378000000 , -2.892958553476] , [ 1235797200000 , -3.1153570053479] , [ 1238472000000 , -2.9927580570711] , [ 1241064000000 , -3.5061796706294] , [ 1243742400000 , -3.2944159516725] , [ 1246334400000 , -3.4154213240617] , [ 1249012800000 , -3.6492125438171] , [ 1251691200000 , -3.6674164998394] , [ 1254283200000 , -4.6271484977727] , [ 1256961600000 , -4.2433407292676] , [ 1259557200000 , -4.4742625247274] , [ 1262235600000 , -5.2078214612359] , [ 1264914000000 , -5.2209579214469] , [ 1267333200000 , -5.4596395756061] , [ 1270008000000 , -5.6906459276584] , [ 1272600000000 , -6.4981737808665] , [ 1275278400000 , -6.2563044048578] , [ 1277870400000 , -6.175479487959] , [ 1280548800000 , -6.6641002427295] , [ 1283227200000 , -6.3648667745556] , [ 1285819200000 , -5.0270168607884] , [ 1288497600000 , -5.1186072976233] , [ 1291093200000 , -5.1127601587872] , [ 1293771600000 , -5.3015262972641] , [ 1296450000000 , -4.4295728671596] , [ 1298869200000 , -4.5488139745696] , [ 1301544000000 , -2.9021260315957] , [ 1304136000000 , -3.1482096241139] , [ 1306814400000 , -2.8648831814763] , [ 1309406400000 , -2.8149423433441] , [ 1312084800000 , -2.6350669145713] , [ 1314763200000 , -5.9871754759038] , [ 1317355200000 , -8.6127555816399] , [ 1320033600000 , -7.0712887348892] , [ 1322629200000 , -7.3930257999857] , [ 1325307600000 , -6.5183071556304] , [ 1327986000000 , -7.4388913793503] , [ 1330491600000 , -8.2134465182649] , [ 1333166400000 , -7.7836036697105] , [ 1335758400000 , -8.0955053683936] , [ 1338436800000 , -8.0981845818893]]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , -0.24102139376003] , [ 1170219600000 , -0.69960584365035] , [ 1172638800000 , -0.67365051426185] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.31429312464988] , [ 1185854400000 , -0.90018700397153] , [ 1188532800000 , -0.96926214328714] , [ 1191124800000 , -1.1343386468131] , [ 1193803200000 , -1.1335426595455] , [ 1196398800000 , -1.2327663032424] , [ 1199077200000 , -0.41027135492155] , [ 1201755600000 , -0.41779167524802] , [ 1204261200000 , -0.38133883625885] , [ 1206936000000 , 0] , [ 1209528000000 , -0.32550520320253] , [ 1212206400000 , -0.33185144615505] , [ 1214798400000 , -0.68609668877894] , [ 1217476800000 , -0.70001207744308] , [ 1220155200000 , -0.68378680840919] , [ 1222747200000 , -0.40908783182034] , [ 1225425600000 , -0.39074266525646] , [ 1228021200000 , -0.40358490474562] , [ 1230699600000 , -0.85752207262267] , [ 1233378000000 , -0.74395750438805] , [ 1235797200000 , -0.70718832429489] , [ 1238472000000 , -0.76244465406965] , [ 1241064000000 , -0.67618572591984] , [ 1243742400000 , -0.67649596761402] , [ 1246334400000 , -0.94618002703247] , [ 1249012800000 , -0.95408485581014] , [ 1251691200000 , -0.96272139504276] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , -0.25516420149471] , [ 1272600000000 , -0.24106264576017] , [ 1275278400000 , -0.22802547751448] , [ 1277870400000 , -0.62187524046697] , [ 1280548800000 , -0.72155608677106] , [ 1283227200000 , -0.70221659944774] , [ 1285819200000 , -1.1117002584543] , [ 1288497600000 , -1.190911001336] , [ 1291093200000 , -1.1781082003972] , [ 1293771600000 , -1.2125860264875] , [ 1296450000000 , -1.7748010365657] , [ 1298869200000 , -1.8919594178596] , [ 1301544000000 , -1.7077946421533] , [ 1304136000000 , -2.024238803094] , [ 1306814400000 , -1.9769844081819] , [ 1309406400000 , -2.0730275464065] , [ 1312084800000 , -1.9690128240888] , [ 1314763200000 , -5.5557852269348] , [ 1317355200000 , -7.2527933190641] , [ 1320033600000 , -5.7367677053109] , [ 1322629200000 , -6.0409316206662] , [ 1325307600000 , -4.6511525539195] , [ 1327986000000 , -4.526116059083] , [ 1330491600000 , -4.846292325197] , [ 1333166400000 , -2.2663198779425] , [ 1335758400000 , -2.4172072568564] , [ 1338436800000 , -2.3204729601189]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , -0.95707527558303] , [ 1141102800000 , -0.78324346694487] , [ 1143781200000 , -1.2905241058019] , [ 1146369600000 , -1.3880880486779] , [ 1149048000000 , -1.3337247185993] , [ 1151640000000 , -1.0342112071924] , [ 1154318400000 , -1.1264764100183] , [ 1156996800000 , -1.0001002640852] , [ 1159588800000 , -0.85341153093953] , [ 1162270800000 , -0.88452017844596] , [ 1164862800000 , -0.84305725300642] , [ 1167541200000 , -1.0874455682301] , [ 1170219600000 , -1.1714969043168] , [ 1172638800000 , -1.1445856467934] , [ 1175313600000 , -1.1928513334073] , [ 1177905600000 , -1.2365691634265] , [ 1180584000000 , -1.2690940962478] , [ 1183176000000 , -1.662233774695] , [ 1185854400000 , -1.745760538781] , [ 1188532800000 , -1.5209200931271] , [ 1191124800000 , -1.7874791820886] , [ 1193803200000 , -1.7755668105117] , [ 1196398800000 , -1.5456069064618] , [ 1199077200000 , -1.7077541586335] , [ 1201755600000 , -1.6462081650757] , [ 1204261200000 , -1.8624735339628] , [ 1206936000000 , -0.71073453533048] , [ 1209528000000 , -0.75380709640219] , [ 1212206400000 , -0.71020554911716] , [ 1214798400000 , -1.2077850914504] , [ 1217476800000 , -1.0505576787644] , [ 1220155200000 , -0.97804595164878] , [ 1222747200000 , -0.34591294663671] , [ 1225425600000 , -0.19958331514025] , [ 1228021200000 , -0.17599782216296] , [ 1230699600000 , -0.49577714121027] , [ 1233378000000 , -0.51644059173978] , [ 1235797200000 , -0.48576859637083] , [ 1238472000000 , -0.75596531126452] , [ 1241064000000 , -0.72073358315801] , [ 1243742400000 , -0.82125996732294] , [ 1246334400000 , -1.4933216860121] , [ 1249012800000 , -1.5003760525933] , [ 1251691200000 , -1.4744921420596] , [ 1254283200000 , -1.8197844060652] , [ 1256961600000 , -1.6558574419626] , [ 1259557200000 , -1.7256149254159] , [ 1262235600000 , -2.7667194124217] , [ 1264914000000 , -2.9113351806903] , [ 1267333200000 , -3.0172806042796] , [ 1270008000000 , -2.8607175559701] , [ 1272600000000 , -2.629226972169] , [ 1275278400000 , -2.1855196883832] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -1.3788733828844] , [ 1288497600000 , -1.4136792139765] , [ 1291093200000 , -1.5176522942901] , [ 1293771600000 , -1.5776651933208] , [ 1296450000000 , -1.7171675182182] , [ 1298869200000 , -1.8121885250566] , [ 1301544000000 , -1.2221934283206] , [ 1304136000000 , -1.2910715239439] , [ 1306814400000 , -1.1492301612576] , [ 1309406400000 , -1.0613891302841] , [ 1312084800000 , -0.99605193205308] , [ 1314763200000 , -1.7324212072278] , [ 1317355200000 , -1.5226856867477] , [ 1320033600000 , -1.3159138896549] , [ 1322629200000 , -1.3925952659299] , [ 1325307600000 , -1.59624913621] , [ 1327986000000 , -1.5235879880296] , [ 1330491600000 , -1.7315573519279] , [ 1333166400000 , -0.86883431220926] , [ 1335758400000 , -0.90144871282829] , [ 1338436800000 , -0.7010492182517]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , -0.56797103580254] , [ 1141102800000 , -0.57324319174933] , [ 1143781200000 , -1.1014818753272] , [ 1146369600000 , -1.1480256918118] , [ 1149048000000 , -1.0709335336775] , [ 1151640000000 , -0.84876993929658] , [ 1154318400000 , -0.88122638919979] , [ 1156996800000 , -0.86421146074279] , [ 1159588800000 , -0.95093689377974] , [ 1162270800000 , -0.96646862382248] , [ 1164862800000 , -0.96726919442167] , [ 1167541200000 , -0.99874655234936] , [ 1170219600000 , -1.0004843898938] , [ 1172638800000 , -0.9925349676815] , [ 1175313600000 , -1.1888941931287] , [ 1177905600000 , -1.9402228220929] , [ 1180584000000 , -2.03915987194] , [ 1183176000000 , -2.4620526931074] , [ 1185854400000 , -2.2423544651877] , [ 1188532800000 , -1.8790998536037] , [ 1191124800000 , -0.43246873489492] , [ 1193803200000 , -0.40142684216371] , [ 1196398800000 , -0.35646635110466] , [ 1199077200000 , -0.90385702817642] , [ 1201755600000 , -0.86997575249605] , [ 1204261200000 , -0.80101406775415] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.31816167663298] , [ 1217476800000 , -0.309250081849] , [ 1220155200000 , -0.27723698582762] , [ 1222747200000 , -0.32001379372079] , [ 1225425600000 , -0.1940212908561] , [ 1228021200000 , -0.051964569203423] , [ 1230699600000 , -0.68342686502452] , [ 1233378000000 , -0.57645644730726] , [ 1235797200000 , -0.50860972184555] , [ 1238472000000 , -0.44405217759605] , [ 1241064000000 , -0.45224333626901] , [ 1243742400000 , -0.41691818252313] , [ 1246334400000 , -2.4654561579904] , [ 1249012800000 , -2.5473566378551] , [ 1251691200000 , -2.8340604021307] , [ 1254283200000 , -1.8452445924041] , [ 1256961600000 , -1.5626544265386] , [ 1259557200000 , -1.707842764916] , [ 1262235600000 , -1.2237258567344] , [ 1264914000000 , -1.9756896168227] , [ 1267333200000 , -2.0920321696833] , [ 1270008000000 , -1.9782327706952] , [ 1272600000000 , -2.0416328165753] , [ 1275278400000 , -1.7816736134798] , [ 1277870400000 , -0.66092275437689] , [ 1280548800000 , -0.73608099025756] , [ 1283227200000 , -0.63686713461189] , [ 1285819200000 , -0.0024159482973197] , [ 1288497600000 , -0.0023052643588188] , [ 1291093200000 , -0.0023008251965446] , [ 1293771600000 , -0.002247807834351] , [ 1296450000000 , -0.62004345920743] , [ 1298869200000 , -0.69634926653235] , [ 1301544000000 , -0.76013525555354] , [ 1304136000000 , -1.505368495849] , [ 1306814400000 , -1.3456949237707] , [ 1309406400000 , -1.3013934898695] , [ 1312084800000 , -1.183199519395] , [ 1314763200000 , -0.0074317809719494] , [ 1317355200000 , -0.019430458325379] , [ 1320033600000 , -0.015777413509084] , [ 1322629200000 , -0.016463879837718] , [ 1325307600000 , -0.0031338919976225] , [ 1327986000000 , -0.0029770278967514] , [ 1330491600000 , -0.003048902987439] , [ 1333166400000 , -0.71171545945298] , [ 1335758400000 , -0.72003299240508] , [ 1338436800000 , -0.72961974845039]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16816074963595] , [ 1185854400000 , -0.19318598121302] , [ 1188532800000 , -0.20130864403797] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.30476443991021] , [ 1217476800000 , -0.31836730824777] , [ 1220155200000 , -0.30797427879366] , [ 1222747200000 , -0.48318623977865] , [ 1225425600000 , -0.50834562674351] , [ 1228021200000 , -0.47936068182503] , [ 1230699600000 , -0.61753010081956] , [ 1233378000000 , -0.59493587396819] , [ 1235797200000 , -0.62664324339064] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -1.3076157801726] , [ 1256961600000 , -1.2306204787628] , [ 1259557200000 , -1.4728435992801] , [ 1262235600000 , -1.7729831226837] , [ 1264914000000 , -1.7711733839842] , [ 1267333200000 , -1.8233584472099] , [ 1270008000000 , -1.8505979461969] , [ 1272600000000 , -1.5989071613823] , [ 1275278400000 , -1.6636770720413] , [ 1277870400000 , -1.4523909758725] , [ 1280548800000 , -1.503771584105] , [ 1283227200000 , -1.5458561450475] , [ 1285819200000 , -1.457331837483] , [ 1288497600000 , -1.4217332434071] , [ 1291093200000 , -1.4687927303394] , [ 1293771600000 , -1.437223057967] , [ 1296450000000 , -0.72221871524334] , [ 1298869200000 , -0.7399575414588] , [ 1301544000000 , -1.9712239746745] , [ 1304136000000 , -2.2360949351942] , [ 1306814400000 , -2.2147572530541] , [ 1309406400000 , -2.0440932285023] , [ 1312084800000 , -1.9438209561938] , [ 1314763200000 , -4.9035620630386] , [ 1317355200000 , -4.9036674804213] , [ 1320033600000 , -4.1900706458801] , [ 1322629200000 , -4.5602615827955] , [ 1325307600000 , -1.9194421885814] , [ 1327986000000 , -1.8854470816382] , [ 1330491600000 , -1.9514785018245] , [ 1333166400000 , -0.65282205870454] , [ 1335758400000 , -0.57068368199209] , [ 1338436800000 , -0.55902563384907]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , -0.390983707093] , [ 1141102800000 , -0.38471122730537] , [ 1143781200000 , -0.22897173467143] , [ 1146369600000 , -0.23798946472286] , [ 1149048000000 , -0.20721233428173] , [ 1151640000000 , -0.54577697700394] , [ 1154318400000 , -0.50300252995937] , [ 1156996800000 , -0.49609518628103] , [ 1159588800000 , -0.19582276889273] , [ 1162270800000 , -0.60399139945108] , [ 1164862800000 , -0.61477368082886] , [ 1167541200000 , -0.13665869881705] , [ 1170219600000 , -0.13147565243332] , [ 1172638800000 , -0.11819441593356] , [ 1175313600000 , -0.41610825689528] , [ 1177905600000 , -0.38815419659358] , [ 1180584000000 , -0.3703838943035] , [ 1183176000000 , -1.6193903804534] , [ 1185854400000 , -1.6502660417328] , [ 1188532800000 , -1.481875010149] , [ 1191124800000 , -0.96180099322536] , [ 1193803200000 , -0.97017301394967] , [ 1196398800000 , -0.97432971260093] , [ 1199077200000 , -0.36071934518387] , [ 1201755600000 , -0.42150070991777] , [ 1204261200000 , -0.41784042793202] , [ 1206936000000 , -0.70494708349169] , [ 1209528000000 , -0.73449590911984] , [ 1212206400000 , -0.7400163600788] , [ 1214798400000 , -0.52584502195668] , [ 1217476800000 , -0.56224806965368] , [ 1220155200000 , -0.50830855192741] , [ 1222747200000 , -0.79494637898049] , [ 1225425600000 , -0.70391433947286] , [ 1228021200000 , -0.61420660317009] , [ 1230699600000 , -0.41699636242004] , [ 1233378000000 , -0.3779041158185] , [ 1235797200000 , -0.34282498854047] , [ 1238472000000 , -0.83845630450592] , [ 1241064000000 , -0.85937944918912] , [ 1243742400000 , -0.85530287999615] , [ 1246334400000 , -1.2819866264007] , [ 1249012800000 , -1.4598491663715] , [ 1251691200000 , -1.5261472177779] , [ 1254283200000 , -1.2503948993549] , [ 1256961600000 , -1.1767079775724] , [ 1259557200000 , -1.2585538260386] , [ 1262235600000 , -3.420972598165] , [ 1264914000000 , -3.3381337072954] , [ 1267333200000 , -3.7043129330694] , [ 1270008000000 , -4.6924500756609] , [ 1272600000000 , -4.6880683704908] , [ 1275278400000 , -4.3335249071719] , [ 1277870400000 , -3.6545810416445] , [ 1280548800000 , -4.1639787701262] , [ 1283227200000 , -3.8249597612047] , [ 1285819200000 , -0.33221815335641] , [ 1288497600000 , -0.33346468179047] , [ 1291093200000 , -0.34546911228789] , [ 1293771600000 , -0.36609971997147] , [ 1296450000000 , -0.42502545672607] , [ 1298869200000 , -0.38192733348507] , [ 1301544000000 , -0.01991033447621] , [ 1304136000000 , -0.020319195299659] , [ 1306814400000 , -0.018147820835144] , [ 1309406400000 , -0.017923186209383] , [ 1312084800000 , -0.016133999253684] , [ 1314763200000 , -0.72058656278977] , [ 1317355200000 , -0.42812646564889] , [ 1320033600000 , -0.35896134792589] , [ 1322629200000 , -0.38637896444549] , [ 1325307600000 , -0.31794663984021] , [ 1327986000000 , -0.32220831831888] , [ 1330491600000 , -0.37107872672214] , [ 1333166400000 , -0.81968633933695] , [ 1335758400000 , -0.77148300885994] , [ 1338436800000 , -0.77392261735539]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , -0.86346955704548] , [ 1141102800000 , -0.88352373534584] , [ 1143781200000 , -1.2630802711685] , [ 1146369600000 , -1.2352593999242] , [ 1149048000000 , -1.2086379045093] , [ 1151640000000 , -1.0416778473647] , [ 1154318400000 , -0.99326278105154] , [ 1156996800000 , -1.0095045907007] , [ 1159588800000 , -2.0762515478576] , [ 1162270800000 , -2.13066829429] , [ 1164862800000 , -2.2458400474235] , [ 1167541200000 , -2.1315262677135] , [ 1170219600000 , -2.4063108252146] , [ 1172638800000 , -2.3753290631454] , [ 1175313600000 , -2.1119577565913] , [ 1177905600000 , -2.1546804750397] , [ 1180584000000 , -2.3768374034303] , [ 1183176000000 , -1.244878330098] , [ 1185854400000 , -1.2233210265236] , [ 1188532800000 , -1.1715073644317] , [ 1191124800000 , -1.0036136395928] , [ 1193803200000 , -0.9510676777939] , [ 1196398800000 , -0.97553526602196] , [ 1199077200000 , -1.9083849411912] , [ 1201755600000 , -1.855965027796] , [ 1204261200000 , -1.7343633512402] , [ 1206936000000 , -2.1847032903649] , [ 1209528000000 , -2.2095446284368] , [ 1212206400000 , -2.2060678671735] , [ 1214798400000 , -1.0941627910924] , [ 1217476800000 , -1.0004352405294] , [ 1220155200000 , -0.93563501378075] , [ 1222747200000 , 0] , [ 1225425600000 , -0.65155092645953] , [ 1228021200000 , -0.66021585164047] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -0.29297573068109] , [ 1256961600000 , -0.75043756379084] , [ 1259557200000 , -0.85690846482745] , [ 1262235600000 , -0.21937480770873] , [ 1264914000000 , -0.93232569935343] , [ 1267333200000 , -0.94180327525084] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -0.21253553193891] , [ 1288497600000 , -0.23178244747722] , [ 1291093200000 , -0.21481706129968] , [ 1293771600000 , -0.23306463011242] , [ 1296450000000 , -0.90244048159158] , [ 1298869200000 , -1.0410052083529] , [ 1301544000000 , -2.209350937089] , [ 1304136000000 , -2.6540796712932] , [ 1306814400000 , -3.2481210590957] , [ 1309406400000 , -3.0717986354635] , [ 1312084800000 , -2.7493296528921] , [ 1314763200000 , -2.1973991293256] , [ 1317355200000 , -0.86403111842659] , [ 1320033600000 , -0.87824756160219] , [ 1322629200000 , -0.80812571482871] , [ 1325307600000 , -1.6419820357151] , [ 1327986000000 , -1.6893790342619] , [ 1330491600000 , -1.8614499455474] , [ 1333166400000 , -1.814727017516] , [ 1335758400000 , -1.8744942128618] , [ 1338436800000 , -1.7880124850882]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , -0.26079769654951] , [ 1141102800000 , -0.23368425410881] , [ 1143781200000 , -0.46285283466193] , [ 1146369600000 , -0.4588429059205] , [ 1149048000000 , -0.43055120080853] , [ 1151640000000 , -0.26428963363642] , [ 1154318400000 , -0.26203611963364] , [ 1156996800000 , -0.26706156717825] , [ 1159588800000 , -0.024613610779192] , [ 1162270800000 , -0.024351047945929] , [ 1164862800000 , -0.031497065480344] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , -0.83875613435932] , [ 1209528000000 , -0.84367445572656] , [ 1212206400000 , -0.78928126005463] , [ 1214798400000 , -1.1075954825404] , [ 1217476800000 , -1.2704836497926] , [ 1220155200000 , -1.307504052056] , [ 1222747200000 , -0.70440409992826] , [ 1225425600000 , -0.74122140007729] , [ 1228021200000 , -0.82224393045109] , [ 1230699600000 , -1.8719055314571] , [ 1233378000000 , -1.5200311233975] , [ 1235797200000 , -1.5552386899059] , [ 1238472000000 , -1.1576593040773] , [ 1241064000000 , -1.0757811060575] , [ 1243742400000 , -1.0250125722511] , [ 1246334400000 , -2.2747597224127] , [ 1249012800000 , -2.3125499227974] , [ 1251691200000 , -2.2784386530745] , [ 1254283200000 , -1.1518806233757] , [ 1256961600000 , -1.0075503399018] , [ 1259557200000 , -1.1400577929481] , [ 1262235600000 , -0.50677891891165] , [ 1264914000000 , -0.54332908490051] , [ 1267333200000 , -0.55473181189807] , [ 1270008000000 , -0.3633796157757] , [ 1272600000000 , -0.30361861470847] , [ 1275278400000 , -0.24614951229153] , [ 1277870400000 , -1.0959443687647] , [ 1280548800000 , -1.1881529264637] , [ 1283227200000 , -1.1835349242596] , [ 1285819200000 , -0.92507477884561] , [ 1288497600000 , -0.94531016133473] , [ 1291093200000 , -0.93519433603434] , [ 1293771600000 , -1.009221344252] , [ 1296450000000 , -2.3640716285835] , [ 1298869200000 , -2.4914494188556] , [ 1301544000000 , -1.7979456141716] , [ 1304136000000 , -2.1389760840247] , [ 1306814400000 , -1.9721362241269] , [ 1309406400000 , -1.9170229522382] , [ 1312084800000 , -1.8076246545605] , [ 1314763200000 , -2.1010686108381] , [ 1317355200000 , -2.2396373791195] , [ 1320033600000 , -1.8469012813015] , [ 1322629200000 , -2.0079125997321] , [ 1325307600000 , -1.9170007806182] , [ 1327986000000 , -1.9239118384243] , [ 1330491600000 , -2.0649464738798] , [ 1333166400000 , -0.88385747789351] , [ 1335758400000 , -0.91438087144161] , [ 1338436800000 , -0.96513752020965]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.077395192503573] , [ 1146369600000 , -0.079342784160835] , [ 1149048000000 , -0.07376956808809] , [ 1151640000000 , -0.041850521681201] , [ 1154318400000 , -0.037598545052499] , [ 1156996800000 , -0.040984079427717] , [ 1159588800000 , -0.19335817797448] , [ 1162270800000 , -0.18578493919925] , [ 1164862800000 , -0.1769473933101] , [ 1167541200000 , -0.57245352054975] , [ 1170219600000 , -0.61554187332911] , [ 1172638800000 , -0.63016714701151] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.12118014109021] , [ 1185854400000 , -0.11085831487208] , [ 1188532800000 , -0.10901265358445] , [ 1191124800000 , -0.17205583275088] , [ 1193803200000 , -0.16573676303991] , [ 1196398800000 , -0.17954841680392] , [ 1199077200000 , -0.82703336198161] , [ 1201755600000 , -0.76741763304227] , [ 1204261200000 , -0.79430844816827] , [ 1206936000000 , -1.0279404050708] , [ 1209528000000 , -1.0342425093761] , [ 1212206400000 , -1.0903083860383] , [ 1214798400000 , -1.0895432841007] , [ 1217476800000 , -1.1392703218146] , [ 1220155200000 , -0.98872086340391] , [ 1222747200000 , -1.227654651568] , [ 1225425600000 , -1.0527419580394] , [ 1228021200000 , -0.84338280322309] , [ 1230699600000 , -0.5982617279246] , [ 1233378000000 , -0.74123723862634] , [ 1235797200000 , -0.81665712408277] , [ 1238472000000 , -0.89868760705228] , [ 1241064000000 , -0.86338472153689] , [ 1243742400000 , -0.85040889603889] , [ 1246334400000 , -0.82872733882926] , [ 1249012800000 , -1.2797824676355] , [ 1251691200000 , -1.152043882336] , [ 1254283200000 , -0.70125890680538] , [ 1256961600000 , -0.69496338525418] , [ 1259557200000 , -0.81982038022784] , [ 1262235600000 , -0.42841700219624] , [ 1264914000000 , -0.43298861575253] , [ 1267333200000 , -0.46951194437705] , [ 1270008000000 , -0.46723980191721] , [ 1272600000000 , -0.43139262322841] , [ 1275278400000 , -0.4052075794202] , [ 1277870400000 , -0.45399431179247] , [ 1280548800000 , -0.50492374473014] , [ 1283227200000 , -0.49032976375464] , [ 1285819200000 , -0.95769381063728] , [ 1288497600000 , -0.92968381683254] , [ 1291093200000 , -0.90984207437415] , [ 1293771600000 , -0.91448295661871] , [ 1296450000000 , -1.3204103334172] , [ 1298869200000 , -1.3896989018] , [ 1301544000000 , -1.8536993972883] , [ 1304136000000 , -1.9901582471947] , [ 1306814400000 , -1.8731097808809] , [ 1309406400000 , -1.8109819859122] , [ 1312084800000 , -1.7946593386661] , [ 1314763200000 , -1.6002716669781] , [ 1317355200000 , -0.056479286204019] , [ 1320033600000 , -0.046232413998891] , [ 1322629200000 , -0.051182355563531] , [ 1325307600000 , -0.032858749040145] , [ 1327986000000 , -0.032326418106178] , [ 1330491600000 , -0.033980477379241] , [ 1333166400000 , -0.053069550536519] , [ 1335758400000 , -0.055741850564434] , [ 1338436800000 , -0.055851808568252]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.073769471773675] , [ 1146369600000 , -0.077824496315782] , [ 1149048000000 , -0.080696288096361] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16073291656515] , [ 1185854400000 , -0.1646253606633] , [ 1188532800000 , -0.1655815581449] , [ 1191124800000 , -0.74417496631713] , [ 1193803200000 , -0.76230340423681] , [ 1196398800000 , -0.73882938190048] , [ 1199077200000 , -0.3820573391806] , [ 1201755600000 , -0.360757285179] , [ 1204261200000 , -0.38081058463615] , [ 1206936000000 , -0.92767439811083] , [ 1209528000000 , -0.92774728028789] , [ 1212206400000 , -0.85273481694714] , [ 1214798400000 , -1.69407085613] , [ 1217476800000 , -1.5179726219101] , [ 1220155200000 , -1.3576700600738] , [ 1222747200000 , -1.0404839864076] , [ 1225425600000 , -0.95251478838915] , [ 1228021200000 , -1.0610509118017] , [ 1230699600000 , -0.3316792294278] , [ 1233378000000 , -0.33745002288524] , [ 1235797200000 , -0.28806366796683] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , -0.6338555382785] , [ 1249012800000 , -0.62797265130959] , [ 1251691200000 , -0.60264057253794] , [ 1254283200000 , -0.28687231077181] , [ 1256961600000 , -0.22215649778327] , [ 1259557200000 , -0.24027664555676] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) {
- return { x: d[0], y: d[1] }
- });
- return series;
-});
-
-
-
-nv.addGraph(function() {
- var chart = nv.models.stackedAreaChart()
- .clipEdge(true);
-
- chart.xAxis
- .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart1')
- .datum(histcatexplong)
- .transition().duration(500).call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-nv.addGraph(function() {
- var chart = nv.models.stackedAreaChart()
- .clipEdge(true);
-
- chart.xAxis
- .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart2')
- .datum(histcatexpshort)
- .transition().duration(500).call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html
deleted file mode 100755
index e3449928..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaWithLegend.js"></script>
-<script src="../src/charts/stackedAreaChart.js"></script>
-<script>
-
-
-
-
-var histcatexplong = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1025409600000 , 23.041422681023] , [ 1028088000000 , 19.854291255832] , [ 1030766400000 , 21.02286281168] , [ 1033358400000 , 22.093608385173] , [ 1036040400000 , 25.108079299458] , [ 1038632400000 , 26.982389242348] , [ 1041310800000 , 19.828984957662] , [ 1043989200000 , 19.914055036294] , [ 1046408400000 , 19.436150539916] , [ 1049086800000 , 21.558650338602] , [ 1051675200000 , 24.395594061773] , [ 1054353600000 , 24.747089309384] , [ 1056945600000 , 23.491755498807] , [ 1059624000000 , 23.376634878164] , [ 1062302400000 , 24.581223154533] , [ 1064894400000 , 24.922476843538] , [ 1067576400000 , 27.357712939042] , [ 1070168400000 , 26.503020572593] , [ 1072846800000 , 26.658901244878] , [ 1075525200000 , 27.065704156445] , [ 1078030800000 , 28.735320452588] , [ 1080709200000 , 31.572277846319] , [ 1083297600000 , 30.932161503638] , [ 1085976000000 , 31.627029785554] , [ 1088568000000 , 28.728743674232] , [ 1091246400000 , 26.858365172675] , [ 1093924800000 , 27.279922830032] , [ 1096516800000 , 34.408301211324] , [ 1099195200000 , 34.794362930439] , [ 1101790800000 , 35.609978198951] , [ 1104469200000 , 33.574394968037] , [ 1107147600000 , 31.979405070598] , [ 1109566800000 , 31.19009040297] , [ 1112245200000 , 31.083933968994] , [ 1114833600000 , 29.668971113185] , [ 1117512000000 , 31.490638014379] , [ 1120104000000 , 31.818617451128] , [ 1122782400000 , 32.960314008183] , [ 1125460800000 , 31.313383196209] , [ 1128052800000 , 33.125486081852] , [ 1130734800000 , 32.791805509149] , [ 1133326800000 , 33.506038030366] , [ 1136005200000 , 26.96501697216] , [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218209] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957518] , [ 1149048000000 , 26.823411519396] , [ 1151640000000 , 23.850443591587] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393695] , [ 1159588800000 , 27.9771285113] , [ 1162270800000 , 29.073672469719] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687637] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271052] , [ 1175313600000 , 17.558388444187] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201301] , [ 1183176000000 , 18.729632971229] , [ 1185854400000 , 18.814523318847] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575716] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025297] , [ 1201755600000 , 17.286592443522] , [ 1204261200000 , 16.323141626568] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391095] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.53936647598] , [ 1217476800000 , 15.255131790217] , [ 1220155200000 , 15.660963922592] , [ 1222747200000 , 13.254482273698] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090924] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672228] , [ 1241064000000 , 14.631445864799] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367017] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.756026065421] , [ 1259557200000 , 19.385804443146] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793024] , [ 1280548800000 , 29.461381693838] , [ 1283227200000 , 27.357322961861] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379724] , [ 1293771600000 , 29.449241421598] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449188] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.07966254541] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.418002742929] , [ 1312084800000 , 23.24364413887] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.67238082043] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213898] , [ 1330491600000 , 20.366462219461] , [ 1333166400000 , 19.284784434185] , [ 1335758400000 , 19.157810257624]]
- },
-
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1025409600000 , 7.9356392949025] , [ 1028088000000 , 7.4514668527298] , [ 1030766400000 , 7.9085410566608] , [ 1033358400000 , 5.8996782364764] , [ 1036040400000 , 6.0591869346923] , [ 1038632400000 , 5.9667815800451] , [ 1041310800000 , 8.65528925664] , [ 1043989200000 , 8.7690763386254] , [ 1046408400000 , 8.6386160387453] , [ 1049086800000 , 5.9895557449743] , [ 1051675200000 , 6.3840324338159] , [ 1054353600000 , 6.5196511461441] , [ 1056945600000 , 7.0738618553114] , [ 1059624000000 , 6.5745957367133] , [ 1062302400000 , 6.4658359184444] , [ 1064894400000 , 2.7622758754954] , [ 1067576400000 , 2.9794782986241] , [ 1070168400000 , 2.8735432712019] , [ 1072846800000 , 1.6344817513645] , [ 1075525200000 , 1.5869248754883] , [ 1078030800000 , 1.7172279157246] , [ 1080709200000 , 1.9649927409867] , [ 1083297600000 , 2.0261695079196] , [ 1085976000000 , 2.0541261923929] , [ 1088568000000 , 3.9466318927569] , [ 1091246400000 , 3.7826770946089] , [ 1093924800000 , 3.9543021004028] , [ 1096516800000 , 3.8309891064711] , [ 1099195200000 , 3.6340958946166] , [ 1101790800000 , 3.5289755762525] , [ 1104469200000 , 5.702378559857] , [ 1107147600000 , 5.6539569019223] , [ 1109566800000 , 5.5449506370392] , [ 1112245200000 , 4.7579993280677] , [ 1114833600000 , 4.4816139372906] , [ 1117512000000 , 4.5965558568606] , [ 1120104000000 , 4.3747066116976] , [ 1122782400000 , 4.4588822917087] , [ 1125460800000 , 4.4460351848286] , [ 1128052800000 , 3.7989113035136] , [ 1130734800000 , 3.7743883140088] , [ 1133326800000 , 3.7727852823828] , [ 1136005200000 , 7.2968111448895] , [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220791] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 5.5611890039181] , [ 1335758400000 , 5.5979368839939]]
- },
-
- {
- "key" : "Energy" ,
- "values" : [ [ 1025409600000 , 1.4646843173806] , [ 1028088000000 , 1.2255947178893] , [ 1030766400000 , 1.4158447149914] , [ 1033358400000 , 1.0079176473732] , [ 1036040400000 , 1.30237558984] , [ 1038632400000 , 1.688609181773] , [ 1041310800000 , 2.084300956831] , [ 1043989200000 , 2.1374370551873] , [ 1046408400000 , 2.3282783517776] , [ 1049086800000 , 2.1973076058812] , [ 1051675200000 , 2.157261693164] , [ 1054353600000 , 2.2517863434814] , [ 1056945600000 , 1.2228256346504] , [ 1059624000000 , 1.1440109589209] , [ 1062302400000 , 1.2064470359759] , [ 1064894400000 , 2.500656510238] , [ 1067576400000 , 2.5387208947759] , [ 1070168400000 , 2.4603613044678] , [ 1072846800000 , 3.0150440824201] , [ 1075525200000 , 3.0543883162347] , [ 1078030800000 , 3.2706600781893] , [ 1080709200000 , 3.6312746608013] , [ 1083297600000 , 3.7328532659082] , [ 1085976000000 , 3.766358446065] , [ 1088568000000 , 2.6344481471685] , [ 1091246400000 , 2.763489510345] , [ 1093924800000 , 2.8565862394721] , [ 1096516800000 , 3.8555975117279] , [ 1099195200000 , 3.7062421881707] , [ 1101790800000 , 3.8020128704686] , [ 1104469200000 , 4.309131851142] , [ 1107147600000 , 4.3553997741931] , [ 1109566800000 , 4.8208488504576] , [ 1112245200000 , 4.1337237657138] , [ 1114833600000 , 3.8976502361354] , [ 1117512000000 , 4.0038454785722] , [ 1120104000000 , 3.6457285169699] , [ 1122782400000 , 3.7645930389974] , [ 1125460800000 , 3.9638322190019] , [ 1128052800000 , 4.2470697064323] , [ 1130734800000 , 3.9259866763827] , [ 1133326800000 , 3.8872767584613] , [ 1136005200000 , 1.4275237035221] , [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- },
-
- {
- "key" : "Financials" ,
- "values" : [ [ 1025409600000 , 7.9149900245423] , [ 1028088000000 , 7.0899888751059] , [ 1030766400000 , 7.5996132380614] , [ 1033358400000 , 8.2741174301034] , [ 1036040400000 , 9.3564460833513] , [ 1038632400000 , 9.7066786059904] , [ 1041310800000 , 10.213363052343] , [ 1043989200000 , 10.285809585273] , [ 1046408400000 , 10.222053149228] , [ 1049086800000 , 8.6188592137975] , [ 1051675200000 , 9.3335447543566] , [ 1054353600000 , 8.9312402186628] , [ 1056945600000 , 8.1895089343658] , [ 1059624000000 , 8.260622135079] , [ 1062302400000 , 7.7700786851364] , [ 1064894400000 , 7.9907428771318] , [ 1067576400000 , 8.7769091865606] , [ 1070168400000 , 8.4855077060661] , [ 1072846800000 , 9.6277203033655] , [ 1075525200000 , 9.9685913452624] , [ 1078030800000 , 10.615085181759] , [ 1080709200000 , 9.2902488079646] , [ 1083297600000 , 8.8610439830061] , [ 1085976000000 , 9.1075344931229] , [ 1088568000000 , 9.9156737639203] , [ 1091246400000 , 9.7826003238782] , [ 1093924800000 , 10.55403610555] , [ 1096516800000 , 10.926900264097] , [ 1099195200000 , 10.903144818736] , [ 1101790800000 , 10.862890389067] , [ 1104469200000 , 10.64604998964] , [ 1107147600000 , 10.042790814087] , [ 1109566800000 , 9.7173391591038] , [ 1112245200000 , 9.6122415755443] , [ 1114833600000 , 9.4337921146562] , [ 1117512000000 , 9.814827171183] , [ 1120104000000 , 12.059260396788] , [ 1122782400000 , 12.139649903873] , [ 1125460800000 , 12.281290663822] , [ 1128052800000 , 8.8037085409056] , [ 1130734800000 , 8.6300618239176] , [ 1133326800000 , 9.1225708491432] , [ 1136005200000 , 12.988124170836] , [ 1138683600000 , 13.356778764353] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.8959030061189] , [ 1146369600000 , 6.9939633271353] , [ 1149048000000 , 6.7241510257676] , [ 1151640000000 , 5.5611293669517] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169278] , [ 1162270800000 , 7.0016334389778] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.9689546533009] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.5191821322261] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422455] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234548] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361712] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675083] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.63774086721] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362181] , [ 1314763200000 , 24.778452182433] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.253137429099] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741104] , [ 1333166400000 , 18.372698836036] , [ 1335758400000 , 18.315881576096]]
- },
-
- {
- "key" : "Health Care" ,
- "values" : [ [ 1025409600000 , 13.153938631352] , [ 1028088000000 , 12.456410521864] , [ 1030766400000 , 12.537048663919] , [ 1033358400000 , 13.947386398309] , [ 1036040400000 , 14.421680682568] , [ 1038632400000 , 14.143238262286] , [ 1041310800000 , 12.229635347478] , [ 1043989200000 , 12.508479916948] , [ 1046408400000 , 12.155368409526] , [ 1049086800000 , 13.335455563994] , [ 1051675200000 , 12.888210138167] , [ 1054353600000 , 12.842092790511] , [ 1056945600000 , 12.513816474199] , [ 1059624000000 , 12.21453674494] , [ 1062302400000 , 11.750848343935] , [ 1064894400000 , 10.526579636787] , [ 1067576400000 , 10.873596086087] , [ 1070168400000 , 11.019967131519] , [ 1072846800000 , 11.235789380602] , [ 1075525200000 , 11.859910850657] , [ 1078030800000 , 12.531031616536] , [ 1080709200000 , 11.360451067019] , [ 1083297600000 , 11.456244780202] , [ 1085976000000 , 11.436991407309] , [ 1088568000000 , 11.638595744327] , [ 1091246400000 , 11.190418301469] , [ 1093924800000 , 11.835608007589] , [ 1096516800000 , 11.540980244475] , [ 1099195200000 , 10.958762325687] , [ 1101790800000 , 10.885791159509] , [ 1104469200000 , 13.605810720109] , [ 1107147600000 , 13.128978067437] , [ 1109566800000 , 13.119012086882] , [ 1112245200000 , 13.003706129783] , [ 1114833600000 , 13.326996807689] , [ 1117512000000 , 13.547947991743] , [ 1120104000000 , 12.807959646616] , [ 1122782400000 , 12.931763821068] , [ 1125460800000 , 12.795359993008] , [ 1128052800000 , 9.6998935538319] , [ 1130734800000 , 9.3473740089131] , [ 1133326800000 , 9.36902067716] , [ 1136005200000 , 14.258619539875] , [ 1138683600000 , 14.21241095603] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920664] , [ 1146369600000 , 14.382109727451] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090031] , [ 1154318400000 , 16.244839695189] , [ 1156996800000 , 16.017088850647] , [ 1159588800000 , 14.183951830057] , [ 1162270800000 , 14.148523245696] , [ 1164862800000 , 13.424326059971] , [ 1167541200000 , 12.974450435754] , [ 1170219600000 , 13.232470418021] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.24659058389] , [ 1183176000000 , 17.564505594808] , [ 1185854400000 , 17.872725373164] , [ 1188532800000 , 18.018998508756] , [ 1191124800000 , 15.584518016602] , [ 1193803200000 , 15.480850647182] , [ 1196398800000 , 15.699120036985] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605205] , [ 1204261200000 , 18.982314051293] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929759] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003978] , [ 1217476800000 , 18.929464156259] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.632892190251] , [ 1228021200000 , 14.667835024479] , [ 1230699600000 , 13.946993947309] , [ 1233378000000 , 14.394304684398] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035807] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438286] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670277] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800018] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560786] , [ 1288497600000 , 14.045162857531] , [ 1291093200000 , 13.697412447286] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.96151186453] , [ 1298869200000 , 21.049198298156] , [ 1301544000000 , 22.687631094009] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.88379943712] , [ 1309406400000 , 24.203843814249] , [ 1312084800000 , 22.138760964036] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944555] , [ 1320033600000 , 12.62564246197] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.78601833615] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650733] , [ 1333166400000 , 15.661317319168] , [ 1335758400000 , 15.359891177281]]
- } ,
-
- {
- "key" : "Industrials" ,
- "values" : [ [ 1025409600000 , 3.9133244953315] , [ 1028088000000 , 3.518489051173] , [ 1030766400000 , 3.7355675327774] , [ 1033358400000 , 2.6282873198607] , [ 1036040400000 , 2.8090400696474] , [ 1038632400000 , 3.0820718825965] , [ 1041310800000 , 4.2312761636941] , [ 1043989200000 , 4.2510922012943] , [ 1046408400000 , 4.07193350752] , [ 1049086800000 , 4.4040931689245] , [ 1051675200000 , 4.9759379689913] , [ 1054353600000 , 5.0856875680608] , [ 1056945600000 , 4.2233639497997] , [ 1059624000000 , 4.1845715132052] , [ 1062302400000 , 4.3055194312575] , [ 1064894400000 , 3.349297776236] , [ 1067576400000 , 3.7023871871544] , [ 1070168400000 , 3.7170568683668] , [ 1072846800000 , 3.9155694541972] , [ 1075525200000 , 3.9774182471036] , [ 1078030800000 , 4.1580444091887] , [ 1080709200000 , 4.5495573666535] , [ 1083297600000 , 4.5050302469253] , [ 1085976000000 , 4.7094278163836] , [ 1088568000000 , 6.1937658979517] , [ 1091246400000 , 6.0412923676877] , [ 1093924800000 , 6.1747253413885] , [ 1096516800000 , 6.0800072674329] , [ 1099195200000 , 5.7092602419448] , [ 1101790800000 , 6.092841893499] , [ 1104469200000 , 5.7466125264224] , [ 1107147600000 , 5.5824356250394] , [ 1109566800000 , 5.5727222001361] , [ 1112245200000 , 6.2116832774493] , [ 1114833600000 , 5.8847941423832] , [ 1117512000000 , 5.8120124594798] , [ 1120104000000 , 5.9445727342442] , [ 1122782400000 , 6.1631035517269] , [ 1125460800000 , 5.8577541392534] , [ 1128052800000 , 4.6507957123369] , [ 1130734800000 , 4.4741764311828] , [ 1133326800000 , 4.7062417975264] , [ 1136005200000 , 7.2759032827647] , [ 1138683600000 , 7.1590087090399] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.1360539472469] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925083] , [ 1177905600000 , 5.5191481293346] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474574] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458945] , [ 1243742400000 , 4.7458462454773] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254156] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838002] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 8.5387619987197] , [ 1335758400000 , 8.5984656985168]]
- } ,
-
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1025409600000 , 9.3433263069351] , [ 1028088000000 , 8.4583069475546] , [ 1030766400000 , 8.0342398154196] , [ 1033358400000 , 8.1538966876572] , [ 1036040400000 , 10.743604786849] , [ 1038632400000 , 12.349366155851] , [ 1041310800000 , 10.742682503899] , [ 1043989200000 , 11.360983869935] , [ 1046408400000 , 11.441336039535] , [ 1049086800000 , 10.897508791837] , [ 1051675200000 , 11.469101547709] , [ 1054353600000 , 12.086311476742] , [ 1056945600000 , 8.0697180773504] , [ 1059624000000 , 8.2004392233445] , [ 1062302400000 , 8.4566434900643] , [ 1064894400000 , 7.9565760979059] , [ 1067576400000 , 9.3764619255827] , [ 1070168400000 , 9.0747664160538] , [ 1072846800000 , 10.508939004673] , [ 1075525200000 , 10.69936754483] , [ 1078030800000 , 10.681562399145] , [ 1080709200000 , 13.184786109406] , [ 1083297600000 , 12.668213052351] , [ 1085976000000 , 13.430509403986] , [ 1088568000000 , 12.393086349213] , [ 1091246400000 , 11.942374044842] , [ 1093924800000 , 12.062227685742] , [ 1096516800000 , 11.969974363623] , [ 1099195200000 , 12.14374574055] , [ 1101790800000 , 12.69422821995] , [ 1104469200000 , 9.1235211044692] , [ 1107147600000 , 8.758211757584] , [ 1109566800000 , 8.8072309258443] , [ 1112245200000 , 11.687595946835] , [ 1114833600000 , 11.079723082664] , [ 1117512000000 , 12.049712896076] , [ 1120104000000 , 10.725319428684] , [ 1122782400000 , 10.844849996286] , [ 1125460800000 , 10.833535488461] , [ 1128052800000 , 17.180932407865] , [ 1130734800000 , 15.894764896516] , [ 1133326800000 , 16.412751299498] , [ 1136005200000 , 12.573569093402] , [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342041] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618802] , [ 1149048000000 , 21.142678863692] , [ 1151640000000 , 26.56848967753] , [ 1154318400000 , 24.839144939906] , [ 1156996800000 , 25.456187462166] , [ 1159588800000 , 26.350164502825] , [ 1162270800000 , 26.478333205189] , [ 1164862800000 , 26.425979547846] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625831] , [ 1180584000000 , 27.49086242483] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.06048067145] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194128] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664834] , [ 1199077200000 , 30.629727432729] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227843] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288522] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093842] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832099] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618402] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.24600710228] , [ 1241064000000 , 24.530543998508] , [ 1243742400000 , 25.084184918241] , [ 1246334400000 , 16.606166527359] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475754] , [ 1256961600000 , 23.017152085244] , [ 1259557200000 , 25.617745423684] , [ 1262235600000 , 24.061133998641] , [ 1264914000000 , 23.223933318646] , [ 1267333200000 , 24.425887263936] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878675] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450372] , [ 1285819200000 , 30.49896723209] , [ 1288497600000 , 32.403696817913] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.84633051005] , [ 1306814400000 , 39.857316881858] , [ 1309406400000 , 37.675127768207] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702578] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769977] , [ 1333166400000 , 33.873085184128] , [ 1335758400000 , 32.321039427046]]
- } ,
-
- {
- "key" : "Materials" ,
- "values" : [ [ 1025409600000 , 5.1162447683392] , [ 1028088000000 , 4.2022848306513] , [ 1030766400000 , 4.3543715758736] , [ 1033358400000 , 5.4641223667245] , [ 1036040400000 , 6.0041275884577] , [ 1038632400000 , 6.6050520064486] , [ 1041310800000 , 5.0154059912793] , [ 1043989200000 , 5.1835708554647] , [ 1046408400000 , 5.1142682006164] , [ 1049086800000 , 5.0271381717695] , [ 1051675200000 , 5.3437782653456] , [ 1054353600000 , 5.2105844515767] , [ 1056945600000 , 6.552565997799] , [ 1059624000000 , 6.9873363581831] , [ 1062302400000 , 7.010986789097] , [ 1064894400000 , 4.4254242025515] , [ 1067576400000 , 4.9613848042174] , [ 1070168400000 , 4.8854920484764] , [ 1072846800000 , 4.0441111794228] , [ 1075525200000 , 4.0219596813179] , [ 1078030800000 , 4.3065749225355] , [ 1080709200000 , 3.9148434915404] , [ 1083297600000 , 3.8659430654512] , [ 1085976000000 , 3.9572824600686] , [ 1088568000000 , 4.7372190641522] , [ 1091246400000 , 4.6871476374455] , [ 1093924800000 , 5.0398702564196] , [ 1096516800000 , 5.5221787544964] , [ 1099195200000 , 5.424646299798] , [ 1101790800000 , 5.9240223067349] , [ 1104469200000 , 5.9936860983601] , [ 1107147600000 , 5.8499523215019] , [ 1109566800000 , 6.4149040329325] , [ 1112245200000 , 6.4547895561969] , [ 1114833600000 , 5.9385382611161] , [ 1117512000000 , 6.0486751030592] , [ 1120104000000 , 5.23108613838] , [ 1122782400000 , 5.5857797121029] , [ 1125460800000 , 5.3454665096987] , [ 1128052800000 , 5.0439154120119] , [ 1130734800000 , 5.054634702913] , [ 1133326800000 , 5.3819451380848] , [ 1136005200000 , 5.2638869269803] , [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- } ,
-
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1025409600000 , 1.3503144674343] , [ 1028088000000 , 1.2232741112434] , [ 1030766400000 , 1.3930470790784] , [ 1033358400000 , 1.2631275030593] , [ 1036040400000 , 1.5842699103708] , [ 1038632400000 , 1.9546996043116] , [ 1041310800000 , 0.8504048300986] , [ 1043989200000 , 0.85340686311353] , [ 1046408400000 , 0.843061357391] , [ 1049086800000 , 2.119846992476] , [ 1051675200000 , 2.5285382124858] , [ 1054353600000 , 2.5056570712835] , [ 1056945600000 , 2.5212789901005] , [ 1059624000000 , 2.6192011642534] , [ 1062302400000 , 2.5382187823805] , [ 1064894400000 , 2.3393223047168] , [ 1067576400000 , 2.491219888698] , [ 1070168400000 , 2.497555874906] , [ 1072846800000 , 1.734018115546] , [ 1075525200000 , 1.9307268299646] , [ 1078030800000 , 2.2261679836799] , [ 1080709200000 , 1.7608893704206] , [ 1083297600000 , 1.6242690616808] , [ 1085976000000 , 1.7161663801295] , [ 1088568000000 , 1.7183554537038] , [ 1091246400000 , 1.7179780759145] , [ 1093924800000 , 1.7314274801784] , [ 1096516800000 , 1.2596883356752] , [ 1099195200000 , 1.381177053009] , [ 1101790800000 , 1.4408819615814] , [ 1104469200000 , 3.4743581836444] , [ 1107147600000 , 3.3603749903192] , [ 1109566800000 , 3.5350883257893] , [ 1112245200000 , 3.0949644237828] , [ 1114833600000 , 3.0796455899995] , [ 1117512000000 , 3.3441247640644] , [ 1120104000000 , 4.0947643978168] , [ 1122782400000 , 4.4072631274052] , [ 1125460800000 , 4.4870979780825] , [ 1128052800000 , 4.8404549457934] , [ 1130734800000 , 4.8293016233697] , [ 1133326800000 , 5.2238093263952] , [ 1136005200000 , 3.382306337815] , [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.198978305031] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- } ,
-
- {
- "key" : "Utilities" ,
- "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0.17112421375328] , [ 1036040400000 , 0.16363405009242] , [ 1038632400000 , 0.21933570171591] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- } ,
- {
- "key" : "Not Available" ,
- "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0.050172677311163] , [ 1170219600000 , 0.05010459739003] , [ 1172638800000 , 0.050681828777765] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0.18678212114368] , [ 1209528000000 , 0.17442959307088] , [ 1212206400000 , 0.16359572139598] , [ 1214798400000 , 0.15837381236842] , [ 1217476800000 , 0.15577933366753] , [ 1220155200000 , 0.14891802647046] , [ 1222747200000 , 0.1770757948046] , [ 1225425600000 , 0.18278762496453] , [ 1228021200000 , 0.19687349078343] , [ 1230699600000 , 0.23551013647077] , [ 1233378000000 , 0.25042391829233] , [ 1235797200000 , 0.26937282915476] , [ 1238472000000 , 0.23271248456665] , [ 1241064000000 , 0.20745841982123] , [ 1243742400000 , 0.2011712690448] , [ 1246334400000 , 0.21168244254666] , [ 1249012800000 , 0.20333696030696] , [ 1251691200000 , 0.19775078467844] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 1.3103821402664] , [ 1317355200000 , 1.0444700235618] , [ 1320033600000 , 0.81900499903221] , [ 1322629200000 , 0.81445352296526] , [ 1325307600000 , 0.27519092496306] , [ 1327986000000 , 0.28953340933973] , [ 1330491600000 , 0.31305944539777] , [ 1333166400000 , 0.28710464914403] , [ 1335758400000 , 0.27229889783707]]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) {
- return { x: d[0], y: d[1] }
- });
- return series;
-});
-
-
-
-
-//10 years of daily data may be too much
-var histcatexplongDaily = [ { "key" : "Mega Cap (>50B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 13.642805422451] , [ 1028174400000 , 11.875679731479] , [ 1028260800000 , 11.421399549073] , [ 1028520000000 , 10.733251897009] , [ 1028606400000 , 11.661530061211] , [ 1028692800000 , 11.7112917692] , [ 1028779200000 , 14.103819662727] , [ 1028865600000 , 14.082769347465] , [ 1029124800000 , 11.740860483129] , [ 1029211200000 , 11.860424786601] , [ 1029297600000 , 14.634217807063] , [ 1029384000000 , 14.849983335535] , [ 1029470400000 , 14.617469163739] , [ 1029729600000 , 16.134528802301] , [ 1029816000000 , 16.001785130598] , [ 1029902400000 , 16.289976697577] , [ 1029988800000 , 16.345547017617] , [ 1030075200000 , 15.016771768137] , [ 1030334400000 , 16.514428994396] , [ 1030420800000 , 14.718654428932] , [ 1030507200000 , 14.659657936075] , [ 1030593600000 , 14.845581798872] , [ 1030680000000 , 14.425886992903] , [ 1031025600000 , 13.063561294758] , [ 1031112000000 , 13.932122906329] , [ 1031198400000 , 13.476416945626] , [ 1031284800000 , 13.756946025748] , [ 1031544000000 , 13.666796050119] , [ 1031630400000 , 14.526688014728] , [ 1031716800000 , 13.968113142817] , [ 1031803200000 , 13.387419611065] , [ 1031889600000 , 14.17368612619] , [ 1032148800000 , 14.224580841348] , [ 1032235200000 , 13.09290735702] , [ 1032321600000 , 13.056668289673] , [ 1032408000000 , 12.53361020337] , [ 1032494400000 , 11.662262454349] , [ 1032753600000 , 11.501669840888] , [ 1032840000000 , 11.226801655125] , [ 1032926400000 , 11.284497082087] , [ 1033012800000 , 13.129946485984] , [ 1033099200000 , 11.420661775583] , [ 1033358400000 , 12.764104543578] , [ 1033444800000 , 14.37974813639] , [ 1033531200000 , 14.319534627705] , [ 1033617600000 , 14.431969665087] , [ 1033704000000 , 14.535355684779] , [ 1033963200000 , 11.845381966522] , [ 1034049600000 , 11.906971573215] , [ 1034136000000 , 11.816803497933] , [ 1034222400000 , 14.636112555474] , [ 1034308800000 , 14.401140047604] , [ 1034568000000 , 14.4383532965] , [ 1034654400000 , 15.315563063954] , [ 1034740800000 , 14.878971028191] , [ 1034827200000 , 15.208585835815] , [ 1034913600000 , 15.693137174719] , [ 1035172800000 , 15.034598277674] , [ 1035259200000 , 15.023394017354] , [ 1035345600000 , 14.965539966377] , [ 1035432000000 , 15.068204517412] , [ 1035518400000 , 15.496372824134] , [ 1035781200000 , 15.026019327515] , [ 1035867600000 , 15.789780199601] , [ 1035954000000 , 15.420988765552] , [ 1036040400000 , 15.19068428749] , [ 1036126800000 , 15.98425855061] , [ 1036386000000 , 16.064783253946] , [ 1036472400000 , 16.966824273022] , [ 1036558800000 , 17.45596964696] , [ 1036645200000 , 16.916788666137] , [ 1036731600000 , 17.102426108455] , [ 1036990800000 , 17.34028845108] , [ 1037077200000 , 16.539143629842] , [ 1037163600000 , 15.80939735903] , [ 1037250000000 , 15.855111176764] , [ 1037336400000 , 15.734618234129] , [ 1037595600000 , 15.892924558938] , [ 1037682000000 , 15.545253114352] , [ 1037768400000 , 15.359085649129] , [ 1037854800000 , 16.072238596472] , [ 1037941200000 , 16.365375421162] , [ 1038200400000 , 16.438801060852] , [ 1038286800000 , 16.422576783929] , [ 1038373200000 , 16.541782274988] , [ 1038546000000 , 16.207167343549] , [ 1038805200000 , 15.665677501251] , [ 1038891600000 , 15.138537937859] , [ 1038978000000 , 15.331036283493] , [ 1039064400000 , 15.596673890063] , [ 1039150800000 , 15.398694716648] , [ 1039410000000 , 15.598158295174] , [ 1039496400000 , 15.558200031584] , [ 1039582800000 , 15.599933124483] , [ 1039669200000 , 15.112047186248] , [ 1039755600000 , 14.880637017925] , [ 1040014800000 , 14.630613583715] , [ 1040101200000 , 14.82218746051] , [ 1040187600000 , 14.801519512875] , [ 1040274000000 , 14.842062090649] , [ 1040360400000 , 14.510085979012] , [ 1040619600000 , 14.554647932203] , [ 1040706000000 , 14.497183052048] , [ 1040878800000 , 14.51456751301] , [ 1040965200000 , 14.747037948545] , [ 1041224400000 , 14.692528022465] , [ 1041310800000 , 10.392519679861] , [ 1041483600000 , 11.141137461306] , [ 1041570000000 , 11.206272326815] , [ 1041829200000 , 10.85789519811] , [ 1041915600000 , 11.311933609858] , [ 1042002000000 , 11.380161044131] , [ 1042088400000 , 11.717784290934] , [ 1042174800000 , 12.028210339248] , [ 1042434000000 , 12.276472894786] , [ 1042520400000 , 12.116208904131] , [ 1042606800000 , 11.689835194616] , [ 1042693200000 , 11.368457891523] , [ 1042779600000 , 11.051942634899] , [ 1043125200000 , 11.458426582014] , [ 1043211600000 , 10.950568262598] , [ 1043298000000 , 11.10679225975] , [ 1043384400000 , 11.203723777266] , [ 1043643600000 , 10.658424091851] , [ 1043730000000 , 10.871300642742] , [ 1043816400000 , 10.988239003581] , [ 1043902800000 , 10.358133215817] , [ 1043989200000 , 10.940753926428] , [ 1044248400000 , 11.14568006166] , [ 1044334800000 , 8.9585208923151] , [ 1044421200000 , 8.7817744346045] , [ 1044507600000 , 8.6129438711747] , [ 1044594000000 , 8.8633555330641] , [ 1044853200000 , 8.8343864359275] , [ 1044939600000 , 8.9465395795616] , [ 1045026000000 , 8.7634195320425] , [ 1045112400000 , 8.8871361315497] , [ 1045198800000 , 9.0291418122569] , [ 1045544400000 , 9.1237102415204] , [ 1045630800000 , 8.9858137336982] , [ 1045717200000 , 8.742546099706] , [ 1045803600000 , 8.9344443211012] , [ 1046062800000 , 9.0829293925095] , [ 1046149200000 , 8.8989225778379] , [ 1046235600000 , 8.1117656346095] , [ 1046322000000 , 8.3742305185827] , [ 1046408400000 , 10.727262439505] , [ 1046667600000 , 7.9188332277937] , [ 1046754000000 , 7.9146112750991] , [ 1046840400000 , 7.8459787036756] , [ 1046926800000 , 7.8420047254525] , [ 1047013200000 , 9.9371886629479] , [ 1047272400000 , 9.8240393297163] , [ 1047358800000 , 7.8413860601701] , [ 1047445200000 , 7.9650084142396] , [ 1047531600000 , 7.8786797985204] , [ 1047618000000 , 8.2055012905663] , [ 1047877200000 , 10.601478390204] , [ 1047963600000 , 10.398902029867] , [ 1048050000000 , 10.627615775823] , [ 1048136400000 , 10.762012027294] , [ 1048222800000 , 10.614053354236] , [ 1048482000000 , 8.5741879317356] , [ 1048568400000 , 10.54633171406] , [ 1048654800000 , 10.480316498744] , [ 1048741200000 , 10.41622472039] , [ 1048827600000 , 9.6987100256535] , [ 1049086800000 , 12.885147762294] , [ 1049173200000 , 13.600005371931] , [ 1049259600000 , 15.346046890346] , [ 1049346000000 , 15.804959425555] , [ 1049432400000 , 15.351618676967] , [ 1049688000000 , 15.860383742938] , [ 1049774400000 , 16.328614913588] , [ 1049860800000 , 16.046403127886] , [ 1049947200000 , 15.516364809914] , [ 1050033600000 , 15.355850037441] , [ 1050292800000 , 16.247978845396] , [ 1050379200000 , 15.701258642673] , [ 1050465600000 , 14.959206508197] , [ 1050552000000 , 15.209934799192] , [ 1050897600000 , 15.187040797633] , [ 1050984000000 , 15.310717394893] , [ 1051070400000 , 15.069678308094] , [ 1051156800000 , 15.186547639857] , [ 1051243200000 , 15.401844311752] , [ 1051502400000 , 14.965182242755] , [ 1051588800000 , 15.218815048588] , [ 1051675200000 , 15.044080101465] , [ 1051761600000 , 14.765024470894] , [ 1051848000000 , 14.894364306767] , [ 1052107200000 , 15.041520717597] , [ 1052193600000 , 14.679874556597] , [ 1052280000000 , 14.474117898334] , [ 1052366400000 , 14.875142665563] , [ 1052452800000 , 14.985666574026] , [ 1052712000000 , 15.083672916948] , [ 1052798400000 , 15.251333976098] , [ 1052884800000 , 14.488853489281] , [ 1052971200000 , 14.808389069554] , [ 1053057600000 , 14.615289253814] , [ 1053316800000 , 14.285356974173] , [ 1053403200000 , 15.08853169358] , [ 1053489600000 , 14.791686647147] , [ 1053576000000 , 15.494360129981] , [ 1053662400000 , 16.177500930842] , [ 1054008000000 , 16.305832521808] , [ 1054094400000 , 15.188433161517] , [ 1054180800000 , 14.948735463896] , [ 1054267200000 , 15.355674341407] , [ 1054526400000 , 15.264621469184] , [ 1054612800000 , 15.629277028235] , [ 1054699200000 , 16.955159834879] , [ 1054785600000 , 17.170978563286] , [ 1054872000000 , 17.087791328279] , [ 1055131200000 , 15.514289662549] , [ 1055217600000 , 15.748133673022] , [ 1055304000000 , 15.342799611773] , [ 1055390400000 , 16.616357713953] , [ 1055476800000 , 15.923041806377] , [ 1055736000000 , 15.732325502646] , [ 1055822400000 , 16.048370788878] , [ 1055908800000 , 15.618822159283] , [ 1055995200000 , 15.667291211562] , [ 1056081600000 , 16.761828187852] , [ 1056340800000 , 17.004445546769] , [ 1056427200000 , 17.306815913129] , [ 1056513600000 , 16.623094943016] , [ 1056600000000 , 16.897845029001] , [ 1056686400000 , 17.069588755468] , [ 1056945600000 , 14.757520989809] , [ 1057032000000 , 14.425659827603] , [ 1057118400000 , 14.44363775387] , [ 1057204800000 , 14.494591369121] , [ 1057550400000 , 15.012695798485] , [ 1057636800000 , 14.67349624342] , [ 1057723200000 , 14.418032233926] , [ 1057809600000 , 14.345910201699] , [ 1057896000000 , 14.056283240203] , [ 1058155200000 , 14.51821296933] , [ 1058241600000 , 14.145380868777] , [ 1058328000000 , 14.190701738129] , [ 1058414400000 , 13.129214389333] , [ 1058500800000 , 13.80206240454] , [ 1058760000000 , 13.568708520953] , [ 1058846400000 , 14.206671663782] , [ 1058932800000 , 13.093978065096] , [ 1059019200000 , 13.125162062641] , [ 1059105600000 , 13.109987856564] , [ 1059364800000 , 13.021345728351] , [ 1059451200000 , 13.329027948944] , [ 1059537600000 , 13.477784993802] , [ 1059624000000 , 12.734291817889] , [ 1059710400000 , 13.010113797305] , [ 1059969600000 , 13.017475752135] , [ 1060056000000 , 13.182601569482] , [ 1060142400000 , 13.047852582519] , [ 1060228800000 , 13.03708153917] , [ 1060315200000 , 13.045203429325] , [ 1060574400000 , 13.014488305995] , [ 1060660800000 , 13.030372596575] , [ 1060747200000 , 12.822027505415] , [ 1060833600000 , 12.930627114618] , [ 1060920000000 , 13.046547621206] , [ 1061179200000 , 12.944810608192] , [ 1061265600000 , 12.808411539645] , [ 1061352000000 , 12.947018675176] , [ 1061438400000 , 13.048692063836] , [ 1061524800000 , 12.586172295027] , [ 1061784000000 , 13.327695547504] , [ 1061870400000 , 13.297675405593] , [ 1061956800000 , 12.940141294158] , [ 1062043200000 , 13.209094653523] , [ 1062129600000 , 13.297359958206] , [ 1062475200000 , 13.159985269884] , [ 1062561600000 , 13.114684186086] , [ 1062648000000 , 13.245856819083] , [ 1062734400000 , 12.977072683393] , [ 1062993600000 , 13.394814823289] , [ 1063080000000 , 13.212225945919] , [ 1063166400000 , 13.435464107877] , [ 1063252800000 , 12.98756152002] , [ 1063339200000 , 13.203589274977] , [ 1063598400000 , 13.265765654294] , [ 1063684800000 , 13.383166202067] , [ 1063771200000 , 13.416947848623] , [ 1063857600000 , 13.633832246794] , [ 1063944000000 , 13.218462211004] , [ 1064203200000 , 13.19676330301] , [ 1064289600000 , 13.752487198232] , [ 1064376000000 , 13.443831315224] , [ 1064462400000 , 13.138291171685] , [ 1064548800000 , 13.352279539814] , [ 1064808000000 , 13.215754544261] , [ 1064894400000 , 10.592808398291] , [ 1064980800000 , 11.584316660978] , [ 1065067200000 , 11.592860206884] , [ 1065153600000 , 11.67357840872] , [ 1065412800000 , 11.618432522208] , [ 1065499200000 , 11.62460513772] , [ 1065585600000 , 11.419449828613] , [ 1065672000000 , 11.369890322531] , [ 1065758400000 , 11.426658907868] , [ 1066017600000 , 11.551454757181] , [ 1066104000000 , 11.174308388585] , [ 1066190400000 , 11.430070167733] , [ 1066276800000 , 11.610321240776] , [ 1066363200000 , 11.911265707813] , [ 1066622400000 , 11.628635363612] , [ 1066708800000 , 11.490094710753] , [ 1066795200000 , 11.37777392182] , [ 1066881600000 , 11.287595621855] , [ 1066968000000 , 11.660852133475] , [ 1067230800000 , 11.404622674833] , [ 1067317200000 , 11.620454905862] , [ 1067403600000 , 11.233217971118] , [ 1067490000000 , 11.554977553954] , [ 1067576400000 , 11.562633227696] , [ 1067835600000 , 11.236870599706] , [ 1067922000000 , 11.174994107749] , [ 1068008400000 , 10.985573678768] , [ 1068094800000 , 10.971711382603] , [ 1068181200000 , 11.228481720983] , [ 1068440400000 , 11.173321488567] , [ 1068526800000 , 11.160687490218] , [ 1068613200000 , 10.958180611759] , [ 1068699600000 , 11.215246697489] , [ 1068786000000 , 11.003353777202] , [ 1069045200000 , 11.118979809353] , [ 1069131600000 , 11.351024430878] , [ 1069218000000 , 11.22386406551] , [ 1069304400000 , 11.234282691785] , [ 1069390800000 , 11.182994371566] , [ 1069650000000 , 11.073089635305] , [ 1069736400000 , 11.261198025458] , [ 1069822800000 , 11.297554650262] , [ 1069995600000 , 11.259109011658] , [ 1070254800000 , 11.710803411353] , [ 1070341200000 , 11.766425730406] , [ 1070427600000 , 13.796050893655] , [ 1070514000000 , 14.006188181326] , [ 1070600400000 , 11.950626949166] , [ 1070859600000 , 13.798685011172] , [ 1070946000000 , 11.983535857453] , [ 1071032400000 , 12.051234620267] , [ 1071118800000 , 11.929515424882] , [ 1071205200000 , 14.190401017053] , [ 1071464400000 , 14.024013929524] , [ 1071550800000 , 14.183457200954] , [ 1071637200000 , 14.266961776334] , [ 1071723600000 , 14.430128319216] , [ 1071810000000 , 16.080375421735] , [ 1072069200000 , 16.103353017977] , [ 1072155600000 , 16.279199588854] , [ 1072242000000 , 16.478764873731] , [ 1072414800000 , 16.207205065304] , [ 1072674000000 , 16.39838899585] , [ 1072760400000 , 16.12908590395] , [ 1072846800000 , 15.698379778345] , [ 1073019600000 , 16.020791556937] , [ 1073278800000 , 16.953664091607] , [ 1073365200000 , 16.546879877942] , [ 1073451600000 , 16.380875635123] , [ 1073538000000 , 16.6222746874] , [ 1073624400000 , 16.571366479677] , [ 1073883600000 , 16.503192742954] , [ 1073970000000 , 16.230087714326] , [ 1074056400000 , 16.441952205705] , [ 1074142800000 , 16.467902285953] , [ 1074229200000 , 16.419146113837] , [ 1074574800000 , 16.423642095641] , [ 1074661200000 , 16.315847871454] , [ 1074747600000 , 16.480925866583] , [ 1074834000000 , 16.494885756585] , [ 1075093200000 , 16.451962488884] , [ 1075179600000 , 16.693217958733] , [ 1075266000000 , 15.993935310967] , [ 1075352400000 , 16.445424514045] , [ 1075438800000 , 16.233245530602] , [ 1075698000000 , 16.770975957267] , [ 1075784400000 , 16.637095267862] , [ 1075870800000 , 16.398496990066] , [ 1075957200000 , 16.636433656028] , [ 1076043600000 , 16.741241709345] , [ 1076302800000 , 16.358863820936] , [ 1076389200000 , 16.804453904285] , [ 1076475600000 , 17.122769194349] , [ 1076562000000 , 16.843936830372] , [ 1076648400000 , 17.204663287995] , [ 1076994000000 , 16.861333045809] , [ 1077080400000 , 16.689613022807] , [ 1077166800000 , 17.069156733239] , [ 1077253200000 , 17.161781983051] , [ 1077512400000 , 16.937063286204] , [ 1077598800000 , 16.948634220352] , [ 1077685200000 , 16.805364901553] , [ 1077771600000 , 16.916473084864] , [ 1077858000000 , 16.777305107502] , [ 1078117200000 , 17.195747006378] , [ 1078203600000 , 17.260214849649] , [ 1078290000000 , 17.088976632499] , [ 1078376400000 , 16.815022141032] , [ 1078462800000 , 16.918967781785] , [ 1078722000000 , 17.095709840362] , [ 1078808400000 , 16.836646934174] , [ 1078894800000 , 17.018821619004] , [ 1078981200000 , 16.816361729484] , [ 1079067600000 , 17.289801592392] , [ 1079326800000 , 16.815813656255] , [ 1079413200000 , 17.098047668609] , [ 1079499600000 , 16.914468151547] , [ 1079586000000 , 17.178240266542] , [ 1079672400000 , 17.354705199071] , [ 1079931600000 , 16.706216878288] , [ 1080018000000 , 17.160532281065] , [ 1080104400000 , 17.126776074911] , [ 1080190800000 , 16.889812930307] , [ 1080277200000 , 17.195582036562] , [ 1080536400000 , 17.129316356616] , [ 1080622800000 , 16.904386511219] , [ 1080709200000 , 18.009684567824] , [ 1080795600000 , 17.799449380861] , [ 1080882000000 , 17.786822940824] , [ 1081137600000 , 17.500423232337] , [ 1081224000000 , 19.313645067984] , [ 1081310400000 , 19.523468874436] , [ 1081396800000 , 19.38619537995] , [ 1081742400000 , 19.658135223291] , [ 1081828800000 , 19.285586968736] , [ 1081915200000 , 19.937320237822] , [ 1082001600000 , 19.994342925797] , [ 1082088000000 , 19.306947454208] , [ 1082347200000 , 19.467817124598] , [ 1082433600000 , 19.547761579486] , [ 1082520000000 , 19.322232980481] , [ 1082606400000 , 19.422049603292] , [ 1082692800000 , 19.854231531335] , [ 1082952000000 , 19.671559642044] , [ 1083038400000 , 19.558592251637] , [ 1083124800000 , 19.560424905437] , [ 1083211200000 , 17.254982535721] , [ 1083297600000 , 17.404378517866] , [ 1083556800000 , 18.521278479691] , [ 1083643200000 , 20.518112787263] , [ 1083729600000 , 20.542027197683] , [ 1083816000000 , 18.434303546789] , [ 1083902400000 , 18.176188098008] , [ 1084161600000 , 18.136835001878] , [ 1084248000000 , 18.334410773677] , [ 1084334400000 , 18.990311544463] , [ 1084420800000 , 18.528100939765] , [ 1084507200000 , 18.941798712947] , [ 1084766400000 , 19.159421901243] , [ 1084852800000 , 18.489152131064] , [ 1084939200000 , 18.445857868638] , [ 1085025600000 , 19.117471754165] , [ 1085112000000 , 18.644622094647] , [ 1085371200000 , 18.401791512441] , [ 1085457600000 , 18.10245512817] , [ 1085544000000 , 18.950943150102] , [ 1085630400000 , 20.504012201316] , [ 1085716800000 , 18.729061506676] , [ 1086062400000 , 18.237299730796] , [ 1086148800000 , 18.59102613868] , [ 1086235200000 , 18.799149239853] , [ 1086321600000 , 18.690471126419] , [ 1086580800000 , 20.219228596347] , [ 1086667200000 , 18.410218443454] , [ 1086753600000 , 18.589056441112] , [ 1086840000000 , 18.614078045357] , [ 1087185600000 , 18.75429019969] , [ 1087272000000 , 18.963689720757] , [ 1087358400000 , 18.525491900713] , [ 1087444800000 , 18.591273866415] , [ 1087531200000 , 18.621490700609] , [ 1087790400000 , 18.820314117456] , [ 1087876800000 , 18.654201199086] , [ 1087963200000 , 18.62375596118] , [ 1088049600000 , 18.737678674737] , [ 1088136000000 , 18.779965448567] , [ 1088395200000 , 18.490854345986] , [ 1088481600000 , 18.738058580821] , [ 1088568000000 , 20.646278442114] , [ 1088654400000 , 18.682511679245] , [ 1088740800000 , 18.698327809272] , [ 1089086400000 , 18.94892162567] , [ 1089172800000 , 18.723378716348] , [ 1089259200000 , 18.651336681983] , [ 1089345600000 , 18.898278242083] , [ 1089604800000 , 18.953074409831] , [ 1089691200000 , 19.531665648188] , [ 1089777600000 , 18.597919821526] , [ 1089864000000 , 18.837996019127] , [ 1089950400000 , 18.988809190689] , [ 1090209600000 , 18.964646217864] , [ 1090296000000 , 18.736684594864] , [ 1090382400000 , 19.270952039733] , [ 1090468800000 , 19.072379282817] , [ 1090555200000 , 19.015495000666] , [ 1090814400000 , 19.195675588444] , [ 1090900800000 , 18.709063584519] , [ 1090987200000 , 18.538093091108] , [ 1091073600000 , 18.575715218408] , [ 1091160000000 , 19.098123547811] , [ 1091419200000 , 20.002312938094] , [ 1091505600000 , 19.98285002465] , [ 1091592000000 , 19.995584270913] , [ 1091678400000 , 20.466331536224] , [ 1091764800000 , 19.794414355997] , [ 1092024000000 , 19.749518059094] , [ 1092110400000 , 20.093965457367] , [ 1092196800000 , 19.905652626558] , [ 1092283200000 , 19.678775168419] , [ 1092369600000 , 20.545901299164] , [ 1092628800000 , 19.884869707957] , [ 1092715200000 , 19.776774242544] , [ 1092801600000 , 20.117304302343] , [ 1092888000000 , 19.96093061678] , [ 1092974400000 , 20.143095881477] , [ 1093233600000 , 20.467025105078] , [ 1093320000000 , 19.873677876376] , [ 1093406400000 , 20.385336063088] , [ 1093492800000 , 20.249263649503] , [ 1093579200000 , 19.699915446254] , [ 1093838400000 , 19.513758387166] , [ 1093924800000 , 19.813911853858] , [ 1094011200000 , 19.583613688386] , [ 1094097600000 , 19.585256836835] , [ 1094184000000 , 19.437733249656] , [ 1094529600000 , 19.805095952845] , [ 1094616000000 , 19.784757316099] , [ 1094702400000 , 19.295977520675] , [ 1094788800000 , 19.993577416633] , [ 1095048000000 , 19.728654046906] , [ 1095134400000 , 19.909586376169] , [ 1095220800000 , 19.541292932254] , [ 1095307200000 , 19.538547958006] , [ 1095393600000 , 19.532972576562] , [ 1095652800000 , 19.92993562423] , [ 1095739200000 , 19.507718588521] , [ 1095825600000 , 19.447016394926] , [ 1095912000000 , 19.581582894327] , [ 1095998400000 , 19.397279775437] , [ 1096257600000 , 18.972414718906] , [ 1096344000000 , 19.512430110099] , [ 1096430400000 , 19.160750389058] , [ 1096516800000 , 21.646177747611] , [ 1096603200000 , 21.586752516928] , [ 1096862400000 , 21.933768036886] , [ 1096948800000 , 21.124057573676] , [ 1097035200000 , 20.990484155309] , [ 1097121600000 , 23.202774998191] , [ 1097208000000 , 21.755446722827] , [ 1097467200000 , 21.804100588778] , [ 1097553600000 , 21.937564086025] , [ 1097640000000 , 22.116028802006] , [ 1097726400000 , 21.659512536315] , [ 1097812800000 , 21.587450251975] , [ 1098072000000 , 21.838642600605] , [ 1098158400000 , 21.837029815784] , [ 1098244800000 , 21.813031424014] , [ 1098331200000 , 21.984920792141] , [ 1098417600000 , 21.758729063109] , [ 1098676800000 , 21.935734869092] , [ 1098763200000 , 22.052128108546] , [ 1098849600000 , 21.930648574612] , [ 1098936000000 , 21.78668335978] , [ 1099022400000 , 21.618924642802] , [ 1099285200000 , 21.804042802029] , [ 1099371600000 , 22.169576349235] , [ 1099458000000 , 25.517578427313] , [ 1099544400000 , 25.448725495882] , [ 1099630800000 , 25.496696102096] , [ 1099890000000 , 25.325219480162] , [ 1099976400000 , 25.097074932518] , [ 1100062800000 , 25.222388005927] , [ 1100149200000 , 25.24984515615] , [ 1100235600000 , 25.498608839824] , [ 1100494800000 , 25.157044703788] , [ 1100581200000 , 25.557232435226] , [ 1100667600000 , 25.545893239426] , [ 1100754000000 , 26.070383826557] , [ 1100840400000 , 25.774054391672] , [ 1101099600000 , 25.571637755899] , [ 1101186000000 , 25.416194920183] , [ 1101272400000 , 25.864344506792] , [ 1101445200000 , 26.292748099602] , [ 1101704400000 , 25.362976673756] , [ 1101790800000 , 25.773336316286] , [ 1101877200000 , 25.783090485939] , [ 1101963600000 , 25.194967754687] , [ 1102050000000 , 25.622802162205] , [ 1102309200000 , 25.6425833043] , [ 1102395600000 , 24.920549696072] , [ 1102482000000 , 25.316343230822] , [ 1102568400000 , 25.30531188148] , [ 1102654800000 , 25.225131464585] , [ 1102914000000 , 24.590153649434] , [ 1103000400000 , 25.033533767403] , [ 1103086800000 , 25.008830962368] , [ 1103173200000 , 25.649906697849] , [ 1103259600000 , 25.862079663767] , [ 1103518800000 , 25.148058458615] , [ 1103605200000 , 25.12527979799] , [ 1103691600000 , 25.0574436886] , [ 1103778000000 , 25.09707573417] , [ 1104123600000 , 25.088365613838] , [ 1104210000000 , 24.979491165026] , [ 1104296400000 , 25.170881221308] , [ 1104382800000 , 25.625396478155] , [ 1104469200000 , 24.031265206517] , [ 1104728400000 , 23.343419810151] , [ 1104814800000 , 24.008106210856] , [ 1104901200000 , 23.420005383033] , [ 1104987600000 , 23.275472973038] , [ 1105074000000 , 23.569345951836] , [ 1105333200000 , 22.961729007326] , [ 1105419600000 , 23.55442839573] , [ 1105506000000 , 23.506813486298] , [ 1105592400000 , 23.731268021536] , [ 1105678800000 , 23.696580084935] , [ 1106024400000 , 23.129559778933] , [ 1106110800000 , 22.821363436635] , [ 1106197200000 , 20.86015164814] , [ 1106283600000 , 22.893029615037] , [ 1106542800000 , 23.355475025064] , [ 1106629200000 , 23.089272093595] , [ 1106715600000 , 23.344106490732] , [ 1106802000000 , 23.347887014173] , [ 1106888400000 , 23.36078869705] , [ 1107147600000 , 23.373245981279] , [ 1107234000000 , 23.705979354142] , [ 1107320400000 , 23.865947771013] , [ 1107406800000 , 21.283879539416] , [ 1107493200000 , 23.66199789454] , [ 1107752400000 , 22.965888865612] , [ 1107838800000 , 23.308724058174] , [ 1107925200000 , 23.235706362274] , [ 1108011600000 , 23.205107046442] , [ 1108098000000 , 24.136713081779] , [ 1108357200000 , 23.664808565396] , [ 1108443600000 , 26.075064884573] , [ 1108530000000 , 26.606421256181] , [ 1108616400000 , 26.763619078589] , [ 1108702800000 , 26.640415422821] , [ 1109048400000 , 24.99289465022] , [ 1109134800000 , 24.648148178797] , [ 1109221200000 , 24.968975921517] , [ 1109307600000 , 26.931337546753] , [ 1109566800000 , 24.942658784793] , [ 1109653200000 , 23.471329508474] , [ 1109739600000 , 25.239087941343] , [ 1109826000000 , 25.567769147767] , [ 1109912400000 , 25.483492246231] , [ 1110171600000 , 25.387248674556] , [ 1110258000000 , 26.050717483278] , [ 1110344400000 , 25.295141819132] , [ 1110430800000 , 25.54231254846] , [ 1110517200000 , 25.769024354756] , [ 1110776400000 , 25.245202642321] , [ 1110862800000 , 24.907994697428] , [ 1110949200000 , 23.199402426676] , [ 1111035600000 , 22.585933640283] , [ 1111122000000 , 25.848734598723] , [ 1111381200000 , 22.586407411227] , [ 1111467600000 , 22.852807521609] , [ 1111554000000 , 22.371428313299] , [ 1111640400000 , 22.229261875096] , [ 1111986000000 , 22.340486663288] , [ 1112072400000 , 22.491793252308] , [ 1112158800000 , 22.679006834333] , [ 1112245200000 , 27.086827026963] , [ 1112331600000 , 25.897902387814] , [ 1112587200000 , 26.314813301572] , [ 1112673600000 , 26.317053082588] , [ 1112760000000 , 26.222744149315] , [ 1112846400000 , 25.977457886062] , [ 1112932800000 , 25.781076625606] , [ 1113192000000 , 25.700445032017] , [ 1113278400000 , 25.767099175701] , [ 1113364800000 , 25.254627006031] , [ 1113451200000 , 23.443125239257] , [ 1113537600000 , 23.80709168838] , [ 1113796800000 , 23.267449744421] , [ 1113883200000 , 23.706859094307] , [ 1113969600000 , 23.661405563013] , [ 1114056000000 , 23.689943876315] , [ 1114142400000 , 23.928464880017] , [ 1114401600000 , 24.028677477634] , [ 1114488000000 , 23.6073103617] , [ 1114574400000 , 23.649084903904] , [ 1114660800000 , 23.372608135229] , [ 1114747200000 , 24.22242907229] , [ 1115006400000 , 24.825534085466] , [ 1115092800000 , 25.117295984672] , [ 1115179200000 , 24.979352307832] , [ 1115265600000 , 24.490943462094] , [ 1115352000000 , 24.621445279336] , [ 1115611200000 , 24.878598742424] , [ 1115697600000 , 25.148812466565] , [ 1115784000000 , 24.501099784189] , [ 1115870400000 , 24.478445620986] , [ 1115956800000 , 24.472276247696] , [ 1116216000000 , 24.606928221896] , [ 1116302400000 , 24.579133999631] , [ 1116388800000 , 24.470721627489] , [ 1116475200000 , 25.006560259093] , [ 1116561600000 , 24.309741420169] , [ 1116820800000 , 24.434908261044] , [ 1116907200000 , 24.315643820248] , [ 1116993600000 , 24.861249818558] , [ 1117080000000 , 24.862310288608] , [ 1117166400000 , 24.632493623236] , [ 1117512000000 , 24.329603964259] , [ 1117598400000 , 24.814648698674] , [ 1117684800000 , 25.084052215672] , [ 1117771200000 , 24.273608633215] , [ 1118030400000 , 25.001264387652] , [ 1118116800000 , 25.096801174557] , [ 1118203200000 , 24.801175740278] , [ 1118289600000 , 25.435184904398] , [ 1118376000000 , 24.873408886896] , [ 1118635200000 , 26.951916090161] , [ 1118721600000 , 25.024823913702] , [ 1118808000000 , 26.754562842156] , [ 1118894400000 , 26.83564131576] , [ 1118980800000 , 27.217585001329] , [ 1119240000000 , 26.89094176222] , [ 1119326400000 , 26.76317711477] , [ 1119412800000 , 27.092925092423] , [ 1119499200000 , 27.497947062659] , [ 1119585600000 , 27.35194467719] , [ 1119844800000 , 25.32067578663] , [ 1119931200000 , 24.530768706756] , [ 1120017600000 , 24.364126825119] , [ 1120104000000 , 24.081940207813] , [ 1120190400000 , 23.994423637651] , [ 1120536000000 , 24.788867547072] , [ 1120622400000 , 24.444638477398] , [ 1120708800000 , 25.533775508509] , [ 1120795200000 , 25.074839094522] , [ 1121054400000 , 26.440444017973] , [ 1121140800000 , 26.852648939926] , [ 1121227200000 , 26.83924137895] , [ 1121313600000 , 27.433778491168] , [ 1121400000000 , 26.758522515686] , [ 1121659200000 , 26.935642144492] , [ 1121745600000 , 26.734070820088] , [ 1121832000000 , 27.519441433785] , [ 1121918400000 , 26.518017862082] , [ 1122004800000 , 26.407194381858] , [ 1122264000000 , 26.829477744392] , [ 1122350400000 , 26.302677246028] , [ 1122436800000 , 26.577720100341] , [ 1122523200000 , 27.370389646336] , [ 1122609600000 , 26.636843688831] , [ 1122868800000 , 26.289915786381] , [ 1122955200000 , 25.643665769494] , [ 1123041600000 , 25.029059231656] , [ 1123128000000 , 24.516982777476] , [ 1123214400000 , 24.474346193421] , [ 1123473600000 , 24.359648701401] , [ 1123560000000 , 23.867882495626] , [ 1123646400000 , 25.96989361759] , [ 1123732800000 , 25.744337365068] , [ 1123819200000 , 26.240498253735] , [ 1124078400000 , 26.329012585941] , [ 1124164800000 , 25.860356508261] , [ 1124251200000 , 26.221018056402] , [ 1124337600000 , 26.778749319194] , [ 1124424000000 , 26.102180305031] , [ 1124683200000 , 27.013918924362] , [ 1124769600000 , 26.071662697116] , [ 1124856000000 , 25.5179447868] , [ 1124942400000 , 25.481361146192] , [ 1125028800000 , 25.242448591984] , [ 1125288000000 , 25.798476198329] , [ 1125374400000 , 23.603038168679] , [ 1125460800000 , 23.765648005627] , [ 1125547200000 , 24.753831401627] , [ 1125633600000 , 24.85739962812] , [ 1125979200000 , 26.839336602318] , [ 1126065600000 , 26.596991879082] , [ 1126152000000 , 26.155432451299] , [ 1126238400000 , 26.763242035993] , [ 1126497600000 , 26.560563934301] , [ 1126584000000 , 24.884536060694] , [ 1126670400000 , 25.289649287108] , [ 1126756800000 , 25.085448265753] , [ 1126843200000 , 25.280138080234] , [ 1127102400000 , 25.458692583337] , [ 1127188800000 , 24.916888571226] , [ 1127275200000 , 24.893011271785] , [ 1127361600000 , 25.12227670638] , [ 1127448000000 , 24.931304717681] , [ 1127707200000 , 24.767500892636] , [ 1127793600000 , 24.637929467534] , [ 1127880000000 , 25.395025320764] , [ 1127966400000 , 24.962928819126] , [ 1128052800000 , 18.782225765597] , [ 1128312000000 , 18.413068947688] , [ 1128398400000 , 18.187456094151] , [ 1128484800000 , 16.382273962111] , [ 1128571200000 , 15.781938061444] , [ 1128657600000 , 17.641712023808] , [ 1128916800000 , 17.507777940228] , [ 1129003200000 , 14.982575484996] , [ 1129089600000 , 14.76203928617] , [ 1129176000000 , 13.901962618455] , [ 1129262400000 , 13.833857995254] , [ 1129521600000 , 14.626739123052] , [ 1129608000000 , 14.809415558199] , [ 1129694400000 , 3.750262011271] , [ 1129780800000 , 15.022145959914] , [ 1129867200000 , 14.84289646174] , [ 1130126400000 , 14.600076623491] , [ 1130212800000 , 15.069384911686] , [ 1130299200000 , 14.910371659041] , [ 1130385600000 , 14.862105763073] , [ 1130472000000 , 14.727048171468] , [ 1130734800000 , 15.260100765166] , [ 1130821200000 , 15.5600151884] , [ 1130907600000 , 19.731000055362] , [ 1130994000000 , 16.795807306913] , [ 1131080400000 , 16.996738001815] , [ 1131339600000 , 19.556926922237] , [ 1131426000000 , 19.506935609171] , [ 1131512400000 , 19.29703424702] , [ 1131598800000 , 19.419718073663] , [ 1131685200000 , 19.567047213518] , [ 1131944400000 , 19.115098715137] , [ 1132030800000 , 17.472432281025] , [ 1132117200000 , 17.618400449771] , [ 1132203600000 , 20.517479002355] , [ 1132290000000 , 20.756239971058] , [ 1132549200000 , 21.519442983346] , [ 1132635600000 , 21.031188726302] , [ 1132722000000 , 22.43582291989] , [ 1132894800000 , 22.296678352786] , [ 1133154000000 , 22.533858503329] , [ 1133240400000 , 21.117870159608] , [ 1133326800000 , 20.95249121599] , [ 1133413200000 , 23.24722174208] , [ 1133499600000 , 22.675001400472] , [ 1133758800000 , 23.576237213841] , [ 1133845200000 , 22.88787129189] , [ 1133931600000 , 22.770908601935] , [ 1134018000000 , 22.439568857468] , [ 1134104400000 , 23.182558381821] , [ 1134363600000 , 22.874630115583] , [ 1134450000000 , 23.222236128125] , [ 1134536400000 , 23.592275271288] , [ 1134622800000 , 23.539378476459] , [ 1134709200000 , 23.071905750877] , [ 1134968400000 , 23.424903415098] , [ 1135054800000 , 23.39950282514] , [ 1135141200000 , 23.409965487841] , [ 1135227600000 , 23.505376564929] , [ 1135314000000 , 23.215465806029] , [ 1135659600000 , 23.38563750444] , [ 1135746000000 , 23.045892837142] , [ 1135832400000 , 25.14020101049] , [ 1135918800000 , 25.050918121167] , [ 1136264400000 , 18.257548285625] , [ 1136350800000 , 18.07138317334] , [ 1136437200000 , 18.559144836085] , [ 1136523600000 , 18.215748263083] , [ 1136782800000 , 18.423599466293] , [ 1136869200000 , 18.610764159025] , [ 1136955600000 , 18.279225081891] , [ 1137042000000 , 18.809905785103] , [ 1137128400000 , 18.290641439478] , [ 1137474000000 , 18.524362589947] , [ 1137560400000 , 18.436439687609] , [ 1137646800000 , 18.502251312832] , [ 1137733200000 , 18.487969528691] , [ 1137992400000 , 18.373389449381] , [ 1138078800000 , 18.544218820834] , [ 1138165200000 , 17.937750581715] , [ 1138251600000 , 18.224226859228] , [ 1138338000000 , 18.141385195538] , [ 1138597200000 , 18.249738085169] , [ 1138683600000 , 17.814814745686] , [ 1138770000000 , 17.781574362648] , [ 1138856400000 , 17.091167436213] , [ 1138942800000 , 17.206455021631] , [ 1139202000000 , 17.117879064923] , [ 1139288400000 , 16.875142284891] , [ 1139374800000 , 17.277388501519] , [ 1139461200000 , 17.220400630502] , [ 1139547600000 , 17.029670100642] , [ 1139806800000 , 16.927030268445] , [ 1139893200000 , 17.11816727047] , [ 1139979600000 , 17.558611556387] , [ 1140066000000 , 19.402576903908] , [ 1140152400000 , 19.126188201194] , [ 1140498000000 , 19.560761598583] , [ 1140584400000 , 17.903979712653] , [ 1140670800000 , 18.068981731732] , [ 1140757200000 , 18.024217118293] , [ 1141016400000 , 17.873109133417] , [ 1141102800000 , 17.899192393827] , [ 1141189200000 , 26.199588971665] , [ 1141275600000 , 26.479951387053] , [ 1141362000000 , 25.285815879786] , [ 1141621200000 , 27.058703715471] , [ 1141707600000 , 26.642800176315] , [ 1141794000000 , 26.141193814971] , [ 1141880400000 , 26.425976309753] , [ 1141966800000 , 26.568547718159] , [ 1142226000000 , 27.028560386674] , [ 1142312400000 , 26.675373079039] , [ 1142398800000 , 26.296471957074] , [ 1142485200000 , 26.965051777048] , [ 1142571600000 , 26.795307264427] , [ 1142830800000 , 26.677598766824] , [ 1142917200000 , 26.970489623405] , [ 1143003600000 , 28.767926238413] , [ 1143090000000 , 28.662078861382] , [ 1143176400000 , 28.715033437514] , [ 1143435600000 , 26.866965491591] , [ 1143522000000 , 26.665697187005] , [ 1143608400000 , 27.094212566212] , [ 1143694800000 , 26.377198899426] , [ 1143781200000 , 17.988157107376] , [ 1144036800000 , 17.979227136598] , [ 1144123200000 , 17.50168156796] , [ 1144209600000 , 17.533902324096] , [ 1144296000000 , 17.397391875646] , [ 1144382400000 , 17.435889964946] , [ 1144641600000 , 14.837627151408] , [ 1144728000000 , 14.99708771983] , [ 1144814400000 , 15.230545192078] , [ 1144900800000 , 15.345313643955] , [ 1145246400000 , 15.339384664918] , [ 1145332800000 , 14.876865461271] , [ 1145419200000 , 15.78988738222] , [ 1145505600000 , 15.333583730992] , [ 1145592000000 , 15.193608641755] , [ 1145851200000 , 15.808246257597] , [ 1145937600000 , 15.295969552787] , [ 1146024000000 , 15.148371812064] , [ 1146110400000 , 16.106107352727] , [ 1146196800000 , 16.333282112859] , [ 1146456000000 , 14.884650055543] , [ 1146542400000 , 15.258810745364] , [ 1146628800000 , 14.721963563743] , [ 1146715200000 , 15.2488988172] , [ 1146801600000 , 15.988431274052] , [ 1147060800000 , 15.45824595417] , [ 1147147200000 , 15.124739435655] , [ 1147233600000 , 14.811828262885] , [ 1147320000000 , 15.128441576062] , [ 1147406400000 , 15.018746494625] , [ 1147665600000 , 14.665379658074] , [ 1147752000000 , 14.765323064912] , [ 1147838400000 , 14.610784280202] , [ 1147924800000 , 14.718816211393] , [ 1148011200000 , 14.656810601301] , [ 1148270400000 , 14.556786699143] , [ 1148356800000 , 14.478198586853] , [ 1148443200000 , 14.397840236351] , [ 1148529600000 , 15.024252979406] , [ 1148616000000 , 14.580051069348] , [ 1148961600000 , 14.300391303681] , [ 1149048000000 , 14.591842079573] , [ 1149134400000 , 14.045879482711] , [ 1149220800000 , 14.998948551386] , [ 1149480000000 , 13.603082280637] , [ 1149566400000 , 13.015273433491] , [ 1149652800000 , 12.020962072274] , [ 1149739200000 , 12.734804729782] , [ 1149825600000 , 12.05908953184] , [ 1150084800000 , 11.962310367146] , [ 1150171200000 , 11.905675823274] , [ 1150257600000 , 11.678390952591] , [ 1150344000000 , 12.617974891559] , [ 1150430400000 , 13.00428261632] , [ 1150689600000 , 13.166905117976] , [ 1150776000000 , 12.838210852649] , [ 1150862400000 , 14.205857720773] , [ 1150948800000 , 14.27781290629] , [ 1151035200000 , 14.125291213995] , [ 1151294400000 , 14.258487640197] , [ 1151380800000 , 14.308394058436] , [ 1151467200000 , 14.086062503522] , [ 1151553600000 , 14.45395852164] , [ 1151640000000 , 18.972180774132] , [ 1151899200000 , 18.652505008389] , [ 1152072000000 , 18.263695576831] , [ 1152158400000 , 18.957193689658] , [ 1152244800000 , 18.910911266653] , [ 1152504000000 , 19.193861121078] , [ 1152590400000 , 19.060382975069] , [ 1152676800000 , 18.642412821412] , [ 1152763200000 , 17.957834193597] , [ 1152849600000 , 18.139793734162] , [ 1153108800000 , 17.83004083653] , [ 1153195200000 , 18.316139409078] , [ 1153281600000 , 19.710064937605] , [ 1153368000000 , 19.815399598556] , [ 1153454400000 , 19.787228349669] , [ 1153713600000 , 19.911735187935] , [ 1153800000000 , 21.693668259119] , [ 1153886400000 , 19.476081037883] , [ 1153972800000 , 18.295259329633] , [ 1154059200000 , 18.540577437238] , [ 1154318400000 , 18.074751426702] , [ 1154404800000 , 18.033785983588] , [ 1154491200000 , 18.536305278278] , [ 1154577600000 , 18.227915383291] , [ 1154664000000 , 18.391363101455] , [ 1154923200000 , 18.404022282016] , [ 1155009600000 , 18.968827749274] , [ 1155096000000 , 18.117429090696] , [ 1155182400000 , 18.47137275146] , [ 1155268800000 , 18.558952579185] , [ 1155528000000 , 18.156270409235] , [ 1155614400000 , 18.3013893827] , [ 1155700800000 , 18.057174959825] , [ 1155787200000 , 17.810843618971] , [ 1155873600000 , 18.399431442516] , [ 1156132800000 , 18.190058208738] , [ 1156219200000 , 17.840873866815] , [ 1156305600000 , 17.88239730099] , [ 1156392000000 , 17.927104960481] , [ 1156478400000 , 18.100084639678] , [ 1156737600000 , 18.743432892674] , [ 1156824000000 , 20.487978570463] , [ 1156910400000 , 20.530437630303] , [ 1156996800000 , 18.392773541144] , [ 1157083200000 , 18.338310657286] , [ 1157428800000 , 18.130242907716] , [ 1157515200000 , 18.161660796396] , [ 1157601600000 , 18.419104380403] , [ 1157688000000 , 18.106628670965] , [ 1157947200000 , 18.031398770232] , [ 1158033600000 , 20.076944645868] , [ 1158120000000 , 19.70954459831] , [ 1158206400000 , 19.702415530463] , [ 1158292800000 , 19.869219429035] , [ 1158552000000 , 17.971188530998] , [ 1158638400000 , 17.502486043943] , [ 1158724800000 , 17.786824315026] , [ 1158811200000 , 17.728769927902] , [ 1158897600000 , 18.005797602079] , [ 1159156800000 , 18.040393315711] , [ 1159243200000 , 18.900396698947] , [ 1159329600000 , 18.36048699901] , [ 1159416000000 , 17.731875803548] , [ 1159502400000 , 18.108465169671] , [ 1159761600000 , 20.617022865239] , [ 1159848000000 , 20.324185511727] , [ 1159934400000 , 19.944348897435] , [ 1160020800000 , 20.165689108673] , [ 1160107200000 , 20.784792008539] , [ 1160366400000 , 20.199437314135] , [ 1160452800000 , 20.160773448853] , [ 1160539200000 , 20.274802983803] , [ 1160625600000 , 20.602039599417] , [ 1160712000000 , 20.844066708918] , [ 1160971200000 , 21.106207814522] , [ 1161057600000 , 20.815435947609] , [ 1161144000000 , 20.761198511671] , [ 1161230400000 , 21.09423075218] , [ 1161316800000 , 21.10012619968] , [ 1161576000000 , 20.604110246386] , [ 1161662400000 , 20.295673392568] , [ 1161748800000 , 21.402529155514] , [ 1161835200000 , 21.034137818923] , [ 1161921600000 , 21.183590022355] , [ 1162184400000 , 20.952086891424] , [ 1162270800000 , 21.083320862704] , [ 1162357200000 , 20.337267179176] , [ 1162443600000 , 20.157909334038] , [ 1162530000000 , 20.514329006349] , [ 1162789200000 , 20.906242344223] , [ 1162875600000 , 20.548808226328] , [ 1162962000000 , 20.744002277779] , [ 1163048400000 , 20.563063891109] , [ 1163134800000 , 20.025272140506] , [ 1163394000000 , 20.099216372837] , [ 1163480400000 , 19.912323206182] , [ 1163566800000 , 20.132170489552] , [ 1163653200000 , 20.136836618356] , [ 1163739600000 , 20.279758319526] , [ 1163998800000 , 20.568083117312] , [ 1164085200000 , 20.245443195972] , [ 1164171600000 , 20.769354587751] , [ 1164344400000 , 20.058253473611] , [ 1164603600000 , 20.337288984382] , [ 1164690000000 , 20.489598727098] , [ 1164776400000 , 20.584535521244] , [ 1164862800000 , 20.321611077092] , [ 1164949200000 , 23.762477566775] , [ 1165208400000 , 23.933785218143] , [ 1165294800000 , 23.748190856458] , [ 1165381200000 , 24.472420307822] , [ 1165467600000 , 23.200391877317] , [ 1165554000000 , 23.986587878633] , [ 1165813200000 , 23.98901218464] , [ 1165899600000 , 23.686472866355] , [ 1165986000000 , 23.505163243857] , [ 1166072400000 , 23.749279172726] , [ 1166158800000 , 24.191182857934] , [ 1166418000000 , 24.103058358597] , [ 1166504400000 , 23.048914477117] , [ 1166590800000 , 23.263622267113] , [ 1166677200000 , 23.56769729586] , [ 1166763600000 , 23.618655123764] , [ 1167109200000 , 23.764764642496] , [ 1167195600000 , 23.311395546953] , [ 1167282000000 , 23.34602969198] , [ 1167368400000 , 23.247356469844] , [ 1167800400000 , 21.922350329319] , [ 1167886800000 , 21.793062390508] , [ 1167973200000 , 21.508430555457] , [ 1168232400000 , 21.753304923368] , [ 1168318800000 , 19.669014235032] , [ 1168405200000 , 19.85880321668] , [ 1168491600000 , 19.581369484627] , [ 1168578000000 , 19.416006540692] , [ 1168923600000 , 22.021976979642] , [ 1169010000000 , 22.275963382653] , [ 1169096400000 , 19.621490055971] , [ 1169182800000 , 19.515635937224] , [ 1169442000000 , 19.602346675605] , [ 1169528400000 , 19.978458804271] , [ 1169614800000 , 20.103823579633] , [ 1169701200000 , 19.670461491514] , [ 1169787600000 , 19.953030709912] , [ 1170046800000 , 19.65022612132] , [ 1170133200000 , 19.566798471479] , [ 1170219600000 , 22.552508642478] , [ 1170306000000 , 21.749117654183] , [ 1170392400000 , 21.510747610586] , [ 1170651600000 , 21.272220668557] , [ 1170738000000 , 21.733052020999] , [ 1170824400000 , 21.413067852542] , [ 1170910800000 , 21.357602635129] , [ 1170997200000 , 21.180685726204] , [ 1171256400000 , 22.339017576621] , [ 1171342800000 , 21.611798739066] , [ 1171429200000 , 21.912189034003] , [ 1171515600000 , 21.69862259892] , [ 1171602000000 , 22.387144323734] , [ 1171947600000 , 21.732919970863] , [ 1172034000000 , 22.702979955779] , [ 1172120400000 , 22.182754221217] , [ 1172206800000 , 22.232087752829] , [ 1172466000000 , 22.021621152722] , [ 1172552400000 , 21.724709810714] , [ 1172638800000 , 21.309248152985] , [ 1172725200000 , 23.038720157624] , [ 1172811600000 , 23.356060049391] , [ 1173070800000 , 23.91823257137] , [ 1173157200000 , 22.991381215984] , [ 1173243600000 , 23.17102160603] , [ 1173330000000 , 23.148971918654] , [ 1173416400000 , 23.610353211214] , [ 1173672000000 , 22.922249541257] , [ 1173758400000 , 23.315409134103] , [ 1173844800000 , 23.422547502573] , [ 1173931200000 , 24.177029283137] , [ 1174017600000 , 23.697482422289] , [ 1174276800000 , 23.756025363803] , [ 1174363200000 , 23.496613226255] , [ 1174449600000 , 24.010318972134] , [ 1174536000000 , 24.520421953475] , [ 1174622400000 , 23.623580969787] , [ 1174881600000 , 24.183789369369] , [ 1174968000000 , 23.996590482842] , [ 1175054400000 , 23.661950238353] , [ 1175140800000 , 23.417498406301] , [ 1175227200000 , 23.616740231748] , [ 1175486400000 , 25.535225571539] , [ 1175572800000 , 26.298255894295] , [ 1175659200000 , 26.309566077768] , [ 1175745600000 , 26.765619703864] , [ 1176091200000 , 25.882859817876] , [ 1176177600000 , 26.129452063368] , [ 1176264000000 , 26.642867398103] , [ 1176350400000 , 26.377155585326] , [ 1176436800000 , 26.625738484848] , [ 1176696000000 , 26.459071522205] , [ 1176782400000 , 26.676956427588] , [ 1176868800000 , 26.571556769682] , [ 1176955200000 , 26.3442172594] , [ 1177041600000 , 26.417506846359] , [ 1177300800000 , 26.705784414423] , [ 1177387200000 , 28.853822046765] , [ 1177473600000 , 28.023777635482] , [ 1177560000000 , 27.331722900396] , [ 1177646400000 , 27.357543106507] , [ 1177905600000 , 27.590602889594] , [ 1177992000000 , 26.721966524083] , [ 1178078400000 , 27.94744888776] , [ 1178164800000 , 27.871342504924] , [ 1178251200000 , 28.41898415852] , [ 1178510400000 , 28.139301891821] , [ 1178596800000 , 27.374842696624] , [ 1178683200000 , 28.396528363687] , [ 1178769600000 , 28.151062742446] , [ 1178856000000 , 28.210159898373] , [ 1179115200000 , 28.46627446548] , [ 1179201600000 , 27.889711089443] , [ 1179288000000 , 28.180379553365] , [ 1179374400000 , 28.419925545727] , [ 1179460800000 , 28.79884527223] , [ 1179720000000 , 28.773776030343] , [ 1179806400000 , 28.615671957672] , [ 1179892800000 , 28.226955800775] , [ 1179979200000 , 28.838980751694] , [ 1180065600000 , 28.333474694122] , [ 1180411200000 , 28.175136947162] , [ 1180497600000 , 28.250907436745] , [ 1180584000000 , 28.205031775171] , [ 1180670400000 , 30.562122167461] , [ 1180929600000 , 31.727077547446] , [ 1181016000000 , 31.526712861038] , [ 1181102400000 , 31.371311997888] , [ 1181188800000 , 31.341044313773] , [ 1181275200000 , 32.096525408199] , [ 1181534400000 , 31.102052663028] , [ 1181620800000 , 30.663687036323] , [ 1181707200000 , 31.392135349684] , [ 1181793600000 , 31.303621208067] , [ 1181880000000 , 31.327399629624] , [ 1182139200000 , 30.815822835417] , [ 1182225600000 , 31.942482340983] , [ 1182312000000 , 30.829787514049] , [ 1182398400000 , 29.579785566092] , [ 1182484800000 , 29.644816900172] , [ 1182744000000 , 30.152312600311] , [ 1182830400000 , 31.579014171397] , [ 1182916800000 , 31.648084647514] , [ 1183003200000 , 31.474781607087] , [ 1183089600000 , 29.559060758977] , [ 1183348800000 , 26.454181388487] , [ 1183435200000 , 26.870879403404] , [ 1183608000000 , 27.152761618507] , [ 1183694400000 , 27.522144912008] , [ 1183953600000 , 27.20262813974] , [ 1184040000000 , 25.286880129754] , [ 1184126400000 , 27.076057103394] , [ 1184212800000 , 27.659724803308] , [ 1184299200000 , 27.260718916646] , [ 1184558400000 , 27.492932031785] , [ 1184644800000 , 27.224553608661] , [ 1184731200000 , 27.408650007885] , [ 1184817600000 , 28.047951006202] , [ 1184904000000 , 27.408641988594] , [ 1185163200000 , 27.263249362455] , [ 1185249600000 , 26.846192097814] , [ 1185336000000 , 25.510336963729] , [ 1185422400000 , 25.9319625012] , [ 1185508800000 , 26.048453322021] , [ 1185768000000 , 25.680783888657] , [ 1185854400000 , 26.155314939312] , [ 1185940800000 , 26.042748190345] , [ 1186027200000 , 26.112906314178] , [ 1186113600000 , 25.651501389506] , [ 1186372800000 , 25.978730028686] , [ 1186459200000 , 25.516935670171] , [ 1186545600000 , 25.846110544803] , [ 1186632000000 , 25.003994813684] , [ 1186718400000 , 24.574945831102] , [ 1186977600000 , 25.03458234529] , [ 1187064000000 , 24.728273782212] , [ 1187150400000 , 24.548380537133] , [ 1187236800000 , 25.349499639045] , [ 1187323200000 , 25.399321016235] , [ 1187582400000 , 24.865053752481] , [ 1187668800000 , 24.071211320408] , [ 1187755200000 , 24.313207809179] , [ 1187841600000 , 25.815463088034] , [ 1187928000000 , 25.243808192447] , [ 1188187200000 , 25.659634715983] , [ 1188273600000 , 25.078534407655] , [ 1188360000000 , 25.58598642899] , [ 1188446400000 , 25.638710574976] , [ 1188532800000 , 25.573118710052] , [ 1188878400000 , 27.188374349953] , [ 1188964800000 , 27.275932492214] , [ 1189051200000 , 26.129383672332] , [ 1189137600000 , 25.9551511911] , [ 1189396800000 , 25.897083543731] , [ 1189483200000 , 26.34658405879] , [ 1189569600000 , 25.772151157655] , [ 1189656000000 , 25.505666353462] , [ 1189742400000 , 26.265711263021] , [ 1190001600000 , 26.428538843515] , [ 1190088000000 , 26.090201800345] , [ 1190174400000 , 26.49027091283] , [ 1190260800000 , 25.936695107827] , [ 1190347200000 , 25.560688469795] , [ 1190606400000 , 25.607839534311] , [ 1190692800000 , 26.548172129456] , [ 1190779200000 , 26.648152184763] , [ 1190865600000 , 26.51583644917] , [ 1190952000000 , 26.332757939256] , [ 1191211200000 , 26.152249906616] , [ 1191297600000 , 26.198070214474] , [ 1191384000000 , 25.990253277907] , [ 1191470400000 , 26.654530155526] , [ 1191556800000 , 25.972330764668] , [ 1191816000000 , 26.26248509896] , [ 1191902400000 , 26.348741583743] , [ 1191988800000 , 26.122186986449] , [ 1192075200000 , 29.593995471618] , [ 1192161600000 , 29.731603491274] , [ 1192420800000 , 28.827068536248] , [ 1192507200000 , 29.194892101581] , [ 1192593600000 , 26.924772425739] , [ 1192680000000 , 28.816812772785] , [ 1192766400000 , 26.733109839428] , [ 1193025600000 , 27.58180355578] , [ 1193112000000 , 27.173638592314] , [ 1193198400000 , 27.460463827787] , [ 1193284800000 , 30.621878493441] , [ 1193371200000 , 30.095645552523] , [ 1193630400000 , 29.558326096275] , [ 1193716800000 , 29.618512803515] , [ 1193803200000 , 30.460041175267] , [ 1193889600000 , 30.20410064808] , [ 1193976000000 , 30.268400946785] , [ 1194238800000 , 29.815054700452] , [ 1194325200000 , 29.663525457932] , [ 1194411600000 , 29.717734967739] , [ 1194498000000 , 29.923031415874] , [ 1194584400000 , 29.229595749207] , [ 1194843600000 , 26.876680107031] , [ 1194930000000 , 30.146205827268] , [ 1195016400000 , 29.963451454048] , [ 1195102800000 , 30.409258893906] , [ 1195189200000 , 30.587158002259] , [ 1195448400000 , 30.755226139371] , [ 1195534800000 , 29.958261264696] , [ 1195621200000 , 28.308697359232] , [ 1195794000000 , 30.64361038118] , [ 1196053200000 , 27.883612444559] , [ 1196139600000 , 30.005693265425] , [ 1196226000000 , 32.152433012248] , [ 1196312400000 , 32.424570146425] , [ 1196398800000 , 32.463470052891] , [ 1196658000000 , 29.782382006346] , [ 1196744400000 , 29.926958811799] , [ 1196830800000 , 30.40999379846] , [ 1196917200000 , 30.875736091533] , [ 1197003600000 , 29.697383078305] , [ 1197262800000 , 30.544967835139] , [ 1197349200000 , 30.339856651392] , [ 1197435600000 , 30.958770963045] , [ 1197522000000 , 31.105045247869] , [ 1197608400000 , 31.432564318877] , [ 1197867600000 , 30.713544524238] , [ 1197954000000 , 31.665432740145] , [ 1198040400000 , 30.659352150987] , [ 1198126800000 , 31.307794398172] , [ 1198213200000 , 30.79998865816] , [ 1198472400000 , 30.894681084193] , [ 1198645200000 , 30.912643462141] , [ 1198731600000 , 30.818603352572] , [ 1198818000000 , 30.985941180304] , [ 1199077200000 , 27.413147883654] , [ 1199250000000 , 28.214619106765] , [ 1199336400000 , 27.967472010083] , [ 1199422800000 , 28.627713526321] , [ 1199682000000 , 28.28827242333] , [ 1199768400000 , 28.101528173604] , [ 1199854800000 , 28.352660481501] , [ 1199941200000 , 28.423038285602] , [ 1200027600000 , 28.087400882261] , [ 1200286800000 , 24.531206834157] , [ 1200373200000 , 24.399806157282] , [ 1200459600000 , 27.915965227441] , [ 1200546000000 , 25.596194000672] , [ 1200632400000 , 26.724265623222] , [ 1200978000000 , 26.894494880297] , [ 1201064400000 , 25.744075642582] , [ 1201150800000 , 21.681648035334] , [ 1201237200000 , 21.421956476879] , [ 1201496400000 , 21.88447853606] , [ 1201582800000 , 22.061316137597] , [ 1201669200000 , 21.845894637271] , [ 1201755600000 , 25.891996188941] , [ 1201842000000 , 24.230482021313] , [ 1202101200000 , 24.598196667826] , [ 1202187600000 , 25.127139922963] , [ 1202274000000 , 23.71018712034] , [ 1202360400000 , 24.25191536915] , [ 1202446800000 , 24.764513426041] , [ 1202706000000 , 24.794348551806] , [ 1202792400000 , 24.533467311971] , [ 1202878800000 , 25.146466377668] , [ 1202965200000 , 24.494779263233] , [ 1203051600000 , 25.174922360197] , [ 1203397200000 , 24.718588536863] , [ 1203483600000 , 26.644245593025] , [ 1203570000000 , 26.156882900416] , [ 1203656400000 , 26.693685598849] , [ 1203915600000 , 26.318812850104] , [ 1204002000000 , 26.348379927677] , [ 1204088400000 , 26.629064175102] , [ 1204174800000 , 26.083020219303] , [ 1204261200000 , 26.586782515792] , [ 1204520400000 , 26.193953449032] , [ 1204606800000 , 26.658552584796] , [ 1204693200000 , 26.244226180682] , [ 1204779600000 , 25.707184371059] , [ 1204866000000 , 26.092414482193] , [ 1205121600000 , 24.72292084406] , [ 1205208000000 , 26.308078958154] , [ 1205294400000 , 25.31471453403] , [ 1205380800000 , 26.146616425211] , [ 1205467200000 , 26.904697150929] , [ 1205726400000 , 25.889697756321] , [ 1205812800000 , 25.46994685133] , [ 1205899200000 , 23.466208784145] , [ 1205985600000 , 23.199301432366] , [ 1206331200000 , 23.271085746455] , [ 1206417600000 , 25.295478659124] , [ 1206504000000 , 25.398182765923] , [ 1206590400000 , 25.694775105726] , [ 1206676800000 , 26.242795777833] , [ 1206936000000 , 22.71655362857] , [ 1207022400000 , 27.17234307449] , [ 1207108800000 , 23.751264791711] , [ 1207195200000 , 21.845581803881] , [ 1207281600000 , 24.198228794102] , [ 1207540800000 , 24.268870566536] , [ 1207627200000 , 24.238984288108] , [ 1207713600000 , 21.793077045426] , [ 1207800000000 , 24.343799824906] , [ 1207886400000 , 21.94502438827] , [ 1208145600000 , 22.269752613239] , [ 1208232000000 , 22.222300563448] , [ 1208318400000 , 26.794812806313] , [ 1208404800000 , 22.314978916188] , [ 1208491200000 , 24.839879328614] , [ 1208750400000 , 25.272063275883] , [ 1208836800000 , 22.647336954423] , [ 1208923200000 , 22.934695941336] , [ 1209009600000 , 22.491124452202] , [ 1209096000000 , 24.578552711705] , [ 1209355200000 , 27.352133020993] , [ 1209441600000 , 24.943859876554] , [ 1209528000000 , 24.125931140489] , [ 1209614400000 , 26.423198278426] , [ 1209700800000 , 26.215479844692] , [ 1209960000000 , 26.416050638718] , [ 1210046400000 , 26.699691148575] , [ 1210132800000 , 26.101180004743] , [ 1210219200000 , 25.883455903863] , [ 1210305600000 , 24.476429845243] , [ 1210564800000 , 26.560429014593] , [ 1210651200000 , 26.91243689922] , [ 1210737600000 , 26.550192630343] , [ 1210824000000 , 26.017240433928] , [ 1210910400000 , 25.850483367086] , [ 1211169600000 , 26.134682637347] , [ 1211256000000 , 25.511949418952] , [ 1211342400000 , 23.529168791348] , [ 1211428800000 , 25.387789070145] , [ 1211515200000 , 26.007759236212] , [ 1211860800000 , 25.840951541333] , [ 1211947200000 , 26.09480511976] , [ 1212033600000 , 25.832538213261] , [ 1212120000000 , 26.356864378434] , [ 1212379200000 , 21.859967055432] , [ 1212465600000 , 21.319303995557] , [ 1212552000000 , 21.792925854319] , [ 1212638400000 , 22.129303455338] , [ 1212724800000 , 22.397402638128] , [ 1212984000000 , 22.303887979305] , [ 1213070400000 , 22.677863368026] , [ 1213156800000 , 22.653114874681] , [ 1213243200000 , 22.055703112603] , [ 1213329600000 , 22.727336932122] , [ 1213588800000 , 22.600847997062] , [ 1213675200000 , 23.16434142917] , [ 1213761600000 , 23.190382803556] , [ 1213848000000 , 23.363509389946] , [ 1213934400000 , 22.90010736863] , [ 1214193600000 , 22.8960950063] , [ 1214280000000 , 23.112857459234] , [ 1214366400000 , 22.81464933731] , [ 1214452800000 , 22.599602343324] , [ 1214539200000 , 22.436628140001] , [ 1214798400000 , 25.101287933423] , [ 1214884800000 , 23.836698482432] , [ 1214971200000 , 21.598716730413] , [ 1215057600000 , 22.294848464403] , [ 1215403200000 , 21.890008710296] , [ 1215489600000 , 24.277998808076] , [ 1215576000000 , 24.16752987296] , [ 1215662400000 , 24.492420061962] , [ 1215748800000 , 24.36928386042] , [ 1216008000000 , 24.549310029453] , [ 1216094400000 , 24.525332576232] , [ 1216180800000 , 24.965527476087] , [ 1216267200000 , 24.262546016276] , [ 1216353600000 , 21.748843865619] , [ 1216612800000 , 22.248559554158] , [ 1216699200000 , 22.10105807761] , [ 1216785600000 , 24.118783930638] , [ 1216872000000 , 23.974858603682] , [ 1216958400000 , 23.899785139264] , [ 1217217600000 , 23.632034963543] , [ 1217304000000 , 24.573074179882] , [ 1217390400000 , 24.354176258483] , [ 1217476800000 , 23.586970077894] , [ 1217563200000 , 23.09281686853] , [ 1217822400000 , 22.381924573295] , [ 1217908800000 , 22.849960585469] , [ 1217995200000 , 23.308008650987] , [ 1218081600000 , 22.389528201348] , [ 1218168000000 , 22.617965778037] , [ 1218427200000 , 22.630018460434] , [ 1218513600000 , 22.429165436362] , [ 1218600000000 , 22.796193531372] , [ 1218686400000 , 22.91869049774] , [ 1218772800000 , 22.534177781093] , [ 1219032000000 , 22.307458869795] , [ 1219118400000 , 23.149998429395] , [ 1219204800000 , 22.809047920243] , [ 1219291200000 , 23.033620878128] , [ 1219377600000 , 22.88353839716] , [ 1219636800000 , 23.038231781339] , [ 1219723200000 , 22.837092985369] , [ 1219809600000 , 22.406121172016] , [ 1219896000000 , 22.543052050748] , [ 1219982400000 , 22.134325786459] , [ 1220328000000 , 22.90619352181] , [ 1220414400000 , 21.577514891646] , [ 1220500800000 , 20.964597997079] , [ 1220587200000 , 22.254316769503] , [ 1220846400000 , 20.978428684385] , [ 1220932800000 , 20.201251837107] , [ 1221019200000 , 20.716021429156] , [ 1221105600000 , 20.853607736708] , [ 1221192000000 , 22.637860530824] , [ 1221451200000 , 20.992548843385] , [ 1221537600000 , 22.640013229632] , [ 1221624000000 , 22.147932603234] , [ 1221710400000 , 23.107616271124] , [ 1221796800000 , 23.235208756356] , [ 1222056000000 , 23.073297051895] , [ 1222142400000 , 19.996488794335] , [ 1222228800000 , 20.798546480039] , [ 1222315200000 , 22.66049516895] , [ 1222401600000 , 17.13679183253] , [ 1222660800000 , 13.826273349744] , [ 1222747200000 , 13.077093752263] , [ 1222833600000 , 12.284675874792] , [ 1222920000000 , 11.065707170455] , [ 1223006400000 , 10.630383687986] , [ 1223265600000 , 9.4303250495554] , [ 1223352000000 , 8.9012730203526] , [ 1223438400000 , 8.9293325135165] , [ 1223524800000 , 8.0470811501794] , [ 1223611200000 , 7.9534190943532] , [ 1223870400000 , 10.148470568683] , [ 1223956800000 , 9.1884455797275] , [ 1224043200000 , 9.0306456153854] , [ 1224129600000 , 8.8795457738235] , [ 1224216000000 , 8.8804579858153] , [ 1224475200000 , 9.9480570220264] , [ 1224561600000 , 8.6699372921443] , [ 1224648000000 , 6.7828772739367] , [ 1224734400000 , 6.7194378835375] , [ 1224820800000 , 6.5576831314375] , [ 1225080000000 , 6.5526827191332] , [ 1225166400000 , 6.6431801167441] , [ 1225252800000 , 6.8171009374029] , [ 1225339200000 , 8.7180683997897] , [ 1225425600000 , 8.3266530080935] , [ 1225688400000 , 9.5157540775547] , [ 1225774800000 , 11.339344847983] , [ 1225861200000 , 9.4464996479877] , [ 1225947600000 , 9.0778210074445] , [ 1226034000000 , 9.2546275932455] , [ 1226293200000 , 8.8597595230316] , [ 1226379600000 , 9.3397889090676] , [ 1226466000000 , 7.2479518212381] , [ 1226552400000 , 9.2479344681812] , [ 1226638800000 , 9.416877333381] , [ 1226898000000 , 8.810496809664] , [ 1226984400000 , 9.0032294081395] , [ 1227070800000 , 7.0276364787384] , [ 1227157200000 , 6.7043268468833] , [ 1227243600000 , 7.0636555606867] , [ 1227502800000 , 9.0329047830937] , [ 1227589200000 , 8.8839970790477] , [ 1227675600000 , 9.1324522586047] , [ 1227848400000 , 9.0440300229022] , [ 1228107600000 , 9.2406157582628] , [ 1228194000000 , 8.6662271585896] , [ 1228280400000 , 8.552032165721] , [ 1228366800000 , 8.4684799027423] , [ 1228453200000 , 8.8685387993201] , [ 1228712400000 , 11.237542569647] , [ 1228798800000 , 11.618966861671] , [ 1228885200000 , 11.634559104171] , [ 1228971600000 , 11.296954170121] , [ 1229058000000 , 11.546905256863] , [ 1229317200000 , 11.317508652977] , [ 1229403600000 , 11.577530719706] , [ 1229490000000 , 13.056293486221] , [ 1229576400000 , 12.670963990739] , [ 1229662800000 , 12.908010105666] , [ 1229922000000 , 10.943709273262] , [ 1230008400000 , 10.487188096375] , [ 1230094800000 , 10.880843499761] , [ 1230267600000 , 10.76296928134] , [ 1230526800000 , 11.125879644882] , [ 1230613200000 , 12.423958890591] , [ 1230699600000 , 15.375914364972] , [ 1230872400000 , 17.931848968257] , [ 1231131600000 , 15.967743128748] , [ 1231218000000 , 15.955731604841] , [ 1231304400000 , 15.750434305136] , [ 1231390800000 , 15.504689513544] , [ 1231477200000 , 16.08339635538] , [ 1231736400000 , 15.801648291214] , [ 1231822800000 , 15.842640752539] , [ 1231909200000 , 14.469656332513] , [ 1231995600000 , 14.047963432084] , [ 1232082000000 , 14.112345335294] , [ 1232427600000 , 14.041375734523] , [ 1232514000000 , 14.464446317295] , [ 1232600400000 , 14.170330638073] , [ 1232686800000 , 14.402546781906] , [ 1232946000000 , 14.295167847681] , [ 1233032400000 , 14.616834831255] , [ 1233118800000 , 15.485715273776] , [ 1233205200000 , 14.363478044307] , [ 1233291600000 , 14.785085502528] , [ 1233550800000 , 13.964576959879] , [ 1233637200000 , 16.214519014731] , [ 1233723600000 , 14.091750418726] , [ 1233810000000 , 16.337866980437] , [ 1233896400000 , 17.946644946538] , [ 1234155600000 , 15.77196604476] , [ 1234242000000 , 15.360662859138] , [ 1234328400000 , 16.095973396396] , [ 1234414800000 , 15.75503189211] , [ 1234501200000 , 16.170650295906] , [ 1234846800000 , 14.172722551245] , [ 1234933200000 , 14.310638455276] , [ 1235019600000 , 14.099565212181] , [ 1235106000000 , 13.684697059175] , [ 1235365200000 , 13.817948103314] , [ 1235451600000 , 14.334290991514] , [ 1235538000000 , 14.337909782235] , [ 1235624400000 , 14.146042421534] , [ 1235710800000 , 13.725040132025] , [ 1235970000000 , 12.11065253521] , [ 1236056400000 , 12.327904770327] , [ 1236142800000 , 12.471291302517] , [ 1236229200000 , 12.02915540764] , [ 1236315600000 , 10.187129325878] , [ 1236571200000 , 10.229137796771] , [ 1236657600000 , 12.597415074867] , [ 1236744000000 , 12.500500687553] , [ 1236830400000 , 12.775131207967] , [ 1236916800000 , 12.7714990873] , [ 1237176000000 , 13.156437647158] , [ 1237262400000 , 12.852271200328] , [ 1237348800000 , 14.132033344691] , [ 1237435200000 , 12.993143907842] , [ 1237521600000 , 12.903808030145] , [ 1237780800000 , 14.297168381677] , [ 1237867200000 , 14.366190770734] , [ 1237953600000 , 14.719911368313] , [ 1238040000000 , 13.391019202654] , [ 1238126400000 , 12.092033674534] , [ 1238385600000 , 12.435613981786] , [ 1238472000000 , 12.6411945345] , [ 1238558400000 , 12.28157338962] , [ 1238644800000 , 10.35675853168] , [ 1238731200000 , 10.860453911764] , [ 1238990400000 , 10.28966794386] , [ 1239076800000 , 10.278064045435] , [ 1239163200000 , 10.355890587737] , [ 1239249600000 , 10.721229431724] , [ 1239595200000 , 10.702562788036] , [ 1239681600000 , 10.6121927661] , [ 1239768000000 , 10.495356287245] , [ 1239854400000 , 10.951066937501] , [ 1239940800000 , 11.057051832987] , [ 1240200000000 , 10.038186680346] , [ 1240286400000 , 10.718857242302] , [ 1240372800000 , 10.093156859055] , [ 1240459200000 , 10.504566873295] , [ 1240545600000 , 12.050084965623] , [ 1240804800000 , 12.463270454031] , [ 1240891200000 , 12.390350685738] , [ 1240977600000 , 12.502252881803] , [ 1241064000000 , 12.160534312241] , [ 1241150400000 , 12.092519674715] , [ 1241409600000 , 13.371542376789] , [ 1241496000000 , 11.589162775079] , [ 1241582400000 , 11.895101606214] , [ 1241668800000 , 10.776395347324] , [ 1241755200000 , 11.499715860942] , [ 1242014400000 , 10.67998570401] , [ 1242100800000 , 12.13969278283] , [ 1242187200000 , 10.315100211108] , [ 1242273600000 , 10.560365451866] , [ 1242360000000 , 10.522348869076] , [ 1242619200000 , 12.998005975456] , [ 1242705600000 , 12.31086464647] , [ 1242792000000 , 12.104483056899] , [ 1242878400000 , 13.112410404644] , [ 1242964800000 , 12.382999937646] , [ 1243310400000 , 13.507413734788] , [ 1243396800000 , 12.126701970815] , [ 1243483200000 , 13.659733333421] , [ 1243569600000 , 13.391649599842] , [ 1243828800000 , 13.613056683013] , [ 1243915200000 , 13.654699620719] , [ 1244001600000 , 13.361138434443] , [ 1244088000000 , 13.467323739931] , [ 1244174400000 , 13.436960051452] , [ 1244433600000 , 13.45010448311] , [ 1244520000000 , 13.309266105666] , [ 1244606400000 , 13.218842936387] , [ 1244692800000 , 13.452871572254] , [ 1244779200000 , 12.42635307245] , [ 1245038400000 , 12.669706123069] , [ 1245124800000 , 12.465435661844] , [ 1245211200000 , 12.7736913381] , [ 1245297600000 , 12.425895741098] , [ 1245384000000 , 13.036568250712] , [ 1245643200000 , 12.786440632451] , [ 1245729600000 , 12.779269016226] , [ 1245816000000 , 13.014836133492] , [ 1245902400000 , 13.209957760354] , [ 1245988800000 , 12.893413435344] , [ 1246248000000 , 12.824302626282] , [ 1246334400000 , 15.146379713486] , [ 1246420800000 , 14.981558532708] , [ 1246507200000 , 14.678460239031] , [ 1246852800000 , 14.925775723023] , [ 1246939200000 , 15.029877764704] , [ 1247025600000 , 15.092001811196] , [ 1247112000000 , 14.760093425351] , [ 1247198400000 , 15.119413720695] , [ 1247457600000 , 15.498838587115] , [ 1247544000000 , 14.898473206687] , [ 1247630400000 , 15.531483438437] , [ 1247716800000 , 15.249077746618] , [ 1247803200000 , 15.778483995946] , [ 1248062400000 , 16.082101777482] , [ 1248148800000 , 16.133146637217] , [ 1248235200000 , 16.546432092559] , [ 1248321600000 , 16.523569388775] , [ 1248408000000 , 16.701863514799] , [ 1248667200000 , 16.604960969268] , [ 1248753600000 , 16.488294531585] , [ 1248840000000 , 16.937620473844] , [ 1248926400000 , 16.790560076824] , [ 1249012800000 , 16.248363435705] , [ 1249272000000 , 16.564558948816] , [ 1249358400000 , 16.455641854637] , [ 1249444800000 , 16.328809339246] , [ 1249531200000 , 16.67638807089] , [ 1249617600000 , 16.166396498024] , [ 1249876800000 , 16.769085318686] , [ 1249963200000 , 16.530374048977] , [ 1250049600000 , 16.526183772843] , [ 1250136000000 , 16.375829790545] , [ 1250222400000 , 16.713968276809] , [ 1250481600000 , 15.993095112877] , [ 1250568000000 , 16.799051128538] , [ 1250654400000 , 16.276637187387] , [ 1250740800000 , 17.089509782316] , [ 1250827200000 , 16.616106779777] , [ 1251086400000 , 16.515549315826] , [ 1251172800000 , 17.147634467285] , [ 1251259200000 , 16.436917136596] , [ 1251345600000 , 16.841369557117] , [ 1251432000000 , 16.43122112384] , [ 1251691200000 , 17.043513078952] , [ 1251777600000 , 16.446925526842] , [ 1251864000000 , 16.652504066228] , [ 1251950400000 , 16.591432415903] , [ 1252036800000 , 16.499772581029] , [ 1252382400000 , 16.947320880146] , [ 1252468800000 , 16.14629738553] , [ 1252555200000 , 16.484439747556] , [ 1252641600000 , 16.578694320843] , [ 1252900800000 , 16.78566904875] , [ 1252987200000 , 16.2408123932] , [ 1253073600000 , 17.078787515196] , [ 1253160000000 , 16.906755525169] , [ 1253246400000 , 16.40574598804] , [ 1253505600000 , 16.806216143902] , [ 1253592000000 , 16.605729657111] , [ 1253678400000 , 16.617032132274] , [ 1253764800000 , 16.704580255368] , [ 1253851200000 , 16.812202786435] , [ 1254110400000 , 16.799071360461] , [ 1254196800000 , 16.852378487751] , [ 1254283200000 , 25.431309344777] , [ 1254369600000 , 23.222965579702] , [ 1254456000000 , 23.071826417577] , [ 1254715200000 , 22.808853567902] , [ 1254801600000 , 23.294389753777] , [ 1254888000000 , 23.573116652391] , [ 1254974400000 , 23.431317210644] , [ 1255060800000 , 23.690869262506] , [ 1255320000000 , 23.24339486172] , [ 1255406400000 , 23.059988275802] , [ 1255492800000 , 23.764274725182] , [ 1255579200000 , 23.637926378417] , [ 1255665600000 , 23.845872985185] , [ 1255924800000 , 23.822856926594] , [ 1256011200000 , 24.189098034702] , [ 1256097600000 , 23.858046664592] , [ 1256184000000 , 23.914516419148] , [ 1256270400000 , 24.101276775982] , [ 1256529600000 , 23.610922571498] , [ 1256616000000 , 23.332362896484] , [ 1256702400000 , 22.523655846395] , [ 1256788800000 , 23.856829700669] , [ 1256875200000 , 22.730673476776] , [ 1257138000000 , 24.23137735378] , [ 1257224400000 , 24.096752556324] , [ 1257310800000 , 24.109409371527] , [ 1257397200000 , 22.564794855246] , [ 1257483600000 , 22.649642224419] , [ 1257742800000 , 24.179234907903] , [ 1257829200000 , 24.303220424767] , [ 1257915600000 , 24.317365812853] , [ 1258002000000 , 22.731651939541] , [ 1258088400000 , 23.34987104225] , [ 1258347600000 , 24.422306141472] , [ 1258434000000 , 24.537018123608] , [ 1258520400000 , 24.367809159498] , [ 1258606800000 , 24.290993426035] , [ 1258693200000 , 24.428182583715] , [ 1258952400000 , 24.301937798758] , [ 1259038800000 , 24.390442427645] , [ 1259125200000 , 24.431572163766] , [ 1259298000000 , 22.526546825726] , [ 1259557200000 , 22.802553442303] , [ 1259643600000 , 23.653721374343] , [ 1259730000000 , 23.962687684298] , [ 1259816400000 , 23.879837022716] , [ 1259902800000 , 23.954751867427] , [ 1260162000000 , 23.525075445341] , [ 1260248400000 , 23.636489057379] , [ 1260334800000 , 23.85626674156] , [ 1260421200000 , 23.683181821437] , [ 1260507600000 , 23.21737564337] , [ 1260766800000 , 23.642669163225] , [ 1260853200000 , 22.992072451748] , [ 1260939600000 , 23.432811457962] , [ 1261026000000 , 23.335920037782] , [ 1261112400000 , 23.992227508716] , [ 1261371600000 , 24.381927235956] , [ 1261458000000 , 24.236594141442] , [ 1261544400000 , 23.568873106735] , [ 1261630800000 , 24.146892015266] , [ 1261976400000 , 23.506983441902] , [ 1262062800000 , 23.770955283415] , [ 1262149200000 , 24.143157377049] , [ 1262235600000 , 17.511609505034] , [ 1262581200000 , 17.59587584334] , [ 1262667600000 , 17.862805755291] , [ 1262754000000 , 18.335681939449] , [ 1262840400000 , 17.785662981034] , [ 1262926800000 , 17.962483283397] , [ 1263186000000 , 18.216639190617] , [ 1263272400000 , 18.22073741648] , [ 1263358800000 , 17.825672675711] , [ 1263445200000 , 17.620939720051] , [ 1263531600000 , 16.762564236566] , [ 1263877200000 , 16.578206266095] , [ 1263963600000 , 17.060135351263] , [ 1264050000000 , 16.602073884753] , [ 1264136400000 , 16.423668597664] , [ 1264395600000 , 16.341401994621] , [ 1264482000000 , 16.72635341813] , [ 1264568400000 , 16.603279629631] , [ 1264654800000 , 16.342152650635] , [ 1264741200000 , 16.375539291939] , [ 1265000400000 , 17.286845962765] , [ 1265086800000 , 17.17888456086] , [ 1265173200000 , 17.328217107089] , [ 1265259600000 , 17.170126797622] , [ 1265346000000 , 17.275895152661] , [ 1265605200000 , 16.838521104494] , [ 1265691600000 , 17.209221833795] , [ 1265778000000 , 16.840751919696] , [ 1265864400000 , 17.402253054405] , [ 1265950800000 , 17.283267017109] , [ 1266296400000 , 17.839877867831] , [ 1266382800000 , 17.2585660445] , [ 1266469200000 , 17.312477312482] , [ 1266555600000 , 17.229088874178] , [ 1266814800000 , 17.992792901541] , [ 1266901200000 , 17.545611419769] , [ 1266987600000 , 19.555610161782] , [ 1267074000000 , 17.402460137181] , [ 1267160400000 , 17.457900479237] , [ 1267419600000 , 18.059506166626] , [ 1267506000000 , 19.556832046321] , [ 1267592400000 , 20.074915026725] , [ 1267678800000 , 20.239852202039] , [ 1267765200000 , 19.784459877733] , [ 1268024400000 , 19.794727149886] , [ 1268110800000 , 19.411627409137] , [ 1268197200000 , 19.672556345457] , [ 1268283600000 , 19.938508059385] , [ 1268370000000 , 19.84674433628] , [ 1268625600000 , 20.128999533093] , [ 1268712000000 , 20.01245357768] , [ 1268798400000 , 19.660623009837] , [ 1268884800000 , 19.656052984352] , [ 1268971200000 , 19.471326821212] , [ 1269230400000 , 19.790704235255] , [ 1269316800000 , 20.018793862282] , [ 1269403200000 , 19.979656850697] , [ 1269489600000 , 20.230336707568] , [ 1269576000000 , 20.506839341548] , [ 1269835200000 , 20.146748216221] , [ 1269921600000 , 20.672365386495] , [ 1270008000000 , 28.751555982445] , [ 1270094400000 , 26.677017709142] , [ 1270440000000 , 26.76186385082] , [ 1270526400000 , 27.662001071617] , [ 1270612800000 , 23.488342033375] , [ 1270699200000 , 27.198945324419] , [ 1270785600000 , 27.562965762261] , [ 1271044800000 , 27.846225990178] , [ 1271131200000 , 27.829440811172] , [ 1271217600000 , 27.10037617327] , [ 1271304000000 , 27.683409145171] , [ 1271390400000 , 26.765047606893] , [ 1271649600000 , 26.854352509615] , [ 1271736000000 , 27.079240867802] , [ 1271822400000 , 27.27729711969] , [ 1271908800000 , 26.625626502005] , [ 1271995200000 , 26.765297220688] , [ 1272254400000 , 26.918302756881] , [ 1272340800000 , 27.417694228616] , [ 1272427200000 , 27.403471927842] , [ 1272513600000 , 27.286730861361] , [ 1272600000000 , 27.395148380185] , [ 1272859200000 , 26.114660928377] , [ 1272945600000 , 25.657945898722] , [ 1273032000000 , 25.55589643361] , [ 1273118400000 , 21.706935040814] , [ 1273204800000 , 21.69441045433] , [ 1273464000000 , 24.81823453287] , [ 1273550400000 , 21.87067760687] , [ 1273636800000 , 25.359497192713] , [ 1273723200000 , 25.227126100012] , [ 1273809600000 , 21.52499740982] , [ 1274068800000 , 24.558568519266] , [ 1274155200000 , 21.010311356319] , [ 1274241600000 , 21.254694184854] , [ 1274328000000 , 20.702102888533] , [ 1274414400000 , 21.238444633236] , [ 1274673600000 , 20.729017098259] , [ 1274760000000 , 20.738313908135] , [ 1274846400000 , 21.033355970039] , [ 1274932800000 , 21.23460634468] , [ 1275019200000 , 21.088356917231] , [ 1275364800000 , 22.004737299363] , [ 1275451200000 , 21.820503579706] , [ 1275537600000 , 22.630243104102] , [ 1275624000000 , 21.49833946787] , [ 1275883200000 , 21.580562388482] , [ 1275969600000 , 21.705634911623] , [ 1276056000000 , 21.551377724378] , [ 1276142400000 , 21.715668604885] , [ 1276228800000 , 21.677988055615] , [ 1276488000000 , 22.437451894376] , [ 1276574400000 , 21.791896372432] , [ 1276660800000 , 21.836693756879] , [ 1276747200000 , 22.412160647473] , [ 1276833600000 , 22.700670017784] , [ 1277092800000 , 22.703292258233] , [ 1277179200000 , 22.32005929544] , [ 1277265600000 , 22.135458897354] , [ 1277352000000 , 22.261160362687] , [ 1277438400000 , 22.259757873921] , [ 1277697600000 , 22.356935481008] , [ 1277784000000 , 22.704287207773] , [ 1277870400000 , 16.05420062686] , [ 1277956800000 , 19.596394322249] , [ 1278043200000 , 17.221863063885] , [ 1278388800000 , 20.237168940716] , [ 1278475200000 , 20.228154071202] , [ 1278561600000 , 19.599048817893] , [ 1278648000000 , 20.100296801153] , [ 1278907200000 , 19.898139041109] , [ 1278993600000 , 21.449430769871] , [ 1279080000000 , 21.027450612016] , [ 1279166400000 , 20.761140771166] , [ 1279252800000 , 20.56922039679] , [ 1279512000000 , 20.331058844227] , [ 1279598400000 , 19.94187419945] , [ 1279684800000 , 20.194392373305] , [ 1279771200000 , 19.885449595918] , [ 1279857600000 , 20.150953255056] , [ 1280116800000 , 19.977909053698] , [ 1280203200000 , 20.306063487985] , [ 1280289600000 , 19.990022596044] , [ 1280376000000 , 20.536239497791] , [ 1280462400000 , 20.251947918853] , [ 1280721600000 , 18.791308697595] , [ 1280808000000 , 19.499755197734] , [ 1280894400000 , 19.227509289044] , [ 1280980800000 , 19.34411262702] , [ 1281067200000 , 19.307545278758] , [ 1281326400000 , 18.971763342798] , [ 1281412800000 , 19.521632486579] , [ 1281499200000 , 19.767849754926] , [ 1281585600000 , 19.487641720993] , [ 1281672000000 , 19.03340909661] , [ 1281931200000 , 19.71805260588] , [ 1282017600000 , 18.941204690514] , [ 1282104000000 , 18.949283618331] , [ 1282190400000 , 19.050510406256] , [ 1282276800000 , 18.88152804134] , [ 1282536000000 , 16.949535632409] , [ 1282622400000 , 16.665719801984] , [ 1282708800000 , 16.753272095777] , [ 1282795200000 , 16.287068495466] , [ 1282881600000 , 16.618921167238] , [ 1283140800000 , 15.98441290019] , [ 1283227200000 , 16.625931265272] , [ 1283313600000 , 18.740687400848] , [ 1283400000000 , 18.218829255882] , [ 1283486400000 , 18.42997098831] , [ 1283832000000 , 19.45362711179] , [ 1283918400000 , 19.345664866617] , [ 1284004800000 , 19.093031639436] , [ 1284091200000 , 18.909043610256] , [ 1284350400000 , 19.539612248667] , [ 1284436800000 , 18.943698845934] , [ 1284523200000 , 19.054050930712] , [ 1284609600000 , 16.679477750336] , [ 1284696000000 , 16.935001872909] , [ 1284955200000 , 19.701024204411] , [ 1285041600000 , 20.051422228717] , [ 1285128000000 , 19.969665647018] , [ 1285214400000 , 20.486198042956] , [ 1285300800000 , 19.891263054402] , [ 1285560000000 , 18.769890528074] , [ 1285646400000 , 19.014827368429] , [ 1285732800000 , 18.662086460667] , [ 1285819200000 , 23.898415710948] , [ 1285905600000 , 24.11480692944] , [ 1286164800000 , 22.888098943395] , [ 1286251200000 , 24.693634057583] , [ 1286337600000 , 22.872537431949] , [ 1286424000000 , 24.404360624536] , [ 1286510400000 , 24.778369969679] , [ 1286769600000 , 24.651633997256] , [ 1286856000000 , 24.884268452062] , [ 1286942400000 , 24.975369067386] , [ 1287028800000 , 25.010149025336] , [ 1287115200000 , 26.95954877975] , [ 1287374400000 , 25.819950664795] , [ 1287460800000 , 25.490113017719] , [ 1287547200000 , 26.381871986207] , [ 1287633600000 , 25.769025736212] , [ 1287720000000 , 26.193526119475] , [ 1287979200000 , 25.072761302693] , [ 1288065600000 , 24.96224892059] , [ 1288152000000 , 24.922096771807] , [ 1288238400000 , 25.351386850428] , [ 1288324800000 , 25.609036598253] , [ 1288584000000 , 24.775702680422] , [ 1288670400000 , 25.493191075839] , [ 1288756800000 , 25.378669738968] , [ 1288843200000 , 25.135007745534] , [ 1288929600000 , 25.195906023095] , [ 1289192400000 , 25.039965734786] , [ 1289278800000 , 25.082586275708] , [ 1289365200000 , 25.667933604689] , [ 1289451600000 , 24.748560845718] , [ 1289538000000 , 24.91695263463] , [ 1289797200000 , 24.605226120371] , [ 1289883600000 , 24.855764415965] , [ 1289970000000 , 25.168176311491] , [ 1290056400000 , 24.340821897791] , [ 1290142800000 , 25.016093707043] , [ 1290402000000 , 24.850053022832] , [ 1290488400000 , 24.655597571244] , [ 1290574800000 , 25.102500772745] , [ 1290747600000 , 24.395010402445] , [ 1291006800000 , 24.860334037232] , [ 1291093200000 , 23.796133383393] , [ 1291179600000 , 25.400848276042] , [ 1291266000000 , 24.958338710485] , [ 1291352400000 , 24.117883941613] , [ 1291611600000 , 24.442564389286] , [ 1291698000000 , 24.777851053778] , [ 1291784400000 , 24.981486014327] , [ 1291870800000 , 24.831625575598] , [ 1291957200000 , 25.055055878476] , [ 1292216400000 , 24.645546468675] , [ 1292302800000 , 25.1951968076] , [ 1292389200000 , 24.846967890964] , [ 1292475600000 , 25.476557222784] , [ 1292562000000 , 24.873610898292] , [ 1292821200000 , 24.992757034363] , [ 1292907600000 , 25.027367617635] , [ 1292994000000 , 25.326429994786] , [ 1293080400000 , 25.400231012356] , [ 1293426000000 , 26.113124364103] , [ 1293512400000 , 25.198872439023] , [ 1293598800000 , 25.482130379281] , [ 1293685200000 , 25.688645503032] , [ 1293771600000 , 25.306388246839] , [ 1294030800000 , 25.36459570696] , [ 1294117200000 , 25.687983390493] , [ 1294203600000 , 26.094321969653] , [ 1294290000000 , 25.449849891007] , [ 1294376400000 , 26.192775432124] , [ 1294635600000 , 26.002488169068] , [ 1294722000000 , 26.051468321052] , [ 1294808400000 , 27.619473102251] , [ 1294894800000 , 26.705886700555] , [ 1294981200000 , 26.323134959679] , [ 1295326800000 , 27.023507240033] , [ 1295413200000 , 25.553451290321] , [ 1295499600000 , 25.641441399244] , [ 1295586000000 , 25.506905335216] , [ 1295845200000 , 25.490820900811] , [ 1295931600000 , 26.704117574935] , [ 1296018000000 , 26.700070517511] , [ 1296104400000 , 26.117075289003] , [ 1296190800000 , 26.091700933962] , [ 1296450000000 , 25.831331701153] , [ 1296536400000 , 27.119893526929] , [ 1296622800000 , 26.796829714037] , [ 1296709200000 , 27.251562599365] , [ 1296795600000 , 25.239238527205] , [ 1297054800000 , 27.127650128824] , [ 1297141200000 , 25.205555973598] , [ 1297227600000 , 26.061076261635] , [ 1297314000000 , 24.723386881568] , [ 1297400400000 , 25.181105799696] , [ 1297659600000 , 25.893618232639] , [ 1297746000000 , 26.465819971151] , [ 1297832400000 , 26.603595241409] , [ 1297918800000 , 26.284739691125] , [ 1298005200000 , 26.228994520127] , [ 1298350800000 , 25.501061017414] , [ 1298437200000 , 25.644711243746] , [ 1298523600000 , 24.505518479099] , [ 1298610000000 , 24.710692269574] , [ 1298869200000 , 25.305693710332] , [ 1298955600000 , 25.303258057098] , [ 1299042000000 , 24.960972271129] , [ 1299128400000 , 28.586701575536] , [ 1299214800000 , 28.164881344198] , [ 1299474000000 , 25.047709149433] , [ 1299560400000 , 25.036110115328] , [ 1299646800000 , 28.064505577487] , [ 1299733200000 , 25.365629343474] , [ 1299819600000 , 25.011246263326] , [ 1300075200000 , 25.669985094568] , [ 1300161600000 , 25.290486031435] , [ 1300248000000 , 24.46281324856] , [ 1300334400000 , 24.663380019377] , [ 1300420800000 , 25.094681277589] , [ 1300680000000 , 25.145367104644] , [ 1300766400000 , 26.135504527832] , [ 1300852800000 , 25.599397988325] , [ 1300939200000 , 25.485459688586] , [ 1301025600000 , 25.329921568923] , [ 1301284800000 , 25.638385273154] , [ 1301371200000 , 28.949598515781] , [ 1301457600000 , 28.439424813101] , [ 1301544000000 , 25.780730641051] , [ 1301630400000 , 27.633391932031] , [ 1301889600000 , 27.755208547663] , [ 1301976000000 , 24.589995869242] , [ 1302062400000 , 24.504717652488] , [ 1302148800000 , 24.731928161232] , [ 1302235200000 , 24.357227719503] , [ 1302494400000 , 24.812448966534] , [ 1302580800000 , 25.150710531704] , [ 1302667200000 , 25.11896626483] , [ 1302753600000 , 24.397375694316] , [ 1302840000000 , 24.541663596991] , [ 1303099200000 , 24.783459749743] , [ 1303185600000 , 24.335736536054] , [ 1303272000000 , 24.88808373959] , [ 1303358400000 , 27.589549952522] , [ 1303704000000 , 27.953281956336] , [ 1303790400000 , 27.585340356178] , [ 1303876800000 , 28.160100447269] , [ 1303963200000 , 27.446515382208] , [ 1304049600000 , 27.608966991097] , [ 1304308800000 , 28.777466101837] , [ 1304395200000 , 29.180290170784] , [ 1304481600000 , 29.346019353302] , [ 1304568000000 , 29.395801384325] , [ 1304654400000 , 29.452148336956] , [ 1304913600000 , 28.704040632275] , [ 1305000000000 , 29.312203826479] , [ 1305086400000 , 28.853806332882] , [ 1305172800000 , 28.718535229337] , [ 1305259200000 , 28.716899720519] , [ 1305518400000 , 28.096806729878] , [ 1305604800000 , 27.26754241696] , [ 1305691200000 , 27.246665772335] , [ 1305777600000 , 27.496062469545] , [ 1305864000000 , 27.090226664809] , [ 1306123200000 , 27.521262028507] , [ 1306209600000 , 27.111251207062] , [ 1306296000000 , 26.715428931325] , [ 1306382400000 , 27.878259778988] , [ 1306468800000 , 28.398263400927] , [ 1306814400000 , 28.423434916843] , [ 1306900800000 , 26.790597301426] , [ 1306987200000 , 27.215478415815] , [ 1307073600000 , 26.791794446882] , [ 1307332800000 , 27.289633869408] , [ 1307419200000 , 26.820277000071] , [ 1307505600000 , 26.5691855452] , [ 1307592000000 , 27.259772970539] , [ 1307678400000 , 25.820870966346] , [ 1307937600000 , 27.058733743783] , [ 1308024000000 , 27.396275937504] , [ 1308110400000 , 27.369857482521] , [ 1308196800000 , 26.892699473036] , [ 1308283200000 , 26.940060489474] , [ 1308542400000 , 27.412521110469] , [ 1308628800000 , 27.766635740117] , [ 1308715200000 , 27.386425581275] , [ 1308801600000 , 26.918010623003] , [ 1308888000000 , 27.232371616367] , [ 1309147200000 , 26.836844855166] , [ 1309233600000 , 27.906685156972] , [ 1309320000000 , 27.954092422443] , [ 1309406400000 , 27.074102810043] , [ 1309492800000 , 26.279822408479] , [ 1309838400000 , 26.01874441868] , [ 1309924800000 , 26.225797736704] , [ 1310011200000 , 26.051477989298] , [ 1310097600000 , 26.219940204659] , [ 1310356800000 , 25.089996497267] , [ 1310443200000 , 25.016128092919] , [ 1310529600000 , 25.008348193964] , [ 1310616000000 , 25.5500617145] , [ 1310702400000 , 25.630388944842] , [ 1310961600000 , 25.536088921763] , [ 1311048000000 , 25.274336268572] , [ 1311134400000 , 25.50588001502] , [ 1311220800000 , 25.97676621425] , [ 1311307200000 , 25.918251264831] , [ 1311566400000 , 25.895584776114] , [ 1311652800000 , 26.155812874342] , [ 1311739200000 , 25.973504725924] , [ 1311825600000 , 22.005504661556] , [ 1311912000000 , 21.901642088437] , [ 1314763200000 , 20.611854638729] , [ 1314849600000 , 20.806302035488] , [ 1314936000000 , 20.39315336605] , [ 1315281600000 , 20.321606951254] , [ 1315368000000 , 20.57177837784] , [ 1315454400000 , 20.928539181222] , [ 1315540800000 , 20.070835621616] , [ 1315800000000 , 20.579538524538] , [ 1315886400000 , 20.008943531928] , [ 1315972800000 , 21.002529504578] , [ 1316059200000 , 20.600040567661] , [ 1316145600000 , 20.450077647397] , [ 1316404800000 , 20.648324212044] , [ 1316491200000 , 20.811616497537] , [ 1316577600000 , 20.846592907441] , [ 1316664000000 , 20.432266740358] , [ 1316750400000 , 20.497802818551] , [ 1317009600000 , 20.357261528122] , [ 1317096000000 , 20.691829731811] , [ 1317182400000 , 20.906999403533] , [ 1317268800000 , 20.555513564685] , [ 1317355200000 , 16.831115451175] , [ 1317614400000 , 15.660365199854] , [ 1317700800000 , 16.162864252296] , [ 1317787200000 , 16.168815648261] , [ 1317873600000 , 16.918319035941] , [ 1317960000000 , 15.900039977092] , [ 1318219200000 , 16.715443422272] , [ 1318305600000 , 16.983186931775] , [ 1318392000000 , 16.857280237471] , [ 1318478400000 , 17.043292522606] , [ 1318564800000 , 17.100161150229] , [ 1318824000000 , 16.942108266257] , [ 1318910400000 , 16.848382043396] , [ 1318996800000 , 16.723866632805] , [ 1319083200000 , 17.109412880037] , [ 1319169600000 , 16.98691902971] , [ 1319428800000 , 17.109847768306] , [ 1319515200000 , 17.176790314354] , [ 1319601600000 , 17.395503357433] , [ 1319688000000 , 18.120215236657] , [ 1319774400000 , 18.208495030036] , [ 1320033600000 , 17.204446894063] , [ 1320120000000 , 17.350163988829] , [ 1320206400000 , 17.666770311911] , [ 1320292800000 , 17.992414015282] , [ 1320379200000 , 17.730167909186] , [ 1320642000000 , 17.78540693483] , [ 1320728400000 , 19.230356158657] , [ 1320814800000 , 17.930397927692] , [ 1320901200000 , 17.758045721417] , [ 1320987600000 , 18.112660862711] , [ 1321246800000 , 17.777577166795] , [ 1321333200000 , 17.924996192204] , [ 1321419600000 , 17.727740473551] , [ 1321506000000 , 17.646091083267] , [ 1321592400000 , 17.796758667436] , [ 1321851600000 , 17.37197245438] , [ 1321938000000 , 17.522133599105] , [ 1322024400000 , 17.341643801545] , [ 1322197200000 , 17.335102273917] , [ 1322456400000 , 18.019343681609] , [ 1322542800000 , 17.792427717329] , [ 1322629200000 , 18.870695767008] , [ 1322715600000 , 17.852232277547] , [ 1322802000000 , 18.089784127726] , [ 1323061200000 , 17.937454450063] , [ 1323147600000 , 19.699367115869] , [ 1323234000000 , 19.218087674502] , [ 1323320400000 , 17.619476226833] , [ 1323406800000 , 19.887347730436] , [ 1323666000000 , 18.994060101082] , [ 1323752400000 , 18.257092168861] , [ 1323838800000 , 18.036619429622] , [ 1323925200000 , 17.62355167219] , [ 1324011600000 , 17.651081664693] , [ 1324270800000 , 17.59611604172] , [ 1324357200000 , 19.777473901257] , [ 1324443600000 , 19.758549269087] , [ 1324530000000 , 19.305745168067] , [ 1324616400000 , 19.477508577279] , [ 1324962000000 , 19.658721540993] , [ 1325048400000 , 19.776982079363] , [ 1325134800000 , 19.79775445985] , [ 1325221200000 , 19.579266534893] , [ 1325566800000 , 16.875348360168] , [ 1325653200000 , 16.51209005265] , [ 1325739600000 , 16.795893273324] , [ 1325826000000 , 16.326297265428] , [ 1326085200000 , 16.761544609478] , [ 1326171600000 , 16.796673291854] , [ 1326258000000 , 16.801006429788] , [ 1326344400000 , 17.19421119679] , [ 1326430800000 , 16.633966739158] , [ 1326776400000 , 16.753558364068] , [ 1326862800000 , 16.766434823515] , [ 1326949200000 , 16.825333048226] , [ 1327035600000 , 16.678310382725] , [ 1327294800000 , 16.77940068599] , [ 1327381200000 , 16.92981395854] , [ 1327467600000 , 16.553116404341] , [ 1327554000000 , 17.145607011141] , [ 1327640400000 , 16.692101288003] , [ 1327899600000 , 17.1299138523] , [ 1327986000000 , 17.334934272582] , [ 1328072400000 , 17.569473903845] , [ 1328158800000 , 17.58055014551] , [ 1328245200000 , 18.007674283266] , [ 1328504400000 , 17.535861038513] , [ 1328590800000 , 17.421484434178] , [ 1328677200000 , 17.938624242102] , [ 1328763600000 , 17.715337292554] , [ 1328850000000 , 17.931002605532] , [ 1329109200000 , 18.011429799705] , [ 1329195600000 , 18.3091954067] , [ 1329282000000 , 18.095545618131] , [ 1329368400000 , 18.226804681101] , [ 1329454800000 , 17.98353379404] , [ 1329800400000 , 18.09949815032] , [ 1329886800000 , 18.086187687455] , [ 1329973200000 , 17.915288923399] , [ 1330059600000 , 18.374018109841] , [ 1330318800000 , 18.156400246042] , [ 1330405200000 , 18.738362295645] , [ 1330491600000 , 18.510314079729] , [ 1330578000000 , 19.773995591892] , [ 1330664400000 , 18.896451364909] , [ 1330923600000 , 18.172901864277] , [ 1331010000000 , 18.696979766004] , [ 1331096400000 , 18.344758870553] , [ 1331182800000 , 18.885229510643] , [ 1331269200000 , 19.018587397692] , [ 1331524800000 , 18.61530115808] , [ 1331611200000 , 20.970817301504] , [ 1331697600000 , 20.703376995314] , [ 1331784000000 , 20.578699286128] , [ 1331870400000 , 20.691463563521] , [ 1332129600000 , 21.143694848039] , [ 1332216000000 , 19.379720324102] , [ 1332302400000 , 20.808095479968] , [ 1332388800000 , 19.472592938835] , [ 1332475200000 , 19.652527661877] , [ 1332734400000 , 21.319534334979] , [ 1332820800000 , 21.179475089546] , [ 1332907200000 , 19.568980241469] , [ 1332993600000 , 19.863211296898] , [ 1333080000000 , 19.65540387795] , [ 1333339200000 , 21.144017361843] , [ 1333425600000 , 20.881242071529] , [ 1333512000000 , 20.836864506942] , [ 1333598400000 , 20.483725369894] , [ 1333944000000 , 21.122797747373] , [ 1334030400000 , 20.254940889753] , [ 1334116800000 , 20.774866008916] , [ 1334203200000 , 20.773364518715] , [ 1334289600000 , 20.235143467857] , [ 1334548800000 , 20.148228074432] , [ 1334635200000 , 20.724827715557] , [ 1334721600000 , 20.663449722631] , [ 1334808000000 , 20.078903654826] , [ 1334894400000 , 20.721033124183] , [ 1335153600000 , 20.169262488388] , [ 1335240000000 , 20.176916238341] , [ 1335326400000 , 20.363612663085] , [ 1335412800000 , 20.832437662049] , [ 1335499200000 , 20.537239147509] , [ 1335758400000 , 20.625282410928]]} , { "key" : "Large Cap (10B-50B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 20.782152937155] , [ 1028174400000 , 23.167704910613] , [ 1028260800000 , 22.171485568143] , [ 1028520000000 , 22.936983725774] , [ 1028606400000 , 21.56545365553] , [ 1028692800000 , 21.943889063222] , [ 1028779200000 , 20.665503464675] , [ 1028865600000 , 20.920751105494] , [ 1029124800000 , 23.212923219962] , [ 1029211200000 , 22.705047901514] , [ 1029297600000 , 21.835872974522] , [ 1029384000000 , 21.805004897089] , [ 1029470400000 , 22.292170105531] , [ 1029729600000 , 21.359075504707] , [ 1029816000000 , 21.723362171238] , [ 1029902400000 , 21.345218476122] , [ 1029988800000 , 21.522763882663] , [ 1030075200000 , 22.329740748497] , [ 1030334400000 , 21.302720154928] , [ 1030420800000 , 22.12030009798] , [ 1030507200000 , 22.239136994577] , [ 1030593600000 , 22.234773062834] , [ 1030680000000 , 21.914162612983] , [ 1031025600000 , 21.19891926077] , [ 1031112000000 , 20.817209431075] , [ 1031198400000 , 20.114702595205] , [ 1031284800000 , 21.082098542664] , [ 1031544000000 , 21.099556827862] , [ 1031630400000 , 20.280142116335] , [ 1031716800000 , 19.975099430939] , [ 1031803200000 , 20.751851708586] , [ 1031889600000 , 19.696919001755] , [ 1032148800000 , 20.092137818157] , [ 1032235200000 , 21.272445177921] , [ 1032321600000 , 20.660914346082] , [ 1032408000000 , 19.82278581788] , [ 1032494400000 , 20.995048359611] , [ 1032753600000 , 20.61414087338] , [ 1032840000000 , 20.524243135334] , [ 1032926400000 , 20.569385930342] , [ 1033012800000 , 20.336308442039] , [ 1033099200000 , 20.290556338481] , [ 1033358400000 , 19.57721304082] , [ 1033444800000 , 21.629104970703] , [ 1033531200000 , 22.079218937278] , [ 1033617600000 , 21.006968249858] , [ 1033704000000 , 18.765047179563] , [ 1033963200000 , 20.927127639002] , [ 1034049600000 , 21.204207591207] , [ 1034136000000 , 20.962951268977] , [ 1034222400000 , 18.84619083411] , [ 1034308800000 , 21.741147594626] , [ 1034568000000 , 21.245709193631] , [ 1034654400000 , 21.909229908762] , [ 1034740800000 , 21.84774740032] , [ 1034827200000 , 22.015639651441] , [ 1034913600000 , 22.320133213376] , [ 1035172800000 , 24.433083344435] , [ 1035259200000 , 23.069989420893] , [ 1035345600000 , 24.497378584815] , [ 1035432000000 , 23.89660401034] , [ 1035518400000 , 24.136840213198] , [ 1035781200000 , 25.575033513127] , [ 1035867600000 , 25.730092965715] , [ 1035954000000 , 25.568380783999] , [ 1036040400000 , 25.407828649116] , [ 1036126800000 , 27.288183817396] , [ 1036386000000 , 27.35938498534] , [ 1036472400000 , 26.678297533218] , [ 1036558800000 , 27.25587540393] , [ 1036645200000 , 26.642939120816] , [ 1036731600000 , 26.8886918317] , [ 1036990800000 , 26.130645597624] , [ 1037077200000 , 26.116883564436] , [ 1037163600000 , 27.010669713278] , [ 1037250000000 , 27.57884816499] , [ 1037336400000 , 27.183554602181] , [ 1037595600000 , 27.509334163742] , [ 1037682000000 , 27.830464716683] , [ 1037768400000 , 27.806765010411] , [ 1037854800000 , 27.32395284742] , [ 1037941200000 , 27.231367541687] , [ 1038200400000 , 27.655200293518] , [ 1038286800000 , 27.451839744896] , [ 1038373200000 , 27.218864531579] , [ 1038546000000 , 28.038964821136] , [ 1038805200000 , 27.67259719238] , [ 1038891600000 , 26.788949026044] , [ 1038978000000 , 26.907309917122] , [ 1039064400000 , 26.722388308064] , [ 1039150800000 , 26.664471995124] , [ 1039410000000 , 26.239664788106] , [ 1039496400000 , 25.889168535614] , [ 1039582800000 , 26.06632917537] , [ 1039669200000 , 27.360436484745] , [ 1039755600000 , 26.820513813669] , [ 1040014800000 , 27.431048745967] , [ 1040101200000 , 27.279302688254] , [ 1040187600000 , 27.052912497541] , [ 1040274000000 , 27.28941852896] , [ 1040360400000 , 27.49768855426] , [ 1040619600000 , 27.02432113222] , [ 1040706000000 , 26.769178536929] , [ 1040878800000 , 26.884066155653] , [ 1040965200000 , 24.933209727831] , [ 1041224400000 , 26.525442732585] , [ 1041310800000 , 24.836009955168] , [ 1041483600000 , 28.148434112631] , [ 1041570000000 , 28.585248260421] , [ 1041829200000 , 26.588164848779] , [ 1041915600000 , 26.484322683618] , [ 1042002000000 , 26.959667286326] , [ 1042088400000 , 27.431086615605] , [ 1042174800000 , 27.461473066225] , [ 1042434000000 , 27.377655497688] , [ 1042520400000 , 28.459801338542] , [ 1042606800000 , 28.761328803191] , [ 1042693200000 , 29.30367038452] , [ 1042779600000 , 26.480780480109] , [ 1043125200000 , 28.314249704972] , [ 1043211600000 , 28.217531135865] , [ 1043298000000 , 28.182500568192] , [ 1043384400000 , 26.215418018396] , [ 1043643600000 , 25.837843506598] , [ 1043730000000 , 25.95211023829] , [ 1043816400000 , 27.35855317206] , [ 1043902800000 , 26.135626995708] , [ 1043989200000 , 26.83359749941] , [ 1044248400000 , 25.200227171645] , [ 1044334800000 , 26.16023626428] , [ 1044421200000 , 26.573032237491] , [ 1044507600000 , 27.026861148349] , [ 1044594000000 , 25.546081485539] , [ 1044853200000 , 27.751441629168] , [ 1044939600000 , 27.109502185008] , [ 1045026000000 , 26.955339488016] , [ 1045112400000 , 26.635921045161] , [ 1045198800000 , 26.473324927012] , [ 1045544400000 , 27.579970132886] , [ 1045630800000 , 27.943972694132] , [ 1045717200000 , 27.462371071406] , [ 1045803600000 , 29.257485248321] , [ 1046062800000 , 27.364546535318] , [ 1046149200000 , 27.254731868848] , [ 1046235600000 , 27.695724658927] , [ 1046322000000 , 30.090893211161] , [ 1046408400000 , 26.657118369336] , [ 1046667600000 , 28.194399188654] , [ 1046754000000 , 27.719581327647] , [ 1046840400000 , 28.103967781241] , [ 1046926800000 , 28.052251152739] , [ 1047013200000 , 26.161720683778] , [ 1047272400000 , 23.610360854361] , [ 1047358800000 , 25.857011365628] , [ 1047445200000 , 27.676820217549] , [ 1047531600000 , 28.151309495162] , [ 1047618000000 , 28.668948137881] , [ 1047877200000 , 26.496536140439] , [ 1047963600000 , 26.687043118953] , [ 1048050000000 , 26.273192321151] , [ 1048136400000 , 26.648670764247] , [ 1048222800000 , 28.542316470431] , [ 1048482000000 , 27.750857458509] , [ 1048568400000 , 26.204441932957] , [ 1048654800000 , 26.595514769297] , [ 1048741200000 , 26.855626674862] , [ 1048827600000 , 27.171681295054] , [ 1049086800000 , 28.841779143028] , [ 1049173200000 , 29.708378318146] , [ 1049259600000 , 29.388557444219] , [ 1049346000000 , 28.515897137815] , [ 1049432400000 , 28.678387772809] , [ 1049688000000 , 28.261039648194] , [ 1049774400000 , 28.843990815368] , [ 1049860800000 , 27.442375698804] , [ 1049947200000 , 28.277039866021] , [ 1050033600000 , 28.420426598954] , [ 1050292800000 , 27.924860258371] , [ 1050379200000 , 28.808303116857] , [ 1050465600000 , 28.115148048304] , [ 1050552000000 , 28.041837502505] , [ 1050897600000 , 27.65036838858] , [ 1050984000000 , 29.098561970905] , [ 1051070400000 , 29.045548896001] , [ 1051156800000 , 29.571081066633] , [ 1051243200000 , 29.315645134302] , [ 1051502400000 , 29.584752672106] , [ 1051588800000 , 30.294478870927] , [ 1051675200000 , 29.987692254818] , [ 1051761600000 , 29.7035238959] , [ 1051848000000 , 30.064092166374] , [ 1052107200000 , 32.161446807271] , [ 1052193600000 , 31.741232247918] , [ 1052280000000 , 33.599316702576] , [ 1052366400000 , 31.645346219228] , [ 1052452800000 , 30.869945241992] , [ 1052712000000 , 33.942694565393] , [ 1052798400000 , 34.45728576228] , [ 1052884800000 , 33.941291408044] , [ 1052971200000 , 35.005246088651] , [ 1053057600000 , 34.514335540975] , [ 1053316800000 , 33.957836454212] , [ 1053403200000 , 33.513800644952] , [ 1053489600000 , 34.337897872934] , [ 1053576000000 , 34.926524488091] , [ 1053662400000 , 33.006206654011] , [ 1054008000000 , 33.318069356354] , [ 1054094400000 , 34.704964073105] , [ 1054180800000 , 34.13573506733] , [ 1054267200000 , 34.469688530643] , [ 1054526400000 , 35.780722519275] , [ 1054612800000 , 35.193101123469] , [ 1054699200000 , 34.349010572232] , [ 1054785600000 , 34.278660998595] , [ 1054872000000 , 34.010874612573] , [ 1055131200000 , 35.061218475203] , [ 1055217600000 , 34.606788376764] , [ 1055304000000 , 35.027487501906] , [ 1055390400000 , 33.969891082805] , [ 1055476800000 , 35.53629096676] , [ 1055736000000 , 34.353137386336] , [ 1055822400000 , 35.191289157046] , [ 1055908800000 , 34.702256566671] , [ 1055995200000 , 35.304145343765] , [ 1056081600000 , 33.742983861236] , [ 1056340800000 , 32.440214432063] , [ 1056427200000 , 32.507448936614] , [ 1056513600000 , 34.096674352075] , [ 1056600000000 , 33.560325432684] , [ 1056686400000 , 34.131436527295] , [ 1056945600000 , 28.578298679901] , [ 1057032000000 , 26.896979102175] , [ 1057118400000 , 27.301370679479] , [ 1057204800000 , 26.832445005201] , [ 1057550400000 , 27.178607928561] , [ 1057636800000 , 27.429816543007] , [ 1057723200000 , 28.590033808004] , [ 1057809600000 , 26.931059342407] , [ 1057896000000 , 27.255337954372] , [ 1058155200000 , 26.91639993488] , [ 1058241600000 , 27.036044512766] , [ 1058328000000 , 27.857685678582] , [ 1058414400000 , 27.954452428144] , [ 1058500800000 , 28.656092733595] , [ 1058760000000 , 29.225401154513] , [ 1058846400000 , 28.456122392084] , [ 1058932800000 , 29.1173699278] , [ 1059019200000 , 29.080448398973] , [ 1059105600000 , 29.848534965666] , [ 1059364800000 , 30.143372848203] , [ 1059451200000 , 29.580617711667] , [ 1059537600000 , 29.916327475977] , [ 1059624000000 , 29.497964363278] , [ 1059710400000 , 29.751264104278] , [ 1059969600000 , 29.639960379051] , [ 1060056000000 , 28.658393113539] , [ 1060142400000 , 26.690032589424] , [ 1060228800000 , 30.875955871864] , [ 1060315200000 , 30.72912065775] , [ 1060574400000 , 30.646975006887] , [ 1060660800000 , 30.806821962881] , [ 1060747200000 , 30.303720995787] , [ 1060833600000 , 30.655138255848] , [ 1060920000000 , 31.295514321094] , [ 1061179200000 , 30.919465598305] , [ 1061265600000 , 32.200682855556] , [ 1061352000000 , 32.212197869654] , [ 1061438400000 , 31.856813927148] , [ 1061524800000 , 32.013387699754] , [ 1061784000000 , 31.402132986026] , [ 1061870400000 , 31.048960092193] , [ 1061956800000 , 31.305466816242] , [ 1062043200000 , 31.123830136075] , [ 1062129600000 , 31.256646521609] , [ 1062475200000 , 31.021234688933] , [ 1062561600000 , 30.798809181972] , [ 1062648000000 , 30.49600956723] , [ 1062734400000 , 31.136829691953] , [ 1062993600000 , 30.832609843013] , [ 1063080000000 , 30.50466839629] , [ 1063166400000 , 30.311373885893] , [ 1063252800000 , 30.642648639514] , [ 1063339200000 , 30.422970273599] , [ 1063598400000 , 30.183876137079] , [ 1063684800000 , 29.697319588858] , [ 1063771200000 , 29.970134502786] , [ 1063857600000 , 29.862591317043] , [ 1063944000000 , 30.809460561167] , [ 1064203200000 , 30.144929589582] , [ 1064289600000 , 30.017920467163] , [ 1064376000000 , 31.974874927938] , [ 1064462400000 , 28.559522775458] , [ 1064548800000 , 28.6644544221] , [ 1064808000000 , 30.536148345128] , [ 1064894400000 , 32.016717242239] , [ 1064980800000 , 35.946276181884] , [ 1065067200000 , 36.166146105882] , [ 1065153600000 , 35.896222214324] , [ 1065412800000 , 36.244066616979] , [ 1065499200000 , 36.121062696516] , [ 1065585600000 , 34.844634102182] , [ 1065672000000 , 34.843999828237] , [ 1065758400000 , 34.766144046676] , [ 1066017600000 , 36.046514350984] , [ 1066104000000 , 36.317140718784] , [ 1066190400000 , 36.294414591758] , [ 1066276800000 , 35.445953010604] , [ 1066363200000 , 35.863853283659] , [ 1066622400000 , 35.256528661886] , [ 1066708800000 , 36.014129918883] , [ 1066795200000 , 34.811742463702] , [ 1066881600000 , 35.391265083244] , [ 1066968000000 , 35.368115083133] , [ 1067230800000 , 35.615234111754] , [ 1067317200000 , 33.389779085783] , [ 1067403600000 , 33.80917727041] , [ 1067490000000 , 34.601149968833] , [ 1067576400000 , 34.013141728195] , [ 1067835600000 , 32.952290001697] , [ 1067922000000 , 33.215699534027] , [ 1068008400000 , 33.061520188406] , [ 1068094800000 , 33.144842813528] , [ 1068181200000 , 33.316420665338] , [ 1068440400000 , 32.986092184385] , [ 1068526800000 , 33.674044999869] , [ 1068613200000 , 35.520013924767] , [ 1068699600000 , 35.382809834917] , [ 1068786000000 , 33.729366877104] , [ 1069045200000 , 33.893930728457] , [ 1069131600000 , 33.968225489223] , [ 1069218000000 , 33.604253300371] , [ 1069304400000 , 33.426828515228] , [ 1069390800000 , 33.146245036819] , [ 1069650000000 , 34.961602464834] , [ 1069736400000 , 36.565505612835] , [ 1069822800000 , 37.009135026163] , [ 1069995600000 , 37.355953698679] , [ 1070254800000 , 39.855887984286] , [ 1070341200000 , 39.222936402912] , [ 1070427600000 , 37.516976020756] , [ 1070514000000 , 37.445141353931] , [ 1070600400000 , 39.772649313679] , [ 1070859600000 , 37.718741100527] , [ 1070946000000 , 37.935919975035] , [ 1071032400000 , 38.201610453147] , [ 1071118800000 , 38.146494131187] , [ 1071205200000 , 36.218732193314] , [ 1071464400000 , 35.552238458164] , [ 1071550800000 , 35.826303305569] , [ 1071637200000 , 35.850641782482] , [ 1071723600000 , 38.04466082467] , [ 1071810000000 , 34.846725027469] , [ 1072069200000 , 36.241674247339] , [ 1072155600000 , 36.244827016598] , [ 1072242000000 , 36.142054086258] , [ 1072414800000 , 35.886753023625] , [ 1072674000000 , 35.66097760701] , [ 1072760400000 , 36.249092418383] , [ 1072846800000 , 30.621489538058] , [ 1073019600000 , 31.700083226709] , [ 1073278800000 , 30.709597618161] , [ 1073365200000 , 31.162921295679] , [ 1073451600000 , 31.138025867932] , [ 1073538000000 , 31.175504886164] , [ 1073624400000 , 30.948180149575] , [ 1073883600000 , 30.921099507251] , [ 1073970000000 , 31.319692495787] , [ 1074056400000 , 30.816529823296] , [ 1074142800000 , 30.975614703117] , [ 1074229200000 , 31.500006427174] , [ 1074574800000 , 31.114026851326] , [ 1074661200000 , 30.895780267549] , [ 1074747600000 , 30.933620812386] , [ 1074834000000 , 31.632265260642] , [ 1075093200000 , 31.236842115894] , [ 1075179600000 , 31.100665229642] , [ 1075266000000 , 31.921791142017] , [ 1075352400000 , 31.480945515383] , [ 1075438800000 , 31.174600651958] , [ 1075698000000 , 33.414952912803] , [ 1075784400000 , 32.875008410345] , [ 1075870800000 , 33.4613538009] , [ 1075957200000 , 32.971464632742] , [ 1076043600000 , 33.271708293655] , [ 1076302800000 , 33.730606409999] , [ 1076389200000 , 33.366890578633] , [ 1076475600000 , 33.360072083473] , [ 1076562000000 , 33.972749424161] , [ 1076648400000 , 33.66325484954] , [ 1076994000000 , 33.56804215399] , [ 1077080400000 , 33.341614887461] , [ 1077166800000 , 34.750077417368] , [ 1077253200000 , 34.382046367213] , [ 1077512400000 , 33.536298812729] , [ 1077598800000 , 33.44175955838] , [ 1077685200000 , 33.603623859891] , [ 1077771600000 , 32.875416612982] , [ 1077858000000 , 33.6715744417] , [ 1078117200000 , 34.027947265531] , [ 1078203600000 , 35.113094495983] , [ 1078290000000 , 35.124846375015] , [ 1078376400000 , 35.131113968822] , [ 1078462800000 , 35.195875684841] , [ 1078722000000 , 34.980143162459] , [ 1078808400000 , 34.657969891596] , [ 1078894800000 , 33.71307114824] , [ 1078981200000 , 33.432831653555] , [ 1079067600000 , 33.178017586773] , [ 1079326800000 , 33.781788496598] , [ 1079413200000 , 33.605185303588] , [ 1079499600000 , 33.878419201487] , [ 1079586000000 , 35.81295464893] , [ 1079672400000 , 33.735259221234] , [ 1079931600000 , 35.836241360064] , [ 1080018000000 , 33.14374704932] , [ 1080104400000 , 33.7412400922] , [ 1080190800000 , 36.322939768613] , [ 1080277200000 , 35.868408389608] , [ 1080536400000 , 35.521065690465] , [ 1080622800000 , 36.077027613518] , [ 1080709200000 , 37.573832172896] , [ 1080795600000 , 36.080968661875] , [ 1080882000000 , 36.118329160337] , [ 1081137600000 , 36.178646926618] , [ 1081224000000 , 34.852899994423] , [ 1081310400000 , 34.778523467953] , [ 1081396800000 , 34.549427187411] , [ 1081742400000 , 34.619799728577] , [ 1081828800000 , 34.448832520837] , [ 1081915200000 , 34.533754302949] , [ 1082001600000 , 34.547350945292] , [ 1082088000000 , 34.499948098932] , [ 1082347200000 , 34.664092861345] , [ 1082433600000 , 34.812754468043] , [ 1082520000000 , 34.158912995764] , [ 1082606400000 , 34.909632522985] , [ 1082692800000 , 34.865063037213] , [ 1082952000000 , 34.87086957709] , [ 1083038400000 , 33.318942090927] , [ 1083124800000 , 32.985367793398] , [ 1083211200000 , 35.515941230021] , [ 1083297600000 , 35.345434273289] , [ 1083556800000 , 35.56734742731] , [ 1083643200000 , 33.59117834143] , [ 1083729600000 , 33.925583096491] , [ 1083816000000 , 35.952156746267] , [ 1083902400000 , 35.780892232841] , [ 1084161600000 , 35.22587747326] , [ 1084248000000 , 35.488165645014] , [ 1084334400000 , 33.581512693719] , [ 1084420800000 , 33.604646783731] , [ 1084507200000 , 33.520888118776] , [ 1084766400000 , 33.691796687735] , [ 1084852800000 , 35.991015359376] , [ 1084939200000 , 35.445559427984] , [ 1085025600000 , 35.436376254759] , [ 1085112000000 , 34.775241381353] , [ 1085371200000 , 35.42982510811] , [ 1085457600000 , 35.748882256019] , [ 1085544000000 , 35.269256272209] , [ 1085630400000 , 34.504815482558] , [ 1085716800000 , 36.200256460337] , [ 1086062400000 , 35.357324686821] , [ 1086148800000 , 35.46563742992] , [ 1086235200000 , 34.863374757175] , [ 1086321600000 , 34.618650968461] , [ 1086580800000 , 33.49835335296] , [ 1086667200000 , 35.690931335719] , [ 1086753600000 , 35.394249929009] , [ 1086840000000 , 35.324125413566] , [ 1087185600000 , 35.273846374602] , [ 1087272000000 , 35.067823928278] , [ 1087358400000 , 34.862695344878] , [ 1087444800000 , 36.456675431841] , [ 1087531200000 , 36.860304488459] , [ 1087790400000 , 36.26350855705] , [ 1087876800000 , 36.910690292132] , [ 1087963200000 , 36.69845046556] , [ 1088049600000 , 37.140551698172] , [ 1088136000000 , 37.19203939064] , [ 1088395200000 , 36.777802274284] , [ 1088481600000 , 37.743304623197] , [ 1088568000000 , 36.957750234096] , [ 1088654400000 , 35.179592120996] , [ 1088740800000 , 35.971757474468] , [ 1089086400000 , 35.953872822652] , [ 1089172800000 , 35.195041368972] , [ 1089259200000 , 33.719085963576] , [ 1089345600000 , 33.719454772482] , [ 1089604800000 , 33.343755096164] , [ 1089691200000 , 35.259682038058] , [ 1089777600000 , 35.130300629567] , [ 1089864000000 , 35.627804959389] , [ 1089950400000 , 35.856242299135] , [ 1090209600000 , 35.19605820946] , [ 1090296000000 , 34.366048164566] , [ 1090382400000 , 34.415606244368] , [ 1090468800000 , 33.72604045124] , [ 1090555200000 , 33.501282385982] , [ 1090814400000 , 33.202199675917] , [ 1090900800000 , 32.830059989005] , [ 1090987200000 , 34.738380878607] , [ 1091073600000 , 34.77837530342] , [ 1091160000000 , 34.98141365024] , [ 1091419200000 , 34.971606739683] , [ 1091505600000 , 34.919484163021] , [ 1091592000000 , 34.190172525865] , [ 1091678400000 , 33.783022417657] , [ 1091764800000 , 33.480473460807] , [ 1092024000000 , 34.070612230614] , [ 1092110400000 , 34.805256090309] , [ 1092196800000 , 34.750826609801] , [ 1092283200000 , 34.178844843315] , [ 1092369600000 , 33.727032090252] , [ 1092628800000 , 34.278013195518] , [ 1092715200000 , 33.630895830164] , [ 1092801600000 , 33.43317129271] , [ 1092888000000 , 33.747978405917] , [ 1092974400000 , 33.884823223026] , [ 1093233600000 , 34.307197218335] , [ 1093320000000 , 33.5095588746] , [ 1093406400000 , 34.789664569944] , [ 1093492800000 , 35.402148408374] , [ 1093579200000 , 34.948816792509] , [ 1093838400000 , 34.705798755337] , [ 1093924800000 , 35.102951607888] , [ 1094011200000 , 34.57879038413] , [ 1094097600000 , 35.405580622395] , [ 1094184000000 , 35.286261774484] , [ 1094529600000 , 35.362343577632] , [ 1094616000000 , 35.072676406746] , [ 1094702400000 , 35.143308034056] , [ 1094788800000 , 34.631417044956] , [ 1095048000000 , 34.312090631943] , [ 1095134400000 , 34.369866267093] , [ 1095220800000 , 36.647756003092] , [ 1095307200000 , 36.189810972106] , [ 1095393600000 , 36.887979517367] , [ 1095652800000 , 36.258789503071] , [ 1095739200000 , 36.437625958101] , [ 1095825600000 , 35.64395750975] , [ 1095912000000 , 34.860705548815] , [ 1095998400000 , 35.491850529845] , [ 1096257600000 , 34.559887935367] , [ 1096344000000 , 34.861934523359] , [ 1096430400000 , 35.489617057756] , [ 1096516800000 , 37.062672361663] , [ 1096603200000 , 36.972723332959] , [ 1096862400000 , 37.426816302493] , [ 1096948800000 , 37.592486370351] , [ 1097035200000 , 38.188500570235] , [ 1097121600000 , 36.920973165811] , [ 1097208000000 , 37.622574761399] , [ 1097467200000 , 38.009313146508] , [ 1097553600000 , 37.696331730285] , [ 1097640000000 , 38.397439580707] , [ 1097726400000 , 39.211459506775] , [ 1097812800000 , 38.130200108537] , [ 1098072000000 , 38.661585901311] , [ 1098158400000 , 39.011281074571] , [ 1098244800000 , 39.168392468547] , [ 1098331200000 , 38.733289080043] , [ 1098417600000 , 38.998113795981] , [ 1098676800000 , 38.720441491193] , [ 1098763200000 , 38.950923626086] , [ 1098849600000 , 40.176332024159] , [ 1098936000000 , 40.331423328065] , [ 1099022400000 , 38.902137338209] , [ 1099285200000 , 38.468176868573] , [ 1099371600000 , 38.751203982778] , [ 1099458000000 , 37.281017817914] , [ 1099544400000 , 37.489219450381] , [ 1099630800000 , 37.379096648202] , [ 1099890000000 , 37.712409768349] , [ 1099976400000 , 36.850720409689] , [ 1100062800000 , 37.413808246441] , [ 1100149200000 , 37.787797742661] , [ 1100235600000 , 37.507731005452] , [ 1100494800000 , 37.573609603023] , [ 1100581200000 , 37.344252614603] , [ 1100667600000 , 36.788082265238] , [ 1100754000000 , 37.250890891018] , [ 1100840400000 , 37.791397451038] , [ 1101099600000 , 38.119683409798] , [ 1101186000000 , 37.681848341174] , [ 1101272400000 , 38.448947285106] , [ 1101445200000 , 38.207195849538] , [ 1101704400000 , 38.21014904083] , [ 1101790800000 , 38.970040540152] , [ 1101877200000 , 37.233630963626] , [ 1101963600000 , 38.032095482422] , [ 1102050000000 , 37.484448510528] , [ 1102309200000 , 37.419563686497] , [ 1102395600000 , 38.141655940335] , [ 1102482000000 , 37.860222838637] , [ 1102568400000 , 38.921399776818] , [ 1102654800000 , 37.685675881274] , [ 1102914000000 , 37.694561045617] , [ 1103000400000 , 37.509265854216] , [ 1103086800000 , 38.781596858096] , [ 1103173200000 , 37.849676197162] , [ 1103259600000 , 38.436888389496] , [ 1103518800000 , 37.152234590549] , [ 1103605200000 , 37.353914990849] , [ 1103691600000 , 37.621646851687] , [ 1103778000000 , 37.984456350252] , [ 1104123600000 , 38.351153974459] , [ 1104210000000 , 38.125525912586] , [ 1104296400000 , 37.590675361222] , [ 1104382800000 , 40.039604906909] , [ 1104469200000 , 37.701280232352] , [ 1104728400000 , 36.32768064337] , [ 1104814800000 , 36.09942019546] , [ 1104901200000 , 34.142323910415] , [ 1104987600000 , 34.427478981573] , [ 1105074000000 , 34.466730026272] , [ 1105333200000 , 35.412905339113] , [ 1105419600000 , 35.029254067577] , [ 1105506000000 , 34.77702168723] , [ 1105592400000 , 35.992104384032] , [ 1105678800000 , 35.932257015488] , [ 1106024400000 , 35.922201782439] , [ 1106110800000 , 34.566179329391] , [ 1106197200000 , 36.285171844918] , [ 1106283600000 , 34.818089042177] , [ 1106542800000 , 34.512918300948] , [ 1106629200000 , 33.79740180972] , [ 1106715600000 , 34.598948223696] , [ 1106802000000 , 34.107995808921] , [ 1106888400000 , 33.740610615246] , [ 1107147600000 , 35.745447840158] , [ 1107234000000 , 36.098299221463] , [ 1107320400000 , 36.029757824523] , [ 1107406800000 , 38.854971784934] , [ 1107493200000 , 36.8835150774] , [ 1107752400000 , 36.9000223708] , [ 1107838800000 , 36.357883099866] , [ 1107925200000 , 36.662128952549] , [ 1108011600000 , 35.633383451781] , [ 1108098000000 , 35.926367677232] , [ 1108357200000 , 36.07834734151] , [ 1108443600000 , 33.387023899029] , [ 1108530000000 , 33.668946331638] , [ 1108616400000 , 33.540818011929] , [ 1108702800000 , 33.673093767923] , [ 1109048400000 , 32.707744179971] , [ 1109134800000 , 34.227065283707] , [ 1109221200000 , 34.192067268571] , [ 1109307600000 , 32.965405076295] , [ 1109566800000 , 34.126193532526] , [ 1109653200000 , 33.593028823117] , [ 1109739600000 , 31.06252783532] , [ 1109826000000 , 31.377529475201] , [ 1109912400000 , 31.373285305342] , [ 1110171600000 , 31.9387475147] , [ 1110258000000 , 32.36276141705] , [ 1110344400000 , 31.715049603287] , [ 1110430800000 , 31.669543925407] , [ 1110517200000 , 32.173517637243] , [ 1110776400000 , 31.455915635672] , [ 1110862800000 , 32.656974481299] , [ 1110949200000 , 35.619878018892] , [ 1111035600000 , 35.189045748171] , [ 1111122000000 , 31.417504568494] , [ 1111381200000 , 35.237522378169] , [ 1111467600000 , 34.659802361222] , [ 1111554000000 , 34.484975823538] , [ 1111640400000 , 34.716760476881] , [ 1111986000000 , 35.209869590921] , [ 1112072400000 , 35.630710839041] , [ 1112158800000 , 35.464235555469] , [ 1112245200000 , 35.556194795435] , [ 1112331600000 , 34.30485724367] , [ 1112587200000 , 34.262532305365] , [ 1112673600000 , 34.837468281161] , [ 1112760000000 , 34.972116779153] , [ 1112846400000 , 34.454711113367] , [ 1112932800000 , 34.184876753143] , [ 1113192000000 , 34.370129717587] , [ 1113278400000 , 34.026139212323] , [ 1113364800000 , 34.136121211528] , [ 1113451200000 , 36.484987273601] , [ 1113537600000 , 32.256269421636] , [ 1113796800000 , 33.272383381821] , [ 1113883200000 , 33.08635408501] , [ 1113969600000 , 33.275919377746] , [ 1114056000000 , 34.705597667494] , [ 1114142400000 , 33.146534134095] , [ 1114401600000 , 35.248334471813] , [ 1114488000000 , 33.094933000729] , [ 1114574400000 , 33.040890848337] , [ 1114660800000 , 32.383859722243] , [ 1114747200000 , 32.956457583442] , [ 1115006400000 , 35.25476937522] , [ 1115092800000 , 34.93508420001] , [ 1115179200000 , 35.017615115124] , [ 1115265600000 , 35.444880566821] , [ 1115352000000 , 34.662066987122] , [ 1115611200000 , 34.978649029471] , [ 1115697600000 , 35.231798879402] , [ 1115784000000 , 35.189173109602] , [ 1115870400000 , 34.098929785653] , [ 1115956800000 , 34.965665300545] , [ 1116216000000 , 35.33310254828] , [ 1116302400000 , 35.327452664272] , [ 1116388800000 , 35.184668659904] , [ 1116475200000 , 34.972293218571] , [ 1116561600000 , 34.898524545706] , [ 1116820800000 , 34.82511182672] , [ 1116907200000 , 35.291423726777] , [ 1116993600000 , 35.499278063825] , [ 1117080000000 , 36.360545112276] , [ 1117166400000 , 36.064262122562] , [ 1117512000000 , 36.939280235001] , [ 1117598400000 , 37.176516239756] , [ 1117684800000 , 37.125877522574] , [ 1117771200000 , 37.663368514969] , [ 1118030400000 , 37.147609477452] , [ 1118116800000 , 38.14957407077] , [ 1118203200000 , 37.773623087991] , [ 1118289600000 , 38.09259699337] , [ 1118376000000 , 38.022450528027] , [ 1118635200000 , 34.933782265782] , [ 1118721600000 , 38.559702626728] , [ 1118808000000 , 36.400407189965] , [ 1118894400000 , 37.122653894364] , [ 1118980800000 , 37.376535430078] , [ 1119240000000 , 37.033173259849] , [ 1119326400000 , 37.03710926125] , [ 1119412800000 , 36.917647013739] , [ 1119499200000 , 34.855413999149] , [ 1119585600000 , 34.932556573976] , [ 1119844800000 , 38.005371063674] , [ 1119931200000 , 37.209031612439] , [ 1120017600000 , 39.097736759506] , [ 1120104000000 , 34.303901241605] , [ 1120190400000 , 34.656914255499] , [ 1120536000000 , 34.440796356574] , [ 1120622400000 , 34.740222239674] , [ 1120708800000 , 34.339101153525] , [ 1120795200000 , 34.745446407813] , [ 1121054400000 , 32.808834484697] , [ 1121140800000 , 33.193324056921] , [ 1121227200000 , 33.176246686149] , [ 1121313600000 , 32.6304209599] , [ 1121400000000 , 33.618850768518] , [ 1121659200000 , 32.913219473454] , [ 1121745600000 , 33.15723895324] , [ 1121832000000 , 33.440360839534] , [ 1121918400000 , 33.248786152488] , [ 1122004800000 , 33.04570084332] , [ 1122264000000 , 32.945957569531] , [ 1122350400000 , 33.417257804502] , [ 1122436800000 , 33.002812636003] , [ 1122523200000 , 33.289204399572] , [ 1122609600000 , 33.054134891372] , [ 1122868800000 , 32.433598898209] , [ 1122955200000 , 33.257566123828] , [ 1123041600000 , 34.316705113254] , [ 1123128000000 , 35.151852666961] , [ 1123214400000 , 35.307825838341] , [ 1123473600000 , 35.897355701538] , [ 1123560000000 , 35.713381842899] , [ 1123646400000 , 33.800816986159] , [ 1123732800000 , 33.826312872189] , [ 1123819200000 , 32.852399971332] , [ 1124078400000 , 32.625343623356] , [ 1124164800000 , 33.67931959259] , [ 1124251200000 , 33.638491037627] , [ 1124337600000 , 33.279061337361] , [ 1124424000000 , 33.690948973697] , [ 1124683200000 , 32.870324449322] , [ 1124769600000 , 34.95885187401] , [ 1124856000000 , 33.722803788033] , [ 1124942400000 , 33.805043706086] , [ 1125028800000 , 33.084171218571] , [ 1125288000000 , 32.797476731941] , [ 1125374400000 , 34.951844742643] , [ 1125460800000 , 35.34346399059] , [ 1125547200000 , 36.089453913685] , [ 1125633600000 , 36.85637833275] , [ 1125979200000 , 35.262182939029] , [ 1126065600000 , 34.201012889921] , [ 1126152000000 , 33.946465818246] , [ 1126238400000 , 33.914195415859] , [ 1126497600000 , 33.822840966785] , [ 1126584000000 , 35.009551665424] , [ 1126670400000 , 35.220611758553] , [ 1126756800000 , 35.127643340204] , [ 1126843200000 , 36.383495631418] , [ 1127102400000 , 34.726269086065] , [ 1127188800000 , 35.095334211073] , [ 1127275200000 , 35.24956964052] , [ 1127361600000 , 35.342179891616] , [ 1127448000000 , 36.065857185126] , [ 1127707200000 , 36.385521496362] , [ 1127793600000 , 36.462782459528] , [ 1127880000000 , 35.845318249115] , [ 1127966400000 , 36.363275856063] , [ 1128052800000 , 36.072135896826] , [ 1128312000000 , 35.153590452456] , [ 1128398400000 , 35.975496456615] , [ 1128484800000 , 36.548711383227] , [ 1128571200000 , 36.850126363729] , [ 1128657600000 , 36.479820665931] , [ 1128916800000 , 35.393152267139] , [ 1129003200000 , 38.253113193037] , [ 1129089600000 , 38.239427481354] , [ 1129176000000 , 39.311851451163] , [ 1129262400000 , 40.077836034903] , [ 1129521600000 , 38.390564864298] , [ 1129608000000 , 38.644587842762] , [ 1129694400000 , 26.854772819487] , [ 1129780800000 , 38.405619170555] , [ 1129867200000 , 38.267604982325] , [ 1130126400000 , 38.671045488684] , [ 1130212800000 , 38.863923613658] , [ 1130299200000 , 38.527676302969] , [ 1130385600000 , 38.176934215806] , [ 1130472000000 , 38.615615567328] , [ 1130734800000 , 39.029254695908] , [ 1130821200000 , 40.345935638008] , [ 1130907600000 , 36.040400308219] , [ 1130994000000 , 38.380001866798] , [ 1131080400000 , 38.152664716617] , [ 1131339600000 , 34.447873616487] , [ 1131426000000 , 35.163550315799] , [ 1131512400000 , 35.284210246933] , [ 1131598800000 , 34.787855760406] , [ 1131685200000 , 36.541454039291] , [ 1131944400000 , 35.817677167594] , [ 1132030800000 , 37.111554350089] , [ 1132117200000 , 35.914771950142] , [ 1132203600000 , 34.256979049371] , [ 1132290000000 , 32.288086077253] , [ 1132549200000 , 33.693676625169] , [ 1132635600000 , 33.319180224836] , [ 1132722000000 , 32.447672948837] , [ 1132894800000 , 32.83521336049] , [ 1133154000000 , 31.86079803623] , [ 1133240400000 , 33.447392145536] , [ 1133326800000 , 33.194693868177] , [ 1133413200000 , 34.05038018519] , [ 1133499600000 , 34.266078095003] , [ 1133758800000 , 36.281653072547] , [ 1133845200000 , 36.395604508473] , [ 1133931600000 , 36.371301663593] , [ 1134018000000 , 36.659153905129] , [ 1134104400000 , 36.034564671531] , [ 1134363600000 , 33.307768127274] , [ 1134450000000 , 33.900360947226] , [ 1134536400000 , 36.032467902097] , [ 1134622800000 , 35.836994524746] , [ 1134709200000 , 35.51223490125] , [ 1134968400000 , 35.555248868886] , [ 1135054800000 , 35.860761941202] , [ 1135141200000 , 33.09434184741] , [ 1135227600000 , 33.086054616538] , [ 1135314000000 , 33.281782296023] , [ 1135659600000 , 32.986247810646] , [ 1135746000000 , 32.896876050255] , [ 1135832400000 , 29.820219566301] , [ 1135918800000 , 30.632136365846] , [ 1136264400000 , 44.920989565915] , [ 1136350800000 , 44.689486676175] , [ 1136437200000 , 43.935531446195] , [ 1136523600000 , 45.382203356841] , [ 1136782800000 , 45.278347077518] , [ 1136869200000 , 44.21356252252] , [ 1136955600000 , 44.789599572693] , [ 1137042000000 , 44.179007511053] , [ 1137128400000 , 45.062314142306] , [ 1137474000000 , 43.114283635779] , [ 1137560400000 , 43.666161708325] , [ 1137646800000 , 45.000874970129] , [ 1137733200000 , 44.54722680117] , [ 1137992400000 , 43.998768537089] , [ 1138078800000 , 45.334963538757] , [ 1138165200000 , 41.422894514679] , [ 1138251600000 , 41.765289072857] , [ 1138338000000 , 41.361837364233] , [ 1138597200000 , 41.467309975936] , [ 1138683600000 , 44.388767922429] , [ 1138770000000 , 42.849230569584] , [ 1138856400000 , 42.670378064767] , [ 1138942800000 , 43.607945339449] , [ 1139202000000 , 42.913143892052] , [ 1139288400000 , 42.038511907006] , [ 1139374800000 , 42.059997327191] , [ 1139461200000 , 42.668521384309] , [ 1139547600000 , 42.508830425147] , [ 1139806800000 , 42.360977340191] , [ 1139893200000 , 42.450464118612] , [ 1139979600000 , 41.534308383372] , [ 1140066000000 , 40.514021280382] , [ 1140152400000 , 40.747646796332] , [ 1140498000000 , 41.116758915735] , [ 1140584400000 , 42.374772075595] , [ 1140670800000 , 41.68214532166] , [ 1140757200000 , 42.24235753426] , [ 1141016400000 , 41.441747369369] , [ 1141102800000 , 41.448070251769] , [ 1141189200000 , 56.275981568947] , [ 1141275600000 , 55.282627169559] , [ 1141362000000 , 56.647027485319] , [ 1141621200000 , 56.059660028106] , [ 1141707600000 , 54.77918132076] , [ 1141794000000 , 54.478201978136] , [ 1141880400000 , 54.620549543794] , [ 1141966800000 , 55.510981587484] , [ 1142226000000 , 55.406167363186] , [ 1142312400000 , 55.352302193651] , [ 1142398800000 , 55.147409450116] , [ 1142485200000 , 55.444964855182] , [ 1142571600000 , 55.627238682548] , [ 1142830800000 , 56.854644322019] , [ 1142917200000 , 57.023277554471] , [ 1143003600000 , 55.018950347698] , [ 1143090000000 , 54.352959079547] , [ 1143176400000 , 54.996261045117] , [ 1143435600000 , 56.639708274569] , [ 1143522000000 , 57.180670453799] , [ 1143608400000 , 56.842700893772] , [ 1143694800000 , 56.973261893324] , [ 1143781200000 , 45.958572168113] , [ 1144036800000 , 44.899077837883] , [ 1144123200000 , 44.320622028659] , [ 1144209600000 , 44.219804252191] , [ 1144296000000 , 45.173865376276] , [ 1144382400000 , 45.732509493847] , [ 1144641600000 , 48.1891780745] , [ 1144728000000 , 46.840271938897] , [ 1144814400000 , 46.789706444344] , [ 1144900800000 , 46.393449417654] , [ 1145246400000 , 45.645233846302] , [ 1145332800000 , 47.326547762145] , [ 1145419200000 , 46.332232113328] , [ 1145505600000 , 47.267052922945] , [ 1145592000000 , 47.693265582401] , [ 1145851200000 , 47.401272809184] , [ 1145937600000 , 47.052191663825] , [ 1146024000000 , 47.998220631374] , [ 1146110400000 , 46.279773880716] , [ 1146196800000 , 45.958311743231] , [ 1146456000000 , 46.581353772922] , [ 1146542400000 , 46.679770406725] , [ 1146628800000 , 46.970527577035] , [ 1146715200000 , 49.467528887389] , [ 1146801600000 , 48.86749946278] , [ 1147060800000 , 49.648628502483] , [ 1147147200000 , 50.494348136037] , [ 1147233600000 , 50.337969671596] , [ 1147320000000 , 49.571689687202] , [ 1147406400000 , 46.990254393641] , [ 1147665600000 , 47.304911630878] , [ 1147752000000 , 47.983917320898] , [ 1147838400000 , 45.854540750668] , [ 1147924800000 , 45.510137611603] , [ 1148011200000 , 46.151175817378] , [ 1148270400000 , 45.62364868657] , [ 1148356800000 , 46.110148005872] , [ 1148443200000 , 45.810233526614] , [ 1148529600000 , 44.9930408698] , [ 1148616000000 , 46.363888952819] , [ 1148961600000 , 47.143012944602] , [ 1149048000000 , 47.327707321384] , [ 1149134400000 , 45.175104405284] , [ 1149220800000 , 45.34703424423] , [ 1149480000000 , 46.216779893393] , [ 1149566400000 , 46.598040617359] , [ 1149652800000 , 47.189241289933] , [ 1149739200000 , 45.658398048284] , [ 1149825600000 , 46.9164487272] , [ 1150084800000 , 46.011284533759] , [ 1150171200000 , 46.113819310332] , [ 1150257600000 , 46.190932441443] , [ 1150344000000 , 46.750676824435] , [ 1150430400000 , 46.487507306337] , [ 1150689600000 , 46.383666602358] , [ 1150776000000 , 48.314734663751] , [ 1150862400000 , 45.904959801309] , [ 1150948800000 , 46.414508246488] , [ 1151035200000 , 45.827051574341] , [ 1151294400000 , 45.660314700071] , [ 1151380800000 , 46.072521952446] , [ 1151467200000 , 45.154916189936] , [ 1151553600000 , 47.901416171471] , [ 1151640000000 , 37.229325012319] , [ 1151899200000 , 37.761444779987] , [ 1152072000000 , 37.684391952883] , [ 1152158400000 , 36.901070341916] , [ 1152244800000 , 35.027909343394] , [ 1152504000000 , 35.590532623892] , [ 1152590400000 , 36.323481699381] , [ 1152676800000 , 35.373968184744] , [ 1152763200000 , 36.112919872847] , [ 1152849600000 , 35.877394091331] , [ 1153108800000 , 35.904079397751] , [ 1153195200000 , 34.982167807466] , [ 1153281600000 , 34.866840916243] , [ 1153368000000 , 35.461239442698] , [ 1153454400000 , 35.178443755199] , [ 1153713600000 , 35.874799052439] , [ 1153800000000 , 34.315979895357] , [ 1153886400000 , 35.263596736544] , [ 1153972800000 , 36.720199730035] , [ 1154059200000 , 36.582484990637] , [ 1154318400000 , 36.146231730222] , [ 1154404800000 , 36.473218758824] , [ 1154491200000 , 39.350334069031] , [ 1154577600000 , 39.349849644247] , [ 1154664000000 , 38.905126995273] , [ 1154923200000 , 38.501874531275] , [ 1155009600000 , 38.085057200453] , [ 1155096000000 , 36.580874486445] , [ 1155182400000 , 35.278564569285] , [ 1155268800000 , 35.339867546352] , [ 1155528000000 , 38.144145011232] , [ 1155614400000 , 38.527057988677] , [ 1155700800000 , 38.512057817284] , [ 1155787200000 , 38.633124563109] , [ 1155873600000 , 38.441142917546] , [ 1156132800000 , 38.198057114995] , [ 1156219200000 , 39.387052916829] , [ 1156305600000 , 38.539204428591] , [ 1156392000000 , 38.403254514578] , [ 1156478400000 , 36.985515551347] , [ 1156737600000 , 38.43679432035] , [ 1156824000000 , 36.879754047101] , [ 1156910400000 , 36.833854632532] , [ 1156996800000 , 37.981440096908] , [ 1157083200000 , 38.972302352471] , [ 1157428800000 , 39.04251002197] , [ 1157515200000 , 38.914819281455] , [ 1157601600000 , 38.109923576759] , [ 1157688000000 , 38.357930697252] , [ 1157947200000 , 37.827158778622] , [ 1158033600000 , 36.780706791936] , [ 1158120000000 , 36.509922890579] , [ 1158206400000 , 36.26065959187] , [ 1158292800000 , 36.600766410154] , [ 1158552000000 , 38.705470046823] , [ 1158638400000 , 38.401807247359] , [ 1158724800000 , 38.515622354436] , [ 1158811200000 , 38.315859920133] , [ 1158897600000 , 38.250951237303] , [ 1159156800000 , 38.67982448146] , [ 1159243200000 , 37.224057114459] , [ 1159329600000 , 38.660376868643] , [ 1159416000000 , 38.830427200907] , [ 1159502400000 , 38.706842387278] , [ 1159761600000 , 41.079742461457] , [ 1159848000000 , 40.444930825372] , [ 1159934400000 , 40.886912676513] , [ 1160020800000 , 41.224822083341] , [ 1160107200000 , 40.347601367712] , [ 1160366400000 , 41.837356554128] , [ 1160452800000 , 40.897932943193] , [ 1160539200000 , 40.518543650028] , [ 1160625600000 , 40.288752137816] , [ 1160712000000 , 41.043190919031] , [ 1160971200000 , 41.587317963957] , [ 1161057600000 , 41.506640506137] , [ 1161144000000 , 42.119301433006] , [ 1161230400000 , 41.682102125416] , [ 1161316800000 , 41.658385997837] , [ 1161576000000 , 41.364755536555] , [ 1161662400000 , 41.118329642666] , [ 1161748800000 , 41.930530943983] , [ 1161835200000 , 41.701997048839] , [ 1161921600000 , 41.523275953147] , [ 1162184400000 , 42.250622483593] , [ 1162270800000 , 41.46919877524] , [ 1162357200000 , 40.652998161448] , [ 1162443600000 , 40.301949948859] , [ 1162530000000 , 40.765389738426] , [ 1162789200000 , 40.377269979391] , [ 1162875600000 , 40.153092201418] , [ 1162962000000 , 40.333395774847] , [ 1163048400000 , 40.34239887406] , [ 1163134800000 , 39.862900128257] , [ 1163394000000 , 40.215906322029] , [ 1163480400000 , 40.261573859441] , [ 1163566800000 , 40.232379320879] , [ 1163653200000 , 40.855851614849] , [ 1163739600000 , 40.249521139052] , [ 1163998800000 , 40.310180760733] , [ 1164085200000 , 40.615769349049] , [ 1164171600000 , 42.51425827267] , [ 1164344400000 , 42.563323885289] , [ 1164603600000 , 40.875145750298] , [ 1164690000000 , 40.948224280484] , [ 1164776400000 , 40.473905934522] , [ 1164862800000 , 40.849014399588] , [ 1164949200000 , 48.028193886878] , [ 1165208400000 , 49.283546585] , [ 1165294800000 , 49.28735947581] , [ 1165381200000 , 49.582676075971] , [ 1165467600000 , 49.505520921541] , [ 1165554000000 , 49.334066135561] , [ 1165813200000 , 47.361493884564] , [ 1165899600000 , 48.022668447577] , [ 1165986000000 , 48.136007177164] , [ 1166072400000 , 49.530879789181] , [ 1166158800000 , 49.049605191802] , [ 1166418000000 , 47.79272343811] , [ 1166504400000 , 47.956058613061] , [ 1166590800000 , 47.251710880592] , [ 1166677200000 , 48.081631554785] , [ 1166763600000 , 47.789565103002] , [ 1167109200000 , 46.999857094634] , [ 1167195600000 , 47.256470084764] , [ 1167282000000 , 48.260105754234] , [ 1167368400000 , 47.200164209204] , [ 1167800400000 , 40.549288786421] , [ 1167886800000 , 40.677964850113] , [ 1167973200000 , 38.61986361478] , [ 1168232400000 , 39.533449972988] , [ 1168318800000 , 43.077590371278] , [ 1168405200000 , 42.273909561109] , [ 1168491600000 , 41.970722386306] , [ 1168578000000 , 42.365794801946] , [ 1168923600000 , 40.58045315325] , [ 1169010000000 , 40.166084518201] , [ 1169096400000 , 42.75059731468] , [ 1169182800000 , 42.404230220348] , [ 1169442000000 , 42.900567347161] , [ 1169528400000 , 43.83166540379] , [ 1169614800000 , 43.52394327365] , [ 1169701200000 , 43.757051115448] , [ 1169787600000 , 43.797231102267] , [ 1170046800000 , 43.835763850656] , [ 1170133200000 , 44.207104496916] , [ 1170219600000 , 41.649989577322] , [ 1170306000000 , 41.294349341683] , [ 1170392400000 , 40.978546978348] , [ 1170651600000 , 42.886190399794] , [ 1170738000000 , 40.933388651012] , [ 1170824400000 , 42.966105369238] , [ 1170910800000 , 42.399655191504] , [ 1170997200000 , 41.278267224216] , [ 1171256400000 , 41.514161952875] , [ 1171342800000 , 41.75837231568] , [ 1171429200000 , 42.864861082849] , [ 1171515600000 , 42.040457105532] , [ 1171602000000 , 41.705396079693] , [ 1171947600000 , 43.617273023627] , [ 1172034000000 , 43.168627647137] , [ 1172120400000 , 42.972722792162] , [ 1172206800000 , 41.83791221391] , [ 1172466000000 , 39.783182892268] , [ 1172552400000 , 39.438729187683] , [ 1172638800000 , 40.1247547104] , [ 1172725200000 , 41.699042365727] , [ 1172811600000 , 41.851533446016] , [ 1173070800000 , 42.011879379647] , [ 1173157200000 , 42.039333165794] , [ 1173243600000 , 41.275902320569] , [ 1173330000000 , 42.348740478519] , [ 1173416400000 , 41.586648653507] , [ 1173672000000 , 42.654881252113] , [ 1173758400000 , 41.691200648855] , [ 1173844800000 , 41.855349262981] , [ 1173931200000 , 42.517086809842] , [ 1174017600000 , 42.865130428195] , [ 1174276800000 , 43.238550747996] , [ 1174363200000 , 41.798874003536] , [ 1174449600000 , 42.291275186549] , [ 1174536000000 , 42.013470636387] , [ 1174622400000 , 41.530432572068] , [ 1174881600000 , 41.910687468403] , [ 1174968000000 , 42.15736146194] , [ 1175054400000 , 41.492349901568] , [ 1175140800000 , 42.560352462857] , [ 1175227200000 , 41.97254938106] , [ 1175486400000 , 45.374436924472] , [ 1175572800000 , 45.893545304187] , [ 1175659200000 , 45.22506003574] , [ 1175745600000 , 46.05209467202] , [ 1176091200000 , 47.035327960171] , [ 1176177600000 , 46.576342048869] , [ 1176264000000 , 46.295802288735] , [ 1176350400000 , 47.041541599954] , [ 1176436800000 , 47.159100540413] , [ 1176696000000 , 48.44665937597] , [ 1176782400000 , 47.152224419599] , [ 1176868800000 , 48.212432491054] , [ 1176955200000 , 49.068611571573] , [ 1177041600000 , 48.602141536117] , [ 1177300800000 , 47.742362179746] , [ 1177387200000 , 45.698690353783] , [ 1177473600000 , 48.371240280254] , [ 1177560000000 , 48.415485725908] , [ 1177646400000 , 48.55405459696] , [ 1177905600000 , 47.304778703626] , [ 1177992000000 , 46.225008783656] , [ 1178078400000 , 44.229418778794] , [ 1178164800000 , 44.406564625653] , [ 1178251200000 , 45.50742880888] , [ 1178510400000 , 44.984448759391] , [ 1178596800000 , 44.65448956982] , [ 1178683200000 , 45.588829075533] , [ 1178769600000 , 45.020749850888] , [ 1178856000000 , 45.465243868375] , [ 1179115200000 , 45.519305456743] , [ 1179201600000 , 44.911170952119] , [ 1179288000000 , 44.745521815018] , [ 1179374400000 , 45.940956506756] , [ 1179460800000 , 46.306072153648] , [ 1179720000000 , 46.22792700306] , [ 1179806400000 , 46.956904197167] , [ 1179892800000 , 46.573345705707] , [ 1179979200000 , 46.43786344348] , [ 1180065600000 , 46.094432535573] , [ 1180411200000 , 46.697477331175] , [ 1180497600000 , 46.428879450571] , [ 1180584000000 , 50.499545993297] , [ 1180670400000 , 55.339281464709] , [ 1180929600000 , 54.409050782759] , [ 1181016000000 , 54.593169041359] , [ 1181102400000 , 55.412911246063] , [ 1181188800000 , 53.665870169968] , [ 1181275200000 , 50.928028587585] , [ 1181534400000 , 50.923673347514] , [ 1181620800000 , 50.845287393009] , [ 1181707200000 , 54.947494876833] , [ 1181793600000 , 52.888928872303] , [ 1181880000000 , 53.052353110611] , [ 1182139200000 , 53.852433577049] , [ 1182225600000 , 53.390913524952] , [ 1182312000000 , 51.231387895907] , [ 1182398400000 , 55.248891533728] , [ 1182484800000 , 53.132739002471] , [ 1182744000000 , 54.932644045835] , [ 1182830400000 , 51.454250922562] , [ 1182916800000 , 49.516775558942] , [ 1183003200000 , 50.807400759558] , [ 1183089600000 , 55.668820880205] , [ 1183348800000 , 40.677665131618] , [ 1183435200000 , 40.957823912031] , [ 1183608000000 , 43.070762941754] , [ 1183694400000 , 44.001891147519] , [ 1183953600000 , 41.316806970291] , [ 1184040000000 , 42.640942591304] , [ 1184126400000 , 41.480018575865] , [ 1184212800000 , 43.794516056231] , [ 1184299200000 , 44.136091304711] , [ 1184558400000 , 44.486575362551] , [ 1184644800000 , 43.128278487299] , [ 1184731200000 , 43.465973749196] , [ 1184817600000 , 43.796431410073] , [ 1184904000000 , 43.7061873612] , [ 1185163200000 , 43.286353767759] , [ 1185249600000 , 40.301127610827] , [ 1185336000000 , 42.276206724195] , [ 1185422400000 , 41.647404419762] , [ 1185508800000 , 40.836581996412] , [ 1185768000000 , 42.082497022874] , [ 1185854400000 , 41.819782438579] , [ 1185940800000 , 40.864923131589] , [ 1186027200000 , 40.752166804551] , [ 1186113600000 , 40.827600193087] , [ 1186372800000 , 40.25752064843] , [ 1186459200000 , 40.336744579352] , [ 1186545600000 , 41.526885374386] , [ 1186632000000 , 39.201321809451] , [ 1186718400000 , 40.824568472821] , [ 1186977600000 , 39.938781115159] , [ 1187064000000 , 40.275412920888] , [ 1187150400000 , 39.585179984672] , [ 1187236800000 , 38.550944472758] , [ 1187323200000 , 39.506420207732] , [ 1187582400000 , 38.98522762966] , [ 1187668800000 , 39.12668775225] , [ 1187755200000 , 38.826709386529] , [ 1187841600000 , 39.74645920889] , [ 1187928000000 , 39.907580166007] , [ 1188187200000 , 40.172651639289] , [ 1188273600000 , 39.271745306592] , [ 1188360000000 , 39.1410155061] , [ 1188446400000 , 40.075153010354] , [ 1188532800000 , 40.043023694857] , [ 1188878400000 , 38.762379226903] , [ 1188964800000 , 38.976244721011] , [ 1189051200000 , 40.888712180786] , [ 1189137600000 , 40.773231611241] , [ 1189396800000 , 39.686618837375] , [ 1189483200000 , 40.315506851923] , [ 1189569600000 , 40.768000686391] , [ 1189656000000 , 41.120158728705] , [ 1189742400000 , 41.289395778372] , [ 1190001600000 , 41.54453121935] , [ 1190088000000 , 40.448292109836] , [ 1190174400000 , 40.880259975885] , [ 1190260800000 , 40.769880453321] , [ 1190347200000 , 40.749304927693] , [ 1190606400000 , 40.630832500314] , [ 1190692800000 , 38.885351668649] , [ 1190779200000 , 38.583006012709] , [ 1190865600000 , 39.606330180132] , [ 1190952000000 , 40.128161596718] , [ 1191211200000 , 43.060065039489] , [ 1191297600000 , 43.196113993927] , [ 1191384000000 , 42.883319982201] , [ 1191470400000 , 43.067998208361] , [ 1191556800000 , 41.980852012484] , [ 1191816000000 , 42.883383613468] , [ 1191902400000 , 43.344013615142] , [ 1191988800000 , 42.614619640333] , [ 1192075200000 , 40.389984508037] , [ 1192161600000 , 42.693081639034] , [ 1192420800000 , 40.482578994898] , [ 1192507200000 , 40.260055795754] , [ 1192593600000 , 44.676963280551] , [ 1192680000000 , 42.95041649405] , [ 1192766400000 , 44.644292986367] , [ 1193025600000 , 44.639042554631] , [ 1193112000000 , 44.490801914855] , [ 1193198400000 , 42.591597590587] , [ 1193284800000 , 37.893186596748] , [ 1193371200000 , 38.44069180621] , [ 1193630400000 , 44.041100448824] , [ 1193716800000 , 43.361989197879] , [ 1193803200000 , 43.435786819594] , [ 1193889600000 , 42.460190442791] , [ 1193976000000 , 41.73837439964] , [ 1194238800000 , 39.47118358751] , [ 1194325200000 , 38.524217012563] , [ 1194411600000 , 40.577263626423] , [ 1194498000000 , 39.752284978368] , [ 1194584400000 , 40.103726892742] , [ 1194843600000 , 41.943328015222] , [ 1194930000000 , 39.597327285491] , [ 1195016400000 , 39.398666765961] , [ 1195102800000 , 39.011877833744] , [ 1195189200000 , 39.394878904507] , [ 1195448400000 , 36.009903702726] , [ 1195534800000 , 36.445892022393] , [ 1195621200000 , 39.75755712015] , [ 1195794000000 , 36.983322528572] , [ 1196053200000 , 38.251248776703] , [ 1196139600000 , 37.768716680642] , [ 1196226000000 , 36.870397086207] , [ 1196312400000 , 35.559626500934] , [ 1196398800000 , 36.370747685327] , [ 1196658000000 , 33.842649797434] , [ 1196744400000 , 35.023557058628] , [ 1196830800000 , 34.842328804301] , [ 1196917200000 , 34.112676542924] , [ 1197003600000 , 37.754414754838] , [ 1197262800000 , 36.252302733294] , [ 1197349200000 , 35.451916280442] , [ 1197435600000 , 34.915457858297] , [ 1197522000000 , 35.444820052421] , [ 1197608400000 , 34.183774983403] , [ 1197867600000 , 34.567832554773] , [ 1197954000000 , 39.384903210135] , [ 1198040400000 , 38.5810369827] , [ 1198126800000 , 38.229836463596] , [ 1198213200000 , 38.683044435007] , [ 1198472400000 , 39.02123959916] , [ 1198645200000 , 37.833081338653] , [ 1198731600000 , 38.108065472603] , [ 1198818000000 , 38.794022935015] , [ 1199077200000 , 40.228624536054] , [ 1199250000000 , 39.187498445172] , [ 1199336400000 , 36.417462496835] , [ 1199422800000 , 34.62763742216] , [ 1199682000000 , 36.736459264427] , [ 1199768400000 , 35.497559317682] , [ 1199854800000 , 34.918752591596] , [ 1199941200000 , 35.101531833782] , [ 1200027600000 , 35.49974607981] , [ 1200286800000 , 39.282649339878] , [ 1200373200000 , 39.080607719521] , [ 1200459600000 , 35.37988216736] , [ 1200546000000 , 37.663243683233] , [ 1200632400000 , 36.648070379947] , [ 1200978000000 , 37.430305878223] , [ 1201064400000 , 36.793485008657] , [ 1201150800000 , 40.381650279604] , [ 1201237200000 , 40.203730091606] , [ 1201496400000 , 40.368928796249] , [ 1201582800000 , 41.184304062135] , [ 1201669200000 , 40.276940973753] , [ 1201755600000 , 37.480905497643] , [ 1201842000000 , 37.474563506702] , [ 1202101200000 , 37.297125127342] , [ 1202187600000 , 36.117916684956] , [ 1202274000000 , 37.445680046014] , [ 1202360400000 , 38.22381673917] , [ 1202446800000 , 37.050419257962] , [ 1202706000000 , 36.592088770769] , [ 1202792400000 , 38.547831893985] , [ 1202878800000 , 38.684311217747] , [ 1202965200000 , 36.364014574572] , [ 1203051600000 , 36.622361890048] , [ 1203397200000 , 37.389531306573] , [ 1203483600000 , 36.607946999831] , [ 1203570000000 , 34.963636332469] , [ 1203656400000 , 35.248929477753] , [ 1203915600000 , 34.872771074855] , [ 1204002000000 , 34.208830042527] , [ 1204088400000 , 34.932674355541] , [ 1204174800000 , 35.114539235381] , [ 1204261200000 , 34.676553202955] , [ 1204520400000 , 34.880232048577] , [ 1204606800000 , 32.430681962075] , [ 1204693200000 , 33.367813465533] , [ 1204779600000 , 32.769464389519] , [ 1204866000000 , 32.65236118665] , [ 1205121600000 , 34.509687450756] , [ 1205208000000 , 32.6915298708] , [ 1205294400000 , 33.51547698851] , [ 1205380800000 , 32.942210625387] , [ 1205467200000 , 32.439117893938] , [ 1205726400000 , 32.02628003709] , [ 1205812800000 , 33.260143761914] , [ 1205899200000 , 35.300786089085] , [ 1205985600000 , 35.670818768413] , [ 1206331200000 , 34.77147703954] , [ 1206417600000 , 33.471427674497] , [ 1206504000000 , 33.485837485181] , [ 1206590400000 , 33.348124961012] , [ 1206676800000 , 32.070210983497] , [ 1206936000000 , 39.197005614678] , [ 1207022400000 , 32.875938058923] , [ 1207108800000 , 35.972483201689] , [ 1207195200000 , 37.822999108873] , [ 1207281600000 , 34.558692301518] , [ 1207540800000 , 35.663359305262] , [ 1207627200000 , 35.593770054148] , [ 1207713600000 , 37.504651476483] , [ 1207800000000 , 35.07776246529] , [ 1207886400000 , 37.200906256181] , [ 1208145600000 , 37.199331996473] , [ 1208232000000 , 37.024155456066] , [ 1208318400000 , 33.082697917005] , [ 1208404800000 , 37.498634214621] , [ 1208491200000 , 34.734977015412] , [ 1208750400000 , 34.973859459185] , [ 1208836800000 , 36.406870312099] , [ 1208923200000 , 36.819230799301] , [ 1209009600000 , 36.612076784378] , [ 1209096000000 , 34.622810267797] , [ 1209355200000 , 32.461347638351] , [ 1209441600000 , 34.125045067366] , [ 1209528000000 , 34.425567518522] , [ 1209614400000 , 31.328533980854] , [ 1209700800000 , 31.390511559334] , [ 1209960000000 , 30.93291579694] , [ 1210046400000 , 32.736477783621] , [ 1210132800000 , 31.082287302438] , [ 1210219200000 , 31.332602001184] , [ 1210305600000 , 33.038838836022] , [ 1210564800000 , 30.913599008659] , [ 1210651200000 , 30.870227455724] , [ 1210737600000 , 31.031635816925] , [ 1210824000000 , 30.568308358227] , [ 1210910400000 , 31.40338252109] , [ 1211169600000 , 31.025819584984] , [ 1211256000000 , 31.291018686243] , [ 1211342400000 , 33.089494963542] , [ 1211428800000 , 30.8501775222] , [ 1211515200000 , 31.024905920823] , [ 1211860800000 , 30.702659361613] , [ 1211947200000 , 30.370309143047] , [ 1212033600000 , 31.835536752185] , [ 1212120000000 , 34.224295895796] , [ 1212379200000 , 33.82551690261] , [ 1212465600000 , 33.448117799035] , [ 1212552000000 , 33.731957555327] , [ 1212638400000 , 33.419056433778] , [ 1212724800000 , 33.652076676877] , [ 1212984000000 , 34.75833390842] , [ 1213070400000 , 33.966852974712] , [ 1213156800000 , 31.962763579633] , [ 1213243200000 , 32.208757342848] , [ 1213329600000 , 34.378374528998] , [ 1213588800000 , 33.951741881089] , [ 1213675200000 , 34.007606108374] , [ 1213761600000 , 33.867845903539] , [ 1213848000000 , 33.616751259121] , [ 1213934400000 , 33.019184619914] , [ 1214193600000 , 33.285147543414] , [ 1214280000000 , 33.08342304721] , [ 1214366400000 , 33.714107912463] , [ 1214452800000 , 32.154610339661] , [ 1214539200000 , 32.600039373083] , [ 1214798400000 , 34.649653437429] , [ 1214884800000 , 34.390173491777] , [ 1214971200000 , 35.23482859762] , [ 1215057600000 , 35.420659797581] , [ 1215403200000 , 35.570715325359] , [ 1215489600000 , 33.990330369821] , [ 1215576000000 , 31.16151397514] , [ 1215662400000 , 31.474278442991] , [ 1215748800000 , 31.504568467653] , [ 1216008000000 , 31.638407811974] , [ 1216094400000 , 32.039690527103] , [ 1216180800000 , 32.158187913673] , [ 1216267200000 , 31.319105002908] , [ 1216353600000 , 33.857835760582] , [ 1216612800000 , 33.495854613048] , [ 1216699200000 , 34.641115439895] , [ 1216785600000 , 32.236073288275] , [ 1216872000000 , 32.869189753549] , [ 1216958400000 , 32.343041827239] , [ 1217217600000 , 33.173104251573] , [ 1217304000000 , 33.287531889745] , [ 1217390400000 , 33.07280240245] , [ 1217476800000 , 33.426480222396] , [ 1217563200000 , 30.844548573866] , [ 1217822400000 , 32.28517554945] , [ 1217908800000 , 32.556948418259] , [ 1217995200000 , 32.432127438834] , [ 1218081600000 , 30.976399153564] , [ 1218168000000 , 31.377955916811] , [ 1218427200000 , 33.871175546353] , [ 1218513600000 , 33.33184275627] , [ 1218600000000 , 34.131115594087] , [ 1218686400000 , 33.317052289572] , [ 1218772800000 , 33.799231225749] , [ 1219032000000 , 33.972974049901] , [ 1219118400000 , 34.021095752275] , [ 1219204800000 , 32.70456236339] , [ 1219291200000 , 33.030834770455] , [ 1219377600000 , 33.070958393187] , [ 1219636800000 , 30.144131693869] , [ 1219723200000 , 30.78660466756] , [ 1219809600000 , 30.626977812395] , [ 1219896000000 , 31.52675612422] , [ 1219982400000 , 30.729114716114] , [ 1220328000000 , 38.47221528415] , [ 1220414400000 , 38.863261471035] , [ 1220500800000 , 37.796975285052] , [ 1220587200000 , 37.463504689182] , [ 1220846400000 , 38.309577989911] , [ 1220932800000 , 38.025058836407] , [ 1221019200000 , 38.439129554542] , [ 1221105600000 , 39.036709791057] , [ 1221192000000 , 37.072770822385] , [ 1221451200000 , 39.673848596407] , [ 1221537600000 , 37.393032387866] , [ 1221624000000 , 36.35594364229] , [ 1221710400000 , 37.622993399094] , [ 1221796800000 , 36.649795639694] , [ 1222056000000 , 36.039113983115] , [ 1222142400000 , 37.085628887268] , [ 1222228800000 , 38.279678406166] , [ 1222315200000 , 36.846136815299] , [ 1222401600000 , 41.761604845869] , [ 1222660800000 , 42.996960939161] , [ 1222747200000 , 33.707564403266] , [ 1222833600000 , 32.779504578017] , [ 1222920000000 , 32.112840357214] , [ 1223006400000 , 32.42422434075] , [ 1223265600000 , 31.599745522692] , [ 1223352000000 , 31.394080666881] , [ 1223438400000 , 29.721685327049] , [ 1223524800000 , 27.656707679591] , [ 1223611200000 , 26.387053183114] , [ 1223870400000 , 28.427127462265] , [ 1223956800000 , 29.767151228933] , [ 1224043200000 , 24.885042683004] , [ 1224129600000 , 25.610585646098] , [ 1224216000000 , 25.89660408197] , [ 1224475200000 , 30.367206353123] , [ 1224561600000 , 28.68964289268] , [ 1224648000000 , 29.190070102203] , [ 1224734400000 , 30.01512936251] , [ 1224820800000 , 27.051664168982] , [ 1225080000000 , 26.468243159649] , [ 1225166400000 , 27.674346811166] , [ 1225252800000 , 31.060537460226] , [ 1225339200000 , 31.967700145343] , [ 1225425600000 , 31.76727442402] , [ 1225688400000 , 35.570908267855] , [ 1225774800000 , 35.087758911288] , [ 1225861200000 , 35.766405090511] , [ 1225947600000 , 34.77773045396] , [ 1226034000000 , 34.845497191942] , [ 1226293200000 , 35.277699974382] , [ 1226379600000 , 34.718926452526] , [ 1226466000000 , 31.031349237292] , [ 1226552400000 , 35.399989845419] , [ 1226638800000 , 32.11552775258] , [ 1226898000000 , 31.525057902617] , [ 1226984400000 , 31.849977729409] , [ 1227070800000 , 32.942855581261] , [ 1227157200000 , 30.034016952172] , [ 1227243600000 , 33.501536066258] , [ 1227502800000 , 31.6050659041] , [ 1227589200000 , 31.999708123932] , [ 1227675600000 , 34.317936159881] , [ 1227848400000 , 33.960673832941] , [ 1228107600000 , 41.356804380912] , [ 1228194000000 , 40.129327818544] , [ 1228280400000 , 43.113526837888] , [ 1228366800000 , 42.607006676072] , [ 1228453200000 , 43.406461937838] , [ 1228712400000 , 40.8109747939] , [ 1228798800000 , 38.042813404614] , [ 1228885200000 , 38.490896527889] , [ 1228971600000 , 38.361494759777] , [ 1229058000000 , 38.595507797191] , [ 1229317200000 , 35.42595407476] , [ 1229403600000 , 37.775749413766] , [ 1229490000000 , 37.165777579711] , [ 1229576400000 , 37.176995489902] , [ 1229662800000 , 36.507937046549] , [ 1229922000000 , 38.177645291644] , [ 1230008400000 , 37.649679034135] , [ 1230094800000 , 38.068189110701] , [ 1230267600000 , 38.38426027261] , [ 1230526800000 , 38.765332768625] , [ 1230613200000 , 37.032713183818] , [ 1230699600000 , 23.829064190627] , [ 1230872400000 , 22.323728883138] , [ 1231131600000 , 24.797109928227] , [ 1231218000000 , 24.977344869187] , [ 1231304400000 , 24.93584365895] , [ 1231390800000 , 24.86436284949] , [ 1231477200000 , 24.443104865996] , [ 1231736400000 , 24.362937970688] , [ 1231822800000 , 25.342113747091] , [ 1231909200000 , 25.783881702714] , [ 1231995600000 , 27.792844806944] , [ 1232082000000 , 28.466705182171] , [ 1232427600000 , 27.369176753396] , [ 1232514000000 , 28.269278787546] , [ 1232600400000 , 27.537922432643] , [ 1232686800000 , 27.003816799455] , [ 1232946000000 , 27.675275368673] , [ 1233032400000 , 27.8817155491] , [ 1233118800000 , 26.456390928983] , [ 1233205200000 , 28.240227295843] , [ 1233291600000 , 27.905504232911] , [ 1233550800000 , 26.999949466703] , [ 1233637200000 , 25.470908064245] , [ 1233723600000 , 28.989051436527] , [ 1233810000000 , 28.080202997704] , [ 1233896400000 , 26.903951189081] , [ 1234155600000 , 26.804750308913] , [ 1234242000000 , 26.373036159637] , [ 1234328400000 , 26.22710293064] , [ 1234414800000 , 25.976932262381] , [ 1234501200000 , 26.595980451527] , [ 1234846800000 , 26.997996030368] , [ 1234933200000 , 26.001787664701] , [ 1235019600000 , 26.823501051723] , [ 1235106000000 , 26.267779023414] , [ 1235365200000 , 25.668870153301] , [ 1235451600000 , 26.775597084663] , [ 1235538000000 , 25.275682373883] , [ 1235624400000 , 24.818032360792] , [ 1235710800000 , 24.645579842038] , [ 1235970000000 , 19.620474811209] , [ 1236056400000 , 19.33780594747] , [ 1236142800000 , 20.440066303085] , [ 1236229200000 , 19.829317263913] , [ 1236315600000 , 21.415210658775] , [ 1236571200000 , 21.303851376023] , [ 1236657600000 , 19.864297629264] , [ 1236744000000 , 19.742427275066] , [ 1236830400000 , 21.828028325853] , [ 1236916800000 , 22.500437749723] , [ 1237176000000 , 22.302540792889] , [ 1237262400000 , 21.578233125833] , [ 1237348800000 , 20.314706697852] , [ 1237435200000 , 23.099506359262] , [ 1237521600000 , 21.604664867372] , [ 1237780800000 , 23.475786966577] , [ 1237867200000 , 24.193821943723] , [ 1237953600000 , 24.621593410665] , [ 1238040000000 , 26.260389324484] , [ 1238126400000 , 25.671214412778] , [ 1238385600000 , 25.619911577679] , [ 1238472000000 , 26.624467688263] , [ 1238558400000 , 25.913842497553] , [ 1238644800000 , 28.093070112629] , [ 1238731200000 , 27.994692201554] , [ 1238990400000 , 28.950646665392] , [ 1239076800000 , 28.086407604621] , [ 1239163200000 , 28.202869326475] , [ 1239249600000 , 28.432365962191] , [ 1239595200000 , 28.685344294338] , [ 1239681600000 , 28.410679589095] , [ 1239768000000 , 30.039209606373] , [ 1239854400000 , 29.688706833586] , [ 1239940800000 , 29.706077416411] , [ 1240200000000 , 30.240307995292] , [ 1240286400000 , 28.578706705541] , [ 1240372800000 , 29.096068525004] , [ 1240459200000 , 28.327577765114] , [ 1240545600000 , 26.466292647955] , [ 1240804800000 , 27.945309878163] , [ 1240891200000 , 28.251203544513] , [ 1240977600000 , 28.537588121271] , [ 1241064000000 , 28.656205597444] , [ 1241150400000 , 27.628665994293] , [ 1241409600000 , 26.623800410378] , [ 1241496000000 , 28.016342607653] , [ 1241582400000 , 28.988641572085] , [ 1241668800000 , 30.039982046018] , [ 1241755200000 , 28.434028256357] , [ 1242014400000 , 29.59225552833] , [ 1242100800000 , 27.785411138546] , [ 1242187200000 , 29.418424521603] , [ 1242273600000 , 30.636173934021] , [ 1242360000000 , 30.795827580262] , [ 1242619200000 , 28.177711133148] , [ 1242705600000 , 28.793529692606] , [ 1242792000000 , 27.376818367252] , [ 1242878400000 , 28.398443513777] , [ 1242964800000 , 27.845729112892] , [ 1243310400000 , 26.460688515913] , [ 1243396800000 , 26.854143707776] , [ 1243483200000 , 26.557808273823] , [ 1243569600000 , 26.684434779597] , [ 1243828800000 , 27.100068229825] , [ 1243915200000 , 28.226521744201] , [ 1244001600000 , 28.262916900497] , [ 1244088000000 , 27.664168471968] , [ 1244174400000 , 28.231769628935] , [ 1244433600000 , 28.238963490918] , [ 1244520000000 , 28.004078808844] , [ 1244606400000 , 28.071903331404] , [ 1244692800000 , 27.813249689294] , [ 1244779200000 , 28.492472877507] , [ 1245038400000 , 28.464916428286] , [ 1245124800000 , 28.614368981678] , [ 1245211200000 , 28.751436856064] , [ 1245297600000 , 28.839287109765] , [ 1245384000000 , 28.094781061945] , [ 1245643200000 , 26.991399319554] , [ 1245729600000 , 27.017618743579] , [ 1245816000000 , 27.611586538852] , [ 1245902400000 , 28.531369218994] , [ 1245988800000 , 28.174659628256] , [ 1246248000000 , 28.261484117477] , [ 1246334400000 , 29.378488292711] , [ 1246420800000 , 28.491081890381] , [ 1246507200000 , 26.635091892613] , [ 1246852800000 , 27.575195657508] , [ 1246939200000 , 25.903518055184] , [ 1247025600000 , 26.201180132958] , [ 1247112000000 , 25.99200938652] , [ 1247198400000 , 26.574062926405] , [ 1247457600000 , 27.923560133383] , [ 1247544000000 , 26.256367387531] , [ 1247630400000 , 29.160278680176] , [ 1247716800000 , 29.541387493221] , [ 1247803200000 , 28.244742675086] , [ 1248062400000 , 28.85146071325] , [ 1248148800000 , 29.098461226849] , [ 1248235200000 , 28.6595764147] , [ 1248321600000 , 28.822453436923] , [ 1248408000000 , 29.421334698504] , [ 1248667200000 , 29.584631868865] , [ 1248753600000 , 29.188658115312] , [ 1248840000000 , 29.104979516564] , [ 1248926400000 , 29.302745916854] , [ 1249012800000 , 30.019885466665] , [ 1249272000000 , 28.633967945525] , [ 1249358400000 , 31.637773688305] , [ 1249444800000 , 31.459872617638] , [ 1249531200000 , 31.29180205981] , [ 1249617600000 , 31.264415381862] , [ 1249876800000 , 31.001209816008] , [ 1249963200000 , 31.353357089508] , [ 1250049600000 , 31.513079769152] , [ 1250136000000 , 31.118737391028] , [ 1250222400000 , 31.163740753117] , [ 1250481600000 , 30.857579123642] , [ 1250568000000 , 30.660715942171] , [ 1250654400000 , 31.484636006781] , [ 1250740800000 , 31.576129669043] , [ 1250827200000 , 31.706973036288] , [ 1251086400000 , 31.690668563346] , [ 1251172800000 , 32.131611613695] , [ 1251259200000 , 31.524750801396] , [ 1251345600000 , 31.698631894692] , [ 1251432000000 , 31.475475399814] , [ 1251691200000 , 31.483997840346] , [ 1251777600000 , 30.858988668614] , [ 1251864000000 , 31.895989345579] , [ 1251950400000 , 31.776773377473] , [ 1252036800000 , 33.210317711836] , [ 1252382400000 , 33.066184557937] , [ 1252468800000 , 33.381672419564] , [ 1252555200000 , 33.84959123019] , [ 1252641600000 , 33.201501859076] , [ 1252900800000 , 33.438071806197] , [ 1252987200000 , 34.357609729756] , [ 1253073600000 , 35.004175998601] , [ 1253160000000 , 35.498577686823] , [ 1253246400000 , 35.11971724555] , [ 1253505600000 , 33.679035707771] , [ 1253592000000 , 33.962755107976] , [ 1253678400000 , 33.593891726317] , [ 1253764800000 , 33.73678055515] , [ 1253851200000 , 33.37567212126] , [ 1254110400000 , 33.554009104935] , [ 1254196800000 , 33.649684871815] , [ 1254283200000 , 30.147301414053] , [ 1254369600000 , 25.934243058138] , [ 1254456000000 , 26.209047889237] , [ 1254715200000 , 25.706355954648] , [ 1254801600000 , 27.563062457787] , [ 1254888000000 , 26.063430782934] , [ 1254974400000 , 26.39388289134] , [ 1255060800000 , 28.152935395273] , [ 1255320000000 , 28.282765303329] , [ 1255406400000 , 27.778999654842] , [ 1255492800000 , 28.144025202672] , [ 1255579200000 , 27.95103244924] , [ 1255665600000 , 28.798290929345] , [ 1255924800000 , 28.469183101046] , [ 1256011200000 , 26.42118964483] , [ 1256097600000 , 26.97121730656] , [ 1256184000000 , 26.834603326648] , [ 1256270400000 , 26.575321586635] , [ 1256529600000 , 25.840551079218] , [ 1256616000000 , 26.100881876267] , [ 1256702400000 , 25.707809071169] , [ 1256788800000 , 23.811145576094] , [ 1256875200000 , 25.697068771961] , [ 1257138000000 , 27.701413605445] , [ 1257224400000 , 27.662842444162] , [ 1257310800000 , 27.615553967098] , [ 1257397200000 , 29.311367772105] , [ 1257483600000 , 29.332672522399] , [ 1257742800000 , 29.834663545089] , [ 1257829200000 , 32.427305926641] , [ 1257915600000 , 29.983956251278] , [ 1258002000000 , 30.237206739217] , [ 1258088400000 , 34.436470446052] , [ 1258347600000 , 32.718941607834] , [ 1258434000000 , 32.835738339453] , [ 1258520400000 , 32.539205854498] , [ 1258606800000 , 33.050356677292] , [ 1258693200000 , 30.922974198726] , [ 1258952400000 , 30.993085634217] , [ 1259038800000 , 31.412334018492] , [ 1259125200000 , 31.537487526328] , [ 1259298000000 , 33.111900337051] , [ 1259557200000 , 33.13436824218] , [ 1259643600000 , 34.901027027741] , [ 1259730000000 , 34.865224206832] , [ 1259816400000 , 35.991408938557] , [ 1259902800000 , 35.631850898439] , [ 1260162000000 , 35.564889085754] , [ 1260248400000 , 35.495794223539] , [ 1260334800000 , 35.762274293506] , [ 1260421200000 , 35.390730795658] , [ 1260507600000 , 36.582357390584] , [ 1260766800000 , 36.013060621389] , [ 1260853200000 , 35.969740142244] , [ 1260939600000 , 36.307505038637] , [ 1261026000000 , 36.02536358376] , [ 1261112400000 , 36.466656441152] , [ 1261371600000 , 36.35420113605] , [ 1261458000000 , 35.827401428777] , [ 1261544400000 , 36.524433432014] , [ 1261630800000 , 36.206144531425] , [ 1261976400000 , 35.683275902136] , [ 1262062800000 , 36.072852867663] , [ 1262149200000 , 36.320255948353] , [ 1262235600000 , 33.435457056377] , [ 1262581200000 , 34.907530028007] , [ 1262667600000 , 35.365138953809] , [ 1262754000000 , 35.214913077417] , [ 1262840400000 , 36.013297405915] , [ 1262926800000 , 35.698281983951] , [ 1263186000000 , 36.351044274157] , [ 1263272400000 , 36.279449872408] , [ 1263358800000 , 36.470377514925] , [ 1263445200000 , 36.403986859445] , [ 1263531600000 , 36.712083494082] , [ 1263877200000 , 37.105685062809] , [ 1263963600000 , 37.571421578996] , [ 1264050000000 , 36.800346856747] , [ 1264136400000 , 36.600162906088] , [ 1264395600000 , 37.1176213738] , [ 1264482000000 , 36.714928550894] , [ 1264568400000 , 40.096454568442] , [ 1264654800000 , 36.160579119041] , [ 1264741200000 , 36.378595261955] , [ 1265000400000 , 38.30830922407] , [ 1265086800000 , 38.410788338653] , [ 1265173200000 , 38.114154823839] , [ 1265259600000 , 36.29629119399] , [ 1265346000000 , 36.972461459393] , [ 1265605200000 , 36.916176968829] , [ 1265691600000 , 37.859226521851] , [ 1265778000000 , 37.823180258657] , [ 1265864400000 , 38.370318510334] , [ 1265950800000 , 37.824219551091] , [ 1266296400000 , 37.908446034763] , [ 1266382800000 , 38.080488086584] , [ 1266469200000 , 38.22377537947] , [ 1266555600000 , 38.585808959558] , [ 1266814800000 , 38.4005951816] , [ 1266901200000 , 38.285575644728] , [ 1266987600000 , 35.790348744646] , [ 1267074000000 , 37.96859053117] , [ 1267160400000 , 37.740082932519] , [ 1267419600000 , 40.173788871749] , [ 1267506000000 , 38.013781049181] , [ 1267592400000 , 37.831792492987] , [ 1267678800000 , 38.624445440848] , [ 1267765200000 , 40.164448205377] , [ 1268024400000 , 39.993699476922] , [ 1268110800000 , 39.798437401604] , [ 1268197200000 , 40.097755586565] , [ 1268283600000 , 40.103417469112] , [ 1268370000000 , 39.863177414001] , [ 1268625600000 , 40.470443774091] , [ 1268712000000 , 43.79568503296] , [ 1268798400000 , 39.927130819992] , [ 1268884800000 , 43.907732146241] , [ 1268971200000 , 40.360534264835] , [ 1269230400000 , 43.693623379079] , [ 1269316800000 , 40.779403599522] , [ 1269403200000 , 40.945366282494] , [ 1269489600000 , 40.185643296942] , [ 1269576000000 , 40.790799253411] , [ 1269835200000 , 40.056421642469] , [ 1269921600000 , 40.231594390602] , [ 1270008000000 , 33.277843543055] , [ 1270094400000 , 31.095349397634] , [ 1270440000000 , 31.342909730238] , [ 1270526400000 , 31.448320158913] , [ 1270612800000 , 37.24566959702] , [ 1270699200000 , 30.952736606136] , [ 1270785600000 , 30.682580856701] , [ 1271044800000 , 30.923522289166] , [ 1271131200000 , 33.505663921683] , [ 1271217600000 , 34.270252302119] , [ 1271304000000 , 33.253887020523] , [ 1271390400000 , 34.341869018662] , [ 1271649600000 , 35.775793893406] , [ 1271736000000 , 34.511332548409] , [ 1271822400000 , 34.893409815552] , [ 1271908800000 , 37.514835192186] , [ 1271995200000 , 35.083876851145] , [ 1272254400000 , 35.380783302863] , [ 1272340800000 , 33.849259337893] , [ 1272427200000 , 33.865823717848] , [ 1272513600000 , 34.108342663063] , [ 1272600000000 , 31.000657427436] , [ 1272859200000 , 33.780954947041] , [ 1272945600000 , 28.968203310591] , [ 1273032000000 , 28.394287159406] , [ 1273118400000 , 29.807537899614] , [ 1273204800000 , 29.869231562726] , [ 1273464000000 , 31.378659542766] , [ 1273550400000 , 35.073190943946] , [ 1273636800000 , 33.761652254879] , [ 1273723200000 , 32.437230823903] , [ 1273809600000 , 34.293122964253] , [ 1274068800000 , 30.763269709765] , [ 1274155200000 , 34.507129451768] , [ 1274241600000 , 33.022172171191] , [ 1274328000000 , 30.201207614191] , [ 1274414400000 , 32.768071346365] , [ 1274673600000 , 30.694306725899] , [ 1274760000000 , 30.990054628062] , [ 1274846400000 , 30.369352971151] , [ 1274932800000 , 33.029423543515] , [ 1275019200000 , 31.661989239004] , [ 1275364800000 , 33.837400306477] , [ 1275451200000 , 34.057766642032] , [ 1275537600000 , 34.57383222484] , [ 1275624000000 , 34.188542244708] , [ 1275883200000 , 31.583078557024] , [ 1275969600000 , 30.955930714953] , [ 1276056000000 , 33.997163861054] , [ 1276142400000 , 33.587415751608] , [ 1276228800000 , 33.973725461298] , [ 1276488000000 , 33.662449513853] , [ 1276574400000 , 33.838575602223] , [ 1276660800000 , 34.108867579774] , [ 1276747200000 , 34.745503549485] , [ 1276833600000 , 35.08410642738] , [ 1277092800000 , 35.739596051654] , [ 1277179200000 , 34.949766813922] , [ 1277265600000 , 34.859655921177] , [ 1277352000000 , 34.363800898487] , [ 1277438400000 , 35.301331761941] , [ 1277697600000 , 34.026104763241] , [ 1277784000000 , 33.277683497305] , [ 1277870400000 , 31.750654488375] , [ 1277956800000 , 33.078878869453] , [ 1278043200000 , 36.304276877891] , [ 1278388800000 , 33.082680853865] , [ 1278475200000 , 33.223925715191] , [ 1278561600000 , 34.185935793846] , [ 1278648000000 , 34.148348905182] , [ 1278907200000 , 34.806569050501] , [ 1278993600000 , 33.12730640127] , [ 1279080000000 , 33.706174986492] , [ 1279166400000 , 34.928784921873] , [ 1279252800000 , 34.458765569389] , [ 1279512000000 , 34.059144916891] , [ 1279598400000 , 35.388592631488] , [ 1279684800000 , 33.253858431042] , [ 1279771200000 , 33.342174218917] , [ 1279857600000 , 34.993939726378] , [ 1280116800000 , 34.589106013143] , [ 1280203200000 , 35.165670564159] , [ 1280289600000 , 34.083051499201] , [ 1280376000000 , 36.259991728726] , [ 1280462400000 , 36.929407640376] , [ 1280721600000 , 36.138441527405] , [ 1280808000000 , 36.622046879936] , [ 1280894400000 , 36.531607452018] , [ 1280980800000 , 37.352734763354] , [ 1281067200000 , 36.561407857321] , [ 1281326400000 , 36.624433716888] , [ 1281412800000 , 36.879867076158] , [ 1281499200000 , 32.02015553142] , [ 1281585600000 , 31.992719243324] , [ 1281672000000 , 32.148641606816] , [ 1281931200000 , 33.003367519772] , [ 1282017600000 , 32.308588294911] , [ 1282104000000 , 36.52740247878] , [ 1282190400000 , 34.823914224432] , [ 1282276800000 , 35.284179669701] , [ 1282536000000 , 37.33386457907] , [ 1282622400000 , 37.011312920765] , [ 1282708800000 , 37.482519292702] , [ 1282795200000 , 37.21793966309] , [ 1282881600000 , 36.996733849199] , [ 1283140800000 , 36.479471629722] , [ 1283227200000 , 37.118646226498] , [ 1283313600000 , 34.141100541676] , [ 1283400000000 , 35.329393069044] , [ 1283486400000 , 35.174347212961] , [ 1283832000000 , 35.350859256073] , [ 1283918400000 , 34.889954470079] , [ 1284004800000 , 35.310559501858] , [ 1284091200000 , 35.016168537587] , [ 1284350400000 , 37.800281522275] , [ 1284436800000 , 38.084919146086] , [ 1284523200000 , 38.706035656266] , [ 1284609600000 , 37.410176834377] , [ 1284696000000 , 38.30940484949] , [ 1284955200000 , 38.006662172848] , [ 1285041600000 , 37.842503468038] , [ 1285128000000 , 35.016729658458] , [ 1285214400000 , 34.30026068685] , [ 1285300800000 , 39.128036349933] , [ 1285560000000 , 36.624248018346] , [ 1285646400000 , 39.526177860501] , [ 1285732800000 , 39.274607385689] , [ 1285819200000 , 35.64860868532] , [ 1285905600000 , 35.502171984277] , [ 1286164800000 , 35.507462432145] , [ 1286251200000 , 36.333250983552] , [ 1286337600000 , 39.375460507552] , [ 1286424000000 , 36.791682694467] , [ 1286510400000 , 36.436939194919] , [ 1286769600000 , 33.168861405363] , [ 1286856000000 , 35.126106671538] , [ 1286942400000 , 35.769492391214] , [ 1287028800000 , 34.781032342599] , [ 1287115200000 , 33.595984328638] , [ 1287374400000 , 36.620757294971] , [ 1287460800000 , 32.045463803646] , [ 1287547200000 , 33.352440318755] , [ 1287633600000 , 35.646957750992] , [ 1287720000000 , 36.188989253892] , [ 1287979200000 , 35.095040865863] , [ 1288065600000 , 35.29764383392] , [ 1288152000000 , 35.513587107451] , [ 1288238400000 , 35.166588228279] , [ 1288324800000 , 37.468941664393] , [ 1288584000000 , 37.018195313607] , [ 1288670400000 , 36.769837157924] , [ 1288756800000 , 36.621205716934] , [ 1288843200000 , 37.159399861398] , [ 1288929600000 , 36.868316796882] , [ 1289192400000 , 36.480989334529] , [ 1289278800000 , 36.326900851898] , [ 1289365200000 , 37.932312881325] , [ 1289451600000 , 34.96894496169] , [ 1289538000000 , 38.699835492325] , [ 1289797200000 , 37.029744279617] , [ 1289883600000 , 38.820204421394] , [ 1289970000000 , 38.298942228742] , [ 1290056400000 , 38.262425983355] , [ 1290142800000 , 38.386528810994] , [ 1290402000000 , 38.55883906089] , [ 1290488400000 , 36.540082307385] , [ 1290574800000 , 38.362048307576] , [ 1290747600000 , 38.350927160223] , [ 1291006800000 , 38.527978962647] , [ 1291093200000 , 37.651949459423] , [ 1291179600000 , 38.420457698632] , [ 1291266000000 , 38.646645266104] , [ 1291352400000 , 39.94133910387] , [ 1291611600000 , 39.774321274737] , [ 1291698000000 , 39.568429683539] , [ 1291784400000 , 37.962799739182] , [ 1291870800000 , 37.453389895533] , [ 1291957200000 , 39.20013427121] , [ 1292216400000 , 38.89687408421] , [ 1292302800000 , 39.027177838899] , [ 1292389200000 , 39.235547628996] , [ 1292475600000 , 38.697717239141] , [ 1292562000000 , 38.373248689446] , [ 1292821200000 , 38.428124471379] , [ 1292907600000 , 39.47894657379] , [ 1292994000000 , 39.949932386039] , [ 1293080400000 , 39.505445939108] , [ 1293426000000 , 39.347797168533] , [ 1293512400000 , 39.263075541409] , [ 1293598800000 , 38.898452232755] , [ 1293685200000 , 39.794265989297] , [ 1293771600000 , 36.459297978129] , [ 1294030800000 , 39.340954709459] , [ 1294117200000 , 39.842950846606] , [ 1294203600000 , 39.613143726892] , [ 1294290000000 , 37.45457593678] , [ 1294376400000 , 36.002625602579] , [ 1294635600000 , 37.769790889898] , [ 1294722000000 , 37.743948482854] , [ 1294808400000 , 37.373124527893] , [ 1294894800000 , 35.780001006905] , [ 1294981200000 , 38.593826569236] , [ 1295326800000 , 39.294319653796] , [ 1295413200000 , 35.749095334815] , [ 1295499600000 , 37.413295015199] , [ 1295586000000 , 32.274464409447] , [ 1295845200000 , 32.042931696741] , [ 1295931600000 , 30.136207894781] , [ 1296018000000 , 34.02849822859] , [ 1296104400000 , 35.200263238653] , [ 1296190800000 , 33.75017712943] , [ 1296450000000 , 33.680917154403] , [ 1296536400000 , 33.427662754804] , [ 1296622800000 , 33.898639304486] , [ 1296709200000 , 34.728626887791] , [ 1296795600000 , 35.476700429613] , [ 1297054800000 , 34.262398163765] , [ 1297141200000 , 36.895887296995] , [ 1297227600000 , 35.952386843097] , [ 1297314000000 , 36.291522875947] , [ 1297400400000 , 36.270637938443] , [ 1297659600000 , 36.983900637887] , [ 1297746000000 , 35.942649318742] , [ 1297832400000 , 36.979167437989] , [ 1297918800000 , 38.236849314059] , [ 1298005200000 , 38.767362822905] , [ 1298350800000 , 36.605615067091] , [ 1298437200000 , 35.392619732159] , [ 1298523600000 , 34.233297505701] , [ 1298610000000 , 37.328984263384] , [ 1298869200000 , 37.621664854417] , [ 1298955600000 , 34.671221034312] , [ 1299042000000 , 37.552906425447] , [ 1299128400000 , 34.92286739263] , [ 1299214800000 , 32.56669276663] , [ 1299474000000 , 35.582638804059] , [ 1299560400000 , 35.791012858369] , [ 1299646800000 , 34.548408656259] , [ 1299733200000 , 36.478929399863] , [ 1299819600000 , 36.05214073414] , [ 1300075200000 , 35.980489427851] , [ 1300161600000 , 34.436650239585] , [ 1300248000000 , 36.226495431029] , [ 1300334400000 , 36.997592388008] , [ 1300420800000 , 36.321917153819] , [ 1300680000000 , 38.675907276758] , [ 1300766400000 , 36.219542098038] , [ 1300852800000 , 36.107176745201] , [ 1300939200000 , 36.27800421437] , [ 1301025600000 , 38.445191941016] , [ 1301284800000 , 36.058904142005] , [ 1301371200000 , 36.219633719465] , [ 1301457600000 , 35.870886870251] , [ 1301544000000 , 38.768139162577] , [ 1301630400000 , 34.867996693624] , [ 1301889600000 , 34.963111948772] , [ 1301976000000 , 38.686748378841] , [ 1302062400000 , 37.157436301834] , [ 1302148800000 , 37.90750019482] , [ 1302235200000 , 37.750413181325] , [ 1302494400000 , 37.23279151134] , [ 1302580800000 , 37.600564524123] , [ 1302667200000 , 36.992749572144] , [ 1302753600000 , 36.958951280939] , [ 1302840000000 , 37.479040274722] , [ 1303099200000 , 37.227690423178] , [ 1303185600000 , 37.220808638183] , [ 1303272000000 , 37.764234413811] , [ 1303358400000 , 34.902790681371] , [ 1303704000000 , 34.442429723825] , [ 1303790400000 , 36.664125835231] , [ 1303876800000 , 36.843903427316] , [ 1303963200000 , 36.89956245277] , [ 1304049600000 , 36.653639634918] , [ 1304308800000 , 37.281585907609] , [ 1304395200000 , 34.636725000415] , [ 1304481600000 , 35.111898291533] , [ 1304568000000 , 34.781156562687] , [ 1304654400000 , 34.648338331251] , [ 1304913600000 , 35.739673412394] , [ 1305000000000 , 34.968753860628] , [ 1305086400000 , 35.103101819269] , [ 1305172800000 , 35.388825138354] , [ 1305259200000 , 35.924838674317] , [ 1305518400000 , 34.960820477813] , [ 1305604800000 , 35.973630460062] , [ 1305691200000 , 35.605308175872] , [ 1305777600000 , 37.326832495088] , [ 1305864000000 , 35.889418924143] , [ 1306123200000 , 33.772409521422] , [ 1306209600000 , 34.034402179435] , [ 1306296000000 , 34.200842801862] , [ 1306382400000 , 33.517540222228] , [ 1306468800000 , 36.080834718889] , [ 1306814400000 , 36.465426321256] , [ 1306900800000 , 34.284986433542] , [ 1306987200000 , 34.265134617523] , [ 1307073600000 , 31.028996466799] , [ 1307332800000 , 31.100272438022] , [ 1307419200000 , 30.98271252324] , [ 1307505600000 , 32.957358420477] , [ 1307592000000 , 33.450955741534] , [ 1307678400000 , 34.092762309181] , [ 1307937600000 , 33.081172510602] , [ 1308024000000 , 33.773710576316] , [ 1308110400000 , 33.352918553074] , [ 1308196800000 , 34.015653625477] , [ 1308283200000 , 34.098658792954] , [ 1308542400000 , 33.862591585449] , [ 1308628800000 , 33.97348315542] , [ 1308715200000 , 34.429517374157] , [ 1308801600000 , 34.780309630186] , [ 1308888000000 , 34.231861510064] , [ 1309147200000 , 34.271848439779] , [ 1309233600000 , 34.773956476095] , [ 1309320000000 , 34.821649169869] , [ 1309406400000 , 34.506886225694] , [ 1309492800000 , 33.838287727816] , [ 1309838400000 , 33.058587959516] , [ 1309924800000 , 32.252363370228] , [ 1310011200000 , 34.771520004843] , [ 1310097600000 , 34.905976942129] , [ 1310356800000 , 32.084820014206] , [ 1310443200000 , 31.704912418915] , [ 1310529600000 , 32.448402322535] , [ 1310616000000 , 31.814367556164] , [ 1310702400000 , 31.903271933748] , [ 1310961600000 , 31.835557009452] , [ 1311048000000 , 31.80167207967] , [ 1311134400000 , 32.124432743094] , [ 1311220800000 , 33.38145736179] , [ 1311307200000 , 36.3542103346] , [ 1311566400000 , 36.370937133799] , [ 1311652800000 , 35.40444968471] , [ 1311739200000 , 31.30918374243] , [ 1311825600000 , 31.911828812233] , [ 1311912000000 , 31.933635060916] , [ 1314763200000 , 27.912435953998] , [ 1314849600000 , 27.858955982669] , [ 1314936000000 , 27.590441027541] , [ 1315281600000 , 27.449908969165] , [ 1315368000000 , 28.308087342146] , [ 1315454400000 , 27.864007729814] , [ 1315540800000 , 26.51873970389] , [ 1315800000000 , 25.96088438347] , [ 1315886400000 , 26.445144064307] , [ 1315972800000 , 27.166840190276] , [ 1316059200000 , 27.763808275266] , [ 1316145600000 , 27.868825540656] , [ 1316404800000 , 27.849832930945] , [ 1316491200000 , 27.730622141967] , [ 1316577600000 , 27.021412493534] , [ 1316664000000 , 27.154094213807] , [ 1316750400000 , 27.173678817712] , [ 1317009600000 , 27.25265747808] , [ 1317096000000 , 28.111301933821] , [ 1317182400000 , 27.675088819395] , [ 1317268800000 , 27.397141576077] , [ 1317355200000 , 26.008946860927] , [ 1317614400000 , 22.784250299387] , [ 1317700800000 , 23.258283887907] , [ 1317787200000 , 23.52556109749] , [ 1317873600000 , 24.168011704327] , [ 1317960000000 , 24.189339650432] , [ 1318219200000 , 24.088437144876] , [ 1318305600000 , 25.309729214533] , [ 1318392000000 , 25.621696806823] , [ 1318478400000 , 25.803927533174] , [ 1318564800000 , 25.730135954474] , [ 1318824000000 , 25.232049798745] , [ 1318910400000 , 26.299088396713] , [ 1318996800000 , 26.081177597944] , [ 1319083200000 , 25.744660815696] , [ 1319169600000 , 26.110937113201] , [ 1319428800000 , 26.391894616565] , [ 1319515200000 , 26.163865846148] , [ 1319601600000 , 26.019077042899] , [ 1319688000000 , 25.701251097636] , [ 1319774400000 , 26.033219376512] , [ 1320033600000 , 26.769262371619] , [ 1320120000000 , 28.219781260132] , [ 1320206400000 , 27.875537960411] , [ 1320292800000 , 28.435734918914] , [ 1320379200000 , 28.37695006055] , [ 1320642000000 , 28.386347366617] , [ 1320728400000 , 27.050237610995] , [ 1320814800000 , 28.542924033334] , [ 1320901200000 , 28.707393530494] , [ 1320987600000 , 29.648112657972] , [ 1321246800000 , 29.322949475894] , [ 1321333200000 , 29.377122427588] , [ 1321419600000 , 29.378870071797] , [ 1321506000000 , 28.948532095807] , [ 1321592400000 , 28.595167739804] , [ 1321851600000 , 28.347855177473] , [ 1321938000000 , 28.499102610622] , [ 1322024400000 , 28.422468195549] , [ 1322197200000 , 27.332989897308] , [ 1322456400000 , 28.958514447523] , [ 1322542800000 , 28.890330016953] , [ 1322629200000 , 29.481947822086] , [ 1322715600000 , 27.991357150191] , [ 1322802000000 , 27.941868294165] , [ 1323061200000 , 27.843735865237] , [ 1323147600000 , 26.922176837905] , [ 1323234000000 , 27.015798100333] , [ 1323320400000 , 27.263209224338] , [ 1323406800000 , 26.456838737469] , [ 1323666000000 , 26.401042012447] , [ 1323752400000 , 27.877607635054] , [ 1323838800000 , 27.581039665227] , [ 1323925200000 , 27.2973685004] , [ 1324011600000 , 27.74230960503] , [ 1324270800000 , 27.044483722805] , [ 1324357200000 , 25.93184136956] , [ 1324443600000 , 25.944550738896] , [ 1324530000000 , 26.382111667947] , [ 1324616400000 , 26.049738307156] , [ 1324962000000 , 26.397301203399] , [ 1325048400000 , 26.63948360842] , [ 1325134800000 , 26.503400156535] , [ 1325221200000 , 26.663468520915] , [ 1325566800000 , 20.369010258412] , [ 1325653200000 , 20.535456446317] , [ 1325739600000 , 20.783522487651] , [ 1325826000000 , 20.828880975143] , [ 1326085200000 , 20.743505978852] , [ 1326171600000 , 20.735211928143] , [ 1326258000000 , 20.753245327163] , [ 1326344400000 , 20.467275522023] , [ 1326430800000 , 20.513692945667] , [ 1326776400000 , 20.016627674743] , [ 1326862800000 , 20.311380089956] , [ 1326949200000 , 20.222652145663] , [ 1327035600000 , 18.469927801759] , [ 1327294800000 , 19.107414066951] , [ 1327381200000 , 19.028981070925] , [ 1327467600000 , 18.778563163791] , [ 1327554000000 , 18.843778543884] , [ 1327640400000 , 18.682548355123] , [ 1327899600000 , 18.400166919043] , [ 1327986000000 , 18.846673505431] , [ 1328072400000 , 19.707548431719] , [ 1328158800000 , 22.398912563613] , [ 1328245200000 , 22.563238893325] , [ 1328504400000 , 22.610668580979] , [ 1328590800000 , 22.390423368718] , [ 1328677200000 , 22.235875064032] , [ 1328763600000 , 23.228409867673] , [ 1328850000000 , 23.21464697295] , [ 1329109200000 , 21.256839293262] , [ 1329195600000 , 20.664910881563] , [ 1329282000000 , 23.507289742819] , [ 1329368400000 , 24.54315363805] , [ 1329454800000 , 24.090256296906] , [ 1329800400000 , 21.691318895455] , [ 1329886800000 , 21.300766136539] , [ 1329973200000 , 23.806753141786] , [ 1330059600000 , 22.02174453369] , [ 1330318800000 , 21.488031757223] , [ 1330405200000 , 21.185090645418] , [ 1330491600000 , 21.58010592471] , [ 1330578000000 , 20.258305715091] , [ 1330664400000 , 21.519434160237] , [ 1330923600000 , 21.880533102984] , [ 1331010000000 , 20.969947806067] , [ 1331096400000 , 21.77473350985] , [ 1331182800000 , 21.975645206024] , [ 1331269200000 , 21.659450601544] , [ 1331524800000 , 21.662976187068] , [ 1331611200000 , 20.546200926164] , [ 1331697600000 , 20.61787210687] , [ 1331784000000 , 20.981141819687] , [ 1331870400000 , 20.663082211781] , [ 1332129600000 , 20.915730344473] , [ 1332216000000 , 22.469149441744] , [ 1332302400000 , 20.620749894381] , [ 1332388800000 , 22.60142430917] , [ 1332475200000 , 22.201982491098] , [ 1332734400000 , 21.316314091025] , [ 1332820800000 , 20.496107160055] , [ 1332907200000 , 23.047419596272] , [ 1332993600000 , 22.654311233235] , [ 1333080000000 , 22.337293872246] , [ 1333339200000 , 23.946414462189] , [ 1333425600000 , 24.110745120813] , [ 1333512000000 , 23.590861882963] , [ 1333598400000 , 24.008469053094] , [ 1333944000000 , 23.735343231837] , [ 1334030400000 , 23.619625149045] , [ 1334116800000 , 23.847128526228] , [ 1334203200000 , 23.78838862675] , [ 1334289600000 , 23.900353383736] , [ 1334548800000 , 23.915152008667] , [ 1334635200000 , 23.818198006008] , [ 1334721600000 , 23.526257232307] , [ 1334808000000 , 23.825136627851] , [ 1334894400000 , 23.302821257734] , [ 1335153600000 , 23.783869526542] , [ 1335240000000 , 23.346258102273] , [ 1335326400000 , 23.883709018548] , [ 1335412800000 , 23.912410151809] , [ 1335499200000 , 23.608353554272] , [ 1335758400000 , 24.194447998517]]} , { "key" : "Mid Cap (2B-10B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 26.648084176456] , [ 1028174400000 , 27.116997639189] , [ 1028260800000 , 27.682143241035] , [ 1028520000000 , 26.328585368531] , [ 1028606400000 , 27.451781731008] , [ 1028692800000 , 27.791449536659] , [ 1028779200000 , 27.647810531415] , [ 1028865600000 , 27.293929716927] , [ 1029124800000 , 27.651424385712] , [ 1029211200000 , 27.500758469049] , [ 1029297600000 , 26.466118326218] , [ 1029384000000 , 26.8079657638] , [ 1029470400000 , 26.202008808647] , [ 1029729600000 , 26.713696625561] , [ 1029816000000 , 26.712230989619] , [ 1029902400000 , 26.468795174047] , [ 1029988800000 , 26.516121893956] , [ 1030075200000 , 26.677397544384] , [ 1030334400000 , 26.458336073512] , [ 1030420800000 , 25.977179609203] , [ 1030507200000 , 26.161302670868] , [ 1030593600000 , 26.34263386739] , [ 1030680000000 , 25.718024012525] , [ 1031025600000 , 23.775464963408] , [ 1031112000000 , 23.889025011022] , [ 1031198400000 , 24.244411278271] , [ 1031284800000 , 24.236379597202] , [ 1031544000000 , 24.22588790369] , [ 1031630400000 , 24.515838713928] , [ 1031716800000 , 24.471560922442] , [ 1031803200000 , 24.494192997962] , [ 1031889600000 , 24.80641477221] , [ 1032148800000 , 25.13558242538] , [ 1032235200000 , 24.484572575716] , [ 1032321600000 , 24.787900832005] , [ 1032408000000 , 25.285129032109] , [ 1032494400000 , 24.21347294449] , [ 1032753600000 , 24.865146573119] , [ 1032840000000 , 24.895949167994] , [ 1032926400000 , 24.958209375895] , [ 1033012800000 , 24.40791942302] , [ 1033099200000 , 25.142559133677] , [ 1033358400000 , 31.230536644411] , [ 1033444800000 , 34.819823542889] , [ 1033531200000 , 34.333179574062] , [ 1033617600000 , 34.287178467783] , [ 1033704000000 , 36.873290509507] , [ 1033963200000 , 36.4717458661] , [ 1034049600000 , 36.262591569296] , [ 1034136000000 , 33.596990605426] , [ 1034222400000 , 34.739643527467] , [ 1034308800000 , 32.339596477507] , [ 1034568000000 , 32.185294983191] , [ 1034654400000 , 33.972730532713] , [ 1034740800000 , 32.115162022095] , [ 1034827200000 , 32.400596436107] , [ 1034913600000 , 34.39888255219] , [ 1035172800000 , 33.050930329011] , [ 1035259200000 , 33.243540991604] , [ 1035345600000 , 32.976333744211] , [ 1035432000000 , 33.13705540888] , [ 1035518400000 , 33.066464705336] , [ 1035781200000 , 30.751761237254] , [ 1035867600000 , 31.861227321151] , [ 1035954000000 , 31.644607501683] , [ 1036040400000 , 31.608751708151] , [ 1036126800000 , 33.532061296005] , [ 1036386000000 , 34.313784800218] , [ 1036472400000 , 31.874903442376] , [ 1036558800000 , 31.487953307912] , [ 1036645200000 , 31.549115394091] , [ 1036731600000 , 30.813361822779] , [ 1036990800000 , 29.947268330276] , [ 1037077200000 , 30.15204955382] , [ 1037163600000 , 30.545466512856] , [ 1037250000000 , 31.77327516677] , [ 1037336400000 , 31.752640526411] , [ 1037595600000 , 32.067869084328] , [ 1037682000000 , 31.946289665113] , [ 1037768400000 , 31.961630315859] , [ 1037854800000 , 32.455658255339] , [ 1037941200000 , 31.743054374724] , [ 1038200400000 , 32.327086292595] , [ 1038286800000 , 31.611905457775] , [ 1038373200000 , 32.0401033911] , [ 1038546000000 , 34.312573492749] , [ 1038805200000 , 29.62506145048] , [ 1038891600000 , 30.820114674593] , [ 1038978000000 , 30.699362469023] , [ 1039064400000 , 31.016942747677] , [ 1039150800000 , 29.784105737093] , [ 1039410000000 , 30.519749816455] , [ 1039496400000 , 31.147399473958] , [ 1039582800000 , 30.991754253521] , [ 1039669200000 , 31.274414546895] , [ 1039755600000 , 31.07999080185] , [ 1040014800000 , 31.19747022074] , [ 1040101200000 , 31.285375875836] , [ 1040187600000 , 30.887184314729] , [ 1040274000000 , 31.02572697197] , [ 1040360400000 , 30.389838082036] , [ 1040619600000 , 31.187800382938] , [ 1040706000000 , 31.219064410391] , [ 1040878800000 , 30.660338576839] , [ 1040965200000 , 31.782094394828] , [ 1041224400000 , 30.936971432068] , [ 1041310800000 , 32.150719436859] , [ 1041483600000 , 30.857584476619] , [ 1041570000000 , 31.329013086037] , [ 1041829200000 , 33.174429000062] , [ 1041915600000 , 32.516126115097] , [ 1042002000000 , 32.686064630184] , [ 1042088400000 , 31.297729959223] , [ 1042174800000 , 31.036859651468] , [ 1042434000000 , 31.562287184568] , [ 1042520400000 , 30.143471997708] , [ 1042606800000 , 30.254564588906] , [ 1042693200000 , 30.759164657571] , [ 1042779600000 , 32.846416076492] , [ 1043125200000 , 31.631183165124] , [ 1043211600000 , 31.642036756637] , [ 1043298000000 , 31.487404360426] , [ 1043384400000 , 32.157831806068] , [ 1043643600000 , 32.50443310405] , [ 1043730000000 , 33.066167590052] , [ 1043816400000 , 31.6076586863] , [ 1043902800000 , 33.717637512362] , [ 1043989200000 , 31.736501562535] , [ 1044248400000 , 31.864178991732] , [ 1044334800000 , 34.281894385896] , [ 1044421200000 , 32.551421744888] , [ 1044507600000 , 32.05516769272] , [ 1044594000000 , 33.070048876623] , [ 1044853200000 , 31.68130841716] , [ 1044939600000 , 31.634300094534] , [ 1045026000000 , 31.919773482353] , [ 1045112400000 , 31.791489713631] , [ 1045198800000 , 32.03142652115] , [ 1045544400000 , 31.948871479026] , [ 1045630800000 , 31.521873577061] , [ 1045717200000 , 30.904427126658] , [ 1045803600000 , 30.359917173364] , [ 1046062800000 , 31.361922635464] , [ 1046149200000 , 32.001555939897] , [ 1046235600000 , 32.307245785873] , [ 1046322000000 , 30.558578011726] , [ 1046408400000 , 31.033106565683] , [ 1046667600000 , 29.924444910136] , [ 1046754000000 , 29.753177508224] , [ 1046840400000 , 28.940518203418] , [ 1046926800000 , 29.179481983546] , [ 1047013200000 , 29.784664914033] , [ 1047272400000 , 30.753658995783] , [ 1047358800000 , 30.81977861129] , [ 1047445200000 , 29.010312523714] , [ 1047531600000 , 28.943463420531] , [ 1047618000000 , 29.439647264104] , [ 1047877200000 , 29.439167569011] , [ 1047963600000 , 29.739061337633] , [ 1048050000000 , 29.863147322082] , [ 1048136400000 , 29.802951649361] , [ 1048222800000 , 27.675732943194] , [ 1048482000000 , 29.517204549119] , [ 1048568400000 , 29.546753778333] , [ 1048654800000 , 29.33010734911] , [ 1048741200000 , 29.156670464212] , [ 1048827600000 , 29.181366678824] , [ 1049086800000 , 26.538385206639] , [ 1049173200000 , 27.793228667297] , [ 1049259600000 , 27.740130623983] , [ 1049346000000 , 27.073742461823] , [ 1049432400000 , 27.708372088887] , [ 1049688000000 , 27.546409800404] , [ 1049774400000 , 27.109908989978] , [ 1049860800000 , 27.508892052309] , [ 1049947200000 , 27.573024766248] , [ 1050033600000 , 27.562904099803] , [ 1050292800000 , 27.883823957353] , [ 1050379200000 , 26.94243582592] , [ 1050465600000 , 27.30044036495] , [ 1050552000000 , 27.655953950572] , [ 1050897600000 , 28.132830532753] , [ 1050984000000 , 29.145011235441] , [ 1051070400000 , 29.130019130891] , [ 1051156800000 , 27.015243803643] , [ 1051243200000 , 26.934190127075] , [ 1051502400000 , 28.315003336058] , [ 1051588800000 , 28.810881493325] , [ 1051675200000 , 28.874221112727] , [ 1051761600000 , 28.711297712595] , [ 1051848000000 , 29.083225255704] , [ 1052107200000 , 26.320631467029] , [ 1052193600000 , 26.526521297556] , [ 1052280000000 , 24.322739229005] , [ 1052366400000 , 26.486448875014] , [ 1052452800000 , 26.972380031488] , [ 1052712000000 , 24.572217709244] , [ 1052798400000 , 24.051647354042] , [ 1052884800000 , 24.704515259426] , [ 1052971200000 , 24.802337151678] , [ 1053057600000 , 25.582272542621] , [ 1053316800000 , 24.312531647399] , [ 1053403200000 , 24.647022413273] , [ 1053489600000 , 23.790785115662] , [ 1053576000000 , 23.791637931508] , [ 1053662400000 , 24.014901742655] , [ 1054008000000 , 24.842987578224] , [ 1054094400000 , 24.972509328848] , [ 1054180800000 , 25.2052915838] , [ 1054267200000 , 26.15292802979] , [ 1054526400000 , 26.546745648802] , [ 1054612800000 , 25.763233542036] , [ 1054699200000 , 25.862864549934] , [ 1054785600000 , 27.299999516698] , [ 1054872000000 , 26.146104760761] , [ 1055131200000 , 26.038996269704] , [ 1055217600000 , 26.412318690367] , [ 1055304000000 , 27.33266075208] , [ 1055390400000 , 27.382021008308] , [ 1055476800000 , 27.31130922726] , [ 1055736000000 , 27.387763132386] , [ 1055822400000 , 27.164485352963] , [ 1055908800000 , 26.81380256074] , [ 1055995200000 , 27.098002966452] , [ 1056081600000 , 26.953852590721] , [ 1056340800000 , 27.999474337505] , [ 1056427200000 , 27.633585949698] , [ 1056513600000 , 26.105925993639] , [ 1056600000000 , 26.058206775338] , [ 1056686400000 , 26.020371871416] , [ 1056945600000 , 27.552446360948] , [ 1057032000000 , 28.042342288887] , [ 1057118400000 , 28.535637322137] , [ 1057204800000 , 27.815165463839] , [ 1057550400000 , 28.293810845449] , [ 1057636800000 , 28.690428979622] , [ 1057723200000 , 27.21316794978] , [ 1057809600000 , 28.388052532971] , [ 1057896000000 , 28.386478218302] , [ 1058155200000 , 28.513862181386] , [ 1058241600000 , 28.921923352876] , [ 1058328000000 , 28.445619931358] , [ 1058414400000 , 28.45776233459] , [ 1058500800000 , 28.493241492587] , [ 1058760000000 , 27.161566369607] , [ 1058846400000 , 27.845806722341] , [ 1058932800000 , 28.2333271465] , [ 1059019200000 , 28.335018123813] , [ 1059105600000 , 28.480536520454] , [ 1059364800000 , 27.792426576494] , [ 1059451200000 , 28.643490353063] , [ 1059537600000 , 27.998590255814] , [ 1059624000000 , 28.307138125836] , [ 1059710400000 , 28.489281688192] , [ 1059969600000 , 28.044634410417] , [ 1060056000000 , 27.020593958804] , [ 1060142400000 , 29.024222641301] , [ 1060228800000 , 26.036740734775] , [ 1060315200000 , 25.532181247911] , [ 1060574400000 , 25.645288355925] , [ 1060660800000 , 25.584847141052] , [ 1060747200000 , 25.942202403911] , [ 1060833600000 , 26.037906674446] , [ 1060920000000 , 26.044720884667] , [ 1061179200000 , 27.122254948494] , [ 1061265600000 , 25.827274343473] , [ 1061352000000 , 26.367693760724] , [ 1061438400000 , 25.998713594962] , [ 1061524800000 , 25.870535462403] , [ 1061784000000 , 26.150778762061] , [ 1061870400000 , 26.085352003286] , [ 1061956800000 , 25.675758155341] , [ 1062043200000 , 26.913635716641] , [ 1062129600000 , 27.430709689662] , [ 1062475200000 , 26.836649211344] , [ 1062561600000 , 27.003749563166] , [ 1062648000000 , 26.700136753919] , [ 1062734400000 , 26.503633048643] , [ 1062993600000 , 26.519318552404] , [ 1063080000000 , 27.285791831463] , [ 1063166400000 , 26.56305235234] , [ 1063252800000 , 26.1211074658] , [ 1063339200000 , 26.701814569981] , [ 1063598400000 , 26.392227803794] , [ 1063684800000 , 26.463534553542] , [ 1063771200000 , 26.780820975165] , [ 1063857600000 , 26.453794119195] , [ 1063944000000 , 27.190797475635] , [ 1064203200000 , 26.536715823385] , [ 1064289600000 , 26.711951315753] , [ 1064376000000 , 24.939511077055] , [ 1064462400000 , 27.667788937619] , [ 1064548800000 , 27.72901664558] , [ 1064808000000 , 26.281401578938] , [ 1064894400000 , 20.702580373982] , [ 1064980800000 , 20.841885584242] , [ 1065067200000 , 21.260031120312] , [ 1065153600000 , 21.358844449436] , [ 1065412800000 , 21.55964477357] , [ 1065499200000 , 22.004611721363] , [ 1065585600000 , 22.876683783608] , [ 1065672000000 , 22.647462885851] , [ 1065758400000 , 22.930614232732] , [ 1066017600000 , 21.843025326727] , [ 1066104000000 , 21.386322937833] , [ 1066190400000 , 21.614282293797] , [ 1066276800000 , 21.275818295071] , [ 1066363200000 , 21.459743238568] , [ 1066622400000 , 22.173684640338] , [ 1066708800000 , 22.401746834289] , [ 1066795200000 , 22.437817143687] , [ 1066881600000 , 22.106579104852] , [ 1066968000000 , 22.55318869793] , [ 1067230800000 , 22.417348405754] , [ 1067317200000 , 24.338272474386] , [ 1067403600000 , 23.882781220497] , [ 1067490000000 , 24.350055143818] , [ 1067576400000 , 24.256623353787] , [ 1067835600000 , 23.430771613568] , [ 1067922000000 , 23.43425345774] , [ 1068008400000 , 23.488064824779] , [ 1068094800000 , 23.813639817594] , [ 1068181200000 , 24.089718459028] , [ 1068440400000 , 23.217253153951] , [ 1068526800000 , 23.128853965563] , [ 1068613200000 , 21.229600372837] , [ 1068699600000 , 21.702481673977] , [ 1068786000000 , 22.746321941367] , [ 1069045200000 , 22.603454460411] , [ 1069131600000 , 22.682972242364] , [ 1069218000000 , 22.560376930243] , [ 1069304400000 , 22.788902916352] , [ 1069390800000 , 23.007106428771] , [ 1069650000000 , 21.199579855833] , [ 1069736400000 , 19.883676019205] , [ 1069822800000 , 20.506726149966] , [ 1069995600000 , 20.480467772447] , [ 1070254800000 , 21.298549366564] , [ 1070341200000 , 21.522901636605] , [ 1070427600000 , 20.974323682087] , [ 1070514000000 , 20.610493547569] , [ 1070600400000 , 21.071833789601] , [ 1070859600000 , 20.65853211585] , [ 1070946000000 , 22.641747961132] , [ 1071032400000 , 22.761492869515] , [ 1071118800000 , 22.638825596471] , [ 1071205200000 , 22.628354730159] , [ 1071464400000 , 22.830598061484] , [ 1071550800000 , 21.981392329159] , [ 1071637200000 , 22.287526572018] , [ 1071723600000 , 20.435466158113] , [ 1071810000000 , 22.135877815707] , [ 1072069200000 , 20.641908166412] , [ 1072155600000 , 20.604041757621] , [ 1072242000000 , 20.482513717754] , [ 1072414800000 , 20.859034129798] , [ 1072674000000 , 20.821456194651] , [ 1072760400000 , 20.767946553306] , [ 1072846800000 , 21.512414318535] , [ 1073019600000 , 21.815071893188] , [ 1073278800000 , 22.57027016871] , [ 1073365200000 , 22.362924996309] , [ 1073451600000 , 23.112960982896] , [ 1073538000000 , 23.183160792627] , [ 1073624400000 , 22.762724376465] , [ 1073883600000 , 23.130840901013] , [ 1073970000000 , 22.736456202276] , [ 1074056400000 , 23.323176939802] , [ 1074142800000 , 23.491149448881] , [ 1074229200000 , 23.632601297431] , [ 1074574800000 , 23.596027440961] , [ 1074661200000 , 23.730507370484] , [ 1074747600000 , 23.731539839131] , [ 1074834000000 , 23.670710782986] , [ 1075093200000 , 23.711864028891] , [ 1075179600000 , 23.710536645288] , [ 1075266000000 , 23.422349765442] , [ 1075352400000 , 22.897866978853] , [ 1075438800000 , 23.59903446311] , [ 1075698000000 , 24.304597455649] , [ 1075784400000 , 24.530581915524] , [ 1075870800000 , 24.666816160857] , [ 1075957200000 , 24.3699656412] , [ 1076043600000 , 24.718383579187] , [ 1076302800000 , 24.435361394139] , [ 1076389200000 , 24.716746266706] , [ 1076475600000 , 24.703215277236] , [ 1076562000000 , 24.462111914705] , [ 1076648400000 , 24.517491525145] , [ 1076994000000 , 24.65285871564] , [ 1077080400000 , 24.536403534258] , [ 1077166800000 , 23.441101800032] , [ 1077253200000 , 23.292247202584] , [ 1077512400000 , 24.673949618453] , [ 1077598800000 , 23.982506533513] , [ 1077685200000 , 24.563555008109] , [ 1077771600000 , 24.842379416268] , [ 1077858000000 , 24.598095251264] , [ 1078117200000 , 25.169288052086] , [ 1078203600000 , 23.873252187745] , [ 1078290000000 , 23.752511055326] , [ 1078376400000 , 23.298036944926] , [ 1078462800000 , 23.581947969401] , [ 1078722000000 , 23.53180827683] , [ 1078808400000 , 23.366844938769] , [ 1078894800000 , 24.353234002561] , [ 1078981200000 , 24.45805021653] , [ 1079067600000 , 24.279776894705] , [ 1079326800000 , 24.546012368839] , [ 1079413200000 , 24.484539293696] , [ 1079499600000 , 24.639325428832] , [ 1079586000000 , 22.205228203619] , [ 1079672400000 , 24.13905314141] , [ 1079931600000 , 21.943259105263] , [ 1080018000000 , 23.859385198169] , [ 1080104400000 , 24.409155043097] , [ 1080190800000 , 22.206410046771] , [ 1080277200000 , 22.242610418717] , [ 1080536400000 , 22.271628713517] , [ 1080622800000 , 22.120605105342] , [ 1080709200000 , 20.422027455951] , [ 1080795600000 , 20.602019095325] , [ 1080882000000 , 20.351415999528] , [ 1081137600000 , 20.546189995804] , [ 1081224000000 , 20.839378775748] , [ 1081310400000 , 21.529862280853] , [ 1081396800000 , 20.640624506057] , [ 1081742400000 , 20.716224328592] , [ 1081828800000 , 20.306236152751] , [ 1081915200000 , 20.773071221448] , [ 1082001600000 , 20.430042140281] , [ 1082088000000 , 20.542455723128] , [ 1082347200000 , 20.519223045686] , [ 1082433600000 , 20.64121284046] , [ 1082520000000 , 20.795652975678] , [ 1082606400000 , 20.793362696806] , [ 1082692800000 , 20.655652288275] , [ 1082952000000 , 20.614304378368] , [ 1083038400000 , 21.540868061704] , [ 1083124800000 , 21.100087713507] , [ 1083211200000 , 21.706861416669] , [ 1083297600000 , 21.821943169274] , [ 1083556800000 , 22.219548134081] , [ 1083643200000 , 22.076399309175] , [ 1083729600000 , 22.273179568579] , [ 1083816000000 , 22.175618380383] , [ 1083902400000 , 22.48996404722] , [ 1084161600000 , 21.664419955681] , [ 1084248000000 , 21.706310443164] , [ 1084334400000 , 23.698514687206] , [ 1084420800000 , 23.155670723188] , [ 1084507200000 , 22.719400449948] , [ 1084766400000 , 22.701867709153] , [ 1084852800000 , 20.915448504352] , [ 1084939200000 , 21.841096759482] , [ 1085025600000 , 21.153589250298] , [ 1085112000000 , 21.848744488386] , [ 1085371200000 , 21.981167694465] , [ 1085457600000 , 22.351726653608] , [ 1085544000000 , 21.989843194271] , [ 1085630400000 , 21.863944994199] , [ 1085716800000 , 21.992763926844] , [ 1086062400000 , 22.015250077718] , [ 1086148800000 , 21.611987080217] , [ 1086235200000 , 21.788359777903] , [ 1086321600000 , 21.865326769938] , [ 1086580800000 , 22.169677747023] , [ 1086667200000 , 22.255792326642] , [ 1086753600000 , 21.815057760968] , [ 1086840000000 , 22.079460749227] , [ 1087185600000 , 21.718833087059] , [ 1087272000000 , 22.054574375237] , [ 1087358400000 , 22.077928074568] , [ 1087444800000 , 20.286091937413] , [ 1087531200000 , 19.961563180367] , [ 1087790400000 , 20.142341027021] , [ 1087876800000 , 20.480696517221] , [ 1087963200000 , 19.568662720709] , [ 1088049600000 , 19.938945601387] , [ 1088136000000 , 19.15896941301] , [ 1088395200000 , 19.359487306427] , [ 1088481600000 , 18.342316846577] , [ 1088568000000 , 20.269511969126] , [ 1088654400000 , 19.853264793737] , [ 1088740800000 , 19.681572657923] , [ 1089086400000 , 19.511709418823] , [ 1089172800000 , 20.466949099506] , [ 1089259200000 , 21.997027219347] , [ 1089345600000 , 21.866188592113] , [ 1089604800000 , 21.777774027231] , [ 1089691200000 , 19.974660010341] , [ 1089777600000 , 20.262276003674] , [ 1089864000000 , 20.000610531766] , [ 1089950400000 , 19.521022147143] , [ 1090209600000 , 19.63746824233] , [ 1090296000000 , 20.511108907082] , [ 1090382400000 , 19.622834697758] , [ 1090468800000 , 20.440082709942] , [ 1090555200000 , 20.309018221836] , [ 1090814400000 , 19.31915943842] , [ 1090900800000 , 19.987560974175] , [ 1090987200000 , 18.383361565925] , [ 1091073600000 , 18.649058503758] , [ 1091160000000 , 18.521598662065] , [ 1091419200000 , 21.508218211147] , [ 1091505600000 , 21.421423610955] , [ 1091592000000 , 20.937252485663] , [ 1091678400000 , 20.55942501228] , [ 1091764800000 , 21.492327213057] , [ 1092024000000 , 20.428889988927] , [ 1092110400000 , 20.208000809495] , [ 1092196800000 , 21.073081835022] , [ 1092283200000 , 20.516709647732] , [ 1092369600000 , 20.494092920092] , [ 1092628800000 , 20.594653940425] , [ 1092715200000 , 21.981492718129] , [ 1092801600000 , 22.263197716196] , [ 1092888000000 , 21.913232408644] , [ 1092974400000 , 22.327152260303] , [ 1093233600000 , 21.823160490922] , [ 1093320000000 , 21.974020889413] , [ 1093406400000 , 20.969139180401] , [ 1093492800000 , 20.700113185983] , [ 1093579200000 , 20.995130774321] , [ 1093838400000 , 20.777557031366] , [ 1093924800000 , 21.338984500788] , [ 1094011200000 , 20.943168738285] , [ 1094097600000 , 20.387547324159] , [ 1094184000000 , 19.90447909376] , [ 1094529600000 , 20.410382693655] , [ 1094616000000 , 21.044187342993] , [ 1094702400000 , 20.916719632161] , [ 1094788800000 , 21.087327989672] , [ 1095048000000 , 21.535574000586] , [ 1095134400000 , 21.350278335134] , [ 1095220800000 , 19.259910059761] , [ 1095307200000 , 19.157055297116] , [ 1095393600000 , 18.55929133156] , [ 1095652800000 , 19.541945777775] , [ 1095739200000 , 19.571330603031] , [ 1095825600000 , 20.055020386358] , [ 1095912000000 , 20.370836828915] , [ 1095998400000 , 20.217795317429] , [ 1096257600000 , 20.237567086164] , [ 1096344000000 , 20.252663243133] , [ 1096430400000 , 20.554487157796] , [ 1096516800000 , 23.551279458767] , [ 1096603200000 , 23.976684313083] , [ 1096862400000 , 23.994067797713] , [ 1096948800000 , 23.847100999095] , [ 1097035200000 , 22.618851476996] , [ 1097121600000 , 21.918401702113] , [ 1097208000000 , 22.820396271098] , [ 1097467200000 , 22.405577488046] , [ 1097553600000 , 22.589819485406] , [ 1097640000000 , 22.562492142783] , [ 1097726400000 , 22.257761745121] , [ 1097812800000 , 22.753995001525] , [ 1098072000000 , 22.253093413163] , [ 1098158400000 , 22.669396781078] , [ 1098244800000 , 23.145817485586] , [ 1098331200000 , 22.806172342982] , [ 1098417600000 , 22.982721082827] , [ 1098676800000 , 23.188065641347] , [ 1098763200000 , 23.240765686738] , [ 1098849600000 , 22.304383206889] , [ 1098936000000 , 22.387804835083] , [ 1099022400000 , 23.997242736394] , [ 1099285200000 , 23.460596038298] , [ 1099371600000 , 23.382857460859] , [ 1099458000000 , 21.362278361628] , [ 1099544400000 , 21.143413395171] , [ 1099630800000 , 22.804629852184] , [ 1099890000000 , 22.753114153754] , [ 1099976400000 , 22.308729960497] , [ 1100062800000 , 22.272746270522] , [ 1100149200000 , 22.783245203563] , [ 1100235600000 , 22.775890353402] , [ 1100494800000 , 23.185607588444] , [ 1100581200000 , 21.82940204288] , [ 1100667600000 , 22.502820291752] , [ 1100754000000 , 22.379850354445] , [ 1100840400000 , 22.110429953837] , [ 1101099600000 , 22.361674556137] , [ 1101186000000 , 22.524275023246] , [ 1101272400000 , 21.900581820709] , [ 1101445200000 , 22.207349930847] , [ 1101704400000 , 21.881549405226] , [ 1101790800000 , 21.957633120137] , [ 1101877200000 , 22.17044864181] , [ 1101963600000 , 22.367574253815] , [ 1102050000000 , 22.951463592937] , [ 1102309200000 , 22.625931538911] , [ 1102395600000 , 22.103955906661] , [ 1102482000000 , 22.477792270248] , [ 1102568400000 , 22.720055377838] , [ 1102654800000 , 22.224601841384] , [ 1102914000000 , 22.177799754552] , [ 1103000400000 , 22.244472319539] , [ 1103086800000 , 21.896264211113] , [ 1103173200000 , 22.123605635153] , [ 1103259600000 , 22.89824049466] , [ 1103518800000 , 22.769850681045] , [ 1103605200000 , 23.101152533444] , [ 1103691600000 , 23.2474702024] , [ 1103778000000 , 23.353202546032] , [ 1104123600000 , 23.428164773161] , [ 1104210000000 , 23.761469178488] , [ 1104296400000 , 23.811970227979] , [ 1104382800000 , 22.053645988557] , [ 1104469200000 , 23.837387874446] , [ 1104728400000 , 22.788311956343] , [ 1104814800000 , 21.807013473423] , [ 1104901200000 , 23.986372267338] , [ 1104987600000 , 23.976865205686] , [ 1105074000000 , 23.903509394576] , [ 1105333200000 , 22.97018705308] , [ 1105419600000 , 23.039731567803] , [ 1105506000000 , 23.659672985194] , [ 1105592400000 , 23.099645411716] , [ 1105678800000 , 22.537574705101] , [ 1106024400000 , 22.870818294533] , [ 1106110800000 , 24.197816964489] , [ 1106197200000 , 23.92017568689] , [ 1106283600000 , 24.066318801579] , [ 1106542800000 , 23.690023027687] , [ 1106629200000 , 23.596535406577] , [ 1106715600000 , 23.69520786371] , [ 1106802000000 , 24.084768548503] , [ 1106888400000 , 23.472591746154] , [ 1107147600000 , 22.546788621649] , [ 1107234000000 , 23.258045524898] , [ 1107320400000 , 23.216119162924] , [ 1107406800000 , 22.562228457933] , [ 1107493200000 , 22.363221625111] , [ 1107752400000 , 22.135666602378] , [ 1107838800000 , 22.220582004241] , [ 1107925200000 , 22.34963059199] , [ 1108011600000 , 22.872322857378] , [ 1108098000000 , 23.437452894462] , [ 1108357200000 , 22.12470095394] , [ 1108443600000 , 22.231211800286] , [ 1108530000000 , 21.7623736718] , [ 1108616400000 , 22.678095212729] , [ 1108702800000 , 22.96419372684] , [ 1109048400000 , 25.194184014782] , [ 1109134800000 , 23.132155670989] , [ 1109221200000 , 23.32188574281] , [ 1109307600000 , 23.116590039209] , [ 1109566800000 , 22.941121998064] , [ 1109653200000 , 21.518588948441] , [ 1109739600000 , 22.036821237653] , [ 1109826000000 , 21.983362614837] , [ 1109912400000 , 22.64515258502] , [ 1110171600000 , 22.658965476441] , [ 1110258000000 , 22.336282873465] , [ 1110344400000 , 22.388967594312] , [ 1110430800000 , 22.81179971949] , [ 1110517200000 , 22.784722730406] , [ 1110776400000 , 22.260745763138] , [ 1110862800000 , 21.192545888542] , [ 1110949200000 , 21.513100107271] , [ 1111035600000 , 21.287356305789] , [ 1111122000000 , 21.737978227449] , [ 1111381200000 , 21.292088037944] , [ 1111467600000 , 21.822512541657] , [ 1111554000000 , 20.593097352624] , [ 1111640400000 , 21.347244824426] , [ 1111986000000 , 21.292296795504] , [ 1112072400000 , 20.933943553941] , [ 1112158800000 , 20.830648761139] , [ 1112245200000 , 20.008554354127] , [ 1112331600000 , 19.92222915956] , [ 1112587200000 , 19.651651647091] , [ 1112673600000 , 20.120343420289] , [ 1112760000000 , 19.777429658139] , [ 1112846400000 , 20.278760776431] , [ 1112932800000 , 19.852527364032] , [ 1113192000000 , 19.839957016294] , [ 1113278400000 , 20.060937152412] , [ 1113364800000 , 20.06798565859] , [ 1113451200000 , 19.739108617765] , [ 1113537600000 , 23.788284066979] , [ 1113796800000 , 22.566198442222] , [ 1113883200000 , 22.971099000729] , [ 1113969600000 , 23.069732791997] , [ 1114056000000 , 20.74096636037] , [ 1114142400000 , 22.809896306774] , [ 1114401600000 , 20.731529875719] , [ 1114488000000 , 22.882080877214] , [ 1114574400000 , 22.517347154116] , [ 1114660800000 , 23.411749917799] , [ 1114747200000 , 23.179090395579] , [ 1115006400000 , 23.557588377455] , [ 1115092800000 , 23.886047322364] , [ 1115179200000 , 23.949310371861] , [ 1115265600000 , 24.780835951678] , [ 1115352000000 , 23.849139180298] , [ 1115611200000 , 24.148953841482] , [ 1115697600000 , 24.329921634899] , [ 1115784000000 , 23.811114041933] , [ 1115870400000 , 23.788434616607] , [ 1115956800000 , 23.637715949708] , [ 1116216000000 , 23.64119689408] , [ 1116302400000 , 23.317120748076] , [ 1116388800000 , 23.812467556809] , [ 1116475200000 , 23.982405110173] , [ 1116561600000 , 24.18195432891] , [ 1116820800000 , 24.391170829899] , [ 1116907200000 , 23.841528877118] , [ 1116993600000 , 24.077109245959] , [ 1117080000000 , 22.201608086741] , [ 1117166400000 , 22.504790286828] , [ 1117512000000 , 22.630013569882] , [ 1117598400000 , 23.404504964627] , [ 1117684800000 , 23.085126228411] , [ 1117771200000 , 23.248690401656] , [ 1118030400000 , 23.256393641191] , [ 1118116800000 , 22.992919096426] , [ 1118203200000 , 23.191344100376] , [ 1118289600000 , 23.450139310017] , [ 1118376000000 , 23.324442615572] , [ 1118635200000 , 22.692106000531] , [ 1118721600000 , 21.957901717703] , [ 1118808000000 , 22.147872546362] , [ 1118894400000 , 21.79469943148] , [ 1118980800000 , 22.451958641293] , [ 1119240000000 , 22.350189888996] , [ 1119326400000 , 22.631704280603] , [ 1119412800000 , 22.427528094471] , [ 1119499200000 , 23.893835996089] , [ 1119585600000 , 23.988748698062] , [ 1119844800000 , 23.642649928892] , [ 1119931200000 , 24.068830987644] , [ 1120017600000 , 22.56720246359] , [ 1120104000000 , 24.99546628123] , [ 1120190400000 , 25.432726047103] , [ 1120536000000 , 24.43938948648] , [ 1120622400000 , 24.405779589083] , [ 1120708800000 , 24.111011393052] , [ 1120795200000 , 24.922837089358] , [ 1121054400000 , 24.927636707745] , [ 1121140800000 , 25.057917770825] , [ 1121227200000 , 24.937420101241] , [ 1121313600000 , 24.347875097745] , [ 1121400000000 , 24.574171592274] , [ 1121659200000 , 25.126013408294] , [ 1121745600000 , 25.072686421877] , [ 1121832000000 , 25.260821456271] , [ 1121918400000 , 25.596953542222] , [ 1122004800000 , 25.400792209182] , [ 1122264000000 , 24.666446433239] , [ 1122350400000 , 24.295277154765] , [ 1122436800000 , 25.089285481028] , [ 1122523200000 , 24.646806032674] , [ 1122609600000 , 24.356572428261] , [ 1122868800000 , 24.960683351891] , [ 1122955200000 , 25.549325757663] , [ 1123041600000 , 24.857664787272] , [ 1123128000000 , 25.150041173383] , [ 1123214400000 , 24.995124853776] , [ 1123473600000 , 24.990431320091] , [ 1123560000000 , 24.921532875771] , [ 1123646400000 , 25.362268036527] , [ 1123732800000 , 25.476200567557] , [ 1123819200000 , 25.244869684751] , [ 1124078400000 , 24.603016226183] , [ 1124164800000 , 23.704556481194] , [ 1124251200000 , 23.930714530168] , [ 1124337600000 , 23.702280717649] , [ 1124424000000 , 23.705926771363] , [ 1124683200000 , 23.745261019884] , [ 1124769600000 , 23.867675301904] , [ 1124856000000 , 24.480843532077] , [ 1124942400000 , 24.312361431187] , [ 1125028800000 , 24.488714153619] , [ 1125288000000 , 24.629809223467] , [ 1125374400000 , 24.47746750507] , [ 1125460800000 , 24.755638469166] , [ 1125547200000 , 25.427672976097] , [ 1125633600000 , 25.566055004721] , [ 1125979200000 , 25.676251654072] , [ 1126065600000 , 25.476497276393] , [ 1126152000000 , 26.017560468242] , [ 1126238400000 , 25.936127483998] , [ 1126497600000 , 26.059067318757] , [ 1126584000000 , 26.284790827713] , [ 1126670400000 , 26.097946527127] , [ 1126756800000 , 25.680994571817] , [ 1126843200000 , 25.219982882669] , [ 1127102400000 , 25.55341971956] , [ 1127188800000 , 25.95323179712] , [ 1127275200000 , 25.855639605436] , [ 1127361600000 , 25.302671014838] , [ 1127448000000 , 24.782969567936] , [ 1127707200000 , 24.485978295222] , [ 1127793600000 , 24.664161317193] , [ 1127880000000 , 24.922683972665] , [ 1127966400000 , 25.469475014745] , [ 1128052800000 , 31.832884219976] , [ 1128312000000 , 32.00422580579] , [ 1128398400000 , 31.012733149942] , [ 1128484800000 , 32.033755296739] , [ 1128571200000 , 32.226636515833] , [ 1128657600000 , 31.652895338555] , [ 1128916800000 , 31.825012326964] , [ 1129003200000 , 31.003476019696] , [ 1129089600000 , 31.314384992653] , [ 1129176000000 , 31.341523171026] , [ 1129262400000 , 31.784200797751] , [ 1129521600000 , 31.669952219428] , [ 1129608000000 , 31.347254597222] , [ 1129694400000 , 12.206145055635] , [ 1129780800000 , 31.473510862669] , [ 1129867200000 , 31.747099002924] , [ 1130126400000 , 31.240274960436] , [ 1130212800000 , 31.64073694867] , [ 1130299200000 , 30.801027283176] , [ 1130385600000 , 30.796451968504] , [ 1130472000000 , 31.172932024164] , [ 1130734800000 , 30.647152131554] , [ 1130821200000 , 32.072706192157] , [ 1130907600000 , 31.739864656074] , [ 1130994000000 , 32.036063794022] , [ 1131080400000 , 31.611909237799] , [ 1131339600000 , 31.733674153563] , [ 1131426000000 , 31.732636705805] , [ 1131512400000 , 32.415362885413] , [ 1131598800000 , 32.278446544564] , [ 1131685200000 , 31.097010842233] , [ 1131944400000 , 30.99444301525] , [ 1132030800000 , 31.710452266737] , [ 1132117200000 , 32.48348819077] , [ 1132203600000 , 32.073362093399] , [ 1132290000000 , 33.313418034733] , [ 1132549200000 , 31.961243771265] , [ 1132635600000 , 31.562791158413] , [ 1132722000000 , 31.53021860319] , [ 1132894800000 , 34.624189379868] , [ 1133154000000 , 32.084379040372] , [ 1133240400000 , 31.9765423891] , [ 1133326800000 , 31.984162231546] , [ 1133413200000 , 32.152674569961] , [ 1133499600000 , 31.778285608807] , [ 1133758800000 , 29.121258778258] , [ 1133845200000 , 29.311834594144] , [ 1133931600000 , 29.650199558715] , [ 1134018000000 , 29.092234692016] , [ 1134104400000 , 29.800109677029] , [ 1134363600000 , 32.085120881319] , [ 1134450000000 , 32.248988955359] , [ 1134536400000 , 30.256165327387] , [ 1134622800000 , 30.608185174303] , [ 1134709200000 , 30.412991147462] , [ 1134968400000 , 30.248358312013] , [ 1135054800000 , 29.912369358773] , [ 1135141200000 , 33.551554121293] , [ 1135227600000 , 33.533186466516] , [ 1135314000000 , 33.091647974802] , [ 1135659600000 , 33.264255806196] , [ 1135746000000 , 33.003638760148] , [ 1135832400000 , 32.514283805821] , [ 1135918800000 , 33.337098779692] , [ 1136264400000 , 25.529659425176] , [ 1136350800000 , 25.253503759086] , [ 1136437200000 , 25.667680592413] , [ 1136523600000 , 24.610404212038] , [ 1136782800000 , 24.461908447457] , [ 1136869200000 , 25.437119226817] , [ 1136955600000 , 24.943578431236] , [ 1137042000000 , 25.274617951881] , [ 1137128400000 , 25.84747162676] , [ 1137474000000 , 26.075536395048] , [ 1137560400000 , 26.708344152786] , [ 1137646800000 , 25.383003293955] , [ 1137733200000 , 25.217383650095] , [ 1137992400000 , 25.353115329768] , [ 1138078800000 , 24.954360264848] , [ 1138165200000 , 28.654765223046] , [ 1138251600000 , 28.302769507639] , [ 1138338000000 , 28.373032404194] , [ 1138597200000 , 28.163052677131] , [ 1138683600000 , 28.727503894285] , [ 1138770000000 , 28.027756157079] , [ 1138856400000 , 27.361031538257] , [ 1138942800000 , 27.402647471714] , [ 1139202000000 , 28.044230467152] , [ 1139288400000 , 28.476547862179] , [ 1139374800000 , 28.050624829875] , [ 1139461200000 , 27.915505499367] , [ 1139547600000 , 28.08611170798] , [ 1139806800000 , 28.97859125833] , [ 1139893200000 , 28.104813549959] , [ 1139979600000 , 28.240980412935] , [ 1140066000000 , 27.743968162571] , [ 1140152400000 , 27.558960443884] , [ 1140498000000 , 27.536228528067] , [ 1140584400000 , 27.500557062883] , [ 1140670800000 , 27.692039081654] , [ 1140757200000 , 27.490318497037] , [ 1141016400000 , 28.829156436114] , [ 1141102800000 , 28.450987148788] , [ 1141189200000 , 40.300330617069] , [ 1141275600000 , 41.570351501256] , [ 1141362000000 , 41.667844279089] , [ 1141621200000 , 41.607343966493] , [ 1141707600000 , 41.36959508335] , [ 1141794000000 , 41.232428456817] , [ 1141880400000 , 41.750224269446] , [ 1141966800000 , 40.821963504302] , [ 1142226000000 , 41.578527293958] , [ 1142312400000 , 41.902604471024] , [ 1142398800000 , 41.149491513676] , [ 1142485200000 , 41.175604953961] , [ 1142571600000 , 41.163121565507] , [ 1142830800000 , 40.016639353266] , [ 1142917200000 , 39.659732705306] , [ 1143003600000 , 39.584676122637] , [ 1143090000000 , 40.025666971014] , [ 1143176400000 , 39.723854886209] , [ 1143435600000 , 39.014198466242] , [ 1143522000000 , 39.025897365059] , [ 1143608400000 , 39.078011489583] , [ 1143694800000 , 39.194042018535] , [ 1143781200000 , 25.076401031907] , [ 1144036800000 , 24.749688897839] , [ 1144123200000 , 25.106301697735] , [ 1144209600000 , 25.719552294762] , [ 1144296000000 , 24.4332655269] , [ 1144382400000 , 24.362292535219] , [ 1144641600000 , 24.443115329917] , [ 1144728000000 , 24.629965330443] , [ 1144814400000 , 25.053676431536] , [ 1144900800000 , 25.553338423704] , [ 1145246400000 , 24.63853864188] , [ 1145332800000 , 24.640317578802] , [ 1145419200000 , 24.389045546756] , [ 1145505600000 , 24.264180514695] , [ 1145592000000 , 23.981966140907] , [ 1145851200000 , 23.869146013505] , [ 1145937600000 , 24.612899719958] , [ 1146024000000 , 24.553311510502] , [ 1146110400000 , 24.67686844737] , [ 1146196800000 , 24.042753146623] , [ 1146456000000 , 24.140870164853] , [ 1146542400000 , 24.381493813662] , [ 1146628800000 , 24.029031908064] , [ 1146715200000 , 21.242925011363] , [ 1146801600000 , 20.769286660932] , [ 1147060800000 , 21.141317449459] , [ 1147147200000 , 21.388633580721] , [ 1147233600000 , 20.953082345138] , [ 1147320000000 , 20.532372329159] , [ 1147406400000 , 24.303360340406] , [ 1147665600000 , 23.590839359023] , [ 1147752000000 , 23.266631012228] , [ 1147838400000 , 25.052914966934] , [ 1147924800000 , 25.043763466197] , [ 1148011200000 , 24.548527215889] , [ 1148270400000 , 24.722438408718] , [ 1148356800000 , 25.214561242106] , [ 1148443200000 , 25.634570272733] , [ 1148529600000 , 25.647165201314] , [ 1148616000000 , 25.753544167487] , [ 1148961600000 , 25.149343939348] , [ 1149048000000 , 26.854823654435] , [ 1149134400000 , 25.548585529681] , [ 1149220800000 , 26.37727083555] , [ 1149480000000 , 25.389475260201] , [ 1149566400000 , 25.396658724273] , [ 1149652800000 , 25.711045371603] , [ 1149739200000 , 26.090075952526] , [ 1149825600000 , 26.589623865854] , [ 1150084800000 , 26.478750357401] , [ 1150171200000 , 25.351679222087] , [ 1150257600000 , 26.270230537869] , [ 1150344000000 , 25.138486136012] , [ 1150430400000 , 24.912864147208] , [ 1150689600000 , 25.523276597347] , [ 1150776000000 , 25.713521178723] , [ 1150862400000 , 26.257170836193] , [ 1150948800000 , 25.997310717022] , [ 1151035200000 , 26.119086003937] , [ 1151294400000 , 26.635920589546] , [ 1151380800000 , 26.343811385476] , [ 1151467200000 , 28.124388937732] , [ 1151553600000 , 24.54731119523] , [ 1151640000000 , 31.188966156912] , [ 1151899200000 , 29.870847723237] , [ 1152072000000 , 30.688002142576] , [ 1152158400000 , 30.089827158124] , [ 1152244800000 , 31.940772585486] , [ 1152504000000 , 31.067183284601] , [ 1152590400000 , 30.924800755736] , [ 1152676800000 , 30.517136007625] , [ 1152763200000 , 31.787393493891] , [ 1152849600000 , 31.082509618961] , [ 1153108800000 , 30.894305465166] , [ 1153195200000 , 32.120863042337] , [ 1153281600000 , 31.044346734038] , [ 1153368000000 , 30.098909312396] , [ 1153454400000 , 29.530331064084] , [ 1153713600000 , 28.423433483104] , [ 1153800000000 , 29.927942135835] , [ 1153886400000 , 29.181454968641] , [ 1153972800000 , 29.333248943938] , [ 1154059200000 , 29.559442703965] , [ 1154318400000 , 30.196607322138] , [ 1154404800000 , 29.625024735712] , [ 1154491200000 , 27.025970259666] , [ 1154577600000 , 27.71523462955] , [ 1154664000000 , 28.475970074465] , [ 1154923200000 , 27.73275118605] , [ 1155009600000 , 27.531596294285] , [ 1155096000000 , 29.816437315313] , [ 1155182400000 , 31.132297764831] , [ 1155268800000 , 31.350609485479] , [ 1155528000000 , 27.4077255939] , [ 1155614400000 , 27.931060121498] , [ 1155700800000 , 27.153432710451] , [ 1155787200000 , 27.847180254777] , [ 1155873600000 , 28.115236062259] , [ 1156132800000 , 28.209521551488] , [ 1156219200000 , 27.740032215693] , [ 1156305600000 , 27.437705732559] , [ 1156392000000 , 28.080651949224] , [ 1156478400000 , 29.158903990658] , [ 1156737600000 , 26.443946908233] , [ 1156824000000 , 28.149285812323] , [ 1156910400000 , 27.606935897643] , [ 1156996800000 , 27.786851201179] , [ 1157083200000 , 27.816421928501] , [ 1157428800000 , 27.757031714495] , [ 1157515200000 , 28.109812831149] , [ 1157601600000 , 27.382887724883] , [ 1157688000000 , 27.566393964837] , [ 1157947200000 , 28.072202886242] , [ 1158033600000 , 28.339210638333] , [ 1158120000000 , 28.983363567898] , [ 1158206400000 , 28.89373971057] , [ 1158292800000 , 28.546073874183] , [ 1158552000000 , 28.569922456167] , [ 1158638400000 , 28.644564841401] , [ 1158724800000 , 29.104118011521] , [ 1158811200000 , 29.171264058902] , [ 1158897600000 , 29.174695431197] , [ 1159156800000 , 29.25146248404] , [ 1159243200000 , 29.067493265373] , [ 1159329600000 , 29.059576307809] , [ 1159416000000 , 28.792094037666] , [ 1159502400000 , 29.229903262633] , [ 1159761600000 , 29.173839342765] , [ 1159848000000 , 28.680751891991] , [ 1159934400000 , 28.844412842115] , [ 1160020800000 , 29.717735595983] , [ 1160107200000 , 29.065357982652] , [ 1160366400000 , 29.577703181664] , [ 1160452800000 , 29.388141928462] , [ 1160539200000 , 29.284519652691] , [ 1160625600000 , 29.696862390098] , [ 1160712000000 , 29.583788241009] , [ 1160971200000 , 29.717277671825] , [ 1161057600000 , 29.536517521229] , [ 1161144000000 , 30.19209470063] , [ 1161230400000 , 29.803516341494] , [ 1161316800000 , 29.762858883805] , [ 1161576000000 , 29.260692035145] , [ 1161662400000 , 28.041800630607] , [ 1161748800000 , 28.001322530788] , [ 1161835200000 , 29.254151703765] , [ 1161921600000 , 27.893380179947] , [ 1162184400000 , 28.181879353232] , [ 1162270800000 , 28.145746547181] , [ 1162357200000 , 26.2789492637] , [ 1162443600000 , 26.90231173776] , [ 1162530000000 , 26.990105956138] , [ 1162789200000 , 27.680080084703] , [ 1162875600000 , 27.564432414629] , [ 1162962000000 , 27.493107356522] , [ 1163048400000 , 27.312773824962] , [ 1163134800000 , 27.761758486306] , [ 1163394000000 , 27.537409566329] , [ 1163480400000 , 27.853753536227] , [ 1163566800000 , 27.756253824375] , [ 1163653200000 , 28.962247984012] , [ 1163739600000 , 28.365638597882] , [ 1163998800000 , 28.694093331648] , [ 1164085200000 , 29.005490800096] , [ 1164171600000 , 27.258444065642] , [ 1164344400000 , 27.61692867307] , [ 1164603600000 , 29.041615736671] , [ 1164690000000 , 29.083811356802] , [ 1164776400000 , 29.008208834138] , [ 1164862800000 , 29.285436799647] , [ 1164949200000 , 34.334496624946] , [ 1165208400000 , 32.525292751798] , [ 1165294800000 , 32.307919819272] , [ 1165381200000 , 33.373924998648] , [ 1165467600000 , 33.214072787246] , [ 1165554000000 , 32.855444052619] , [ 1165813200000 , 34.53339325839] , [ 1165899600000 , 34.518937401575] , [ 1165986000000 , 34.942214683629] , [ 1166072400000 , 32.587850416525] , [ 1166158800000 , 32.527715490379] , [ 1166418000000 , 34.364809359385] , [ 1166504400000 , 34.080545916718] , [ 1166590800000 , 34.132689605003] , [ 1166677200000 , 34.104872054323] , [ 1166763600000 , 34.323743744102] , [ 1167109200000 , 33.288380326408] , [ 1167195600000 , 34.547323073306] , [ 1167282000000 , 34.375993716023] , [ 1167368400000 , 34.050945370284] , [ 1167800400000 , 25.300692903932] , [ 1167886800000 , 25.222332899762] , [ 1167973200000 , 27.024130105771] , [ 1168232400000 , 25.2456813145] , [ 1168318800000 , 25.834632954173] , [ 1168405200000 , 25.145041463704] , [ 1168491600000 , 26.584700412957] , [ 1168578000000 , 25.847099393884] , [ 1168923600000 , 25.652151040168] , [ 1169010000000 , 25.98052974905] , [ 1169096400000 , 25.859471726107] , [ 1169182800000 , 25.077212570734] , [ 1169442000000 , 25.323172947985] , [ 1169528400000 , 25.112175095146] , [ 1169614800000 , 25.942935948696] , [ 1169701200000 , 25.395097212615] , [ 1169787600000 , 25.16933592015] , [ 1170046800000 , 25.830394390937] , [ 1170133200000 , 25.513593223622] , [ 1170219600000 , 24.36581957911] , [ 1170306000000 , 24.456646643567] , [ 1170392400000 , 24.353004508071] , [ 1170651600000 , 22.706362948211] , [ 1170738000000 , 23.773316862991] , [ 1170824400000 , 22.892314073756] , [ 1170910800000 , 23.196287432699] , [ 1170997200000 , 24.526622778603] , [ 1171256400000 , 24.444750736559] , [ 1171342800000 , 24.623535287714] , [ 1171429200000 , 23.162087403845] , [ 1171515600000 , 25.037171796906] , [ 1171602000000 , 24.350139194933] , [ 1171947600000 , 23.502911364689] , [ 1172034000000 , 23.498823181114] , [ 1172120400000 , 23.139200796032] , [ 1172206800000 , 23.742291144652] , [ 1172466000000 , 25.624758081908] , [ 1172552400000 , 24.938301474516] , [ 1172638800000 , 25.571487238295] , [ 1172725200000 , 26.527063964553] , [ 1172811600000 , 26.417975909576] , [ 1173070800000 , 26.604582192924] , [ 1173157200000 , 25.763880949593] , [ 1173243600000 , 26.420420419826] , [ 1173330000000 , 26.448933993474] , [ 1173416400000 , 27.086053003351] , [ 1173672000000 , 27.027855747942] , [ 1173758400000 , 26.990659332641] , [ 1173844800000 , 26.578320688861] , [ 1173931200000 , 26.264159657991] , [ 1174017600000 , 27.486827217766] , [ 1174276800000 , 26.259290279331] , [ 1174363200000 , 27.293928165415] , [ 1174449600000 , 27.289500680669] , [ 1174536000000 , 26.917511516188] , [ 1174622400000 , 27.545192210159] , [ 1174881600000 , 27.058783534804] , [ 1174968000000 , 28.012170827958] , [ 1175054400000 , 27.48009491153] , [ 1175140800000 , 27.130732208653] , [ 1175227200000 , 27.049918571206] , [ 1175486400000 , 17.880664598206] , [ 1175572800000 , 17.807265334563] , [ 1175659200000 , 18.202972493437] , [ 1175745600000 , 17.912649698382] , [ 1176091200000 , 17.425481268074] , [ 1176177600000 , 18.545703458137] , [ 1176264000000 , 18.613881634277] , [ 1176350400000 , 17.631685554022] , [ 1176436800000 , 17.45831457802] , [ 1176696000000 , 16.807197325678] , [ 1176782400000 , 17.537415957704] , [ 1176868800000 , 16.270090560045] , [ 1176955200000 , 15.763310958999] , [ 1177041600000 , 15.919034050236] , [ 1177300800000 , 16.037756370013] , [ 1177387200000 , 16.085193876186] , [ 1177473600000 , 14.73789421724] , [ 1177560000000 , 16.075537623262] , [ 1177646400000 , 16.136388846327] , [ 1177905600000 , 16.81063338022] , [ 1177992000000 , 16.52223459424] , [ 1178078400000 , 16.050019538099] , [ 1178164800000 , 15.637926079902] , [ 1178251200000 , 15.964954913544] , [ 1178510400000 , 16.084019150017] , [ 1178596800000 , 16.115193599934] , [ 1178683200000 , 15.29906479463] , [ 1178769600000 , 16.050303123855] , [ 1178856000000 , 15.942177052932] , [ 1179115200000 , 16.327320739846] , [ 1179201600000 , 16.567169050276] , [ 1179288000000 , 15.954884692567] , [ 1179374400000 , 15.520555372537] , [ 1179460800000 , 15.803063683541] , [ 1179720000000 , 16.058907858598] , [ 1179806400000 , 15.775392434141] , [ 1179892800000 , 15.492710738811] , [ 1179979200000 , 15.807487747828] , [ 1180065600000 , 16.460167833334] , [ 1180411200000 , 15.931278835494] , [ 1180497600000 , 15.766953824648] , [ 1180584000000 , 12.215920390306] , [ 1180670400000 , 13.383466763969] , [ 1180929600000 , 13.778081042623] , [ 1181016000000 , 13.511027657834] , [ 1181102400000 , 13.566850289866] , [ 1181188800000 , 14.212420857751] , [ 1181275200000 , 16.681046149104] , [ 1181534400000 , 17.357965625952] , [ 1181620800000 , 17.364397335248] , [ 1181707200000 , 14.113600508738] , [ 1181793600000 , 14.418535873185] , [ 1181880000000 , 14.222936582899] , [ 1182139200000 , 14.341331170428] , [ 1182225600000 , 14.700447213771] , [ 1182312000000 , 17.246935746763] , [ 1182398400000 , 14.434458966372] , [ 1182484800000 , 16.942892233606] , [ 1182744000000 , 14.302972963496] , [ 1182830400000 , 17.496053460551] , [ 1182916800000 , 17.007178523808] , [ 1183003200000 , 17.1173497837] , [ 1183089600000 , 14.738100031861] , [ 1183348800000 , 23.381360028949] , [ 1183435200000 , 23.583171411876] , [ 1183608000000 , 21.189576571504] , [ 1183694400000 , 21.379542195365] , [ 1183953600000 , 24.193565504788] , [ 1184040000000 , 23.892984361498] , [ 1184126400000 , 23.557482166335] , [ 1184212800000 , 21.398391535786] , [ 1184299200000 , 21.000192621393] , [ 1184558400000 , 21.443443411203] , [ 1184644800000 , 20.87909268732] , [ 1184731200000 , 21.106341299711] , [ 1184817600000 , 21.678832875153] , [ 1184904000000 , 21.099485258524] , [ 1185163200000 , 20.53180730183] , [ 1185249600000 , 22.753865952858] , [ 1185336000000 , 23.036155771385] , [ 1185422400000 , 22.436927650804] , [ 1185508800000 , 23.629713342946] , [ 1185768000000 , 22.973439437844] , [ 1185854400000 , 24.011681875779] , [ 1185940800000 , 23.293907291742] , [ 1186027200000 , 23.221742080601] , [ 1186113600000 , 23.136600304113] , [ 1186372800000 , 23.403613308236] , [ 1186459200000 , 24.15550391201] , [ 1186545600000 , 23.382840976484] , [ 1186632000000 , 23.569117139983] , [ 1186718400000 , 23.110364403669] , [ 1186977600000 , 22.768508508377] , [ 1187064000000 , 22.746873596873] , [ 1187150400000 , 21.912550360806] , [ 1187236800000 , 23.111375981008] , [ 1187323200000 , 22.154240319281] , [ 1187582400000 , 22.452724069829] , [ 1187668800000 , 22.971202842449] , [ 1187755200000 , 23.044703450178] , [ 1187841600000 , 22.932286638476] , [ 1187928000000 , 23.128465099576] , [ 1188187200000 , 23.053430107617] , [ 1188273600000 , 23.399278657702] , [ 1188360000000 , 22.855290558568] , [ 1188446400000 , 23.023778923147] , [ 1188532800000 , 23.30642985164] , [ 1188878400000 , 24.100190753625] , [ 1188964800000 , 23.496410386678] , [ 1189051200000 , 23.164863339011] , [ 1189137600000 , 22.984547839469] , [ 1189396800000 , 23.586261681658] , [ 1189483200000 , 23.879509037795] , [ 1189569600000 , 23.970799057706] , [ 1189656000000 , 24.203453000763] , [ 1189742400000 , 24.147554781255] , [ 1190001600000 , 23.727724576032] , [ 1190088000000 , 24.121007821814] , [ 1190174400000 , 23.547385976413] , [ 1190260800000 , 23.891283879089] , [ 1190347200000 , 24.274320682809] , [ 1190606400000 , 23.539795550406] , [ 1190692800000 , 24.124440766278] , [ 1190779200000 , 24.069128212927] , [ 1190865600000 , 23.730046995653] , [ 1190952000000 , 24.12189164708] , [ 1191211200000 , 21.828756161412] , [ 1191297600000 , 21.598908720664] , [ 1191384000000 , 22.198066739307] , [ 1191470400000 , 21.828974377747] , [ 1191556800000 , 21.865331328546] , [ 1191816000000 , 20.146481329684] , [ 1191902400000 , 22.038963127424] , [ 1191988800000 , 22.193420310202] , [ 1192075200000 , 21.902764731066] , [ 1192161600000 , 19.031850812838] , [ 1192420800000 , 22.145901417428] , [ 1192507200000 , 21.730226173364] , [ 1192593600000 , 18.717647311262] , [ 1192680000000 , 18.755527112944] , [ 1192766400000 , 18.609066458058] , [ 1193025600000 , 17.944501591207] , [ 1193112000000 , 18.274551837267] , [ 1193198400000 , 20.113228789742] , [ 1193284800000 , 22.781013325441] , [ 1193371200000 , 22.589161863023] , [ 1193630400000 , 17.461728207277] , [ 1193716800000 , 17.66706415891] , [ 1193803200000 , 17.958751721512] , [ 1193889600000 , 16.785791840302] , [ 1193976000000 , 16.757702111569] , [ 1194238800000 , 18.93409532988] , [ 1194325200000 , 19.534095495152] , [ 1194411600000 , 17.171260260302] , [ 1194498000000 , 17.736480941713] , [ 1194584400000 , 17.95514343952] , [ 1194843600000 , 16.76664120096] , [ 1194930000000 , 19.514289594417] , [ 1195016400000 , 17.907346110061] , [ 1195102800000 , 18.887036074517] , [ 1195189200000 , 18.085290433046] , [ 1195448400000 , 20.215750560331] , [ 1195534800000 , 19.728281124118] , [ 1195621200000 , 20.013901927158] , [ 1195794000000 , 20.425307638534] , [ 1196053200000 , 20.12299964298] , [ 1196139600000 , 20.615959531752] , [ 1196226000000 , 21.157573604935] , [ 1196312400000 , 21.227579026087] , [ 1196398800000 , 21.063013137686] , [ 1196658000000 , 18.952569130832] , [ 1196744400000 , 17.835169748773] , [ 1196830800000 , 18.689749074265] , [ 1196917200000 , 19.241256266257] , [ 1197003600000 , 16.106201143] , [ 1197262800000 , 18.739634285662] , [ 1197349200000 , 17.033992438966] , [ 1197435600000 , 17.526984276377] , [ 1197522000000 , 18.474421634711] , [ 1197608400000 , 18.943045807971] , [ 1197867600000 , 18.8357354204] , [ 1197954000000 , 14.317066323396] , [ 1198040400000 , 15.328387808528] , [ 1198126800000 , 15.4591742668] , [ 1198213200000 , 14.971952807451] , [ 1198472400000 , 14.486078605624] , [ 1198645200000 , 15.093829891606] , [ 1198731600000 , 14.89944253928] , [ 1198818000000 , 14.953095657488] , [ 1199077200000 , 21.14224717447] , [ 1199250000000 , 22.163125599573] , [ 1199336400000 , 25.580649670689] , [ 1199422800000 , 26.550304750539] , [ 1199682000000 , 24.92178160634] , [ 1199768400000 , 26.480917610196] , [ 1199854800000 , 26.415499888108] , [ 1199941200000 , 25.798528581908] , [ 1200027600000 , 25.968596406516] , [ 1200286800000 , 26.628155151879] , [ 1200373200000 , 26.572268363594] , [ 1200459600000 , 26.964587445107] , [ 1200546000000 , 26.021720676336] , [ 1200632400000 , 25.219318556176] , [ 1200978000000 , 25.08904004204] , [ 1201064400000 , 25.436698688495] , [ 1201150800000 , 25.705583393763] , [ 1201237200000 , 24.708314196768] , [ 1201496400000 , 25.275322535728] , [ 1201582800000 , 25.013340149085] , [ 1201669200000 , 26.087180427196] , [ 1201755600000 , 25.596819481677] , [ 1201842000000 , 27.031794299842] , [ 1202101200000 , 26.116692862418] , [ 1202187600000 , 26.18876081094] , [ 1202274000000 , 26.805914582556] , [ 1202360400000 , 26.305228563756] , [ 1202446800000 , 26.162145456199] , [ 1202706000000 , 26.078668866288] , [ 1202792400000 , 24.496696009333] , [ 1202878800000 , 24.333591780266] , [ 1202965200000 , 25.365600329799] , [ 1203051600000 , 25.073445357545] , [ 1203397200000 , 23.72831122047] , [ 1203483600000 , 22.506572846112] , [ 1203570000000 , 24.021331332996] , [ 1203656400000 , 23.66509718916] , [ 1203915600000 , 24.425976963638] , [ 1204002000000 , 24.8174208102] , [ 1204088400000 , 23.926217363698] , [ 1204174800000 , 23.12804880749] , [ 1204261200000 , 23.065751947087] , [ 1204520400000 , 22.796843375225] , [ 1204606800000 , 24.777178076373] , [ 1204693200000 , 23.972553369429] , [ 1204779600000 , 24.748169690011] , [ 1204866000000 , 24.546520937818] , [ 1205121600000 , 24.531054748032] , [ 1205208000000 , 25.050634385202] , [ 1205294400000 , 23.712509030237] , [ 1205380800000 , 22.791099148642] , [ 1205467200000 , 25.133010110595] , [ 1205726400000 , 25.729774893726] , [ 1205812800000 , 23.964300656032] , [ 1205899200000 , 24.830611435159] , [ 1205985600000 , 24.625872764332] , [ 1206331200000 , 24.167428696816] , [ 1206417600000 , 23.96580861882] , [ 1206504000000 , 23.710994480839] , [ 1206590400000 , 24.071307185252] , [ 1206676800000 , 25.578134721546] , [ 1206936000000 , 24.004366210672] , [ 1207022400000 , 23.748819146736] , [ 1207108800000 , 23.419450880062] , [ 1207195200000 , 23.977383718976] , [ 1207281600000 , 24.079681731569] , [ 1207540800000 , 23.289855010864] , [ 1207627200000 , 23.410998821727] , [ 1207713600000 , 23.516469881517] , [ 1207800000000 , 23.338729362027] , [ 1207886400000 , 23.255513637852] , [ 1208145600000 , 24.048754022449] , [ 1208232000000 , 24.082829261378] , [ 1208318400000 , 23.970518901665] , [ 1208404800000 , 24.005293898633] , [ 1208491200000 , 23.473203816222] , [ 1208750400000 , 23.533677351106] , [ 1208836800000 , 23.377124698615] , [ 1208923200000 , 23.620869290172] , [ 1209009600000 , 23.74664341712] , [ 1209096000000 , 24.310388759454] , [ 1209355200000 , 24.64043664586] , [ 1209441600000 , 24.196923166095] , [ 1209528000000 , 24.213728155036] , [ 1209614400000 , 23.92191244331] , [ 1209700800000 , 23.431732325766] , [ 1209960000000 , 23.778340073822] , [ 1210046400000 , 21.78167300827] , [ 1210132800000 , 23.022281575534] , [ 1210219200000 , 23.048837276234] , [ 1210305600000 , 23.201805997156] , [ 1210564800000 , 23.1040786704] , [ 1210651200000 , 23.965153233623] , [ 1210737600000 , 23.383754556726] , [ 1210824000000 , 23.797927960202] , [ 1210910400000 , 23.632245055346] , [ 1211169600000 , 23.04524456399] , [ 1211256000000 , 23.57340787775] , [ 1211342400000 , 23.063426658982] , [ 1211428800000 , 23.034687458765] , [ 1211515200000 , 23.065113447487] , [ 1211860800000 , 22.889624665243] , [ 1211947200000 , 22.835009873064] , [ 1212033600000 , 21.531340184817] , [ 1212120000000 , 19.575259321106] , [ 1212379200000 , 17.763724550155] , [ 1212465600000 , 17.596695125202] , [ 1212552000000 , 17.961687627204] , [ 1212638400000 , 17.671896963962] , [ 1212724800000 , 17.877674078151] , [ 1212984000000 , 17.802333395307] , [ 1213070400000 , 17.932025245841] , [ 1213156800000 , 19.615406255269] , [ 1213243200000 , 19.814081563691] , [ 1213329600000 , 17.609477469975] , [ 1213588800000 , 17.678509440137] , [ 1213675200000 , 17.856359586929] , [ 1213761600000 , 17.883324428735] , [ 1213848000000 , 17.654914600713] , [ 1213934400000 , 17.333695485667] , [ 1214193600000 , 17.09733750096] , [ 1214280000000 , 17.192721064539] , [ 1214366400000 , 17.654778485183] , [ 1214452800000 , 18.742947223993] , [ 1214539200000 , 17.954362007624] , [ 1214798400000 , 27.035541485757] , [ 1214884800000 , 25.646501324451] , [ 1214971200000 , 24.704339480623] , [ 1215057600000 , 25.528124904273] , [ 1215403200000 , 24.469221904803] , [ 1215489600000 , 24.86467084747] , [ 1215576000000 , 28.185081839725] , [ 1215662400000 , 25.931291196908] , [ 1215748800000 , 25.921172963399] , [ 1216008000000 , 26.156573606637] , [ 1216094400000 , 25.942194939115] , [ 1216180800000 , 26.372665582895] , [ 1216267200000 , 27.995468662118] , [ 1216353600000 , 28.03192309971] , [ 1216612800000 , 27.660054510448] , [ 1216699200000 , 27.033881768957] , [ 1216785600000 , 27.3314171743] , [ 1216872000000 , 27.075331862026] , [ 1216958400000 , 26.480730398212] , [ 1217217600000 , 27.168142861835] , [ 1217304000000 , 26.897933957608] , [ 1217390400000 , 27.041128147957] , [ 1217476800000 , 26.779369198304] , [ 1217563200000 , 26.574158091266] , [ 1217822400000 , 25.430941403492] , [ 1217908800000 , 25.882024678018] , [ 1217995200000 , 26.557241260329] , [ 1218081600000 , 26.592571431801] , [ 1218168000000 , 26.730520023221] , [ 1218427200000 , 24.829736435431] , [ 1218513600000 , 24.808676213762] , [ 1218600000000 , 24.761891131036] , [ 1218686400000 , 24.770206770333] , [ 1218772800000 , 25.143577874227] , [ 1219032000000 , 24.364074049182] , [ 1219118400000 , 24.508558829752] , [ 1219204800000 , 25.834189456239] , [ 1219291200000 , 26.015641689522] , [ 1219377600000 , 25.675928226745] , [ 1219636800000 , 28.411511834627] , [ 1219723200000 , 27.743761968814] , [ 1219809600000 , 27.561616699095] , [ 1219896000000 , 27.267198900374] , [ 1219982400000 , 26.768901529277] , [ 1220328000000 , 30.930829782998] , [ 1220414400000 , 32.702155801611] , [ 1220500800000 , 33.164536908551] , [ 1220587200000 , 33.0901284428] , [ 1220846400000 , 33.548026375889] , [ 1220932800000 , 32.479523954005] , [ 1221019200000 , 33.023962968015] , [ 1221105600000 , 32.518232933545] , [ 1221192000000 , 33.250608979442] , [ 1221451200000 , 32.242561777527] , [ 1221537600000 , 32.296409598697] , [ 1221624000000 , 32.626704429792] , [ 1221710400000 , 33.131294577009] , [ 1221796800000 , 32.780017106931] , [ 1222056000000 , 33.242181094218] , [ 1222142400000 , 32.949426208976] , [ 1222228800000 , 33.163455852964] , [ 1222315200000 , 32.814626929601] , [ 1222401600000 , 31.914250535078] , [ 1222660800000 , 32.805282690546] , [ 1222747200000 , 25.311667499771] , [ 1222833600000 , 23.096834463171] , [ 1222920000000 , 22.433532392245] , [ 1223006400000 , 21.855284679053] , [ 1223265600000 , 21.116434115363] , [ 1223352000000 , 20.826921172289] , [ 1223438400000 , 21.415638475657] , [ 1223524800000 , 22.725393928058] , [ 1223611200000 , 22.358739847456] , [ 1223870400000 , 22.207965001084] , [ 1223956800000 , 22.274562627241] , [ 1224043200000 , 22.507869738831] , [ 1224129600000 , 22.673218449481] , [ 1224216000000 , 23.089664277628] , [ 1224475200000 , 18.011834486638] , [ 1224561600000 , 19.500589275255] , [ 1224648000000 , 19.088347643272] , [ 1224734400000 , 17.727532675315] , [ 1224820800000 , 19.264131025944] , [ 1225080000000 , 19.943378353668] , [ 1225166400000 , 19.743342605804] , [ 1225252800000 , 17.652555994436] , [ 1225339200000 , 16.867192686438] , [ 1225425600000 , 16.544460489827] , [ 1225688400000 , 18.960925390929] , [ 1225774800000 , 19.256387931268] , [ 1225861200000 , 18.566180002383] , [ 1225947600000 , 16.024008873622] , [ 1226034000000 , 16.612438359142] , [ 1226293200000 , 16.724221319191] , [ 1226379600000 , 16.458855879352] , [ 1226466000000 , 21.593906322621] , [ 1226552400000 , 16.493261880376] , [ 1226638800000 , 19.411017873208] , [ 1226898000000 , 18.993296155293] , [ 1226984400000 , 19.159014049549] , [ 1227070800000 , 17.725731555775] , [ 1227157200000 , 20.936378007454] , [ 1227243600000 , 17.952696312063] , [ 1227502800000 , 18.700248963856] , [ 1227589200000 , 18.87332365187] , [ 1227675600000 , 17.853711923738] , [ 1227848400000 , 17.875123518555] , [ 1228107600000 , 23.854365550634] , [ 1228194000000 , 23.749540851087] , [ 1228280400000 , 21.773838225393] , [ 1228366800000 , 21.49271023225] , [ 1228453200000 , 22.215174649386] , [ 1228712400000 , 22.362045108586] , [ 1228798800000 , 24.461632267612] , [ 1228885200000 , 24.78353826837] , [ 1228971600000 , 24.547286297952] , [ 1229058000000 , 24.162234952977] , [ 1229317200000 , 27.565055857858] , [ 1229403600000 , 25.795424112755] , [ 1229490000000 , 25.507862221091] , [ 1229576400000 , 25.394514275371] , [ 1229662800000 , 25.647603062187] , [ 1229922000000 , 25.857574037331] , [ 1230008400000 , 25.180119806304] , [ 1230094800000 , 25.798192638788] , [ 1230267600000 , 25.359457083421] , [ 1230526800000 , 25.504418021474] , [ 1230613200000 , 25.60919820751] , [ 1230699600000 , 18.093063456137] , [ 1230872400000 , 18.843422158609] , [ 1231131600000 , 18.536029229138] , [ 1231218000000 , 18.880208487147] , [ 1231304400000 , 18.812077348106] , [ 1231390800000 , 18.906627265926] , [ 1231477200000 , 18.913419354209] , [ 1231736400000 , 18.814628186255] , [ 1231822800000 , 19.1706224549] , [ 1231909200000 , 19.102143486727] , [ 1231995600000 , 17.465425251457] , [ 1232082000000 , 17.599705681524] , [ 1232427600000 , 17.509814909282] , [ 1232514000000 , 17.406327433972] , [ 1232600400000 , 17.470981425726] , [ 1232686800000 , 17.530990113867] , [ 1232946000000 , 17.842813972083] , [ 1233032400000 , 18.140434304466] , [ 1233118800000 , 17.6693856356] , [ 1233205200000 , 16.978819163037] , [ 1233291600000 , 17.532772949018] , [ 1233550800000 , 17.263575771949] , [ 1233637200000 , 16.580068629166] , [ 1233723600000 , 14.824065894741] , [ 1233810000000 , 15.135730767999] , [ 1233896400000 , 15.1384624545] , [ 1234155600000 , 17.088024665479] , [ 1234242000000 , 17.004449102957] , [ 1234328400000 , 16.946486288084] , [ 1234414800000 , 17.207129217923] , [ 1234501200000 , 17.274219535868] , [ 1234846800000 , 17.165749457138] , [ 1234933200000 , 16.872328566539] , [ 1235019600000 , 17.271462712538] , [ 1235106000000 , 17.63773653607] , [ 1235365200000 , 16.923145038331] , [ 1235451600000 , 16.923103108536] , [ 1235538000000 , 18.565904750143] , [ 1235624400000 , 18.144649510144] , [ 1235710800000 , 18.561255237134] , [ 1235970000000 , 17.745719395256] , [ 1236056400000 , 17.806801922109] , [ 1236142800000 , 18.150413031812] , [ 1236229200000 , 17.309776676803] , [ 1236315600000 , 17.855132450329] , [ 1236571200000 , 17.358212313334] , [ 1236657600000 , 17.878738090715] , [ 1236744000000 , 17.867433060928] , [ 1236830400000 , 15.645269170248] , [ 1236916800000 , 15.665096191174] , [ 1237176000000 , 15.831837932892] , [ 1237262400000 , 16.556483011821] , [ 1237348800000 , 17.034555975109] , [ 1237435200000 , 15.577521066508] , [ 1237521600000 , 16.597810302851] , [ 1237780800000 , 14.537729561315] , [ 1237867200000 , 14.228041763981] , [ 1237953600000 , 14.626530704835] , [ 1238040000000 , 14.744482313161] , [ 1238126400000 , 14.339965189742] , [ 1238385600000 , 14.241431249006] , [ 1238472000000 , 20.3493662279] , [ 1238558400000 , 19.793441795222] , [ 1238644800000 , 20.579669014612] , [ 1238731200000 , 20.717037537858] , [ 1238990400000 , 20.747637125444] , [ 1239076800000 , 19.872977562246] , [ 1239163200000 , 20.658591597104] , [ 1239249600000 , 21.510069683447] , [ 1239595200000 , 21.303103619777] , [ 1239681600000 , 21.18992562077] , [ 1239768000000 , 19.883709018742] , [ 1239854400000 , 20.189045322046] , [ 1239940800000 , 20.422161239133] , [ 1240200000000 , 19.657962946924] , [ 1240286400000 , 20.918018516475] , [ 1240372800000 , 20.164627878394] , [ 1240459200000 , 21.389490434103] , [ 1240545600000 , 21.55928084029] , [ 1240804800000 , 19.93513983724] , [ 1240891200000 , 20.307326155158] , [ 1240977600000 , 20.076615200252] , [ 1241064000000 , 20.377980619966] , [ 1241150400000 , 21.502114573189] , [ 1241409600000 , 21.333842090053] , [ 1241496000000 , 21.466419194711] , [ 1241582400000 , 21.444140212785] , [ 1241668800000 , 20.650771655377] , [ 1241755200000 , 21.484763215059] , [ 1242014400000 , 21.42896252995] , [ 1242100800000 , 21.124554107238] , [ 1242187200000 , 21.597270919957] , [ 1242273600000 , 20.434117990092] , [ 1242360000000 , 20.72570990085] , [ 1242619200000 , 20.345621395289] , [ 1242705600000 , 20.705330714189] , [ 1242792000000 , 21.608527649829] , [ 1242878400000 , 20.485051690282] , [ 1242964800000 , 21.949939406529] , [ 1243310400000 , 22.574411243952] , [ 1243396800000 , 22.096216601328] , [ 1243483200000 , 22.226997007397] , [ 1243569600000 , 21.978775300645] , [ 1243828800000 , 22.759639639262] , [ 1243915200000 , 21.420671892933] , [ 1244001600000 , 21.470255024637] , [ 1244088000000 , 20.995928687618] , [ 1244174400000 , 21.522496537464] , [ 1244433600000 , 21.315298288502] , [ 1244520000000 , 21.964521450824] , [ 1244606400000 , 21.624039736813] , [ 1244692800000 , 21.401890788502] , [ 1244779200000 , 21.781807814682] , [ 1245038400000 , 21.431222616202] , [ 1245124800000 , 21.29968235956] , [ 1245211200000 , 21.180995555789] , [ 1245297600000 , 21.464139097757] , [ 1245384000000 , 21.038392851134] , [ 1245643200000 , 22.545436575189] , [ 1245729600000 , 22.074728919392] , [ 1245816000000 , 21.847986572177] , [ 1245902400000 , 21.644696203957] , [ 1245988800000 , 21.319344762663] , [ 1246248000000 , 21.474322677353] , [ 1246334400000 , 17.041786253046] , [ 1246420800000 , 16.745806924693] , [ 1246507200000 , 18.065315915016] , [ 1246852800000 , 16.067759313297] , [ 1246939200000 , 17.149399218398] , [ 1247025600000 , 17.230742402014] , [ 1247112000000 , 18.125833913957] , [ 1247198400000 , 17.203651280031] , [ 1247457600000 , 16.123584218948] , [ 1247544000000 , 18.783164750606] , [ 1247630400000 , 17.202273072063] , [ 1247716800000 , 15.628613042405] , [ 1247803200000 , 16.88693478902] , [ 1248062400000 , 16.087345982337] , [ 1248148800000 , 16.145353701807] , [ 1248235200000 , 16.826728344118] , [ 1248321600000 , 18.341761916181] , [ 1248408000000 , 18.057748750692] , [ 1248667200000 , 18.043846489699] , [ 1248753600000 , 18.194705512455] , [ 1248840000000 , 18.316101838803] , [ 1248926400000 , 19.492179039562] , [ 1249012800000 , 19.866092444726] , [ 1249272000000 , 19.5863897446] , [ 1249358400000 , 17.165108148813] , [ 1249444800000 , 16.965672370683] , [ 1249531200000 , 16.54876613592] , [ 1249617600000 , 18.099820712] , [ 1249876800000 , 17.302064800404] , [ 1249963200000 , 17.902140217521] , [ 1250049600000 , 18.027707162727] , [ 1250136000000 , 18.26385824955] , [ 1250222400000 , 17.296777192488] , [ 1250481600000 , 17.035496584359] , [ 1250568000000 , 17.319342619439] , [ 1250654400000 , 17.250945615521] , [ 1250740800000 , 17.360261177385] , [ 1250827200000 , 18.066116382468] , [ 1251086400000 , 17.308982678178] , [ 1251172800000 , 18.264915310522] , [ 1251259200000 , 18.061789277248] , [ 1251345600000 , 18.079065352463] , [ 1251432000000 , 18.565396558372] , [ 1251691200000 , 18.414552663246] , [ 1251777600000 , 17.459096724517] , [ 1251864000000 , 17.359278030104] , [ 1251950400000 , 18.477365167509] , [ 1252036800000 , 18.026975250015] , [ 1252382400000 , 17.957225302001] , [ 1252468800000 , 17.025190338259] , [ 1252555200000 , 18.04110025032] , [ 1252641600000 , 17.131512578138] , [ 1252900800000 , 19.163439930171] , [ 1252987200000 , 18.87995875185] , [ 1253073600000 , 18.893396512386] , [ 1253160000000 , 18.672376942936] , [ 1253246400000 , 16.685220454507] , [ 1253505600000 , 19.236642213738] , [ 1253592000000 , 19.609590841783] , [ 1253678400000 , 18.519089636404] , [ 1253764800000 , 18.805407620157] , [ 1253851200000 , 18.654192599505] , [ 1254110400000 , 19.024313229939] , [ 1254196800000 , 18.619862176913] , [ 1254283200000 , 20.236423704672] , [ 1254369600000 , 19.792619471893] , [ 1254456000000 , 19.66681808602] , [ 1254715200000 , 19.771041284539] , [ 1254801600000 , 18.389838011525] , [ 1254888000000 , 19.896024560924] , [ 1254974400000 , 20.467034445224] , [ 1255060800000 , 18.726208287924] , [ 1255320000000 , 19.084339434257] , [ 1255406400000 , 18.887815021506] , [ 1255492800000 , 18.784938982708] , [ 1255579200000 , 18.88089123485] , [ 1255665600000 , 18.819379905569] , [ 1255924800000 , 18.842718739355] , [ 1256011200000 , 20.618070009916] , [ 1256097600000 , 20.261192428138] , [ 1256184000000 , 20.540776234198] , [ 1256270400000 , 20.774727035528] , [ 1256529600000 , 20.866277864184] , [ 1256616000000 , 19.508262671785] , [ 1256702400000 , 19.691390854526] , [ 1256788800000 , 21.354586644388] , [ 1256875200000 , 20.511734917078] , [ 1257138000000 , 22.74043800343] , [ 1257224400000 , 23.297820087267] , [ 1257310800000 , 22.911377932421] , [ 1257397200000 , 23.092110039866] , [ 1257483600000 , 23.108860374463] , [ 1257742800000 , 21.540893186331] , [ 1257829200000 , 19.41338156802] , [ 1257915600000 , 21.538761570546] , [ 1258002000000 , 22.693144949647] , [ 1258088400000 , 19.007421987539] , [ 1258347600000 , 18.736346280782] , [ 1258434000000 , 18.979915869967] , [ 1258520400000 , 19.055883282436] , [ 1258606800000 , 19.302010218192] , [ 1258693200000 , 19.050090950757] , [ 1258952400000 , 18.877431926735] , [ 1259038800000 , 19.21397264477] , [ 1259125200000 , 18.885131361931] , [ 1259298000000 , 18.703192042869] , [ 1259557200000 , 19.106579354373] , [ 1259643600000 , 19.835588926339] , [ 1259730000000 , 19.725618708704] , [ 1259816400000 , 19.995811888843] , [ 1259902800000 , 19.49130169594] , [ 1260162000000 , 19.615487784729] , [ 1260248400000 , 19.690721644106] , [ 1260334800000 , 19.730043929742] , [ 1260421200000 , 19.962862790794] , [ 1260507600000 , 19.816320827951] , [ 1260766800000 , 19.947336537979] , [ 1260853200000 , 20.718092640299] , [ 1260939600000 , 20.4230538471] , [ 1261026000000 , 20.876969742327] , [ 1261112400000 , 20.561033236054] , [ 1261371600000 , 20.712079417203] , [ 1261458000000 , 20.454217776074] , [ 1261544400000 , 20.206792489051] , [ 1261630800000 , 19.938858516286] , [ 1261976400000 , 20.97228313499] , [ 1262062800000 , 20.073395778853] , [ 1262149200000 , 19.879278038636] , [ 1262235600000 , 31.166099502174] , [ 1262581200000 , 31.842244882842] , [ 1262667600000 , 30.435052761219] , [ 1262754000000 , 30.924329808463] , [ 1262840400000 , 31.259623681662] , [ 1262926800000 , 31.238113840482] , [ 1263186000000 , 31.082835887693] , [ 1263272400000 , 31.214767193505] , [ 1263358800000 , 31.055916746916] , [ 1263445200000 , 30.492617851659] , [ 1263531600000 , 30.809976435255] , [ 1263877200000 , 30.480065328111] , [ 1263963600000 , 30.891257006458] , [ 1264050000000 , 30.633446505165] , [ 1264136400000 , 29.64466987287] , [ 1264395600000 , 30.25761192383] , [ 1264482000000 , 29.922735930894] , [ 1264568400000 , 26.670656014875] , [ 1264654800000 , 31.519098063889] , [ 1264741200000 , 30.265672185038] , [ 1265000400000 , 31.051470338469] , [ 1265086800000 , 31.075278999204] , [ 1265173200000 , 31.328156094438] , [ 1265259600000 , 31.883533196473] , [ 1265346000000 , 31.753621185353] , [ 1265605200000 , 32.483443072721] , [ 1265691600000 , 30.887333018932] , [ 1265778000000 , 31.088478494196] , [ 1265864400000 , 31.171513578005] , [ 1265950800000 , 30.172338971532] , [ 1266296400000 , 31.631321202782] , [ 1266382800000 , 31.773284974164] , [ 1266469200000 , 32.128798050889] , [ 1266555600000 , 31.506000905348] , [ 1266814800000 , 32.543991028111] , [ 1266901200000 , 31.1510270135] , [ 1266987600000 , 31.462834206058] , [ 1267074000000 , 31.805645108837] , [ 1267160400000 , 32.565012468383] , [ 1267419600000 , 30.954586361769] , [ 1267506000000 , 30.960025145221] , [ 1267592400000 , 31.324682916881] , [ 1267678800000 , 31.804674091341] , [ 1267765200000 , 31.064445954753] , [ 1268024400000 , 30.692644563767] , [ 1268110800000 , 31.441544604149] , [ 1268197200000 , 31.372632236951] , [ 1268283600000 , 31.743207826783] , [ 1268370000000 , 31.157631103244] , [ 1268625600000 , 29.500172698299] , [ 1268712000000 , 25.856476032214] , [ 1268798400000 , 29.557877270047] , [ 1268884800000 , 25.160796729901] , [ 1268971200000 , 28.978249978658] , [ 1269230400000 , 25.288683134864] , [ 1269316800000 , 28.972614631218] , [ 1269403200000 , 29.062507286319] , [ 1269489600000 , 28.534634098897] , [ 1269576000000 , 28.170514954521] , [ 1269835200000 , 27.610926345422] , [ 1269921600000 , 28.561743640538] , [ 1270008000000 , 25.72085309218] , [ 1270094400000 , 24.143100568503] , [ 1270440000000 , 24.712126890327] , [ 1270526400000 , 24.937754133729] , [ 1270612800000 , 22.534582804873] , [ 1270699200000 , 26.60835600548] , [ 1270785600000 , 26.974488301938] , [ 1271044800000 , 24.949768369502] , [ 1271131200000 , 21.787557680229] , [ 1271217600000 , 23.156072406101] , [ 1271304000000 , 21.624412713133] , [ 1271390400000 , 20.856993995664] , [ 1271649600000 , 21.082299684764] , [ 1271736000000 , 21.394429762866] , [ 1271822400000 , 21.397625971833] , [ 1271908800000 , 18.470078083536] , [ 1271995200000 , 21.161824047677] , [ 1272254400000 , 21.788830070724] , [ 1272340800000 , 20.882644144703] , [ 1272427200000 , 20.657833498942] , [ 1272513600000 , 20.863389166903] , [ 1272600000000 , 23.835996457616] , [ 1272859200000 , 18.961702146386] , [ 1272945600000 , 22.197555756943] , [ 1273032000000 , 22.10872658541] , [ 1273118400000 , 24.336182246707] , [ 1273204800000 , 23.498064045962] , [ 1273464000000 , 19.533352258036] , [ 1273550400000 , 19.780621438586] , [ 1273636800000 , 18.043407981034] , [ 1273723200000 , 19.055325187108] , [ 1273809600000 , 20.895602982733] , [ 1274068800000 , 20.333517340938] , [ 1274155200000 , 20.094180875213] , [ 1274241600000 , 21.259520019855] , [ 1274328000000 , 23.796797254218] , [ 1274414400000 , 21.513320200099] , [ 1274673600000 , 23.517851530902] , [ 1274760000000 , 23.315153874015] , [ 1274846400000 , 23.366767890574] , [ 1274932800000 , 20.865113389037] , [ 1275019200000 , 21.024951937692] , [ 1275364800000 , 22.063226474144] , [ 1275451200000 , 22.622705338868] , [ 1275537600000 , 21.634282593345] , [ 1275624000000 , 21.771966234289] , [ 1275883200000 , 23.60652423091] , [ 1275969600000 , 23.613567386722] , [ 1276056000000 , 21.057915021657] , [ 1276142400000 , 21.99548478497] , [ 1276228800000 , 21.873527280063] , [ 1276488000000 , 21.006473672252] , [ 1276574400000 , 22.001693162211] , [ 1276660800000 , 22.106386750625] , [ 1276747200000 , 21.771228343302] , [ 1276833600000 , 21.267255977756] , [ 1277092800000 , 21.053210842176] , [ 1277179200000 , 21.343795689407] , [ 1277265600000 , 21.712872300435] , [ 1277352000000 , 21.369109965017] , [ 1277438400000 , 21.035438945093] , [ 1277697600000 , 21.525234675512] , [ 1277784000000 , 21.86404338499] , [ 1277870400000 , 27.66271259496] , [ 1277956800000 , 31.201029468826] , [ 1278043200000 , 30.369191336636] , [ 1278388800000 , 31.18896422942] , [ 1278475200000 , 31.114141889473] , [ 1278561600000 , 31.157290338903] , [ 1278648000000 , 30.92279791828] , [ 1278907200000 , 31.163937573213] , [ 1278993600000 , 31.406716077478] , [ 1279080000000 , 31.341336138768] , [ 1279166400000 , 30.097215729921] , [ 1279252800000 , 30.074765523901] , [ 1279512000000 , 30.757069606348] , [ 1279598400000 , 30.804183936829] , [ 1279684800000 , 31.813228253647] , [ 1279771200000 , 31.809354941375] , [ 1279857600000 , 31.85753806329] , [ 1280116800000 , 31.722866162199] , [ 1280203200000 , 30.741045906359] , [ 1280289600000 , 30.23563925536] , [ 1280376000000 , 28.521418206154] , [ 1280462400000 , 27.289590102591] , [ 1280721600000 , 27.755220441481] , [ 1280808000000 , 27.565942405359] , [ 1280894400000 , 26.311653811793] , [ 1280980800000 , 27.026417458782] , [ 1281067200000 , 27.994819078039] , [ 1281326400000 , 28.227948461494] , [ 1281412800000 , 27.493631089315] , [ 1281499200000 , 31.414782128485] , [ 1281585600000 , 31.399010221155] , [ 1281672000000 , 31.175796423293] , [ 1281931200000 , 30.852534293648] , [ 1282017600000 , 30.672151168827] , [ 1282104000000 , 28.350816045175] , [ 1282190400000 , 28.027792501971] , [ 1282276800000 , 26.928747617346] , [ 1282536000000 , 27.81918002094] , [ 1282622400000 , 27.479582943727] , [ 1282708800000 , 27.401896796598] , [ 1282795200000 , 25.772234596984] , [ 1282881600000 , 27.598614424648] , [ 1283140800000 , 26.550917072205] , [ 1283227200000 , 24.610446801647] , [ 1283313600000 , 28.496548160095] , [ 1283400000000 , 28.280997191492] , [ 1283486400000 , 28.391846047181] , [ 1283832000000 , 28.270233123756] , [ 1283918400000 , 29.30638346881] , [ 1284004800000 , 29.587489278456] , [ 1284091200000 , 30.021254014722] , [ 1284350400000 , 26.999956900205] , [ 1284436800000 , 26.68585346975] , [ 1284523200000 , 27.457958398696] , [ 1284609600000 , 29.945651999548] , [ 1284696000000 , 28.780050148183] , [ 1284955200000 , 26.504410525212] , [ 1285041600000 , 26.467882875554] , [ 1285128000000 , 29.572295475147] , [ 1285214400000 , 29.894729254835] , [ 1285300800000 , 25.192174183101] , [ 1285560000000 , 29.358918928152] , [ 1285646400000 , 26.81887121244] , [ 1285732800000 , 26.954758424088] , [ 1285819200000 , 26.150733527484] , [ 1285905600000 , 26.65569226731] , [ 1286164800000 , 29.948642309605] , [ 1286251200000 , 26.294147683528] , [ 1286337600000 , 26.374682869631] , [ 1286424000000 , 26.057344371343] , [ 1286510400000 , 26.544970326787] , [ 1286769600000 , 25.299375717171] , [ 1286856000000 , 28.078879867239] , [ 1286942400000 , 25.955451031994] , [ 1287028800000 , 27.189249800684] , [ 1287115200000 , 26.796275282338] , [ 1287374400000 , 25.217617743921] , [ 1287460800000 , 29.238805363492] , [ 1287547200000 , 28.946072278759] , [ 1287633600000 , 28.008506235957] , [ 1287720000000 , 27.305441046523] , [ 1287979200000 , 28.335679740985] , [ 1288065600000 , 28.220333339395] , [ 1288152000000 , 28.506512667082] , [ 1288238400000 , 27.773348759251] , [ 1288324800000 , 25.940932725812] , [ 1288584000000 , 25.59791953974] , [ 1288670400000 , 25.681175702664] , [ 1288756800000 , 25.646894232049] , [ 1288843200000 , 24.967778139194] , [ 1288929600000 , 24.891827913103] , [ 1289192400000 , 25.301225710323] , [ 1289278800000 , 25.304241006654] , [ 1289365200000 , 23.465443455061] , [ 1289451600000 , 23.666166952522] , [ 1289538000000 , 24.30829532118] , [ 1289797200000 , 25.98815437182] , [ 1289883600000 , 24.253067150498] , [ 1289970000000 , 24.589841126735] , [ 1290056400000 , 24.478150838241] , [ 1290142800000 , 24.264923577722] , [ 1290402000000 , 24.461576297796] , [ 1290488400000 , 26.687181172881] , [ 1290574800000 , 24.218795290926] , [ 1290747600000 , 23.987641827989] , [ 1291006800000 , 24.409569574947] , [ 1291093200000 , 24.327948314822] , [ 1291179600000 , 24.725033054579] , [ 1291266000000 , 24.262134759276] , [ 1291352400000 , 22.568806637867] , [ 1291611600000 , 22.967575266776] , [ 1291698000000 , 22.550488639479] , [ 1291784400000 , 23.67497086544] , [ 1291870800000 , 24.137172801979] , [ 1291957200000 , 22.981580578993] , [ 1292216400000 , 22.558038285034] , [ 1292302800000 , 22.551465967923] , [ 1292389200000 , 22.594528497073] , [ 1292475600000 , 23.025413377409] , [ 1292562000000 , 22.556822593744] , [ 1292821200000 , 21.029906943726] , [ 1292907600000 , 21.126454422318] , [ 1292994000000 , 22.737113958843] , [ 1293080400000 , 22.615473658196] , [ 1293426000000 , 22.39973019936] , [ 1293512400000 , 22.94150655225] , [ 1293598800000 , 22.643969299434] , [ 1293685200000 , 22.428258726111] , [ 1293771600000 , 21.935794150613] , [ 1294030800000 , 22.48476403799] , [ 1294117200000 , 22.422814900946] , [ 1294203600000 , 21.844187970021] , [ 1294290000000 , 24.268661124172] , [ 1294376400000 , 26.145003041675] , [ 1294635600000 , 24.091635107832] , [ 1294722000000 , 23.448108216687] , [ 1294808400000 , 24.199622375256] , [ 1294894800000 , 24.421278289587] , [ 1294981200000 , 21.259612727431] , [ 1295326800000 , 18.228849328362] , [ 1295413200000 , 22.324800869748] , [ 1295499600000 , 20.259979186891] , [ 1295586000000 , 21.878117916651] , [ 1295845200000 , 21.726336390467] , [ 1295931600000 , 23.453803728285] , [ 1296018000000 , 19.007222901012] , [ 1296104400000 , 18.958582349255] , [ 1296190800000 , 21.347589089244] , [ 1296450000000 , 21.082746351041] , [ 1296536400000 , 23.095455619962] , [ 1296622800000 , 22.412037821112] , [ 1296709200000 , 22.729984157992] , [ 1296795600000 , 22.780949220135] , [ 1297054800000 , 22.129547081673] , [ 1297141200000 , 20.7926222999] , [ 1297227600000 , 19.826288095563] , [ 1297314000000 , 19.719960604559] , [ 1297400400000 , 19.270517050316] , [ 1297659600000 , 19.773679761293] , [ 1297746000000 , 19.780429945671] , [ 1297832400000 , 18.468269341813] , [ 1297918800000 , 18.271614490515] , [ 1298005200000 , 18.531394945136] , [ 1298350800000 , 19.66539104513] , [ 1298437200000 , 21.973220001027] , [ 1298523600000 , 22.820822913293] , [ 1298610000000 , 20.187580954545] , [ 1298869200000 , 19.590340164452] , [ 1298955600000 , 22.891819768291] , [ 1299042000000 , 19.841880679018] , [ 1299128400000 , 20.330719272606] , [ 1299214800000 , 22.017232223715] , [ 1299474000000 , 22.170214817411] , [ 1299560400000 , 21.753196882447] , [ 1299646800000 , 19.708942145181] , [ 1299733200000 , 20.984970114575] , [ 1299819600000 , 21.154239281085] , [ 1300075200000 , 21.572692041089] , [ 1300161600000 , 23.211076234884] , [ 1300248000000 , 21.332720936513] , [ 1300334400000 , 21.083386364962] , [ 1300420800000 , 21.563630887333] , [ 1300680000000 , 20.078376027162] , [ 1300766400000 , 21.936057212852] , [ 1300852800000 , 21.283229802872] , [ 1300939200000 , 21.59996347062] , [ 1301025600000 , 19.981377947696] , [ 1301284800000 , 21.327816244231] , [ 1301371200000 , 20.070923644002] , [ 1301457600000 , 20.223448675649] , [ 1301544000000 , 20.378316523796] , [ 1301630400000 , 19.60384061788] , [ 1301889600000 , 20.082347129411] , [ 1301976000000 , 20.766827561109] , [ 1302062400000 , 20.56998967709] , [ 1302148800000 , 20.835522832453] , [ 1302235200000 , 20.621041131763] , [ 1302494400000 , 20.862612863662] , [ 1302580800000 , 20.949384809823] , [ 1302667200000 , 20.259674901114] , [ 1302753600000 , 20.298065987261] , [ 1302840000000 , 19.744295596235] , [ 1303099200000 , 19.834175026131] , [ 1303185600000 , 19.80597088809] , [ 1303272000000 , 19.639597995502] , [ 1303358400000 , 19.889573610719] , [ 1303704000000 , 19.376579694515] , [ 1303790400000 , 19.223546183384] , [ 1303876800000 , 18.085651157812] , [ 1303963200000 , 18.330566101579] , [ 1304049600000 , 18.533381907866] , [ 1304308800000 , 19.062961669981] , [ 1304395200000 , 22.369954028086] , [ 1304481600000 , 22.78948654317] , [ 1304568000000 , 22.202870121048] , [ 1304654400000 , 22.908323144891] , [ 1304913600000 , 23.414786154606] , [ 1305000000000 , 24.271289797312] , [ 1305086400000 , 23.783550290831] , [ 1305172800000 , 24.012484519869] , [ 1305259200000 , 24.36996382653] , [ 1305518400000 , 23.503956869244] , [ 1305604800000 , 23.870292616412] , [ 1305691200000 , 23.680020772089] , [ 1305777600000 , 21.749194229278] , [ 1305864000000 , 23.523654852151] , [ 1306123200000 , 25.057418219823] , [ 1306209600000 , 25.095989717275] , [ 1306296000000 , 25.246462677114] , [ 1306382400000 , 25.329279050008] , [ 1306468800000 , 23.731942569802] , [ 1306814400000 , 22.85305404152] , [ 1306900800000 , 22.076875455589] , [ 1306987200000 , 21.524198070308] , [ 1307073600000 , 23.972185571268] , [ 1307332800000 , 24.19768306555] , [ 1307419200000 , 24.494354673002] , [ 1307505600000 , 23.50566827752] , [ 1307592000000 , 23.524668869758] , [ 1307678400000 , 22.726351077677] , [ 1307937600000 , 22.476750334215] , [ 1308024000000 , 22.227199331415] , [ 1308110400000 , 22.087275632346] , [ 1308196800000 , 22.123918718961] , [ 1308283200000 , 21.816512853684] , [ 1308542400000 , 21.612108937632] , [ 1308628800000 , 21.491447183877] , [ 1308715200000 , 22.511746949304] , [ 1308801600000 , 21.941593903184] , [ 1308888000000 , 21.747502094317] , [ 1309147200000 , 22.815509942054] , [ 1309233600000 , 22.348003742121] , [ 1309320000000 , 22.511894720579] , [ 1309406400000 , 22.567463786775] , [ 1309492800000 , 21.448413915891] , [ 1309838400000 , 21.233016489832] , [ 1309924800000 , 23.469822957393] , [ 1310011200000 , 20.556958824859] , [ 1310097600000 , 20.368289351917] , [ 1310356800000 , 22.364638915875] , [ 1310443200000 , 22.429253041611] , [ 1310529600000 , 23.140402366033] , [ 1310616000000 , 22.786575841648] , [ 1310702400000 , 22.6535371556] , [ 1310961600000 , 22.222070370013] , [ 1311048000000 , 22.634941100329] , [ 1311134400000 , 22.577026038515] , [ 1311220800000 , 22.743173047738] , [ 1311307200000 , 19.955845367921] , [ 1311566400000 , 19.402607778325] , [ 1311652800000 , 19.253926915294] , [ 1311739200000 , 22.440497288414] , [ 1311825600000 , 20.127325131893] , [ 1311912000000 , 20.143632322935] , [ 1314763200000 , 22.312375995313] , [ 1314849600000 , 21.29036308519] , [ 1314936000000 , 21.845411255407] , [ 1315281600000 , 20.494384290589] , [ 1315368000000 , 21.001264659739] , [ 1315454400000 , 21.568705339832] , [ 1315540800000 , 21.506987601522] , [ 1315800000000 , 21.177312660135] , [ 1315886400000 , 21.868862897889] , [ 1315972800000 , 21.071764151565] , [ 1316059200000 , 21.490618475219] , [ 1316145600000 , 22.060908679368] , [ 1316404800000 , 21.362380058669] , [ 1316491200000 , 19.501621337539] , [ 1316577600000 , 19.002759253579] , [ 1316664000000 , 18.078449446615] , [ 1316750400000 , 18.949248830223] , [ 1317009600000 , 20.156156797533] , [ 1317096000000 , 20.756701014073] , [ 1317182400000 , 20.731186204217] , [ 1317268800000 , 18.771142897018] , [ 1317355200000 , 16.191064318512] , [ 1317614400000 , 15.206557534729] , [ 1317700800000 , 15.175135526032] , [ 1317787200000 , 15.866396789013] , [ 1317873600000 , 17.650368230794] , [ 1317960000000 , 17.240218968573] , [ 1318219200000 , 16.400550273503] , [ 1318305600000 , 16.3845361397] , [ 1318392000000 , 16.796836976786] , [ 1318478400000 , 16.938277456269] , [ 1318564800000 , 17.081187022189] , [ 1318824000000 , 16.451626441279] , [ 1318910400000 , 17.079582458865] , [ 1318996800000 , 17.066407588654] , [ 1319083200000 , 16.977407624556] , [ 1319169600000 , 17.446016192139] , [ 1319428800000 , 17.546943155193] , [ 1319515200000 , 17.094842621633] , [ 1319601600000 , 17.197391585973] , [ 1319688000000 , 17.670124220099] , [ 1319774400000 , 17.890559199263] , [ 1320033600000 , 17.504350123505] , [ 1320120000000 , 17.969069937755] , [ 1320206400000 , 18.369831017329] , [ 1320292800000 , 18.63351356547] , [ 1320379200000 , 18.943165342373] , [ 1320642000000 , 18.55841847658] , [ 1320728400000 , 18.333742741079] , [ 1320814800000 , 17.804195816594] , [ 1320901200000 , 18.303336555725] , [ 1320987600000 , 18.419835990016] , [ 1321246800000 , 18.564494408352] , [ 1321333200000 , 18.706475912297] , [ 1321419600000 , 18.287978832777] , [ 1321506000000 , 16.806014453248] , [ 1321592400000 , 16.573853512606] , [ 1321851600000 , 16.278677060256] , [ 1321938000000 , 15.852567514369] , [ 1322024400000 , 15.792459271772] , [ 1322197200000 , 15.771749097141] , [ 1322456400000 , 16.463980243989] , [ 1322542800000 , 17.849970037078] , [ 1322629200000 , 19.086207895423] , [ 1322715600000 , 17.984373349817] , [ 1322802000000 , 17.817600309678] , [ 1323061200000 , 18.183904534131] , [ 1323147600000 , 18.278547637501] , [ 1323234000000 , 18.098597632969] , [ 1323320400000 , 17.950155177891] , [ 1323406800000 , 17.992701543141] , [ 1323666000000 , 17.707108742335] , [ 1323752400000 , 17.106169060494] , [ 1323838800000 , 16.879044143327] , [ 1323925200000 , 15.703650051148] , [ 1324011600000 , 17.03786588506] , [ 1324270800000 , 15.730453362729] , [ 1324357200000 , 17.178449451571] , [ 1324443600000 , 16.128601580221] , [ 1324530000000 , 16.444514501668] , [ 1324616400000 , 16.367515592583] , [ 1324962000000 , 16.680559361738] , [ 1325048400000 , 16.182230963286] , [ 1325134800000 , 16.252245100018] , [ 1325221200000 , 16.848301869417] , [ 1325566800000 , 20.240025778105] , [ 1325653200000 , 20.131966646648] , [ 1325739600000 , 20.718565505576] , [ 1325826000000 , 20.852860702513] , [ 1326085200000 , 20.839150525655] , [ 1326171600000 , 20.832350512944] , [ 1326258000000 , 22.184151627169] , [ 1326344400000 , 22.440196121423] , [ 1326430800000 , 22.111700718881] , [ 1326776400000 , 22.242221555829] , [ 1326862800000 , 22.359201623444] , [ 1326949200000 , 22.412837491698] , [ 1327035600000 , 22.633953919333] , [ 1327294800000 , 22.832695812645] , [ 1327381200000 , 22.819383159278] , [ 1327467600000 , 22.121735655105] , [ 1327554000000 , 22.792767113343] , [ 1327640400000 , 23.429926311061] , [ 1327899600000 , 23.164696661813] , [ 1327986000000 , 22.446504371253] , [ 1328072400000 , 23.177192530626] , [ 1328158800000 , 20.802030833161] , [ 1328245200000 , 21.206277566764] , [ 1328504400000 , 20.803932254935] , [ 1328590800000 , 20.905318438671] , [ 1328677200000 , 21.118875695012] , [ 1328763600000 , 20.060946674808] , [ 1328850000000 , 19.976531529243] , [ 1329109200000 , 22.297368165622] , [ 1329195600000 , 22.060842770554] , [ 1329282000000 , 19.956934384488] , [ 1329368400000 , 19.640001354968] , [ 1329454800000 , 19.475145483016] , [ 1329800400000 , 22.381415384231] , [ 1329886800000 , 22.373447173711] , [ 1329973200000 , 20.320552206406] , [ 1330059600000 , 22.254781193155] , [ 1330318800000 , 22.555960613111] , [ 1330405200000 , 22.346273919032] , [ 1330491600000 , 21.728534744001] , [ 1330578000000 , 21.381268866906] , [ 1330664400000 , 21.752676586327] , [ 1330923600000 , 21.304900254731] , [ 1331010000000 , 21.603935555692] , [ 1331096400000 , 20.75840695927] , [ 1331182800000 , 20.876297133647] , [ 1331269200000 , 21.109951987892] , [ 1331524800000 , 20.974819713599] , [ 1331611200000 , 21.650754195745] , [ 1331697600000 , 21.486986393481] , [ 1331784000000 , 21.731413795962] , [ 1331870400000 , 21.559861531547] , [ 1332129600000 , 20.957089690516] , [ 1332216000000 , 21.283167163079] , [ 1332302400000 , 21.338954084611] , [ 1332388800000 , 21.3444031056] , [ 1332475200000 , 21.617798529858] , [ 1332734400000 , 21.316809806518] , [ 1332820800000 , 21.589839281434] , [ 1332907200000 , 21.100908321146] , [ 1332993600000 , 21.393302540964] , [ 1333080000000 , 21.034057096975] , [ 1333339200000 , 22.778206720699] , [ 1333425600000 , 21.191337490764] , [ 1333512000000 , 21.494718264334] , [ 1333598400000 , 21.751260379606] , [ 1333944000000 , 21.771205695747] , [ 1334030400000 , 20.674327028188] , [ 1334116800000 , 20.793809068912] , [ 1334203200000 , 21.634928440489] , [ 1334289600000 , 21.465101613771] , [ 1334548800000 , 21.308985573517] , [ 1334635200000 , 21.983740906278] , [ 1334721600000 , 21.204851850294] , [ 1334808000000 , 20.878623851535] , [ 1334894400000 , 21.258053688953] , [ 1335153600000 , 20.958670391813] , [ 1335240000000 , 20.915942167619] , [ 1335326400000 , 21.234562948807] , [ 1335412800000 , 21.356401321339] , [ 1335499200000 , 21.367305836487] , [ 1335758400000 , 21.06181346601]]} , { "key" : "Small Cap (250MM-2B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 3.8620804466145] , [ 1028174400000 , 4.3176385462579] , [ 1028260800000 , 4.3013687899814] , [ 1028520000000 , 4.9992072271404] , [ 1028606400000 , 4.2567717722041] , [ 1028692800000 , 4.3194153642585] , [ 1028779200000 , 4.2625960229683] , [ 1028865600000 , 4.3244261502053] , [ 1029124800000 , 4.3304321263023] , [ 1029211200000 , 4.1517675844473] , [ 1029297600000 , 4.2252288599937] , [ 1029384000000 , 4.2277354138208] , [ 1029470400000 , 4.3550826538906] , [ 1029729600000 , 3.9397586220988] , [ 1029816000000 , 3.4169329063882] , [ 1029902400000 , 3.6875005171252] , [ 1029988800000 , 4.048880287207] , [ 1030075200000 , 3.6966752430108] , [ 1030334400000 , 3.7173634274879] , [ 1030420800000 , 4.0985697320555] , [ 1030507200000 , 3.9636839178967] , [ 1030593600000 , 3.6736655970805] , [ 1030680000000 , 4.3472441144356] , [ 1031025600000 , 3.9753952237385] , [ 1031112000000 , 4.042003278398] , [ 1031198400000 , 3.8537285299803] , [ 1031284800000 , 3.8813838230856] , [ 1031544000000 , 3.886769150701] , [ 1031630400000 , 3.946636853449] , [ 1031716800000 , 3.9653973783377] , [ 1031803200000 , 3.8576474336814] , [ 1031889600000 , 3.503583669769] , [ 1032148800000 , 3.3304129380009] , [ 1032235200000 , 3.2517840425404] , [ 1032321600000 , 3.7770281064242] , [ 1032408000000 , 3.6444796613163] , [ 1032494400000 , 4.0413161436998] , [ 1032753600000 , 4.0559814432677] , [ 1032840000000 , 4.159419008864] , [ 1032926400000 , 4.2969505530807] , [ 1033012800000 , 3.9536344013462] , [ 1033099200000 , 4.0329958851123] , [ 1033358400000 , 4.2042225513188] , [ 1033444800000 , 4.4029349272723] , [ 1033531200000 , 4.2688734913153] , [ 1033617600000 , 4.2393724624568] , [ 1033704000000 , 4.1467954465149] , [ 1033963200000 , 4.2285843239393] , [ 1034049600000 , 3.9801269716178] , [ 1034136000000 , 6.7502461367378] , [ 1034222400000 , 6.4239719546122] , [ 1034308800000 , 6.5755784647836] , [ 1034568000000 , 6.4600234054698] , [ 1034654400000 , 4.9077041342217] , [ 1034740800000 , 7.0194713263893] , [ 1034827200000 , 6.4543919846838] , [ 1034913600000 , 4.2701743643567] , [ 1035172800000 , 4.3368409963081] , [ 1035259200000 , 4.3296368544987] , [ 1035345600000 , 4.3167044883653] , [ 1035432000000 , 4.3024226581884] , [ 1035518400000 , 4.4778979611573] , [ 1035781200000 , 4.4390846060489] , [ 1035867600000 , 4.2524183988711] , [ 1035954000000 , 4.3126546455849] , [ 1036040400000 , 4.2858053159855] , [ 1036126800000 , 4.7515173925457] , [ 1036386000000 , 3.5555998429186] , [ 1036472400000 , 5.7654634512653] , [ 1036558800000 , 5.7255756620025] , [ 1036645200000 , 5.9746872504727] , [ 1036731600000 , 6.7032763577582] , [ 1036990800000 , 6.9283967898845] , [ 1037077200000 , 6.9267184132045] , [ 1037163600000 , 6.9490440785846] , [ 1037250000000 , 5.5289423498995] , [ 1037336400000 , 5.5439096533014] , [ 1037595600000 , 5.6607510916596] , [ 1037682000000 , 5.5708091639207] , [ 1037768400000 , 5.5947299232259] , [ 1037854800000 , 5.558087070657] , [ 1037941200000 , 5.6332497181246] , [ 1038200400000 , 5.7602562089301] , [ 1038286800000 , 5.6560592961571] , [ 1038373200000 , 5.7612278728759] , [ 1038546000000 , 3.6703847832416] , [ 1038805200000 , 5.8325229693334] , [ 1038891600000 , 5.506222051039] , [ 1038978000000 , 5.5739180445041] , [ 1039064400000 , 5.4927283974812] , [ 1039150800000 , 6.5665782959799] , [ 1039410000000 , 6.0670025991213] , [ 1039496400000 , 5.5479592919401] , [ 1039582800000 , 5.3983033339071] , [ 1039669200000 , 4.7367972355009] , [ 1039755600000 , 5.2877795417463] , [ 1040014800000 , 5.1451262856279] , [ 1040101200000 , 5.0295471424258] , [ 1040187600000 , 5.075571884014] , [ 1040274000000 , 5.2272436330748] , [ 1040360400000 , 5.6472310815817] , [ 1040619600000 , 5.2524528987366] , [ 1040706000000 , 5.2716790785115] , [ 1040878800000 , 5.1944294030096] , [ 1040965200000 , 5.813213477744] , [ 1041224400000 , 5.5328250389927] , [ 1041310800000 , 4.5976535990161] , [ 1041483600000 , 4.7510089011021] , [ 1041570000000 , 4.2695752124746] , [ 1041829200000 , 4.3046603378027] , [ 1041915600000 , 4.3964087087907] , [ 1042002000000 , 4.6964465006103] , [ 1042088400000 , 4.2183770748391] , [ 1042174800000 , 4.4348438232503] , [ 1042434000000 , 4.2803453692337] , [ 1042520400000 , 4.2920671874758] , [ 1042606800000 , 4.3645393578616] , [ 1042693200000 , 4.3127070019325] , [ 1042779600000 , 4.8440471863362] , [ 1043125200000 , 4.5413725030532] , [ 1043211600000 , 4.5262659222684] , [ 1043298000000 , 4.4474430068025] , [ 1043384400000 , 4.3524741832798] , [ 1043643600000 , 4.8466747335975] , [ 1043730000000 , 4.5932416285603] , [ 1043816400000 , 4.4695988446547] , [ 1043902800000 , 4.5530600392767] , [ 1043989200000 , 4.5177932953535] , [ 1044248400000 , 5.0059916347378] , [ 1044334800000 , 4.5164500117588] , [ 1044421200000 , 5.2874820145085] , [ 1044507600000 , 5.5426436844915] , [ 1044594000000 , 5.4932938658274] , [ 1044853200000 , 5.5423945802748] , [ 1044939600000 , 5.4101450573171] , [ 1045026000000 , 5.3087690884921] , [ 1045112400000 , 5.2880558456399] , [ 1045198800000 , 5.415722724421] , [ 1045544400000 , 4.9796472716613] , [ 1045630800000 , 5.3454582961108] , [ 1045717200000 , 5.307348397439] , [ 1045803600000 , 4.6831289181459] , [ 1046062800000 , 5.2367400263671] , [ 1046149200000 , 4.8317426862041] , [ 1046235600000 , 4.76122676879] , [ 1046322000000 , 4.7097821987599] , [ 1046408400000 , 4.7789711464909] , [ 1046667600000 , 4.6852034745146] , [ 1046754000000 , 4.5509207836993] , [ 1046840400000 , 5.0439314247003] , [ 1046926800000 , 4.9143831614728] , [ 1047013200000 , 4.3685655621745] , [ 1047272400000 , 4.884194720098] , [ 1047358800000 , 4.6984178208758] , [ 1047445200000 , 4.7806486265743] , [ 1047531600000 , 4.5015962809188] , [ 1047618000000 , 4.5387956234262] , [ 1047877200000 , 4.5307751600788] , [ 1047963600000 , 4.1149410094866] , [ 1048050000000 , 4.2149631589866] , [ 1048136400000 , 4.2097564889472] , [ 1048222800000 , 4.3788933698418] , [ 1048482000000 , 4.761270364544] , [ 1048568400000 , 4.7140550401528] , [ 1048654800000 , 4.5616983700234] , [ 1048741200000 , 4.564023981857] , [ 1048827600000 , 4.606219528503] , [ 1049086800000 , 5.4408913825225] , [ 1049173200000 , 5.5033561472653] , [ 1049259600000 , 5.2285135957919] , [ 1049346000000 , 5.7718095490645] , [ 1049432400000 , 5.7499966552938] , [ 1049688000000 , 5.8478661017785] , [ 1049774400000 , 5.9043047706447] , [ 1049860800000 , 5.7872986193248] , [ 1049947200000 , 5.8613489584169] , [ 1050033600000 , 6.0948261270436] , [ 1050292800000 , 6.0740464796495] , [ 1050379200000 , 6.1367845594565] , [ 1050465600000 , 5.9073058432377] , [ 1050552000000 , 5.9082215955743] , [ 1050897600000 , 5.9988182051613] , [ 1050984000000 , 3.9684729973834] , [ 1051070400000 , 4.0370328544847] , [ 1051156800000 , 5.5018299467167] , [ 1051243200000 , 5.6244660300099] , [ 1051502400000 , 3.9572529793979] , [ 1051588800000 , 4.0006857020832] , [ 1051675200000 , 4.0567930226932] , [ 1051761600000 , 3.900894588467] , [ 1051848000000 , 3.9150614570377] , [ 1052107200000 , 4.1300852174433] , [ 1052193600000 , 3.9920739498757] , [ 1052280000000 , 4.1020694295758] , [ 1052366400000 , 4.0156937473639] , [ 1052452800000 , 3.934814534074] , [ 1052712000000 , 4.018609992625] , [ 1052798400000 , 4.1506946404048] , [ 1052884800000 , 4.1993789123694] , [ 1052971200000 , 3.6937778411279] , [ 1053057600000 , 3.3155547642052] , [ 1053316800000 , 4.0696072870642] , [ 1053403200000 , 4.0910202611485] , [ 1053489600000 , 4.016355720699] , [ 1053576000000 , 4.0015329399337] , [ 1053662400000 , 4.0418469364687] , [ 1054008000000 , 3.7836336561428] , [ 1054094400000 , 3.7815960559094] , [ 1054180800000 , 3.8685130610845] , [ 1054267200000 , 2.8375964678971] , [ 1054526400000 , 3.0260170206941] , [ 1054612800000 , 3.8517760868521] , [ 1054699200000 , 4.0871889720479] , [ 1054785600000 , 3.1406171088481] , [ 1054872000000 , 4.1772702788735] , [ 1055131200000 , 4.0345728383825] , [ 1055217600000 , 4.0534566287035] , [ 1055304000000 , 3.3706921203709] , [ 1055390400000 , 3.472022034094] , [ 1055476800000 , 3.4525092749528] , [ 1055736000000 , 3.3534418931261] , [ 1055822400000 , 3.440373564283] , [ 1055908800000 , 3.4259275639372] , [ 1055995200000 , 3.3207687964276] , [ 1056081600000 , 3.3859717115628] , [ 1056340800000 , 3.2578786594837] , [ 1056427200000 , 3.3082214535467] , [ 1056513600000 , 3.2731689681795] , [ 1056600000000 , 3.325954221235] , [ 1056686400000 , 3.3226270589837] , [ 1056945600000 , 2.5708967342479] , [ 1057032000000 , 2.6164118611278] , [ 1057118400000 , 2.6920972001194] , [ 1057204800000 , 2.6458626837908] , [ 1057550400000 , 2.7034148470947] , [ 1057636800000 , 2.6997040482666] , [ 1057723200000 , 2.7140627555433] , [ 1057809600000 , 2.7614903874923] , [ 1057896000000 , 2.7576567615574] , [ 1058155200000 , 2.8105965829945] , [ 1058241600000 , 2.5528552750512] , [ 1058328000000 , 2.5026384478339] , [ 1058414400000 , 2.7008233949462] , [ 1058500800000 , 2.7703410547957] , [ 1058760000000 , 2.7175788890086] , [ 1058846400000 , 2.0185751224298] , [ 1058932800000 , 1.9724988489976] , [ 1059019200000 , 1.9577664980851] , [ 1059105600000 , 1.9200041827333] , [ 1059364800000 , 1.9935335111628] , [ 1059451200000 , 1.9491948446029] , [ 1059537600000 , 1.8943179030446] , [ 1059624000000 , 1.985909780469] , [ 1059710400000 , 1.9423587948316] , [ 1059969600000 , 1.9151728635918] , [ 1060056000000 , 2.7389993527887] , [ 1060142400000 , 2.6956984647066] , [ 1060228800000 , 2.6105098034892] , [ 1060315200000 , 2.6057163219235] , [ 1060574400000 , 2.5989871633281] , [ 1060660800000 , 2.6587323530382] , [ 1060747200000 , 2.6566910961028] , [ 1060833600000 , 2.554223770043] , [ 1060920000000 , 2.7015130041478] , [ 1061179200000 , 1.9442552327487] , [ 1061265600000 , 1.8890822131991] , [ 1061352000000 , 1.957779918149] , [ 1061438400000 , 1.8957815147709] , [ 1061524800000 , 1.8728337703864] , [ 1061784000000 , 1.9021460845255] , [ 1061870400000 , 1.8994290016279] , [ 1061956800000 , 2.0036671055018] , [ 1062043200000 , 1.3940226063746] , [ 1062129600000 , 1.3243621143698] , [ 1062475200000 , 1.3854722578043] , [ 1062561600000 , 1.3298180185616] , [ 1062648000000 , 1.3673894620209] , [ 1062734400000 , 1.3316049431981] , [ 1062993600000 , 1.340020412481] , [ 1063080000000 , 1.3026716314854] , [ 1063166400000 , 1.3207463795227] , [ 1063252800000 , 1.8628566804193] , [ 1063339200000 , 1.8482891853909] , [ 1063598400000 , 1.9045916584585] , [ 1063684800000 , 1.837742353553] , [ 1063771200000 , 1.9024754973246] , [ 1063857600000 , 1.8607688729118] , [ 1063944000000 , 1.3096795532289] , [ 1064203200000 , 1.8338364105511] , [ 1064289600000 , 1.8003208581704] , [ 1064376000000 , 1.811090963193] , [ 1064462400000 , 1.8002083517034] , [ 1064548800000 , 1.765936224515] , [ 1064808000000 , 1.7605645888026] , [ 1064894400000 , 2.3533837103512] , [ 1064980800000 , 2.5578066779139] , [ 1065067200000 , 2.6021325845301] , [ 1065153600000 , 2.610160353775] , [ 1065412800000 , 2.3995649422623] , [ 1065499200000 , 2.4188553889039] , [ 1065585600000 , 2.3601292493772] , [ 1065672000000 , 2.4142632443561] , [ 1065758400000 , 2.332472625984] , [ 1066017600000 , 2.3821342709168] , [ 1066104000000 , 2.3253429229386] , [ 1066190400000 , 2.3664716603706] , [ 1066276800000 , 2.4233217832875] , [ 1066363200000 , 2.3744114954904] , [ 1066622400000 , 2.3242267756738] , [ 1066708800000 , 2.3170454505916] , [ 1066795200000 , 2.3198028213604] , [ 1066881600000 , 2.3448199873629] , [ 1066968000000 , 2.2738078648518] , [ 1067230800000 , 2.2765201113944] , [ 1067317200000 , 2.3588346399806] , [ 1067403600000 , 2.3212752066114] , [ 1067490000000 , 2.3163255863937] , [ 1067576400000 , 2.3745825813123] , [ 1067835600000 , 2.3462733095574] , [ 1067922000000 , 2.2932927987058] , [ 1068008400000 , 2.3373215034755] , [ 1068094800000 , 2.2725306567513] , [ 1068181200000 , 2.3917906270981] , [ 1068440400000 , 2.2655553659808] , [ 1068526800000 , 2.310910959511] , [ 1068613200000 , 2.3195770502019] , [ 1068699600000 , 2.2912225722456] , [ 1068786000000 , 2.2569818877933] , [ 1069045200000 , 2.2289448833129] , [ 1069131600000 , 2.218422685586] , [ 1069218000000 , 2.2376872406885] , [ 1069304400000 , 2.2375961111559] , [ 1069390800000 , 2.2149950848478] , [ 1069650000000 , 2.2393607354044] , [ 1069736400000 , 2.2481596978119] , [ 1069822800000 , 1.7585060687227] , [ 1069995600000 , 1.7788982163799] , [ 1070254800000 , 1.9148614258469] , [ 1070341200000 , 1.8927511306448] , [ 1070427600000 , 1.8918271126637] , [ 1070514000000 , 1.9549925531458] , [ 1070600400000 , 1.8923430458209] , [ 1070859600000 , 1.9364165361772] , [ 1070946000000 , 1.4769360533289] , [ 1071032400000 , 1.4513767210474] , [ 1071118800000 , 1.4710731378087] , [ 1071205200000 , 1.4205989301242] , [ 1071464400000 , 1.4234994752185] , [ 1071550800000 , 1.8427770516821] , [ 1071637200000 , 1.8638708455538] , [ 1071723600000 , 1.9497158345991] , [ 1071810000000 , 1.9635521651203] , [ 1072069200000 , 1.8689155075034] , [ 1072155600000 , 1.9260144738829] , [ 1072242000000 , 1.8827565428604] , [ 1072414800000 , 1.9192658985892] , [ 1072674000000 , 1.8963393900065] , [ 1072760400000 , 1.8679186621707] , [ 1072846800000 , 2.5726272542883] , [ 1073019600000 , 2.6031822324428] , [ 1073278800000 , 2.6628120857886] , [ 1073365200000 , 2.6285242251023] , [ 1073451600000 , 2.6679861214776] , [ 1073538000000 , 2.3143736151973] , [ 1073624400000 , 2.6160317373105] , [ 1073883600000 , 2.2854270547956] , [ 1073970000000 , 2.5324487245205] , [ 1074056400000 , 2.2267342184644] , [ 1074142800000 , 2.3036203276638] , [ 1074229200000 , 2.3354761247737] , [ 1074574800000 , 2.405556806451] , [ 1074661200000 , 2.3291039355677] , [ 1074747600000 , 2.3467433074347] , [ 1074834000000 , 2.3997917116702] , [ 1075093200000 , 2.3690925799406] , [ 1075179600000 , 2.3062259085558] , [ 1075266000000 , 2.3229987814369] , [ 1075352400000 , 2.676578933804] , [ 1075438800000 , 2.5563937985446] , [ 1075698000000 , 2.7638503104826] , [ 1075784400000 , 2.7274850479449] , [ 1075870800000 , 2.6455838118095] , [ 1075957200000 , 2.7163042315533] , [ 1076043600000 , 2.6932253554656] , [ 1076302800000 , 2.6684383753015] , [ 1076389200000 , 2.7381170486182] , [ 1076475600000 , 2.7691902636693] , [ 1076562000000 , 2.8100168385674] , [ 1076648400000 , 2.6243482647816] , [ 1076994000000 , 2.7891693137676] , [ 1077080400000 , 2.6482123891634] , [ 1077166800000 , 2.5980511302957] , [ 1077253200000 , 2.6065792628998] , [ 1077512400000 , 2.5818909995678] , [ 1077598800000 , 2.5185711818756] , [ 1077685200000 , 2.5826209270431] , [ 1077771600000 , 2.5677991742216] , [ 1077858000000 , 2.5595132570808] , [ 1078117200000 , 2.6464015515661] , [ 1078203600000 , 2.7064377516549] , [ 1078290000000 , 2.7488882320609] , [ 1078376400000 , 2.7994078870317] , [ 1078462800000 , 2.8046592463289] , [ 1078722000000 , 2.7442701268229] , [ 1078808400000 , 2.7563266220511] , [ 1078894800000 , 2.7004794191501] , [ 1078981200000 , 2.735182958215] , [ 1079067600000 , 2.8053434005564] , [ 1079326800000 , 2.74684290332] , [ 1079413200000 , 2.7400749365906] , [ 1079499600000 , 2.7711386760201] , [ 1079586000000 , 2.849317559965] , [ 1079672400000 , 2.7741963276387] , [ 1079931600000 , 2.7803484316719] , [ 1080018000000 , 2.6772244108077] , [ 1080104400000 , 2.7821179684294] , [ 1080190800000 , 2.7360695694336] , [ 1080277200000 , 2.8251718224838] , [ 1080536400000 , 2.6223600417862] , [ 1080622800000 , 2.7035844074053] , [ 1080709200000 , 4.5147962184039] , [ 1080795600000 , 4.4399920083068] , [ 1080882000000 , 4.4946106384606] , [ 1081137600000 , 4.5670198594378] , [ 1081224000000 , 4.5402896231891] , [ 1081310400000 , 4.4666349162319] , [ 1081396800000 , 4.9174215501555] , [ 1081742400000 , 4.9246858252862] , [ 1081828800000 , 4.8028149108115] , [ 1081915200000 , 4.7144297817274] , [ 1082001600000 , 4.9728924475777] , [ 1082088000000 , 4.7864459221529] , [ 1082347200000 , 4.8561519263269] , [ 1082433600000 , 4.9009729198413] , [ 1082520000000 , 4.9352245164731] , [ 1082606400000 , 4.7757724520827] , [ 1082692800000 , 4.739422776248] , [ 1082952000000 , 4.7175897011702] , [ 1083038400000 , 5.3043181087674] , [ 1083124800000 , 5.2110987484839] , [ 1083211200000 , 4.6067295248307] , [ 1083297600000 , 4.6761846657013] , [ 1083556800000 , 4.7107137199876] , [ 1083643200000 , 4.7380465440178] , [ 1083729600000 , 4.6464503096187] , [ 1083816000000 , 4.7031898386398] , [ 1083902400000 , 4.6113970455103] , [ 1084161600000 , 4.5190838745349] , [ 1084248000000 , 4.6858240112362] , [ 1084334400000 , 4.645967591812] , [ 1084420800000 , 4.6179790801251] , [ 1084507200000 , 5.2501883804061] , [ 1084766400000 , 5.1783911914071] , [ 1084852800000 , 5.1599386920316] , [ 1084939200000 , 4.6518407898129] , [ 1085025600000 , 5.1780656946077] , [ 1085112000000 , 4.6065725955714] , [ 1085371200000 , 4.6521841635481] , [ 1085457600000 , 4.6647949744288] , [ 1085544000000 , 4.7466682563513] , [ 1085630400000 , 4.7209150506386] , [ 1085716800000 , 4.7009438069063] , [ 1086062400000 , 4.7786628065728] , [ 1086148800000 , 4.7006906862278] , [ 1086235200000 , 4.6189487109535] , [ 1086321600000 , 4.6622697599192] , [ 1086580800000 , 4.7062443082143] , [ 1086667200000 , 4.695677428209] , [ 1086753600000 , 4.6706939793075] , [ 1086840000000 , 4.6740459501668] , [ 1087185600000 , 4.5985200096429] , [ 1087272000000 , 4.8653223546769] , [ 1087358400000 , 4.7689698668777] , [ 1087444800000 , 4.7655140713915] , [ 1087531200000 , 4.9063134360249] , [ 1087790400000 , 4.9618791369691] , [ 1087876800000 , 4.8123002907696] , [ 1087963200000 , 4.7775900637098] , [ 1088049600000 , 4.8453040653958] , [ 1088136000000 , 5.4993674450859] , [ 1088395200000 , 5.4129139149322] , [ 1088481600000 , 5.6474668272735] , [ 1088568000000 , 2.9459514024824] , [ 1088654400000 , 2.8636355267192] , [ 1088740800000 , 2.8823758685952] , [ 1089086400000 , 2.765983593394] , [ 1089172800000 , 2.7906919735841] , [ 1089259200000 , 2.7754951779381] , [ 1089345600000 , 2.7847741457906] , [ 1089604800000 , 2.7887029312795] , [ 1089691200000 , 2.7378583801055] , [ 1089777600000 , 2.7771996196711] , [ 1089864000000 , 2.7193973654833] , [ 1089950400000 , 3.0367387079229] , [ 1090209600000 , 2.9102192685492] , [ 1090296000000 , 2.8863284789122] , [ 1090382400000 , 3.5312012993652] , [ 1090468800000 , 2.9132639655391] , [ 1090555200000 , 3.4563660018193] , [ 1090814400000 , 4.064914860099] , [ 1090900800000 , 3.9808955904664] , [ 1090987200000 , 3.3774648639094] , [ 1091073600000 , 3.3932975139182] , [ 1091160000000 , 3.3634435898808] , [ 1091419200000 , 2.6842232650317] , [ 1091505600000 , 2.6992141448213] , [ 1091592000000 , 3.2365110908137] , [ 1091678400000 , 3.2880379304585] , [ 1091764800000 , 3.1593178568862] , [ 1092024000000 , 3.6516532687154] , [ 1092110400000 , 3.5880646873506] , [ 1092196800000 , 3.1771635204813] , [ 1092283200000 , 3.1721876084837] , [ 1092369600000 , 3.2176177089476] , [ 1092628800000 , 3.2034353772176] , [ 1092715200000 , 3.1868270970914] , [ 1092801600000 , 3.3758225221765] , [ 1092888000000 , 3.2870659277483] , [ 1092974400000 , 3.4094981100458] , [ 1093233600000 , 3.2989085311695] , [ 1093320000000 , 3.3372163179485] , [ 1093406400000 , 3.3241181864077] , [ 1093492800000 , 3.3251202222669] , [ 1093579200000 , 3.2627525320187] , [ 1093838400000 , 3.2804366461928] , [ 1093924800000 , 3.2930816029164] , [ 1094011200000 , 3.2987775832752] , [ 1094097600000 , 3.3504114777327] , [ 1094184000000 , 3.3349874738248] , [ 1094529600000 , 3.3649169666716] , [ 1094616000000 , 3.2821155345039] , [ 1094702400000 , 3.2891033424462] , [ 1094788800000 , 3.3209056210498] , [ 1095048000000 , 3.3132523658143] , [ 1095134400000 , 3.3206869264932] , [ 1095220800000 , 3.2317761078221] , [ 1095307200000 , 3.3040686152239] , [ 1095393600000 , 3.283511287374] , [ 1095652800000 , 3.3197806267901] , [ 1095739200000 , 3.2435626612214] , [ 1095825600000 , 3.2219521895184] , [ 1095912000000 , 3.1028400493867] , [ 1095998400000 , 3.1615455213674] , [ 1096257600000 , 3.1156196407849] , [ 1096344000000 , 3.0914153080422] , [ 1096430400000 , 3.1865217462048] , [ 1096516800000 , 5.0518488419329] , [ 1096603200000 , 5.1570027799701] , [ 1096862400000 , 5.1536745182102] , [ 1096948800000 , 5.1213918743958] , [ 1097035200000 , 5.1966721080305] , [ 1097121600000 , 5.147048844527] , [ 1097208000000 , 5.0706856339838] , [ 1097467200000 , 5.0859530864383] , [ 1097553600000 , 5.0456830476274] , [ 1097640000000 , 5.2595396043871] , [ 1097726400000 , 5.1886141975887] , [ 1097812800000 , 5.178771850935] , [ 1098072000000 , 5.2103490038157] , [ 1098158400000 , 5.3672215044239] , [ 1098244800000 , 5.2942004144955] , [ 1098331200000 , 5.4616306787947] , [ 1098417600000 , 5.3846121749445] , [ 1098676800000 , 5.4121370915606] , [ 1098763200000 , 5.3867988364543] , [ 1098849600000 , 5.3348689003449] , [ 1098936000000 , 5.3713139402836] , [ 1099022400000 , 5.2694840386517] , [ 1099285200000 , 5.36152576613] , [ 1099371600000 , 5.1946013377303] , [ 1099458000000 , 5.147797320317] , [ 1099544400000 , 5.2218787979086] , [ 1099630800000 , 4.2297240196598] , [ 1099890000000 , 4.3309996380213] , [ 1099976400000 , 4.2301546979833] , [ 1100062800000 , 4.3092762880921] , [ 1100149200000 , 4.307769155997] , [ 1100235600000 , 4.3466461736789] , [ 1100494800000 , 4.3219280775212] , [ 1100581200000 , 5.2494205578466] , [ 1100667600000 , 5.2222488985055] , [ 1100754000000 , 5.1258653405894] , [ 1100840400000 , 5.3784172255961] , [ 1101099600000 , 5.0530060175812] , [ 1101186000000 , 5.0772183022875] , [ 1101272400000 , 5.8191089470477] , [ 1101445200000 , 5.1400084985938] , [ 1101704400000 , 5.7740779365756] , [ 1101790800000 , 5.6271381282359] , [ 1101877200000 , 5.0786111486537] , [ 1101963600000 , 4.7395062837164] , [ 1102050000000 , 4.3642819135339] , [ 1102309200000 , 4.8788473714279] , [ 1102395600000 , 4.8651500746862] , [ 1102482000000 , 4.7969720465654] , [ 1102568400000 , 4.706529240595] , [ 1102654800000 , 4.7872099248515] , [ 1102914000000 , 4.7220062790497] , [ 1103000400000 , 4.7968609240264] , [ 1103086800000 , 4.8390614998498] , [ 1103173200000 , 4.8517329290184] , [ 1103259600000 , 4.3149441239551] , [ 1103518800000 , 4.4871738839086] , [ 1103605200000 , 3.9127123546198] , [ 1103691600000 , 3.9490697882161] , [ 1103778000000 , 3.8642590501991] , [ 1104123600000 , 3.8193328881285] , [ 1104210000000 , 3.9444313530846] , [ 1104296400000 , 3.7876611108132] , [ 1104382800000 , 3.786520050655] , [ 1104469200000 , 4.5193477806708] , [ 1104728400000 , 4.6228055593582] , [ 1104814800000 , 4.8822117528037] , [ 1104901200000 , 4.8376908745624] , [ 1104987600000 , 4.7186448795618] , [ 1105074000000 , 4.7944353399991] , [ 1105333200000 , 4.7499493594108] , [ 1105419600000 , 4.7152481485596] , [ 1105506000000 , 4.772652831848] , [ 1105592400000 , 4.6959478389054] , [ 1105678800000 , 4.7469735829486] , [ 1106024400000 , 4.700055727508] , [ 1106110800000 , 4.697406415453] , [ 1106197200000 , 4.6541969609288] , [ 1106283600000 , 4.6482497273687] , [ 1106542800000 , 4.7464410887304] , [ 1106629200000 , 4.5581822800085] , [ 1106715600000 , 4.7046903882937] , [ 1106802000000 , 4.7541955629748] , [ 1106888400000 , 4.5410596563869] , [ 1107147600000 , 4.6068136491387] , [ 1107234000000 , 4.5518194614078] , [ 1107320400000 , 4.6760744238685] , [ 1107406800000 , 4.6122377389551] , [ 1107493200000 , 4.5517592985478] , [ 1107752400000 , 4.5262026746869] , [ 1107838800000 , 4.5453732289779] , [ 1107925200000 , 4.4473264714529] , [ 1108011600000 , 4.7486248237487] , [ 1108098000000 , 4.3628256743521] , [ 1108357200000 , 4.6350356292471] , [ 1108443600000 , 4.6879508818898] , [ 1108530000000 , 4.7824841159706] , [ 1108616400000 , 4.3679659491428] , [ 1108702800000 , 4.6216278685826] , [ 1109048400000 , 5.0512830899827] , [ 1109134800000 , 4.9211833720648] , [ 1109221200000 , 4.6689827360489] , [ 1109307600000 , 4.863177886258] , [ 1109566800000 , 5.0522229845508] , [ 1109653200000 , 4.511951347999] , [ 1109739600000 , 4.7421185783007] , [ 1109826000000 , 4.8763919650863] , [ 1109912400000 , 4.4655489144326] , [ 1110171600000 , 4.4003887205356] , [ 1110258000000 , 4.2953499182215] , [ 1110344400000 , 4.6376552766927] , [ 1110430800000 , 4.7273017292405] , [ 1110517200000 , 4.4087084832154] , [ 1110776400000 , 4.4959542727429] , [ 1110862800000 , 4.8104082635702] , [ 1110949200000 , 4.7689933615242] , [ 1111035600000 , 4.7290525724545] , [ 1111122000000 , 4.6908243119261] , [ 1111381200000 , 4.7793483789065] , [ 1111467600000 , 4.8343465634531] , [ 1111554000000 , 4.8997877767796] , [ 1111640400000 , 4.8446879555825] , [ 1111986000000 , 4.8481563557883] , [ 1112072400000 , 4.8330724960001] , [ 1112158800000 , 4.7915416460397] , [ 1112245200000 , 6.2851880755965] , [ 1112331600000 , 6.0343751778325] , [ 1112587200000 , 5.8527118910045] , [ 1112673600000 , 5.4393652884031] , [ 1112760000000 , 5.4421286369427] , [ 1112846400000 , 5.5758975468671] , [ 1112932800000 , 5.6819929926343] , [ 1113192000000 , 5.5775841136945] , [ 1113278400000 , 5.5436377143446] , [ 1113364800000 , 5.5710773060502] , [ 1113451200000 , 5.6254394490962] , [ 1113537600000 , 5.4684023389132] , [ 1113796800000 , 5.4895294685053] , [ 1113883200000 , 5.5482334857125] , [ 1113969600000 , 5.5547188393831] , [ 1114056000000 , 5.4129389488944] , [ 1114142400000 , 5.4374148337587] , [ 1114401600000 , 5.3847641501296] , [ 1114488000000 , 5.2878280467455] , [ 1114574400000 , 5.4522034975318] , [ 1114660800000 , 5.3594521060002] , [ 1114747200000 , 5.2420588572943] , [ 1115006400000 , 5.6606276336631] , [ 1115092800000 , 5.5230178473803] , [ 1115179200000 , 5.6290839485141] , [ 1115265600000 , 4.9727712469807] , [ 1115352000000 , 5.6618827725862] , [ 1115611200000 , 5.5643892977865] , [ 1115697600000 , 5.6004068853173] , [ 1115784000000 , 5.7133872418109] , [ 1115870400000 , 5.7555576420187] , [ 1115956800000 , 5.5711349943511] , [ 1116216000000 , 5.5540805620757] , [ 1116302400000 , 6.0415482872175] , [ 1116388800000 , 5.2798618603948] , [ 1116475200000 , 5.3538777835574] , [ 1116561600000 , 5.3767075153524] , [ 1116820800000 , 5.3656989670854] , [ 1116907200000 , 5.3894549111646] , [ 1116993600000 , 5.2959602507749] , [ 1117080000000 , 5.3041603116453] , [ 1117166400000 , 5.3513265402817] , [ 1117512000000 , 5.3042597402154] , [ 1117598400000 , 5.3830940036574] , [ 1117684800000 , 5.3640915337733] , [ 1117771200000 , 5.2424641357493] , [ 1118030400000 , 5.220943223473] , [ 1118116800000 , 5.390274597948] , [ 1118203200000 , 5.2258922939887] , [ 1118289600000 , 5.226609757616] , [ 1118376000000 , 5.4241507056066] , [ 1118635200000 , 5.2671654281895] , [ 1118721600000 , 5.2675085931666] , [ 1118808000000 , 5.3402953205449] , [ 1118894400000 , 5.3312231728129] , [ 1118980800000 , 5.0804183721655] , [ 1119240000000 , 5.0295133836202] , [ 1119326400000 , 4.9513098601892] , [ 1119412800000 , 4.9733875472667] , [ 1119499200000 , 5.4503638757024] , [ 1119585600000 , 5.1121850966213] , [ 1119844800000 , 5.4943135481574] , [ 1119931200000 , 5.2080595906057] , [ 1120017600000 , 5.5279877588814] , [ 1120104000000 , 6.679540024101] , [ 1120190400000 , 6.9579667464873] , [ 1120536000000 , 7.1861560991052] , [ 1120622400000 , 7.2488553459862] , [ 1120708800000 , 6.9281123977891] , [ 1120795200000 , 7.0183954097991] , [ 1121054400000 , 6.982471995471] , [ 1121140800000 , 7.0530086023473] , [ 1121227200000 , 6.7858799110069] , [ 1121313600000 , 6.865939748525] , [ 1121400000000 , 6.7136842364154] , [ 1121659200000 , 6.7058108447848] , [ 1121745600000 , 6.8286034893536] , [ 1121832000000 , 6.227348446981] , [ 1121918400000 , 6.4103267595588] , [ 1122004800000 , 6.4384541916729] , [ 1122264000000 , 6.8012976048913] , [ 1122350400000 , 6.6304863689862] , [ 1122436800000 , 6.6024051589843] , [ 1122523200000 , 6.5578403981454] , [ 1122609600000 , 7.0699793158618] , [ 1122868800000 , 5.70297128511] , [ 1122955200000 , 5.8599346884581] , [ 1123041600000 , 6.0432721160469] , [ 1123128000000 , 5.7085272847698] , [ 1123214400000 , 5.7739066238223] , [ 1123473600000 , 5.7407851580676] , [ 1123560000000 , 5.7503098774641] , [ 1123646400000 , 5.7350139819431] , [ 1123732800000 , 5.6387901284675] , [ 1123819200000 , 5.7064626266876] , [ 1124078400000 , 5.7735426785386] , [ 1124164800000 , 6.4849136987097] , [ 1124251200000 , 6.6216153591168] , [ 1124337600000 , 6.4980641465358] , [ 1124424000000 , 6.7613539095681] , [ 1124683200000 , 6.6865783336323] , [ 1124769600000 , 6.5712499184434] , [ 1124856000000 , 6.720170741489] , [ 1124942400000 , 6.6361956498457] , [ 1125028800000 , 6.6587153318771] , [ 1125288000000 , 6.6516914763688] , [ 1125374400000 , 6.82084224252] , [ 1125460800000 , 6.8110358144544] , [ 1125547200000 , 6.93647319994] , [ 1125633600000 , 7.0374937733289] , [ 1125979200000 , 6.7846258756745] , [ 1126065600000 , 6.9040591153524] , [ 1126152000000 , 7.0974970881943] , [ 1126238400000 , 7.1756222202082] , [ 1126497600000 , 7.0472408026096] , [ 1126584000000 , 7.0339920341342] , [ 1126670400000 , 7.2021353939179] , [ 1126756800000 , 7.0609073552108] , [ 1126843200000 , 7.004014797849] , [ 1127102400000 , 7.0400680159534] , [ 1127188800000 , 6.9843450335467] , [ 1127275200000 , 6.8880814585353] , [ 1127361600000 , 6.8543614829283] , [ 1127448000000 , 7.0464002464949] , [ 1127707200000 , 7.0173986373994] , [ 1127793600000 , 7.1143386429723] , [ 1127880000000 , 6.8611034625139] , [ 1127966400000 , 6.7545471669357] , [ 1128052800000 , 3.4108623316298] , [ 1128312000000 , 3.2358146304076] , [ 1128398400000 , 3.3486810900721] , [ 1128484800000 , 3.4841658501152] , [ 1128571200000 , 3.4581662089712] , [ 1128657600000 , 3.3815137620761] , [ 1128916800000 , 3.4974231565404] , [ 1129003200000 , 3.450184099932] , [ 1129089600000 , 3.5583842836352] , [ 1129176000000 , 3.5169603454358] , [ 1129262400000 , 3.5176978114038] , [ 1129521600000 , 3.3703592890602] , [ 1129608000000 , 3.4834570618648] , [ 1129694400000 , 1.8818434260168] , [ 1129780800000 , 3.4718401809501] , [ 1129867200000 , 3.5173146296481] , [ 1130126400000 , 3.4894834671858] , [ 1130212800000 , 3.5004514572279] , [ 1130299200000 , 3.5580877425531] , [ 1130385600000 , 3.4264846692522] , [ 1130472000000 , 3.5087175132563] , [ 1130734800000 , 3.4747366147276] , [ 1130821200000 , 3.5001994930828] , [ 1130907600000 , 3.6005100233634] , [ 1130994000000 , 3.5872694064345] , [ 1131080400000 , 3.5260521925989] , [ 1131339600000 , 3.5288462351855] , [ 1131426000000 , 3.4641649535546] , [ 1131512400000 , 3.5161931620784] , [ 1131598800000 , 3.5502260598773] , [ 1131685200000 , 3.3609479209577] , [ 1131944400000 , 3.4564684628572] , [ 1132030800000 , 3.518457312288] , [ 1132117200000 , 3.4173122983952] , [ 1132203600000 , 3.3661287991231] , [ 1132290000000 , 3.4341347614207] , [ 1132549200000 , 3.4315453279347] , [ 1132635600000 , 3.5582235129132] , [ 1132722000000 , 3.3601403083907] , [ 1132894800000 , 11.735042456197] , [ 1133154000000 , 3.2279033178203] , [ 1133240400000 , 3.2288989003019] , [ 1133326800000 , 3.1216762273473] , [ 1133413200000 , 3.3191236808366] , [ 1133499600000 , 3.1406633162912] , [ 1133758800000 , 3.1676854514161] , [ 1133845200000 , 3.1387667999364] , [ 1133931600000 , 3.2582847188262] , [ 1134018000000 , 3.2525397510316] , [ 1134104400000 , 3.1153164621531] , [ 1134363600000 , 3.2006472433155] , [ 1134450000000 , 3.1687478035612] , [ 1134536400000 , 3.1970372882292] , [ 1134622800000 , 3.4548380138956] , [ 1134709200000 , 3.3118805464002] , [ 1134968400000 , 3.326419498422] , [ 1135054800000 , 3.0390970647306] , [ 1135141200000 , 3.0782412643899] , [ 1135227600000 , 3.0929544166694] , [ 1135314000000 , 3.0818306419712] , [ 1135659600000 , 3.003312413436] , [ 1135746000000 , 3.1936998906631] , [ 1135832400000 , 3.3177551038824] , [ 1135918800000 , 3.3091613215865] , [ 1136264400000 , 2.9826177401196] , [ 1136350800000 , 2.9154923123459] , [ 1136437200000 , 3.0820319719165] , [ 1136523600000 , 3.0553583919313] , [ 1136782800000 , 3.2355273415524] , [ 1136869200000 , 3.2353049551277] , [ 1136955600000 , 3.2886317917394] , [ 1137042000000 , 3.0471701528585] , [ 1137128400000 , 3.0624568073826] , [ 1137474000000 , 3.0613364441599] , [ 1137560400000 , 3.0363355218647] , [ 1137646800000 , 3.0906664613847] , [ 1137733200000 , 3.0119817495933] , [ 1137992400000 , 3.0309654952976] , [ 1138078800000 , 3.1128124514124] , [ 1138165200000 , 3.0647154212153] , [ 1138251600000 , 3.0650605610577] , [ 1138338000000 , 3.1034627958758] , [ 1138597200000 , 3.0936374143393] , [ 1138683600000 , 3.1063435877576] , [ 1138770000000 , 3.0275743089727] , [ 1138856400000 , 2.9599684917255] , [ 1138942800000 , 3.0337617881862] , [ 1139202000000 , 3.0092058548414] , [ 1139288400000 , 3.0144780363617] , [ 1139374800000 , 2.9429987280183] , [ 1139461200000 , 2.984701201969] , [ 1139547600000 , 2.8951920125066] , [ 1139806800000 , 2.9978485844379] , [ 1139893200000 , 2.9190386448572] , [ 1139979600000 , 2.9003641090428] , [ 1140066000000 , 2.9737031873536] , [ 1140152400000 , 2.9316646939122] , [ 1140498000000 , 2.9970074993554] , [ 1140584400000 , 2.9987365595401] , [ 1140670800000 , 2.9660648090045] , [ 1140757200000 , 3.0116951121326] , [ 1141016400000 , 2.9674379764029] , [ 1141102800000 , 2.9115345133322] , [ 1141189200000 , 4.0344503315141] , [ 1141275600000 , 3.8326688104873] , [ 1141362000000 , 3.8320478551816] , [ 1141621200000 , 4.1875486284883] , [ 1141707600000 , 4.3285115138254] , [ 1141794000000 , 4.3982087935507] , [ 1141880400000 , 4.2790239034568] , [ 1141966800000 , 4.4067653344059] , [ 1142226000000 , 4.3707218547662] , [ 1142312400000 , 3.7855492134696] , [ 1142398800000 , 4.1853720862276] , [ 1142485200000 , 4.2206641653384] , [ 1142571600000 , 4.4950711219116] , [ 1142830800000 , 4.3800075450183] , [ 1142917200000 , 4.8205423187517] , [ 1143003600000 , 4.3872105163909] , [ 1143090000000 , 4.4227936414572] , [ 1143176400000 , 4.4701267766602] , [ 1143435600000 , 4.7445205307774] , [ 1143522000000 , 4.7471202084025] , [ 1143608400000 , 4.8113331137801] , [ 1143694800000 , 4.6967554281063] , [ 1143781200000 , 5.9781494476828] , [ 1144036800000 , 5.8882232918224] , [ 1144123200000 , 5.5645236773128] , [ 1144209600000 , 5.5353638892072] , [ 1144296000000 , 5.4980370986983] , [ 1144382400000 , 5.5846124418955] , [ 1144641600000 , 5.4555363382638] , [ 1144728000000 , 5.3869979612657] , [ 1144814400000 , 5.4675143705442] , [ 1144900800000 , 5.5086675311517] , [ 1145246400000 , 5.5906646811935] , [ 1145332800000 , 5.4833760916669] , [ 1145419200000 , 5.6197194837927] , [ 1145505600000 , 5.6880792497766] , [ 1145592000000 , 5.4575700123977] , [ 1145851200000 , 5.5173370831613] , [ 1145937600000 , 5.5299203373151] , [ 1146024000000 , 5.387648786116] , [ 1146110400000 , 5.2674121240033] , [ 1146196800000 , 5.4964006280171] , [ 1146456000000 , 5.579620146143] , [ 1146542400000 , 5.4972307401747] , [ 1146628800000 , 5.5488320813617] , [ 1146715200000 , 5.5010861828696] , [ 1146801600000 , 5.5872167903393] , [ 1147060800000 , 5.5673110174086] , [ 1147147200000 , 5.5885861590286] , [ 1147233600000 , 5.4797245551396] , [ 1147320000000 , 5.3304784516943] , [ 1147406400000 , 5.4252888938226] , [ 1147665600000 , 5.4351902591804] , [ 1147752000000 , 5.4861470797122] , [ 1147838400000 , 5.3539716890961] , [ 1147924800000 , 5.3418524585426] , [ 1148011200000 , 5.4109814034757] , [ 1148270400000 , 5.4143097431759] , [ 1148356800000 , 5.5022387992138] , [ 1148443200000 , 5.4933946997972] , [ 1148529600000 , 5.5255343422712] , [ 1148616000000 , 5.5705519403969] , [ 1148961600000 , 5.5743282380083] , [ 1149048000000 , 5.5221677872914] , [ 1149134400000 , 5.5913258249393] , [ 1149220800000 , 5.4890290204671] , [ 1149480000000 , 5.3513484107681] , [ 1149566400000 , 5.2952846332451] , [ 1149652800000 , 5.3809941241474] , [ 1149739200000 , 5.1807728121848] , [ 1149825600000 , 5.4015136223237] , [ 1150084800000 , 5.0948328195786] , [ 1150171200000 , 5.040817069216] , [ 1150257600000 , 5.2190053225359] , [ 1150344000000 , 4.987180477474] , [ 1150430400000 , 4.9224737306547] , [ 1150689600000 , 4.9480789412185] , [ 1150776000000 , 4.7905677717437] , [ 1150862400000 , 4.896112525399] , [ 1150948800000 , 4.8503941051066] , [ 1151035200000 , 5.0918526954809] , [ 1151294400000 , 5.0211030099049] , [ 1151380800000 , 5.0571441989304] , [ 1151467200000 , 4.5508625784706] , [ 1151553600000 , 4.5380226872913] , [ 1151640000000 , 6.6623465740296] , [ 1151899200000 , 6.6950261251744] , [ 1152072000000 , 6.5207939376521] , [ 1152158400000 , 6.5172737724921] , [ 1152244800000 , 6.3254714481969] , [ 1152504000000 , 6.6543540942611] , [ 1152590400000 , 6.2181048020914] , [ 1152676800000 , 6.6355576155026] , [ 1152763200000 , 6.1506956981831] , [ 1152849600000 , 6.5254563609616] , [ 1153108800000 , 6.4229380681102] , [ 1153195200000 , 6.4267393400886] , [ 1153281600000 , 6.151901373457] , [ 1153368000000 , 6.729525603133] , [ 1153454400000 , 6.6690569426284] , [ 1153713600000 , 8.1103304960696] , [ 1153800000000 , 6.445789660103] , [ 1153886400000 , 6.9812673500591] , [ 1153972800000 , 7.0211889294387] , [ 1154059200000 , 6.9687346671468] , [ 1154318400000 , 6.5961804321699] , [ 1154404800000 , 6.7373242629452] , [ 1154491200000 , 7.0300224654331] , [ 1154577600000 , 7.0031824973822] , [ 1154664000000 , 6.6620252125201] , [ 1154923200000 , 6.9573760194666] , [ 1155009600000 , 6.9486767083333] , [ 1155096000000 , 6.9404306158952] , [ 1155182400000 , 6.878361612199] , [ 1155268800000 , 6.8457420087184] , [ 1155528000000 , 6.9413203057534] , [ 1155614400000 , 7.1460233013256] , [ 1155700800000 , 7.2079148876614] , [ 1155787200000 , 7.150254983246] , [ 1155873600000 , 6.9421709366599] , [ 1156132800000 , 6.9475138904927] , [ 1156219200000 , 6.8080230073973] , [ 1156305600000 , 7.0339338125578] , [ 1156392000000 , 7.1193976160325] , [ 1156478400000 , 6.7160059917598] , [ 1156737600000 , 7.0844543078971] , [ 1156824000000 , 6.836665506475] , [ 1156910400000 , 6.6901412217505] , [ 1156996800000 , 7.1683903789179] , [ 1157083200000 , 6.819046312698] , [ 1157428800000 , 6.8255448366096] , [ 1157515200000 , 6.5253838879686] , [ 1157601600000 , 6.7747008690913] , [ 1157688000000 , 6.5606360796599] , [ 1157947200000 , 6.0710545360895] , [ 1158033600000 , 6.1468209558297] , [ 1158120000000 , 6.0920132683077] , [ 1158206400000 , 5.9514599625321] , [ 1158292800000 , 5.9152150415048] , [ 1158552000000 , 5.4885371988375] , [ 1158638400000 , 5.3529183330919] , [ 1158724800000 , 5.2268271486007] , [ 1158811200000 , 5.2632401820804] , [ 1158897600000 , 5.3761008893123] , [ 1159156800000 , 5.343343969615] , [ 1159243200000 , 5.1802644058266] , [ 1159329600000 , 5.1955066022022] , [ 1159416000000 , 5.2103052365711] , [ 1159502400000 , 5.2084626961236] , [ 1159761600000 , 2.8840888297049] , [ 1159848000000 , 3.2943030991496] , [ 1159934400000 , 2.7728246415702] , [ 1160020800000 , 2.8108425906082] , [ 1160107200000 , 2.9382729973757] , [ 1160366400000 , 2.8950025461164] , [ 1160452800000 , 3.0093478296508] , [ 1160539200000 , 2.9006448001696] , [ 1160625600000 , 3.0223681975413] , [ 1160712000000 , 3.0394975797056] , [ 1160971200000 , 3.131680903118] , [ 1161057600000 , 3.0463297219216] , [ 1161144000000 , 3.1180252293295] , [ 1161230400000 , 3.130091086302] , [ 1161316800000 , 3.066326072633] , [ 1161576000000 , 3.0336144148462] , [ 1161662400000 , 4.3270779423662] , [ 1161748800000 , 4.2820633154218] , [ 1161835200000 , 3.0921691457346] , [ 1161921600000 , 4.1567001237107] , [ 1162184400000 , 4.1342160586191] , [ 1162270800000 , 4.4201838733711] , [ 1162357200000 , 4.0601760116035] , [ 1162443600000 , 3.9226312951714] , [ 1162530000000 , 4.1727741508378] , [ 1162789200000 , 4.1751639139824] , [ 1162875600000 , 4.2104062763294] , [ 1162962000000 , 4.1294443133884] , [ 1163048400000 , 4.2279826023735] , [ 1163134800000 , 4.2476664933844] , [ 1163394000000 , 4.163004868497] , [ 1163480400000 , 4.3282212484836] , [ 1163566800000 , 4.3095618979983] , [ 1163653200000 , 3.0885817597712] , [ 1163739600000 , 3.076355031762] , [ 1163998800000 , 3.1715177595682] , [ 1164085200000 , 2.9935201304051] , [ 1164171600000 , 2.9505588485613] , [ 1164344400000 , 3.0040653109772] , [ 1164603600000 , 2.983071705957] , [ 1164690000000 , 3.0371467604301] , [ 1164776400000 , 3.0274381543998] , [ 1164862800000 , 3.1346408080373] , [ 1164949200000 , 3.4087737977505] , [ 1165208400000 , 3.4254924739731] , [ 1165294800000 , 3.5343918595576] , [ 1165381200000 , 3.4125407926515] , [ 1165467600000 , 3.5198360671703] , [ 1165554000000 , 3.5365570181792] , [ 1165813200000 , 3.5681992574741] , [ 1165899600000 , 3.6494092817253] , [ 1165986000000 , 3.5310150526919] , [ 1166072400000 , 3.5439775113761] , [ 1166158800000 , 3.5592274821478] , [ 1166418000000 , 3.5867485487725] , [ 1166504400000 , 3.5764165692897] , [ 1166590800000 , 3.4518894365921] , [ 1166677200000 , 3.5380784887815] , [ 1166763600000 , 3.533640313869] , [ 1167109200000 , 3.6644855856847] , [ 1167195600000 , 3.6271132635643] , [ 1167282000000 , 3.4631205159228] , [ 1167368400000 , 3.430151414344] , [ 1167800400000 , 5.8016688576954] , [ 1167886800000 , 5.8561012507285] , [ 1167973200000 , 5.9000670179267] , [ 1168232400000 , 5.9263896806362] , [ 1168318800000 , 5.8543796802947] , [ 1168405200000 , 5.7673741262945] , [ 1168491600000 , 5.8344654051468] , [ 1168578000000 , 5.8151063287842] , [ 1168923600000 , 5.7793199458949] , [ 1169010000000 , 5.8532551829404] , [ 1169096400000 , 5.9034808610366] , [ 1169182800000 , 6.2619220923265] , [ 1169442000000 , 6.2994314613823] , [ 1169528400000 , 6.3906818506851] , [ 1169614800000 , 6.425415967321] , [ 1169701200000 , 6.3440949416215] , [ 1169787600000 , 6.384556597427] , [ 1170046800000 , 6.2566253792346] , [ 1170133200000 , 6.2979627715121] , [ 1170219600000 , 6.3195197098848] , [ 1170306000000 , 6.3123489066732] , [ 1170392400000 , 6.4516205217967] , [ 1170651600000 , 6.4993536967398] , [ 1170738000000 , 6.4124443740349] , [ 1170824400000 , 6.757657132213] , [ 1170910800000 , 6.3680878374669] , [ 1170997200000 , 6.5581337362589] , [ 1171256400000 , 6.3072373462631] , [ 1171342800000 , 6.3873626954538] , [ 1171429200000 , 6.4240682680756] , [ 1171515600000 , 5.9671496300102] , [ 1171602000000 , 6.037507658937] , [ 1171947600000 , 6.1062250589464] , [ 1172034000000 , 6.2801262477535] , [ 1172120400000 , 6.302066296315] , [ 1172206800000 , 6.4887595917266] , [ 1172466000000 , 6.4467217927379] , [ 1172552400000 , 6.389548704248] , [ 1172638800000 , 6.1278454619334] , [ 1172725200000 , 6.9211809156189] , [ 1172811600000 , 6.9615876634985] , [ 1173070800000 , 6.9604977762869] , [ 1173157200000 , 6.9326942508034] , [ 1173243600000 , 6.9589612884303] , [ 1173330000000 , 6.7777321699871] , [ 1173416400000 , 6.8923887293863] , [ 1173672000000 , 6.7517726115965] , [ 1173758400000 , 7.023147151802] , [ 1173844800000 , 6.7245022171818] , [ 1173931200000 , 7.0743269506687] , [ 1174017600000 , 6.4584074364592] , [ 1174276800000 , 6.8742726853711] , [ 1174363200000 , 6.5873076915895] , [ 1174449600000 , 6.5814033590606] , [ 1174536000000 , 7.2462045395149] , [ 1174622400000 , 6.7630455587597] , [ 1174881600000 , 6.79757865691] , [ 1174968000000 , 6.7319453489698] , [ 1175054400000 , 6.7524033957435] , [ 1175140800000 , 6.7249864218552] , [ 1175227200000 , 7.1959861930335] , [ 1175486400000 , 5.5034477669994] , [ 1175572800000 , 5.5536199499359] , [ 1175659200000 , 5.5683896272104] , [ 1175745600000 , 5.3661847852395] , [ 1176091200000 , 5.3681810358806] , [ 1176177600000 , 5.3796042695304] , [ 1176264000000 , 5.2927411078476] , [ 1176350400000 , 5.4032484228754] , [ 1176436800000 , 5.2419903116433] , [ 1176696000000 , 5.287599012843] , [ 1176782400000 , 5.4691235182112] , [ 1176868800000 , 5.3771769229628] , [ 1176955200000 , 5.9053806042607] , [ 1177041600000 , 6.1057089416699] , [ 1177300800000 , 6.015503426755] , [ 1177387200000 , 5.9465881177914] , [ 1177473600000 , 6.3395994655322] , [ 1177560000000 , 5.7744036174212] , [ 1177646400000 , 5.5231895043329] , [ 1177905600000 , 5.6558448488497] , [ 1177992000000 , 5.5860638502864] , [ 1178078400000 , 5.459359650014] , [ 1178164800000 , 6.2050696116216] , [ 1178251200000 , 5.4292571311168] , [ 1178510400000 , 5.4791270687287] , [ 1178596800000 , 5.3040118648128] , [ 1178683200000 , 5.2873031992628] , [ 1178769600000 , 5.3210779246389] , [ 1178856000000 , 5.3400026357415] , [ 1179115200000 , 5.293939815581] , [ 1179201600000 , 5.3708317127123] , [ 1179288000000 , 5.3475210104787] , [ 1179374400000 , 5.2540920001683] , [ 1179460800000 , 5.3952642205536] , [ 1179720000000 , 5.2813482135364] , [ 1179806400000 , 5.4124510959808] , [ 1179892800000 , 5.5035421086896] , [ 1179979200000 , 5.4960663121103] , [ 1180065600000 , 5.4616352053186] , [ 1180411200000 , 5.5557436718824] , [ 1180497600000 , 5.5723551711376] , [ 1180584000000 , 5.3533738156704] , [ 1180670400000 , 5.9374805717135] , [ 1180929600000 , 6.070211947] , [ 1181016000000 , 6.1495771176188] , [ 1181102400000 , 6.1212709443999] , [ 1181188800000 , 5.8981165186278] , [ 1181275200000 , 6.1574300768597] , [ 1181534400000 , 6.0408959483815] , [ 1181620800000 , 5.9743807515105] , [ 1181707200000 , 6.0241707399628] , [ 1181793600000 , 6.0471828073556] , [ 1181880000000 , 6.0231956020193] , [ 1182139200000 , 5.8062793529953] , [ 1182225600000 , 5.8947211623182] , [ 1182312000000 , 5.9167961848519] , [ 1182398400000 , 5.9424652653682] , [ 1182484800000 , 5.8806090703762] , [ 1182744000000 , 5.7299888447741] , [ 1182830400000 , 5.9066810232948] , [ 1182916800000 , 5.8341177954444] , [ 1183003200000 , 5.9129760135708] , [ 1183089600000 , 5.9945552989675] , [ 1183348800000 , 5.3299023432099] , [ 1183435200000 , 5.5327509208748] , [ 1183608000000 , 5.4679149798396] , [ 1183694400000 , 5.321027188349] , [ 1183953600000 , 5.5403186088645] , [ 1184040000000 , 5.3532172072605] , [ 1184126400000 , 5.4146524564901] , [ 1184212800000 , 5.4116029343603] , [ 1184299200000 , 5.5596046002215] , [ 1184558400000 , 5.4963271012754] , [ 1184644800000 , 5.5285285896202] , [ 1184731200000 , 5.602508176099] , [ 1184817600000 , 5.5271120290838] , [ 1184904000000 , 5.6787884781165] , [ 1185163200000 , 6.2449614526858] , [ 1185249600000 , 6.2338400405605] , [ 1185336000000 , 6.1903596084878] , [ 1185422400000 , 6.0055059085675] , [ 1185508800000 , 5.9346003801545] , [ 1185768000000 , 5.9905732220651] , [ 1185854400000 , 6.0999445264832] , [ 1185940800000 , 5.7393997675728] , [ 1186027200000 , 5.9856751678157] , [ 1186113600000 , 5.8983987083987] , [ 1186372800000 , 5.8986708020035] , [ 1186459200000 , 5.844235572237] , [ 1186545600000 , 5.8996131867044] , [ 1186632000000 , 5.8255302060964] , [ 1186718400000 , 5.6149242344805] , [ 1186977600000 , 5.73472051311] , [ 1187064000000 , 5.8068166954067] , [ 1187150400000 , 5.729516260903] , [ 1187236800000 , 5.8112325352025] , [ 1187323200000 , 5.7449344656735] , [ 1187582400000 , 5.8154490136989] , [ 1187668800000 , 5.5910253062061] , [ 1187755200000 , 5.6409093357668] , [ 1187841600000 , 5.6684119675685] , [ 1187928000000 , 5.7475041526529] , [ 1188187200000 , 5.6871327863607] , [ 1188273600000 , 5.7037098436441] , [ 1188360000000 , 5.811101788082] , [ 1188446400000 , 5.4648944238788] , [ 1188532800000 , 5.6043541592909] , [ 1188878400000 , 5.6661461983708] , [ 1188964800000 , 5.7778417392083] , [ 1189051200000 , 5.8219018814405] , [ 1189137600000 , 5.7797660510698] , [ 1189396800000 , 5.6238295072176] , [ 1189483200000 , 5.6044766919031] , [ 1189569600000 , 5.7571550661925] , [ 1189656000000 , 5.6010490111957] , [ 1189742400000 , 5.7432881994906] , [ 1190001600000 , 5.6652449794256] , [ 1190088000000 , 5.6290799514664] , [ 1190174400000 , 5.6691890845799] , [ 1190260800000 , 5.5059968368363] , [ 1190347200000 , 5.6482979155196] , [ 1190606400000 , 5.3118510791031] , [ 1190692800000 , 5.1610898454063] , [ 1190779200000 , 5.2918392926565] , [ 1190865600000 , 5.4934523651225] , [ 1190952000000 , 5.3071617372149] , [ 1191211200000 , 7.531583603958] , [ 1191297600000 , 7.6309179887693] , [ 1191384000000 , 7.7475612851779] , [ 1191470400000 , 7.530998665759] , [ 1191556800000 , 7.5052768495204] , [ 1191816000000 , 7.3392760770741] , [ 1191902400000 , 7.5123552038565] , [ 1191988800000 , 7.4304766314143] , [ 1192075200000 , 7.5510139656757] , [ 1192161600000 , 7.3478862182543] , [ 1192420800000 , 7.4114198714548] , [ 1192507200000 , 7.2190603208315] , [ 1192593600000 , 7.3648933467876] , [ 1192680000000 , 7.2521365252803] , [ 1192766400000 , 7.5138792968593] , [ 1193025600000 , 7.5268260503433] , [ 1193112000000 , 7.2866924102812] , [ 1193198400000 , 7.3292193432641] , [ 1193284800000 , 7.0889666924132] , [ 1193371200000 , 7.3894936731886] , [ 1193630400000 , 7.4807562909254] , [ 1193716800000 , 7.4710525940586] , [ 1193803200000 , 7.2232358174515] , [ 1193889600000 , 7.1679314068527] , [ 1193976000000 , 7.0432978541917] , [ 1194238800000 , 7.0798348151984] , [ 1194325200000 , 6.9036648063505] , [ 1194411600000 , 8.370612728316] , [ 1194498000000 , 8.2104852640355] , [ 1194584400000 , 8.21190559032] , [ 1194843600000 , 8.9441911238644] , [ 1194930000000 , 7.2791523696694] , [ 1195016400000 , 8.4730149160941] , [ 1195102800000 , 8.209185956679] , [ 1195189200000 , 8.0011719666435] , [ 1195448400000 , 8.4778945672244] , [ 1195534800000 , 8.1219789507817] , [ 1195621200000 , 8.1291027449849] , [ 1195794000000 , 7.6854413203628] , [ 1196053200000 , 8.2394627589421] , [ 1196139600000 , 7.6000223598168] , [ 1196226000000 , 7.8489027600031] , [ 1196312400000 , 7.9388039747927] , [ 1196398800000 , 8.6805483342203] , [ 1196658000000 , 7.819093258259] , [ 1196744400000 , 7.7328736519041] , [ 1196830800000 , 7.8067506366048] , [ 1196917200000 , 6.5017053051142] , [ 1197003600000 , 6.1775351770769] , [ 1197262800000 , 6.3697699960877] , [ 1197349200000 , 7.4308824002833] , [ 1197435600000 , 7.5040897820745] , [ 1197522000000 , 7.5038617774347] , [ 1197608400000 , 7.2308756320739] , [ 1197867600000 , 7.3876330451792] , [ 1197954000000 , 7.3677231200441] , [ 1198040400000 , 7.4997185766307] , [ 1198126800000 , 7.3812934068041] , [ 1198213200000 , 7.52504039022] , [ 1198472400000 , 7.428638935131] , [ 1198645200000 , 7.5778555365401] , [ 1198731600000 , 7.6527475801177] , [ 1198818000000 , 7.3175189110682] , [ 1199077200000 , 7.3371271757066] , [ 1199250000000 , 7.2857225868223] , [ 1199336400000 , 7.1636990523452] , [ 1199422800000 , 7.1709616119198] , [ 1199682000000 , 7.1589364622782] , [ 1199768400000 , 7.1421873228132] , [ 1199854800000 , 6.9760466250496] , [ 1199941200000 , 6.9426058335034] , [ 1200027600000 , 6.7349851141438] , [ 1200286800000 , 6.6388480580742] , [ 1200373200000 , 6.8102317749132] , [ 1200459600000 , 6.9238179784892] , [ 1200546000000 , 7.6830543729485] , [ 1200632400000 , 7.425318532414] , [ 1200978000000 , 7.3857247273437] , [ 1201064400000 , 7.7083061793365] , [ 1201150800000 , 8.2583336829393] , [ 1201237200000 , 8.0128040886069] , [ 1201496400000 , 8.0358480692245] , [ 1201582800000 , 8.2671543182705] , [ 1201669200000 , 8.1161243143207] , [ 1201755600000 , 7.4107747544517] , [ 1201842000000 , 7.5294510611935] , [ 1202101200000 , 7.2113531120373] , [ 1202187600000 , 7.8864587947242] , [ 1202274000000 , 6.9586132197617] , [ 1202360400000 , 7.0281940962194] , [ 1202446800000 , 7.1447318591793] , [ 1202706000000 , 6.9935545311206] , [ 1202792400000 , 7.2883839931897] , [ 1202878800000 , 6.8361262907914] , [ 1202965200000 , 7.045918453252] , [ 1203051600000 , 6.8486631874079] , [ 1203397200000 , 6.8640500433739] , [ 1203483600000 , 6.8575958252384] , [ 1203570000000 , 6.7251897963912] , [ 1203656400000 , 6.6399026114773] , [ 1203915600000 , 6.8764282448817] , [ 1204002000000 , 6.7348063208959] , [ 1204088400000 , 7.7837095774772] , [ 1204174800000 , 7.0420456338856] , [ 1204261200000 , 6.9909081255568] , [ 1204520400000 , 7.131596990042] , [ 1204606800000 , 6.988562066534] , [ 1204693200000 , 6.9050375888978] , [ 1204779600000 , 6.546453758899] , [ 1204866000000 , 6.4087398018081] , [ 1205121600000 , 6.4589849850596] , [ 1205208000000 , 6.7042664457473] , [ 1205294400000 , 7.6568395392123] , [ 1205380800000 , 8.5402215462225] , [ 1205467200000 , 6.5463875174652] , [ 1205726400000 , 7.2179123617086] , [ 1205812800000 , 7.5810592003363] , [ 1205899200000 , 6.7979916806379] , [ 1205985600000 , 6.6322561510492] , [ 1206331200000 , 7.0681121398936] , [ 1206417600000 , 6.9023924998489] , [ 1206504000000 , 7.0389663853819] , [ 1206590400000 , 6.7662664840578] , [ 1206676800000 , 6.8266199445058] , [ 1206936000000 , 6.4383120442898] , [ 1207022400000 , 6.3647386363738] , [ 1207108800000 , 6.4786095779231] , [ 1207195200000 , 6.6539452625097] , [ 1207281600000 , 6.4080871268417] , [ 1207540800000 , 6.3709462512131] , [ 1207627200000 , 6.4178074036765] , [ 1207713600000 , 6.2886973966323] , [ 1207800000000 , 6.3496231600179] , [ 1207886400000 , 6.364158873025] , [ 1208145600000 , 6.0652076854316] , [ 1208232000000 , 6.1936331476093] , [ 1208318400000 , 6.0445426863227] , [ 1208404800000 , 6.1585521703334] , [ 1208491200000 , 6.1043624228944] , [ 1208750400000 , 6.3307197349304] , [ 1208836800000 , 6.1576593011564] , [ 1208923200000 , 6.3612863667708] , [ 1209009600000 , 6.3419854183664] , [ 1209096000000 , 6.3914985838301] , [ 1209355200000 , 6.6406534589316] , [ 1209441600000 , 6.3307424536973] , [ 1209528000000 , 6.1006329967357] , [ 1209614400000 , 6.1050692944877] , [ 1209700800000 , 6.2416533654448] , [ 1209960000000 , 6.0323755356142] , [ 1210046400000 , 5.8808279864141] , [ 1210132800000 , 5.8602372119567] , [ 1210219200000 , 5.8301290507881] , [ 1210305600000 , 5.9306036835352] , [ 1210564800000 , 5.8535113492263] , [ 1210651200000 , 5.869024671798] , [ 1210737600000 , 5.9968915060212] , [ 1210824000000 , 6.4841046190145] , [ 1210910400000 , 6.3911843735792] , [ 1211169600000 , 6.4279145976681] , [ 1211256000000 , 6.3344615627902] , [ 1211342400000 , 6.5451435993219] , [ 1211428800000 , 6.3263257246883] , [ 1211515200000 , 6.3834858918468] , [ 1211860800000 , 6.2756674350876] , [ 1211947200000 , 6.4087274603138] , [ 1212033600000 , 6.4056567020406] , [ 1212120000000 , 6.4668213862667] , [ 1212379200000 , 5.6899479336982] , [ 1212465600000 , 5.6571493593707] , [ 1212552000000 , 5.6420741867959] , [ 1212638400000 , 5.7125783186014] , [ 1212724800000 , 5.7095761377505] , [ 1212984000000 , 5.8214360886338] , [ 1213070400000 , 5.5929840492055] , [ 1213156800000 , 5.6736904761447] , [ 1213243200000 , 5.6378543169519] , [ 1213329600000 , 5.6654766298683] , [ 1213588800000 , 5.6141677216839] , [ 1213675200000 , 5.4895830900975] , [ 1213761600000 , 5.4418314612881] , [ 1213848000000 , 5.4089360286943] , [ 1213934400000 , 5.4103978864671] , [ 1214193600000 , 5.2772486632171] , [ 1214280000000 , 5.303434238248] , [ 1214366400000 , 5.3465810683818] , [ 1214452800000 , 5.31748624571] , [ 1214539200000 , 5.3256225817229] , [ 1214798400000 , 4.5634711885535] , [ 1214884800000 , 4.3352054133566] , [ 1214971200000 , 5.2858518479538] , [ 1215057600000 , 4.3089240878568] , [ 1215403200000 , 5.3310390210237] , [ 1215489600000 , 4.3994931570144] , [ 1215576000000 , 4.5262376681773] , [ 1215662400000 , 5.6201952995306] , [ 1215748800000 , 5.7241281187916] , [ 1216008000000 , 5.5945309751232] , [ 1216094400000 , 5.6549814025292] , [ 1216180800000 , 5.7173450472402] , [ 1216267200000 , 4.8222871994727] , [ 1216353600000 , 4.7662777688314] , [ 1216612800000 , 4.8973254357168] , [ 1216699200000 , 5.1341869729148] , [ 1216785600000 , 5.3227315843504] , [ 1216872000000 , 5.1605346178496] , [ 1216958400000 , 5.1779217784942] , [ 1217217600000 , 5.1627260249415] , [ 1217304000000 , 5.151367795375] , [ 1217390400000 , 5.2540963371903] , [ 1217476800000 , 5.2434106263894] , [ 1217563200000 , 5.123242170685] , [ 1217822400000 , 5.1151102720743] , [ 1217908800000 , 5.1571751778012] , [ 1217995200000 , 5.2813409796102] , [ 1218081600000 , 5.1878006573389] , [ 1218168000000 , 5.1633338429958] , [ 1218427200000 , 5.1658687536577] , [ 1218513600000 , 5.1963762301985] , [ 1218600000000 , 5.1904592425375] , [ 1218686400000 , 5.4599132933833] , [ 1218772800000 , 5.2951023740641] , [ 1219032000000 , 5.257190974208] , [ 1219118400000 , 5.205960747901] , [ 1219204800000 , 5.1564752380303] , [ 1219291200000 , 5.244274327757] , [ 1219377600000 , 5.3199814862531] , [ 1219636800000 , 5.2124082442509] , [ 1219723200000 , 5.2148884814248] , [ 1219809600000 , 5.2660924194272] , [ 1219896000000 , 5.3333946450071] , [ 1219982400000 , 5.4030897227976] , [ 1220328000000 , 6.1632828416656] , [ 1220414400000 , 6.1792048822181] , [ 1220500800000 , 5.9713757976894] , [ 1220587200000 , 5.8521299391245] , [ 1220846400000 , 5.9436493095157] , [ 1220932800000 , 5.9817984783499] , [ 1221019200000 , 5.7172182770579] , [ 1221105600000 , 5.7666370648538] , [ 1221192000000 , 5.944964277141] , [ 1221451200000 , 5.9719257119302] , [ 1221537600000 , 5.9802942073043] , [ 1221624000000 , 6.0256936190406] , [ 1221710400000 , 6.1091144225631] , [ 1221796800000 , 6.3904862634985] , [ 1222056000000 , 6.0592851258076] , [ 1222142400000 , 6.256156252881] , [ 1222228800000 , 6.1073080430961] , [ 1222315200000 , 6.2344500218342] , [ 1222401600000 , 6.0278578646831] , [ 1222660800000 , 6.2886980700582] , [ 1222747200000 , 6.3715867597887] , [ 1222833600000 , 6.1004828190244] , [ 1222920000000 , 6.8705724589124] , [ 1223006400000 , 7.3931897046016] , [ 1223265600000 , 7.1966014906334] , [ 1223352000000 , 7.1552556121799] , [ 1223438400000 , 6.9617585633052] , [ 1223524800000 , 6.9162489852899] , [ 1223611200000 , 6.4650063901045] , [ 1223870400000 , 5.8889901580469] , [ 1223956800000 , 6.3124352251941] , [ 1224043200000 , 7.0534241910929] , [ 1224129600000 , 6.928171307307] , [ 1224216000000 , 6.7743655360364] , [ 1224475200000 , 6.7381698308339] , [ 1224561600000 , 6.7054370506226] , [ 1224648000000 , 6.406504822482] , [ 1224734400000 , 7.103382664093] , [ 1224820800000 , 6.879053118491] , [ 1225080000000 , 7.0501530951534] , [ 1225166400000 , 7.2410219315205] , [ 1225252800000 , 7.2149734232993] , [ 1225339200000 , 6.1000750580465] , [ 1225425600000 , 6.5608998237398] , [ 1225688400000 , 7.123988980106] , [ 1225774800000 , 6.8776171218083] , [ 1225861200000 , 7.0158464310889] , [ 1225947600000 , 8.8410075944503] , [ 1226034000000 , 8.2074921164754] , [ 1226293200000 , 7.9855856702348] , [ 1226379600000 , 7.4313803657221] , [ 1226466000000 , 7.7020191147112] , [ 1226552400000 , 7.8028444105143] , [ 1226638800000 , 7.6554780192622] , [ 1226898000000 , 7.4595847958205] , [ 1226984400000 , 6.994906649404] , [ 1227070800000 , 7.4482824027772] , [ 1227157200000 , 7.3874704107731] , [ 1227243600000 , 6.9798023195892] , [ 1227502800000 , 7.4400257060602] , [ 1227589200000 , 7.7210407467182] , [ 1227675600000 , 7.4732422248789] , [ 1227848400000 , 7.7684304152306] , [ 1228107600000 , 8.5329094785625] , [ 1228194000000 , 8.8060305674656] , [ 1228280400000 , 8.899784335492] , [ 1228366800000 , 9.2784500142104] , [ 1228453200000 , 9.6759213234865] , [ 1228712400000 , 9.7785689323747] , [ 1228798800000 , 9.6499277173316] , [ 1228885200000 , 9.7585714821212] , [ 1228971600000 , 9.2122768495179] , [ 1229058000000 , 9.2526029184492] , [ 1229317200000 , 8.6706050462054] , [ 1229403600000 , 8.9780128399008] , [ 1229490000000 , 8.8057156535541] , [ 1229576400000 , 8.6966973743454] , [ 1229662800000 , 9.2140451310059] , [ 1229922000000 , 9.1309435083258] , [ 1230008400000 , 8.9109121975657] , [ 1230094800000 , 9.3464773473523] , [ 1230267600000 , 9.3610012655273] , [ 1230526800000 , 9.1827417030369] , [ 1230613200000 , 9.2670916903893] , [ 1230699600000 , 6.3431080048202] , [ 1230872400000 , 6.3013750687934] , [ 1231131600000 , 6.5099489965673] , [ 1231218000000 , 6.55849743454] , [ 1231304400000 , 6.4714630756925] , [ 1231390800000 , 6.5833998310811] , [ 1231477200000 , 6.5683112215553] , [ 1231736400000 , 6.3757002218161] , [ 1231822800000 , 6.693592184847] , [ 1231909200000 , 6.3253456974111] , [ 1231995600000 , 6.5288974953258] , [ 1232082000000 , 6.781495037238] , [ 1232427600000 , 6.4610451189687] , [ 1232514000000 , 6.6136023626372] , [ 1232600400000 , 6.3608139695636] , [ 1232686800000 , 6.2558795703405] , [ 1232946000000 , 6.4523686249378] , [ 1233032400000 , 6.3062428270396] , [ 1233118800000 , 6.6540931467275] , [ 1233205200000 , 6.4700292566789] , [ 1233291600000 , 6.2781833062823] , [ 1233550800000 , 5.9819810437366] , [ 1233637200000 , 6.3209702844141] , [ 1233723600000 , 6.1530614913748] , [ 1233810000000 , 6.323527908308] , [ 1233896400000 , 6.6574310261787] , [ 1234155600000 , 6.5778720158356] , [ 1234242000000 , 6.1761520311553] , [ 1234328400000 , 6.3875582022497] , [ 1234414800000 , 6.3842803816596] , [ 1234501200000 , 6.490716781387] , [ 1234846800000 , 6.3497435072981] , [ 1234933200000 , 6.116823917335] , [ 1235019600000 , 5.8740416534912] , [ 1235106000000 , 6.0737212906119] , [ 1235365200000 , 5.9585726083343] , [ 1235451600000 , 5.9455614640799] , [ 1235538000000 , 6.0341211768721] , [ 1235624400000 , 6.162371611965] , [ 1235710800000 , 6.1017574140154] , [ 1235970000000 , 5.1678350615926] , [ 1236056400000 , 5.4399137126506] , [ 1236142800000 , 5.5206558716544] , [ 1236229200000 , 5.0152715717628] , [ 1236315600000 , 5.0283432202879] , [ 1236571200000 , 5.0074448658938] , [ 1236657600000 , 5.5939616394314] , [ 1236744000000 , 5.5935741355267] , [ 1236830400000 , 5.8287996728334] , [ 1236916800000 , 6.0898295176408] , [ 1237176000000 , 5.9620067963125] , [ 1237262400000 , 5.9302401949611] , [ 1237348800000 , 6.0326010616645] , [ 1237435200000 , 5.9990119435174] , [ 1237521600000 , 5.8410716927224] , [ 1237780800000 , 6.0566484324084] , [ 1237867200000 , 5.9635888651044] , [ 1237953600000 , 6.0073272944344] , [ 1238040000000 , 6.0275162466085] , [ 1238126400000 , 6.0410443686856] , [ 1238385600000 , 5.9336174190192] , [ 1238472000000 , 6.7129522346788] , [ 1238558400000 , 6.6993943724472] , [ 1238644800000 , 6.9072938528227] , [ 1238731200000 , 6.8033335096449] , [ 1238990400000 , 6.8972173755438] , [ 1239076800000 , 6.8920177315134] , [ 1239163200000 , 6.8443892558542] , [ 1239249600000 , 7.4497699131442] , [ 1239595200000 , 7.5019861785881] , [ 1239681600000 , 7.3053193582125] , [ 1239768000000 , 7.2216169837015] , [ 1239854400000 , 7.5661499648819] , [ 1239940800000 , 7.6449159503907] , [ 1240200000000 , 7.5582219882489] , [ 1240286400000 , 7.4343755826028] , [ 1240372800000 , 7.6417895324212] , [ 1240459200000 , 7.6681262804388] , [ 1240545600000 , 7.7043797010563] , [ 1240804800000 , 7.4958396526881] , [ 1240891200000 , 7.815451554867] , [ 1240977600000 , 7.6676074512792] , [ 1241064000000 , 7.9572070113902] , [ 1241150400000 , 8.2096937565281] , [ 1241409600000 , 8.1187033449036] , [ 1241496000000 , 8.372275134873] , [ 1241582400000 , 8.0538722912475] , [ 1241668800000 , 7.9602754200426] , [ 1241755200000 , 7.6576599608334] , [ 1242014400000 , 7.4966913546928] , [ 1242100800000 , 7.2651112892492] , [ 1242187200000 , 7.1633791818655] , [ 1242273600000 , 7.1687650149386] , [ 1242360000000 , 7.3531937924814] , [ 1242619200000 , 7.4209658497273] , [ 1242705600000 , 7.5783182685381] , [ 1242792000000 , 7.4080483609847] , [ 1242878400000 , 7.277883223155] , [ 1242964800000 , 7.1453915393307] , [ 1243310400000 , 7.6300760130558] , [ 1243396800000 , 7.3772429744079] , [ 1243483200000 , 7.5724491217571] , [ 1243569600000 , 7.7562411442798] , [ 1243828800000 , 8.5403406835842] , [ 1243915200000 , 8.3017346807485] , [ 1244001600000 , 8.2455714820194] , [ 1244088000000 , 8.1419984291921] , [ 1244174400000 , 7.9302409712334] , [ 1244433600000 , 7.9514072720379] , [ 1244520000000 , 8.0555753559815] , [ 1244606400000 , 7.7992630274994] , [ 1244692800000 , 8.1167920735932] , [ 1244779200000 , 8.0712996157991] , [ 1245038400000 , 7.9545182134471] , [ 1245124800000 , 7.8830443320321] , [ 1245211200000 , 7.7760102856737] , [ 1245297600000 , 7.6688197716909] , [ 1245384000000 , 7.9738365319208] , [ 1245643200000 , 7.6816079796342] , [ 1245729600000 , 7.5975299439674] , [ 1245816000000 , 7.8071824002366] , [ 1245902400000 , 7.9398421894786] , [ 1245988800000 , 8.1599201203201] , [ 1246248000000 , 8.0475899158279] , [ 1246334400000 , 8.311713958035] , [ 1246420800000 , 8.0633325894994] , [ 1246507200000 , 8.1665001701375] , [ 1246852800000 , 8.6243924912214] , [ 1246939200000 , 8.5584631826924] , [ 1247025600000 , 8.3342287434369] , [ 1247112000000 , 7.785433826246] , [ 1247198400000 , 8.4304734788353] , [ 1247457600000 , 8.6310657763842] , [ 1247544000000 , 7.6709901103497] , [ 1247630400000 , 7.9145909860609] , [ 1247716800000 , 8.6738324194706] , [ 1247803200000 , 8.703463208222] , [ 1248062400000 , 8.8318115926649] , [ 1248148800000 , 8.8183631328174] , [ 1248235200000 , 8.9069614482835] , [ 1248321600000 , 8.1767345390385] , [ 1248408000000 , 8.3690934952353] , [ 1248667200000 , 8.0475374043464] , [ 1248753600000 , 7.9487085942204] , [ 1248840000000 , 8.0193179357719] , [ 1248926400000 , 6.7077240648159] , [ 1249012800000 , 6.3820502542407] , [ 1249272000000 , 6.1508557498966] , [ 1249358400000 , 6.2521137538601] , [ 1249444800000 , 6.1577643631846] , [ 1249531200000 , 6.2104717030372] , [ 1249617600000 , 5.4085385559598] , [ 1249876800000 , 6.1531235400728] , [ 1249963200000 , 5.4621932110819] , [ 1250049600000 , 5.4080882037869] , [ 1250136000000 , 5.4311338457152] , [ 1250222400000 , 5.9769504776449] , [ 1250481600000 , 6.1282576846105] , [ 1250568000000 , 5.9944952168109] , [ 1250654400000 , 5.9421157852003] , [ 1250740800000 , 6.0876497115901] , [ 1250827200000 , 5.3604129875169] , [ 1251086400000 , 5.9175421072838] , [ 1251172800000 , 5.0536189904237] , [ 1251259200000 , 5.2120512417561] , [ 1251345600000 , 5.203757025882] , [ 1251432000000 , 5.1944500854188] , [ 1251691200000 , 5.1506994391916] , [ 1251777600000 , 5.963103135814] , [ 1251864000000 , 6.0495921115292] , [ 1251950400000 , 4.6989879935359] , [ 1252036800000 , 4.8071428653778] , [ 1252382400000 , 4.8834539692467] , [ 1252468800000 , 6.0296791157326] , [ 1252555200000 , 5.3336486975701] , [ 1252641600000 , 5.7910847756212] , [ 1252900800000 , 4.2290028078144] , [ 1252987200000 , 4.3410520831618] , [ 1253073600000 , 3.6473356187603] , [ 1253160000000 , 3.7752491852878] , [ 1253246400000 , 4.6472183730829] , [ 1253505600000 , 3.5460608419439] , [ 1253592000000 , 3.6159341985379] , [ 1253678400000 , 3.9888812541473] , [ 1253764800000 , 4.0926619786259] , [ 1253851200000 , 3.9932972482998] , [ 1254110400000 , 3.9977003875474] , [ 1254196800000 , 4.1141840782386] , [ 1254283200000 , 3.4932618582594] , [ 1254369600000 , 2.8882406454852] , [ 1254456000000 , 2.8091023150487] , [ 1254715200000 , 2.9162883955448] , [ 1254801600000 , 2.9412596935434] , [ 1254888000000 , 2.9577064322097] , [ 1254974400000 , 2.9944107330291] , [ 1255060800000 , 2.9995959618688] , [ 1255320000000 , 2.8722133670363] , [ 1255406400000 , 3.1701861875583] , [ 1255492800000 , 3.1278205668598] , [ 1255579200000 , 3.1466051179389] , [ 1255665600000 , 3.1248428156261] , [ 1255924800000 , 3.1381573762212] , [ 1256011200000 , 2.8908983945294] , [ 1256097600000 , 2.8461903532938] , [ 1256184000000 , 2.9580400309269] , [ 1256270400000 , 2.8789406735397] , [ 1256529600000 , 2.8551257008863] , [ 1256616000000 , 3.6125500653153] , [ 1256702400000 , 4.259680329504] , [ 1256788800000 , 3.4449103324616] , [ 1256875200000 , 3.304360280782] , [ 1257138000000 , 3.4701958196407] , [ 1257224400000 , 3.5573661999414] , [ 1257310800000 , 3.5123579991949] , [ 1257397200000 , 3.8140115032809] , [ 1257483600000 , 3.741625333296] , [ 1257742800000 , 3.6480817158465] , [ 1257829200000 , 3.7597321524559] , [ 1257915600000 , 3.6614252110407] , [ 1258002000000 , 3.6303647352521] , [ 1258088400000 , 3.7106128331078] , [ 1258347600000 , 3.7522393948775] , [ 1258434000000 , 3.7692229502309] , [ 1258520400000 , 3.56446232961] , [ 1258606800000 , 3.4093546635484] , [ 1258693200000 , 3.4903814041113] , [ 1258952400000 , 3.4885064029992] , [ 1259038800000 , 3.4651593256137] , [ 1259125200000 , 3.520194463029] , [ 1259298000000 , 3.3499432520851] , [ 1259557200000 , 3.3863490553439] , [ 1259643600000 , 3.578300846024] , [ 1259730000000 , 3.5501534681494] , [ 1259816400000 , 3.6848141865906] , [ 1259902800000 , 3.6987593331625] , [ 1260162000000 , 3.8187466064014] , [ 1260248400000 , 3.7014237572608] , [ 1260334800000 , 3.6746390252432] , [ 1260421200000 , 3.6835972927098] , [ 1260507600000 , 3.7284637339994] , [ 1260766800000 , 3.7527788884899] , [ 1260853200000 , 3.7564093160659] , [ 1260939600000 , 3.6755594970563] , [ 1261026000000 , 3.7270065166822] , [ 1261112400000 , 3.5906816388481] , [ 1261371600000 , 3.5645799858099] , [ 1261458000000 , 3.5435699544913] , [ 1261544400000 , 3.6727689970369] , [ 1261630800000 , 3.5981692177625] , [ 1261976400000 , 3.5214854653168] , [ 1262062800000 , 3.5552432172187] , [ 1262149200000 , 3.6044667019261] , [ 1262235600000 , 3.6418917027612] , [ 1262581200000 , 3.7874348786051] , [ 1262667600000 , 3.7504992194283] , [ 1262754000000 , 3.7784983325609] , [ 1262840400000 , 3.8014246854259] , [ 1262926800000 , 3.8431625893614] , [ 1263186000000 , 3.8526169051741] , [ 1263272400000 , 3.7355795345891] , [ 1263358800000 , 3.7890845555981] , [ 1263445200000 , 3.7253525072644] , [ 1263531600000 , 3.7114285897826] , [ 1263877200000 , 3.9626938365861] , [ 1263963600000 , 3.8060318406823] , [ 1264050000000 , 3.8337575418691] , [ 1264136400000 , 4.3294528812616] , [ 1264395600000 , 3.8442033930898] , [ 1264482000000 , 4.285271912028] , [ 1264568400000 , 4.2087269266923] , [ 1264654800000 , 3.8284915672164] , [ 1264741200000 , 4.1534036336602] , [ 1265000400000 , 4.4103995236919] , [ 1265086800000 , 4.4068295134496] , [ 1265173200000 , 4.4450474282245] , [ 1265259600000 , 4.38131267142] , [ 1265346000000 , 4.3791201508327] , [ 1265605200000 , 4.3258532615489] , [ 1265691600000 , 4.3252719549325] , [ 1265778000000 , 4.439002994072] , [ 1265864400000 , 4.5021254673678] , [ 1265950800000 , 5.44279235516] , [ 1266296400000 , 4.4139668626965] , [ 1266382800000 , 4.5667133332052] , [ 1266469200000 , 4.1979778225181] , [ 1266555600000 , 4.2578024361996] , [ 1266814800000 , 4.4268665227754] , [ 1266901200000 , 4.2825958579183] , [ 1266987600000 , 4.3195187815662] , [ 1267074000000 , 4.3298386326078] , [ 1267160400000 , 4.3586027570776] , [ 1267419600000 , 5.3860474686307] , [ 1267506000000 , 5.4526661717604] , [ 1267592400000 , 5.5501903215109] , [ 1267678800000 , 4.4466915452437] , [ 1267765200000 , 4.4617567500702] , [ 1268024400000 , 4.5484652625856] , [ 1268110800000 , 4.0921504402963] , [ 1268197200000 , 4.1517292063227] , [ 1268283600000 , 3.9295314192248] , [ 1268370000000 , 3.9539302585784] , [ 1268625600000 , 4.6214983327108] , [ 1268712000000 , 4.6114298729669] , [ 1268798400000 , 4.6388514236374] , [ 1268884800000 , 4.5714128942135] , [ 1268971200000 , 4.5877698426337] , [ 1269230400000 , 4.5787682614556] , [ 1269316800000 , 4.6093366151174] , [ 1269403200000 , 4.5937465579186] , [ 1269489600000 , 4.4945887601257] , [ 1269576000000 , 4.6301712102649] , [ 1269835200000 , 5.6030370183914] , [ 1269921600000 , 4.5873880318819] , [ 1270008000000 , 6.7313170382762] , [ 1270094400000 , 6.3013364884648] , [ 1270440000000 , 6.3086708861358] , [ 1270526400000 , 6.3030248058021] , [ 1270612800000 , 5.0118128852357] , [ 1270699200000 , 4.2419204544294] , [ 1270785600000 , 4.2135618406375] , [ 1271044800000 , 5.5335754506193] , [ 1271131200000 , 5.6513423131026] , [ 1271217600000 , 5.5181910838466] , [ 1271304000000 , 6.3707681681438] , [ 1271390400000 , 6.4476424669834] , [ 1271649600000 , 6.2278322889791] , [ 1271736000000 , 6.3014029951744] , [ 1271822400000 , 6.4014287080629] , [ 1271908800000 , 6.4001208825908] , [ 1271995200000 , 6.4153411602686] , [ 1272254400000 , 5.8790677126048] , [ 1272340800000 , 7.5186042792919] , [ 1272427200000 , 7.1615679501375] , [ 1272513600000 , 7.4285879457305] , [ 1272600000000 , 7.2469142548274] , [ 1272859200000 , 7.0302923287331] , [ 1272945600000 , 6.845682640463] , [ 1273032000000 , 6.6936898649737] , [ 1273118400000 , 6.5069405456542] , [ 1273204800000 , 6.3535780217133] , [ 1273464000000 , 6.7572946011937] , [ 1273550400000 , 6.7036206630127] , [ 1273636800000 , 6.8717725702439] , [ 1273723200000 , 6.7438906008853] , [ 1273809600000 , 6.7468934213555] , [ 1274068800000 , 6.1905712092223] , [ 1274155200000 , 6.5614923074055] , [ 1274241600000 , 6.2405707617847] , [ 1274328000000 , 6.024849567078] , [ 1274414400000 , 6.2142465132603] , [ 1274673600000 , 6.3021277989086] , [ 1274760000000 , 6.1784138076069] , [ 1274846400000 , 6.4556681652926] , [ 1274932800000 , 6.5793719488947] , [ 1275019200000 , 6.7233612707586] , [ 1275364800000 , 6.6596716243564] , [ 1275451200000 , 6.8288444742104] , [ 1275537600000 , 7.0098406835512] , [ 1275624000000 , 6.5722192314075] , [ 1275883200000 , 6.3524539219733] , [ 1275969600000 , 6.3567308191669] , [ 1276056000000 , 6.3489727497217] , [ 1276142400000 , 6.7793768789175] , [ 1276228800000 , 7.0709702694795] , [ 1276488000000 , 7.1114219908892] , [ 1276574400000 , 7.2862410915964] , [ 1276660800000 , 7.3298640288706] , [ 1276747200000 , 7.2696972332242] , [ 1276833600000 , 7.1953625718325] , [ 1277092800000 , 7.0056100992571] , [ 1277179200000 , 6.9231922026185] , [ 1277265600000 , 6.973088291103] , [ 1277352000000 , 6.9668437225422] , [ 1277438400000 , 6.998525042556] , [ 1277697600000 , 6.9613707055658] , [ 1277784000000 , 6.7509446137765] , [ 1277870400000 , 7.9151638243465] , [ 1277956800000 , 8.850444759974] , [ 1278043200000 , 8.9508248297278] , [ 1278388800000 , 8.8308135377559] , [ 1278475200000 , 9.1557376811178] , [ 1278561600000 , 9.4389243100087] , [ 1278648000000 , 9.3526122655858] , [ 1278907200000 , 9.3695881682679] , [ 1278993600000 , 9.6143885027659] , [ 1279080000000 , 9.6793199374183] , [ 1279166400000 , 9.6797100364861] , [ 1279252800000 , 9.6687744185617] , [ 1279512000000 , 9.1860315020889] , [ 1279598400000 , 9.3724878519175] , [ 1279684800000 , 9.2574079918223] , [ 1279771200000 , 9.5402332610866] , [ 1279857600000 , 9.7999184466266] , [ 1280116800000 , 9.8346281260191] , [ 1280203200000 , 10.391316880569] , [ 1280289600000 , 10.307945373908] , [ 1280376000000 , 10.382694151976] , [ 1280462400000 , 10.619001469575] , [ 1280721600000 , 8.6910859252501] , [ 1280808000000 , 8.2780924741914] , [ 1280894400000 , 9.8210785323957] , [ 1280980800000 , 9.4482871403957] , [ 1281067200000 , 8.2540187693677] , [ 1281326400000 , 8.4215543980314] , [ 1281412800000 , 8.1324369126758] , [ 1281499200000 , 7.8419852840216] , [ 1281585600000 , 7.673037031483] , [ 1281672000000 , 7.8295547289505] , [ 1281931200000 , 7.6567786924202] , [ 1282017600000 , 7.6847540895582] , [ 1282104000000 , 7.7892363698546] , [ 1282190400000 , 7.84393381543] , [ 1282276800000 , 7.8735865802755] , [ 1282536000000 , 7.5653960395666] , [ 1282622400000 , 7.4264318973513] , [ 1282708800000 , 7.6585710369492] , [ 1282795200000 , 9.0392455531444] , [ 1282881600000 , 7.7701188723663] , [ 1283140800000 , 8.8071182900156] , [ 1283227200000 , 10.12550800946] , [ 1283313600000 , 7.7711870423724] , [ 1283400000000 , 8.1821413814992] , [ 1283486400000 , 8.3161795858023] , [ 1283832000000 , 8.1562096933006] , [ 1283918400000 , 7.2981142345076] , [ 1284004800000 , 7.3823745187454] , [ 1284091200000 , 7.5089371933272] , [ 1284350400000 , 7.6119210106499] , [ 1284436800000 , 7.3219012303246] , [ 1284523200000 , 7.3539574616439] , [ 1284609600000 , 7.391155228862] , [ 1284696000000 , 7.7910323736516] , [ 1284955200000 , 7.9891977154861] , [ 1285041600000 , 7.9845113231898] , [ 1285128000000 , 8.0280687385235] , [ 1285214400000 , 8.0220124881512] , [ 1285300800000 , 8.1721960978357] , [ 1285560000000 , 7.3762484505685] , [ 1285646400000 , 7.1849774487922] , [ 1285732800000 , 7.0881168760289] , [ 1285819200000 , 7.6165006632813] , [ 1285905600000 , 7.9281403493209] , [ 1286164800000 , 7.6877892047954] , [ 1286251200000 , 7.5545371151247] , [ 1286337600000 , 7.6163830521595] , [ 1286424000000 , 7.4660122402952] , [ 1286510400000 , 7.4747232801966] , [ 1286769600000 , 6.6670381670041] , [ 1286856000000 , 7.4362967095541] , [ 1286942400000 , 7.4098656539097] , [ 1287028800000 , 7.4308547802326] , [ 1287115200000 , 7.2787840708622] , [ 1287374400000 , 7.361186970691] , [ 1287460800000 , 7.2071009569313] , [ 1287547200000 , 7.488227566033] , [ 1287633600000 , 7.1729577071294] , [ 1287720000000 , 7.1165470501276] , [ 1287979200000 , 7.1835191848776] , [ 1288065600000 , 6.6349220593647] , [ 1288152000000 , 6.5143255314096] , [ 1288238400000 , 6.5093341407168] , [ 1288324800000 , 6.6896752601614] , [ 1288584000000 , 6.4310441067758] , [ 1288670400000 , 6.2630848540459] , [ 1288756800000 , 6.4141428045196] , [ 1288843200000 , 6.9522207665479] , [ 1288929600000 , 7.0751669468923] , [ 1289192400000 , 7.0957173039567] , [ 1289278800000 , 7.0122861213564] , [ 1289365200000 , 7.4884041899658] , [ 1289451600000 , 6.4024254287865] , [ 1289538000000 , 6.7756715157074] , [ 1289797200000 , 6.5292816699702] , [ 1289883600000 , 6.1519776284104] , [ 1289970000000 , 6.3930471671954] , [ 1290056400000 , 6.2839136396227] , [ 1290142800000 , 6.0320314051674] , [ 1290402000000 , 6.1956189210192] , [ 1290488400000 , 6.4028476068441] , [ 1290574800000 , 6.3245283221227] , [ 1290747600000 , 6.4086956263512] , [ 1291006800000 , 6.2512340532516] , [ 1291093200000 , 6.5282484862389] , [ 1291179600000 , 6.736006633423] , [ 1291266000000 , 6.4838112911972] , [ 1291352400000 , 7.2729012263385] , [ 1291611600000 , 7.3376652279673] , [ 1291698000000 , 7.4596873623813] , [ 1291784400000 , 7.0979514825498] , [ 1291870800000 , 7.0512484800374] , [ 1291957200000 , 7.0423918643231] , [ 1292216400000 , 6.9460849020085] , [ 1292302800000 , 6.7249153590091] , [ 1292389200000 , 6.9493884700924] , [ 1292475600000 , 6.9731285187246] , [ 1292562000000 , 6.9351463103721] , [ 1292821200000 , 8.2413807215699] , [ 1292907600000 , 7.9646775997402] , [ 1292994000000 , 6.8365448172611] , [ 1293080400000 , 6.9943194582886] , [ 1293426000000 , 6.7970448427131] , [ 1293512400000 , 6.8562130664842] , [ 1293598800000 , 6.8469233284141] , [ 1293685200000 , 6.8757556495549] , [ 1293771600000 , 6.6976782597699] , [ 1294030800000 , 7.015559070577] , [ 1294117200000 , 7.0626567313096] , [ 1294203600000 , 6.8032104947785] , [ 1294290000000 , 6.9352611689083] , [ 1294376400000 , 6.7857414697848] , [ 1294635600000 , 6.8633059616158] , [ 1294722000000 , 6.6808324212783] , [ 1294808400000 , 6.779464286231] , [ 1294894800000 , 7.8578611910869] , [ 1294981200000 , 6.6289795492906] , [ 1295326800000 , 7.7350355242243] , [ 1295413200000 , 7.8778729932565] , [ 1295499600000 , 7.7131378785653] , [ 1295586000000 , 7.7761093777833] , [ 1295845200000 , 7.8811340173465] , [ 1295931600000 , 7.5154894904157] , [ 1296018000000 , 7.6154099268751] , [ 1296104400000 , 7.4913704458081] , [ 1296190800000 , 7.4130494146429] , [ 1296450000000 , 7.4229098636973] , [ 1296536400000 , 6.4159596258075] , [ 1296622800000 , 6.6683657415423] , [ 1296709200000 , 6.4171737502757] , [ 1296795600000 , 6.4079790334457] , [ 1297054800000 , 6.3577488567458] , [ 1297141200000 , 6.552907119049] , [ 1297227600000 , 7.7742705226911] , [ 1297314000000 , 7.5988649174825] , [ 1297400400000 , 7.552005535535] , [ 1297659600000 , 7.9791540246632] , [ 1297746000000 , 7.7179473869873] , [ 1297832400000 , 7.6620128768293] , [ 1297918800000 , 7.9535210584646] , [ 1298005200000 , 7.8352981913095] , [ 1298350800000 , 7.6818406674459] , [ 1298437200000 , 7.441032734805] , [ 1298523600000 , 7.6264178309908] , [ 1298610000000 , 7.7511248043048] , [ 1298869200000 , 7.5983874373561] , [ 1298955600000 , 7.6328955664289] , [ 1299042000000 , 7.5712604372079] , [ 1299128400000 , 7.6943733241434] , [ 1299214800000 , 7.6908137510547] , [ 1299474000000 , 8.0394377732533] , [ 1299560400000 , 7.7006439351331] , [ 1299646800000 , 7.9939193256762] , [ 1299733200000 , 8.0146855617036] , [ 1299819600000 , 8.0652390767127] , [ 1300075200000 , 8.2111961074116] , [ 1300161600000 , 7.9977564987315] , [ 1300248000000 , 8.0094768132623] , [ 1300334400000 , 8.1670785086275] , [ 1300420800000 , 8.1911137136314] , [ 1300680000000 , 8.2122733755099] , [ 1300766400000 , 8.0278517190718] , [ 1300852800000 , 8.159377330552] , [ 1300939200000 , 8.0660341238415] , [ 1301025600000 , 7.9802936768258] , [ 1301284800000 , 8.1117644672074] , [ 1301371200000 , 8.5256638547532] , [ 1301457600000 , 8.3724148847511] , [ 1301544000000 , 8.1704221272491] , [ 1301630400000 , 8.1465935016053] , [ 1301889600000 , 8.2963751060228] , [ 1301976000000 , 8.3139066983581] , [ 1302062400000 , 8.5802750824218] , [ 1302148800000 , 8.282351658262] , [ 1302235200000 , 8.3523375679133] , [ 1302494400000 , 8.3086593229883] , [ 1302580800000 , 8.3060139547942] , [ 1302667200000 , 8.4194477655831] , [ 1302753600000 , 8.1825495239296] , [ 1302840000000 , 8.2032677516527] , [ 1303099200000 , 8.3577429427569] , [ 1303185600000 , 7.8096399779485] , [ 1303272000000 , 8.3617888252644] , [ 1303358400000 , 7.6535505430347] , [ 1303704000000 , 8.1015005464385] , [ 1303790400000 , 8.0967638446531] , [ 1303876800000 , 8.2331001032509] , [ 1303963200000 , 8.0746013906815] , [ 1304049600000 , 7.9581619431196] , [ 1304308800000 , 8.0510521992935] , [ 1304395200000 , 8.249775979159] , [ 1304481600000 , 8.0723102129181] , [ 1304568000000 , 8.0465551385201] , [ 1304654400000 , 7.8419655326199] , [ 1304913600000 , 7.8671847711793] , [ 1305000000000 , 7.9138733612804] , [ 1305086400000 , 8.1690091773467] , [ 1305172800000 , 8.1035499811016] , [ 1305259200000 , 8.2308063620259] , [ 1305518400000 , 7.825523257168] , [ 1305604800000 , 7.939293479624] , [ 1305691200000 , 7.1600370970528] , [ 1305777600000 , 7.352404651612] , [ 1305864000000 , 7.3427064169702] , [ 1306123200000 , 7.2348040826747] , [ 1306209600000 , 7.3355971509463] , [ 1306296000000 , 7.1256863273265] , [ 1306382400000 , 7.1717784277581] , [ 1306468800000 , 6.3334834365537] , [ 1306814400000 , 6.2138512486489] , [ 1306900800000 , 6.1801441591354] , [ 1306987200000 , 7.4877212752515] , [ 1307073600000 , 7.5585768235624] , [ 1307332800000 , 7.3051507363699] , [ 1307419200000 , 7.3307885537127] , [ 1307505600000 , 7.0800524850003] , [ 1307592000000 , 7.3251482222031] , [ 1307678400000 , 7.8167261821593] , [ 1307937600000 , 7.8661342217414] , [ 1308024000000 , 8.0754824328073] , [ 1308110400000 , 7.722336974834] , [ 1308196800000 , 7.7487873054549] , [ 1308283200000 , 8.2601931397118] , [ 1308542400000 , 8.8340692171413] , [ 1308628800000 , 8.8141442040852] , [ 1308715200000 , 7.3885682273556] , [ 1308801600000 , 8.524371173273] , [ 1308888000000 , 8.6577402854431] , [ 1309147200000 , 7.6707502806202] , [ 1309233600000 , 7.4978055094839] , [ 1309320000000 , 7.3818097405847] , [ 1309406400000 , 7.1612677684123] , [ 1309492800000 , 6.368782882442] , [ 1309838400000 , 6.1071313978876] , [ 1309924800000 , 6.1565523090354] , [ 1310011200000 , 6.1475887352994] , [ 1310097600000 , 6.2263430904332] , [ 1310356800000 , 6.9611041985641] , [ 1310443200000 , 7.0242315085635] , [ 1310529600000 , 7.0075843366218] , [ 1310616000000 , 6.9207678449217] , [ 1310702400000 , 7.0524800125284] , [ 1310961600000 , 6.8224030921167] , [ 1311048000000 , 6.8857127873696] , [ 1311134400000 , 6.896303722488] , [ 1311220800000 , 6.2515825214884] , [ 1311307200000 , 6.2646841372931] , [ 1311566400000 , 6.2496084036737] , [ 1311652800000 , 5.9764452251568] , [ 1311739200000 , 6.7304204313871] , [ 1311825600000 , 7.5632953623456] , [ 1311912000000 , 7.4832095921011] , [ 1314763200000 , 6.6199965715845] , [ 1314849600000 , 6.6379081921771] , [ 1314936000000 , 6.3073123029369] , [ 1315281600000 , 6.5545564105314] , [ 1315368000000 , 6.1632696315425] , [ 1315454400000 , 5.95584772283] , [ 1315540800000 , 6.3384259819469] , [ 1315800000000 , 6.1048543229922] , [ 1315886400000 , 6.1280001833333] , [ 1315972800000 , 6.1319318026661] , [ 1316059200000 , 6.1902023394527] , [ 1316145600000 , 5.4545475153717] , [ 1316404800000 , 5.4508003127033] , [ 1316491200000 , 6.6097418079225] , [ 1316577600000 , 6.2695648367966] , [ 1316664000000 , 6.5479656953968] , [ 1316750400000 , 6.1491805140902] , [ 1317009600000 , 4.8301610598105] , [ 1317096000000 , 4.8480010785993] , [ 1317182400000 , 4.5299190756869] , [ 1317268800000 , 5.8831706632668] , [ 1317355200000 , 4.9857318296672] , [ 1317614400000 , 4.729945726575] , [ 1317700800000 , 4.9627773970443] , [ 1317787200000 , 4.9572436376201] , [ 1317873600000 , 3.8804438380164] , [ 1317960000000 , 3.6313005804066] , [ 1318219200000 , 3.5099617228093] , [ 1318305600000 , 3.5809298492224] , [ 1318392000000 , 3.7509968761579] , [ 1318478400000 , 3.6976682399698] , [ 1318564800000 , 3.7554071402231] , [ 1318824000000 , 3.5532516508573] , [ 1318910400000 , 3.7157353115832] , [ 1318996800000 , 3.5546276844061] , [ 1319083200000 , 3.5726560999166] , [ 1319169600000 , 3.6278642583202] , [ 1319428800000 , 3.7698485583911] , [ 1319515200000 , 3.6957429704312] , [ 1319601600000 , 3.8119283813009] , [ 1319688000000 , 4.145999408378] , [ 1319774400000 , 4.2544005194032] , [ 1320033600000 , 3.8560840314136] , [ 1320120000000 , 4.0071099487515] , [ 1320206400000 , 3.8666864871989] , [ 1320292800000 , 3.7520383060086] , [ 1320379200000 , 3.7981325257823] , [ 1320642000000 , 3.7783368665557] , [ 1320728400000 , 3.9903973239273] , [ 1320814800000 , 3.8390780793766] , [ 1320901200000 , 3.9681792562828] , [ 1320987600000 , 4.1202577150874] , [ 1321246800000 , 3.8928918358591] , [ 1321333200000 , 3.6107778154799] , [ 1321419600000 , 3.6805629885085] , [ 1321506000000 , 5.1391631801351] , [ 1321592400000 , 4.8682926150708] , [ 1321851600000 , 4.8254893415811] , [ 1321938000000 , 5.0026171811767] , [ 1322024400000 , 5.1148078013213] , [ 1322197200000 , 5.1056031414338] , [ 1322456400000 , 5.3577325625205] , [ 1322542800000 , 3.9808664894058] , [ 1322629200000 , 4.0986002512641] , [ 1322715600000 , 3.8799962016475] , [ 1322802000000 , 3.9157907805421] , [ 1323061200000 , 4.0476244311429] , [ 1323147600000 , 4.0417379581542] , [ 1323234000000 , 4.109589045041] , [ 1323320400000 , 3.9129560226233] , [ 1323406800000 , 3.9359286132744] , [ 1323666000000 , 3.8737572501197] , [ 1323752400000 , 3.6607533440426] , [ 1323838800000 , 3.6363837386103] , [ 1323925200000 , 4.8560748249197] , [ 1324011600000 , 3.5473901577107] , [ 1324270800000 , 4.8264820658614] , [ 1324357200000 , 3.712469118749] , [ 1324443600000 , 5.0038460000171] , [ 1324530000000 , 5.065494206939] , [ 1324616400000 , 4.7531055960121] , [ 1324962000000 , 4.586323111206] , [ 1325048400000 , 4.5646901099934] , [ 1325134800000 , 4.6107139340923] , [ 1325221200000 , 4.6440461794016] , [ 1325566800000 , 4.3891725117992] , [ 1325653200000 , 4.1966238762838] , [ 1325739600000 , 4.2709900163805] , [ 1325826000000 , 4.3165911723595] , [ 1326085200000 , 4.311249907868] , [ 1326171600000 , 4.4779903572094] , [ 1326258000000 , 3.4076298835166] , [ 1326344400000 , 3.382259226764] , [ 1326430800000 , 3.4488850513864] , [ 1326776400000 , 3.4251262880477] , [ 1326862800000 , 3.3841248437391] , [ 1326949200000 , 3.2725238514] , [ 1327035600000 , 3.2522017539503] , [ 1327294800000 , 3.3809923924243] , [ 1327381200000 , 3.3682669807671] , [ 1327467600000 , 3.2717862699826] , [ 1327554000000 , 3.3970348092886] , [ 1327640400000 , 3.4297652819983] , [ 1327899600000 , 3.4286456277102] , [ 1327986000000 , 3.327524189929] , [ 1328072400000 , 3.5746074207567] , [ 1328158800000 , 3.4635795356803] , [ 1328245200000 , 3.6534724128571] , [ 1328504400000 , 3.5442830502491] , [ 1328590800000 , 3.5751719472643] , [ 1328677200000 , 3.694082546661] , [ 1328763600000 , 3.8173331135166] , [ 1328850000000 , 3.6330485898246] , [ 1329109200000 , 3.9163251063404] , [ 1329195600000 , 3.7718684252196] , [ 1329282000000 , 3.6993204637789] , [ 1329368400000 , 3.708025224958] , [ 1329454800000 , 3.797475561552] , [ 1329800400000 , 3.685289823613] , [ 1329886800000 , 3.5089097057604] , [ 1329973200000 , 3.5263770512642] , [ 1330059600000 , 3.4828938715903] , [ 1330318800000 , 3.4638916777746] , [ 1330405200000 , 3.570874631622] , [ 1330491600000 , 3.4180163343957] , [ 1330578000000 , 3.5312571551772] , [ 1330664400000 , 3.5885544133415] , [ 1330923600000 , 3.5386532308631] , [ 1331010000000 , 3.4458371857556] , [ 1331096400000 , 3.4590048086457] , [ 1331182800000 , 3.4360300363807] , [ 1331269200000 , 3.4261074878453] , [ 1331524800000 , 3.3806482189354] , [ 1331611200000 , 3.4235699326804] , [ 1331697600000 , 3.5553861596051] , [ 1331784000000 , 3.501713836318] , [ 1331870400000 , 3.4271538928069] , [ 1332129600000 , 3.3976754036284] , [ 1332216000000 , 3.4456618390394] , [ 1332302400000 , 3.2901221394091] , [ 1332388800000 , 3.4438000224947] , [ 1332475200000 , 3.5291340142731] , [ 1332734400000 , 3.4422907821278] , [ 1332820800000 , 3.4113809615801] , [ 1332907200000 , 3.4612055653647] , [ 1332993600000 , 3.3765715559162] , [ 1333080000000 , 3.3314488964373] , [ 1333339200000 , 3.7464512805593] , [ 1333425600000 , 4.1979174021391] , [ 1333512000000 , 4.2181907632685] , [ 1333598400000 , 4.0679256157396] , [ 1333944000000 , 4.1025618393266] , [ 1334030400000 , 4.1012098570324] , [ 1334116800000 , 4.1927181173986] , [ 1334203200000 , 4.2668812204674] , [ 1334289600000 , 4.1829131112528] , [ 1334548800000 , 4.1026702994764] , [ 1334635200000 , 4.1833726531351] , [ 1334721600000 , 4.2637794845203] , [ 1334808000000 , 4.1914723019635] , [ 1334894400000 , 4.1792869293066] , [ 1335153600000 , 4.1302379932279] , [ 1335240000000 , 4.0588546259813] , [ 1335326400000 , 3.9975632294602] , [ 1335412800000 , 4.0631056148253] , [ 1335499200000 , 4.1752138560418] , [ 1335758400000 , 4.8433599248432]]} , { "key" : "Micro Cap (<250MM)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 0.025581267278939] , [ 1028174400000 , 0.029736731672885] , [ 1028260800000 , 0.052794288001074] , [ 1028520000000 , 0.048830079056433] , [ 1028606400000 , 0.04830795755802] , [ 1028692800000 , 0.046694386733552] , [ 1028779200000 , 0.046048825010111] , [ 1028865600000 , 0.043968440546513] , [ 1029124800000 , 0.044179113886454] , [ 1029211200000 , 0.045862261142808] , [ 1029297600000 , 0.047735224729697] , [ 1029384000000 , 0.027402404982823] , [ 1029470400000 , 0.051283228742547] , [ 1029729600000 , 0.029734803031494] , [ 1029816000000 , 0.029447282204104] , [ 1029902400000 , 0.0081947343639122] , [ 1029988800000 , 0.0082875016441072] , [ 1030075200000 , 0.0084812154336843] , [ 1030334400000 , 0.0082494971845111] , [ 1030420800000 , 0.0087524913426621] , [ 1030507200000 , 0.0083171127501928] , [ 1030593600000 , 0.0088632848912256] , [ 1030680000000 , 0.030524537250295] , [ 1031025600000 , 0.027179553700435] , [ 1031112000000 , 0.029202412960846] , [ 1031198400000 , 0.025577102082837] , [ 1031284800000 , 0.027218780963533] , [ 1031544000000 , 0.026682952617785] , [ 1031630400000 , 0.025820358037713] , [ 1031716800000 , 0.02864180610564] , [ 1031803200000 , 0.029522574975908] , [ 1031889600000 , 0.029701526933449] , [ 1032148800000 , 0.025413548641451] , [ 1032235200000 , 0.048679365811936] , [ 1032321600000 , 0.046128734036551] , [ 1032408000000 , 0.097800944656213] , [ 1032494400000 , 0.074682035703262] , [ 1032753600000 , 0.088183756583354] , [ 1032840000000 , 0.059489216840767] , [ 1032926400000 , 0.063363353550999] , [ 1033012800000 , 0.091208294489438] , [ 1033099200000 , 0.091446537701664] , [ 1033358400000 , 0.077090765941227] , [ 1033444800000 , 0.062054377143362] , [ 1033531200000 , 0.11806649580567] , [ 1033617600000 , 0.11540633323035] , [ 1033704000000 , 0.16183853123234] , [ 1033963200000 , 0.15594632997253] , [ 1034049600000 , 0.14501347271368] , [ 1034136000000 , 0.1444919104572] , [ 1034222400000 , 0.14658465912131] , [ 1034308800000 , 0.1525043573541] , [ 1034568000000 , 0.15775913417711] , [ 1034654400000 , 0.089002682309892] , [ 1034740800000 , 0.13206548036825] , [ 1034827200000 , 0.094793857715554] , [ 1034913600000 , 0.067535937208267] , [ 1035172800000 , 0.039107073567352] , [ 1035259200000 , 0.04188756531426] , [ 1035345600000 , 0.043602389024547] , [ 1035432000000 , 0.042460499066148] , [ 1035518400000 , 0.024746193680077] , [ 1035781200000 , 0.02487105197651] , [ 1035867600000 , 0.024692166201586] , [ 1035954000000 , 0.044021787571216] , [ 1036040400000 , 0.090169160763172] , [ 1036126800000 , 0.045182782591776] , [ 1036386000000 , 0.0040918570463389] , [ 1036472400000 , 0.0044895567346257] , [ 1036558800000 , 0.0042247195544619] , [ 1036645200000 , 0.0045196884263424] , [ 1036731600000 , 0.0047440551087516] , [ 1036990800000 , 0.0047858895207734] , [ 1037077200000 , 0.004971642899429] , [ 1037163600000 , 0.0047317044827047] , [ 1037250000000 , 0.0048305425834295] , [ 1037336400000 , 0.004781439217492] , [ 1037595600000 , 0.0043689807284714] , [ 1037682000000 , 0.022253462556731] , [ 1037768400000 , 0.026890274987304] , [ 1037854800000 , 0.022485140609694] , [ 1037941200000 , 0.024723721850142] , [ 1038200400000 , 0.023444631235535] , [ 1038286800000 , 0.026729266213532] , [ 1038373200000 , 0.024916652064622] , [ 1038546000000 , 0.0237846202167] , [ 1038805200000 , 0.026376464287141] , [ 1038891600000 , 0.024033645621089] , [ 1038978000000 , 0.026191550654288] , [ 1039064400000 , 0.023248895677599] , [ 1039150800000 , 0.023243901324975] , [ 1039410000000 , 0.022479954846225] , [ 1039496400000 , 0.01955550559204] , [ 1039582800000 , 0.021456798675209] , [ 1039669200000 , 0.020558740057583] , [ 1039755600000 , 0.019106427636736] , [ 1040014800000 , 0.020710174382726] , [ 1040101200000 , 0.039712497140162] , [ 1040187600000 , 0.036802792986977] , [ 1040274000000 , 0.033606397107795] , [ 1040360400000 , 0.034075662443729] , [ 1040619600000 , 0.030958691503978] , [ 1040706000000 , 0.032604853627586] , [ 1040878800000 , 0.034465358435239] , [ 1040965200000 , 0.034676178668772] , [ 1041224400000 , 0.029097526549999] , [ 1041310800000 , 0.0044449861991488] , [ 1041483600000 , 0.0044757138046207] , [ 1041570000000 , 0.0043652404522661] , [ 1041829200000 , 0.0045893913619599] , [ 1041915600000 , 0.0043848645185263] , [ 1042002000000 , 0.03158039316712] , [ 1042088400000 , 0.004225792718503] , [ 1042174800000 , 0.0043573268247214] , [ 1042434000000 , 0.0044716623546281] , [ 1042520400000 , 0.0043682663976702] , [ 1042606800000 , 0.051929595182646] , [ 1042693200000 , 0.051270012888802] , [ 1042779600000 , 0.050178473278066] , [ 1043125200000 , 0.079459123607893] , [ 1043211600000 , 0.076861898628379] , [ 1043298000000 , 0.071371340078594] , [ 1043384400000 , 0.065395420495007] , [ 1043643600000 , 0.062287201691008] , [ 1043730000000 , 0.066276678772633] , [ 1043816400000 , 0.063832036839109] , [ 1043902800000 , 0.058481466049929] , [ 1043989200000 , 0.064383103276217] , [ 1044248400000 , 0.061181424454157] , [ 1044334800000 , 0.050001097388248] , [ 1044421200000 , 0.051447477328196] , [ 1044507600000 , 0.049162937407877] , [ 1044594000000 , 0.048224258492721] , [ 1044853200000 , 0.048446875849919] , [ 1044939600000 , 0.047703096485975] , [ 1045026000000 , 0.053712919634203] , [ 1045112400000 , 0.049263395326262] , [ 1045198800000 , 0.055243564152776] , [ 1045544400000 , 0.056366522915878] , [ 1045630800000 , 0.060553413901827] , [ 1045717200000 , 0.062769208889923] , [ 1045803600000 , 0.056711903116187] , [ 1046062800000 , 0.057990403185434] , [ 1046149200000 , 0.041380540161162] , [ 1046235600000 , 0.047823294172337] , [ 1046322000000 , 0.052248205388428] , [ 1046408400000 , 0.047172729131362] , [ 1046667600000 , 0.04405251866959] , [ 1046754000000 , 0.043194364152296] , [ 1046840400000 , 0.044360594447895] , [ 1046926800000 , 0.042564787358729] , [ 1047013200000 , 0.039079216183048] , [ 1047272400000 , 0.037938494395436] , [ 1047358800000 , 0.037448434943879] , [ 1047445200000 , 0.033718749626009] , [ 1047531600000 , 0.037932878282205] , [ 1047618000000 , 0.039314724782477] , [ 1047877200000 , 0.037658953860599] , [ 1047963600000 , 0.037762971944543] , [ 1048050000000 , 0.03871520488552] , [ 1048136400000 , 0.037349385270628] , [ 1048222800000 , 0.036011871294001] , [ 1048482000000 , 0.033739216797907] , [ 1048568400000 , 0.03589259731374] , [ 1048654800000 , 0.03737314388633] , [ 1048741200000 , 0.037481913711678] , [ 1048827600000 , 0.033454616742699] , [ 1049086800000 , 0.012507674209947] , [ 1049173200000 , 0.013105750883335] , [ 1049259600000 , 0.013018450336839] , [ 1049346000000 , 0.013707510247831] , [ 1049432400000 , 0.012990677774848] , [ 1049688000000 , 0.012564358974202] , [ 1049774400000 , 0.012801376647984] , [ 1049860800000 , 0.012613707240633] , [ 1049947200000 , 0.012552830610678] , [ 1050033600000 , 0.013200264923986] , [ 1050292800000 , 0.012872428048094] , [ 1050379200000 , 0.013210572903832] , [ 1050465600000 , 0.012968091392463] , [ 1050552000000 , 0.0042788032700636] , [ 1050897600000 , 0.0039344830528271] , [ 1050984000000 , 0.0039018367447018] , [ 1051070400000 , 0.003701306809606] , [ 1051156800000 , 0.0037373530626153] , [ 1051243200000 , 0.0038624302404062] , [ 1051502400000 , 0.0039986263360063] , [ 1051588800000 , 0.0037820446282556] , [ 1051675200000 , 0.0038901628495959] , [ 1051761600000 , 0.0041171016188502] , [ 1051848000000 , 0.0038836988933912] , [ 1052107200000 , 0.003621686788833] , [ 1052193600000 , 0.0042625972368624] , [ 1052280000000 , 0.0038269981093598] , [ 1052366400000 , 0.0037956020746228] , [ 1052452800000 , 0.0037860462253253] , [ 1052712000000 , 0.0037422250400484] , [ 1052798400000 , 0.0037026556033026] , [ 1052884800000 , 0.0038002884256296] , [ 1052971200000 , 0.0038472697130329] , [ 1053057600000 , 0.0036882588478701] , [ 1053316800000 , 0.0040364411324761] , [ 1053403200000 , 0.0040798276511065] , [ 1053489600000 , 0.003840596050564] , [ 1053576000000 , 0.0038336035126208] , [ 1053662400000 , 0.0039009660495121] , [ 1054008000000 , 0.004422002859048] , [ 1054094400000 , 0.0041860559959442] , [ 1054180800000 , 0.0043606836309608] , [ 1054267200000 , 0.0043416565265813] , [ 1054526400000 , 0.0041295814088803] , [ 1054612800000 , 0.0042963522225601] , [ 1054699200000 , 0.0042386625505222] , [ 1054785600000 , 0.0043457762698409] , [ 1054872000000 , 0.0041019360686612] , [ 1055131200000 , 0.0040616807890817] , [ 1055217600000 , 0.0043274383850849] , [ 1055304000000 , 0.0042899480830675] , [ 1055390400000 , 0.0042455668071843] , [ 1055476800000 , 0.0045749481726146] , [ 1055736000000 , 0.0044634464769408] , [ 1055822400000 , 0.0044977442312724] , [ 1055908800000 , 0.003999833396281] , [ 1055995200000 , 0.0042336290691125] , [ 1056081600000 , 0.0044770856161414] , [ 1056340800000 , 0.0044384290447745] , [ 1056427200000 , 0.004108400019291] , [ 1056513600000 , 0.0046157162910058] , [ 1056600000000 , 0.0048438038025096] , [ 1056686400000 , 0.0046748757489901] , [ 1056945600000 , 0.0041625649899761] , [ 1057032000000 , 0.0037157217666868] , [ 1057118400000 , 0.003708355330733] , [ 1057204800000 , 0.0037330351723062] , [ 1057550400000 , 0.0037187614081074] , [ 1057636800000 , 0.0038013361729803] , [ 1057723200000 , 0.0039679897321484] , [ 1057809600000 , 0.0037976430836964] , [ 1057896000000 , 0.0035868623917725] , [ 1058155200000 , 0.0035525745498187] , [ 1058241600000 , 0.0039026649865817] , [ 1058328000000 , 0.0037560146536565] , [ 1058414400000 , 0.0033891745167867] , [ 1058500800000 , 0.0033188545812138] , [ 1058760000000 , 0.003499238593776] , [ 1058846400000 , 0.0035189556376036] , [ 1058932800000 , 0.0035857553754461] , [ 1059019200000 , 0.0037630753676146] , [ 1059105600000 , 0.0035138251358084] , [ 1059364800000 , 0.0036971501123804] , [ 1059451200000 , 0.0034858490402712] , [ 1059537600000 , 0.0036694310601687] , [ 1059624000000 , 0.0030797110100797] , [ 1059710400000 , 0.003046989647545] , [ 1059969600000 , 0.0033219780674728] , [ 1060056000000 , 0.0030841714099078] , [ 1060142400000 , 0.0030472639733462] , [ 1060228800000 , 0.0029646517727957] , [ 1060315200000 , 0.0030360371652247] , [ 1060574400000 , 0.0030567111190777] , [ 1060660800000 , 0.0029746548667045] , [ 1060747200000 , 0.0028308520505102] , [ 1060833600000 , 0.0029134906418826] , [ 1060920000000 , 0.0030729314286277] , [ 1061179200000 , 0.0030316406081977] , [ 1061265600000 , 0.0030797652444305] , [ 1061352000000 , 0.0030941235796122] , [ 1061438400000 , 0.0032439084687081] , [ 1061524800000 , 0.0029552076091776] , [ 1061784000000 , 0.003282451962204] , [ 1061870400000 , 0.0029142650727789] , [ 1061956800000 , 0.0030057735100026] , [ 1062043200000 , 0.0029607647613211] , [ 1062129600000 , 0.0028558144252586] , [ 1062475200000 , 0.0029508890560702] , [ 1062561600000 , 0.0028612017105935] , [ 1062648000000 , 0.002765424444091] , [ 1062734400000 , 0.0026816827871882] , [ 1062993600000 , 0.0027934474181613] , [ 1063080000000 , 0.0028771146712526] , [ 1063166400000 , 0.0028206806742064] , [ 1063252800000 , 0.0028429443447262] , [ 1063339200000 , 0.0027126299959] , [ 1063598400000 , 0.0027648894585895] , [ 1063684800000 , 0.0029164325119996] , [ 1063771200000 , 0.0027075898441596] , [ 1063857600000 , 0.0027629859383951] , [ 1063944000000 , 0.0028710035970681] , [ 1064203200000 , 0.0028121948200106] , [ 1064289600000 , 0.0028979055225736] , [ 1064376000000 , 0.0026357785050804] , [ 1064462400000 , 0.0025855374186268] , [ 1064548800000 , 0.0026944841950042] , [ 1064808000000 , 0.0028469519608374] , [ 1064894400000 , 0.28450817412486] , [ 1064980800000 , 0.31109111101317] , [ 1065067200000 , 0.30186408684386] , [ 1065153600000 , 0.30249680948414] , [ 1065412800000 , 0.2865400635939] , [ 1065499200000 , 0.31793686980739] , [ 1065585600000 , 0.29721249885027] , [ 1065672000000 , 0.31224905608148] , [ 1065758400000 , 0.29828756004301] , [ 1066017600000 , 0.29823222376042] , [ 1066104000000 , 0.29848422539315] , [ 1066190400000 , 0.32615452875859] , [ 1066276800000 , 0.30781706307439] , [ 1066363200000 , 0.31999926538106] , [ 1066622400000 , 0.30846621267775] , [ 1066708800000 , 0.31350986157648] , [ 1066795200000 , 0.29488524651126] , [ 1066881600000 , 0.28140710689657] , [ 1066968000000 , 0.29808636614419] , [ 1067230800000 , 0.30856294304693] , [ 1067317200000 , 0.28957259176879] , [ 1067403600000 , 0.28574594167472] , [ 1067490000000 , 0.31397082372905] , [ 1067576400000 , 0.28098899739321] , [ 1067835600000 , 0.29580008798477] , [ 1067922000000 , 0.28124260869349] , [ 1068008400000 , 0.29030454217497] , [ 1068094800000 , 0.29381621565781] , [ 1068181200000 , 0.28413763662147] , [ 1068440400000 , 0.29133978452184] , [ 1068526800000 , 0.2974691241592] , [ 1068613200000 , 0.27785739697111] , [ 1068699600000 , 0.28692237955946] , [ 1068786000000 , 0.3025430975109] , [ 1069045200000 , 0.27974024019066] , [ 1069131600000 , 0.28205204096901] , [ 1069218000000 , 0.27891578500471] , [ 1069304400000 , 0.28621399096311] , [ 1069390800000 , 0.30611724687275] , [ 1069650000000 , 0.29522193733073] , [ 1069736400000 , 0.31041433675291] , [ 1069822800000 , 0.30207273938285] , [ 1069995600000 , 0.28077746495088] , [ 1070254800000 , 0.30790142300384] , [ 1070341200000 , 0.32391042322391] , [ 1070427600000 , 0.34713120693035] , [ 1070514000000 , 0.3130639380082] , [ 1070600400000 , 0.35277991114677] , [ 1070859600000 , 0.34951269944728] , [ 1070946000000 , 0.33728676441237] , [ 1071032400000 , 0.32858316551564] , [ 1071118800000 , 0.34763771488822] , [ 1071205200000 , 0.31112426298048] , [ 1071464400000 , 0.31403635126568] , [ 1071550800000 , 0.32993619699926] , [ 1071637200000 , 0.31744271908573] , [ 1071723600000 , 0.34230352522983] , [ 1071810000000 , 0.33204474901422] , [ 1072069200000 , 0.31508659873016] , [ 1072155600000 , 0.30865482857886] , [ 1072242000000 , 0.33797905101825] , [ 1072414800000 , 0.31028066128089] , [ 1072674000000 , 0.31253897726674] , [ 1072760400000 , 0.32921073586772] , [ 1072846800000 , 0.14257457669076] , [ 1073019600000 , 0.13791540423409] , [ 1073278800000 , 0.14432340497197] , [ 1073365200000 , 0.15731652697115] , [ 1073451600000 , 0.14355785855527] , [ 1073538000000 , 0.16181965532861] , [ 1073624400000 , 0.15938892375434] , [ 1073883600000 , 0.15612820664935] , [ 1073970000000 , 0.16074839713582] , [ 1074056400000 , 0.15669429168927] , [ 1074142800000 , 0.15252977201682] , [ 1074229200000 , 0.14604668084587] , [ 1074574800000 , 0.15730724457241] , [ 1074661200000 , 0.16180469669709] , [ 1074747600000 , 0.14482627470363] , [ 1074834000000 , 0.14922715192894] , [ 1075093200000 , 0.1551228043648] , [ 1075179600000 , 0.15461983207271] , [ 1075266000000 , 0.15924640096304] , [ 1075352400000 , 0.14347045313405] , [ 1075438800000 , 0.14088687051379] , [ 1075698000000 , 0.15458807863583] , [ 1075784400000 , 0.15606294751813] , [ 1075870800000 , 0.14460768492755] , [ 1075957200000 , 0.14017923217902] , [ 1076043600000 , 0.1448942047385] , [ 1076302800000 , 0.15973701641069] , [ 1076389200000 , 0.15226261560714] , [ 1076475600000 , 0.15789748591526] , [ 1076562000000 , 0.15573299785437] , [ 1076648400000 , 0.14564531768807] , [ 1076994000000 , 0.14980257281745] , [ 1077080400000 , 0.14667065102403] , [ 1077166800000 , 0.13754541763094] , [ 1077253200000 , 0.13300705129563] , [ 1077512400000 , 0.13930940301128] , [ 1077598800000 , 0.14000243690974] , [ 1077685200000 , 0.14962969085648] , [ 1077771600000 , 0.14056323655239] , [ 1077858000000 , 0.13422382457535] , [ 1078117200000 , 0.14210937327344] , [ 1078203600000 , 0.14700633353328] , [ 1078290000000 , 0.13922688521116] , [ 1078376400000 , 0.14429758068854] , [ 1078462800000 , 0.15506959894598] , [ 1078722000000 , 0.14294018272796] , [ 1078808400000 , 0.14048959983036] , [ 1078894800000 , 0.13602811904017] , [ 1078981200000 , 0.13834202833344] , [ 1079067600000 , 0.14919796731091] , [ 1079326800000 , 0.13369419896477] , [ 1079413200000 , 0.14255082934923] , [ 1079499600000 , 0.13484850822421] , [ 1079586000000 , 0.15109195448804] , [ 1079672400000 , 0.13905057529637] , [ 1079931600000 , 0.13735280549285] , [ 1080018000000 , 0.13381725746529] , [ 1080104400000 , 0.13673513876199] , [ 1080190800000 , 0.1280950099741] , [ 1080277200000 , 0.13638870404742] , [ 1080536400000 , 0.13447210188141] , [ 1080622800000 , 0.13037846707069] , [ 1080709200000 , 0.043079993242009] , [ 1080795600000 , 0.040283747607273] , [ 1080882000000 , 0.044430430484027] , [ 1081137600000 , 0.040653587592269] , [ 1081224000000 , 0.043823771403589] , [ 1081310400000 , 0.041411458422106] , [ 1081396800000 , 0.040402011530743] , [ 1081742400000 , 0.042057438639387] , [ 1081828800000 , 0.042452570156989] , [ 1081915200000 , 0.038165859581189] , [ 1082001600000 , 0.039800435677929] , [ 1082088000000 , 0.038702582698507] , [ 1082347200000 , 0.037749891296561] , [ 1082433600000 , 0.040562005953138] , [ 1082520000000 , 0.038558873688731] , [ 1082606400000 , 0.040439454716736] , [ 1082692800000 , 0.041191779962148] , [ 1082952000000 , 0.039027043724878] , [ 1083038400000 , 0.040125276167174] , [ 1083124800000 , 0.043329459718505] , [ 1083211200000 , 0.042136782417024] , [ 1083297600000 , 0.039989708477652] , [ 1083556800000 , 0.036112529587832] , [ 1083643200000 , 0.038846431332102] , [ 1083729600000 , 0.036235278931083] , [ 1083816000000 , 0.033237448382233] , [ 1083902400000 , 0.033796088137171] , [ 1084161600000 , 0.033002551404037] , [ 1084248000000 , 0.033765716675188] , [ 1084334400000 , 0.031829313688668] , [ 1084420800000 , 0.033063294629432] , [ 1084507200000 , 0.032914634549266] , [ 1084766400000 , 0.032554802145526] , [ 1084852800000 , 0.033636940345072] , [ 1084939200000 , 0.036962486047104] , [ 1085025600000 , 0.036694593609774] , [ 1085112000000 , 0.03635113401995] , [ 1085371200000 , 0.037457306639345] , [ 1085457600000 , 0.036179209670313] , [ 1085544000000 , 0.036806248250445] , [ 1085630400000 , 0.036443758510971] , [ 1085716800000 , 0.036448425901262] , [ 1086062400000 , 0.041968833381239] , [ 1086148800000 , 0.038863027838162] , [ 1086235200000 , 0.04214956816562] , [ 1086321600000 , 0.041207634063618] , [ 1086580800000 , 0.03827641940432] , [ 1086667200000 , 0.036864722915658] , [ 1086753600000 , 0.036181894590074] , [ 1086840000000 , 0.034003906026981] , [ 1087185600000 , 0.038515333181245] , [ 1087272000000 , 0.034646045294979] , [ 1087358400000 , 0.037496122292149] , [ 1087444800000 , 0.039023018918331] , [ 1087531200000 , 0.036816514296769] , [ 1087790400000 , 0.037892980128942] , [ 1087876800000 , 0.042502806354063] , [ 1087963200000 , 0.042395293229815] , [ 1088049600000 , 0.037996106758165] , [ 1088136000000 , 0.036290640119804] , [ 1088395200000 , 0.037444338433371] , [ 1088481600000 , 0.036450560918436] , [ 1088568000000 , 0.38987608574103] , [ 1088654400000 , 0.36007497681376] , [ 1088740800000 , 0.35916161356966] , [ 1089086400000 , 0.34837877579055] , [ 1089172800000 , 0.35919440094404] , [ 1089259200000 , 0.38475991637086] , [ 1089345600000 , 0.32837764490869] , [ 1089604800000 , 0.31853247564573] , [ 1089691200000 , 0.32584208381372] , [ 1089777600000 , 0.32194156348395] , [ 1089864000000 , 0.37536662084325] , [ 1089950400000 , 0.3766551887084] , [ 1090209600000 , 0.40726679545134] , [ 1090296000000 , 0.38648530146356] , [ 1090382400000 , 0.37409632246768] , [ 1090468800000 , 0.37409544007818] , [ 1090555200000 , 0.37055835119221] , [ 1090814400000 , 0.37550685955691] , [ 1090900800000 , 0.37419170032409] , [ 1090987200000 , 0.38151211478009] , [ 1091073600000 , 0.37026251646666] , [ 1091160000000 , 0.39580708538652] , [ 1091419200000 , 0.40223381041709] , [ 1091505600000 , 0.39397469057887] , [ 1091592000000 , 0.38461208040503] , [ 1091678400000 , 0.40157185514709] , [ 1091764800000 , 0.49468773985675] , [ 1092024000000 , 0.46157456459015] , [ 1092110400000 , 0.47406411916133] , [ 1092196800000 , 0.50875166265444] , [ 1092283200000 , 0.47804780106801] , [ 1092369600000 , 0.48513183701324] , [ 1092628800000 , 0.47397457255883] , [ 1092715200000 , 0.46197589413417] , [ 1092801600000 , 0.37675242805852] , [ 1092888000000 , 0.38434167263157] , [ 1092974400000 , 0.38370069077138] , [ 1093233600000 , 0.3694792334813] , [ 1093320000000 , 0.36966353326572] , [ 1093406400000 , 0.37981222720974] , [ 1093492800000 , 0.39157851067496] , [ 1093579200000 , 0.39832930183424] , [ 1093838400000 , 0.41714833138812] , [ 1093924800000 , 0.41957688664075] , [ 1094011200000 , 0.4029673674536] , [ 1094097600000 , 0.41012586224919] , [ 1094184000000 , 0.40990165088346] , [ 1094529600000 , 0.40441056282186] , [ 1094616000000 , 0.40384129044752] , [ 1094702400000 , 0.4043469357522] , [ 1094788800000 , 0.41087997979019] , [ 1095048000000 , 0.40369920893288] , [ 1095134400000 , 0.41220446836229] , [ 1095220800000 , 0.41020321980473] , [ 1095307200000 , 0.41555570322753] , [ 1095393600000 , 0.4023472363438] , [ 1095652800000 , 0.41410888862687] , [ 1095739200000 , 0.39846061791906] , [ 1095825600000 , 0.41474213178066] , [ 1095912000000 , 0.38423985142339] , [ 1095998400000 , 0.33696459849967] , [ 1096257600000 , 0.37240522401662] , [ 1096344000000 , 0.34510432816914] , [ 1096430400000 , 0.33136351494997] , [ 1096516800000 , 0.38436797167454] , [ 1096603200000 , 0.36392113068077] , [ 1096862400000 , 0.38394438541252] , [ 1096948800000 , 0.37738905657046] , [ 1097035200000 , 0.37129524939141] , [ 1097121600000 , 0.37661307666643] , [ 1097208000000 , 0.38376339925963] , [ 1097467200000 , 0.37698090395419] , [ 1097553600000 , 0.38466438465664] , [ 1097640000000 , 0.38552917097573] , [ 1097726400000 , 0.38295574557265] , [ 1097812800000 , 0.38608823287329] , [ 1098072000000 , 0.39606272849381] , [ 1098158400000 , 0.39977219262761] , [ 1098244800000 , 0.37287975500762] , [ 1098331200000 , 0.35387196145581] , [ 1098417600000 , 0.39496745491125] , [ 1098676800000 , 0.39489927197645] , [ 1098763200000 , 0.35714549128851] , [ 1098849600000 , 0.37680375842899] , [ 1098936000000 , 0.38133362981812] , [ 1099022400000 , 0.36334295857985] , [ 1099285200000 , 0.35891130650083] , [ 1099371600000 , 0.36213450201907] , [ 1099458000000 , 0.36305986324541] , [ 1099544400000 , 0.367181608239] , [ 1099630800000 , 0.345924979949] , [ 1099890000000 , 0.35545038697162] , [ 1099976400000 , 0.35130608250988] , [ 1100062800000 , 0.36291787792322] , [ 1100149200000 , 0.36461820979297] , [ 1100235600000 , 0.36548605733172] , [ 1100494800000 , 0.35408841887334] , [ 1100581200000 , 0.37310682746733] , [ 1100667600000 , 0.37161415702166] , [ 1100754000000 , 0.36646386964788] , [ 1100840400000 , 0.37513819386426] , [ 1101099600000 , 0.36383784194996] , [ 1101186000000 , 0.3651170397601] , [ 1101272400000 , 0.36683085353481] , [ 1101445200000 , 0.37539330498467] , [ 1101704400000 , 0.34882620581261] , [ 1101790800000 , 0.36517170678901] , [ 1101877200000 , 0.33963261527792] , [ 1101963600000 , 0.34647852737023] , [ 1102050000000 , 0.35698021026837] , [ 1102309200000 , 0.35844452137989] , [ 1102395600000 , 0.37978658052913] , [ 1102482000000 , 0.364670534636] , [ 1102568400000 , 0.36800280374422] , [ 1102654800000 , 0.35323070569743] , [ 1102914000000 , 0.35145593502416] , [ 1103000400000 , 0.34920002707242] , [ 1103086800000 , 0.36655737046135] , [ 1103173200000 , 0.37968359792346] , [ 1103259600000 , 0.37364127890912] , [ 1103518800000 , 0.38158951606706] , [ 1103605200000 , 0.37753112891031] , [ 1103691600000 , 0.40140328460469] , [ 1103778000000 , 0.37862280609298] , [ 1104123600000 , 0.38788453693715] , [ 1104210000000 , 0.39351850639239] , [ 1104296400000 , 0.3854342015797] , [ 1104382800000 , 0.39209212572227] , [ 1104469200000 , 0.62122235607083] , [ 1104728400000 , 0.60121120663027] , [ 1104814800000 , 0.61454818094337] , [ 1104901200000 , 0.58416165264652] , [ 1104987600000 , 0.60424076612216] , [ 1105074000000 , 0.59676116438901] , [ 1105333200000 , 0.59892159471824] , [ 1105419600000 , 0.58659097926312] , [ 1105506000000 , 0.5953209241749] , [ 1105592400000 , 0.64456653204505] , [ 1105678800000 , 0.64021470874433] , [ 1106024400000 , 0.62906481191661] , [ 1106110800000 , 0.61867908036089] , [ 1106197200000 , 0.63893923395183] , [ 1106283600000 , 0.64227178085747] , [ 1106542800000 , 0.65347064004625] , [ 1106629200000 , 0.63035617304371] , [ 1106715600000 , 0.64772810508811] , [ 1106802000000 , 0.64286914127566] , [ 1106888400000 , 0.62302840939674] , [ 1107147600000 , 0.66149167638339] , [ 1107234000000 , 0.61967119931611] , [ 1107320400000 , 0.63596342992503] , [ 1107406800000 , 0.63582183776166] , [ 1107493200000 , 0.63890003629705] , [ 1107752400000 , 0.65385112283064] , [ 1107838800000 , 0.61763865993933] , [ 1107925200000 , 0.63039219633145] , [ 1108011600000 , 0.63564728405509] , [ 1108098000000 , 0.64841840732127] , [ 1108357200000 , 0.62987978032264] , [ 1108443600000 , 0.63952467251781] , [ 1108530000000 , 0.60803506762993] , [ 1108616400000 , 0.60924199574948] , [ 1108702800000 , 0.62720795451261] , [ 1109048400000 , 0.67868561376144] , [ 1109134800000 , 0.64457773480528] , [ 1109221200000 , 0.63854921418197] , [ 1109307600000 , 0.60472528190715] , [ 1109566800000 , 0.64880843481536] , [ 1109653200000 , 0.60929190900967] , [ 1109739600000 , 0.60262584872237] , [ 1109826000000 , 0.6209822624622] , [ 1109912400000 , 0.59399619054478] , [ 1110171600000 , 0.59262634332275] , [ 1110258000000 , 0.59569530567455] , [ 1110344400000 , 0.58280395041141] , [ 1110430800000 , 0.60118706408301] , [ 1110517200000 , 0.60510096760445] , [ 1110776400000 , 0.60793443149121] , [ 1110862800000 , 0.6094232824956] , [ 1110949200000 , 0.56373698317073] , [ 1111035600000 , 0.59026315151813] , [ 1111122000000 , 0.56275388104744] , [ 1111381200000 , 0.58593902224025] , [ 1111467600000 , 0.5636885616686] , [ 1111554000000 , 0.55111487934048] , [ 1111640400000 , 0.5669793931446] , [ 1111986000000 , 0.59172264305349] , [ 1112072400000 , 0.59013350447577] , [ 1112158800000 , 0.58571949529017] , [ 1112245200000 , 0.39447011058686] , [ 1112331600000 , 0.36400425514622] , [ 1112587200000 , 0.35776258470175] , [ 1112673600000 , 0.43851650789862] , [ 1112760000000 , 0.44412013643186] , [ 1112846400000 , 0.37989410253067] , [ 1112932800000 , 0.28900177382308] , [ 1113192000000 , 0.36788915652238] , [ 1113278400000 , 0.28579009834861] , [ 1113364800000 , 0.28469677412475] , [ 1113451200000 , 0.35795943627113] , [ 1113537600000 , 0.37082979476416] , [ 1113796800000 , 0.36779695018111] , [ 1113883200000 , 0.34374004726135] , [ 1113969600000 , 0.45643149590384] , [ 1114056000000 , 0.4433743395976] , [ 1114142400000 , 0.44202423487566] , [ 1114401600000 , 0.43961049637811] , [ 1114488000000 , 0.45267658788063] , [ 1114574400000 , 0.47018137492095] , [ 1114660800000 , 0.47486798354402] , [ 1114747200000 , 0.46606299998856] , [ 1115006400000 , 0.4930085582113] , [ 1115092800000 , 0.48965988041656] , [ 1115179200000 , 0.45667786660287] , [ 1115265600000 , 0.43885993023529] , [ 1115352000000 , 0.43783601240521] , [ 1115611200000 , 0.4310821346918] , [ 1115697600000 , 0.4432921360618] , [ 1115784000000 , 0.42739604366661] , [ 1115870400000 , 0.43416913766062] , [ 1115956800000 , 0.41027380462257] , [ 1116216000000 , 0.42436135767604] , [ 1116302400000 , 0.43629236570361] , [ 1116388800000 , 0.42852586390979] , [ 1116475200000 , 0.4284589768507] , [ 1116561600000 , 0.42724164025025] , [ 1116820800000 , 0.42148141673019] , [ 1116907200000 , 0.4140427664496] , [ 1116993600000 , 0.42817051090869] , [ 1117080000000 , 0.42811591532169] , [ 1117166400000 , 0.43480202581251] , [ 1117512000000 , 0.42508589374691] , [ 1117598400000 , 0.43343422191068] , [ 1117684800000 , 0.45773506240682] , [ 1117771200000 , 0.45439490524272] , [ 1118030400000 , 0.45651971476796] , [ 1118116800000 , 0.44152980952614] , [ 1118203200000 , 0.44743209414993] , [ 1118289600000 , 0.45469129556631] , [ 1118376000000 , 0.43483167759493] , [ 1118635200000 , 0.43031082515377] , [ 1118721600000 , 0.45930933803502] , [ 1118808000000 , 0.46078342072977] , [ 1118894400000 , 0.45445895679547] , [ 1118980800000 , 0.4526778385454] , [ 1119240000000 , 0.45697274788597] , [ 1119326400000 , 0.46903515002673] , [ 1119412800000 , 0.46111612851752] , [ 1119499200000 , 0.47535664554388] , [ 1119585600000 , 0.49306841028507] , [ 1119844800000 , 0.4886760061369] , [ 1119931200000 , 0.47086383863461] , [ 1120017600000 , 0.48441858477258] , [ 1120104000000 , 0.61832296127608] , [ 1120190400000 , 0.65411477192991] , [ 1120536000000 , 0.49894747385731] , [ 1120622400000 , 0.48469523615474] , [ 1120708800000 , 0.65138056809888] , [ 1120795200000 , 0.64304910758613] , [ 1121054400000 , 0.6559920402659] , [ 1121140800000 , 0.66118089680451] , [ 1121227200000 , 0.67756803258577] , [ 1121313600000 , 0.65216285229659] , [ 1121400000000 , 0.66711843230222] , [ 1121659200000 , 0.69144986128045] , [ 1121745600000 , 0.67159046845325] , [ 1121832000000 , 0.70807395185446] , [ 1121918400000 , 0.54095667281304] , [ 1122004800000 , 0.5089879981561] , [ 1122264000000 , 0.52352511046863] , [ 1122350400000 , 0.55171566660544] , [ 1122436800000 , 0.58026398134902] , [ 1122523200000 , 0.5447757294053] , [ 1122609600000 , 0.56643699438967] , [ 1122868800000 , 0.53218738821095] , [ 1122955200000 , 0.5555811146351] , [ 1123041600000 , 0.54105772037403] , [ 1123128000000 , 0.55216349591209] , [ 1123214400000 , 0.52244767865053] , [ 1123473600000 , 0.50308456664785] , [ 1123560000000 , 0.52096614517823] , [ 1123646400000 , 0.51516200583681] , [ 1123732800000 , 0.48665176191008] , [ 1123819200000 , 0.49583589167328] , [ 1124078400000 , 0.50358898065094] , [ 1124164800000 , 0.4982600605943] , [ 1124251200000 , 0.51638595395349] , [ 1124337600000 , 0.50290108239887] , [ 1124424000000 , 0.51420298894574] , [ 1124683200000 , 0.501356133759] , [ 1124769600000 , 0.48937594076624] , [ 1124856000000 , 0.50921605539711] , [ 1124942400000 , 0.51536905675379] , [ 1125028800000 , 0.52611915688051] , [ 1125288000000 , 0.50578707765142] , [ 1125374400000 , 0.51708117737528] , [ 1125460800000 , 0.52189353916232] , [ 1125547200000 , 0.51869992233272] , [ 1125633600000 , 0.52442570632128] , [ 1125979200000 , 0.52348135667568] , [ 1126065600000 , 0.50712149207143] , [ 1126152000000 , 0.39853144070375] , [ 1126238400000 , 0.37626143304953] , [ 1126497600000 , 0.37685246722436] , [ 1126584000000 , 0.37696682338027] , [ 1126670400000 , 0.38250303488507] , [ 1126756800000 , 0.38853878601149] , [ 1126843200000 , 0.39720205350604] , [ 1127102400000 , 0.38246621359149] , [ 1127188800000 , 0.39458479224224] , [ 1127275200000 , 0.39252448023845] , [ 1127361600000 , 0.39704540681604] , [ 1127448000000 , 0.3804141699462] , [ 1127707200000 , 0.37520772307294] , [ 1127793600000 , 0.36583102378453] , [ 1127880000000 , 0.53089570606572] , [ 1127966400000 , 0.53565511348212] , [ 1128052800000 , 0.28455156477589] , [ 1128312000000 , 0.2866996913567] , [ 1128398400000 , 0.29885906476219] , [ 1128484800000 , 0.30492356780702] , [ 1128571200000 , 0.28956840100103] , [ 1128657600000 , 0.30537553801139] , [ 1128916800000 , 0.29890984099937] , [ 1129003200000 , 0.29801974804218] , [ 1129089600000 , 0.28705739517062] , [ 1129176000000 , 0.27215719953539] , [ 1129262400000 , 0.28732688046429] , [ 1129521600000 , 0.26695255074849] , [ 1129608000000 , 0.27947140042508] , [ 1129694400000 , 0.1640126970422] , [ 1129780800000 , 0.28286904367429] , [ 1129867200000 , 0.29180870225613] , [ 1130126400000 , 0.30278273692719] , [ 1130212800000 , 0.29917849034537] , [ 1130299200000 , 0.28968981038784] , [ 1130385600000 , 0.28591902219754] , [ 1130472000000 , 0.29242694961535] , [ 1130734800000 , 0.29250242176988] , [ 1130821200000 , 0.40774792665504] , [ 1130907600000 , 0.29572035611257] , [ 1130994000000 , 0.29336140612499] , [ 1131080400000 , 0.2947155489941] , [ 1131339600000 , 0.27984604730157] , [ 1131426000000 , 0.27774017894691] , [ 1131512400000 , 0.2824108179446] , [ 1131598800000 , 0.27266476139892] , [ 1131685200000 , 0.28145760872602] , [ 1131944400000 , 0.2778405488462] , [ 1132030800000 , 0.28256142896452] , [ 1132117200000 , 0.27066399823214] , [ 1132203600000 , 0.26527518282653] , [ 1132290000000 , 0.26486010438949] , [ 1132549200000 , 0.28306154292559] , [ 1132635600000 , 0.26286597932896] , [ 1132722000000 , 0.26238074457023] , [ 1132894800000 , 0.26311379043932] , [ 1133154000000 , 0.4136159331706] , [ 1133240400000 , 0.35774547973642] , [ 1133326800000 , 0.53073899262452] , [ 1133413200000 , 0.36909398779325] , [ 1133499600000 , 0.36672946509259] , [ 1133758800000 , 0.37373430250645] , [ 1133845200000 , 0.37461389366391] , [ 1133931600000 , 0.35629393000642] , [ 1134018000000 , 0.3705943383987] , [ 1134104400000 , 0.37460270901238] , [ 1134363600000 , 0.36617723158865] , [ 1134450000000 , 0.37986767534784] , [ 1134536400000 , 0.37105346542707] , [ 1134622800000 , 0.37060332722022] , [ 1134709200000 , 0.38760430571762] , [ 1134968400000 , 0.36734330004461] , [ 1135054800000 , 0.37074758732076] , [ 1135141200000 , 0.35806178929791] , [ 1135227600000 , 0.35533559469085] , [ 1135314000000 , 0.35513143545522] , [ 1135659600000 , 0.35308688957685] , [ 1135746000000 , 0.37046506819907] , [ 1135832400000 , 0.36450014374408] , [ 1135918800000 , 0.36423801932024] , [ 1136264400000 , 0.49556220548654] , [ 1136350800000 , 0.49492386336512] , [ 1136437200000 , 0.49517380178303] , [ 1136523600000 , 0.50265710202576] , [ 1136782800000 , 0.39359946387333] , [ 1136869200000 , 0.38590236409208] , [ 1136955600000 , 0.39258576463726] , [ 1137042000000 , 0.40271080665062] , [ 1137128400000 , 0.41286962452156] , [ 1137474000000 , 0.40976940608917] , [ 1137560400000 , 0.39845421293693] , [ 1137646800000 , 0.3832634147807] , [ 1137733200000 , 0.3914749468988] , [ 1137992400000 , 0.4067663698373] , [ 1138078800000 , 0.40987816320618] , [ 1138165200000 , 0.40568311448644] , [ 1138251600000 , 0.40602370679277] , [ 1138338000000 , 0.41026253822456] , [ 1138597200000 , 0.39180236917409] , [ 1138683600000 , 0.4124647390781] , [ 1138770000000 , 0.39289366662715] , [ 1138856400000 , 0.3973910882774] , [ 1138942800000 , 0.39503027438072] , [ 1139202000000 , 0.43098602778232] , [ 1139288400000 , 0.41329553872152] , [ 1139374800000 , 0.42097021571259] , [ 1139461200000 , 0.42957769919783] , [ 1139547600000 , 0.43244535976359] , [ 1139806800000 , 0.4190517765553] , [ 1139893200000 , 0.43490107104911] , [ 1139979600000 , 0.41285628161217] , [ 1140066000000 , 0.42195967755994] , [ 1140152400000 , 0.42172858109231] , [ 1140498000000 , 0.41362154756379] , [ 1140584400000 , 0.45349210070292] , [ 1140670800000 , 0.46600395549677] , [ 1140757200000 , 0.42844351639394] , [ 1141016400000 , 0.43127658230242] , [ 1141102800000 , 0.42453897781965] , [ 1141189200000 , 0.60833201574911] , [ 1141275600000 , 0.61848160852955] , [ 1141362000000 , 0.61388606396602] , [ 1141621200000 , 0.60027623023359] , [ 1141707600000 , 0.62958204282625] , [ 1141794000000 , 0.61079677023637] , [ 1141880400000 , 0.6583353531538] , [ 1141966800000 , 0.5952631240736] , [ 1142226000000 , 0.59572939852303] , [ 1142312400000 , 0.60435386557059] , [ 1142398800000 , 0.636716777749] , [ 1142485200000 , 0.62797336156748] , [ 1142571600000 , 0.26315915844954] , [ 1142830800000 , 0.26682829281146] , [ 1142917200000 , 0.26238472701991] , [ 1143003600000 , 0.25682464700449] , [ 1143090000000 , 0.25198241716011] , [ 1143176400000 , 0.27791953686874] , [ 1143435600000 , 0.25702045419556] , [ 1143522000000 , 0.26838705583958] , [ 1143608400000 , 0.25602347019898] , [ 1143694800000 , 0.2528097115847] , [ 1143781200000 , 0.25423750493061] , [ 1144036800000 , 0.26206021897448] , [ 1144123200000 , 0.24983357579782] , [ 1144209600000 , 0.23574410786279] , [ 1144296000000 , 0.23489402412885] , [ 1144382400000 , 0.24917538519566] , [ 1144641600000 , 0.24218153667918] , [ 1144728000000 , 0.22900818782637] , [ 1144814400000 , 0.24260056138376] , [ 1144900800000 , 0.24209263019634] , [ 1145246400000 , 0.24104970681171] , [ 1145332800000 , 0.22962155097921] , [ 1145419200000 , 0.23594829847787] , [ 1145505600000 , 0.23357511845316] , [ 1145592000000 , 0.23466344797748] , [ 1145851200000 , 0.25382477010585] , [ 1145937600000 , 0.24498104622533] , [ 1146024000000 , 0.24856536934551] , [ 1146110400000 , 0.25490757398913] , [ 1146196800000 , 0.23927082407406] , [ 1146456000000 , 0.23862240395176] , [ 1146542400000 , 0.25340051572152] , [ 1146628800000 , 0.25153650791439] , [ 1146715200000 , 0.23832725080541] , [ 1146801600000 , 0.25824921427519] , [ 1147060800000 , 0.24328941145447] , [ 1147147200000 , 0.2402378238822] , [ 1147233600000 , 0.2586697308268] , [ 1147320000000 , 0.30189517371947] , [ 1147406400000 , 0.32297403691478] , [ 1147665600000 , 0.3232491211303] , [ 1147752000000 , 0.32742881018582] , [ 1147838400000 , 0.38921859671899] , [ 1147924800000 , 0.33326106234356] , [ 1148011200000 , 0.32021147443471] , [ 1148270400000 , 0.32262657135279] , [ 1148356800000 , 0.33651532188139] , [ 1148443200000 , 0.30920029793323] , [ 1148529600000 , 0.3240261610407] , [ 1148616000000 , 0.32324420598769] , [ 1148961600000 , 0.32918091697612] , [ 1149048000000 , 0.31768209061131] , [ 1149134400000 , 0.30637193238745] , [ 1149220800000 , 0.32125702341211] , [ 1149480000000 , 0.33536974402701] , [ 1149566400000 , 0.32360008173408] , [ 1149652800000 , 0.33393947607866] , [ 1149739200000 , 0.31413863931084] , [ 1149825600000 , 0.3285324913035] , [ 1150084800000 , 0.38048398262873] , [ 1150171200000 , 0.38109368075766] , [ 1150257600000 , 0.38535042978206] , [ 1150344000000 , 0.37871618841262] , [ 1150430400000 , 0.30179728522937] , [ 1150689600000 , 0.30070122407365] , [ 1150776000000 , 0.2953152783643] , [ 1150862400000 , 0.30810454322489] , [ 1150948800000 , 0.30950223296979] , [ 1151035200000 , 0.30751277925044] , [ 1151294400000 , 0.28946090712408] , [ 1151380800000 , 0.28171452650496] , [ 1151467200000 , 0.26818310831493] , [ 1151553600000 , 0.25159447935111] , [ 1151640000000 , 0.29285262329978] , [ 1151899200000 , 0.29967797591809] , [ 1152072000000 , 0.30470675586592] , [ 1152158400000 , 0.29788563489538] , [ 1152244800000 , 0.29442725214254] , [ 1152504000000 , 0.28629797576532] , [ 1152590400000 , 0.28284047218036] , [ 1152676800000 , 0.3078549818262] , [ 1152763200000 , 0.29413642561555] , [ 1152849600000 , 0.2873364630212] , [ 1153108800000 , 0.29703563639096] , [ 1153195200000 , 0.29728147488916] , [ 1153281600000 , 0.34407083185299] , [ 1153368000000 , 0.33524111767625] , [ 1153454400000 , 0.35641579241026] , [ 1153713600000 , 0.33240152203203] , [ 1153800000000 , 0.33354102856487] , [ 1153886400000 , 0.32793727373281] , [ 1153972800000 , 0.32817019149387] , [ 1154059200000 , 0.25158326201658] , [ 1154318400000 , 0.25146778780225] , [ 1154404800000 , 0.25668488474603] , [ 1154491200000 , 0.24462027564784] , [ 1154577600000 , 0.23861168877594] , [ 1154664000000 , 0.24589478883994] , [ 1154923200000 , 0.24349309598349] , [ 1155009600000 , 0.23003941539242] , [ 1155096000000 , 0.23378888406009] , [ 1155182400000 , 0.23368460417548] , [ 1155268800000 , 0.24430217598693] , [ 1155528000000 , 0.23769761182813] , [ 1155614400000 , 0.22834717036674] , [ 1155700800000 , 0.22584122842512] , [ 1155787200000 , 0.21766258101038] , [ 1155873600000 , 0.23037546015835] , [ 1156132800000 , 0.24360698144711] , [ 1156219200000 , 0.23495113421301] , [ 1156305600000 , 0.23659104095268] , [ 1156392000000 , 0.23023311394933] , [ 1156478400000 , 0.19878228456548] , [ 1156737600000 , 0.19888283980978] , [ 1156824000000 , 0.18547047820099] , [ 1156910400000 , 0.19185078217396] , [ 1156996800000 , 0.19612220913794] , [ 1157083200000 , 0.19278636372742] , [ 1157428800000 , 0.19575613171536] , [ 1157515200000 , 0.19329067240882] , [ 1157601600000 , 0.19531517865992] , [ 1157688000000 , 0.1907315812117] , [ 1157947200000 , 0.18142922122266] , [ 1158033600000 , 0.19112810429448] , [ 1158120000000 , 0.18870012670334] , [ 1158206400000 , 0.18390553429849] , [ 1158292800000 , 0.18644727481368] , [ 1158552000000 , 0.18732023567372] , [ 1158638400000 , 0.18227254965398] , [ 1158724800000 , 0.18159843957856] , [ 1158811200000 , 0.18252102362501] , [ 1158897600000 , 0.1825931067065] , [ 1159156800000 , 0.18472261365044] , [ 1159243200000 , 0.17929881821499] , [ 1159329600000 , 0.19123889443147] , [ 1159416000000 , 0.18870273880387] , [ 1159502400000 , 0.18300240244295] , [ 1159761600000 , 0.50863993408795] , [ 1159848000000 , 0.48210449075571] , [ 1159934400000 , 0.47013337407988] , [ 1160020800000 , 0.48312664523393] , [ 1160107200000 , 0.49058381810915] , [ 1160366400000 , 0.48050490107879] , [ 1160452800000 , 0.36585322228025] , [ 1160539200000 , 0.50152250092668] , [ 1160625600000 , 0.35485455328239] , [ 1160712000000 , 0.38250667491279] , [ 1160971200000 , 0.37524019406877] , [ 1161057600000 , 0.35275337851052] , [ 1161144000000 , 0.35519237337929] , [ 1161230400000 , 0.35783747889518] , [ 1161316800000 , 0.35517712832824] , [ 1161576000000 , 0.38316572493612] , [ 1161662400000 , 0.38881796691042] , [ 1161748800000 , 0.37077626954309] , [ 1161835200000 , 0.35576229140568] , [ 1161921600000 , 0.52311007405192] , [ 1162184400000 , 0.49950514781134] , [ 1162270800000 , 0.35248264643404] , [ 1162357200000 , 0.48193502789331] , [ 1162443600000 , 0.45811153980309] , [ 1162530000000 , 0.46310937441848] , [ 1162789200000 , 0.49430930171419] , [ 1162875600000 , 0.34999979746123] , [ 1162962000000 , 0.36459341236543] , [ 1163048400000 , 0.35833603482679] , [ 1163134800000 , 0.35284589030886] , [ 1163394000000 , 0.40174104775192] , [ 1163480400000 , 0.35965085861264] , [ 1163566800000 , 0.35616853377325] , [ 1163653200000 , 0.37896776933586] , [ 1163739600000 , 0.37501110100191] , [ 1163998800000 , 0.37500220936742] , [ 1164085200000 , 0.39169939900146] , [ 1164171600000 , 0.36894756973605] , [ 1164344400000 , 0.37040294560006] , [ 1164603600000 , 0.38705053246262] , [ 1164690000000 , 0.36832634961052] , [ 1164776400000 , 0.34213417956824] , [ 1164862800000 , 0.34580465211495] , [ 1164949200000 , 0.40108806571521] , [ 1165208400000 , 0.42709230888276] , [ 1165294800000 , 0.40266641573382] , [ 1165381200000 , 0.39310646135032] , [ 1165467600000 , 0.50726360184158] , [ 1165554000000 , 0.47312214678718] , [ 1165813200000 , 0.47820333998284] , [ 1165899600000 , 0.46011449047854] , [ 1165986000000 , 0.5051922251437] , [ 1166072400000 , 0.50801248223675] , [ 1166158800000 , 0.49312204582104] , [ 1166418000000 , 0.49685353518185] , [ 1166504400000 , 0.54566237720795] , [ 1166590800000 , 0.50492611045697] , [ 1166677200000 , 0.48747798678124] , [ 1166763600000 , 0.52323968216806] , [ 1167109200000 , 0.58047024339905] , [ 1167195600000 , 0.53058049638283] , [ 1167282000000 , 0.523959678361] , [ 1167368400000 , 0.64436565009557] , [ 1167800400000 , 0.66769291913771] , [ 1167886800000 , 0.49765317381037] , [ 1167973200000 , 0.49163486346533] , [ 1168232400000 , 0.51522575100992] , [ 1168318800000 , 0.55916689291074] , [ 1168405200000 , 0.65212629830864] , [ 1168491600000 , 0.4907080289554] , [ 1168578000000 , 0.45544641818386] , [ 1168923600000 , 0.46022875844913] , [ 1169010000000 , 0.44731829098412] , [ 1169096400000 , 0.44244076049051] , [ 1169182800000 , 0.47381721404682] , [ 1169442000000 , 0.42751964859032] , [ 1169528400000 , 0.50191666048328] , [ 1169614800000 , 0.47256376840505] , [ 1169701200000 , 0.46867343244732] , [ 1169787600000 , 0.46687731984312] , [ 1170046800000 , 0.47846097997401] , [ 1170133200000 , 0.46826006923677] , [ 1170219600000 , 0.48109723322224] , [ 1170306000000 , 0.48641267470987] , [ 1170392400000 , 0.46591979546739] , [ 1170651600000 , 0.48116119567998] , [ 1170738000000 , 0.50539475360323] , [ 1170824400000 , 0.478613401008] , [ 1170910800000 , 0.48352093437406] , [ 1170997200000 , 0.44605779350788] , [ 1171256400000 , 0.48583744996642] , [ 1171342800000 , 0.4554893549375] , [ 1171429200000 , 0.45750877647433] , [ 1171515600000 , 0.45047787930712] , [ 1171602000000 , 0.42610011741245] , [ 1171947600000 , 0.45037970946695] , [ 1172034000000 , 0.45916838083336] , [ 1172120400000 , 0.4748533114785] , [ 1172206800000 , 0.49644225792847] , [ 1172466000000 , 0.50071744162037] , [ 1172552400000 , 0.60957094744557] , [ 1172638800000 , 0.62555888985632] , [ 1172725200000 , 0.65948576333958] , [ 1172811600000 , 0.5886253227668] , [ 1173070800000 , 0.42403713120847] , [ 1173157200000 , 0.43371457920983] , [ 1173243600000 , 0.6226001715887] , [ 1173330000000 , 0.62667389133331] , [ 1173416400000 , 0.63295473653827] , [ 1173672000000 , 0.58942903175236] , [ 1173758400000 , 0.59100362666202] , [ 1173844800000 , 0.59693723078734] , [ 1173931200000 , 0.60010240865825] , [ 1174017600000 , 0.61159616491547] , [ 1174276800000 , 0.61360517145536] , [ 1174363200000 , 0.42601195213011] , [ 1174449600000 , 0.41949523257628] , [ 1174536000000 , 0.44693079557426] , [ 1174622400000 , 0.41914838579865] , [ 1174881600000 , 0.42440655055001] , [ 1174968000000 , 0.43569046168251] , [ 1175054400000 , 0.4330238907678] , [ 1175140800000 , 0.45415135645919] , [ 1175227200000 , 0.59796556904616] , [ 1175486400000 , 0.45192845294115] , [ 1175572800000 , 0.42993112423138] , [ 1175659200000 , 0.44166803154689] , [ 1175745600000 , 0.42915671533333] , [ 1176091200000 , 0.33112012454111] , [ 1176177600000 , 0.45328129653457] , [ 1176264000000 , 0.44925474507227] , [ 1176350400000 , 0.44187452671787] , [ 1176436800000 , 0.47452041996444] , [ 1176696000000 , 0.4844987901415] , [ 1176782400000 , 0.34239500671849] , [ 1176868800000 , 0.3696048774802] , [ 1176955200000 , 0.45814063042943] , [ 1177041600000 , 0.37066630901813] , [ 1177300800000 , 0.39161491066633] , [ 1177387200000 , 0.34366812991218] , [ 1177473600000 , 0.34304929686105] , [ 1177560000000 , 0.35123762526151] , [ 1177646400000 , 0.38433077705585] , [ 1177905600000 , 0.36212330242843] , [ 1177992000000 , 0.35227440119665] , [ 1178078400000 , 0.33312827981479] , [ 1178164800000 , 0.3292686231049] , [ 1178251200000 , 0.3515948159995] , [ 1178510400000 , 0.36791431316468] , [ 1178596800000 , 0.37399378492007] , [ 1178683200000 , 0.38686176679898] , [ 1178769600000 , 0.34253071045616] , [ 1178856000000 , 0.33994900497176] , [ 1179115200000 , 0.34136261037104] , [ 1179201600000 , 0.32839795017151] , [ 1179288000000 , 0.32833865270696] , [ 1179374400000 , 0.34281049697099] , [ 1179460800000 , 0.33022523043443] , [ 1179720000000 , 0.33552807617414] , [ 1179806400000 , 0.30861439673485] , [ 1179892800000 , 0.35026918665455] , [ 1179979200000 , 0.36022828871516] , [ 1180065600000 , 0.31608415566601] , [ 1180411200000 , 0.33717769857896] , [ 1180497600000 , 0.32855205537625] , [ 1180584000000 , 0.33723673802866] , [ 1180670400000 , 0.36429829817467] , [ 1180929600000 , 0.34321562074903] , [ 1181016000000 , 0.35344641788559] , [ 1181102400000 , 0.34091712635513] , [ 1181188800000 , 0.37959716840531] , [ 1181275200000 , 0.34160191437995] , [ 1181534400000 , 0.34413519421482] , [ 1181620800000 , 0.34205570706973] , [ 1181707200000 , 0.37181620578684] , [ 1181793600000 , 0.35504424736893] , [ 1181880000000 , 0.34663801494764] , [ 1182139200000 , 0.3591705944613] , [ 1182225600000 , 0.36388788504953] , [ 1182312000000 , 0.3578945897143] , [ 1182398400000 , 0.35605078432052] , [ 1182484800000 , 0.40881990315009] , [ 1182744000000 , 0.3839507038504] , [ 1182830400000 , 0.36799165042463] , [ 1182916800000 , 0.36051111716486] , [ 1183003200000 , 0.35701679835689] , [ 1183089600000 , 0.35360843257564] , [ 1183348800000 , 0.38999403044285] , [ 1183435200000 , 0.35266034491331] , [ 1183608000000 , 0.37625534896865] , [ 1183694400000 , 0.35468844128475] , [ 1183953600000 , 0.35522533840884] , [ 1184040000000 , 0.34814896187095] , [ 1184126400000 , 0.38368959037691] , [ 1184212800000 , 0.34989984817338] , [ 1184299200000 , 0.34549990396978] , [ 1184558400000 , 0.35401219273819] , [ 1184644800000 , 0.35661977440322] , [ 1184731200000 , 0.33441778940366] , [ 1184817600000 , 0.35285368325153] , [ 1184904000000 , 0.35251182214195] , [ 1185163200000 , 0.36185231903605] , [ 1185249600000 , 0.3513384959364] , [ 1185336000000 , 0.34514255273762] , [ 1185422400000 , 0.32654950716599] , [ 1185508800000 , 0.35440284257421] , [ 1185768000000 , 0.31761658366267] , [ 1185854400000 , 0.35053234250323] , [ 1185940800000 , 0.32990248955656] , [ 1186027200000 , 0.34944474295037] , [ 1186113600000 , 0.35219361962543] , [ 1186372800000 , 0.33885123808326] , [ 1186459200000 , 0.33874184127437] , [ 1186545600000 , 0.3827000362796] , [ 1186632000000 , 0.3972977831726] , [ 1186718400000 , 0.38179263855366] , [ 1186977600000 , 0.40098071477787] , [ 1187064000000 , 0.3517564247507] , [ 1187150400000 , 0.37134614015731] , [ 1187236800000 , 0.37281646565152] , [ 1187323200000 , 0.36374067616171] , [ 1187582400000 , 0.36715817710172] , [ 1187668800000 , 0.33774938217278] , [ 1187755200000 , 0.3575023635914] , [ 1187841600000 , 0.35930492878238] , [ 1187928000000 , 0.37088218551724] , [ 1188187200000 , 0.349901562867] , [ 1188273600000 , 0.39164134731053] , [ 1188360000000 , 0.37220908723581] , [ 1188446400000 , 0.39503434085077] , [ 1188532800000 , 0.3874315205728] , [ 1188878400000 , 0.4053960227751] , [ 1188964800000 , 0.38715213648249] , [ 1189051200000 , 0.41451572337682] , [ 1189137600000 , 0.39751925642349] , [ 1189396800000 , 0.38704323105016] , [ 1189483200000 , 0.55730159784617] , [ 1189569600000 , 0.51700787367752] , [ 1189656000000 , 0.53180445343496] , [ 1189742400000 , 0.4780829790157] , [ 1190001600000 , 0.48801901762186] , [ 1190088000000 , 0.46532644449301] , [ 1190174400000 , 0.46309911871631] , [ 1190260800000 , 0.51279230165321] , [ 1190347200000 , 0.46255158883255] , [ 1190606400000 , 0.45767716125555] , [ 1190692800000 , 0.57907479297358] , [ 1190779200000 , 0.49267378930433] , [ 1190865600000 , 0.46648065987463] , [ 1190952000000 , 0.51398815092557] , [ 1191211200000 , 0.54608624816476] , [ 1191297600000 , 0.51014139003078] , [ 1191384000000 , 0.51294971785755] , [ 1191470400000 , 0.60288377917451] , [ 1191556800000 , 0.59341410351494] , [ 1191816000000 , 0.54768993725445] , [ 1191902400000 , 0.60186635000502] , [ 1191988800000 , 0.59444389496371] , [ 1192075200000 , 0.60827578052517] , [ 1192161600000 , 0.5923407911311] , [ 1192420800000 , 0.56567261352008] , [ 1192507200000 , 0.58312319852293] , [ 1192593600000 , 0.56835190866986] , [ 1192680000000 , 0.54273759692647] , [ 1192766400000 , 0.55290907413212] , [ 1193025600000 , 0.57342356654063] , [ 1193112000000 , 0.53989229709743] , [ 1193198400000 , 0.54796297370074] , [ 1193284800000 , 0.55828955698586] , [ 1193371200000 , 0.56530460892424] , [ 1193630400000 , 0.57049918248034] , [ 1193716800000 , 0.58411662549602] , [ 1193803200000 , 0.56635612421056] , [ 1193889600000 , 0.53239285331907] , [ 1193976000000 , 0.55799506646466] , [ 1194238800000 , 0.5638533423884] , [ 1194325200000 , 0.52398882568473] , [ 1194411600000 , 0.51125076497479] , [ 1194498000000 , 0.50036491232785] , [ 1194584400000 , 0.50473296198008] , [ 1194843600000 , 0.50751996213126] , [ 1194930000000 , 0.50631827082877] , [ 1195016400000 , 0.51962016312469] , [ 1195102800000 , 0.48530275751029] , [ 1195189200000 , 0.50566195644821] , [ 1195448400000 , 0.50312685796735] , [ 1195534800000 , 0.52511269580625] , [ 1195621200000 , 0.51020695995909] , [ 1195794000000 , 0.52020250555388] , [ 1196053200000 , 0.54016245667867] , [ 1196139600000 , 0.50233077589654] , [ 1196226000000 , 0.57540817076044] , [ 1196312400000 , 0.54122469660488] , [ 1196398800000 , 0.53255676099218] , [ 1196658000000 , 0.48987079043713] , [ 1196744400000 , 0.51099914354867] , [ 1196830800000 , 0.48220483136174] , [ 1196917200000 , 0.50071694285758] , [ 1197003600000 , 0.43774125830557] , [ 1197262800000 , 0.44706581264167] , [ 1197349200000 , 0.41905967062687] , [ 1197435600000 , 0.43535798100637] , [ 1197522000000 , 0.43384076902771] , [ 1197608400000 , 0.42799235129191] , [ 1197867600000 , 0.4160358173521] , [ 1197954000000 , 0.42001922130138] , [ 1198040400000 , 0.43195494789721] , [ 1198126800000 , 0.40631638637452] , [ 1198213200000 , 0.41972249653293] , [ 1198472400000 , 0.42463704903975] , [ 1198645200000 , 0.40013745529622] , [ 1198731600000 , 0.41837467920978] , [ 1198818000000 , 0.41271860020779] , [ 1199077200000 , 0.59438219971072] , [ 1199250000000 , 0.56663906060379] , [ 1199336400000 , 0.59526759475876] , [ 1199422800000 , 0.61100606531897] , [ 1199682000000 , 0.59983444531871] , [ 1199768400000 , 0.5772723810895] , [ 1199854800000 , 0.5883384206392] , [ 1199941200000 , 0.56861512866532] , [ 1200027600000 , 0.69750205422881] , [ 1200286800000 , 0.68711665402178] , [ 1200373200000 , 0.68221621286151] , [ 1200459600000 , 0.70312184433284] , [ 1200546000000 , 0.52426599794058] , [ 1200632400000 , 0.85343636191757] , [ 1200978000000 , 0.84790713039977] , [ 1201064400000 , 0.51330146872139] , [ 1201150800000 , 0.49404147411636] , [ 1201237200000 , 0.52666315074101] , [ 1201496400000 , 0.54303395376686] , [ 1201582800000 , 0.50820303088143] , [ 1201669200000 , 0.53297916958598] , [ 1201755600000 , 0.5147423355755] , [ 1201842000000 , 0.32088748006788] , [ 1202101200000 , 0.47122510068009] , [ 1202187600000 , 0.4601881597235] , [ 1202274000000 , 0.49098887103771] , [ 1202360400000 , 0.50072687031917] , [ 1202446800000 , 0.48163833030278] , [ 1202706000000 , 0.47308960010952] , [ 1202792400000 , 0.28957826766051] , [ 1202878800000 , 0.63131329374437] , [ 1202965200000 , 0.49824592238269] , [ 1203051600000 , 0.43994941396234] , [ 1203397200000 , 0.46514395736995] , [ 1203483600000 , 0.30738083288633] , [ 1203570000000 , 0.58825777235301] , [ 1203656400000 , 0.74137887163376] , [ 1203915600000 , 0.44065028861912] , [ 1204002000000 , 0.41996992252552] , [ 1204088400000 , 0.42754621820944] , [ 1204174800000 , 0.70697181063901] , [ 1204261200000 , 0.73193451043205] , [ 1204520400000 , 0.5906598071835] , [ 1204606800000 , 0.56928160224787] , [ 1204693200000 , 0.54182093171447] , [ 1204779600000 , 0.73063341297567] , [ 1204866000000 , 0.68371429610051] , [ 1205121600000 , 0.7625751244819] , [ 1205208000000 , 0.68055600216233] , [ 1205294400000 , 0.72473204995729] , [ 1205380800000 , 0.61218401083118] , [ 1205467200000 , 0.63617053799207] , [ 1205726400000 , 0.65166322269631] , [ 1205812800000 , 0.47611150252336] , [ 1205899200000 , 0.48277505401083] , [ 1205985600000 , 0.4846160317978] , [ 1206331200000 , 0.48556883069728] , [ 1206417600000 , 0.60726222412037] , [ 1206504000000 , 0.52383185754016] , [ 1206590400000 , 0.52365946774961] , [ 1206676800000 , 0.46417144966408] , [ 1206936000000 , 0.46527375852488] , [ 1207022400000 , 0.31585234391762] , [ 1207108800000 , 0.30916994796591] , [ 1207195200000 , 0.29811157436356] , [ 1207281600000 , 0.3092650937521] , [ 1207540800000 , 0.28075979729864] , [ 1207627200000 , 0.28859701542657] , [ 1207713600000 , 0.39689109181309] , [ 1207800000000 , 0.37749328174235] , [ 1207886400000 , 0.47622742545283] , [ 1208145600000 , 0.48720217118092] , [ 1208232000000 , 0.48244781192799] , [ 1208318400000 , 0.38980360034172] , [ 1208404800000 , 0.46578673955616] , [ 1208491200000 , 0.28086773059726] , [ 1208750400000 , 0.29236080787843] , [ 1208836800000 , 0.37331729326201] , [ 1208923200000 , 0.24953690256591] , [ 1209009600000 , 0.23022602856364] , [ 1209096000000 , 0.39633403248474] , [ 1209355200000 , 0.2380498772201] , [ 1209441600000 , 0.24280444478866] , [ 1209528000000 , 0.4020588351358] , [ 1209614400000 , 0.2452576454461] , [ 1209700800000 , 0.2432963797158] , [ 1209960000000 , 0.34089055038622] , [ 1210046400000 , 0.48814119108104] , [ 1210132800000 , 0.47004768691489] , [ 1210219200000 , 0.48022168675292] , [ 1210305600000 , 0.3650270719607] , [ 1210564800000 , 0.43960211465952] , [ 1210651200000 , 0.4551940569925] , [ 1210737600000 , 0.29118997916081] , [ 1210824000000 , 0.29321541292478] , [ 1210910400000 , 0.29807045827194] , [ 1211169600000 , 0.30021381179841] , [ 1211256000000 , 0.29871829156008] , [ 1211342400000 , 0.30043632935097] , [ 1211428800000 , 0.31338776196321] , [ 1211515200000 , 0.30323078836955] , [ 1211860800000 , 0.3045491446009] , [ 1211947200000 , 0.290242502233] , [ 1212033600000 , 0.29815942519378] , [ 1212120000000 , 0.30460432747926] , [ 1212379200000 , 0.26519350005928] , [ 1212465600000 , 0.26679139461481] , [ 1212552000000 , 0.26782545006753] , [ 1212638400000 , 0.27707376672124] , [ 1212724800000 , 0.38177367859955] , [ 1212984000000 , 0.37853767585651] , [ 1213070400000 , 0.3776399677321] , [ 1213156800000 , 0.37494369153164] , [ 1213243200000 , 0.37513032442289] , [ 1213329600000 , 0.37978491627173] , [ 1213588800000 , 0.37466366072811] , [ 1213675200000 , 0.36411230431799] , [ 1213761600000 , 0.36571677111738] , [ 1213848000000 , 0.36863375073017] , [ 1213934400000 , 0.37016327177331] , [ 1214193600000 , 0.35735480164753] , [ 1214280000000 , 0.35612152163447] , [ 1214366400000 , 0.35681657686682] , [ 1214452800000 , 0.37669445472584] , [ 1214539200000 , 0.35526667692706] , [ 1214798400000 , 0.3334171863603] , [ 1214884800000 , 0.32127794433588] , [ 1214971200000 , 0.3174169226431] , [ 1215057600000 , 0.3147256845205] , [ 1215403200000 , 0.31559725779491] , [ 1215489600000 , 0.31727905149011] , [ 1215576000000 , 0.30029706852334] , [ 1215662400000 , 0.30119949008169] , [ 1215748800000 , 0.27744941323013] , [ 1216008000000 , 0.26443664201933] , [ 1216094400000 , 0.25203546214315] , [ 1216180800000 , 0.26469570348968] , [ 1216267200000 , 0.27582094633375] , [ 1216353600000 , 0.25051203314215] , [ 1216612800000 , 0.21487661255261] , [ 1216699200000 , 0.2115682876953] , [ 1216785600000 , 0.21405133657672] , [ 1216872000000 , 0.21734683331501] , [ 1216958400000 , 0.21805949749064] , [ 1217217600000 , 0.24216664905691] , [ 1217304000000 , 0.21347237195378] , [ 1217390400000 , 0.21052618229433] , [ 1217476800000 , 0.20059773204849] , [ 1217563200000 , 0.18431878929575] , [ 1217822400000 , 0.17457179609389] , [ 1217908800000 , 0.16046211075731] , [ 1217995200000 , 0.16278321880382] , [ 1218081600000 , 0.12222384064905] , [ 1218168000000 , 0.11017965804903] , [ 1218427200000 , 0.10366785996478] , [ 1218513600000 , 0.1050097612081] , [ 1218600000000 , 0.15083749031544] , [ 1218686400000 , 0.10836717227927] , [ 1218772800000 , 0.108304102963] , [ 1219032000000 , 0.10667186849872] , [ 1219118400000 , 0.10865629424988] , [ 1219204800000 , 0.27127940139193] , [ 1219291200000 , 0.11173129227623] , [ 1219377600000 , 0.1046282127183] , [ 1219636800000 , 0.10391925096026] , [ 1219723200000 , 0.10177457137334] , [ 1219809600000 , 0.11329005002127] , [ 1219896000000 , 0.10527229287128] , [ 1219982400000 , 0.10758987874272] , [ 1220328000000 , 0.12480149431746] , [ 1220414400000 , 0.12420749383721] , [ 1220500800000 , 0.32457721551735] , [ 1220587200000 , 0.31259829180426] , [ 1220846400000 , 0.3069937006216] , [ 1220932800000 , 0.32317321559431] , [ 1221019200000 , 0.32660259527589] , [ 1221105600000 , 0.32075271782241] , [ 1221192000000 , 0.31305817834662] , [ 1221451200000 , 0.30623195711465] , [ 1221537600000 , 0.29611642841759] , [ 1221624000000 , 0.34495164607981] , [ 1221710400000 , 0.30357639845052] , [ 1221796800000 , 0.31481625284856] , [ 1222056000000 , 0.29472551605557] , [ 1222142400000 , 0.30865296764001] , [ 1222228800000 , 0.31173679899285] , [ 1222315200000 , 0.12648206101732] , [ 1222401600000 , 0.1296858319747] , [ 1222660800000 , 0.22153255385947] , [ 1222747200000 , 0.17772961427872] , [ 1222833600000 , 0.11902389673784] , [ 1222920000000 , 0.15741775119452] , [ 1223006400000 , 0.36578848607961] , [ 1223265600000 , 0.34469047998149] , [ 1223352000000 , 0.32989529511665] , [ 1223438400000 , 0.32144894066685] , [ 1223524800000 , 0.51430740780089] , [ 1223611200000 , 0.31200610521655] , [ 1223870400000 , 0.34930648168189] , [ 1223956800000 , 0.348049261098] , [ 1224043200000 , 0.47752533615353] , [ 1224129600000 , 0.34036307923862] , [ 1224216000000 , 0.34777965260155] , [ 1224475200000 , 0.30346610565607] , [ 1224561600000 , 0.29762149487832] , [ 1224648000000 , 0.30294066113067] , [ 1224734400000 , 0.3966885732434] , [ 1224820800000 , 0.36495351678967] , [ 1225080000000 , 0.39772408712588] , [ 1225166400000 , 0.28230635353554] , [ 1225252800000 , 0.3713217379313] , [ 1225339200000 , 0.49514710353798] , [ 1225425600000 , 0.29878195834702] , [ 1225688400000 , 0.48572850545185] , [ 1225774800000 , 0.47588879164015] , [ 1225861200000 , 0.57016264728502] , [ 1225947600000 , 0.55261804041056] , [ 1226034000000 , 0.55630372382609] , [ 1226293200000 , 0.56222142171884] , [ 1226379600000 , 0.57467770664666] , [ 1226466000000 , 0.56005559773731] , [ 1226552400000 , 0.59216964824764] , [ 1226638800000 , 0.57198130596015] , [ 1226898000000 , 0.53925607658231] , [ 1226984400000 , 0.76150001336095] , [ 1227070800000 , 0.71687298964713] , [ 1227157200000 , 0.74180135105241] , [ 1227243600000 , 0.78157325845356] , [ 1227502800000 , 0.78575524690454] , [ 1227589200000 , 0.82628988537806] , [ 1227675600000 , 0.53102148702081] , [ 1227848400000 , 0.53597499365299] , [ 1228107600000 , 0.84070854625485] , [ 1228194000000 , 0.92197329151934] , [ 1228280400000 , 0.82392245184232] , [ 1228366800000 , 0.85902316367763] , [ 1228453200000 , 0.82092938903034] , [ 1228712400000 , 0.85877211515616] , [ 1228798800000 , 0.82205510131298] , [ 1228885200000 , 0.81832907789421] , [ 1228971600000 , 0.84265695092228] , [ 1229058000000 , 0.58930442947479] , [ 1229317200000 , 0.85855285160156] , [ 1229403600000 , 0.81389563175646] , [ 1229490000000 , 0.85715079094207] , [ 1229576400000 , 0.86868357909078] , [ 1229662800000 , 0.61479048052935] , [ 1229922000000 , 0.64592182573864] , [ 1230008400000 , 0.64563822868834] , [ 1230094800000 , 0.36313942942696] , [ 1230267600000 , 0.38790947116659] , [ 1230526800000 , 0.35064085791612] , [ 1230613200000 , 0.38911108106029] , [ 1230699600000 , 0.18940004334571] , [ 1230872400000 , 0.1704784207332] , [ 1231131600000 , 0.18373706624239] , [ 1231218000000 , 0.1761245524483] , [ 1231304400000 , 0.17181723784677] , [ 1231390800000 , 0.17828072113707] , [ 1231477200000 , 0.16439458069931] , [ 1231736400000 , 0.35398878522463] , [ 1231822800000 , 0.15399052224597] , [ 1231909200000 , 0.27547708693355] , [ 1231995600000 , 0.35114247847651] , [ 1232082000000 , 0.34632910547372] , [ 1232427600000 , 0.30573353519992] , [ 1232514000000 , 0.3311135533928] , [ 1232600400000 , 0.29577210789856] , [ 1232686800000 , 0.27373981494358] , [ 1232946000000 , 0.28402867506106] , [ 1233032400000 , 0.27315559672525] , [ 1233118800000 , 0.26118724292253] , [ 1233205200000 , 0.24792999422078] , [ 1233291600000 , 0.23791380300149] , [ 1233550800000 , 0.45923597670993] , [ 1233637200000 , 0.44905625712369] , [ 1233723600000 , 0.44432726957627] , [ 1233810000000 , 0.22114315919681] , [ 1233896400000 , 0.2330948601108] , [ 1234155600000 , 0.22442050519721] , [ 1234242000000 , 0.43558487901564] , [ 1234328400000 , 0.41441049299744] , [ 1234414800000 , 0.40388097337704] , [ 1234501200000 , 0.40551726758713] , [ 1234846800000 , 0.36681354313206] , [ 1234933200000 , 0.37259737223335] , [ 1235019600000 , 0.54728589471741] , [ 1235106000000 , 0.57941599436443] , [ 1235365200000 , 0.49886848882963] , [ 1235451600000 , 0.50484880776678] , [ 1235538000000 , 0.51298567500563] , [ 1235624400000 , 0.51951620083703] , [ 1235710800000 , 0.50562680761225] , [ 1235970000000 , 0.43111919837371] , [ 1236056400000 , 0.22269692879935] , [ 1236142800000 , 0.22185137086912] , [ 1236229200000 , 0.3853600314828] , [ 1236315600000 , 0.40786667470187] , [ 1236571200000 , 0.36117947910811] , [ 1236657600000 , 0.18118578034245] , [ 1236744000000 , 0.20744102884774] , [ 1236830400000 , 0.21924063705196] , [ 1236916800000 , 0.26518381872913] , [ 1237176000000 , 0.25693149376704] , [ 1237262400000 , 0.2601997137348] , [ 1237348800000 , 0.30591907384986] , [ 1237435200000 , 0.30980521532039] , [ 1237521600000 , 0.28531010556109] , [ 1237780800000 , 0.32997212544042] , [ 1237867200000 , 0.30180263306483] , [ 1237953600000 , 0.30557198415586] , [ 1238040000000 , 0.35574073219029] , [ 1238126400000 , 0.32144121083197] , [ 1238385600000 , 0.27642669365771] , [ 1238472000000 , 0.38988059521306] , [ 1238558400000 , 0.3891957245978] , [ 1238644800000 , 0.41156214438479] , [ 1238731200000 , 0.4063019560013] , [ 1238990400000 , 0.39814789095604] , [ 1239076800000 , 0.37835830452098] , [ 1239163200000 , 0.37464325706583] , [ 1239249600000 , 0.40691809369142] , [ 1239595200000 , 0.41690557781091] , [ 1239681600000 , 0.38124585608813] , [ 1239768000000 , 0.41927036668188] , [ 1239854400000 , 0.41331203405089] , [ 1239940800000 , 0.3357905317095] , [ 1240200000000 , 0.41403714383105] , [ 1240286400000 , 0.42938568785804] , [ 1240372800000 , 0.3998056312926] , [ 1240459200000 , 0.30525401131279] , [ 1240545600000 , 0.30803908383263] , [ 1240804800000 , 0.30946646403815] , [ 1240891200000 , 0.30539809017731] , [ 1240977600000 , 0.32402483601616] , [ 1241064000000 , 0.3352333777588] , [ 1241150400000 , 0.3231292194158] , [ 1241409600000 , 0.36391852351921] , [ 1241496000000 , 0.34906714963989] , [ 1241582400000 , 0.34554192955696] , [ 1241668800000 , 0.3363823613639] , [ 1241755200000 , 0.38176012454461] , [ 1242014400000 , 0.4155050120935] , [ 1242100800000 , 0.385050768114] , [ 1242187200000 , 0.35101490295465] , [ 1242273600000 , 0.35887369973598] , [ 1242360000000 , 0.34653549546251] , [ 1242619200000 , 0.38060015172214] , [ 1242705600000 , 0.36945975492405] , [ 1242792000000 , 0.38935380107142] , [ 1242878400000 , 0.35950644076065] , [ 1242964800000 , 0.35198173104045] , [ 1243310400000 , 0.36243672592418] , [ 1243396800000 , 0.36571346535268] , [ 1243483200000 , 0.22906947139021] , [ 1243569600000 , 0.22215358473121] , [ 1243828800000 , 0.21184635282126] , [ 1243915200000 , 0.20557954580039] , [ 1244001600000 , 0.19464008066655] , [ 1244088000000 , 0.21051287267926] , [ 1244174400000 , 0.20960156265391] , [ 1244433600000 , 0.19895851833365] , [ 1244520000000 , 0.19105463895038] , [ 1244606400000 , 0.19020544907649] , [ 1244692800000 , 0.20467634381558] , [ 1244779200000 , 0.20633782755332] , [ 1245038400000 , 0.20256864984063] , [ 1245124800000 , 0.35231942170134] , [ 1245211200000 , 0.31102027443779] , [ 1245297600000 , 0.30008552208958] , [ 1245384000000 , 0.29954475552943] , [ 1245643200000 , 0.28945291747839] , [ 1245729600000 , 0.2871211618924] , [ 1245816000000 , 0.28309779963668] , [ 1245902400000 , 0.30134156157185] , [ 1245988800000 , 0.27166160658573] , [ 1246248000000 , 0.27934762558543] , [ 1246334400000 , 0.14770869804104] , [ 1246420800000 , 0.14979476896266] , [ 1246507200000 , 0.14216949018174] , [ 1246852800000 , 0.13739961409394] , [ 1246939200000 , 0.13641087294924] , [ 1247025600000 , 0.13737164160635] , [ 1247112000000 , 0.13382902031685] , [ 1247198400000 , 0.13770655564258] , [ 1247457600000 , 0.14356559248214] , [ 1247544000000 , 0.14166283205255] , [ 1247630400000 , 0.1531671099261] , [ 1247716800000 , 0.15782742307609] , [ 1247803200000 , 0.15383929619665] , [ 1248062400000 , 0.15852002056909] , [ 1248148800000 , 0.16059524423929] , [ 1248235200000 , 0.1590144089316] , [ 1248321600000 , 0.16624647762889] , [ 1248408000000 , 0.16054117548756] , [ 1248667200000 , 0.15913207686089] , [ 1248753600000 , 0.1672455589495] , [ 1248840000000 , 0.16794697386573] , [ 1248926400000 , 0.18474207035615] , [ 1249012800000 , 0.18438010735533] , [ 1249272000000 , 0.19072223849322] , [ 1249358400000 , 0.18134005712753] , [ 1249444800000 , 0.19043247185569] , [ 1249531200000 , 0.20066491344588] , [ 1249617600000 , 0.19955573612602] , [ 1249876800000 , 0.19939565572904] , [ 1249963200000 , 0.19067278308172] , [ 1250049600000 , 0.19509349391207] , [ 1250136000000 , 0.18994509337313] , [ 1250222400000 , 0.1860099818871] , [ 1250481600000 , 0.18628513256275] , [ 1250568000000 , 0.17645189245217] , [ 1250654400000 , 0.19281227318698] , [ 1250740800000 , 0.19378724445722] , [ 1250827200000 , 0.19628627239007] , [ 1251086400000 , 0.19793806848804] , [ 1251172800000 , 0.19298338258851] , [ 1251259200000 , 0.18656361482999] , [ 1251345600000 , 0.19496898208799] , [ 1251432000000 , 0.19933498732004] , [ 1251691200000 , 0.20235729217823] , [ 1251777600000 , 0.18946434807889] , [ 1251864000000 , 0.18618620809442] , [ 1251950400000 , 0.20522471015788] , [ 1252036800000 , 0.19897677649474] , [ 1252382400000 , 0.19160557658922] , [ 1252468800000 , 0.18976793778464] , [ 1252555200000 , 0.20329707522992] , [ 1252641600000 , 0.20213781992052] , [ 1252900800000 , 0.19832859780247] , [ 1252987200000 , 0.19596719262808] , [ 1253073600000 , 0.20654239160765] , [ 1253160000000 , 0.21111449355996] , [ 1253246400000 , 0.2112621121669] , [ 1253505600000 , 0.2006248914408] , [ 1253592000000 , 0.21007348609349] , [ 1253678400000 , 0.20183300437001] , [ 1253764800000 , 0.21144895936042] , [ 1253851200000 , 0.19533230458009] , [ 1254110400000 , 0.21108049214011] , [ 1254196800000 , 0.20224255046872] , [ 1254283200000 , 0.24333266083011] , [ 1254369600000 , 0.42562690254191] , [ 1254456000000 , 0.39882736793197] , [ 1254715200000 , 0.4109230651045] , [ 1254801600000 , 0.42720488861224] , [ 1254888000000 , 0.42402822327118] , [ 1254974400000 , 0.42784602685915] , [ 1255060800000 , 0.41387273603466] , [ 1255320000000 , 0.40715065425328] , [ 1255406400000 , 0.21490592196149] , [ 1255492800000 , 0.21711692256087] , [ 1255579200000 , 0.21263539351174] , [ 1255665600000 , 0.21054139546477] , [ 1255924800000 , 0.20703955749278] , [ 1256011200000 , 0.41615749625588] , [ 1256097600000 , 0.33782450127133] , [ 1256184000000 , 0.34222120473237] , [ 1256270400000 , 0.33861624714964] , [ 1256529600000 , 0.32354691717303] , [ 1256616000000 , 0.31260839592502] , [ 1256702400000 , 0.42728613748791] , [ 1256788800000 , 0.44981792808378] , [ 1256875200000 , 0.44609486736015] , [ 1257138000000 , 0.45857277772924] , [ 1257224400000 , 0.45429068995591] , [ 1257310800000 , 0.46300687817086] , [ 1257397200000 , 0.31181852434093] , [ 1257483600000 , 0.33521146961855] , [ 1257742800000 , 0.43998094093324] , [ 1257829200000 , 0.46850069852399] , [ 1257915600000 , 0.45998079505404] , [ 1258002000000 , 0.43990033390761] , [ 1258088400000 , 0.43192186956486] , [ 1258347600000 , 0.44193287636744] , [ 1258434000000 , 0.45174825719336] , [ 1258520400000 , 0.44388612458012] , [ 1258606800000 , 0.42624049682942] , [ 1258693200000 , 0.44790772605219] , [ 1258952400000 , 0.43692733373588] , [ 1259038800000 , 0.43377185720698] , [ 1259125200000 , 0.43219678597263] , [ 1259298000000 , 0.44386940623456] , [ 1259557200000 , 0.44643148173272] , [ 1259643600000 , 0.44707155240847] , [ 1259730000000 , 0.45840697320228] , [ 1259816400000 , 0.43747426694764] , [ 1259902800000 , 0.44835061679619] , [ 1260162000000 , 0.46587086852614] , [ 1260248400000 , 0.4545384119711] , [ 1260334800000 , 0.45310260633137] , [ 1260421200000 , 0.42887008081309] , [ 1260507600000 , 0.42882506235264] , [ 1260766800000 , 0.438052456726] , [ 1260853200000 , 0.44441837294803] , [ 1260939600000 , 0.45017843603725] , [ 1261026000000 , 0.45311273305076] , [ 1261112400000 , 0.46276884135044] , [ 1261371600000 , 0.47307044402006] , [ 1261458000000 , 0.46640525682956] , [ 1261544400000 , 0.49512113112803] , [ 1261630800000 , 0.48033942034566] , [ 1261976400000 , 0.48202674710044] , [ 1262062800000 , 0.48053769603864] , [ 1262149200000 , 0.48080452237603] , [ 1262235600000 , 0.61097799203784] , [ 1262581200000 , 0.64378035925207] , [ 1262667600000 , 0.61876210035266] , [ 1262754000000 , 0.62916872436038] , [ 1262840400000 , 0.62747304374993] , [ 1262926800000 , 0.66125721673519] , [ 1263186000000 , 0.64788192731418] , [ 1263272400000 , 0.6574728179579] , [ 1263358800000 , 0.66001660549178] , [ 1263445200000 , 0.63845436553734] , [ 1263531600000 , 0.63961853945271] , [ 1263877200000 , 0.63128386370442] , [ 1263963600000 , 0.61820998254633] , [ 1264050000000 , 0.63085915492893] , [ 1264136400000 , 0.64265006714393] , [ 1264395600000 , 0.62614908189366] , [ 1264482000000 , 0.63903015606303] , [ 1264568400000 , 0.56145074782027] , [ 1264654800000 , 0.56843246761258] , [ 1264741200000 , 0.57880931158468] , [ 1265000400000 , 0.60990225784836] , [ 1265086800000 , 0.59450744881925] , [ 1265173200000 , 0.58785188512433] , [ 1265259600000 , 0.56254894390866] , [ 1265346000000 , 0.58449293662275] , [ 1265605200000 , 0.61074241826766] , [ 1265691600000 , 0.60490333237216] , [ 1265778000000 , 0.60703541036865] , [ 1265864400000 , 0.61395184516402] , [ 1265950800000 , 0.63181191078349] , [ 1266296400000 , 0.64807806494211] , [ 1266382800000 , 0.49216531615509] , [ 1266469200000 , 0.6242889357856] , [ 1266555600000 , 0.66785287786833] , [ 1266814800000 , 0.51302421343276] , [ 1266901200000 , 0.67529040393239] , [ 1266987600000 , 0.6601486785607] , [ 1267074000000 , 0.6670237791658] , [ 1267160400000 , 0.66746410076052] , [ 1267419600000 , 0.6691531995939] , [ 1267506000000 , 0.68912054031019] , [ 1267592400000 , 0.66956844660652] , [ 1267678800000 , 0.66808795275024] , [ 1267765200000 , 0.64875109352574] , [ 1268024400000 , 0.68913399645021] , [ 1268110800000 , 0.71960642629017] , [ 1268197200000 , 0.55110831283044] , [ 1268283600000 , 0.73044501913051] , [ 1268370000000 , 0.7225295997643] , [ 1268625600000 , 0.57165420411245] , [ 1268712000000 , 0.57185003104024] , [ 1268798400000 , 0.56387435159483] , [ 1268884800000 , 0.55258238352661] , [ 1268971200000 , 0.53837596700184] , [ 1269230400000 , 0.51781133278325] , [ 1269316800000 , 0.54614405247613] , [ 1269403200000 , 0.55181521678811] , [ 1269489600000 , 0.55896776189928] , [ 1269576000000 , 0.53526775536805] , [ 1269835200000 , 0.56001758871283] , [ 1269921600000 , 0.52697856042663] , [ 1270008000000 , 0.36950151316072] , [ 1270094400000 , 0.33416858149241] , [ 1270440000000 , 0.3297788254062] , [ 1270526400000 , 0.32878696628243] , [ 1270612800000 , 0.34250261596671] , [ 1270699200000 , 0.34062951626868] , [ 1270785600000 , 0.33650331505564] , [ 1271044800000 , 0.33754198492504] , [ 1271131200000 , 0.34479752104981] , [ 1271217600000 , 0.34422271322913] , [ 1271304000000 , 0.33957637717345] , [ 1271390400000 , 0.33309869052085] , [ 1271649600000 , 0.33549309259309] , [ 1271736000000 , 0.33851249428105] , [ 1271822400000 , 0.33274334538472] , [ 1271908800000 , 0.32819970206884] , [ 1271995200000 , 0.32740446326317] , [ 1272254400000 , 0.32320098527039] , [ 1272340800000 , 0.31592945714482] , [ 1272427200000 , 0.3330398140655] , [ 1272513600000 , 0.33826576183311] , [ 1272600000000 , 0.34573095232512] , [ 1272859200000 , 0.31885048098859] , [ 1272945600000 , 0.31892932498196] , [ 1273032000000 , 0.29273258897174] , [ 1273118400000 , 0.2908332072101] , [ 1273204800000 , 0.27922156662223] , [ 1273464000000 , 0.28536042625666] , [ 1273550400000 , 0.28897531861523] , [ 1273636800000 , 0.28473853729527] , [ 1273723200000 , 0.28284683737932] , [ 1273809600000 , 0.29303926663331] , [ 1274068800000 , 0.2804810108508] , [ 1274155200000 , 0.29353651777215] , [ 1274241600000 , 0.28895692466737] , [ 1274328000000 , 0.28619995925483] , [ 1274414400000 , 0.29158719317017] , [ 1274673600000 , 0.26516835216154] , [ 1274760000000 , 0.27746697022302] , [ 1274846400000 , 0.26632815838707] , [ 1274932800000 , 0.27772552257406] , [ 1275019200000 , 0.28339177307644] , [ 1275364800000 , 0.29531042307446] , [ 1275451200000 , 0.28830732812001] , [ 1275537600000 , 0.29494618289139] , [ 1275624000000 , 0.30311337866766] , [ 1275883200000 , 0.27490760240321] , [ 1275969600000 , 0.29065076400389] , [ 1276056000000 , 0.30317072981863] , [ 1276142400000 , 0.28551909392755] , [ 1276228800000 , 0.28867145842253] , [ 1276488000000 , 0.27659931493374] , [ 1276574400000 , 0.27726503361383] , [ 1276660800000 , 0.28643321316432] , [ 1276747200000 , 0.28848300181782] , [ 1276833600000 , 0.29314584285469] , [ 1277092800000 , 0.24556636294746] , [ 1277179200000 , 0.2427074138927] , [ 1277265600000 , 0.25532966055562] , [ 1277352000000 , 0.23860075049878] , [ 1277438400000 , 0.23339021823389] , [ 1277697600000 , 0.23704584176672] , [ 1277784000000 , 0.23476476819275] , [ 1277870400000 , 0.16508919994271] , [ 1277956800000 , 0.17502444005293] , [ 1278043200000 , 0.17481292303424] , [ 1278388800000 , 0.18794801739403] , [ 1278475200000 , 0.17078173539657] , [ 1278561600000 , 0.17626404510513] , [ 1278648000000 , 0.16916163621476] , [ 1278907200000 , 0.17054338991592] , [ 1278993600000 , 0.16880969565363] , [ 1279080000000 , 0.17410406995965] , [ 1279166400000 , 0.20194482873069] , [ 1279252800000 , 0.20347614461013] , [ 1279512000000 , 0.18829636908558] , [ 1279598400000 , 0.18366670685077] , [ 1279684800000 , 0.19319801934126] , [ 1279771200000 , 0.18785794223705] , [ 1279857600000 , 0.18599264862031] , [ 1280116800000 , 0.18296675184693] , [ 1280203200000 , 0.19350047225925] , [ 1280289600000 , 0.18668219094806] , [ 1280376000000 , 0.1892807330999] , [ 1280462400000 , 0.19882884890915] , [ 1280721600000 , 0.18905704272443] , [ 1280808000000 , 0.18352588525038] , [ 1280894400000 , 0.19131509438879] , [ 1280980800000 , 0.20267037571723] , [ 1281067200000 , 0.19033851437607] , [ 1281326400000 , 0.19532463004946] , [ 1281412800000 , 0.19527461919403] , [ 1281499200000 , 0.20077631127424] , [ 1281585600000 , 0.18129726012172] , [ 1281672000000 , 0.18079921813357] , [ 1281931200000 , 0.18942494962896] , [ 1282017600000 , 0.17868912657409] , [ 1282104000000 , 0.19248572775925] , [ 1282190400000 , 0.17612437454354] , [ 1282276800000 , 0.17662688906437] , [ 1282536000000 , 0.33111821682727] , [ 1282622400000 , 0.32351989726607] , [ 1282708800000 , 0.18442539571243] , [ 1282795200000 , 0.1654652941385] , [ 1282881600000 , 0.1681728432886] , [ 1283140800000 , 0.31791153613136] , [ 1283227200000 , 0.3098939886997] , [ 1283313600000 , 0.17026280355377] , [ 1283400000000 , 0.18116819943409] , [ 1283486400000 , 0.17940269239226] , [ 1283832000000 , 0.17509967864537] , [ 1283918400000 , 0.16854635373821] , [ 1284004800000 , 0.16279792019164] , [ 1284091200000 , 0.16430316982373] , [ 1284350400000 , 0.19716094011807] , [ 1284436800000 , 0.18180670180063] , [ 1284523200000 , 0.18050178810035] , [ 1284609600000 , 0.17654839774218] , [ 1284696000000 , 0.16753561446267] , [ 1284955200000 , 0.16435387082839] , [ 1285041600000 , 0.17014990034734] , [ 1285128000000 , 0.17507611457088] , [ 1285214400000 , 0.16806252749183] , [ 1285300800000 , 0.1747219277635] , [ 1285560000000 , 0.16933773981221] , [ 1285646400000 , 0.18297726330587] , [ 1285732800000 , 0.18455334449287] , [ 1285819200000 , 0.18770061100303] , [ 1285905600000 , 0.18762165755291] , [ 1286164800000 , 0.18724338180533] , [ 1286251200000 , 0.18382080795075] , [ 1286337600000 , 0.19011659228435] , [ 1286424000000 , 0.18701256414053] , [ 1286510400000 , 0.18537821442863] , [ 1286769600000 , 0.18693615500435] , [ 1286856000000 , 0.18555741600949] , [ 1286942400000 , 0.18397802878517] , [ 1287028800000 , 0.17900769900171] , [ 1287115200000 , 0.17512388360084] , [ 1287374400000 , 0.18627045459584] , [ 1287460800000 , 0.19137715720593] , [ 1287547200000 , 0.18692890592892] , [ 1287633600000 , 0.1901580677592] , [ 1287720000000 , 0.18244979002935] , [ 1287979200000 , 0.18070840073234] , [ 1288065600000 , 0.18888329598481] , [ 1288152000000 , 0.18534803597295] , [ 1288238400000 , 0.19164954605317] , [ 1288324800000 , 0.20708593047813] , [ 1288584000000 , 0.19112691734383] , [ 1288670400000 , 0.18836312531428] , [ 1288756800000 , 0.18475885094717] , [ 1288843200000 , 0.19017636992619] , [ 1288929600000 , 0.19542526307197] , [ 1289192400000 , 0.21201362592083] , [ 1289278800000 , 0.21870028579263] , [ 1289365200000 , 0.22421012994555] , [ 1289451600000 , 0.22987658768953] , [ 1289538000000 , 0.22528136350708] , [ 1289797200000 , 0.23286775948671] , [ 1289883600000 , 0.22389907327602] , [ 1289970000000 , 0.23358652500105] , [ 1290056400000 , 0.22453055198657] , [ 1290142800000 , 0.34221219449159] , [ 1290402000000 , 0.35226708267062] , [ 1290488400000 , 0.34366842396858] , [ 1290574800000 , 0.3699996743666] , [ 1290747600000 , 0.35393486503202] , [ 1291006800000 , 0.34677588597119] , [ 1291093200000 , 0.35459649060421] , [ 1291179600000 , 0.35064035375263] , [ 1291266000000 , 0.34850709272937] , [ 1291352400000 , 0.22397734859949] , [ 1291611600000 , 0.23290983214529] , [ 1291698000000 , 0.22752114094581] , [ 1291784400000 , 0.23694767255638] , [ 1291870800000 , 0.22934081012106] , [ 1291957200000 , 0.24685987150064] , [ 1292216400000 , 0.24129716696248] , [ 1292302800000 , 0.25182638430604] , [ 1292389200000 , 0.24322906384063] , [ 1292475600000 , 0.26805271844179] , [ 1292562000000 , 0.25575992465227] , [ 1292821200000 , 0.26502032474023] , [ 1292907600000 , 0.26934813838219] , [ 1292994000000 , 0.24053503997947] , [ 1293080400000 , 0.23763374245069] , [ 1293426000000 , 0.24582642175695] , [ 1293512400000 , 0.24987261417793] , [ 1293598800000 , 0.26673213313336] , [ 1293685200000 , 0.2687007361462] , [ 1293771600000 , 0.25552652117054] , [ 1294030800000 , 0.26827987887395] , [ 1294117200000 , 0.26663246323876] , [ 1294203600000 , 0.26317913917355] , [ 1294290000000 , 0.27589895562782] , [ 1294376400000 , 0.26794686617534] , [ 1294635600000 , 0.27184949902838] , [ 1294722000000 , 0.28886420182237] , [ 1294808400000 , 0.27312762073371] , [ 1294894800000 , 0.29829834340765] , [ 1294981200000 , 0.29746470358189] , [ 1295326800000 , 0.26811224941731] , [ 1295413200000 , 0.25730395478701] , [ 1295499600000 , 0.27028006032097] , [ 1295586000000 , 0.26732332434809] , [ 1295845200000 , 0.24975166598529] , [ 1295931600000 , 0.26039833911019] , [ 1296018000000 , 0.27548723334852] , [ 1296104400000 , 0.26302429845163] , [ 1296190800000 , 0.28235671751223] , [ 1296450000000 , 0.26506842109964] , [ 1296536400000 , 0.26043133472349] , [ 1296622800000 , 0.26266192152819] , [ 1296709200000 , 0.24931199536089] , [ 1296795600000 , 0.25228864916944] , [ 1297054800000 , 0.27151065254782] , [ 1297141200000 , 0.25681971281519] , [ 1297227600000 , 0.24749992740566] , [ 1297314000000 , 0.25712189938008] , [ 1297400400000 , 0.25414818219996] , [ 1297659600000 , 0.250265177673] , [ 1297746000000 , 0.2478279507433] , [ 1297832400000 , 0.24577387623471] , [ 1297918800000 , 0.24844657124067] , [ 1298005200000 , 0.23606311569833] , [ 1298350800000 , 0.23670066287544] , [ 1298437200000 , 0.2438674692208] , [ 1298523600000 , 0.22061163897703] , [ 1298610000000 , 0.23782501493395] , [ 1298869200000 , 0.23094592795639] , [ 1298955600000 , 0.23953042589336] , [ 1299042000000 , 0.22602331754754] , [ 1299128400000 , 0.24458889665809] , [ 1299214800000 , 0.23490291127417] , [ 1299474000000 , 0.22975741638188] , [ 1299560400000 , 0.23865297262551] , [ 1299646800000 , 0.23869891729815] , [ 1299733200000 , 0.24112176499763] , [ 1299819600000 , 0.25067393470202] , [ 1300075200000 , 0.24876855304402] , [ 1300161600000 , 0.25088705306073] , [ 1300248000000 , 0.25650226880093] , [ 1300334400000 , 0.26207601790233] , [ 1300420800000 , 0.25636499016232] , [ 1300680000000 , 0.26719577143981] , [ 1300766400000 , 0.25057580884655] , [ 1300852800000 , 0.24821067914885] , [ 1300939200000 , 0.24255966354913] , [ 1301025600000 , 0.23208545489989] , [ 1301284800000 , 0.25518489801064] , [ 1301371200000 , 0.24328576271735] , [ 1301457600000 , 0.24177433606838] , [ 1301544000000 , 0.24566460239554] , [ 1301630400000 , 0.23829566694348] , [ 1301889600000 , 0.24626118988613] , [ 1301976000000 , 0.26089885812411] , [ 1302062400000 , 0.24928065890565] , [ 1302148800000 , 0.2592730718345] , [ 1302235200000 , 0.26584835997748] , [ 1302494400000 , 0.2619310378378] , [ 1302580800000 , 0.2517616665586] , [ 1302667200000 , 0.24497146424254] , [ 1302753600000 , 0.23965476009736] , [ 1302840000000 , 0.24273749595555] , [ 1303099200000 , 0.24026629573157] , [ 1303185600000 , 0.24306505175131] , [ 1303272000000 , 0.24228847687047] , [ 1303358400000 , 0.24908808140592] , [ 1303704000000 , 0.25629359778434] , [ 1303790400000 , 0.24600091538301] , [ 1303876800000 , 0.24993801267315] , [ 1303963200000 , 0.24853977351593] , [ 1304049600000 , 0.25560150895798] , [ 1304308800000 , 0.26502065459575] , [ 1304395200000 , 0.27348599304691] , [ 1304481600000 , 0.24881070927841] , [ 1304568000000 , 0.26629433923903] , [ 1304654400000 , 0.27101280065226] , [ 1304913600000 , 0.26949170008308] , [ 1305000000000 , 0.26786788540753] , [ 1305086400000 , 0.26976206763607] , [ 1305172800000 , 0.26758375529774] , [ 1305259200000 , 0.29312983084351] , [ 1305518400000 , 0.29482712502075] , [ 1305604800000 , 0.27510245807736] , [ 1305691200000 , 0.27453788444529] , [ 1305777600000 , 0.28937549888275] , [ 1305864000000 , 0.30189598849716] , [ 1306123200000 , 0.29078197204741] , [ 1306209600000 , 0.30600002448236] , [ 1306296000000 , 0.30234809370631] , [ 1306382400000 , 0.29490582156124] , [ 1306468800000 , 0.30385714736128] , [ 1306814400000 , 0.28523823770827] , [ 1306900800000 , 0.27788301459213] , [ 1306987200000 , 0.40619592966466] , [ 1307073600000 , 0.39345529118799] , [ 1307332800000 , 0.3903163184502] , [ 1307419200000 , 0.41558439318572] , [ 1307505600000 , 0.41913744068372] , [ 1307592000000 , 0.43970829198686] , [ 1307678400000 , 0.45428905955147] , [ 1307937600000 , 0.45397754813893] , [ 1308024000000 , 0.46506017912194] , [ 1308110400000 , 0.45539226013086] , [ 1308196800000 , 0.47668686888298] , [ 1308283200000 , 0.60578662726343] , [ 1308542400000 , 0.28725334672374] , [ 1308628800000 , 0.29688954932691] , [ 1308715200000 , 0.50554129778831] , [ 1308801600000 , 0.28803382767289] , [ 1308888000000 , 0.30566947860401] , [ 1309147200000 , 0.2860256010382] , [ 1309233600000 , 0.30734273137934] , [ 1309320000000 , 0.486760597847] , [ 1309406400000 , 0.48808786345673] , [ 1309492800000 , 0.34347457655277] , [ 1309838400000 , 0.44561452757931] , [ 1309924800000 , 0.43717067987187] , [ 1310011200000 , 0.363546931153] , [ 1310097600000 , 0.3650012974234] , [ 1310356800000 , 0.47252323846844] , [ 1310443200000 , 0.46177328813846] , [ 1310529600000 , 0.4537140592128] , [ 1310616000000 , 0.45725665633337] , [ 1310702400000 , 0.44650595669184] , [ 1310961600000 , 0.44457163015207] , [ 1311048000000 , 0.44571161824917] , [ 1311134400000 , 0.45452181580806] , [ 1311220800000 , 0.28431386000731] , [ 1311307200000 , 0.27090316140781] , [ 1311566400000 , 0.27349795982962] , [ 1311652800000 , 0.45764908923797] , [ 1311739200000 , 0.56870503080841] , [ 1311825600000 , 0.6249857215157] , [ 1311912000000 , 0.68818827002797] , [ 1314763200000 , 0.38245039176442] , [ 1314849600000 , 0.37558630821454] , [ 1314936000000 , 0.3569932906938] , [ 1315281600000 , 0.52577145773279] , [ 1315368000000 , 0.56090752934622] , [ 1315454400000 , 0.53870900027936] , [ 1315540800000 , 0.52756617595365] , [ 1315800000000 , 0.54786959641713] , [ 1315886400000 , 0.565988518513] , [ 1315972800000 , 0.57380317943342] , [ 1316059200000 , 0.56882294530893] , [ 1316145600000 , 0.58778751913061] , [ 1316404800000 , 0.55503750474374] , [ 1316491200000 , 0.54821999157495] , [ 1316577600000 , 0.63315464857262] , [ 1316664000000 , 0.61194381894131] , [ 1316750400000 , 0.5946421097889] , [ 1317009600000 , 0.61035522157758] , [ 1317096000000 , 0.63246474877724] , [ 1317182400000 , 0.57589216934023] , [ 1317268800000 , 0.55479071011554] , [ 1317355200000 , 0.4841825765629] , [ 1317614400000 , 0.44442516066328] , [ 1317700800000 , 0.44040274204019] , [ 1317787200000 , 0.45007707551418] , [ 1317873600000 , 0.46214462629916] , [ 1317960000000 , 0.43343158251783] , [ 1318219200000 , 0.44745993823054] , [ 1318305600000 , 0.43011673729904] , [ 1318392000000 , 0.46691079848101] , [ 1318478400000 , 0.46135259035608] , [ 1318564800000 , 0.44701111449567] , [ 1318824000000 , 0.4505729135891] , [ 1318910400000 , 0.45262620771441] , [ 1318996800000 , 0.44687539854298] , [ 1319083200000 , 0.44110543119353] , [ 1319169600000 , 0.46041357823819] , [ 1319428800000 , 0.4761783136763] , [ 1319515200000 , 0.46491895011452] , [ 1319601600000 , 0.47173019887826] , [ 1319688000000 , 0.37532388022903] , [ 1319774400000 , 0.36696228335471] , [ 1320033600000 , 0.45206924885623] , [ 1320120000000 , 0.46817052488213] , [ 1320206400000 , 0.49350355510821] , [ 1320292800000 , 0.47973287496665] , [ 1320379200000 , 0.49085590117818] , [ 1320642000000 , 0.47629600158061] , [ 1320728400000 , 0.47155674379516] , [ 1320814800000 , 0.46839216523208] , [ 1320901200000 , 0.45661255054486] , [ 1320987600000 , 0.46279813437207] , [ 1321246800000 , 0.45429096332985] , [ 1321333200000 , 0.44834634502213] , [ 1321419600000 , 0.43782694279932] , [ 1321506000000 , 0.43455896615614] , [ 1321592400000 , 0.43132973538607] , [ 1321851600000 , 0.41336814678348] , [ 1321938000000 , 0.40154142427755] , [ 1322024400000 , 0.39176366375423] , [ 1322197200000 , 0.4095801861786] , [ 1322456400000 , 0.41771592290428] , [ 1322542800000 , 0.4162224653633] , [ 1322629200000 , 0.42318274679895] , [ 1322715600000 , 0.41772981637871] , [ 1322802000000 , 0.40969754530833] , [ 1323061200000 , 0.40709894698063] , [ 1323147600000 , 0.41402412498693] , [ 1323234000000 , 0.42657305235583] , [ 1323320400000 , 0.42663937671221] , [ 1323406800000 , 0.43783053878367] , [ 1323666000000 , 0.42087795540679] , [ 1323752400000 , 0.42273201183908] , [ 1323838800000 , 0.41878072201135] , [ 1323925200000 , 0.43138733158581] , [ 1324011600000 , 0.42472923382568] , [ 1324270800000 , 0.41669753027675] , [ 1324357200000 , 0.41981401930208] , [ 1324443600000 , 0.43128203587221] , [ 1324530000000 , 0.4577393508269] , [ 1324616400000 , 0.44144997952488] , [ 1324962000000 , 0.43310320721477] , [ 1325048400000 , 0.46267325157705] , [ 1325134800000 , 0.46503547498803] , [ 1325221200000 , 0.46138989333686] , [ 1325566800000 , 0.249341113035] , [ 1325653200000 , 0.2515686548328] , [ 1325739600000 , 0.24178074745653] , [ 1325826000000 , 0.24016256863888] , [ 1326085200000 , 0.23852249609993] , [ 1326171600000 , 0.25010918279328] , [ 1326258000000 , 0.24157851460977] , [ 1326344400000 , 0.26546228510531] , [ 1326430800000 , 0.27042685434296] , [ 1326776400000 , 0.27298738403865] , [ 1326862800000 , 0.26503479105789] , [ 1326949200000 , 0.26093650132182] , [ 1327035600000 , 0.25468553126776] , [ 1327294800000 , 0.25870821509927] , [ 1327381200000 , 0.27319926289753] , [ 1327467600000 , 0.28929620634206] , [ 1327554000000 , 0.29628859255556] , [ 1327640400000 , 0.28119023501318] , [ 1327899600000 , 0.28637600094128] , [ 1327986000000 , 0.29164189758607] , [ 1328072400000 , 0.29838373270964] , [ 1328158800000 , 0.30434348230674] , [ 1328245200000 , 0.17565364382235] , [ 1328504400000 , 0.16268034106051] , [ 1328590800000 , 0.16975880034528] , [ 1328677200000 , 0.30604917410411] , [ 1328763600000 , 0.31426513370666] , [ 1328850000000 , 0.30932188288115] , [ 1329109200000 , 0.17352990574053] , [ 1329195600000 , 0.17555252026983] , [ 1329282000000 , 0.17598902230363] , [ 1329368400000 , 0.16303136355065] , [ 1329454800000 , 0.17029126124972] , [ 1329800400000 , 0.28962564862674] , [ 1329886800000 , 0.27928956537238] , [ 1329973200000 , 0.29643315845759] , [ 1330059600000 , 0.29008675829454] , [ 1330318800000 , 0.29222320133732] , [ 1330405200000 , 0.28823901625433] , [ 1330491600000 , 0.27911827892814] , [ 1330578000000 , 0.28249118739874] , [ 1330664400000 , 0.26540083306976] , [ 1330923600000 , 0.26033858093099] , [ 1331010000000 , 0.2564372060573] , [ 1331096400000 , 0.25133221925172] , [ 1331182800000 , 0.26035055512578] , [ 1331269200000 , 0.26589790084663] , [ 1331524800000 , 0.25793553792393] , [ 1331611200000 , 0.267061264485] , [ 1331697600000 , 0.25384129859595] , [ 1331784000000 , 0.25709311833625] , [ 1331870400000 , 0.26073406509935] , [ 1332129600000 , 0.25429363934993] , [ 1332216000000 , 0.27131681134796] , [ 1332302400000 , 0.25868232074447] , [ 1332388800000 , 0.25802690426325] , [ 1332475200000 , 0.25772173066805] , [ 1332734400000 , 0.26289439419493] , [ 1332820800000 , 0.26030143396564] , [ 1332907200000 , 0.2511964361679] , [ 1332993600000 , 0.26237177414945] , [ 1333080000000 , 0.25355006080158] , [ 1333339200000 , 0.2781144517115] , [ 1333425600000 , 0.28189444390819] , [ 1333512000000 , 0.26834142417127] , [ 1333598400000 , 0.26795533982394] , [ 1333944000000 , 0.26416982391577] , [ 1334030400000 , 0.25016227545025] , [ 1334116800000 , 0.25101300785306] , [ 1334203200000 , 0.2481329276245] , [ 1334289600000 , 0.25425264114226] , [ 1334548800000 , 0.24856263189013] , [ 1334635200000 , 0.25054792631715] , [ 1334721600000 , 0.249127987656] , [ 1334808000000 , 0.25381649528012] , [ 1334894400000 , 0.25763379706162] , [ 1335153600000 , 0.24189504245878] , [ 1335240000000 , 0.24819671940471] , [ 1335326400000 , 0.24324155321256] , [ 1335412800000 , 0.25905441421388] , [ 1335499200000 , 0.25345094550503] , [ 1335758400000 , 0.24077565144655]]} , { "key" : "Not Available" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 0.065308086801007] , [ 1028174400000 , 0.066535199311109] , [ 1028260800000 , 0.068273406038148] , [ 1028520000000 , 0.063342865920424] , [ 1028606400000 , 0.060952415080445] , [ 1028692800000 , 0.059524896365875] , [ 1028779200000 , 0.060489755935475] , [ 1028865600000 , 0.067363838748502] , [ 1029124800000 , 0.057886538387165] , [ 1029211200000 , 0.064061271210866] , [ 1029297600000 , 0.058560224230083] , [ 1029384000000 , 0.060853754252312] , [ 1029470400000 , 0.057479178502535] , [ 1029729600000 , 0.056961826210783] , [ 1029816000000 , 0.055644774545051] , [ 1029902400000 , 0.059716363055355] , [ 1029988800000 , 0.057000178693805] , [ 1030075200000 , 0.058622011152265] , [ 1030334400000 , 0.061307731985769] , [ 1030420800000 , 0.062398914122505] , [ 1030507200000 , 0.056176479467961] , [ 1030593600000 , 0.055825202094993] , [ 1030680000000 , 0.055126229456489] , [ 1031025600000 , 0.049724266365136] , [ 1031112000000 , 0.051053206923382] , [ 1031198400000 , 0.048569908393729] , [ 1031284800000 , 0.048763478360222] , [ 1031544000000 , 0.049796224982781] , [ 1031630400000 , 0.0520939023804] , [ 1031716800000 , 0.051467996632025] , [ 1031803200000 , 0.045537284333507] , [ 1031889600000 , 0.044426523288586] , [ 1032148800000 , 0.046905154365696] , [ 1032235200000 , 0.048400466540506] , [ 1032321600000 , 0.043989946613247] , [ 1032408000000 , 0.042478239285601] , [ 1032494400000 , 0.044248581235601] , [ 1032753600000 , 0.04186860658708] , [ 1032840000000 , 0.042250919128784] , [ 1032926400000 , 0.041621635091397] , [ 1033012800000 , 0.040935777809039] , [ 1033099200000 , 0.046881490190283] , [ 1033358400000 , 0.022874032531005] , [ 1033444800000 , 0.025968411443307] , [ 1033531200000 , 0.026739457919906] , [ 1033617600000 , 0.023947710809458] , [ 1033704000000 , 0.024965740697006] , [ 1033963200000 , 0.025338856886956] , [ 1034049600000 , 0.023323387866575] , [ 1034136000000 , 0.026153484226899] , [ 1034222400000 , 0.025099094082079] , [ 1034308800000 , 0.027607116989742] , [ 1034568000000 , 0.026131589075203] , [ 1034654400000 , 0.026415854275271] , [ 1034740800000 , 0.026484778347064] , [ 1034827200000 , 0.027005465132098] , [ 1034913600000 , 0.027216284292421] , [ 1035172800000 , 0.028604444969818] , [ 1035259200000 , 0.029890839466699] , [ 1035345600000 , 0.02690899730454] , [ 1035432000000 , 0.025615326443201] , [ 1035518400000 , 0.024909944815054] , [ 1035781200000 , 0.029065959686029] , [ 1035867600000 , 0.026119529863898] , [ 1035954000000 , 0.026492532440832] , [ 1036040400000 , 0.029125286951061] , [ 1036126800000 , 0.029213818010024] , [ 1036386000000 , 0.031168564371318] , [ 1036472400000 , 0.030803188173056] , [ 1036558800000 , 0.03075767696709] , [ 1036645200000 , 0.029383602025213] , [ 1036731600000 , 0.028152315939112] , [ 1036990800000 , 0.028639152564378] , [ 1037077200000 , 0.028889910669847] , [ 1037163600000 , 0.029071310355849] , [ 1037250000000 , 0.028685091215229] , [ 1037336400000 , 0.029438759820315] , [ 1037595600000 , 0.029185041977343] , [ 1037682000000 , 0.03074018821931] , [ 1037768400000 , 0.030478428738018] , [ 1037854800000 , 0.030194599822581] , [ 1037941200000 , 0.028797698970816] , [ 1038200400000 , 0.029226482633908] , [ 1038286800000 , 0.030189047048893] , [ 1038373200000 , 0.032216593468512] , [ 1038546000000 , 0.028727666673838] , [ 1038805200000 , 0.029679314969669] , [ 1038891600000 , 0.028367499963419] , [ 1038978000000 , 0.031497967222983] , [ 1039064400000 , 0.029670942980314] , [ 1039150800000 , 0.029732353991932] , [ 1039410000000 , 0.028549766300576] , [ 1039496400000 , 0.030274379191703] , [ 1039582800000 , 0.028557282847108] , [ 1039669200000 , 0.028438024174488] , [ 1039755600000 , 0.027910827941057] , [ 1040014800000 , 0.029085958470934] , [ 1040101200000 , 0.030756204759654] , [ 1040187600000 , 0.027276312950373] , [ 1040274000000 , 0.027732460835415] , [ 1040360400000 , 0.026446913109931] , [ 1040619600000 , 0.025562413240833] , [ 1040706000000 , 0.027210109399928] , [ 1040878800000 , 0.027391453353743] , [ 1040965200000 , 0.025045615022089] , [ 1041224400000 , 0.024595114740731] , [ 1041310800000 , 0] , [ 1041483600000 , 0] , [ 1041570000000 , 0] , [ 1041829200000 , 0] , [ 1041915600000 , 0] , [ 1042002000000 , 0] , [ 1042088400000 , 0] , [ 1042174800000 , 0] , [ 1042434000000 , 0] , [ 1042520400000 , 0] , [ 1042606800000 , 0] , [ 1042693200000 , 0] , [ 1042779600000 , 0] , [ 1043125200000 , 0] , [ 1043211600000 , 0] , [ 1043298000000 , 0] , [ 1043384400000 , 0] , [ 1043643600000 , 0] , [ 1043730000000 , 0] , [ 1043816400000 , 0] , [ 1043902800000 , 0] , [ 1043989200000 , 0] , [ 1044248400000 , 0] , [ 1044334800000 , 0] , [ 1044421200000 , 0] , [ 1044507600000 , 0] , [ 1044594000000 , 0] , [ 1044853200000 , 0] , [ 1044939600000 , 0] , [ 1045026000000 , 0] , [ 1045112400000 , 0] , [ 1045198800000 , 0] , [ 1045544400000 , 0] , [ 1045630800000 , 0] , [ 1045717200000 , 0] , [ 1045803600000 , 0] , [ 1046062800000 , 0] , [ 1046149200000 , 0] , [ 1046235600000 , 0] , [ 1046322000000 , 0] , [ 1046408400000 , 0] , [ 1046667600000 , 0] , [ 1046754000000 , 0] , [ 1046840400000 , 0] , [ 1046926800000 , 0] , [ 1047013200000 , 0] , [ 1047272400000 , 0] , [ 1047358800000 , 0] , [ 1047445200000 , 0] , [ 1047531600000 , 0] , [ 1047618000000 , 0] , [ 1047877200000 , 0] , [ 1047963600000 , 0] , [ 1048050000000 , 0] , [ 1048136400000 , 0] , [ 1048222800000 , 0] , [ 1048482000000 , 0] , [ 1048568400000 , 0] , [ 1048654800000 , 0] , [ 1048741200000 , 0] , [ 1048827600000 , 0] , [ 1049086800000 , 0] , [ 1049173200000 , 0] , [ 1049259600000 , 0] , [ 1049346000000 , 0] , [ 1049432400000 , 0] , [ 1049688000000 , 0] , [ 1049774400000 , 0] , [ 1049860800000 , 0] , [ 1049947200000 , 0] , [ 1050033600000 , 0] , [ 1050292800000 , 0] , [ 1050379200000 , 0] , [ 1050465600000 , 0] , [ 1050552000000 , 0] , [ 1050897600000 , 0] , [ 1050984000000 , 0] , [ 1051070400000 , 0] , [ 1051156800000 , 0] , [ 1051243200000 , 0] , [ 1051502400000 , 0] , [ 1051588800000 , 0] , [ 1051675200000 , 0] , [ 1051761600000 , 0] , [ 1051848000000 , 0] , [ 1052107200000 , 0] , [ 1052193600000 , 0] , [ 1052280000000 , 0] , [ 1052366400000 , 0] , [ 1052452800000 , 0] , [ 1052712000000 , 0] , [ 1052798400000 , 0] , [ 1052884800000 , 0] , [ 1052971200000 , 0] , [ 1053057600000 , 0] , [ 1053316800000 , 0] , [ 1053403200000 , 0] , [ 1053489600000 , 0] , [ 1053576000000 , 0] , [ 1053662400000 , 0] , [ 1054008000000 , 0] , [ 1054094400000 , 0] , [ 1054180800000 , 0] , [ 1054267200000 , 0] , [ 1054526400000 , 0] , [ 1054612800000 , 0] , [ 1054699200000 , 0] , [ 1054785600000 , 0] , [ 1054872000000 , 0] , [ 1055131200000 , 0] , [ 1055217600000 , 0] , [ 1055304000000 , 0] , [ 1055390400000 , 0] , [ 1055476800000 , 0] , [ 1055736000000 , 0] , [ 1055822400000 , 0] , [ 1055908800000 , 0] , [ 1055995200000 , 0] , [ 1056081600000 , 0] , [ 1056340800000 , 0] , [ 1056427200000 , 0] , [ 1056513600000 , 0] , [ 1056600000000 , 0] , [ 1056686400000 , 0] , [ 1056945600000 , 0] , [ 1057032000000 , 0] , [ 1057118400000 , 0] , [ 1057204800000 , 0] , [ 1057550400000 , 0] , [ 1057636800000 , 0] , [ 1057723200000 , 0] , [ 1057809600000 , 0] , [ 1057896000000 , 0] , [ 1058155200000 , 0] , [ 1058241600000 , 0] , [ 1058328000000 , 0] , [ 1058414400000 , 0] , [ 1058500800000 , 0] , [ 1058760000000 , 0] , [ 1058846400000 , 0] , [ 1058932800000 , 0] , [ 1059019200000 , 0] , [ 1059105600000 , 0] , [ 1059364800000 , 0] , [ 1059451200000 , 0] , [ 1059537600000 , 0] , [ 1059624000000 , 0] , [ 1059710400000 , 0] , [ 1059969600000 , 0] , [ 1060056000000 , 0] , [ 1060142400000 , 0] , [ 1060228800000 , 0] , [ 1060315200000 , 0] , [ 1060574400000 , 0] , [ 1060660800000 , 0] , [ 1060747200000 , 0] , [ 1060833600000 , 0] , [ 1060920000000 , 0] , [ 1061179200000 , 0] , [ 1061265600000 , 0] , [ 1061352000000 , 0] , [ 1061438400000 , 0] , [ 1061524800000 , 0] , [ 1061784000000 , 0] , [ 1061870400000 , 0] , [ 1061956800000 , 0] , [ 1062043200000 , 0] , [ 1062129600000 , 0] , [ 1062475200000 , 0] , [ 1062561600000 , 0] , [ 1062648000000 , 0] , [ 1062734400000 , 0] , [ 1062993600000 , 0] , [ 1063080000000 , 0] , [ 1063166400000 , 0] , [ 1063252800000 , 0] , [ 1063339200000 , 0] , [ 1063598400000 , 0] , [ 1063684800000 , 0] , [ 1063771200000 , 0] , [ 1063857600000 , 0] , [ 1063944000000 , 0] , [ 1064203200000 , 0] , [ 1064289600000 , 0] , [ 1064376000000 , 0] , [ 1064462400000 , 0] , [ 1064548800000 , 0] , [ 1064808000000 , 0] , [ 1064894400000 , 0] , [ 1064980800000 , 0] , [ 1065067200000 , 0] , [ 1065153600000 , 0] , [ 1065412800000 , 0] , [ 1065499200000 , 0] , [ 1065585600000 , 0] , [ 1065672000000 , 0] , [ 1065758400000 , 0] , [ 1066017600000 , 0] , [ 1066104000000 , 0] , [ 1066190400000 , 0] , [ 1066276800000 , 0] , [ 1066363200000 , 0] , [ 1066622400000 , 0] , [ 1066708800000 , 0] , [ 1066795200000 , 0] , [ 1066881600000 , 0] , [ 1066968000000 , 0] , [ 1067230800000 , 0] , [ 1067317200000 , 0] , [ 1067403600000 , 0] , [ 1067490000000 , 0] , [ 1067576400000 , 0] , [ 1067835600000 , 0] , [ 1067922000000 , 0] , [ 1068008400000 , 0] , [ 1068094800000 , 0] , [ 1068181200000 , 0] , [ 1068440400000 , 0] , [ 1068526800000 , 0] , [ 1068613200000 , 0] , [ 1068699600000 , 0] , [ 1068786000000 , 0] , [ 1069045200000 , 0] , [ 1069131600000 , 0] , [ 1069218000000 , 0] , [ 1069304400000 , 0] , [ 1069390800000 , 0] , [ 1069650000000 , 0] , [ 1069736400000 , 0] , [ 1069822800000 , 0] , [ 1069995600000 , 0] , [ 1070254800000 , 0] , [ 1070341200000 , 0] , [ 1070427600000 , 0] , [ 1070514000000 , 0] , [ 1070600400000 , 0] , [ 1070859600000 , 0] , [ 1070946000000 , 0] , [ 1071032400000 , 0] , [ 1071118800000 , 0] , [ 1071205200000 , 0] , [ 1071464400000 , 0] , [ 1071550800000 , 0] , [ 1071637200000 , 0] , [ 1071723600000 , 0] , [ 1071810000000 , 0] , [ 1072069200000 , 0] , [ 1072155600000 , 0] , [ 1072242000000 , 0] , [ 1072414800000 , 0] , [ 1072674000000 , 0] , [ 1072760400000 , 0] , [ 1072846800000 , 0] , [ 1073019600000 , 0] , [ 1073278800000 , 0.162533822134] , [ 1073365200000 , 0.16191218720795] , [ 1073451600000 , 0.16112156640388] , [ 1073538000000 , 0.1608807335117] , [ 1073624400000 , 0.1613236260659] , [ 1073883600000 , 0.16098338871276] , [ 1073970000000 , 0.16164374991097] , [ 1074056400000 , 0.16047979170149] , [ 1074142800000 , 0.15970454663265] , [ 1074229200000 , 0.15864812501195] , [ 1074574800000 , 0.15839505738166] , [ 1074661200000 , 0.157075278982] , [ 1074747600000 , 0.15718974462752] , [ 1074834000000 , 0.15729893338795] , [ 1075093200000 , 0.15622844925447] , [ 1075179600000 , 0.15734590167515] , [ 1075266000000 , 0.15940277309467] , [ 1075352400000 , 0.15883338293245] , [ 1075438800000 , 0.15875625393522] , [ 1075698000000 , 0.16561398407784] , [ 1075784400000 , 0.16587344375358] , [ 1075870800000 , 0.1666034697865] , [ 1075957200000 , 0.16640165901847] , [ 1076043600000 , 0.16440775984578] , [ 1076302800000 , 0.16436645474488] , [ 1076389200000 , 0.16385568201288] , [ 1076475600000 , 0.16257263852191] , [ 1076562000000 , 0.16274321343554] , [ 1076648400000 , 0.16346536078542] , [ 1076994000000 , 0.16245793851977] , [ 1077080400000 , 0.16266454997517] , [ 1077166800000 , 0.16320682723502] , [ 1077253200000 , 0.16382463573527] , [ 1077512400000 , 0.16502093043411] , [ 1077598800000 , 0.16496824282429] , [ 1077685200000 , 0.16421398798918] , [ 1077771600000 , 0.16354229323765] , [ 1077858000000 , 0.16265627601747] , [ 1078117200000 , 0.16183628922084] , [ 1078203600000 , 0.16258360625313] , [ 1078290000000 , 0.16233976895921] , [ 1078376400000 , 0.16176309597104] , [ 1078462800000 , 0.16115477869602] , [ 1078722000000 , 0.16261733514952] , [ 1078808400000 , 0.16373955365355] , [ 1078894800000 , 0.16556539334739] , [ 1078981200000 , 0.1674812680509] , [ 1079067600000 , 0.16573095761401] , [ 1079326800000 , 0.16765689983007] , [ 1079413200000 , 0.16704067946664] , [ 1079499600000 , 0.16531552815492] , [ 1079586000000 , 0.16547442402761] , [ 1079672400000 , 0.16643725045704] , [ 1079931600000 , 0.16856500546921] , [ 1080018000000 , 0.16817376100152] , [ 1080104400000 , 0.16812992549131] , [ 1080190800000 , 0.1655033512927] , [ 1080277200000 , 0.16536865227461] , [ 1080536400000 , 0.16357393541647] , [ 1080622800000 , 0.16296166414392] , [ 1080709200000 , 0.16243258826925] , [ 1080795600000 , 0.15932585987141] , [ 1080882000000 , 0.36307541132054] , [ 1081137600000 , 0.35434730873291] , [ 1081224000000 , 0.36074868519543] , [ 1081310400000 , 0.35621615093824] , [ 1081396800000 , 0.35507476868398] , [ 1081742400000 , 0.35326645500675] , [ 1081828800000 , 0.34508466611506] , [ 1081915200000 , 0.34716010317974] , [ 1082001600000 , 0.15983733654443] , [ 1082088000000 , 0.15917314912434] , [ 1082347200000 , 0.15860317178384] , [ 1082433600000 , 0.16064372171113] , [ 1082520000000 , 0.15950678999516] , [ 1082606400000 , 0.15775805141077] , [ 1082692800000 , 0.82715282592227] , [ 1082952000000 , 0.81651734610677] , [ 1083038400000 , 0.15908077152471] , [ 1083124800000 , 0.16104982028112] , [ 1083211200000 , 0.16252172453873] , [ 1083297600000 , 0.16376722579173] , [ 1083556800000 , 0.16646121964144] , [ 1083643200000 , 0.16626817468961] , [ 1083729600000 , 0.1655395451939] , [ 1083816000000 , 0.16676136939664] , [ 1083902400000 , 0.16917417182778] , [ 1084161600000 , 0.17162042183806] , [ 1084248000000 , 0.16978178149432] , [ 1084334400000 , 0.17010986886574] , [ 1084420800000 , 0.169885528801] , [ 1084507200000 , 0.17044877033686] , [ 1084766400000 , 0.17246617674047] , [ 1084852800000 , 0.17060891426632] , [ 1084939200000 , 0.17096149254295] , [ 1085025600000 , 0.17147049290408] , [ 1085112000000 , 0.1704807689546] , [ 1085371200000 , 0.1696770057029] , [ 1085457600000 , 0.16728755829763] , [ 1085544000000 , 0.16715564015705] , [ 1085630400000 , 0.16667267118029] , [ 1085716800000 , 0.16658829550746] , [ 1086062400000 , 0.16475817724646] , [ 1086148800000 , 0.16426302735433] , [ 1086235200000 , 0.1655008458145] , [ 1086321600000 , 0.16464582803512] , [ 1086580800000 , 0.16215046084077] , [ 1086667200000 , 0.16185864334201] , [ 1086753600000 , 0.16314862664723] , [ 1086840000000 , 0.60152162268685] , [ 1087185600000 , 0.66360925246556] , [ 1087272000000 , 1.0507921267893] , [ 1087358400000 , 0.66198141591778] , [ 1087444800000 , 0.69588133589603] , [ 1087531200000 , 0.71123332509969] , [ 1087790400000 , 0.49816905981523] , [ 1087876800000 , 0.49581160406275] , [ 1087963200000 , 0.49400719559734] , [ 1088049600000 , 0.49925152033971] , [ 1088136000000 , 0.7461328512748] , [ 1088395200000 , 0.74989761649839] , [ 1088481600000 , 0.16425917253245] , [ 1088568000000 , 0.23358132691792] , [ 1088654400000 , 0.22962749993866] , [ 1088740800000 , 0.23103636980472] , [ 1089086400000 , 0.47503621032418] , [ 1089172800000 , 0.47311952792013] , [ 1089259200000 , 0.48305576455377] , [ 1089345600000 , 0.48019226189611] , [ 1089604800000 , 0.67157988739754] , [ 1089691200000 , 0.23783110177606] , [ 1089777600000 , 0.23380344210608] , [ 1089864000000 , 0.23389385704522] , [ 1089950400000 , 0.23595563149681] , [ 1090209600000 , 0.23718882012937] , [ 1090296000000 , 0.23487588466635] , [ 1090382400000 , 0.23658088573673] , [ 1090468800000 , 0.23763233177432] , [ 1090555200000 , 0.23859609639624] , [ 1090814400000 , 0.23917720980838] , [ 1090900800000 , 0.23618592737232] , [ 1090987200000 , 0.23772881253093] , [ 1091073600000 , 0.2360449762581] , [ 1091160000000 , 0.2955895950662] , [ 1091419200000 , 0.30816591422976] , [ 1091505600000 , 0.57676153789022] , [ 1091592000000 , 0.57250931994969] , [ 1091678400000 , 0.59029327866973] , [ 1091764800000 , 0.32265541506936] , [ 1092024000000 , 0.86445634210137] , [ 1092110400000 , 1.8263419459327] , [ 1092196800000 , 1.2593405719711] , [ 1092283200000 , 1.2704291817955] , [ 1092369600000 , 1.2827394547251] , [ 1092628800000 , 0.79924305357348] , [ 1092715200000 , 7.2992806856608] , [ 1092801600000 , 8.4798343116924] , [ 1092888000000 , 8.6577079245255] , [ 1092974400000 , 9.0088766947982] , [ 1093233600000 , 9.3582351690255] , [ 1093320000000 , 9.829489527127] , [ 1093406400000 , 11.619080936349] , [ 1093492800000 , 13.176307717161] , [ 1093579200000 , 14.036672075106] , [ 1093838400000 , 12.566664351805] , [ 1093924800000 , 12.936533037575] , [ 1094011200000 , 13.05114256248] , [ 1094097600000 , 14.392965106044] , [ 1094184000000 , 15.363948743234] , [ 1094529600000 , 14.520228696456] , [ 1094616000000 , 14.591922863668] , [ 1094702400000 , 14.866694496961] , [ 1094788800000 , 15.230251344299] , [ 1095048000000 , 15.506146020637] , [ 1095134400000 , 15.743440575202] , [ 1095220800000 , 0.57507171680691] , [ 1095307200000 , 16.34761669885] , [ 1095393600000 , 16.336321684872] , [ 1095652800000 , 16.691114188652] , [ 1095739200000 , 16.893871331332] , [ 1095825600000 , 14.42873646175] , [ 1095912000000 , 14.364134753916] , [ 1095998400000 , 14.085159492774] , [ 1096257600000 , 14.334914298657] , [ 1096344000000 , 14.442320570609] , [ 1096430400000 , 15.14292417505] , [ 1096516800000 , 16.870407977799] , [ 1096603200000 , 16.812975617435] , [ 1096862400000 , 16.552243138543] , [ 1096948800000 , 18.557771400735] , [ 1097035200000 , 18.967882272109] , [ 1097121600000 , 16.713543850759] , [ 1097208000000 , 17.356521567582] , [ 1097467200000 , 17.273776388447] , [ 1097553600000 , 14.749258077501] , [ 1097640000000 , 10.054024990725] , [ 1097726400000 , 9.4809432210195] , [ 1097812800000 , 10.583265829491] , [ 1098072000000 , 9.3486862785261] , [ 1098158400000 , 8.9956412927718] , [ 1098244800000 , 9.015954580302] , [ 1098331200000 , 9.0867757343771] , [ 1098417600000 , 9.3325642017188] , [ 1098676800000 , 5.5462759969621] , [ 1098763200000 , 6.5386189300284] , [ 1098849600000 , 6.9270080186852] , [ 1098936000000 , 5.0471550453996] , [ 1099022400000 , 5.5162411749117] , [ 1099285200000 , 4.6168440791678] , [ 1099371600000 , 4.6040208538706] , [ 1099458000000 , 3.8866282055999] , [ 1099544400000 , 3.9076548369401] , [ 1099630800000 , 3.9468225193317] , [ 1099890000000 , 3.9316665195169] , [ 1099976400000 , 3.9373727800243] , [ 1100062800000 , 5.1294739617026] , [ 1100149200000 , 4.9230661104598] , [ 1100235600000 , 5.0101204225727] , [ 1100494800000 , 4.4742042560195] , [ 1100581200000 , 3.5878342150738] , [ 1100667600000 , 4.1439868838598] , [ 1100754000000 , 0.31863197171985] , [ 1100840400000 , 4.0170718378217] , [ 1101099600000 , 3.9742095423276] , [ 1101186000000 , 3.8650632299293] , [ 1101272400000 , 3.8936443679058] , [ 1101445200000 , 3.9156349434464] , [ 1101704400000 , 3.0673403047877] , [ 1101790800000 , 3.1778718109985] , [ 1101877200000 , 3.1093878763518] , [ 1101963600000 , 3.8928153545075] , [ 1102050000000 , 3.9257971355349] , [ 1102309200000 , 3.9017566447062] , [ 1102395600000 , 4.347896144576] , [ 1102482000000 , 5.6064285783093] , [ 1102568400000 , 5.5978010311428] , [ 1102654800000 , 7.4535351484492] , [ 1102914000000 , 8.0721793677192] , [ 1103000400000 , 8.2823811677878] , [ 1103086800000 , 8.765459676367] , [ 1103173200000 , 8.5850799557033] , [ 1103259600000 , 7.7908486730501] , [ 1103518800000 , 7.6678805526241] , [ 1103605200000 , 7.8504282179396] , [ 1103691600000 , 9.399250001389] , [ 1103778000000 , 9.7581658450356] , [ 1104123600000 , 9.9078142487249] , [ 1104210000000 , 9.8182756565342] , [ 1104296400000 , 9.9008818891315] , [ 1104382800000 , 9.9599709680033] , [ 1104469200000 , 10.46571224806] , [ 1104728400000 , 0.74747142004202] , [ 1104814800000 , 10.031098494083] , [ 1104901200000 , 9.4656500427303] , [ 1104987600000 , 9.355766297385] , [ 1105074000000 , 9.4449786614225] , [ 1105333200000 , 9.4028462270052] , [ 1105419600000 , 9.6699992837585] , [ 1105506000000 , 9.184724008747] , [ 1105592400000 , 0.30692455576974] , [ 1105678800000 , 9.0804946251902] , [ 1106024400000 , 10.106622993731] , [ 1106110800000 , 10.250196463002] , [ 1106197200000 , 10.543722776727] , [ 1106283600000 , 11.356491601564] , [ 1106542800000 , 11.649912817418] , [ 1106629200000 , 12.082030240009] , [ 1106715600000 , 0.44537635660078] , [ 1106802000000 , 12.291766341495] , [ 1106888400000 , 0.47541989384315] , [ 1107147600000 , 10.745854742993] , [ 1107234000000 , 11.016016078983] , [ 1107320400000 , 9.9828797388324] , [ 1107406800000 , 10.602886773337] , [ 1107493200000 , 10.813338068307] , [ 1107752400000 , 11.134542525447] , [ 1107838800000 , 10.985586024182] , [ 1107925200000 , 11.499306241313] , [ 1108011600000 , 11.5859205548] , [ 1108098000000 , 11.327591262341] , [ 1108357200000 , 10.56869544127] , [ 1108443600000 , 10.526668369981] , [ 1108530000000 , 10.423117828431] , [ 1108616400000 , 10.631236834437] , [ 1108702800000 , 10.857188147473] , [ 1109048400000 , 10.016737690635] , [ 1109134800000 , 9.9070856337368] , [ 1109221200000 , 10.099078862055] , [ 1109307600000 , 10.508372171841] , [ 1109566800000 , 11.254698520287] , [ 1109653200000 , 11.047328583298] , [ 1109739600000 , 11.4610938393] , [ 1109826000000 , 11.55027177793] , [ 1109912400000 , 11.552187185601] , [ 1110171600000 , 11.502547393254] , [ 1110258000000 , 11.609530593623] , [ 1110344400000 , 14.504690810539] , [ 1110430800000 , 12.696654292538] , [ 1110517200000 , 12.27190877914] , [ 1110776400000 , 12.312803257994] , [ 1110862800000 , 12.655770868701] , [ 1110949200000 , 12.747674976159] , [ 1111035600000 , 12.495897416532] , [ 1111122000000 , 12.624819616915] , [ 1111381200000 , 12.507548356474] , [ 1111467600000 , 12.3680867978] , [ 1111554000000 , 12.158154930856] , [ 1111640400000 , 10.592059146635] , [ 1111986000000 , 0.39245362334724] , [ 1112072400000 , 0.33685804275706] , [ 1112158800000 , 0.34985669356221] , [ 1112245200000 , 0.4411593875026] , [ 1112331600000 , 11.545055177823] , [ 1112587200000 , 11.576072328731] , [ 1112673600000 , 12.509132856801] , [ 1112760000000 , 12.717998097198] , [ 1112846400000 , 11.708400688531] , [ 1112932800000 , 11.990743743591] , [ 1113192000000 , 10.219340446084] , [ 1113278400000 , 10.112469658924] , [ 1113364800000 , 9.4541288634538] , [ 1113451200000 , 7.8674538651247] , [ 1113537600000 , 7.7195626847698] , [ 1113796800000 , 6.9450227220774] , [ 1113883200000 , 7.3826459950972] , [ 1113969600000 , 7.5848425944886] , [ 1114056000000 , 6.8059017070873] , [ 1114142400000 , 6.9167560872077] , [ 1114401600000 , 6.8124096879965] , [ 1114488000000 , 8.8162099332492] , [ 1114574400000 , 9.0247406825978] , [ 1114660800000 , 9.1617334646374] , [ 1114747200000 , 8.5267995733004] , [ 1115006400000 , 8.9811596842566] , [ 1115092800000 , 8.8824488384574] , [ 1115179200000 , 9.4497572731764] , [ 1115265600000 , 10.716144487779] , [ 1115352000000 , 11.753189999482] , [ 1115611200000 , 10.720808344948] , [ 1115697600000 , 10.136471881524] , [ 1115784000000 , 9.9797692562246] , [ 1115870400000 , 13.292950148428] , [ 1115956800000 , 13.192952173369] , [ 1116216000000 , 11.537763972554] , [ 1116302400000 , 11.423169362644] , [ 1116388800000 , 11.223902427124] , [ 1116475200000 , 10.421151487126] , [ 1116561600000 , 10.303761536539] , [ 1116820800000 , 9.9456487566451] , [ 1116907200000 , 10.236261879497] , [ 1116993600000 , 10.062889273806] , [ 1117080000000 , 10.06242497134] , [ 1117166400000 , 9.9983147199815] , [ 1117512000000 , 9.8106871570971] , [ 1117598400000 , 10.501089151551] , [ 1117684800000 , 9.2941994461671] , [ 1117771200000 , 9.2389751586486] , [ 1118030400000 , 7.4482624209164] , [ 1118116800000 , 6.8462826463691] , [ 1118203200000 , 5.9401919260823] , [ 1118289600000 , 5.9535209754597] , [ 1118376000000 , 6.6001538940185] , [ 1118635200000 , 6.6348757668368] , [ 1118721600000 , 5.9833344752235] , [ 1118808000000 , 6.0418961875819] , [ 1118894400000 , 5.9045226403631] , [ 1118980800000 , 5.7497152447422] , [ 1119240000000 , 5.2649666145063] , [ 1119326400000 , 5.0126424745801] , [ 1119412800000 , 4.9151513734225] , [ 1119499200000 , 5.4893296255786] , [ 1119585600000 , 4.3796774773445] , [ 1119844800000 , 6.4076400610862] , [ 1119931200000 , 6.2782612627486] , [ 1120017600000 , 6.6909754146222] , [ 1120104000000 , 8.0732181194761] , [ 1120190400000 , 9.0392678699656] , [ 1120536000000 , 9.4975401720098] , [ 1120622400000 , 9.7222627489378] , [ 1120708800000 , 3.4297149175024] , [ 1120795200000 , 5.6868510640361] , [ 1121054400000 , 5.8801336159671] , [ 1121140800000 , 5.9019163044989] , [ 1121227200000 , 6.2851444340702] , [ 1121313600000 , 6.2316436263698] , [ 1121400000000 , 6.6294865858333] , [ 1121659200000 , 6.5800792636664] , [ 1121745600000 , 8.2961932400234] , [ 1121832000000 , 8.920796261703] , [ 1121918400000 , 8.7030022477305] , [ 1122004800000 , 8.7554693096243] , [ 1122264000000 , 8.749579140082] , [ 1122350400000 , 8.757446490254] , [ 1122436800000 , 7.9055390231208] , [ 1122523200000 , 7.5135868730499] , [ 1122609600000 , 8.1626893684391] , [ 1122868800000 , 10.631433037791] , [ 1122955200000 , 9.3383815177505] , [ 1123041600000 , 9.1792003441247] , [ 1123128000000 , 9.255090986243] , [ 1123214400000 , 11.673563377497] , [ 1123473600000 , 12.226073482243] , [ 1123560000000 , 12.027897115208] , [ 1123646400000 , 8.9579778731093] , [ 1123732800000 , 9.8755693940562] , [ 1123819200000 , 10.561183682268] , [ 1124078400000 , 10.149552913143] , [ 1124164800000 , 9.4894623262941] , [ 1124251200000 , 8.9879565217228] , [ 1124337600000 , 8.9410560230164] , [ 1124424000000 , 9.1050051865001] , [ 1124683200000 , 9.4618677124275] , [ 1124769600000 , 9.4409533679117] , [ 1124856000000 , 9.4630878513013] , [ 1124942400000 , 10.063578133925] , [ 1125028800000 , 10.092168197096] , [ 1125288000000 , 11.425332826805] , [ 1125374400000 , 11.49024405204] , [ 1125460800000 , 11.847043591601] , [ 1125547200000 , 12.341499621531] , [ 1125633600000 , 13.208791891706] , [ 1125979200000 , 13.155861408583] , [ 1126065600000 , 11.911965866601] , [ 1126152000000 , 12.953834087165] , [ 1126238400000 , 12.856533132654] , [ 1126497600000 , 12.940008664349] , [ 1126584000000 , 10.810866385287] , [ 1126670400000 , 10.973556610848] , [ 1126756800000 , 12.582138606639] , [ 1126843200000 , 12.650714589043] , [ 1127102400000 , 13.013957513335] , [ 1127188800000 , 13.163316212612] , [ 1127275200000 , 11.416364972768] , [ 1127361600000 , 10.835976336822] , [ 1127448000000 , 9.7006107541751] , [ 1127707200000 , 9.7685241168158] , [ 1127793600000 , 9.3732947590662] , [ 1127880000000 , 9.2216231957865] , [ 1127966400000 , 10.092701100776] , [ 1128052800000 , 9.2356589292827] , [ 1128312000000 , 9.1055558285159] , [ 1128398400000 , 9.1412763328139] , [ 1128484800000 , 9.3062736540434] , [ 1128571200000 , 9.3543243796744] , [ 1128657600000 , 9.7437842378865] , [ 1128916800000 , 9.1883856015226] , [ 1129003200000 , 9.6023298087782] , [ 1129089600000 , 10.86668509683] , [ 1129176000000 , 8.8392624859772] , [ 1129262400000 , 8.5741250422724] , [ 1129521600000 , 8.4989710714635] , [ 1129608000000 , 7.0284805944926] , [ 1129694400000 , 3.6397565244999] , [ 1129780800000 , 7.5405388385658] , [ 1129867200000 , 6.7328974750621] , [ 1130126400000 , 5.3400903357111] , [ 1130212800000 , 5.4533951253299] , [ 1130299200000 , 5.4269628907864] , [ 1130385600000 , 5.5205382106251] , [ 1130472000000 , 5.4156510035115] , [ 1130734800000 , 5.4054697237045] , [ 1130821200000 , 7.2177042075125] , [ 1130907600000 , 8.9090349293151] , [ 1130994000000 , 8.9031546350938] , [ 1131080400000 , 8.9096034138594] , [ 1131339600000 , 8.8638988480676] , [ 1131426000000 , 8.1621700358637] , [ 1131512400000 , 8.1302336975502] , [ 1131598800000 , 8.0335618127897] , [ 1131685200000 , 8.1331735206501] , [ 1131944400000 , 5.966288023114] , [ 1132030800000 , 5.4209823475156] , [ 1132117200000 , 5.6940281837075] , [ 1132203600000 , 6.7440119020934] , [ 1132290000000 , 7.2785071294657] , [ 1132549200000 , 7.4169981579086] , [ 1132635600000 , 9.4245066343415] , [ 1132722000000 , 9.7019265098101] , [ 1132894800000 , 10.189564992252] , [ 1133154000000 , 10.57095833167] , [ 1133240400000 , 10.708856336907] , [ 1133326800000 , 10.081248274518] , [ 1133413200000 , 10.109272939708] , [ 1133499600000 , 11.322361881796] , [ 1133758800000 , 12.814805654611] , [ 1133845200000 , 12.900810741037] , [ 1133931600000 , 13.010116589906] , [ 1134018000000 , 10.387972623978] , [ 1134104400000 , 8.4731654864527] , [ 1134363600000 , 7.7234731996378] , [ 1134450000000 , 7.7305367712931] , [ 1134536400000 , 4.8069015518006] , [ 1134622800000 , 4.7710398734634] , [ 1134709200000 , 4.8510729154791] , [ 1134968400000 , 4.8635564263195] , [ 1135054800000 , 4.8249363137982] , [ 1135141200000 , 4.8129423160495] , [ 1135227600000 , 4.8256967203712] , [ 1135314000000 , 5.9804600903972] , [ 1135659600000 , 0.8173100806157] , [ 1135746000000 , 6.0331955471104] , [ 1135832400000 , 4.8928522985193] , [ 1135918800000 , 6.6189261096591] , [ 1136264400000 , 4.9946607124478] , [ 1136350800000 , 5.0479429761554] , [ 1136437200000 , 5.3663344434659] , [ 1136523600000 , 7.2497652482159] , [ 1136782800000 , 7.2204011465255] , [ 1136869200000 , 5.6444644889243] , [ 1136955600000 , 4.0636727294028] , [ 1137042000000 , 4.7667519933808] , [ 1137128400000 , 6.4566130334218] , [ 1137474000000 , 0.46213102439786] , [ 1137560400000 , 4.7867008666436] , [ 1137646800000 , 4.7196853133787] , [ 1137733200000 , 8.1322371421911] , [ 1137992400000 , 4.7602603257673] , [ 1138078800000 , 4.695642201985] , [ 1138165200000 , 4.7387579945565] , [ 1138251600000 , 4.7015447750857] , [ 1138338000000 , 4.7457420968044] , [ 1138597200000 , 4.7852686131646] , [ 1138683600000 , 4.8550998785219] , [ 1138770000000 , 4.2395266341639] , [ 1138856400000 , 4.2904690761142] , [ 1138942800000 , 1.8851906086774] , [ 1139202000000 , 1.9011137411197] , [ 1139288400000 , 1.8498164674396] , [ 1139374800000 , 1.8319241759015] , [ 1139461200000 , 1.8745969263792] , [ 1139547600000 , 1.819195676722] , [ 1139806800000 , 1.786022665598] , [ 1139893200000 , 1.791896384862] , [ 1139979600000 , 1.782825474546] , [ 1140066000000 , 2.5588150262676] , [ 1140152400000 , 1.7941891666109] , [ 1140498000000 , 2.9138430005023] , [ 1140584400000 , 2.8847667879212] , [ 1140670800000 , 2.8554441099732] , [ 1140757200000 , 2.9027958918691] , [ 1141016400000 , 3.493874460456] , [ 1141102800000 , 2.9167500744015] , [ 1141189200000 , 4.0589336129841] , [ 1141275600000 , 4.1160395032903] , [ 1141362000000 , 4.1056707482914] , [ 1141621200000 , 4.0615618794864] , [ 1141707600000 , 4.0475590942139] , [ 1141794000000 , 3.9779920546415] , [ 1141880400000 , 4.0186341814335] , [ 1141966800000 , 3.935255409221] , [ 1142226000000 , 3.9658417151816] , [ 1142312400000 , 3.9573862864997] , [ 1142398800000 , 3.9621406560117] , [ 1142485200000 , 3.9643591225142] , [ 1142571600000 , 3.9336232385745] , [ 1142830800000 , 3.941074358239] , [ 1142917200000 , 3.9657882597178] , [ 1143003600000 , 3.9280800216791] , [ 1143090000000 , 3.9439915039484] , [ 1143176400000 , 4.0122436243806] , [ 1143435600000 , 4.0669378768976] , [ 1143522000000 , 4.0912438715018] , [ 1143608400000 , 4.0713504655543] , [ 1143694800000 , 6.0268796793529] , [ 1143781200000 , 5.968838437088] , [ 1144036800000 , 6.0484445914947] , [ 1144123200000 , 5.97778262297] , [ 1144209600000 , 7.4463648666009] , [ 1144296000000 , 8.7206360921576] , [ 1144382400000 , 8.7039952290916] , [ 1144641600000 , 13.401047031354] , [ 1144728000000 , 13.561502328224] , [ 1144814400000 , 14.997500543318] , [ 1144900800000 , 10.517117265656] , [ 1145246400000 , 12.838892214224] , [ 1145332800000 , 13.662576131421] , [ 1145419200000 , 13.854149552099] , [ 1145505600000 , 13.953085296369] , [ 1145592000000 , 17.604995370906] , [ 1145851200000 , 15.281466288386] , [ 1145937600000 , 15.139059941931] , [ 1146024000000 , 13.456279853441] , [ 1146110400000 , 9.4893340412739] , [ 1146196800000 , 6.1328426234] , [ 1146456000000 , 4.7574059901657] , [ 1146542400000 , 1.919412667311] , [ 1146628800000 , 3.0164152643481] , [ 1146715200000 , 3.2117070539049] , [ 1146801600000 , 3.4975758799316] , [ 1147060800000 , 3.4286040633737] , [ 1147147200000 , 4.0262269231406] , [ 1147233600000 , 6.9344709389752] , [ 1147320000000 , 8.0544533159695] , [ 1147406400000 , 8.045091501052] , [ 1147665600000 , 3.3760469310513] , [ 1147752000000 , 3.3994591584674] , [ 1147838400000 , 3.6923503668838] , [ 1147924800000 , 3.7215257839535] , [ 1148011200000 , 2.9137465847263] , [ 1148270400000 , 2.9409020632425] , [ 1148356800000 , 3.0486366902688] , [ 1148443200000 , 2.948247556144] , [ 1148529600000 , 2.9415183975016] , [ 1148616000000 , 2.9384894667669] , [ 1148961600000 , 3.0200964290604] , [ 1149048000000 , 2.948992015432] , [ 1149134400000 , 2.8069659223142] , [ 1149220800000 , 2.8366590485029] , [ 1149480000000 , 2.8757950742515] , [ 1149566400000 , 2.8466144762098] , [ 1149652800000 , 2.8480720110885] , [ 1149739200000 , 2.7926618205686] , [ 1149825600000 , 19.747227947692] , [ 1150084800000 , 2.8996092610008] , [ 1150171200000 , 15.785309261632] , [ 1150257600000 , 2.797061964531] , [ 1150344000000 , 2.7456202221531] , [ 1150430400000 , 2.7905391199606] , [ 1150689600000 , 2.7416962751862] , [ 1150776000000 , 2.8492790552625] , [ 1150862400000 , 3.1915238690065] , [ 1150948800000 , 3.8766915795871] , [ 1151035200000 , 3.8827084733311] , [ 1151294400000 , 3.9374605868536] , [ 1151380800000 , 3.9563523816199] , [ 1151467200000 , 4.5608262249523] , [ 1151553600000 , 4.5763484834063] , [ 1151640000000 , 4.6763211979752] , [ 1151899200000 , 4.6520117737883] , [ 1152072000000 , 4.8429368640414] , [ 1152158400000 , 4.9768643534564] , [ 1152244800000 , 6.1305481840025] , [ 1152504000000 , 5.175446146237] , [ 1152590400000 , 5.2358778184994] , [ 1152676800000 , 5.2689365647386] , [ 1152763200000 , 6.8644726301626] , [ 1152849600000 , 6.9886696147893] , [ 1153108800000 , 6.9036824079769] , [ 1153195200000 , 6.6654299027243] , [ 1153281600000 , 6.5146277540319] , [ 1153368000000 , 5.9036074266025] , [ 1153454400000 , 5.9569980600331] , [ 1153713600000 , 5.151836629581] , [ 1153800000000 , 5.1624061811956] , [ 1153886400000 , 5.0915473293374] , [ 1153972800000 , 3.9390742038109] , [ 1154059200000 , 4.0086836488803] , [ 1154318400000 , 4.0904620822168] , [ 1154404800000 , 5.5857330840014] , [ 1154491200000 , 5.5423138436635] , [ 1154577600000 , 4.3701912000671] , [ 1154664000000 , 4.5268035529361] , [ 1154923200000 , 4.5429812632733] , [ 1155009600000 , 3.1924514704355] , [ 1155096000000 , 3.2585958449797] , [ 1155182400000 , 2.5092653214667] , [ 1155268800000 , 2.7823668174575] , [ 1155528000000 , 2.7899839768294] , [ 1155614400000 , 1.2280265256445] , [ 1155700800000 , 1.3731826865885] , [ 1155787200000 , 1.3913280408006] , [ 1155873600000 , 1.3805979295051] , [ 1156132800000 , 1.3783460906009] , [ 1156219200000 , 1.4136073243985] , [ 1156305600000 , 1.4426603050026] , [ 1156392000000 , 1.4078447541276] , [ 1156478400000 , 1.3867707515587] , [ 1156737600000 , 0.80908361335597] , [ 1156824000000 , 0.82614827066555] , [ 1156910400000 , 0.82636153187655] , [ 1156996800000 , 0.82137686952494] , [ 1157083200000 , 0.83771474955879] , [ 1157428800000 , 0.71853983630983] , [ 1157515200000 , 0.88451206960144] , [ 1157601600000 , 0.89041250100159] , [ 1157688000000 , 0.92422347330851] , [ 1157947200000 , 0.94790448435661] , [ 1158033600000 , 0.99254859613543] , [ 1158120000000 , 0.42574623937435] , [ 1158206400000 , 0.45351432741561] , [ 1158292800000 , 0.46138107990096] , [ 1158552000000 , 0.44336340077374] , [ 1158638400000 , 0.53200657672664] , [ 1158724800000 , 0.59158864677543] , [ 1158811200000 , 0.56376495959054] , [ 1158897600000 , 0.60648201286241] , [ 1159156800000 , 0.569990420922] , [ 1159243200000 , 0.58581269728219] , [ 1159329600000 , 0.50431281834244] , [ 1159416000000 , 0.50583966750551] , [ 1159502400000 , 0.4895803799904] , [ 1159761600000 , 0.57897307744147] , [ 1159848000000 , 0.67670533075932] , [ 1159934400000 , 0E+1] , [ 1160020800000 , 0] , [ 1160107200000 , 0] , [ 1160366400000 , 0] , [ 1160452800000 , 0] , [ 1160539200000 , 0] , [ 1160625600000 , 2.6824231157085] , [ 1160712000000 , 3.5357180105398] , [ 1160971200000 , 2.779732378209] , [ 1161057600000 , 2.2481389625883] , [ 1161144000000 , 2.2822601981901] , [ 1161230400000 , 2.6834226291218] , [ 1161316800000 , 2.5646940363316] , [ 1161576000000 , 2.7236799805971] , [ 1161662400000 , 2.336966957629] , [ 1161748800000 , 2.3130581428869] , [ 1161835200000 , 2.287999048227] , [ 1161921600000 , 2.3509786326822] , [ 1162184400000 , 1.7792168788316] , [ 1162270800000 , 1.7553609022196] , [ 1162357200000 , 1.5799074614674] , [ 1162443600000 , 4.8123124280397] , [ 1162530000000 , 2.3600410437418] , [ 1162789200000 , 1.5414605418287] , [ 1162875600000 , 1.5171799999929] , [ 1162962000000 , 1.6483752879253] , [ 1163048400000 , 1.8174773751897] , [ 1163134800000 , 2.338601742401] , [ 1163394000000 , 3.4064766262284] , [ 1163480400000 , 4.3765682782065] , [ 1163566800000 , 5.9472706375975] , [ 1163653200000 , 3.002279000454] , [ 1163739600000 , 3.000915308439] , [ 1163998800000 , 2.9999632994464] , [ 1164085200000 , 2.8555261167545] , [ 1164171600000 , 2.9559411117469] , [ 1164344400000 , 2.9957135108809] , [ 1164603600000 , 3.030157444187] , [ 1164690000000 , 3.0461908634861] , [ 1164776400000 , 3.0153795449063] , [ 1164862800000 , 3.0564722974476] , [ 1164949200000 , 13.898015051888] , [ 1165208400000 , 15.034122737263] , [ 1165294800000 , 20.667866091028] , [ 1165381200000 , 23.901400959877] , [ 1165467600000 , 19.019263370775] , [ 1165554000000 , 18.032280035866] , [ 1165813200000 , 17.980521041415] , [ 1165899600000 , 17.77329949168] , [ 1165986000000 , 18.899765136247] , [ 1166072400000 , 8.4289284499593] , [ 1166158800000 , 5.2257614390063] , [ 1166418000000 , 5.2738781861931] , [ 1166504400000 , 4.4073707190307] , [ 1166590800000 , 4.369483275726] , [ 1166677200000 , 4.3377863790761] , [ 1166763600000 , 8.9029231451486] , [ 1167109200000 , 5.6565826811189] , [ 1167195600000 , 7.091966322015] , [ 1167282000000 , 1.2808657722335] , [ 1167368400000 , 1.2781647956727] , [ 1167800400000 , 1.387333113251] , [ 1167886800000 , 1.4469839195287] , [ 1167973200000 , 1.3890766206796] , [ 1168232400000 , 1.3034980496425] , [ 1168318800000 , 0.15170435094422] , [ 1168405200000 , 0.1426197892194] , [ 1168491600000 , 0.17439719809086] , [ 1168578000000 , 0.14060689747674] , [ 1168923600000 , 2.5183898451669] , [ 1169010000000 , 0.16967705683268] , [ 1169096400000 , 1.9701237833631] , [ 1169182800000 , 0.1203001235101] , [ 1169442000000 , 0.097246075530886] , [ 1169528400000 , 0.09064402246569] , [ 1169614800000 , 1.7836438501198] , [ 1169701200000 , 2.5538891862371] , [ 1169787600000 , 0.093309983536929] , [ 1170046800000 , 2.8396943615562] , [ 1170133200000 , 0.072920309480308] , [ 1170219600000 , 0.071970926838522] , [ 1170306000000 , 0.066250289479512] , [ 1170392400000 , 0.064419931223455] , [ 1170651600000 , 0.057940687431428] , [ 1170738000000 , 0.053654661720143] , [ 1170824400000 , 0.047493833087224] , [ 1170910800000 , 0.038825846129865] , [ 1170997200000 , 0.090436937693049] , [ 1171256400000 , 0.057014488007131] , [ 1171342800000 , 0.053840708739557] , [ 1171429200000 , 1.2678503010858] , [ 1171515600000 , 1.3031994669332] , [ 1171602000000 , 3.5861789064601] , [ 1171947600000 , 6.4588538863173] , [ 1172034000000 , 4.4816367084048] , [ 1172120400000 , 16.698500302881] , [ 1172206800000 , 44.184731059072] , [ 1172466000000 , 17.608795545871] , [ 1172552400000 , 11.175580771574] , [ 1172638800000 , 10.702030882608] , [ 1172725200000 , 7.8709426150369] , [ 1172811600000 , 11.918815678079] , [ 1173070800000 , 12.600695409504] , [ 1173157200000 , 11.126768690864] , [ 1173243600000 , 11.283575650439] , [ 1173330000000 , 18.950793290736] , [ 1173416400000 , 23.37784104408] , [ 1173672000000 , 23.129654653574] , [ 1173758400000 , 24.900211313236] , [ 1173844800000 , 17.957868206384] , [ 1173931200000 , 18.434107763401] , [ 1174017600000 , 15.331270302437] , [ 1174276800000 , 15.446263046099] , [ 1174363200000 , 9.954232039295] , [ 1174449600000 , 3.4565369872674] , [ 1174536000000 , 3.460955478627] , [ 1174622400000 , 6.4657608529261] , [ 1174881600000 , 14.270775124143] , [ 1174968000000 , 6.460730633443] , [ 1175054400000 , 12.269126166973] , [ 1175140800000 , 16.023432906777] , [ 1175227200000 , 16.609582800146] , [ 1175486400000 , 13.970578817167] , [ 1175572800000 , 12.085620578978] , [ 1175659200000 , 11.747424008608] , [ 1175745600000 , 10.782672638525] , [ 1176091200000 , 11.637773514541] , [ 1176177600000 , 13.493297897413] , [ 1176264000000 , 9.709593164293] , [ 1176350400000 , 6.7510233936491] , [ 1176436800000 , 9.3392355486568] , [ 1176696000000 , 5.602219034106] , [ 1176782400000 , 6.1992130361513] , [ 1176868800000 , 8.2421634182024] , [ 1176955200000 , 8.2548363560006] , [ 1177041600000 , 5.6380640228977] , [ 1177300800000 , 5.6051547259257] , [ 1177387200000 , 5.5040817068349] , [ 1177473600000 , 5.4810771243668] , [ 1177560000000 , 7.3649871653759] , [ 1177646400000 , 5.2703171496882] , [ 1177905600000 , 5.309308827205] , [ 1177992000000 , 4.539861133059] , [ 1178078400000 , 4.5475464336504] , [ 1178164800000 , 7.5945088176983] , [ 1178251200000 , 8.8774939921708] , [ 1178510400000 , 8.8767810404494] , [ 1178596800000 , 12.645780632808] , [ 1178683200000 , 11.016949217979] , [ 1178769600000 , 8.4422707174603] , [ 1178856000000 , 4.6822791957922] , [ 1179115200000 , 4.5327911119388] , [ 1179201600000 , 4.2920095636821] , [ 1179288000000 , 4.4200896629003] , [ 1179374400000 , 14.00038161468] , [ 1179460800000 , 0] , [ 1179720000000 , 18.943379636877] , [ 1179806400000 , 20.585384483123] , [ 1179892800000 , 20.646063407583] , [ 1179979200000 , 20.80823351821] , [ 1180065600000 , 7.4538422873799] , [ 1180411200000 , 10.336291303152] , [ 1180497600000 , 14.540867658982] , [ 1180584000000 , 6.8535014243623] , [ 1180670400000 , 8.989407227217] , [ 1180929600000 , 10.628958779903] , [ 1181016000000 , 9.1755300530468] , [ 1181102400000 , 11.359648612598] , [ 1181188800000 , 11.542993844626] , [ 1181275200000 , 12.03503036654] , [ 1181534400000 , 4.5918795656533] , [ 1181620800000 , 4.5740571909219] , [ 1181707200000 , 4.6003738821388] , [ 1181793600000 , 4.7259483344412] , [ 1181880000000 , 4.7687241404973] , [ 1182139200000 , 4.7537464357003] , [ 1182225600000 , 4.7300488241078] , [ 1182312000000 , 5.4244432062156] , [ 1182398400000 , 5.3944820995915] , [ 1182484800000 , 8.4952830437349] , [ 1182744000000 , 8.5051292553298] , [ 1182830400000 , 17.814873412087] , [ 1182916800000 , 13.13881023684] , [ 1183003200000 , 8.9611485633662] , [ 1183089600000 , 9.3527444961228] , [ 1183348800000 , 10.668125727641] , [ 1183435200000 , 10.504164125381] , [ 1183608000000 , 13.016543896951] , [ 1183694400000 , 31.144095953308] , [ 1183953600000 , 31.210090074789] , [ 1184040000000 , 31.42769092428] , [ 1184126400000 , 33.424093170975] , [ 1184212800000 , 24.406723188437] , [ 1184299200000 , 10.874507185059] , [ 1184558400000 , 9.8511919117572] , [ 1184644800000 , 9.7155845603641] , [ 1184731200000 , 8.8338529286599] , [ 1184817600000 , 13.516322433336] , [ 1184904000000 , 10.447712114713] , [ 1185163200000 , 10.457566743565] , [ 1185249600000 , 10.29336915461] , [ 1185336000000 , 9.7710600471723] , [ 1185422400000 , 5.4883357572287] , [ 1185508800000 , 5.4010377274909] , [ 1185768000000 , 6.9844114910505] , [ 1185854400000 , 17.466090644865] , [ 1185940800000 , 19.692295300726] , [ 1186027200000 , 6.4489002602679] , [ 1186113600000 , 19.19718137016] , [ 1186372800000 , 16.6707868357] , [ 1186459200000 , 3.1168058155453] , [ 1186545600000 , 4.2297699200172] , [ 1186632000000 , 13.095553953084] , [ 1186718400000 , 4.2948834737196] , [ 1186977600000 , 9.271225623467] , [ 1187064000000 , 3.0320057977494] , [ 1187150400000 , 3.0567606228017] , [ 1187236800000 , 1.455939502163] , [ 1187323200000 , 1.4385942827968] , [ 1187582400000 , 1.4579119812098] , [ 1187668800000 , 1.4347580634976] , [ 1187755200000 , 9.6632762551433] , [ 1187841600000 , 1.4424459151181] , [ 1187928000000 , 1.4277539902055] , [ 1188187200000 , 1.4005401138408] , [ 1188273600000 , 18.966305312184] , [ 1188360000000 , 18.119060249321] , [ 1188446400000 , 20.893542091323] , [ 1188532800000 , 14.470326771961] , [ 1188878400000 , 0] , [ 1188964800000 , 0] , [ 1189051200000 , 0] , [ 1189137600000 , 0] , [ 1189396800000 , 0] , [ 1189483200000 , 0] , [ 1189569600000 , 0] , [ 1189656000000 , 0E+1] , [ 1189742400000 , 11.151150089488] , [ 1190001600000 , 0] , [ 1190088000000 , 0] , [ 1190174400000 , 0] , [ 1190260800000 , 6.652142424709] , [ 1190347200000 , 6.5493593469205] , [ 1190606400000 , 11.496081663409] , [ 1190692800000 , 10.704111549006] , [ 1190779200000 , 7.2363597002465] , [ 1190865600000 , 8.0792846697389] , [ 1190952000000 , 22.25651099443] , [ 1191211200000 , 21.550494247088] , [ 1191297600000 , 4.9343086604033] , [ 1191384000000 , 24.181509556623] , [ 1191470400000 , 26.284911189232] , [ 1191556800000 , 25.239843004115] , [ 1191816000000 , 21.506762281943] , [ 1191902400000 , 31.388030695109] , [ 1191988800000 , 8.6157444685589] , [ 1192075200000 , 6.7640035301635] , [ 1192161600000 , 24.964054048319] , [ 1192420800000 , 45.700325049525] , [ 1192507200000 , 7.517661863009] , [ 1192593600000 , 21.237355797657] , [ 1192680000000 , 7.1235509804073] , [ 1192766400000 , 9.3828262178039] , [ 1193025600000 , 9.6963440480266] , [ 1193112000000 , 16.373531960039] , [ 1193198400000 , 3.8948899021831] , [ 1193284800000 , 4.9107208916799] , [ 1193371200000 , 35.776852900287] , [ 1193630400000 , 5.6952192551352] , [ 1193716800000 , 13.598229030437] , [ 1193803200000 , 4.4441589718617] , [ 1193889600000 , 43.839048634072] , [ 1193976000000 , 38.028827006764] , [ 1194238800000 , 36.654688949042] , [ 1194325200000 , 11.06069509605] , [ 1194411600000 , 11.414359688131] , [ 1194498000000 , 11.322914493047] , [ 1194584400000 , 26.784712510423] , [ 1194843600000 , 24.692986411163] , [ 1194930000000 , 23.150204872187] , [ 1195016400000 , 10.279725353046] , [ 1195102800000 , 14.160111490057] , [ 1195189200000 , 3.1044124658761] , [ 1195448400000 , 1.8572248938483] , [ 1195534800000 , 34.155668333938] , [ 1195621200000 , 22.422089683576] , [ 1195794000000 , 19.84684746526] , [ 1196053200000 , 18.151255589291] , [ 1196139600000 , 16.800462518017] , [ 1196226000000 , 33.832044228345] , [ 1196312400000 , 31.015169345761] , [ 1196398800000 , 30.48932877877] , [ 1196658000000 , 23.148119421303] , [ 1196744400000 , 28.241056479159] , [ 1196830800000 , 16.772434535307] , [ 1196917200000 , 1.7065866182462] , [ 1197003600000 , 16.380626643157] , [ 1197262800000 , 16.232860048538] , [ 1197349200000 , 1.7293115762353] , [ 1197435600000 , 1.7098102517254] , [ 1197522000000 , 21.419607181657] , [ 1197608400000 , 21.43328592356] , [ 1197867600000 , 21.668650130421] , [ 1197954000000 , 30.926905842551] , [ 1198040400000 , 29.61527740791] , [ 1198126800000 , 25.897765882671] , [ 1198213200000 , 4.5488729345191] , [ 1198472400000 , 1.7238120892471] , [ 1198645200000 , 1.7217321338302] , [ 1198731600000 , 1.7627054395636] , [ 1198818000000 , 1.7484807546433] , [ 1199077200000 , 1.7145498953412] , [ 1199250000000 , 0] , [ 1199336400000 , 7.3007973762395] , [ 1199422800000 , 7.4043175530951] , [ 1199682000000 , 7.2266628630524] , [ 1199768400000 , 11.851801669846] , [ 1199854800000 , 11.648852225991] , [ 1199941200000 , 11.378288591693] , [ 1200027600000 , 11.406302658644] , [ 1200286800000 , 11.419837120392] , [ 1200373200000 , 12.889677988621] , [ 1200459600000 , 12.718508965567] , [ 1200546000000 , 12.834488888354] , [ 1200632400000 , 12.872299326712] , [ 1200978000000 , 12.927125312502] , [ 1201064400000 , 31.673673103614] , [ 1201150800000 , 12.488428578073] , [ 1201237200000 , 12.861960245871] , [ 1201496400000 , 15.297131052375] , [ 1201582800000 , 7.0979530309852] , [ 1201669200000 , 19.26922145937] , [ 1201755600000 , 16.315331049451] , [ 1201842000000 , 25.048406090361] , [ 1202101200000 , 22.842841327371] , [ 1202187600000 , 25.727024942996] , [ 1202274000000 , 27.346662764257] , [ 1202360400000 , 23.63663944367] , [ 1202446800000 , 13.279977843876] , [ 1202706000000 , 21.825420957608] , [ 1202792400000 , 21.572363568444] , [ 1202878800000 , 30.703412161079] , [ 1202965200000 , 25.093202609083] , [ 1203051600000 , 34.513697350059] , [ 1203397200000 , 26.65466718946] , [ 1203483600000 , 26.237161386764] , [ 1203570000000 , 29.909392771291] , [ 1203656400000 , 23.502969355307] , [ 1203915600000 , 22.336394320201] , [ 1204002000000 , 17.924538077553] , [ 1204088400000 , 21.588154878031] , [ 1204174800000 , 22.800365445041] , [ 1204261200000 , 24.008559621935] , [ 1204520400000 , 25.752632744689] , [ 1204606800000 , 21.427238094735] , [ 1204693200000 , 14.078434025614] , [ 1204779600000 , 14.099025273452] , [ 1204866000000 , 13.956919802432] , [ 1205121600000 , 9.6466954658888] , [ 1205208000000 , 11.020170303092] , [ 1205294400000 , 11.177636405057] , [ 1205380800000 , 11.208918940107] , [ 1205467200000 , 18.657122787639] , [ 1205726400000 , 7.8324562692057] , [ 1205812800000 , 7.6282309363716] , [ 1205899200000 , 1.3110417995852] , [ 1205985600000 , 0.69253968653589] , [ 1206331200000 , 19.295131255226] , [ 1206417600000 , 3.1070317703761] , [ 1206504000000 , 3.132785261052] , [ 1206590400000 , 3.2169997685507] , [ 1206676800000 , 4.659120097841] , [ 1206936000000 , 8.2150523548054] , [ 1207022400000 , 7.0045486909585] , [ 1207108800000 , 2.8502649001201] , [ 1207195200000 , 8.5659439033653] , [ 1207281600000 , 2.9005955343095] , [ 1207540800000 , 2.9292805815067] , [ 1207627200000 , 8.8702913283124] , [ 1207713600000 , 13.351009411784] , [ 1207800000000 , 14.240912285062] , [ 1207886400000 , 4.4761684530362] , [ 1208145600000 , 4.0938282238997] , [ 1208232000000 , 13.022581699737] , [ 1208318400000 , 18.485313694325] , [ 1208404800000 , 21.801915576764] , [ 1208491200000 , 5.0372960327402] , [ 1208750400000 , 4.9660078722839] , [ 1208836800000 , 5.0242365767748] , [ 1208923200000 , 9.7226047132493] , [ 1209009600000 , 18.745544096839] , [ 1209096000000 , 7.0846958133547] , [ 1209355200000 , 7.6864740246385] , [ 1209441600000 , 4.8228736488467] , [ 1209528000000 , 9.9576530883914] , [ 1209614400000 , 3.005233883599] , [ 1209700800000 , 0.68873396407972] , [ 1209960000000 , 5.3288686786249] , [ 1210046400000 , 3.7254288453765] , [ 1210132800000 , 0.61060511367277] , [ 1210219200000 , 0.88311893887446] , [ 1210305600000 , 0.89673912717629] , [ 1210564800000 , 4.0370104394005] , [ 1210651200000 , 1.1438716143645] , [ 1210737600000 , 4.8943792252831] , [ 1210824000000 , 1.1211438159548] , [ 1210910400000 , 7.4146362302054] , [ 1211169600000 , 0.62592255888944] , [ 1211256000000 , 0.62767918903946] , [ 1211342400000 , 0.65252417412164] , [ 1211428800000 , 0.63681796043062] , [ 1211515200000 , 0.64078216622934] , [ 1211860800000 , 0.61856661491052] , [ 1211947200000 , 0.040457512312218] , [ 1212033600000 , 3.1744344901048] , [ 1212120000000 , 0.043386153951564] , [ 1212379200000 , 0.037416080029552] , [ 1212465600000 , 0.036208564062895] , [ 1212552000000 , 0.034429513297319] , [ 1212638400000 , 0.03598853197083] , [ 1212724800000 , 0.034314835427766] , [ 1212984000000 , 0.9247996649917] , [ 1213070400000 , 0.80570764610339] , [ 1213156800000 , 0.84768226660477] , [ 1213243200000 , 0.84516069243209] , [ 1213329600000 , 0.82422041719099] , [ 1213588800000 , 3.5485281610352] , [ 1213675200000 , 3.5666096114884] , [ 1213761600000 , 3.5850166087295] , [ 1213848000000 , 2.6669203234679] , [ 1213934400000 , 1.9322206731937] , [ 1214193600000 , 6.0346305017161] , [ 1214280000000 , 6.068610418399] , [ 1214366400000 , 5.9566599022118] , [ 1214452800000 , 1.1328054414901] , [ 1214539200000 , 8.4372479748449] , [ 1214798400000 , 8.5507111321931] , [ 1214884800000 , 6.0417351754615] , [ 1214971200000 , 4.6851988331241] , [ 1215057600000 , 4.7466368030043] , [ 1215403200000 , 4.6401217726266] , [ 1215489600000 , 4.3929570335133] , [ 1215576000000 , 4.4902593438217] , [ 1215662400000 , 0.86423503954477] , [ 1215748800000 , 0.8965341056628] , [ 1216008000000 , 0.9042750300334] , [ 1216094400000 , 9.7110694396787] , [ 1216180800000 , 2.9842346936245] , [ 1216267200000 , 2.8803467730387] , [ 1216353600000 , 2.8923231728124] , [ 1216612800000 , 10.302189764673] , [ 1216699200000 , 1.6276311379318] , [ 1216785600000 , 2.8091420986688] , [ 1216872000000 , 5.0043216249239] , [ 1216958400000 , 4.8948671918161] , [ 1217217600000 , 5.0039528512305] , [ 1217304000000 , 2.2542029777355] , [ 1217390400000 , 4.4963549113593] , [ 1217476800000 , 4.4452620614878] , [ 1217563200000 , 0E+1] , [ 1217822400000 , 2.1560055296562] , [ 1217908800000 , 2.0716387924969] , [ 1217995200000 , 4.758213776442] , [ 1218081600000 , 2.4926804812625] , [ 1218168000000 , 2.3418408892938] , [ 1218427200000 , 2.3138056281813] , [ 1218513600000 , 4.5766776929846] , [ 1218600000000 , 4.8296317377562] , [ 1218686400000 , 4.7649581033755] , [ 1218772800000 , 4.7492551018869] , [ 1219032000000 , 5.7544050941317] , [ 1219118400000 , 2.9569643056404] , [ 1219204800000 , 18.244922281458] , [ 1219291200000 , 10.574286406937] , [ 1219377600000 , 10.395808855373] , [ 1219636800000 , 10.924808846938] , [ 1219723200000 , 0E+1] , [ 1219809600000 , 0.53654662105493] , [ 1219896000000 , 2.9052446048062] , [ 1219982400000 , 5.3552605736185] , [ 1220328000000 , 12.018517208769] , [ 1220414400000 , 13.647134146831] , [ 1220500800000 , 17.786073307781] , [ 1220587200000 , 13.412919954101] , [ 1220846400000 , 10.791317859821] , [ 1220932800000 , 6.6988478353327] , [ 1221019200000 , 13.684264265774] , [ 1221105600000 , 21.961878938582] , [ 1221192000000 , 9.7427861869276] , [ 1221451200000 , 6.3268355523899] , [ 1221537600000 , 5.9565161695134] , [ 1221624000000 , 6.5054173496002] , [ 1221710400000 , 9.5318245347596] , [ 1221796800000 , 7.9806692731403] , [ 1222056000000 , 12.386654129753] , [ 1222142400000 , 10.798968817846] , [ 1222228800000 , 13.640073947636] , [ 1222315200000 , 9.3154824170404] , [ 1222401600000 , 8.1893528745798] , [ 1222660800000 , 7.9487029756044] , [ 1222747200000 , 0E+1] , [ 1222833600000 , 0.62257729423205] , [ 1222920000000 , 0.63822450829594] , [ 1223006400000 , 0.64992976756028] , [ 1223265600000 , 16.38956634512] , [ 1223352000000 , 3.1334295349777] , [ 1223438400000 , 4.5556340538731] , [ 1223524800000 , 4.575086203882] , [ 1223611200000 , 3.4367517616623] , [ 1223870400000 , 3.2118637273257] , [ 1223956800000 , 8.5544847718949] , [ 1224043200000 , 4.8626977832673] , [ 1224129600000 , 0E+1] , [ 1224216000000 , 6.5923527094405] , [ 1224475200000 , 17.887929510513] , [ 1224561600000 , 9.6970766835845E-9] , [ 1224648000000 , 12.16195259299] , [ 1224734400000 , 11.829626134238] , [ 1224820800000 , 0] , [ 1225080000000 , 0] , [ 1225166400000 , 12.519740444381] , [ 1225252800000 , 9.8080194525088E-9] , [ 1225339200000 , 0] , [ 1225425600000 , 0] , [ 1225688400000 , 3.186156723403] , [ 1225774800000 , 1.5298697304129] , [ 1225861200000 , 6.4408413828937] , [ 1225947600000 , 9.4400357312974] , [ 1226034000000 , 3.906373932269] , [ 1226293200000 , 21.418568194884] , [ 1226379600000 , 17.06491897991] , [ 1226466000000 , 1.9480018168095] , [ 1226552400000 , 1.9302979102606] , [ 1226638800000 , 1.9402803095639] , [ 1226898000000 , 0.94539707618153] , [ 1226984400000 , 11.401232860339] , [ 1227070800000 , 11.15809406856] , [ 1227157200000 , 18.984697337731] , [ 1227243600000 , 7.9897186183294] , [ 1227502800000 , 18.874995066617] , [ 1227589200000 , 15.423773770864] , [ 1227675600000 , 14.307267135477] , [ 1227848400000 , 6.96521305646] , [ 1228107600000 , 26.186806641883] , [ 1228194000000 , 6.509259095166] , [ 1228280400000 , 2.8800659812341] , [ 1228366800000 , 11.082998933418] , [ 1228453200000 , 1.6750156722765] , [ 1228712400000 , 0E+1] , [ 1228798800000 , 0] , [ 1228885200000 , 6.1966346615722] , [ 1228971600000 , 1.3849204099975E-8] , [ 1229058000000 , 1.3751815036566E-8] , [ 1229317200000 , 8.5599725937221] , [ 1229403600000 , 6.5473068495741] , [ 1229490000000 , 2.2717575882483] , [ 1229576400000 , 2.3669712907469] , [ 1229662800000 , 1.7069095438093] , [ 1229922000000 , 1.6356138435014] , [ 1230008400000 , 1.608899780063] , [ 1230094800000 , 1.4601760980515] , [ 1230267600000 , 1.5555022403615] , [ 1230526800000 , 8.3586985283287] , [ 1230613200000 , 1.9899740249037] , [ 1230699600000 , 0E+1] , [ 1230872400000 , 5.3732048903953] , [ 1231131600000 , 8.2361845324091] , [ 1231218000000 , 14.149240856601] , [ 1231304400000 , 11.455834240447] , [ 1231390800000 , 10.80499732152] , [ 1231477200000 , 10.953103405927] , [ 1231736400000 , 2.3670466106505] , [ 1231822800000 , 19.063632670096] , [ 1231909200000 , 18.904780398333] , [ 1231995600000 , 2.2458819235545] , [ 1232082000000 , 2.3896214881456] , [ 1232427600000 , 2.3717718461595] , [ 1232514000000 , 2.4563599121471] , [ 1232600400000 , 2.4643157323003] , [ 1232686800000 , 0.079977774076748] , [ 1232946000000 , 0.082554982798605] , [ 1233032400000 , 0.05995484797002] , [ 1233118800000 , 2.6431814311508] , [ 1233205200000 , 12.968248919573] , [ 1233291600000 , 5.6080038133035] , [ 1233550800000 , 4.1030953709746] , [ 1233637200000 , 8.4091393875674] , [ 1233723600000 , 13.199034588283] , [ 1233810000000 , 12.896187479682] , [ 1233896400000 , 14.704953084268] , [ 1234155600000 , 8.2204041077591] , [ 1234242000000 , 8.0276226205225] , [ 1234328400000 , 7.9190999154763] , [ 1234414800000 , 2.0744739273925] , [ 1234501200000 , 1.7423668091698] , [ 1234846800000 , 12.421406241189] , [ 1234933200000 , 10.872128416666] , [ 1235019600000 , 4.6612496738139] , [ 1235106000000 , 6.0519794807685] , [ 1235365200000 , 6.1233823525377] , [ 1235451600000 , 32.008318674774] , [ 1235538000000 , 4.5922543342157] , [ 1235624400000 , 3.6957340651825] , [ 1235710800000 , 3.71878200929] , [ 1235970000000 , 5.6745059336284] , [ 1236056400000 , 8.5432898114235] , [ 1236142800000 , 9.2411000879805] , [ 1236229200000 , 20.193111491624] , [ 1236315600000 , 22.532567808564] , [ 1236571200000 , 13.109073971821] , [ 1236657600000 , 28.284941694516] , [ 1236744000000 , 32.409228546948] , [ 1236830400000 , 21.441256730911] , [ 1236916800000 , 19.984460665658] , [ 1237176000000 , 9.3693582586361] , [ 1237262400000 , 4.5605304139394] , [ 1237348800000 , 12.088725534331] , [ 1237435200000 , 18.377661615464] , [ 1237521600000 , 12.896999510151] , [ 1237780800000 , 9.5899027276257] , [ 1237867200000 , 8.1097349963859] , [ 1237953600000 , 4.5941875548872] , [ 1238040000000 , 8.4547199152548] , [ 1238126400000 , 12.525748190414] , [ 1238385600000 , 11.152648772203] , [ 1238472000000 , 9.4003022518288] , [ 1238558400000 , 4.5549171966817] , [ 1238644800000 , 6.5025036145296] , [ 1238731200000 , 6.5728133707747] , [ 1238990400000 , 6.5126201116744] , [ 1239076800000 , 11.91084267986] , [ 1239163200000 , 6.6064755725635] , [ 1239249600000 , 6.5535279422691] , [ 1239595200000 , 6.5443086251902] , [ 1239681600000 , 6.7414636309647] , [ 1239768000000 , 7.0660483227062] , [ 1239854400000 , 6.9140365047207] , [ 1239940800000 , 0.68449942170777] , [ 1240200000000 , 4.0765048839462] , [ 1240286400000 , 4.0684380275311] , [ 1240372800000 , 0.68124578191151] , [ 1240459200000 , 0.68377467227995] , [ 1240545600000 , 0.68402646410275] , [ 1240804800000 , 0.67944617303807] , [ 1240891200000 , 0.68491304796702] , [ 1240977600000 , 0.67058967614253] , [ 1241064000000 , 0.66191934903029] , [ 1241150400000 , 0.65612869482368] , [ 1241409600000 , 0.64496658157576] , [ 1241496000000 , 0.65049454643312] , [ 1241582400000 , 0.64443137477478] , [ 1241668800000 , 2.0049662224861] , [ 1241755200000 , 1.9725073991976] , [ 1242014400000 , 1.958835607091] , [ 1242100800000 , 1.9872900638005] , [ 1242187200000 , 5.7482277178494] , [ 1242273600000 , 2.4370659685714] , [ 1242360000000 , 5.7216143960008] , [ 1242619200000 , 5.2049677315895] , [ 1242705600000 , 5.2103681873105] , [ 1242792000000 , 5.2137126340548] , [ 1242878400000 , 5.171723760152] , [ 1242964800000 , 5.23724467] , [ 1243310400000 , 3.9678164517853] , [ 1243396800000 , 5.5772236970217] , [ 1243483200000 , 0.65845452751353] , [ 1243569600000 , 2.3102867694053] , [ 1243828800000 , 3.8507466590185] , [ 1243915200000 , 5.5112206495367] , [ 1244001600000 , 4.4349674967258] , [ 1244088000000 , 3.9505389295321] , [ 1244174400000 , 2.5702748969213] , [ 1244433600000 , 0.65399322348227] , [ 1244520000000 , 0.64299785937821] , [ 1244606400000 , 0.64485618799924] , [ 1244692800000 , 8.2902621841086] , [ 1244779200000 , 11.947160143466] , [ 1245038400000 , 7.5111887893427] , [ 1245124800000 , 4.3623447852707] , [ 1245211200000 , 4.3185188827048] , [ 1245297600000 , 4.3151822352707] , [ 1245384000000 , 4.3124429740693] , [ 1245643200000 , 7.1776381803979] , [ 1245729600000 , 7.1924030640232] , [ 1245816000000 , 0.66312754304475] , [ 1245902400000 , 0.66228812289641] , [ 1245988800000 , 0.65782616909429] , [ 1246248000000 , 0.65403557211454] , [ 1246334400000 , 0.59883829833694] , [ 1246420800000 , 0.58472019697828] , [ 1246507200000 , 0.59332616301459] , [ 1246852800000 , 0.59315808007844] , [ 1246939200000 , 0.5993131101332] , [ 1247025600000 , 5.501358066333] , [ 1247112000000 , 0.60005399753714] , [ 1247198400000 , 0.60051790917818] , [ 1247457600000 , 0.59400671918334] , [ 1247544000000 , 0.5959215951087] , [ 1247630400000 , 0.58892795045543] , [ 1247716800000 , 0.58758770626686] , [ 1247803200000 , 0.58587949398228] , [ 1248062400000 , 0.58263995337336] , [ 1248148800000 , 0.58440608274831] , [ 1248235200000 , 6.7435071290752] , [ 1248321600000 , 0.576677267049] , [ 1248408000000 , 0.57387709049699] , [ 1248667200000 , 0.57211502323625] , [ 1248753600000 , 0.5708905907214] , [ 1248840000000 , 3.6167402006046] , [ 1248926400000 , 0.56866650585796] , [ 1249012800000 , 0.56865022934714] , [ 1249272000000 , 0.54964320986207] , [ 1249358400000 , 1.430692832223E-9] , [ 1249444800000 , 1.2051934544274] , [ 1249531200000 , 1.2072483112091] , [ 1249617600000 , 1.1835357729748] , [ 1249876800000 , 1.1835725753831] , [ 1249963200000 , 1.1670214207948] , [ 1250049600000 , 1.1712133489231] , [ 1250136000000 , 1.1741662612159] , [ 1250222400000 , 1.1313883400707] , [ 1250481600000 , 1.1313828684598] , [ 1250568000000 , 0E+1] , [ 1250654400000 , 2.1184705112498] , [ 1250740800000 , 2.1374293634466] , [ 1250827200000 , 2.2037310680564] , [ 1251086400000 , 2.2597649868689] , [ 1251172800000 , 2.2122635865678] , [ 1251259200000 , 3.2726580704974] , [ 1251345600000 , 2.197663052541] , [ 1251432000000 , 1.6916628637064] , [ 1251691200000 , 1.6975156371547] , [ 1251777600000 , 4.0400058354139] , [ 1251864000000 , 4.7749692172194] , [ 1251950400000 , 5.3254140265332] , [ 1252036800000 , 3.0831850408085] , [ 1252382400000 , 1.7813301829864] , [ 1252468800000 , 1.7683467908118] , [ 1252555200000 , 1.6134468659239] , [ 1252641600000 , 3.113042729206] , [ 1252900800000 , 1.4538139354139] , [ 1252987200000 , 0E+1] , [ 1253073600000 , 1.4653458834308] , [ 1253160000000 , 1.4574148737852] , [ 1253246400000 , 1.4525101942656] , [ 1253505600000 , 2.2958195081812] , [ 1253592000000 , 2.2993134672661] , [ 1253678400000 , 3.6812471872768] , [ 1253764800000 , 3.6154067532967] , [ 1253851200000 , 3.6132045554368] , [ 1254110400000 , 1.9657487891785] , [ 1254196800000 , 1.5108314653311] , [ 1254283200000 , 0E+1] , [ 1254369600000 , 0] , [ 1254456000000 , 3.5297031914329] , [ 1254715200000 , 0] , [ 1254801600000 , 1.9037985503048] , [ 1254888000000 , 2.6853233490137] , [ 1254974400000 , 0E+1] , [ 1255060800000 , 0] , [ 1255320000000 , 1.3093983930499] , [ 1255406400000 , 0E+1] , [ 1255492800000 , 0] , [ 1255579200000 , 0.79946716660831] , [ 1255665600000 , 1.6095337026792] , [ 1255924800000 , 0E+1] , [ 1256011200000 , 2.6328624804905] , [ 1256097600000 , 3.9852789145467] , [ 1256184000000 , 3.9527058136554] , [ 1256270400000 , 3.9661015902411] , [ 1256529600000 , 4.1874877464223] , [ 1256616000000 , 4.2063447600468] , [ 1256702400000 , 1.5493266183926] , [ 1256788800000 , 1.5609398082358] , [ 1256875200000 , 1.5766851423263] , [ 1257138000000 , 0E+1] , [ 1257224400000 , 0] , [ 1257310800000 , 0] , [ 1257397200000 , 0] , [ 1257483600000 , 0] , [ 1257742800000 , 0] , [ 1257829200000 , 1.4241804619506] , [ 1257915600000 , 2.2781605233931] , [ 1258002000000 , 1.4044119830969] , [ 1258088400000 , 1.4047637123134] , [ 1258347600000 , 10.143937425944] , [ 1258434000000 , 11.003691545936] , [ 1258520400000 , 11.760784823906] , [ 1258606800000 , 10.306309897772] , [ 1258693200000 , 11.080855554833] , [ 1258952400000 , 15.76032268301] , [ 1259038800000 , 15.65436243705] , [ 1259125200000 , 14.732736746758] , [ 1259298000000 , 12.115919080151] , [ 1259557200000 , 13.619735471784] , [ 1259643600000 , 10.204970840616] , [ 1259730000000 , 10.285523040042] , [ 1259816400000 , 10.479202437959] , [ 1259902800000 , 5.055265022425] , [ 1260162000000 , 3.5397057878171] , [ 1260248400000 , 3.5250113858685] , [ 1260334800000 , 4.3305866940283] , [ 1260421200000 , 4.3199834347402] , [ 1260507600000 , 2.7647914946991] , [ 1260766800000 , 2.7643611409788] , [ 1260853200000 , 2.7729892568035] , [ 1260939600000 , 2.8296302909464] , [ 1261026000000 , 2.7969861333383] , [ 1261112400000 , 6.6048975562059] , [ 1261371600000 , 8.746181038124] , [ 1261458000000 , 16.022215351694] , [ 1261544400000 , 16.904561941888] , [ 1261630800000 , 12.609225353851] , [ 1261976400000 , 7.0865369673667] , [ 1262062800000 , 7.1637422873121] , [ 1262149200000 , 7.1293442423118] , [ 1262235600000 , 7.172332867465] , [ 1262581200000 , 6.0831648432761] , [ 1262667600000 , 5.3414235611799] , [ 1262754000000 , 5.2588617110872] , [ 1262840400000 , 4.5969658850717] , [ 1262926800000 , 4.1688105678139] , [ 1263186000000 , 5.0503596181101] , [ 1263272400000 , 1.8297780633072] , [ 1263358800000 , 1.8265817946115] , [ 1263445200000 , 1.8312810227517] , [ 1263531600000 , 1.8205931329117] , [ 1263877200000 , 1.2224842537283] , [ 1263963600000 , 4.1804002832509] , [ 1264050000000 , 3.2104588461236] , [ 1264136400000 , 0.28086289348513] , [ 1264395600000 , 0.28389979501212] , [ 1264482000000 , 0.2810747431782] , [ 1264568400000 , 0.27367030729578] , [ 1264654800000 , 0.26239786969991] , [ 1264741200000 , 0.25864606583782] , [ 1265000400000 , 3.2604470661235] , [ 1265086800000 , 0.2683704779225] , [ 1265173200000 , 0.259443142774] , [ 1265259600000 , 8.8286025797799] , [ 1265346000000 , 0.25209653571845] , [ 1265605200000 , 0.25995355395898] , [ 1265691600000 , 0.26350794933532] , [ 1265778000000 , 0.26158878677637] , [ 1265864400000 , 0.27662310346392] , [ 1265950800000 , 1.86439916826] , [ 1266296400000 , 4.5618175868234] , [ 1266382800000 , 3.5650503806748] , [ 1266469200000 , 1.0046344877064] , [ 1266555600000 , 0.88733257672444] , [ 1266814800000 , 0.86975885107072] , [ 1266901200000 , 0.17323076719465] , [ 1266987600000 , 7.7748251765822] , [ 1267074000000 , 1.0430120261003E-8] , [ 1267160400000 , 0.04799934814101] , [ 1267419600000 , 0.047759171348484] , [ 1267506000000 , 0.045184333356078] , [ 1267592400000 , 0.055576477423304] , [ 1267678800000 , 0.055733260586805] , [ 1267765200000 , 3.0851538601192] , [ 1268024400000 , 5.9922257045574] , [ 1268110800000 , 5.9866401435488] , [ 1268197200000 , 0.10465280064721] , [ 1268283600000 , 0.12033113332845] , [ 1268370000000 , 0.10131610174581] , [ 1268625600000 , 0.11847049907095] , [ 1268712000000 , 2.1356139798799] , [ 1268798400000 , 0.11255193168905] , [ 1268884800000 , 0.13517428802701] , [ 1268971200000 , 0] , [ 1269230400000 , 0] , [ 1269316800000 , 0] , [ 1269403200000 , 0] , [ 1269489600000 , 0] , [ 1269576000000 , 0] , [ 1269835200000 , 0] , [ 1269921600000 , 0] , [ 1270008000000 , 0] , [ 1270094400000 , 0] , [ 1270440000000 , 2.850774857521] , [ 1270526400000 , 2.2589804639485] , [ 1270612800000 , 2.285267251354] , [ 1270699200000 , 2.3734120612322] , [ 1270785600000 , 2.3717822125548] , [ 1271044800000 , 4.2625353368786] , [ 1271131200000 , 2.3564591095437] , [ 1271217600000 , 2.3612597404689] , [ 1271304000000 , 2.355189897781] , [ 1271390400000 , 9.7617610195821] , [ 1271649600000 , 2.3316750948882] , [ 1271736000000 , 2.3554204820326] , [ 1271822400000 , 2.3797823277908] , [ 1271908800000 , 2.3848957967342] , [ 1271995200000 , 2.3724818052071] , [ 1272254400000 , 2.3867936129286] , [ 1272340800000 , 2.2976327198643] , [ 1272427200000 , 2.2847673647109] , [ 1272513600000 , 2.2922477707547] , [ 1272600000000 , 2.3485489060831] , [ 1272859200000 , 2.2105083576864] , [ 1272945600000 , 2.1812743937004] , [ 1273032000000 , 2.1203180778889] , [ 1273118400000 , 0E+1] , [ 1273204800000 , 0.84128734075579] , [ 1273464000000 , 5.775123966151] , [ 1273550400000 , 4.1159124822996] , [ 1273636800000 , 5.0369560759981] , [ 1273723200000 , 5.0229265757986] , [ 1273809600000 , 4.9892145190732] , [ 1274068800000 , 2.3111441537493] , [ 1274155200000 , 4.1413879561402] , [ 1274241600000 , 2.8798935997032] , [ 1274328000000 , 2.8824216429304] , [ 1274414400000 , 2.8466063306996] , [ 1274673600000 , 1.0850499947587] , [ 1274760000000 , 1.0897177611378] , [ 1274846400000 , 1.1083671293992] , [ 1274932800000 , 4.6437803047215] , [ 1275019200000 , 1.0935115091518] , [ 1275364800000 , 2.6542075858267] , [ 1275451200000 , 6.390737097604] , [ 1275537600000 , 2.5800488679277] , [ 1275624000000 , 2.6363691280816] , [ 1275883200000 , 2.717071850151] , [ 1275969600000 , 2.7276396448783] , [ 1276056000000 , 2.7019258701428] , [ 1276142400000 , 2.6467903607358] , [ 1276228800000 , 2.6476993753105] , [ 1276488000000 , 3.4781226877796] , [ 1276574400000 , 3.4620196351265] , [ 1276660800000 , 3.4506424803737] , [ 1276747200000 , 3.4632075406756] , [ 1276833600000 , 4.6483905224431] , [ 1277092800000 , 8.4761452565474] , [ 1277179200000 , 6.6092488959015] , [ 1277265600000 , 4.6995613173494] , [ 1277352000000 , 3.0386568983329] , [ 1277438400000 , 3.0673952302698] , [ 1277697600000 , 6.5636509425421] , [ 1277784000000 , 4.5326439598942] , [ 1277870400000 , 4.5674330128605] , [ 1277956800000 , 3.453495550013] , [ 1278043200000 , 12.098973365732] , [ 1278388800000 , 7.8836649960449] , [ 1278475200000 , 7.6647787648602] , [ 1278561600000 , 8.7583257263942] , [ 1278648000000 , 8.8635661597876] , [ 1278907200000 , 9.8302737319635] , [ 1278993600000 , 9.7867378730567] , [ 1279080000000 , 7.5678080409209] , [ 1279166400000 , 15.65652872616] , [ 1279252800000 , 5.9689528486809] , [ 1279512000000 , 7.0078108776693] , [ 1279598400000 , 8.0167775479397] , [ 1279684800000 , 11.728256170211] , [ 1279771200000 , 11.690310154165] , [ 1279857600000 , 11.318570934147] , [ 1280116800000 , 11.361176266491] , [ 1280203200000 , 9.9619295381735] , [ 1280289600000 , 9.4845405767859] , [ 1280376000000 , 10.427281272544] , [ 1280462400000 , 11.676872073506] , [ 1280721600000 , 17.203786437621] , [ 1280808000000 , 9.8934597047389] , [ 1280894400000 , 10.002953577279] , [ 1280980800000 , 3.4637004267288] , [ 1281067200000 , 3.2753493523234] , [ 1281326400000 , 2.433963042092] , [ 1281412800000 , 1.9551273654559] , [ 1281499200000 , 1.9891168565173] , [ 1281585600000 , 1.2980770353205] , [ 1281672000000 , 1.2927815681858] , [ 1281931200000 , 1.2377693207517] , [ 1282017600000 , 7.6123867944725] , [ 1282104000000 , 5.5872044915562] , [ 1282190400000 , 8.8140991678344] , [ 1282276800000 , 5.2381201907247] , [ 1282536000000 , 9.3237903124672] , [ 1282622400000 , 5.2777896711116] , [ 1282708800000 , 13.374833294887] , [ 1282795200000 , 7.2441690822071] , [ 1282881600000 , 7.2605769196643] , [ 1283140800000 , 7.3277900364205] , [ 1283227200000 , 6.7228503465507] , [ 1283313600000 , 10.640799346291] , [ 1283400000000 , 10.560539699565] , [ 1283486400000 , 5.5442143122897] , [ 1283832000000 , 3.6276696593137] , [ 1283918400000 , 3.5369972899083] , [ 1284004800000 , 3.5975515353696] , [ 1284091200000 , 1.1211190405408] , [ 1284350400000 , 14.246288336732] , [ 1284436800000 , 20.775983902756] , [ 1284523200000 , 16.847370568216] , [ 1284609600000 , 16.714760723814] , [ 1284696000000 , 16.819809321701] , [ 1284955200000 , 16.663940700998] , [ 1285041600000 , 9.1141917050783] , [ 1285128000000 , 16.717364391529] , [ 1285214400000 , 16.673510263472] , [ 1285300800000 , 19.616057923566] , [ 1285560000000 , 14.46474000361] , [ 1285646400000 , 12.527077725058] , [ 1285732800000 , 11.437848846457] , [ 1285819200000 , 10.251014821677] , [ 1285905600000 , 10.380432294181] , [ 1286164800000 , 12.841184938016] , [ 1286251200000 , 14.385625288561] , [ 1286337600000 , 15.826910823908] , [ 1286424000000 , 15.794761071586] , [ 1286510400000 , 16.014732420803] , [ 1286769600000 , 16.31182462091] , [ 1286856000000 , 16.814293402475] , [ 1286942400000 , 19.14169965795] , [ 1287028800000 , 22.606069798983] , [ 1287115200000 , 22.83142172098] , [ 1287374400000 , 22.679834237627] , [ 1287460800000 , 22.521464482306] , [ 1287547200000 , 20.543852910345] , [ 1287633600000 , 21.503428364417] , [ 1287720000000 , 21.486923473426] , [ 1287979200000 , 21.526832148478] , [ 1288065600000 , 21.001826964328] , [ 1288152000000 , 20.749520439532] , [ 1288238400000 , 19.029569151898] , [ 1288324800000 , 12.91721467363] , [ 1288584000000 , 14.329243386079] , [ 1288670400000 , 14.432818450359] , [ 1288756800000 , 13.081122846994] , [ 1288843200000 , 16.696065747099] , [ 1288929600000 , 17.387953164875] , [ 1289192400000 , 20.29669159292] , [ 1289278800000 , 20.677106807106] , [ 1289365200000 , 16.590818773612] , [ 1289451600000 , 14.701306394768] , [ 1289538000000 , 10.933799992909] , [ 1289797200000 , 8.4000604451418] , [ 1289883600000 , 7.4843427381187] , [ 1289970000000 , 7.8338325622071] , [ 1290056400000 , 7.8794373698104] , [ 1290142800000 , 6.8509314860043] , [ 1290402000000 , 6.8209096842783] , [ 1290488400000 , 7.5139566442298] , [ 1290574800000 , 8.3972864318589] , [ 1290747600000 , 8.3759528435223] , [ 1291006800000 , 7.0547214640457] , [ 1291093200000 , 8.8158174412613] , [ 1291179600000 , 9.0311729515292] , [ 1291266000000 , 9.0236606392401] , [ 1291352400000 , 9.0589383913935] , [ 1291611600000 , 11.819666467403] , [ 1291698000000 , 11.76663597964] , [ 1291784400000 , 11.214869842108] , [ 1291870800000 , 11.335755970384] , [ 1291957200000 , 11.158951460844] , [ 1292216400000 , 10.711740722718] , [ 1292302800000 , 7.8554891997622] , [ 1292389200000 , 7.2221201016942] , [ 1292475600000 , 7.1813113504643] , [ 1292562000000 , 6.9488995384051] , [ 1292821200000 , 7.0362942712251] , [ 1292907600000 , 7.0852551326747] , [ 1292994000000 , 7.0647935963455] , [ 1293080400000 , 5.8689600868079] , [ 1293426000000 , 5.9025079566661] , [ 1293512400000 , 5.9732688727434] , [ 1293598800000 , 5.9728342136774] , [ 1293685200000 , 5.9209724655277] , [ 1293771600000 , 6.0285158035548] , [ 1294030800000 , 6.6057634284871] , [ 1294117200000 , 6.370638068121] , [ 1294203600000 , 6.3999410586526] , [ 1294290000000 , 6.3386933057161] , [ 1294376400000 , 6.3632442768462] , [ 1294635600000 , 6.4139372874026] , [ 1294722000000 , 7.1689736045359] , [ 1294808400000 , 7.2101892359485] , [ 1294894800000 , 7.1774200607366] , [ 1294981200000 , 7.0706364226525] , [ 1295326800000 , 7.2420565888503] , [ 1295413200000 , 7.729627115145] , [ 1295499600000 , 8.0819869042317] , [ 1295586000000 , 8.1927919445644] , [ 1295845200000 , 8.9965391958168] , [ 1295931600000 , 8.8152743168456] , [ 1296018000000 , 14.169224830048] , [ 1296104400000 , 15.669581265233] , [ 1296190800000 , 15.741681147339] , [ 1296450000000 , 10.678954164786] , [ 1296536400000 , 10.778232189368] , [ 1296622800000 , 10.973393514458] , [ 1296709200000 , 10.918636428528] , [ 1296795600000 , 10.798314944682] , [ 1297054800000 , 12.27880262499] , [ 1297141200000 , 11.71340214721] , [ 1297227600000 , 11.949083848583] , [ 1297314000000 , 12.171819589372] , [ 1297400400000 , 12.022918419242] , [ 1297659600000 , 12.316294943466] , [ 1297746000000 , 12.311490226445] , [ 1297832400000 , 10.546161614989] , [ 1297918800000 , 10.212852465357] , [ 1298005200000 , 10.006183572991] , [ 1298350800000 , 6.1955088397816] , [ 1298437200000 , 3.6282579000125] , [ 1298523600000 , 2.1425179831013] , [ 1298610000000 , 1.6100993337419] , [ 1298869200000 , 2.7278169606536] , [ 1298955600000 , 1.7646646869974] , [ 1299042000000 , 1.904711349079] , [ 1299128400000 , 1.6015603347289] , [ 1299214800000 , 5.33489658773] , [ 1299474000000 , 5.7003370342734] , [ 1299560400000 , 5.6455295050364] , [ 1299646800000 , 5.5697979070134] , [ 1299733200000 , 5.8343740652092] , [ 1299819600000 , 5.1076333360735] , [ 1300075200000 , 5.0850675197288] , [ 1300161600000 , 5.4250231951116] , [ 1300248000000 , 5.9367548279745] , [ 1300334400000 , 6.1572104290143] , [ 1300420800000 , 6.214163935681] , [ 1300680000000 , 4.8667917106922] , [ 1300766400000 , 6.422013112333] , [ 1300852800000 , 3.4939332481092] , [ 1300939200000 , 4.6097562020041] , [ 1301025600000 , 4.6025549010205] , [ 1301284800000 , 4.5139375382479] , [ 1301371200000 , 4.4785136185511] , [ 1301457600000 , 5.8385185358421] , [ 1301544000000 , 4.726683788373] , [ 1301630400000 , 4.5595775739965] , [ 1301889600000 , 4.7028853870762] , [ 1301976000000 , 5.5630747379642] , [ 1302062400000 , 5.5695830880869] , [ 1302148800000 , 5.430002032119] , [ 1302235200000 , 6.0605343422489] , [ 1302494400000 , 6.0464510385453] , [ 1302580800000 , 5.3434967541795] , [ 1302667200000 , 5.3304860425691] , [ 1302753600000 , 5.3197140491453] , [ 1302840000000 , 5.5297170931492] , [ 1303099200000 , 5.7323594182524] , [ 1303185600000 , 5.6719227971364] , [ 1303272000000 , 5.6766524306867] , [ 1303358400000 , 5.7846113031309] , [ 1303704000000 , 14.258778990826] , [ 1303790400000 , 14.612982088981] , [ 1303876800000 , 15.206551597048] , [ 1303963200000 , 15.350003594809] , [ 1304049600000 , 15.690727931822] , [ 1304308800000 , 15.961872720506] , [ 1304395200000 , 14.196122771055] , [ 1304481600000 , 7.552327264097] , [ 1304568000000 , 7.3050361194973] , [ 1304654400000 , 7.305987353929] , [ 1304913600000 , 7.1431777604522] , [ 1305000000000 , 7.6003473028237] , [ 1305086400000 , 8.9788637937014] , [ 1305172800000 , 8.775871966083] , [ 1305259200000 , 8.7289222002926] , [ 1305518400000 , 8.9727814770429] , [ 1305604800000 , 9.0640318432143] , [ 1305691200000 , 9.2698536443952] , [ 1305777600000 , 9.152781021373] , [ 1305864000000 , 9.1708043409756] , [ 1306123200000 , 9.2714547796448] , [ 1306209600000 , 9.3302270261815] , [ 1306296000000 , 9.5604867784906] , [ 1306382400000 , 9.5669057675137] , [ 1306468800000 , 10.831220430519] , [ 1306814400000 , 8.120729804547] , [ 1306900800000 , 8.6415389681981] , [ 1306987200000 , 7.2888326950911] , [ 1307073600000 , 7.1603127722255] , [ 1307332800000 , 7.1543150474431] , [ 1307419200000 , 6.8715859295198] , [ 1307505600000 , 4.2039812566826] , [ 1307592000000 , 5.6904569227644] , [ 1307678400000 , 6.3505666310263] , [ 1307937600000 , 7.2650223185702] , [ 1308024000000 , 7.8624309884383] , [ 1308110400000 , 7.9103245356973] , [ 1308196800000 , 7.5424360349655] , [ 1308283200000 , 7.4759546980716] , [ 1308542400000 , 7.4316122245313] , [ 1308628800000 , 8.0319645070091] , [ 1308715200000 , 7.7700242348924] , [ 1308801600000 , 7.6618175481715] , [ 1308888000000 , 7.9019974040354] , [ 1309147200000 , 7.7430933398536] , [ 1309233600000 , 7.6971186864583] , [ 1309320000000 , 7.8539371496947] , [ 1309406400000 , 6.4767149279521] , [ 1309492800000 , 10.864451156569] , [ 1309838400000 , 12.53424259805] , [ 1309924800000 , 10.430427853165] , [ 1310011200000 , 10.822710394213] , [ 1310097600000 , 10.832580005768] , [ 1310356800000 , 10.052296614848] , [ 1310443200000 , 6.4839348905369] , [ 1310529600000 , 6.4796604961949] , [ 1310616000000 , 6.5237779463479] , [ 1310702400000 , 6.5282205979003] , [ 1310961600000 , 9.5605350756868] , [ 1311048000000 , 6.5779434365358] , [ 1311134400000 , 3.9824933248077] , [ 1311220800000 , 3.9336049736716] , [ 1311307200000 , 13.171507728255] , [ 1311566400000 , 19.522598665789] , [ 1311652800000 , 21.242853641529] , [ 1311739200000 , 18.163912091731] , [ 1311825600000 , 9.691779249722] , [ 1311912000000 , 9.3544636904085] , [ 1314763200000 , 5.4028216291156] , [ 1314849600000 , 5.4537855535373] , [ 1314936000000 , 6.9277472544551] , [ 1315281600000 , 13.527506761017] , [ 1315368000000 , 16.900133490357] , [ 1315454400000 , 5.0855551266622] , [ 1315540800000 , 5.0800328713639] , [ 1315800000000 , 28.072455306822] , [ 1315886400000 , 8.8759356126024] , [ 1315972800000 , 9.2408960225889] , [ 1316059200000 , 1.7118031387909] , [ 1316145600000 , 1.7312142072377] , [ 1316404800000 , 1.6618754265308] , [ 1316491200000 , 1.6579331202934] , [ 1316577600000 , 15.897293132969] , [ 1316664000000 , 0.1026324494013] , [ 1316750400000 , 1.7544940471016] , [ 1317009600000 , 0.10005678685907] , [ 1317096000000 , 1.7765589587728] , [ 1317182400000 , 0.10126533719457] , [ 1317268800000 , 16.919870876671] , [ 1317355200000 , 11.13686381726] , [ 1317614400000 , 6.1641593479491] , [ 1317700800000 , 8.8661223824614] , [ 1317787200000 , 17.608417474935] , [ 1317873600000 , 8.7389089868331] , [ 1317960000000 , 12.919578810593] , [ 1318219200000 , 26.006149587577] , [ 1318305600000 , 14.238973314548] , [ 1318392000000 , 10.176878123272] , [ 1318478400000 , 7.2096304682224] , [ 1318564800000 , 2.2168612574586] , [ 1318824000000 , 2.2940737765508] , [ 1318910400000 , 3.9661640184321] , [ 1318996800000 , 2.5459367442254] , [ 1319083200000 , 1.0077657061596] , [ 1319169600000 , 0E+1] , [ 1319428800000 , 17.097555411023] , [ 1319515200000 , 11.606450464539] , [ 1319601600000 , 12.890914181168] , [ 1319688000000 , 1.7053981520553] , [ 1319774400000 , 16.688074744503] , [ 1320033600000 , 8.8496229558706] , [ 1320120000000 , 0.45520819065016] , [ 1320206400000 , 0.45131568652003] , [ 1320292800000 , 4.5090918739386] , [ 1320379200000 , 4.4878220190057] , [ 1320642000000 , 2.9620357751273] , [ 1320728400000 , 2.9520424700809] , [ 1320814800000 , 5.6960600961596] , [ 1320901200000 , 0.14966542040682] , [ 1320987600000 , 0.14815988444861] , [ 1321246800000 , 1.6446943339418] , [ 1321333200000 , 7.696261415648] , [ 1321419600000 , 1.6454294617394] , [ 1321506000000 , 1.6323159472142] , [ 1321592400000 , 1.6308217232577] , [ 1321851600000 , 0.080750085947044] , [ 1321938000000 , 1.5630223551003] , [ 1322024400000 , 2.2777524858011] , [ 1322197200000 , 2.9331068785017] , [ 1322456400000 , 12.226276438246] , [ 1322542800000 , 7.7451056618688] , [ 1322629200000 , 8.2237757916671] , [ 1322715600000 , 1.8897293216426] , [ 1322802000000 , 1.8692322866259] , [ 1323061200000 , 1.8416716319176] , [ 1323147600000 , 1.8104401561105] , [ 1323234000000 , 1.8470081251299] , [ 1323320400000 , 1.7932665784973] , [ 1323406800000 , 1.7609438764805] , [ 1323666000000 , 1.7744873055117] , [ 1323752400000 , 1.7865419795682] , [ 1323838800000 , 1.7842895866241] , [ 1323925200000 , 1.7644173362237] , [ 1324011600000 , 1.7738744265978] , [ 1324270800000 , 3.9299064361409] , [ 1324357200000 , 3.9056044544827] , [ 1324443600000 , 3.9320303990364] , [ 1324530000000 , 3.6632424216547] , [ 1324616400000 , 2.8040461137765] , [ 1324962000000 , 2.7961697124163] , [ 1325048400000 , 2.8100174259024] , [ 1325134800000 , 0.023172195237641] , [ 1325221200000 , 0.041095901679587] , [ 1325566800000 , 7.6724801728593] , [ 1325653200000 , 4.2763616561652] , [ 1325739600000 , 0E+1] , [ 1325826000000 , 1.4618791730321] , [ 1326085200000 , 0E+1] , [ 1326171600000 , 0] , [ 1326258000000 , 0] , [ 1326344400000 , 0] , [ 1326430800000 , 0] , [ 1326776400000 , 0] , [ 1326862800000 , 2.7250542101371] , [ 1326949200000 , 5.4622314246137] , [ 1327035600000 , 5.4712525616126] , [ 1327294800000 , 8.2296098737129] , [ 1327381200000 , 8.0642415359483] , [ 1327467600000 , 9.5377433735282] , [ 1327554000000 , 10.257196887831] , [ 1327640400000 , 10.260104241198] , [ 1327899600000 , 4.6398649406234] , [ 1327986000000 , 4.7145144046888] , [ 1328072400000 , 9.6281152277381] , [ 1328158800000 , 9.7280787855291] , [ 1328245200000 , 7.3396609008687] , [ 1328504400000 , 7.3134569128428] , [ 1328590800000 , 7.0048665680361] , [ 1328677200000 , 5.5020982774708] , [ 1328763600000 , 3.4682606408391] , [ 1328850000000 , 1.8077804938241] , [ 1329109200000 , 1.8312355230228] , [ 1329195600000 , 1.8406724565104] , [ 1329282000000 , 1.8529549830777] , [ 1329368400000 , 1.8424931768584] , [ 1329454800000 , 7.9055107025124] , [ 1329800400000 , 10.709974570265] , [ 1329886800000 , 13.302602263751] , [ 1329973200000 , 13.313954389015] , [ 1330059600000 , 10.483934817868] , [ 1330318800000 , 2.9058503121605] , [ 1330405200000 , 4.4918908152623] , [ 1330491600000 , 4.4542926831064] , [ 1330578000000 , 2.4197715545823] , [ 1330664400000 , 2.4131484187935] , [ 1330923600000 , 0.74897541145568] , [ 1331010000000 , 1.5830792559841] , [ 1331096400000 , 3.1568005778019] , [ 1331182800000 , 3.1811252122814] , [ 1331269200000 , 6.4543930191829] , [ 1331524800000 , 6.4275187369461] , [ 1331611200000 , 11.831789512505] , [ 1331697600000 , 11.846137364418] , [ 1331784000000 , 11.7137606442] , [ 1331870400000 , 10.176067276795] , [ 1332129600000 , 9.2316296811876] , [ 1332216000000 , 7.5957964446259] , [ 1332302400000 , 4.4474928932849] , [ 1332388800000 , 3.9281321681724] , [ 1332475200000 , 3.2857724075373] , [ 1332734400000 , 3.1842624387074] , [ 1332820800000 , 3.2226627450191] , [ 1332907200000 , 3.8989359742328] , [ 1332993600000 , 3.5758281362346] , [ 1333080000000 , 3.6401003587818] , [ 1333339200000 , 3.7777313585311] , [ 1333425600000 , 3.781034960428] , [ 1333512000000 , 4.8315911191317] , [ 1333598400000 , 0.56683039450387] , [ 1333944000000 , 3.8340659564813] , [ 1334030400000 , 4.0637693951563] , [ 1334116800000 , 3.9485243918444] , [ 1334203200000 , 3.8818396815084] , [ 1334289600000 , 7.1198330075262] , [ 1334548800000 , 5.5286517014158] , [ 1334635200000 , 0.59732819298186] , [ 1334721600000 , 3.8141617282652] , [ 1334808000000 , 6.7919650728735] , [ 1334894400000 , 6.8270129049705] , [ 1335153600000 , 0.60622657540105] , [ 1335240000000 , 4.6059830131653] , [ 1335326400000 , 4.6318792953283] , [ 1335412800000 , 6.2900689816543] , [ 1335499200000 , 3.8615977884794] , [ 1335758400000 , 0.70621117241196]]}]
-.map(function(series) {
- series.values = series.values.map(function(d) {
- return { x: d[0], y: d[1] }
- });
- return series;
-});
-
-
-
-
-
-
-
-nv.charts.stackedAreaChart()
- .selector('#chart1')
- //.data(histcatexplongDaily)
- .data(histcatexplong)
- .build();
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html
deleted file mode 100755
index 35ddf5fe..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart {
- margin: 10px;
- height: 500px;
-}
-
-</style>
-<body>
-
- <div id="chart">
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaWithLegend.js"></script>
-<script>
-
-
-var n = 4, // number of layers
- m = 120; // number of samples per layer
- //color = d3.interpolateRgb("#aad", "#556");
-
-//format data to our liking, add keys
-var data = stream_layers(n,m).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data
- };
-});
-
-
-
-
-
-var histcatexplong = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1025409600000 , 23.041422681023] , [ 1028088000000 , 19.854291255832] , [ 1030766400000 , 21.02286281168] , [ 1033358400000 , 22.093608385173] , [ 1036040400000 , 25.108079299458] , [ 1038632400000 , 26.982389242348] , [ 1041310800000 , 19.828984957662] , [ 1043989200000 , 19.914055036294] , [ 1046408400000 , 19.436150539916] , [ 1049086800000 , 21.558650338602] , [ 1051675200000 , 24.395594061773] , [ 1054353600000 , 24.747089309384] , [ 1056945600000 , 23.491755498807] , [ 1059624000000 , 23.376634878164] , [ 1062302400000 , 24.581223154533] , [ 1064894400000 , 24.922476843538] , [ 1067576400000 , 27.357712939042] , [ 1070168400000 , 26.503020572593] , [ 1072846800000 , 26.658901244878] , [ 1075525200000 , 27.065704156445] , [ 1078030800000 , 28.735320452588] , [ 1080709200000 , 31.572277846319] , [ 1083297600000 , 30.932161503638] , [ 1085976000000 , 31.627029785554] , [ 1088568000000 , 28.728743674232] , [ 1091246400000 , 26.858365172675] , [ 1093924800000 , 27.279922830032] , [ 1096516800000 , 34.408301211324] , [ 1099195200000 , 34.794362930439] , [ 1101790800000 , 35.609978198951] , [ 1104469200000 , 33.574394968037] , [ 1107147600000 , 31.979405070598] , [ 1109566800000 , 31.19009040297] , [ 1112245200000 , 31.083933968994] , [ 1114833600000 , 29.668971113185] , [ 1117512000000 , 31.490638014379] , [ 1120104000000 , 31.818617451128] , [ 1122782400000 , 32.960314008183] , [ 1125460800000 , 31.313383196209] , [ 1128052800000 , 33.125486081852] , [ 1130734800000 , 32.791805509149] , [ 1133326800000 , 33.506038030366] , [ 1136005200000 , 26.96501697216] , [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218209] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957518] , [ 1149048000000 , 26.823411519396] , [ 1151640000000 , 23.850443591587] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393695] , [ 1159588800000 , 27.9771285113] , [ 1162270800000 , 29.073672469719] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687637] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271052] , [ 1175313600000 , 17.558388444187] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201301] , [ 1183176000000 , 18.729632971229] , [ 1185854400000 , 18.814523318847] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575716] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025297] , [ 1201755600000 , 17.286592443522] , [ 1204261200000 , 16.323141626568] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391095] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.53936647598] , [ 1217476800000 , 15.255131790217] , [ 1220155200000 , 15.660963922592] , [ 1222747200000 , 13.254482273698] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090924] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672228] , [ 1241064000000 , 14.631445864799] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367017] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.756026065421] , [ 1259557200000 , 19.385804443146] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793024] , [ 1280548800000 , 29.461381693838] , [ 1283227200000 , 27.357322961861] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379724] , [ 1293771600000 , 29.449241421598] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449188] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.07966254541] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.418002742929] , [ 1312084800000 , 23.24364413887] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.67238082043] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213898] , [ 1330491600000 , 20.366462219461] , [ 1333166400000 , 19.284784434185] , [ 1335758400000 , 19.157810257624]]
- },
-
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1025409600000 , 7.9356392949025] , [ 1028088000000 , 7.4514668527298] , [ 1030766400000 , 7.9085410566608] , [ 1033358400000 , 5.8996782364764] , [ 1036040400000 , 6.0591869346923] , [ 1038632400000 , 5.9667815800451] , [ 1041310800000 , 8.65528925664] , [ 1043989200000 , 8.7690763386254] , [ 1046408400000 , 8.6386160387453] , [ 1049086800000 , 5.9895557449743] , [ 1051675200000 , 6.3840324338159] , [ 1054353600000 , 6.5196511461441] , [ 1056945600000 , 7.0738618553114] , [ 1059624000000 , 6.5745957367133] , [ 1062302400000 , 6.4658359184444] , [ 1064894400000 , 2.7622758754954] , [ 1067576400000 , 2.9794782986241] , [ 1070168400000 , 2.8735432712019] , [ 1072846800000 , 1.6344817513645] , [ 1075525200000 , 1.5869248754883] , [ 1078030800000 , 1.7172279157246] , [ 1080709200000 , 1.9649927409867] , [ 1083297600000 , 2.0261695079196] , [ 1085976000000 , 2.0541261923929] , [ 1088568000000 , 3.9466318927569] , [ 1091246400000 , 3.7826770946089] , [ 1093924800000 , 3.9543021004028] , [ 1096516800000 , 3.8309891064711] , [ 1099195200000 , 3.6340958946166] , [ 1101790800000 , 3.5289755762525] , [ 1104469200000 , 5.702378559857] , [ 1107147600000 , 5.6539569019223] , [ 1109566800000 , 5.5449506370392] , [ 1112245200000 , 4.7579993280677] , [ 1114833600000 , 4.4816139372906] , [ 1117512000000 , 4.5965558568606] , [ 1120104000000 , 4.3747066116976] , [ 1122782400000 , 4.4588822917087] , [ 1125460800000 , 4.4460351848286] , [ 1128052800000 , 3.7989113035136] , [ 1130734800000 , 3.7743883140088] , [ 1133326800000 , 3.7727852823828] , [ 1136005200000 , 7.2968111448895] , [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220791] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 5.5611890039181] , [ 1335758400000 , 5.5979368839939]]
- },
-
- {
- "key" : "Energy" ,
- "values" : [ [ 1025409600000 , 1.4646843173806] , [ 1028088000000 , 1.2255947178893] , [ 1030766400000 , 1.4158447149914] , [ 1033358400000 , 1.0079176473732] , [ 1036040400000 , 1.30237558984] , [ 1038632400000 , 1.688609181773] , [ 1041310800000 , 2.084300956831] , [ 1043989200000 , 2.1374370551873] , [ 1046408400000 , 2.3282783517776] , [ 1049086800000 , 2.1973076058812] , [ 1051675200000 , 2.157261693164] , [ 1054353600000 , 2.2517863434814] , [ 1056945600000 , 1.2228256346504] , [ 1059624000000 , 1.1440109589209] , [ 1062302400000 , 1.2064470359759] , [ 1064894400000 , 2.500656510238] , [ 1067576400000 , 2.5387208947759] , [ 1070168400000 , 2.4603613044678] , [ 1072846800000 , 3.0150440824201] , [ 1075525200000 , 3.0543883162347] , [ 1078030800000 , 3.2706600781893] , [ 1080709200000 , 3.6312746608013] , [ 1083297600000 , 3.7328532659082] , [ 1085976000000 , 3.766358446065] , [ 1088568000000 , 2.6344481471685] , [ 1091246400000 , 2.763489510345] , [ 1093924800000 , 2.8565862394721] , [ 1096516800000 , 3.8555975117279] , [ 1099195200000 , 3.7062421881707] , [ 1101790800000 , 3.8020128704686] , [ 1104469200000 , 4.309131851142] , [ 1107147600000 , 4.3553997741931] , [ 1109566800000 , 4.8208488504576] , [ 1112245200000 , 4.1337237657138] , [ 1114833600000 , 3.8976502361354] , [ 1117512000000 , 4.0038454785722] , [ 1120104000000 , 3.6457285169699] , [ 1122782400000 , 3.7645930389974] , [ 1125460800000 , 3.9638322190019] , [ 1128052800000 , 4.2470697064323] , [ 1130734800000 , 3.9259866763827] , [ 1133326800000 , 3.8872767584613] , [ 1136005200000 , 1.4275237035221] , [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- },
-
- {
- "key" : "Financials" ,
- "values" : [ [ 1025409600000 , 7.9149900245423] , [ 1028088000000 , 7.0899888751059] , [ 1030766400000 , 7.5996132380614] , [ 1033358400000 , 8.2741174301034] , [ 1036040400000 , 9.3564460833513] , [ 1038632400000 , 9.7066786059904] , [ 1041310800000 , 10.213363052343] , [ 1043989200000 , 10.285809585273] , [ 1046408400000 , 10.222053149228] , [ 1049086800000 , 8.6188592137975] , [ 1051675200000 , 9.3335447543566] , [ 1054353600000 , 8.9312402186628] , [ 1056945600000 , 8.1895089343658] , [ 1059624000000 , 8.260622135079] , [ 1062302400000 , 7.7700786851364] , [ 1064894400000 , 7.9907428771318] , [ 1067576400000 , 8.7769091865606] , [ 1070168400000 , 8.4855077060661] , [ 1072846800000 , 9.6277203033655] , [ 1075525200000 , 9.9685913452624] , [ 1078030800000 , 10.615085181759] , [ 1080709200000 , 9.2902488079646] , [ 1083297600000 , 8.8610439830061] , [ 1085976000000 , 9.1075344931229] , [ 1088568000000 , 9.9156737639203] , [ 1091246400000 , 9.7826003238782] , [ 1093924800000 , 10.55403610555] , [ 1096516800000 , 10.926900264097] , [ 1099195200000 , 10.903144818736] , [ 1101790800000 , 10.862890389067] , [ 1104469200000 , 10.64604998964] , [ 1107147600000 , 10.042790814087] , [ 1109566800000 , 9.7173391591038] , [ 1112245200000 , 9.6122415755443] , [ 1114833600000 , 9.4337921146562] , [ 1117512000000 , 9.814827171183] , [ 1120104000000 , 12.059260396788] , [ 1122782400000 , 12.139649903873] , [ 1125460800000 , 12.281290663822] , [ 1128052800000 , 8.8037085409056] , [ 1130734800000 , 8.6300618239176] , [ 1133326800000 , 9.1225708491432] , [ 1136005200000 , 12.988124170836] , [ 1138683600000 , 13.356778764353] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.8959030061189] , [ 1146369600000 , 6.9939633271353] , [ 1149048000000 , 6.7241510257676] , [ 1151640000000 , 5.5611293669517] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169278] , [ 1162270800000 , 7.0016334389778] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.9689546533009] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.5191821322261] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422455] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234548] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361712] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675083] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.63774086721] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362181] , [ 1314763200000 , 24.778452182433] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.253137429099] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741104] , [ 1333166400000 , 18.372698836036] , [ 1335758400000 , 18.315881576096]]
- },
-
- {
- "key" : "Health Care" ,
- "values" : [ [ 1025409600000 , 13.153938631352] , [ 1028088000000 , 12.456410521864] , [ 1030766400000 , 12.537048663919] , [ 1033358400000 , 13.947386398309] , [ 1036040400000 , 14.421680682568] , [ 1038632400000 , 14.143238262286] , [ 1041310800000 , 12.229635347478] , [ 1043989200000 , 12.508479916948] , [ 1046408400000 , 12.155368409526] , [ 1049086800000 , 13.335455563994] , [ 1051675200000 , 12.888210138167] , [ 1054353600000 , 12.842092790511] , [ 1056945600000 , 12.513816474199] , [ 1059624000000 , 12.21453674494] , [ 1062302400000 , 11.750848343935] , [ 1064894400000 , 10.526579636787] , [ 1067576400000 , 10.873596086087] , [ 1070168400000 , 11.019967131519] , [ 1072846800000 , 11.235789380602] , [ 1075525200000 , 11.859910850657] , [ 1078030800000 , 12.531031616536] , [ 1080709200000 , 11.360451067019] , [ 1083297600000 , 11.456244780202] , [ 1085976000000 , 11.436991407309] , [ 1088568000000 , 11.638595744327] , [ 1091246400000 , 11.190418301469] , [ 1093924800000 , 11.835608007589] , [ 1096516800000 , 11.540980244475] , [ 1099195200000 , 10.958762325687] , [ 1101790800000 , 10.885791159509] , [ 1104469200000 , 13.605810720109] , [ 1107147600000 , 13.128978067437] , [ 1109566800000 , 13.119012086882] , [ 1112245200000 , 13.003706129783] , [ 1114833600000 , 13.326996807689] , [ 1117512000000 , 13.547947991743] , [ 1120104000000 , 12.807959646616] , [ 1122782400000 , 12.931763821068] , [ 1125460800000 , 12.795359993008] , [ 1128052800000 , 9.6998935538319] , [ 1130734800000 , 9.3473740089131] , [ 1133326800000 , 9.36902067716] , [ 1136005200000 , 14.258619539875] , [ 1138683600000 , 14.21241095603] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920664] , [ 1146369600000 , 14.382109727451] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090031] , [ 1154318400000 , 16.244839695189] , [ 1156996800000 , 16.017088850647] , [ 1159588800000 , 14.183951830057] , [ 1162270800000 , 14.148523245696] , [ 1164862800000 , 13.424326059971] , [ 1167541200000 , 12.974450435754] , [ 1170219600000 , 13.232470418021] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.24659058389] , [ 1183176000000 , 17.564505594808] , [ 1185854400000 , 17.872725373164] , [ 1188532800000 , 18.018998508756] , [ 1191124800000 , 15.584518016602] , [ 1193803200000 , 15.480850647182] , [ 1196398800000 , 15.699120036985] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605205] , [ 1204261200000 , 18.982314051293] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929759] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003978] , [ 1217476800000 , 18.929464156259] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.632892190251] , [ 1228021200000 , 14.667835024479] , [ 1230699600000 , 13.946993947309] , [ 1233378000000 , 14.394304684398] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035807] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438286] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670277] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800018] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560786] , [ 1288497600000 , 14.045162857531] , [ 1291093200000 , 13.697412447286] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.96151186453] , [ 1298869200000 , 21.049198298156] , [ 1301544000000 , 22.687631094009] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.88379943712] , [ 1309406400000 , 24.203843814249] , [ 1312084800000 , 22.138760964036] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944555] , [ 1320033600000 , 12.62564246197] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.78601833615] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650733] , [ 1333166400000 , 15.661317319168] , [ 1335758400000 , 15.359891177281]]
- } ,
-
- {
- "key" : "Industrials" ,
- "values" : [ [ 1025409600000 , 3.9133244953315] , [ 1028088000000 , 3.518489051173] , [ 1030766400000 , 3.7355675327774] , [ 1033358400000 , 2.6282873198607] , [ 1036040400000 , 2.8090400696474] , [ 1038632400000 , 3.0820718825965] , [ 1041310800000 , 4.2312761636941] , [ 1043989200000 , 4.2510922012943] , [ 1046408400000 , 4.07193350752] , [ 1049086800000 , 4.4040931689245] , [ 1051675200000 , 4.9759379689913] , [ 1054353600000 , 5.0856875680608] , [ 1056945600000 , 4.2233639497997] , [ 1059624000000 , 4.1845715132052] , [ 1062302400000 , 4.3055194312575] , [ 1064894400000 , 3.349297776236] , [ 1067576400000 , 3.7023871871544] , [ 1070168400000 , 3.7170568683668] , [ 1072846800000 , 3.9155694541972] , [ 1075525200000 , 3.9774182471036] , [ 1078030800000 , 4.1580444091887] , [ 1080709200000 , 4.5495573666535] , [ 1083297600000 , 4.5050302469253] , [ 1085976000000 , 4.7094278163836] , [ 1088568000000 , 6.1937658979517] , [ 1091246400000 , 6.0412923676877] , [ 1093924800000 , 6.1747253413885] , [ 1096516800000 , 6.0800072674329] , [ 1099195200000 , 5.7092602419448] , [ 1101790800000 , 6.092841893499] , [ 1104469200000 , 5.7466125264224] , [ 1107147600000 , 5.5824356250394] , [ 1109566800000 , 5.5727222001361] , [ 1112245200000 , 6.2116832774493] , [ 1114833600000 , 5.8847941423832] , [ 1117512000000 , 5.8120124594798] , [ 1120104000000 , 5.9445727342442] , [ 1122782400000 , 6.1631035517269] , [ 1125460800000 , 5.8577541392534] , [ 1128052800000 , 4.6507957123369] , [ 1130734800000 , 4.4741764311828] , [ 1133326800000 , 4.7062417975264] , [ 1136005200000 , 7.2759032827647] , [ 1138683600000 , 7.1590087090399] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.1360539472469] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925083] , [ 1177905600000 , 5.5191481293346] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474574] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458945] , [ 1243742400000 , 4.7458462454773] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254156] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838002] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 8.5387619987197] , [ 1335758400000 , 8.5984656985168]]
- } ,
-
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1025409600000 , 9.3433263069351] , [ 1028088000000 , 8.4583069475546] , [ 1030766400000 , 8.0342398154196] , [ 1033358400000 , 8.1538966876572] , [ 1036040400000 , 10.743604786849] , [ 1038632400000 , 12.349366155851] , [ 1041310800000 , 10.742682503899] , [ 1043989200000 , 11.360983869935] , [ 1046408400000 , 11.441336039535] , [ 1049086800000 , 10.897508791837] , [ 1051675200000 , 11.469101547709] , [ 1054353600000 , 12.086311476742] , [ 1056945600000 , 8.0697180773504] , [ 1059624000000 , 8.2004392233445] , [ 1062302400000 , 8.4566434900643] , [ 1064894400000 , 7.9565760979059] , [ 1067576400000 , 9.3764619255827] , [ 1070168400000 , 9.0747664160538] , [ 1072846800000 , 10.508939004673] , [ 1075525200000 , 10.69936754483] , [ 1078030800000 , 10.681562399145] , [ 1080709200000 , 13.184786109406] , [ 1083297600000 , 12.668213052351] , [ 1085976000000 , 13.430509403986] , [ 1088568000000 , 12.393086349213] , [ 1091246400000 , 11.942374044842] , [ 1093924800000 , 12.062227685742] , [ 1096516800000 , 11.969974363623] , [ 1099195200000 , 12.14374574055] , [ 1101790800000 , 12.69422821995] , [ 1104469200000 , 9.1235211044692] , [ 1107147600000 , 8.758211757584] , [ 1109566800000 , 8.8072309258443] , [ 1112245200000 , 11.687595946835] , [ 1114833600000 , 11.079723082664] , [ 1117512000000 , 12.049712896076] , [ 1120104000000 , 10.725319428684] , [ 1122782400000 , 10.844849996286] , [ 1125460800000 , 10.833535488461] , [ 1128052800000 , 17.180932407865] , [ 1130734800000 , 15.894764896516] , [ 1133326800000 , 16.412751299498] , [ 1136005200000 , 12.573569093402] , [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342041] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618802] , [ 1149048000000 , 21.142678863692] , [ 1151640000000 , 26.56848967753] , [ 1154318400000 , 24.839144939906] , [ 1156996800000 , 25.456187462166] , [ 1159588800000 , 26.350164502825] , [ 1162270800000 , 26.478333205189] , [ 1164862800000 , 26.425979547846] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625831] , [ 1180584000000 , 27.49086242483] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.06048067145] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194128] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664834] , [ 1199077200000 , 30.629727432729] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227843] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288522] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093842] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832099] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618402] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.24600710228] , [ 1241064000000 , 24.530543998508] , [ 1243742400000 , 25.084184918241] , [ 1246334400000 , 16.606166527359] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475754] , [ 1256961600000 , 23.017152085244] , [ 1259557200000 , 25.617745423684] , [ 1262235600000 , 24.061133998641] , [ 1264914000000 , 23.223933318646] , [ 1267333200000 , 24.425887263936] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878675] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450372] , [ 1285819200000 , 30.49896723209] , [ 1288497600000 , 32.403696817913] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.84633051005] , [ 1306814400000 , 39.857316881858] , [ 1309406400000 , 37.675127768207] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702578] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769977] , [ 1333166400000 , 33.873085184128] , [ 1335758400000 , 32.321039427046]]
- } ,
-
- {
- "key" : "Materials" ,
- "values" : [ [ 1025409600000 , 5.1162447683392] , [ 1028088000000 , 4.2022848306513] , [ 1030766400000 , 4.3543715758736] , [ 1033358400000 , 5.4641223667245] , [ 1036040400000 , 6.0041275884577] , [ 1038632400000 , 6.6050520064486] , [ 1041310800000 , 5.0154059912793] , [ 1043989200000 , 5.1835708554647] , [ 1046408400000 , 5.1142682006164] , [ 1049086800000 , 5.0271381717695] , [ 1051675200000 , 5.3437782653456] , [ 1054353600000 , 5.2105844515767] , [ 1056945600000 , 6.552565997799] , [ 1059624000000 , 6.9873363581831] , [ 1062302400000 , 7.010986789097] , [ 1064894400000 , 4.4254242025515] , [ 1067576400000 , 4.9613848042174] , [ 1070168400000 , 4.8854920484764] , [ 1072846800000 , 4.0441111794228] , [ 1075525200000 , 4.0219596813179] , [ 1078030800000 , 4.3065749225355] , [ 1080709200000 , 3.9148434915404] , [ 1083297600000 , 3.8659430654512] , [ 1085976000000 , 3.9572824600686] , [ 1088568000000 , 4.7372190641522] , [ 1091246400000 , 4.6871476374455] , [ 1093924800000 , 5.0398702564196] , [ 1096516800000 , 5.5221787544964] , [ 1099195200000 , 5.424646299798] , [ 1101790800000 , 5.9240223067349] , [ 1104469200000 , 5.9936860983601] , [ 1107147600000 , 5.8499523215019] , [ 1109566800000 , 6.4149040329325] , [ 1112245200000 , 6.4547895561969] , [ 1114833600000 , 5.9385382611161] , [ 1117512000000 , 6.0486751030592] , [ 1120104000000 , 5.23108613838] , [ 1122782400000 , 5.5857797121029] , [ 1125460800000 , 5.3454665096987] , [ 1128052800000 , 5.0439154120119] , [ 1130734800000 , 5.054634702913] , [ 1133326800000 , 5.3819451380848] , [ 1136005200000 , 5.2638869269803] , [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- } ,
-
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1025409600000 , 1.3503144674343] , [ 1028088000000 , 1.2232741112434] , [ 1030766400000 , 1.3930470790784] , [ 1033358400000 , 1.2631275030593] , [ 1036040400000 , 1.5842699103708] , [ 1038632400000 , 1.9546996043116] , [ 1041310800000 , 0.8504048300986] , [ 1043989200000 , 0.85340686311353] , [ 1046408400000 , 0.843061357391] , [ 1049086800000 , 2.119846992476] , [ 1051675200000 , 2.5285382124858] , [ 1054353600000 , 2.5056570712835] , [ 1056945600000 , 2.5212789901005] , [ 1059624000000 , 2.6192011642534] , [ 1062302400000 , 2.5382187823805] , [ 1064894400000 , 2.3393223047168] , [ 1067576400000 , 2.491219888698] , [ 1070168400000 , 2.497555874906] , [ 1072846800000 , 1.734018115546] , [ 1075525200000 , 1.9307268299646] , [ 1078030800000 , 2.2261679836799] , [ 1080709200000 , 1.7608893704206] , [ 1083297600000 , 1.6242690616808] , [ 1085976000000 , 1.7161663801295] , [ 1088568000000 , 1.7183554537038] , [ 1091246400000 , 1.7179780759145] , [ 1093924800000 , 1.7314274801784] , [ 1096516800000 , 1.2596883356752] , [ 1099195200000 , 1.381177053009] , [ 1101790800000 , 1.4408819615814] , [ 1104469200000 , 3.4743581836444] , [ 1107147600000 , 3.3603749903192] , [ 1109566800000 , 3.5350883257893] , [ 1112245200000 , 3.0949644237828] , [ 1114833600000 , 3.0796455899995] , [ 1117512000000 , 3.3441247640644] , [ 1120104000000 , 4.0947643978168] , [ 1122782400000 , 4.4072631274052] , [ 1125460800000 , 4.4870979780825] , [ 1128052800000 , 4.8404549457934] , [ 1130734800000 , 4.8293016233697] , [ 1133326800000 , 5.2238093263952] , [ 1136005200000 , 3.382306337815] , [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.198978305031] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- } ,
-
- {
- "key" : "Utilities" ,
- "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0.17112421375328] , [ 1036040400000 , 0.16363405009242] , [ 1038632400000 , 0.21933570171591] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
- } ,
-
- {
- "key" : "Not Available" ,
- "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0.050172677311163] , [ 1170219600000 , 0.05010459739003] , [ 1172638800000 , 0.050681828777765] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0.18678212114368] , [ 1209528000000 , 0.17442959307088] , [ 1212206400000 , 0.16359572139598] , [ 1214798400000 , 0.15837381236842] , [ 1217476800000 , 0.15577933366753] , [ 1220155200000 , 0.14891802647046] , [ 1222747200000 , 0.1770757948046] , [ 1225425600000 , 0.18278762496453] , [ 1228021200000 , 0.19687349078343] , [ 1230699600000 , 0.23551013647077] , [ 1233378000000 , 0.25042391829233] , [ 1235797200000 , 0.26937282915476] , [ 1238472000000 , 0.23271248456665] , [ 1241064000000 , 0.20745841982123] , [ 1243742400000 , 0.2011712690448] , [ 1246334400000 , 0.21168244254666] , [ 1249012800000 , 0.20333696030696] , [ 1251691200000 , 0.19775078467844] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 1.3103821402664] , [ 1317355200000 , 1.0444700235618] , [ 1320033600000 , 0.81900499903221] , [ 1322629200000 , 0.81445352296526] , [ 1325307600000 , 0.27519092496306] , [ 1327986000000 , 0.28953340933973] , [ 1330491600000 , 0.31305944539777] , [ 1333166400000 , 0.28710464914403] , [ 1335758400000 , 0.27229889783707]]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) {
- return { x: d[0], y: d[1] }
- });
- return series;
-});
-
-
-
-
-nv.addGraph(function() {
-
-
- var width = function() { return parseInt(d3.select('#chart').style('width')) },
- height = function() { return parseInt(d3.select('#chart').style('height')) };
- //xTickFormat = d3.format(',r'),
- xTickFormat = function(d) { return d3.time.format('%x')(new Date(d)) },
- yTickFormat = d3.format(',.2f');
-
- var chart = nv.models.stackedAreaWithLegend()
- .width(width)
- .height(height)
- .clipEdge(true)
- //.y(function(d) { return d.ytest }) //not ready yet for custom accessor, almost there
-
- chart.xAxis
- .tickFormat(xTickFormat);
-
- chart.yAxis
- .tickFormat(yTickFormat);
-
-
-
- var svg = d3.select('#chart svg')
- .attr('width', width())
- .attr('height', height())
- .datum(histcatexplong)
- //.datum(data)
-
- svg.transition().duration(500).call(chart);
-
-
- chart.dispatch.on('tooltipShow', function(e) {
- var offsetElement = document.getElementById("chart"),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatterY = chart.stacked.offset() == 'expand' ? d3.format(',.2%') : d3.format(',.2f'); //TODO: stacked format should be set by caller
- //formatterX = function(d) { return d };
-
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatterY(chart.y()(e.point)) + ' on ' + xTickFormat(chart.x()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content);
- });
-
- chart.dispatch.on('tooltipHide', function(e) {
- nv.tooltip.cleanup();
- });
-
-
-
- window.onresize = function() {
- d3.select('#chart svg')
- .attr('width', width())
- .attr('height', height())
- .call(chart);
- };
-
-
- return chart;
-});
-
-
-
-/* Inspired by Lee Byron's test data generator. */
-function stream_layers(n, m, o) {
- if (arguments.length < 3) o = 0;
- function bump(a) {
- var x = 1 / (.1 + Math.random()),
- y = 2 * Math.random() - .5,
- z = 10 / (.1 + Math.random());
- for (var i = 0; i < m; i++) {
- var w = (i / m - y) * z;
- a[i] += x * Math.exp(-w * w);
- }
- }
- return d3.range(n).map(function() {
- var a = [], i;
- for (i = 0; i < m; i++) a[i] = o + o * Math.random();
- for (i = 0; i < 5; i++) bump(a);
- return a.map(stream_index);
- });
-}
-
-/* Another layer generator using gamma distributions. */
-function stream_waves(n, m) {
- return d3.range(n).map(function(i) {
- return d3.range(m).map(function(j) {
- var x = 20 * j / m - i / 3;
- return 2 * x * Math.exp(-.5 * x);
- }).map(stream_index);
- });
-}
-
-function stream_index(d, i) {
- //return {x: i, ytest: Math.max(0, d)}; //Minor error with custom y getter/setter and stacked, need to fix
- return {x: i, y: Math.max(0, d)};
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js
deleted file mode 100755
index a7b98137..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js
+++ /dev/null
@@ -1,297 +0,0 @@
-
-nv.models.stackedAreaWithLegend = function() {
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- getWidth = function() { return 960 },
- getHeight = function() { return 500 },
- color = d3.scale.category20().range(),
- showControls = true,
- showLegend = true;
-
- var x = d3.scale.linear(),
- y = d3.scale.linear(),
- getX = function(d) { return d.x },
- getY = function(d) { return d.y },
- xAxis = nv.models.axis().scale(x).orient('bottom'),
- yAxis = nv.models.axis().scale(y).orient('left'),
- legend = nv.models.legend().height(30),
- controls = nv.models.legend().height(30),
- stacked = nv.models.stackedArea(),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- //TODO: let user select default
- var controlsData = [
- { key: 'Stacked' },
- { key: 'Stream', disabled: true },
- { key: 'Expanded', disabled: true }
- ];
-
-
- function chart(selection) {
- selection.each(function(data) {
- var width = getWidth(),
- height = getHeight(),
- availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom;
-
- var seriesData = data.filter(function(d) { return !d.disabled })
- .reduce(function(prev, curr, index) { //sum up all the y's
- curr.values.forEach(function(d,i) {
- if (!index) prev[i] = {x: getX(d,i), y:0};
- prev[i].y += getY(d,i);
- });
- return prev;
- }, []);
-
-
- x .domain(d3.extent(d3.merge(seriesData), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
- y .domain(stacked.offset() == 'zero' ?
- [0, d3.max(seriesData, function(d) { return d.y } )] :
- [0, 1] // 0 - 100%
- )
- .range([availableHeight, 0]);
-
- stacked
- .width(availableWidth)
- .height(availableHeight)
- //.color(color)
- .color(data.map(function(d,i) {
- return d.color || color[i % 20];
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var wrap = d3.select(this).selectAll('g.wrap.stackedAreaWithLegend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 stackedAreaWithLegend').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y axis');
- gEnter.append('g').attr('class', 'stackedWrap');
- gEnter.append('g').attr('class', 'legendWrap');
- gEnter.append('g').attr('class', 'controlsWrap');
-
-
- var g = wrap.select('g');
-
-
- if (showLegend) {
- //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
- margin.top = legend.height();
-
- legend
- .width(width/2 - margin.right)
- .color(color);
-
- g.select('.legendWrap')
- .datum(data)
- .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
- .call(legend);
- }
-
-
- if (showControls) {
- controls.width(280).color(['#444', '#444', '#444']);
- g.select('.controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- var stackedWrap = g.select('.stackedWrap')
- .datum(data);
- d3.transition(stackedWrap).call(stacked);
-
-
- xAxis
- .domain(x.domain())
- .range(x.range())
- .ticks( width / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- yAxis
- .domain(y.domain())
- .range(y.range())
- .ticks(stacked.offset() == 'wiggle' ? 0 : height / 36)
- .tickSize(-availableWidth, 0)
- .tickFormat(stacked.offset() == 'zero' ? d3.format(',.2f') : d3.format('%')); //TODO: stacked format should be set by caller
-
- d3.transition(g.select('.y.axis'))
- .call(yAxis);
-
-
-
- //TODO: FIX Logic error, screws up when series are disabled by clicking legend, then series are desiabled by clicking the area
- stacked.dispatch.on('areaClick.toggle', function(e) {
- if (data.filter(function(d) { return !d.disabled }).length === 1)
- data = data.map(function(d) {
- if (d.disabled)
- d.values.map(function(p) { p.y = p._y || p.y; return p }); // ....
-
- d.disabled = false;
-
- return d
- });
- else
- data = data.map(function(d,i) {
- if (!d.disabled && i !== e.seriesIndex)
- d.values.map(function(p) { p._y = p.y; p.y = 0; return p }); //TODO: need to use value from getY, not always d.y
-
- if (d.disabled && i === e.seriesIndex)
- d.values.map(function(p) { p.y = p._y || p.y; return p }); // ....
-
- d.disabled = (i != e.seriesIndex);
-
- return d
- });
-
- selection.transition().call(chart);
- });
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (d.disabled)
- d.values.map(function(p) { p._y = p.y; p.y = 0; return p }); //TODO: need to use value from getY, not always d.y
- else
- d.values.map(function(p) { p.y = p._y; return p }); // ....
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- d.values.map(function(p) { p.y = p._y; return p }); // ....
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
-
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Stacked':
- stacked.style('stack');
- break;
- case 'Stream':
- stacked.style('stream');
- break;
- case 'Expanded':
- stacked.style('expand');
- break;
- }
-
- selection.transition().call(chart);
- });
-
-
- /*
- legend.dispatch.on('legendMouseover', function(d, i) {
- d.hover = true;
- selection.transition().call(chart)
- });
-
- legend.dispatch.on('legendMouseout', function(d, i) {
- d.hover = false;
- selection.transition().call(chart)
- });
- */
-
- stacked.dispatch.on('tooltipShow', function(e) {
- //disable tooltips when value ~= 0
- //// TODO: consider removing points from voronoi that have 0 value instead of this hack
- if (!Math.round(getY(e.point) * 100)) { // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
- setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
- return false;
- }
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- stacked.dispatch.on('tooltipHide', function(e) {
- dispatch.tooltipHide(e);
- });
- });
-
-
-
- /*
- // If the legend changed the margin's height, need to recalc positions... should think of a better way to prevent duplicate work
- if (margin.top != legend.height())
- chart(selection);
- */
-
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.stacked = stacked;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, stacked, 'interactive', 'offset', 'order', 'style', 'clipEdge', 'size', 'forceX', 'forceY', 'forceSize');
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_); //not used locally, so could jsut be a rebind
- stacked.x(getX);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- stacked.y(getY);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return getWidth;
- getWidth = d3.functor(_);
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return getHeight;
- getHeight = d3.functor(_);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html
deleted file mode 100755
index f18bc8f1..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-</style>
-<body>
-
-<br> <br> <br> <br> <br>
-
-<div class="gallery" id="chart"></div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/bullet.js"></script>
-<script>
-
-var width = 960,
- height = 55,
- margin = {top: 5, right: 40, bottom: 20, left: 120};
-
-var chart = nv.models.bullet()
- .width(width - margin.right - margin.left)
- .height(height - margin.top - margin.bottom);
-
-
- data = [
- {"title":"Revenue","subtitle":"US$, in thousands","ranges":[-150,-225,-300],"measures":[-220],"markers":[-250]}
- /*
- //TODO: fix the tooltip offset if multiple
- ,
- {"title":"Profit","subtitle":"%","ranges":[20,25,30],"measures":[21],"markers":[26]},
- {"title":"Order Size","subtitle":"US$, average","ranges":[350,500,600],"measures":[100],"markers":[550]},
- {"title":"New Customers","subtitle":"count","ranges":[1400,2000,2500],"measures":[1000],"markers":[1000]},
- {"title":"Satisfaction","subtitle":"out of 5","ranges":[3.5,4.25,5],"measures":[3.2,4.7],"markers":[4.4]}
- */
-];
-
- //TODO: to be consistent with other models, should be appending a g to an already made svg, not creating the svg element
- var vis = d3.select("#chart").selectAll("svg")
- .data(data)
- .enter().append("svg")
- .attr("class", "bullet nvd3")
- .attr("width", width)
- .attr("height", height)
- //.append("g")
- //.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
-
- vis
- .transition()
- .duration(1000)
- .call(chart);
-
-
- window.transition = function() {
- vis.datum(randomize);
-
- vis
- .transition()
- .duration(1000)
- .call(chart);
- };
-
-
-
-
-
-
-
-
-function randomize(d) {
- if (!d.randomizer) d.randomizer = randomizer(d);
- d.ranges = d.ranges.map(d.randomizer);
- d.markers = d.markers.map(d.randomizer);
- d.measures = d.measures.map(d.randomizer);
- return d;
-}
-
-function randomizer(d) {
- var k = d3.max(d.ranges) * .2;
- return function(d) {
- return Math.max(0, d + k * (Math.random() - .5));
- };
-}
-
-
-
-
-d3.select('body').on('click', window.transition);
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html
deleted file mode 100755
index 7c5cd984..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
- font-family: Arial;
-}
-
-</style>
-<body>
-
-<br> <br> <br> <br> <br>
-
-Normal Bullet Chart
-<div class="gallery with-transitions" id="chart"></div>
-
-Bullet Chart with Custom Labels
-<div class='gallery with-transitions' id='chart2'></div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/bullet.js"></script>
-<script src="../src/models/bulletChart.js"></script>
-<script>
-
-var width = 960,
- height = 80,
- margin = {top: 5, right: 40, bottom: 20, left: 120};
-
-var chart = nv.models.bulletChart()
- .width(width - margin.right - margin.left)
- .height(height - margin.top - margin.bottom);
-
-var chart2 = nv.models.bulletChart()
- .width(width - margin.right - margin.left)
- .height(height - margin.top - margin.bottom);
-
- data = [
- {"title":"Revenue","subtitle":"US$, in thousands","ranges":[150,225,300],"measures":[220],"markers":[250]}
- /*
- //TODO: fix the tooltip offset if multiple
- ,
- {"title":"Profit","subtitle":"%","ranges":[20,25,30],"measures":[21],"markers":[26]},
- {"title":"Order Size","subtitle":"US$, average","ranges":[350,500,600],"measures":[100],"markers":[550]},
- {"title":"New Customers","subtitle":"count","ranges":[1400,2000,2500],"measures":[1000],"markers":[1000]},
- {"title":"Satisfaction","subtitle":"out of 5","ranges":[3.5,4.25,5],"measures":[3.2,4.7],"markers":[4.4]}
- */
-];
-
-dataWithLabels = [
- {"title":"Revenue","subtitle":"US$, in thousands","ranges":[150,225,300],"measures":[220],"markers":[250],
- "rangeLabels":['Maximum Inventory','Average Inventory','Minimum Inventory'], "measureLabels":['Current Inventory'], "markerLabels":['Target Inventory'] }
-];
-
- //TODO: to be consistent with other models, should be appending a g to an already made svg, not creating the svg element
- var vis = d3.select("#chart").selectAll("svg")
- .data(data)
- .enter().append("svg")
- .attr("class", "bullet nvd3")
- .attr("width", width)
- .attr("height", height);
-
- vis
- .transition()
- .duration(1000)
- .call(chart);
-
-
- var vis2 = d3.select("#chart2").selectAll("svg")
- .data(dataWithLabels)
- .enter().append('svg')
- .attr('class',"bullet nvd3")
- .attr("width",width)
- .attr("height",height);
-
- vis2.transition().duration(1000).call(chart2);
-
-
- window.transition = function() {
- vis.datum(randomize)
- .transition()
- .duration(1000)
- .call(chart);
-
- vis2.datum(randomize)
- .transition()
- .duration(1000)
- .call(chart2);
- };
-
-
-function randomize(d) {
- if (!d.randomizer) d.randomizer = randomizer(d);
- d.ranges = d.ranges.map(d.randomizer);
- d.markers = d.markers.map(d.randomizer);
- d.measures = d.measures.map(d.randomizer);
- return d;
-}
-
-function randomizer(d) {
- var k = d3.max(d.ranges) * .2;
- return function(d) {
- return Math.max(0, d + k * (Math.random() - .5));
- };
-}
-
-
-
-
-d3.select('body').on('click', window.transition);
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html
deleted file mode 100755
index ce228074..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 svg {
- height: 500px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 50px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart">
- <svg style="height: 500px;"></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/crossfilter.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-extend = function(destination, source) {
- for (var property in source) {
- if (property in destination) {
- if ( typeof source[property] === "object" &&
- typeof destination[property] === "object") {
- destination[property] = extend(destination[property], source[property]);
- } else {
- continue;
- }
- } else {
- destination[property] = source[property];
- };
- }
- return destination;
-};
-
-nv.addGraph(function() {
- var chart = nv.models.lineWithFocusChart();
-
- chart.xAxis
- .tickFormat(d3.format(',f'));
- chart.x2Axis
- .tickFormat(d3.format(',f'));
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
- chart.y2Axis
- .tickFormat(d3.format(',.2f'));
-
- var dimension = testCrossfilterData().data;
-
- var data = normalizeData(dimension.top(Infinity),
- [
- {
- name: 'Stream #1',
- key: 'stream1'
- },
- {
- name: 'Stream #2',
- key: 'stream2'
- },
- {
- name: 'Stream #3',
- key: 'stream3'
- }
- ], 'x');
-
- d3.select('#chart svg')
- .datum(data)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-function normalizeData(data, series, xAxis)
- {
- var sort = crossfilter.quicksort.by(function(d) { return d[xAxis]; });
- var sorted = sort(data, 0, data.length);
-
- var result = [];
-
- series.forEach(function(serie, index)
- {
- result.push({key: serie.name, values: [], color: serie.color});
- });
-
- data.forEach(function(data, dataIndex)
- {
- series.forEach(function(serie, serieIndex)
- {
- result[serieIndex].values.push({x: data[xAxis], y: data[serie.key]});
- });
- });
-
- return result;
- };
-
-function testCrossfilterData() {
- var data = crossfilter(testData());
-
- try
- {
- data.data = data.dimension(function(d) { return d.y; });
- } catch (e)
- {
- console.log(e.stack);
- }
-
- return data;
-}
-
-function testData() {
-
- var data1 = [];
- var data2 = [];
- var data3 = [];
-
- stream_layers(3,128,.1).map(function(layer, index) {
- layer.forEach(function(item, i) {
- var object = { x: item.x };
- object['stream' + (index + 1)] = item.y;
- eval('data' + (index + 1)).push(object);
- });
- });
-
- var data = extend(data1, data2);
- var result = extend(data, data3);
-
- return result;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html
deleted file mode 100755
index cff2a6be..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 svg {
- height: 500px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 50px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart">
- <svg style="height: 500px;"></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/crossfilter.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-extend = function(destination, source) {
- for (var property in source) {
- if (property in destination) {
- if ( typeof source[property] === "object" &&
- typeof destination[property] === "object") {
- destination[property] = extend(destination[property], source[property]);
- } else {
- continue;
- }
- } else {
- destination[property] = source[property];
- };
- }
- return destination;
-};
-
-nv.addGraph(function() {
- var chart = nv.models.lineWithFocusChart();
-
- chart.xAxis
- .tickFormat(d3.format(',f'));
- chart.x2Axis
- .tickFormat(d3.format(',f'));
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
- chart.y2Axis
- .tickFormat(d3.format(',.2f'));
-
- var rawData = testCrossfilterData();
- var data = normalizeData(rawData.datum,
- [
- {
- name: 'Stream #1',
- key: 'stream1'
- },
- {
- name: 'Stream #2',
- key: 'stream2'
- },
- {
- name: 'Stream #3',
- key: 'stream3'
- }
- ]);
-
- d3.select('#chart svg')
- .datum(data)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-function normalizeData(data, series)
- {
- var sort = crossfilter.quicksort.by(function(d) { return d.key; });
- var result = [];
-
- for (var i = 0; i < series.length; i++)
- {
- var seriesData = data.top(Infinity);
- var sorted = sort(seriesData, 0, seriesData.length);
- var values = [];
-
-
- seriesData.forEach(function(item, index)
- {
- values.push({x: item.key, y: item.value[series[i].key]});
- });
-
- result.push({key: series[i].name, values: values, color: series[i].color});
- };
-
- return result;
- };
-
-function testCrossfilterData() {
- var data = crossfilter(testData());
-
- try
- {
- data.data = data.dimension(function(d) { return d.x; });
- data.datum = data.data.group(function(d) { return d; });
- data.datum.reduce(function (p, v) {
- p.count++;
- p.stream1 += v.stream1;
- p.stream2 += v.stream2;
- p.stream3 += v.stream3;
- return p; },
- function (p, v) {
- p.count--;
- p.stream1 -= v.stream1;
- p.stream2 -= v.stream2;
- p.stream3 -= v.stream3;
- return p; },
- function () { return {count: 0, stream1: 0, stream2: 0, stream3: 0}; });
- } catch (e)
- {
- console.log(e.stack);
- }
-
- return data;
-}
-
-function testData() {
-
- var data1 = [];
- var data2 = [];
- var data3 = [];
-
- stream_layers(3,128,.1).map(function(layer, index) {
- layer.forEach(function(item, i) {
- var object = { x: item.x };
- object['stream' + (index + 1)] = item.y;
- eval('data' + (index + 1)).push(object);
- });
- });
-
- var data = extend(data1, data2);
- var result = extend(data, data3);
-
- return result;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html
deleted file mode 100755
index 95abd991..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html
+++ /dev/null
@@ -1,288 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 svg {
- height: 500px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 50px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart">
- <svg style="height: 500px;"></svg>
- </div>
- <div id="stream1" style="float: left; margin-left: 15px;">
- <div><h1>Stream #1</h1></div>
- </div>
- <div id="stream2" style="float: left; margin-left: 15px;">
- <div><h1>Stream #2</h1></div>
- </div>
- <div id="stream3" style="float: left; margin-left: 15px;">
- <div><h1>Stream #3</h1></div>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/crossfilter.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-extend = function(destination, source) {
- for (var property in source) {
- if (property in destination) {
- if ( typeof source[property] === "object" &&
- typeof destination[property] === "object") {
- destination[property] = extend(destination[property], source[property]);
- } else {
- continue;
- }
- } else {
- destination[property] = source[property];
- };
- }
- return destination;
-};
-
-var rawData = testCrossfilterData();
-
-nv.addGraph(function() {
- var chart = nv.models.lineWithFocusChart();
-
- chart.xAxis
- .tickFormat(d3.format(',f'));
- chart.x2Axis
- .tickFormat(d3.format(',f'));
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
- chart.y2Axis
- .tickFormat(d3.format(',.2f'));
-
- chart.dispatch.on('brush', click);
-
- var data = normalizeData(rawData.datum,
- [
- {
- name: 'Stream #1',
- key: 'stream1'
- },
- {
- name: 'Stream #2',
- key: 'stream2'
- },
- {
- name: 'Stream #3',
- key: 'stream3'
- }
- ]);
-nv.log(data);
- d3.select('#chart svg')
- .datum(data)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-function click(e) {
- extent = e.extent;
-
- rawData.data.filter([extent[0], extent[1]]);
- streams("stream1");
- streams("stream2");
- streams("stream3");
-}
-
-function streams(key) {
- var topData = rawData.data.top(5);
-
- var stream = d3.select("div#" + key).selectAll(".stream-data")
- .data(topData, function(d) {
- return d.key;
- });
-
- stream
- .html(function(d) {
- return d[key];
- })
-
- stream.enter().append("div")
- .attr("class", "stream-data")
- .html(function(d) {
- return d[key];
- })
-
- stream.exit().remove();
-
- stream.order();
-}
-
-function normalizeData(data, series) {
- var sort = crossfilter.quicksort.by(function(d) { return d.key; });
- var result = [];
-
- for (var i = 0; i < series.length; i++) {
- var seriesData = data.top(Infinity);
- var sorted = sort(seriesData, 0, seriesData.length);
- var values = [];
-
- seriesData.forEach(function(item, index) {
- values.push({x: item.key, y: item.value[series[i].key]});
- });
-
- result.push({key: series[i].name, values: values, color: series[i].color});
- };
-
- return result;
-};
-
-function testCrossfilterData() {
- var data = crossfilter(testData());
-
- try {
- data.data = data.dimension(function(d) { return d.x; });
- data.datum = data.data.group(function(d) { return d; });
- data.datum.reduce(
- function (p, v) {
- p.count++;
- p.stream1 += v.stream1;
- p.stream2 += v.stream2;
- p.stream3 += v.stream3;
- return p;
- },
- function (p, v) {
- p.count--;
- p.stream1 -= v.stream1;
- p.stream2 -= v.stream2;
- p.stream3 -= v.stream3;
- return p;
- },
- function () {
- return {count: 0, stream1: 0, stream2: 0, stream3: 0};
- });
-
- data.stream1 = data.dimension(function(d) { return d.stream1; });
- data.stream1datum = data.data.group(function(d) { return d; });
- data.stream1datum.reduce(
- function (p, v) {
- p.count++;
- p.stream1 += v.stream1;
- p.stream2 += v.stream2;
- p.stream3 += v.stream3;
- return p;
- },
- function (p, v) {
- p.count--;
- p.stream1 -= v.stream1;
- p.stream2 -= v.stream2;
- p.stream3 -= v.stream3;
- return p;
- },
- function () {
- return {count: 0, stream1: 0, stream2: 0, stream3: 0};
- }
- );
-
- data.stream2 = data.dimension(function(d) { return d.stream2; });
- data.stream2datum = data.data.group(function(d) { return d; });
- data.stream2datum.reduce(
- function (p, v) {
- p.count++;
- p.stream1 += v.stream1;
- p.stream2 += v.stream2;
- p.stream3 += v.stream3;
- return p;
- },
- function (p, v) {
- p.count--;
- p.stream1 -= v.stream1;
- p.stream2 -= v.stream2;
- p.stream3 -= v.stream3;
- return p;
- },
- function () {
- return {count: 0, stream1: 0, stream2: 0, stream3: 0};
- }
- );
-
- data.stream3 = data.dimension(function(d) { return d.stream3; });
- data.stream3datum = data.data.group(function(d) { return d; });
- data.stream3datum.reduce(
- function (p, v) {
- p.count++;
- p.stream1 += v.stream1;
- p.stream2 += v.stream2;
- p.stream3 += v.stream3;
- return p; },
- function (p, v) {
- p.count--;
- p.stream1 -= v.stream1;
- p.stream2 -= v.stream2;
- p.stream3 -= v.stream3;
- return p;
- },
- function () {
- return {count: 0, stream1: 0, stream2: 0, stream3: 0};
- }
- );
- } catch (e) {
- nv.log(e.stack);
- }
-
- return data;
-}
-
-function testData() {
- var data1 = [];
- var data2 = [];
- var data3 = [];
-
- stream_layers(3,128,.1).map(function(layer, index) {
- layer.forEach(function(item, i) {
- var object = { x: item.x };
- object['stream' + (index + 1)] = item.y;
- eval('data' + (index + 1)).push(object);
- });
- });
-
- var data = extend(data1, data2);
- var result = extend(data, data3);
-
- return result;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html
deleted file mode 100755
index a0c4b582..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html
+++ /dev/null
@@ -1,200 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-
-.chart svg {
- height: 450px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 50px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
- <div class='navigation'>
- Tests:
- <a href="../test/lineChartTest.html">Line Chart</a>
- <a href="../test/stackedAreaChartTest.html">Stacked Area</a>
- <a href="cumulativeLineChart.html">Cumulative Line</a>
- </div>
- <div id="chart1" class='chart with-transitions'>
- <strong>Chart with new tooltips and guide line (with-transitions)</strong>
- <svg></svg>
- </div>
- <div id="chart2" class='chart with-transitions'>
- <strong>Chart with old tooltips (with-transitions)</strong>
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/cumulativeLineChart.js"></script>
-<script>
-
-
-// Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs, and may do more in the future... it's NOT required
-
-nv.addGraph(function() {
- var chart = nv.models.cumulativeLineChart()
- .useInteractiveGuideline(true)
- .x(function(d) { return d[0] })
- .y(function(d) { return d[1]/100 })
- .color(d3.scale.category10().range())
- .average(function(d) { return d.mean/100; })
- .transitionDuration(300)
- .clipVoronoi(false);
-
- chart.xAxis
- .tickFormat(function(d) {
- return d3.time.format('%m/%d/%y')(new Date(d))
- });
-
- chart.yAxis
- .tickFormat(d3.format(',.1%'));
-
- d3.select('#chart1 svg')
- .datum(cumulativeTestData())
- .call(chart);
-
- //TODO: Figure out a good way to do this automatically
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-nv.addGraph(function() {
- var chart = nv.models.cumulativeLineChart()
- .useInteractiveGuideline(false)
- .rightAlignYAxis(true)
- .margin({right:90})
- .x(function(d) { return d[0] })
- .y(function(d) { return d[1]/100 })
- .color(d3.scale.category10().range())
- .average(function(d) { return d.mean/100; })
- .clipVoronoi(false);
-
- chart.xAxis
- .tickFormat(function(d) {
- return d3.time.format('%m/%d/%y')(new Date(d))
- });
-
- chart.yAxis
- .tickFormat(d3.format(',.1%'));
-
- d3.select('#chart2 svg')
- .datum(cumulativeTestData())
- .call(chart);
-
- //TODO: Figure out a good way to do this automatically
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-
-function flatTestData() {
- return [
- {
- key: "Snakes",
- values: [0,1,2,3,4,5,6,7,8,9].map(function(d) {
- var currentDate = new Date();
- currentDate.setDate(currentDate.getDate() + d);
- return [currentDate, 0]
- })
- }
- ];
-}
-
-
-function cumulativeTestData() {
-
-
-
- return [
-
- {
- key: "Long",
- values: [ [ 1083297600000 , -2.974623048543] , [ 1085976000000 , -1.7740300785979] , [ 1088568000000 , 4.4681318138177] , [ 1091246400000 , 7.0242541001353] , [ 1093924800000 , 7.5709603667586] , [ 1096516800000 , 20.612245065736] , [ 1099195200000 , 21.698065237316] , [ 1101790800000 , 40.501189458018] , [ 1104469200000 , 50.464679413194] , [ 1107147600000 , 48.917421973355] , [ 1109566800000 , 63.750936549160] , [ 1112245200000 , 59.072499126460] , [ 1114833600000 , 43.373158880492] , [ 1117512000000 , 54.490918947556] , [ 1120104000000 , 56.661178852079] , [ 1122782400000 , 73.450103545496] , [ 1125460800000 , 71.714526354907] , [ 1128052800000 , 85.221664349607] , [ 1130734800000 , 77.769261392481] , [ 1133326800000 , 95.966528716500] , [ 1136005200000 , 107.59132116397] , [ 1138683600000 , 127.25740096723] , [ 1141102800000 , 122.13917498830] , [ 1143781200000 , 126.53657279774] , [ 1146369600000 , 132.39300992970] , [ 1149048000000 , 120.11238242904] , [ 1151640000000 , 118.41408917750] , [ 1154318400000 , 107.92918924621] , [ 1156996800000 , 110.28057249569] , [ 1159588800000 , 117.20485334692] , [ 1162270800000 , 141.33556756948] , [ 1164862800000 , 159.59452727893] , [ 1167541200000 , 167.09801853304] , [ 1170219600000 , 185.46849659215] , [ 1172638800000 , 184.82474099990] , [ 1175313600000 , 195.63155213887] , [ 1177905600000 , 207.40597044171] , [ 1180584000000 , 230.55966698196] , [ 1183176000000 , 239.55649035292] , [ 1185854400000 , 241.35915085208] , [ 1188532800000 , 239.89428956243] , [ 1191124800000 , 260.47781917715] , [ 1193803200000 , 276.39457482225] , [ 1196398800000 , 258.66530682672] , [ 1199077200000 , 250.98846121893] , [ 1201755600000 , 226.89902618127] , [ 1204261200000 , 227.29009273807] , [ 1206936000000 , 218.66476654350] , [ 1209528000000 , 232.46605902918] , [ 1212206400000 , 253.25667081117] , [ 1214798400000 , 235.82505363925] , [ 1217476800000 , 229.70112774254] , [ 1220155200000 , 225.18472705952] , [ 1222747200000 , 189.13661746552] , [ 1225425600000 , 149.46533007301] , [ 1228021200000 , 131.00340772114] , [ 1230699600000 , 135.18341728866] , [ 1233378000000 , 109.15296887173] , [ 1235797200000 , 84.614772549760] , [ 1238472000000 , 100.60810015326] , [ 1241064000000 , 141.50134895610] , [ 1243742400000 , 142.50405083675] , [ 1246334400000 , 139.81192372672] , [ 1249012800000 , 177.78205544583] , [ 1251691200000 , 194.73691933074] , [ 1254283200000 , 209.00838460225] , [ 1256961600000 , 198.19855877420] , [ 1259557200000 , 222.37102417812] , [ 1262235600000 , 234.24581081250] , [ 1264914000000 , 228.26087689346] , [ 1267333200000 , 248.81895126250] , [ 1270008000000 , 270.57301075186] , [ 1272600000000 , 292.64604322550] , [ 1275278400000 , 265.94088520518] , [ 1277870400000 , 237.82887467569] , [ 1280548800000 , 265.55973314204] , [ 1283227200000 , 248.30877330928] , [ 1285819200000 , 278.14870066912] , [ 1288497600000 , 292.69260960288] , [ 1291093200000 , 300.84263809599] , [ 1293771600000 , 326.17253914628] , [ 1296450000000 , 337.69335966505] , [ 1298869200000 , 339.73260965121] , [ 1301544000000 , 346.87865120765] , [ 1304136000000 , 347.92991526628] , [ 1306814400000 , 342.04627502669] , [ 1309406400000 , 333.45386231233] , [ 1312084800000 , 323.15034181243] , [ 1314763200000 , 295.66126882331] , [ 1317355200000 , 251.48014579253] , [ 1320033600000 , 295.15424257905] , [ 1322629200000 , 294.54766764397] , [ 1325307600000 , 295.72906119051] , [ 1327986000000 , 325.73351347613] , [ 1330491600000 , 340.16106061186] , [ 1333166400000 , 345.15514071490] , [ 1335758400000 , 337.10259395679] , [ 1338436800000 , 318.68216333837] , [ 1341028800000 , 317.03683945246] , [ 1343707200000 , 318.53549659997] , [ 1346385600000 , 332.85381464104] , [ 1348977600000 , 337.36534373477] , [ 1351656000000 , 350.27872156161] , [ 1354251600000 , 349.45128876100]]
- ,
- mean: 250
- },
- {
- key: "Short",
- values: [ [ 1083297600000 , -0.77078283705125] , [ 1085976000000 , -1.8356366650335] , [ 1088568000000 , -5.3121322073127] , [ 1091246400000 , -4.9320975829662] , [ 1093924800000 , -3.9835408823225] , [ 1096516800000 , -6.8694685316805] , [ 1099195200000 , -8.4854877428545] , [ 1101790800000 , -15.933627197384] , [ 1104469200000 , -15.920980069544] , [ 1107147600000 , -12.478685045651] , [ 1109566800000 , -17.297761889305] , [ 1112245200000 , -15.247129891020] , [ 1114833600000 , -11.336459046839] , [ 1117512000000 , -13.298990907415] , [ 1120104000000 , -16.360027000056] , [ 1122782400000 , -18.527929522030] , [ 1125460800000 , -22.176516738685] , [ 1128052800000 , -23.309665368330] , [ 1130734800000 , -21.629973409748] , [ 1133326800000 , -24.186429093486] , [ 1136005200000 , -29.116707312531] , [ 1138683600000 , -37.188037874864] , [ 1141102800000 , -34.689264821198] , [ 1143781200000 , -39.505932105359] , [ 1146369600000 , -45.339572492759] , [ 1149048000000 , -43.849353192764] , [ 1151640000000 , -45.418353922571] , [ 1154318400000 , -44.579281059919] , [ 1156996800000 , -44.027098363370] , [ 1159588800000 , -41.261306759439] , [ 1162270800000 , -47.446018534027] , [ 1164862800000 , -53.413782948909] , [ 1167541200000 , -50.700723647419] , [ 1170219600000 , -56.374090913296] , [ 1172638800000 , -61.754245220322] , [ 1175313600000 , -66.246241587629] , [ 1177905600000 , -75.351650899999] , [ 1180584000000 , -81.699058262032] , [ 1183176000000 , -82.487023368081] , [ 1185854400000 , -86.230055113277] , [ 1188532800000 , -84.746914818507] , [ 1191124800000 , -100.77134971977] , [ 1193803200000 , -109.95435565947] , [ 1196398800000 , -99.605672965057] , [ 1199077200000 , -99.607249394382] , [ 1201755600000 , -94.874614950188] , [ 1204261200000 , -105.35899063105] , [ 1206936000000 , -106.01931193802] , [ 1209528000000 , -110.28883571771] , [ 1212206400000 , -119.60256203030] , [ 1214798400000 , -115.62201315802] , [ 1217476800000 , -106.63824185202] , [ 1220155200000 , -99.848746318951] , [ 1222747200000 , -85.631219602987] , [ 1225425600000 , -63.547909262067] , [ 1228021200000 , -59.753275364457] , [ 1230699600000 , -63.874977883542] , [ 1233378000000 , -56.865697387488] , [ 1235797200000 , -54.285579501988] , [ 1238472000000 , -56.474659581885] , [ 1241064000000 , -63.847137745644] , [ 1243742400000 , -68.754247867325] , [ 1246334400000 , -69.474257009155] , [ 1249012800000 , -75.084828197067] , [ 1251691200000 , -77.101028237237] , [ 1254283200000 , -80.454866854387] , [ 1256961600000 , -78.984349952220] , [ 1259557200000 , -83.041230807854] , [ 1262235600000 , -84.529748348935] , [ 1264914000000 , -83.837470195508] , [ 1267333200000 , -87.174487671969] , [ 1270008000000 , -90.342293007487] , [ 1272600000000 , -93.550928464991] , [ 1275278400000 , -85.833102140765] , [ 1277870400000 , -79.326501831592] , [ 1280548800000 , -87.986196903537] , [ 1283227200000 , -85.397862121771] , [ 1285819200000 , -94.738167050020] , [ 1288497600000 , -98.661952897151] , [ 1291093200000 , -99.609665952708] , [ 1293771600000 , -103.57099836183] , [ 1296450000000 , -104.04353411322] , [ 1298869200000 , -108.21382792587] , [ 1301544000000 , -108.74006900920] , [ 1304136000000 , -112.07766650960] , [ 1306814400000 , -109.63328199118] , [ 1309406400000 , -106.53578966772] , [ 1312084800000 , -103.16480871469] , [ 1314763200000 , -95.945078001828] , [ 1317355200000 , -81.226687340874] , [ 1320033600000 , -90.782206596168] , [ 1322629200000 , -89.484445370113] , [ 1325307600000 , -88.514723135326] , [ 1327986000000 , -93.381292724320] , [ 1330491600000 , -97.529705609172] , [ 1333166400000 , -99.520481439189] , [ 1335758400000 , -99.430184898669] , [ 1338436800000 , -93.349934521973] , [ 1341028800000 , -95.858475286491] , [ 1343707200000 , -95.522755836605] , [ 1346385600000 , -98.503848862036] , [ 1348977600000 , -101.49415251896] , [ 1351656000000 , -101.50099325672] , [ 1354251600000 , -99.487094927489]]
- ,
- mean: -60
- },
-
-
- {
- key: "Gross",
- mean: 125,
- values: [ [ 1083297600000 , -3.7454058855943] , [ 1085976000000 , -3.6096667436314] , [ 1088568000000 , -0.8440003934950] , [ 1091246400000 , 2.0921565171691] , [ 1093924800000 , 3.5874194844361] , [ 1096516800000 , 13.742776534056] , [ 1099195200000 , 13.212577494462] , [ 1101790800000 , 24.567562260634] , [ 1104469200000 , 34.543699343650] , [ 1107147600000 , 36.438736927704] , [ 1109566800000 , 46.453174659855] , [ 1112245200000 , 43.825369235440] , [ 1114833600000 , 32.036699833653] , [ 1117512000000 , 41.191928040141] , [ 1120104000000 , 40.301151852023] , [ 1122782400000 , 54.922174023466] , [ 1125460800000 , 49.538009616222] , [ 1128052800000 , 61.911998981277] , [ 1130734800000 , 56.139287982733] , [ 1133326800000 , 71.780099623014] , [ 1136005200000 , 78.474613851439] , [ 1138683600000 , 90.069363092366] , [ 1141102800000 , 87.449910167102] , [ 1143781200000 , 87.030640692381] , [ 1146369600000 , 87.053437436941] , [ 1149048000000 , 76.263029236276] , [ 1151640000000 , 72.995735254929] , [ 1154318400000 , 63.349908186291] , [ 1156996800000 , 66.253474132320] , [ 1159588800000 , 75.943546587481] , [ 1162270800000 , 93.889549035453] , [ 1164862800000 , 106.18074433002] , [ 1167541200000 , 116.39729488562] , [ 1170219600000 , 129.09440567885] , [ 1172638800000 , 123.07049577958] , [ 1175313600000 , 129.38531055124] , [ 1177905600000 , 132.05431954171] , [ 1180584000000 , 148.86060871993] , [ 1183176000000 , 157.06946698484] , [ 1185854400000 , 155.12909573880] , [ 1188532800000 , 155.14737474392] , [ 1191124800000 , 159.70646945738] , [ 1193803200000 , 166.44021916278] , [ 1196398800000 , 159.05963386166] , [ 1199077200000 , 151.38121182455] , [ 1201755600000 , 132.02441123108] , [ 1204261200000 , 121.93110210702] , [ 1206936000000 , 112.64545460548] , [ 1209528000000 , 122.17722331147] , [ 1212206400000 , 133.65410878087] , [ 1214798400000 , 120.20304048123] , [ 1217476800000 , 123.06288589052] , [ 1220155200000 , 125.33598074057] , [ 1222747200000 , 103.50539786253] , [ 1225425600000 , 85.917420810943] , [ 1228021200000 , 71.250132356683] , [ 1230699600000 , 71.308439405118] , [ 1233378000000 , 52.287271484242] , [ 1235797200000 , 30.329193047772] , [ 1238472000000 , 44.133440571375] , [ 1241064000000 , 77.654211210456] , [ 1243742400000 , 73.749802969425] , [ 1246334400000 , 70.337666717565] , [ 1249012800000 , 102.69722724876] , [ 1251691200000 , 117.63589109350] , [ 1254283200000 , 128.55351774786] , [ 1256961600000 , 119.21420882198] , [ 1259557200000 , 139.32979337027] , [ 1262235600000 , 149.71606246357] , [ 1264914000000 , 144.42340669795] , [ 1267333200000 , 161.64446359053] , [ 1270008000000 , 180.23071774437] , [ 1272600000000 , 199.09511476051] , [ 1275278400000 , 180.10778306442] , [ 1277870400000 , 158.50237284410] , [ 1280548800000 , 177.57353623850] , [ 1283227200000 , 162.91091118751] , [ 1285819200000 , 183.41053361910] , [ 1288497600000 , 194.03065670573] , [ 1291093200000 , 201.23297214328] , [ 1293771600000 , 222.60154078445] , [ 1296450000000 , 233.35556801977] , [ 1298869200000 , 231.22452435045] , [ 1301544000000 , 237.84432503045] , [ 1304136000000 , 235.55799131184] , [ 1306814400000 , 232.11873570751] , [ 1309406400000 , 226.62381538123] , [ 1312084800000 , 219.34811113539] , [ 1314763200000 , 198.69242285581] , [ 1317355200000 , 168.90235629066] , [ 1320033600000 , 202.64725756733] , [ 1322629200000 , 203.05389378105] , [ 1325307600000 , 204.85986680865] , [ 1327986000000 , 229.77085616585] , [ 1330491600000 , 239.65202435959] , [ 1333166400000 , 242.33012622734] , [ 1335758400000 , 234.11773262149] , [ 1338436800000 , 221.47846307887] , [ 1341028800000 , 216.98308827912] , [ 1343707200000 , 218.37781386755] , [ 1346385600000 , 229.39368622736] , [ 1348977600000 , 230.54656412916] , [ 1351656000000 , 243.06087025523] , [ 1354251600000 , 244.24733578385]]
- },
- {
- key: "S&P 1500",
- values: [ [ 1083297600000 , -1.7798428181819] , [ 1085976000000 , -0.36883324836999] , [ 1088568000000 , 1.7312581046040] , [ 1091246400000 , -1.8356125950460] , [ 1093924800000 , -1.5396564170877] , [ 1096516800000 , -0.16867791409247] , [ 1099195200000 , 1.3754263993413] , [ 1101790800000 , 5.8171640898041] , [ 1104469200000 , 9.4350145241608] , [ 1107147600000 , 6.7649081510160] , [ 1109566800000 , 9.1568499314776] , [ 1112245200000 , 7.2485090994419] , [ 1114833600000 , 4.8762222306595] , [ 1117512000000 , 8.5992339354652] , [ 1120104000000 , 9.0896517982086] , [ 1122782400000 , 13.394644048577] , [ 1125460800000 , 12.311842010760] , [ 1128052800000 , 13.221003650717] , [ 1130734800000 , 11.218481009206] , [ 1133326800000 , 15.565352598445] , [ 1136005200000 , 15.623703865926] , [ 1138683600000 , 19.275255326383] , [ 1141102800000 , 19.432433717836] , [ 1143781200000 , 21.232881244655] , [ 1146369600000 , 22.798299192958] , [ 1149048000000 , 19.006125095476] , [ 1151640000000 , 19.151889158536] , [ 1154318400000 , 19.340022855452] , [ 1156996800000 , 22.027934841859] , [ 1159588800000 , 24.903300681329] , [ 1162270800000 , 29.146492833877] , [ 1164862800000 , 31.781626082589] , [ 1167541200000 , 33.358770738428] , [ 1170219600000 , 35.622684613497] , [ 1172638800000 , 33.332821711366] , [ 1175313600000 , 34.878748635832] , [ 1177905600000 , 40.582332613844] , [ 1180584000000 , 45.719535502920] , [ 1183176000000 , 43.239344722386] , [ 1185854400000 , 38.550955100342] , [ 1188532800000 , 40.585368816283] , [ 1191124800000 , 45.601374057981] , [ 1193803200000 , 48.051404337892] , [ 1196398800000 , 41.582581696032] , [ 1199077200000 , 40.650580792748] , [ 1201755600000 , 32.252222066493] , [ 1204261200000 , 28.106390258553] , [ 1206936000000 , 27.532698196687] , [ 1209528000000 , 33.986390463852] , [ 1212206400000 , 36.302660526438] , [ 1214798400000 , 25.015574480172] , [ 1217476800000 , 23.989494069029] , [ 1220155200000 , 25.934351445531] , [ 1222747200000 , 14.627592011699] , [ 1225425600000 , -5.2249403809749] , [ 1228021200000 , -12.330933408050] , [ 1230699600000 , -11.000291508188] , [ 1233378000000 , -18.563864948088] , [ 1235797200000 , -27.213097001687] , [ 1238472000000 , -20.834133840523] , [ 1241064000000 , -12.717886701719] , [ 1243742400000 , -8.1644613083526] , [ 1246334400000 , -7.9108408918201] , [ 1249012800000 , -0.77002391591209] , [ 1251691200000 , 2.8243816569672] , [ 1254283200000 , 6.8761411421070] , [ 1256961600000 , 4.5060912230294] , [ 1259557200000 , 10.487179794349] , [ 1262235600000 , 13.251375597594] , [ 1264914000000 , 9.2207594803415] , [ 1267333200000 , 12.836276936538] , [ 1270008000000 , 19.816793904978] , [ 1272600000000 , 22.156787167211] , [ 1275278400000 , 12.518039090576] , [ 1277870400000 , 6.4253587440854] , [ 1280548800000 , 13.847372028409] , [ 1283227200000 , 8.5454736090364] , [ 1285819200000 , 18.542801953304] , [ 1288497600000 , 23.037064683183] , [ 1291093200000 , 23.517422401888] , [ 1293771600000 , 31.804723416068] , [ 1296450000000 , 34.778247386072] , [ 1298869200000 , 39.584883855230] , [ 1301544000000 , 40.080647664875] , [ 1304136000000 , 44.180050667889] , [ 1306814400000 , 42.533535927221] , [ 1309406400000 , 40.105374449011] , [ 1312084800000 , 37.014659267156] , [ 1314763200000 , 29.263745084262] , [ 1317355200000 , 19.637463417584] , [ 1320033600000 , 33.157645345770] , [ 1322629200000 , 32.895053150988] , [ 1325307600000 , 34.111544824647] , [ 1327986000000 , 40.453985817473] , [ 1330491600000 , 46.435700783313] , [ 1333166400000 , 51.062385488671] , [ 1335758400000 , 50.130448220658] , [ 1338436800000 , 41.035476682018] , [ 1341028800000 , 46.591932296457] , [ 1343707200000 , 48.349391180634] , [ 1346385600000 , 51.913011286919] , [ 1348977600000 , 55.747238313752] , [ 1351656000000 , 52.991824077209] , [ 1354251600000 , 49.556311883284]]
- }
- ];
-
-
-
-
-
- return [
- {
- key: "Series 1",
- values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.743156781239] , [ 1078030800000 , 29.597478802228] , [ 1080709200000 , 30.831697585341] , [ 1083297600000 , 28.054068024708] , [ 1085976000000 , 29.294079423832] , [ 1088568000000 , 30.269264061274] , [ 1091246400000 , 24.934526898906] , [ 1093924800000 , 24.265982759406] , [ 1096516800000 , 27.217794897473] , [ 1099195200000 , 30.802601992077] , [ 1101790800000 , 36.331003758254] , [ 1104469200000 , 43.142498700060] , [ 1107147600000 , 40.558263931958] , [ 1109566800000 , 42.543622385800] , [ 1112245200000 , 41.683584710331] , [ 1114833600000 , 36.375367302328] , [ 1117512000000 , 40.719688980730] , [ 1120104000000 , 43.897963036919] , [ 1122782400000 , 49.797033975368] , [ 1125460800000 , 47.085993935989] , [ 1128052800000 , 46.601972859745] , [ 1130734800000 , 41.567784572762] , [ 1133326800000 , 47.296923737245] , [ 1136005200000 , 47.642969612080] , [ 1138683600000 , 50.781515820954] , [ 1141102800000 , 52.600229204305] , [ 1143781200000 , 55.599684490628] , [ 1146369600000 , 57.920388436633] , [ 1149048000000 , 53.503593218971] , [ 1151640000000 , 53.522973979964] , [ 1154318400000 , 49.846822298548] , [ 1156996800000 , 54.721341614650] , [ 1159588800000 , 58.186236223191] , [ 1162270800000 , 63.908065540997] , [ 1164862800000 , 69.767285129367] , [ 1167541200000 , 72.534013373592] , [ 1170219600000 , 77.991819436573] , [ 1172638800000 , 78.143584404990] , [ 1175313600000 , 83.702398665233] , [ 1177905600000 , 91.140859312418] , [ 1180584000000 , 98.590960607028] , [ 1183176000000 , 96.245634754228] , [ 1185854400000 , 92.326364432615] , [ 1188532800000 , 97.068765332230] , [ 1191124800000 , 105.81025556260] , [ 1193803200000 , 114.38348777791] , [ 1196398800000 , 103.59604949810] , [ 1199077200000 , 101.72488429307] , [ 1201755600000 , 89.840147735028] , [ 1204261200000 , 86.963597532664] , [ 1206936000000 , 84.075505208491] , [ 1209528000000 , 93.170105645831] , [ 1212206400000 , 103.62838083121] , [ 1214798400000 , 87.458241365091] , [ 1217476800000 , 85.808374141319] , [ 1220155200000 , 93.158054469193] , [ 1222747200000 , 65.973252382360] , [ 1225425600000 , 44.580686638224] , [ 1228021200000 , 36.418977140128] , [ 1230699600000 , 38.727678144761] , [ 1233378000000 , 36.692674173387] , [ 1235797200000 , 30.033022809480] , [ 1238472000000 , 36.707532162718] , [ 1241064000000 , 52.191457688389] , [ 1243742400000 , 56.357883979735] , [ 1246334400000 , 57.629002180305] , [ 1249012800000 , 66.650985790166] , [ 1251691200000 , 70.839243432186] , [ 1254283200000 , 78.731998491499] , [ 1256961600000 , 72.375528540349] , [ 1259557200000 , 81.738387881630] , [ 1262235600000 , 87.539792394232] , [ 1264914000000 , 84.320762662273] , [ 1267333200000 , 90.621278391889] , [ 1270008000000 , 102.47144881651] , [ 1272600000000 , 102.79320353429] , [ 1275278400000 , 90.529736050479] , [ 1277870400000 , 76.580859994531] , [ 1280548800000 , 86.548979376972] , [ 1283227200000 , 81.879653334089] , [ 1285819200000 , 101.72550015956] , [ 1288497600000 , 107.97964852260] , [ 1291093200000 , 106.16240630785] , [ 1293771600000 , 114.84268599533] , [ 1296450000000 , 121.60793322282] , [ 1298869200000 , 133.41437346605] , [ 1301544000000 , 125.46646042904] , [ 1304136000000 , 129.76784954301] , [ 1306814400000 , 128.15798861044] , [ 1309406400000 , 121.92388706072] , [ 1312084800000 , 116.70036100870] , [ 1314763200000 , 88.367701837033] , [ 1317355200000 , 59.159665765725] , [ 1320033600000 , 79.793568139753] , [ 1322629200000 , 75.903834028417] , [ 1325307600000 , 72.704218209157] , [ 1327986000000 , 84.936990804097] , [ 1330491600000 , 93.388148670744]]
- },
- {
- key: "Series 2",
- values: [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , -0.049184266875945] , [ 1078030800000 , -0.10757569491991] , [ 1080709200000 , -0.075601531307242] , [ 1083297600000 , -0.061245277988149] , [ 1085976000000 , -0.068227316401169] , [ 1088568000000 , -0.11242758058502] , [ 1091246400000 , -0.074848439408270] , [ 1093924800000 , -0.11465623676497] , [ 1096516800000 , -0.24370633342416] , [ 1099195200000 , -0.21523268478893] , [ 1101790800000 , -0.37859370911822] , [ 1104469200000 , -0.41932884345151] , [ 1107147600000 , -0.45393735984802] , [ 1109566800000 , -0.50868179522598] , [ 1112245200000 , -0.48164396881207] , [ 1114833600000 , -0.41605962887194] , [ 1117512000000 , -0.48490348490240] , [ 1120104000000 , -0.55071036101311] , [ 1122782400000 , -0.67489170505394] , [ 1125460800000 , -0.74978070939342] , [ 1128052800000 , -0.86395050745343] , [ 1130734800000 , -0.78524898506764] , [ 1133326800000 , -0.99800440950854] , [ 1136005200000 , -1.1177951153878] , [ 1138683600000 , -1.4119975432964] , [ 1141102800000 , -1.2409959736465] , [ 1143781200000 , -1.3088936375431] , [ 1146369600000 , -1.5495785469683] , [ 1149048000000 , -1.1563414981293] , [ 1151640000000 , -0.87192471725994] , [ 1154318400000 , -0.84073995183442] , [ 1156996800000 , -0.88761892867370] , [ 1159588800000 , -0.81748513917485] , [ 1162270800000 , -1.2874081041274] , [ 1164862800000 , -1.9234702981339] , [ 1167541200000 , -1.8377768147648] , [ 1170219600000 , -2.7107654031830] , [ 1172638800000 , -2.6493268125418] , [ 1175313600000 , -3.0814553134551] , [ 1177905600000 , -3.8509837783574] , [ 1180584000000 , -5.2919167850718] , [ 1183176000000 , -5.2297750650773] , [ 1185854400000 , -3.9335668501451] , [ 1188532800000 , -2.3695525190114] , [ 1191124800000 , -2.3084243151854] , [ 1193803200000 , -3.0753680726738] , [ 1196398800000 , -2.2346609938962] , [ 1199077200000 , -3.0598810361615] , [ 1201755600000 , -1.8410154270386] , [ 1204261200000 , -1.6479442038620] , [ 1206936000000 , -1.9293858622780] , [ 1209528000000 , -3.0769590460943] , [ 1212206400000 , -4.2423933501421] , [ 1214798400000 , -2.6951491617768] , [ 1217476800000 , -2.8981825939957] , [ 1220155200000 , -2.9662727940324] , [ 1222747200000 , 0.21556750497498] , [ 1225425600000 , 2.6784995167088] , [ 1228021200000 , 4.1296711248958] , [ 1230699600000 , 3.7311068218734] , [ 1233378000000 , 4.7695330866954] , [ 1235797200000 , 5.1919133040990] , [ 1238472000000 , 4.1025856045660] , [ 1241064000000 , 2.8498939666225] , [ 1243742400000 , 2.8106017222851] , [ 1246334400000 , 2.8456526669963] , [ 1249012800000 , 0.65563070754298] , [ 1251691200000 , -0.30022343874633] , [ 1254283200000 , -1.1600358228964] , [ 1256961600000 , -0.26674408835052] , [ 1259557200000 , -1.4693389757812] , [ 1262235600000 , -2.7855421590594] , [ 1264914000000 , -1.2668244065703] , [ 1267333200000 , -2.5537804115548] , [ 1270008000000 , -4.9144552474502] , [ 1272600000000 , -6.0484408234831] , [ 1275278400000 , -3.3834349033750] , [ 1277870400000 , -0.46752826932523] , [ 1280548800000 , -1.8030186027963] , [ 1283227200000 , -0.99623230097881] , [ 1285819200000 , -3.3475370235594] , [ 1288497600000 , -3.8187026520342] , [ 1291093200000 , -4.2354146250353] , [ 1293771600000 , -5.6795404292885] , [ 1296450000000 , -6.2928665328172] , [ 1298869200000 , -6.8549277434419] , [ 1301544000000 , -6.9925308360918] , [ 1304136000000 , -8.3216548655839] , [ 1306814400000 , -7.7682867271435] , [ 1309406400000 , -6.9244213301058] , [ 1312084800000 , -5.7407624451404] , [ 1314763200000 , -2.1813149077927] , [ 1317355200000 , 2.9407596325999] , [ 1320033600000 , -1.1130607112134] , [ 1322629200000 , -2.0274822307752] , [ 1325307600000 , -1.8372559072154] , [ 1327986000000 , -4.0732815531148] , [ 1330491600000 , -6.4417038470291]]
- },
- {
- key: "Series 3",
- values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.693972514363] , [ 1078030800000 , 29.489903107308] , [ 1080709200000 , 30.756096054034] , [ 1083297600000 , 27.992822746720] , [ 1085976000000 , 29.225852107431] , [ 1088568000000 , 30.156836480689] , [ 1091246400000 , 24.859678459498] , [ 1093924800000 , 24.151326522641] , [ 1096516800000 , 26.974088564049] , [ 1099195200000 , 30.587369307288] , [ 1101790800000 , 35.952410049136] , [ 1104469200000 , 42.723169856608] , [ 1107147600000 , 40.104326572110] , [ 1109566800000 , 42.034940590574] , [ 1112245200000 , 41.201940741519] , [ 1114833600000 , 35.959307673456] , [ 1117512000000 , 40.234785495828] , [ 1120104000000 , 43.347252675906] , [ 1122782400000 , 49.122142270314] , [ 1125460800000 , 46.336213226596] , [ 1128052800000 , 45.738022352292] , [ 1130734800000 , 40.782535587694] , [ 1133326800000 , 46.298919327736] , [ 1136005200000 , 46.525174496692] , [ 1138683600000 , 49.369518277658] , [ 1141102800000 , 51.359233230659] , [ 1143781200000 , 54.290790853085] , [ 1146369600000 , 56.370809889665] , [ 1149048000000 , 52.347251720842] , [ 1151640000000 , 52.651049262704] , [ 1154318400000 , 49.006082346714] , [ 1156996800000 , 53.833722685976] , [ 1159588800000 , 57.368751084016] , [ 1162270800000 , 62.620657436870] , [ 1164862800000 , 67.843814831233] , [ 1167541200000 , 70.696236558827] , [ 1170219600000 , 75.281054033390] , [ 1172638800000 , 75.494257592448] , [ 1175313600000 , 80.620943351778] , [ 1177905600000 , 87.289875534061] , [ 1180584000000 , 93.299043821956] , [ 1183176000000 , 91.015859689151] , [ 1185854400000 , 88.392797582470] , [ 1188532800000 , 94.699212813219] , [ 1191124800000 , 103.50183124741] , [ 1193803200000 , 111.30811970524] , [ 1196398800000 , 101.36138850420] , [ 1199077200000 , 98.665003256909] , [ 1201755600000 , 87.999132307989] , [ 1204261200000 , 85.315653328802] , [ 1206936000000 , 82.146119346213] , [ 1209528000000 , 90.093146599737] , [ 1212206400000 , 99.385987481068] , [ 1214798400000 , 84.763092203314] , [ 1217476800000 , 82.910191547323] , [ 1220155200000 , 90.191781675161] , [ 1222747200000 , 66.188819887335] , [ 1225425600000 , 47.259186154933] , [ 1228021200000 , 40.548648265024] , [ 1230699600000 , 42.458784966634] , [ 1233378000000 , 41.462207260082] , [ 1235797200000 , 35.224936113579] , [ 1238472000000 , 40.810117767284] , [ 1241064000000 , 55.041351655012] , [ 1243742400000 , 59.168485702020] , [ 1246334400000 , 60.474654847301] , [ 1249012800000 , 67.306616497709] , [ 1251691200000 , 70.539019993440] , [ 1254283200000 , 77.571962668603] , [ 1256961600000 , 72.108784451998] , [ 1259557200000 , 80.269048905849] , [ 1262235600000 , 84.754250235173] , [ 1264914000000 , 83.053938255703] , [ 1267333200000 , 88.067497980334] , [ 1270008000000 , 97.556993569060] , [ 1272600000000 , 96.744762710807] , [ 1275278400000 , 87.146301147104] , [ 1277870400000 , 76.113331725206] , [ 1280548800000 , 84.745960774176] , [ 1283227200000 , 80.883421033110] , [ 1285819200000 , 98.377963136001] , [ 1288497600000 , 104.16094587057] , [ 1291093200000 , 101.92699168281] , [ 1293771600000 , 109.16314556604] , [ 1296450000000 , 115.31506669000] , [ 1298869200000 , 126.55944572261] , [ 1301544000000 , 118.47392959295] , [ 1304136000000 , 121.44619467743] , [ 1306814400000 , 120.38970188330] , [ 1309406400000 , 114.99946573061] , [ 1312084800000 , 110.95959856356] , [ 1314763200000 , 86.186386929240] , [ 1317355200000 , 62.100425398325] , [ 1320033600000 , 78.680507428540] , [ 1322629200000 , 73.876351797642] , [ 1325307600000 , 70.866962301942] , [ 1327986000000 , 80.863709250982] , [ 1330491600000 , 86.946444823715]]
- },
- {
- key: "Series 4",
- values: [ [ 1025409600000 , -7.0674410638835] , [ 1028088000000 , -14.663359292964] , [ 1030766400000 , -14.104393060540] , [ 1033358400000 , -23.114477037218] , [ 1036040400000 , -16.774256687841] , [ 1038632400000 , -11.902028464000] , [ 1041310800000 , -16.883038668422] , [ 1043989200000 , -19.104223676831] , [ 1046408400000 , -20.420523282736] , [ 1049086800000 , -19.660555051587] , [ 1051675200000 , -13.106911231646] , [ 1054353600000 , -8.2448460302143] , [ 1056945600000 , -7.0313058730976] , [ 1059624000000 , -5.1485118700389] , [ 1062302400000 , -3.0011028761469] , [ 1064894400000 , -4.1367265281467] , [ 1067576400000 , 1.5425209565025] , [ 1070168400000 , 2.7673533607299] , [ 1072846800000 , 7.7077114755360] , [ 1075525200000 , 9.7565015112434] , [ 1078030800000 , 11.396888609473] , [ 1080709200000 , 10.013964745578] , [ 1083297600000 , 8.0558890950562] , [ 1085976000000 , 9.6081966657458] , [ 1088568000000 , 11.918590426432] , [ 1091246400000 , 7.9945345523982] , [ 1093924800000 , 8.3201276776796] , [ 1096516800000 , 9.8283954846342] , [ 1099195200000 , 11.527125859650] , [ 1101790800000 , 16.413657596527] , [ 1104469200000 , 20.393798297928] , [ 1107147600000 , 17.456308413907] , [ 1109566800000 , 20.087778400999] , [ 1112245200000 , 17.988336990817] , [ 1114833600000 , 15.378490151331] , [ 1117512000000 , 19.474322935730] , [ 1120104000000 , 20.013851070354] , [ 1122782400000 , 24.749943726975] , [ 1125460800000 , 23.558710274826] , [ 1128052800000 , 24.558915040889] , [ 1130734800000 , 22.355860488034] , [ 1133326800000 , 27.138026265756] , [ 1136005200000 , 27.202220808591] , [ 1138683600000 , 31.219437344964] , [ 1141102800000 , 31.392355525125] , [ 1143781200000 , 33.373099232542] , [ 1146369600000 , 35.095277582309] , [ 1149048000000 , 30.923356507615] , [ 1151640000000 , 31.083717332561] , [ 1154318400000 , 31.290690671561] , [ 1156996800000 , 34.247769216679] , [ 1159588800000 , 37.411073177620] , [ 1162270800000 , 42.079177096411] , [ 1164862800000 , 44.978191659648] , [ 1167541200000 , 46.713271025310] , [ 1170219600000 , 49.203892437699] , [ 1172638800000 , 46.684723471826] , [ 1175313600000 , 48.385458973500] , [ 1177905600000 , 54.660197840305] , [ 1180584000000 , 60.311838415602] , [ 1183176000000 , 57.583282204682] , [ 1185854400000 , 52.425398898751] , [ 1188532800000 , 54.663538086985] , [ 1191124800000 , 60.181844325224] , [ 1193803200000 , 62.877219773621] , [ 1196398800000 , 55.760611512951] , [ 1199077200000 , 54.735280367784] , [ 1201755600000 , 45.495912959474] , [ 1204261200000 , 40.934919015876] , [ 1206936000000 , 40.303777633187] , [ 1209528000000 , 47.403740368773] , [ 1212206400000 , 49.951960898839] , [ 1214798400000 , 37.534590035098] , [ 1217476800000 , 36.405758293321] , [ 1220155200000 , 38.545373001858] , [ 1222747200000 , 26.106358664455] , [ 1225425600000 , 4.2658006768744] , [ 1228021200000 , -3.5517839867557] , [ 1230699600000 , -2.0878920761513] , [ 1233378000000 , -10.408879093829] , [ 1235797200000 , -19.924242196038] , [ 1238472000000 , -12.906491912782] , [ 1241064000000 , -3.9774866468346] , [ 1243742400000 , 1.0319171601402] , [ 1246334400000 , 1.3109350357718] , [ 1249012800000 , 9.1668309061935] , [ 1251691200000 , 13.121178985954] , [ 1254283200000 , 17.578680237511] , [ 1256961600000 , 14.971294355085] , [ 1259557200000 , 21.551327027338] , [ 1262235600000 , 24.592328423819] , [ 1264914000000 , 20.158087829555] , [ 1267333200000 , 24.135661929185] , [ 1270008000000 , 31.815205405903] , [ 1272600000000 , 34.389524768466] , [ 1275278400000 , 23.785555857522] , [ 1277870400000 , 17.082756649072] , [ 1280548800000 , 25.248007727100] , [ 1283227200000 , 19.415179069165] , [ 1285819200000 , 30.413636349327] , [ 1288497600000 , 35.357952964550] , [ 1291093200000 , 35.886413535859] , [ 1293771600000 , 45.003601951959] , [ 1296450000000 , 48.274893564020] , [ 1298869200000 , 53.562864914648] , [ 1301544000000 , 54.108274337412] , [ 1304136000000 , 58.618190111927] , [ 1306814400000 , 56.806793965598] , [ 1309406400000 , 54.135477252994] , [ 1312084800000 , 50.735258942442] , [ 1314763200000 , 42.208170945813] , [ 1317355200000 , 31.617916826724] , [ 1320033600000 , 46.492005006737] , [ 1322629200000 , 46.203116922145] , [ 1325307600000 , 47.541427643137] , [ 1327986000000 , 54.518998440993] , [ 1330491600000 , 61.099720234693]]
- }
- ]
-
- /*
- .map(function(line) {
- line.values = line.values.map(function(d) { return {x: d[0], y: d[1]/100 }});
- return line;
- });
- */
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html
deleted file mode 100755
index 5381f363..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 svg{
- height: 500px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 10px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1">
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/discreteBar.js"></script>
-<script src="../src/models/discreteBarChart.js"></script>
-<script>
-
-
-
-
-
-historicalBarChart = [
- {
- key: "Cumulative Return",
- values: [
- {
- "label" : "A" ,
- "value" : 29.765957771107
- } ,
- {
- "label" : "B" ,
- "value" : 0
- } ,
- {
- "label" : "C" ,
- "value" : 32.807804682612
- } ,
- {
- "label" : "D" ,
- "value" : 196.45946739256
- } ,
- {
- "label" : "E" ,
- "value" : 0.19434030906893
- } ,
- {
- "label" : "F" ,
- "value" : 98.079782601442
- } ,
- {
- "label" : "G" ,
- "value" : 13.925743130903
- } ,
- {
- "label" : "H" ,
- "value" : 5.1387322875705
- }
- ]
- }
-];
-
-
-
-
-nv.addGraph(function() {
- var chart = nv.models.discreteBarChart()
- .x(function(d) { return d.label })
- .y(function(d) { return d.value })
- .staggerLabels(true)
- //.staggerLabels(historicalBarChart[0].values.length > 8)
- .tooltips(false)
- .showValues(true)
- .transitionDuration(250)
- ;
-
- d3.select('#chart1 svg')
- .datum(historicalBarChart)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html
deleted file mode 100755
index 49a075a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/utils.js"></script>
-
-<script>
-
-
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.historicalBar()
- .padData(true)
- .width(width)
- .height(height);
-
- d3.select("#test1")
- .attr('width', width)
- .attr('height', height)
- .datum(sinData())
- .transition()
- .call(chart);
-
- return chart;
- },
- callback: function(graph) {
-
- graph.dispatch.on('elementMouseover', function(e) {
- var offsetElement = document.getElementById("chart"),
- left = e.pos[0],
- top = e.pos[1];
-
- /*
- var content = '<h3>' + e.label + '</h3>' +
- '<p>' +
- e.value +
- '</p>';
- */
-
- var content = '<p>' + e.point.y + '</p>';
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
- });
-
- graph.dispatch.on('elementMouseout', function(e) {
- nv.tooltip.cleanup();
- });
-
- /*
- graph.dispatch.on('elementClick', function(e) {
- console.log("Bar Click",e);
- });
-
- graph.dispatch.on('chartClick', function(e) {
- console.log("Chart Click",e);
- });
-
- graph.dispatch.on('chartClick', function(e) {
- console.log('Click Switching to');
- if (td === 0) {
- d3.select("#test1")
- .datum(testdata2)
- .call(graph);
- td = 1;
-
- } else {
- d3.select("#test1")
- .datum(testdata)
- .call(graph);
- td = 0;
- }
- });
- */
-
-
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- graph
- .width(width)
- .height(height)
-
- d3.select("#test1")
- .attr('width', width)
- .attr('height', height)
- .call(graph);
- };
- }
-});
-
-
-
-
-
-//Simple test data generators
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-function sinData() {
- var sin = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- }
- ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html
deleted file mode 100755
index c196391c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<div style="width: 100%; height: 400px;">
-<svg id="test1"></svg>
-</div>
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/historicalBarChart.js"></script>
-<script src="../src/utils.js"></script>
-
-<script>
-
-var chart;
-nv.addGraph(function() {
- chart = nv.models.historicalBarChart();
- chart
- .margin({left: 100, bottom: 100})
- .x(function(d,i) { return i })
- .transitionDuration(250)
- ;
-
- // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
- chart.xAxis
- .axisLabel("Time (s)")
- .tickFormat(d3.format(',.1f'));
-
- chart.yAxis
- .axisLabel('Voltage (v)')
- .tickFormat(d3.format(',.2f'));
-
- chart.showXAxis(true);
-
- d3.select('#test1')
- .datum(sinData())
- .transition().duration(0)
- .call(chart);
-
- //TODO: Figure out a good way to do this automatically
- nv.utils.windowResize(chart.update);
- //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-
-//Simple test data generators
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-function sinData() {
- var sin = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- }
- ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html
deleted file mode 100755
index 8c49bdbe..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
- /*
-* {
- margin: 0;
- padding: 0;
- border: 0;
-}
-*/
-
-
-body {
- font-family: sans-serif;
-}
-
-svg {
- top: 10px;
- left: 10px;
- position: absolute;
-}
-
-svg > g > path {
- pointer-events: none;
-}
-
-.nv-horizonBackground {
- fill: none;
- stroke: none;
- pointer-events: all;
-}
-
-#horizon-controls {
- position: absolute;
- width: 940px;
- padding: 10px;
- z-index: 1;
-}
-
-#horizon-bands {
- float: right;
-}
-
-
-</style>
-<body>
-
- <div id="wrap">
-
- <div id="horizon-controls">
- <input name="mode" type="radio" value="mirror" id="horizon-mode-mirror" checked><label for="horizon-mode-mirror"> Mirror</label>
- <input name="mode" type="radio" value="offset" id="horizon-mode-offset"><label for="horizon-mode-offset"> Offset</label>
- <span id="horizon-bands"><span id="horizon-bands-value">1</span> <button class="first">&#x2212;</button><button class="last">+</button></span>
- </div>
- <div><svg id="chart1"></svg></div>
-
- </div>
-
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../lib/horizon.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-
-//TODO: create a nv.models.horizonChart model
-// (if need be an nv.models.horizon model as well, but might get away with just using d3.horizon)
-// the horizontChart model should have a "tooltip" like functionality that shows a point over the
-// current value based on the mouse's x position
-
-var width = 960,
- height = 300;
-
-nv.addGraph(function() {
- var data = sine();
-
- var chart = d3.horizon()
- .width(width)
- .height(height)
- .bands(1)
- .mode("mirror")
- .interpolate("basis");
-
- var svg = d3.select('#chart1').attr('width', width).attr('height', height);
-
- var bg = svg.append('rect').attr('class', 'nv-horizonBackground').attr('height', height).attr('width', width);
-
- svg.datum(data).call(chart);
-
- var point = svg.append('circle').attr('class', 'nv-hoverPoint')
- .attr('r', '4')
- .attr('cx', -3)
- .attr('cy', -3);
-
- // Enable mode buttons.
- d3.selectAll("#horizon-controls input[name=mode]").on("change", function() {
- svg.call(chart.duration(0).mode(this.value));
- });
-
- // Enable bands buttons.
- d3.selectAll("#horizon-bands button").data([-1, 1]).on("click", function(d) {
- var n = Math.max(1, chart.bands() + d);
- d3.select("#horizon-bands-value").text(n);
- svg.call(chart.duration(1000).bands(n).height(height / n));
-
- //just updating point temporarily here to have it not be visible on band change until user moves his mouse over the chart
- point
- .attr('cx', -3)
- .attr('cy', -3)
- });
-
-
- //****THE CHANGES MADE TO THIS EXAMPLE BY ME ARE VERY UGLY.... TODO: Fix/Clean up after all functionality is correct
- bg.on('mousemove', function() {
- var m1 = d3.mouse(this);
- var x = m1[0];
- var scales = svg.node().__chart__;
- var i = Math.round( scales.x.invert(x) );
- //var y = (data[i][1] < 0 || chart.mode() == 'mirror' ? height : 0) - scales.y(chart.mode() == 'mirror' ? Math.abs(data[i][1]) : data[i][1] );
- var y = height - scales.y(chart.mode() == 'mirror' ? Math.abs(data[i][1]) : data[i][1] ) - (chart.mode() == 'offset' && data[i][1] < 0 ? height : 0 );
- var t = scales.t(data[i][1]);
- var bandRange = scales.y.range()[1];
-
- y = y % (height / chart.bands());
- //nv.log(y, height, y % height);
-
- //nv.log(scales.y.range(), scales.y.domain());
-
- //nv.log( x, i, data[i], y )
- //nv.log(scales);
-
- point
- .attr('cx', scales.x(i))
- .attr('cy', y)
- .attr('transform',
- 'translate(0,' + chart.bands + ')'
- );
-
- //var m2 = d3.mouse(d3.select('body').node());
- //nv.log(m1, m2);
- //nv.log(d3.event, this, d3.mouse(this));
- });
-
- return chart;
-});
-
-
-
-function sine() {
- var sin = [];
-
- for (var i = 0; i < 200; i++) {
- sin.push([ i, Math.sin(i/10) + .2 ]);
- }
-
- return sin;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.png b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.png
deleted file mode 100755
index f1e6768d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.png b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.png
deleted file mode 100755
index 10b73a51..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.png b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.png
deleted file mode 100755
index 05d7ef2a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.png
+++ /dev/null
Binary files differ
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html
deleted file mode 100755
index a5a1a06a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-</style>
-<body>
-
- <div id="example1" style="width:600px"></div>
-
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/indentedTree.js"></script>
-<script>
-
-// THIS API WILL BE CHANGING!! this was ported from a different graphing collection, its only been halfway ported to the nvd3 style
-
-var testTree = [{
- key: 'NVD3',
- url: 'http://novus.github.com/nvd3',
- values: [
- {
- key: "Charts",
- _values: [
- {
- key: "Simple Line",
- type: "Historical",
- url: "http://novus.github.com/nvd3/ghpages/line.html"
- },
- {
- key: "Scatter / Bubble",
- type: "Snapshot",
- url: "http://novus.github.com/nvd3/ghpages/scatter.html"
- },
- {
- key: "Stacked / Stream / Expanded Area",
- type: "Historical",
- url: "http://novus.github.com/nvd3/ghpages/stackedArea.html"
- },
- {
- key: "Discrete Bar",
- type: "Snapshot",
- url: "http://novus.github.com/nvd3/ghpages/discreteBar.html"
- },
- {
- key: "Grouped / Stacked Multi-Bar",
- type: "Snapshot / Historical",
- url: "http://novus.github.com/nvd3/ghpages/multiBar.html"
- },
- {
- key: "Horizontal Grouped Bar",
- type: "Snapshot",
- url: "http://novus.github.com/nvd3/ghpages/multiBarHorizontal.html"
- },
- {
- key: "Line and Bar Combo",
- type: "Historical",
- url: "http://novus.github.com/nvd3/ghpages/linePlusBar.html"
- },
- {
- key: "Cumulative Line",
- type: "Historical",
- url: "http://novus.github.com/nvd3/ghpages/cumulativeLine.html"
- },
- {
- key: "Line with View Finder",
- type: "Historical",
- url: "http://novus.github.com/nvd3/ghpages/lineWithFocus.html"
- }
- ]
- },
- {
- key: "Chart Components",
- _values: [
- {
- key: "Legend",
- type: "Universal",
- url: "http://novus.github.com/nvd3/examples/legend.html"
- }
- ]
- }
- ]
-}];
-
-
-
-var testColumns = [
- {
- key: 'key',
- label: 'Name',
- showCount: true,
- width: '75%',
- type: 'text',
- classes: function(d) { return d.url ? 'clickable name' : 'name' },
- click: function(d) {
- if (d.url) window.location.href = d.url;
- }
- },
- {
- key: 'type',
- label: 'Type',
- width: '25%',
- type: 'text'
- }
-];
-
-
-
-nv.addGraph(function() {
- var chart = nv.models.indentedTree()
- .columns(testColumns);
-
- d3.select('#example1')
- .datum(testTree)
- .call(chart);
-});
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html
deleted file mode 100755
index 65892485..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>
-<title>NVD3 Examples List</title>
-<body>
-<style>
-body {
- font-family: Helvetica;
- /* IE10 Consumer Preview */
- background-image: -ms-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
- /* Mozilla Firefox */
- background-image: -moz-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
- /* Opera */
- background-image: -o-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
- /* Webkit (Safari/Chrome 10) */
- background-image: -webkit-gradient(radial, left top, 0, left top, 1012, color-stop(0, #FFFFFF), color-stop(1, #DEE2FF));
-
- /* Webkit (Chrome 11+) */
- background-image: -webkit-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
- /* W3C Markup, IE10 Release Preview */
- background-image: radial-gradient(circle farthest-corner at left top, #FFFFFF 0%, #DEE2FF 100%);
-}
-
-ul {
- list-style: none;
- float: left;
- margin-right: 20px;
- border-right: solid 1px #ccc;
-}
-
-li {
- padding: 8px;
- min-width: 220px;
-}
-
-a {
- text-decoration: none;
- display:block;
-}
-
-li:hover {
- background-color: #ccc;
-}
-</style>
-<h2>NVD3 Examples List</h2>
-<ul>
-<li><a href="bullet.html">Bullet</a>
-<li><a href="bulletChart.html">BulletChart</a>
-<li><a href="crossfilter.html">Crossfilter</a>
-<li><a href="crossfilterWithDimentions.html">CrossfilterWithDimentions</a>
-<li><a href="crossfilterWithTables.html">CrossfilterWithTables</a>
-<li><a href="cumulativeLineChart.html">CumulativeLineChart</a>
-<li><a href="discreteBarChart.html">DiscreteBarChart</a>
-<li><a href="historicalBar.html">HistoricalBar</a>
-<li><a href="historicalBarChart.html">HistoricalBarChart</a>
-<li><a href="horizon.html">Horizon</a>
-<li><a href="indentedtree.html">Indentedtree</a>
-<li><a href="legend.html">Legend</a>
-<li><a href="line.html">Line</a>
-<li><a href="lineChart.html">LineChart</a>
-<li><a href="lineChartSVGResize.html">LineChartSVGResize</a>
-<li><a href="linePlusBarChart.html">LinePlusBarChart</a>
-<li><a href="linePlusBarWithFocusChart.html">LinePlusBarWithFocusChart</a>
-<li><a href="lineWithFisheyeChart.html">LineWithFisheyeChart</a>
-<li><a href="lineWithFocusChart.html">LineWithFocusChart</a>
-</ul>
-<ul>
-<li><a href="multiBar.html">MultiBar</a>
-<li><a href="multiBarChart.html">MultiBarChart</a>
-<li><a href="multiBarHorizontalChart.html">MultiBarHorizontalChart</a>
-<li><a href="multiChart.html">MultiChart</a>
-<li><a href="parallelCoordinates.html">ParallelCoordinates</a>
-<li><a href="pie.html">Pie</a>
-<li><a href="pieChart.html">PieChart</a>
-<li><a href="scatter.html">Scatter</a>
-<li><a href="scatterChart.html">ScatterChart</a>
-<li><a href="scatterPlusLineChart.html">ScatterPlusLineChart</a>
-<li><a href="sparkline.html">Sparkline</a>
-<li><a href="sparklinePlus.html">SparklinePlus</a>
-<li><a href="stackedArea.html">StackedArea</a>
-<li><a href="stackedAreaChart.html">StackedAreaChart</a>
-</ul>
-
-<ul>
- <strong>Test pages</strong>
- <li><a href="../test/lineChartTest.html">Line Chart</a></li>
- <li><a href="../test/pieChartTest.html">Pie Chart</a></li>
- <li><a href="../test/ScatterChartTest.html">Scatter Chart</a></li>
- <li><a href="../test/stackedAreaChartTest.html">Stacked Area Chart</a></li>
- <li><a href="../test/multiBarChartTest.html">Multibar Chart</a></li>
- <li><a href="../test/polylinearTest.html">Polylinear Scale Line Chart</a></li>
- <li><a href="../test/realTimeChartTest.html">Real Time Chart</a></li>
-</ul>
-</body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html
deleted file mode 100755
index b5211ab0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script>
-
-
-//Format A
-nv.addGraph({
- generate: function() {
- var width = 500,
- height = 20;
-
- var chart = nv.models.legend()
- .width(width)
- .height(height);
-
- chart.dispatch.on('legendClick', function(d,i) { console.log(d,i) });
-
- //chart.xaxis.tickFormat(d3.format(".02f"))
-
- d3.select('#test1')
- .attr('width', width)
- .attr('height', height)
- .datum(sinAndCos())
- .call(chart);
-
- return chart;
- },
- callback: function(graph) {
- var chart = graph,
- height = chart.height();
-
- d3.select('#test1')
- .attr('height', height)
- .call(chart)
- }
-});
-
-
-
-function sinAndCos() {
- return [
- {
- key: "Sine Wave"
- },
- {
- key: "A Very Long Series Label"
- },
- {
- key: "A Very Long Series Label"
- },
- {
- key: "A Very Long Series Label"
- },
- {
- key: "Cosine Wave"
- },
- {
- key: "Another test label"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html
deleted file mode 100755
index 917437e3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-
-
-//Format A
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.line()
- .width(width)
- .height(height)
- .margin({top: 20, right: 20, bottom: 20, left: 20})
-
-
- d3.select('#test1')
- .attr('width', width)
- .attr('height', height)
- .datum(sinAndCos())
- .call(chart);
-
- return chart;
- },
- callback: function(graph) {
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40,
- margin = graph.margin();
-
-
- if (width < margin.left + margin.right + 20)
- width = margin.left + margin.right + 20;
-
- if (height < margin.top + margin.bottom + 20)
- height = margin.top + margin.bottom + 20;
-
-
- graph
- .width(width)
- .height(height);
-
- d3.select('#test1')
- .attr('width', width)
- .attr('height', height)
- .call(graph);
- };
- }
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html
deleted file mode 100755
index 5e6e56d5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 svg {
- height: 500px;
- min-width: 200px;
- min-height: 100px;
-/*
- margin: 50px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-
-}
-#chart1 {
- margin-top: 200px;
- margin-left: 100px;
-}
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<div id="chart1" >
- <svg style="height: 500px;"></svg>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-
-<script>
-// Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs, and may do more in the future... it's NOT required
-var chart;
-
-nv.addGraph(function() {
- chart = nv.models.lineChart()
- .options({
- margin: {left: 100, bottom: 100},
- x: function(d,i) { return i},
- showXAxis: true,
- showYAxis: true,
- transitionDuration: 250
- })
- ;
-
- // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
- chart.xAxis
- .axisLabel("Time (s)")
- .tickFormat(d3.format(',.1f'));
-
- chart.yAxis
- .axisLabel('Voltage (v)')
- .tickFormat(d3.format(',.2f'))
- ;
-
- d3.select('#chart1 svg')
- .datum(sinAndCos())
- .call(chart);
-
- //TODO: Figure out a good way to do this automatically
- nv.utils.windowResize(chart.update);
- //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-function sinAndCos() {
- var sin = [],
- cos = [],
- rand = [],
- rand2 = []
- ;
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: i % 10 == 5 ? null : Math.sin(i/10) }); //the nulls are to show how defined works
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- rand.push({x:i, y: Math.random() / 10});
- rand2.push({x: i, y: Math.cos(i/10) + Math.random() / 10 })
- }
-
- return [
- {
- area: true,
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- },
- {
- values: rand,
- key: "Random Points",
- color: "#2222ff"
- }
- ,
- {
- values: rand2,
- key: "Random Cosine",
- color: "#667711"
- }
- ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html
deleted file mode 100755
index 51d81758..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-</style>
-<body>
- <div id="chartZoom">
- <a href="#" id="zoomIn">Zoom In</a> <a href="#" id="zoomOut">Zoom Out</a>
- </div>
-
- <div id="chart1" class='with-transitions'>
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script>
-
-
-nv.addGraph(function() {
- var chart = nv.models.lineChart();
- var fitScreen = false;
- var width = 600;
- var height = 300;
- var zoom = 1;
-
- chart.useInteractiveGuideline(true);
- chart.xAxis
- .tickFormat(d3.format(',r'));
-
- chart.yAxis
- .axisLabel('Voltage (v)')
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart1 svg')
- .attr('perserveAspectRatio', 'xMinYMid')
- .attr('width', width)
- .attr('height', height)
- .datum(sinAndCos());
-
- setChartViewBox();
- resizeChart();
-
- // These resizes both do the same thing, and require recalculating the chart
- //nv.utils.windowResize(chart.update);
- //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
- nv.utils.windowResize(resizeChart);
-
- d3.select('#zoomIn').on('click', zoomIn);
- d3.select('#zoomOut').on('click', zoomOut);
-
-
- function setChartViewBox() {
- var w = width * zoom,
- h = height * zoom;
-
- chart
- .width(w)
- .height(h);
-
- d3.select('#chart1 svg')
- .attr('viewBox', '0 0 ' + w + ' ' + h)
- .transition().duration(500)
- .call(chart);
- }
-
- function zoomOut() {
- zoom += .25;
- setChartViewBox();
- }
-
- function zoomIn() {
- if (zoom <= .5) return;
- zoom -= .25;
- setChartViewBox();
- }
-
- // This resize simply sets the SVG's dimensions, without a need to recall the chart code
- // Resizing because of the viewbox and perserveAspectRatio settings
- // This scales the interior of the chart unlike the above
- function resizeChart() {
- var container = d3.select('#chart1');
- var svg = container.select('svg');
-
- if (fitScreen) {
- // resize based on container's width AND HEIGHT
- var windowSize = nv.utils.windowSize();
- svg.attr("width", windowSize.width);
- svg.attr("height", windowSize.height);
- } else {
- // resize based on container's width
- var aspect = chart.width() / chart.height();
- var targetWidth = parseInt(container.style('width'));
- svg.attr("width", targetWidth);
- svg.attr("height", Math.round(targetWidth / aspect));
- }
- };
-
-
- return chart;
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10) });
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html
deleted file mode 100755
index 2b6aa15c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 svg {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1" class='with-3d-shadow with-transitions'>
- <svg> </svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/linePlusBarChart.js"></script>
-<script>
-
-
-var testdata = [
- {
- "key" : "Quantity" ,
- "bar": true,
- "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , [ 1141102800000 , 1271000.0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 3899486.0] , [ 1162270800000 , 3899486.0] , [ 1164862800000 , 3899486.0] , [ 1167541200000 , 3564700.0] , [ 1170219600000 , 3564700.0] , [ 1172638800000 , 3564700.0] , [ 1175313600000 , 2648493.0] , [ 1177905600000 , 2648493.0] , [ 1180584000000 , 2648493.0] , [ 1183176000000 , 2522993.0] , [ 1185854400000 , 2522993.0] , [ 1188532800000 , 2522993.0] , [ 1191124800000 , 2906501.0] , [ 1193803200000 , 2906501.0] , [ 1196398800000 , 2906501.0] , [ 1199077200000 , 2206761.0] , [ 1201755600000 , 2206761.0] , [ 1204261200000 , 2206761.0] , [ 1206936000000 , 2287726.0] , [ 1209528000000 , 2287726.0] , [ 1212206400000 , 2287726.0] , [ 1214798400000 , 2732646.0] , [ 1217476800000 , 2732646.0] , [ 1220155200000 , 2732646.0] , [ 1222747200000 , 2599196.0] , [ 1225425600000 , 2599196.0] , [ 1228021200000 , 2599196.0] , [ 1230699600000 , 1924387.0] , [ 1233378000000 , 1924387.0] , [ 1235797200000 , 1924387.0] , [ 1238472000000 , 1756311.0] , [ 1241064000000 , 1756311.0] , [ 1243742400000 , 1756311.0] , [ 1246334400000 , 1743470.0] , [ 1249012800000 , 1743470.0] , [ 1251691200000 , 1743470.0] , [ 1254283200000 , 1519010.0] , [ 1256961600000 , 1519010.0] , [ 1259557200000 , 1519010.0] , [ 1262235600000 , 1591444.0] , [ 1264914000000 , 1591444.0] , [ 1267333200000 , 1591444.0] , [ 1270008000000 , 1543784.0] , [ 1272600000000 , 1543784.0] , [ 1275278400000 , 1543784.0] , [ 1277870400000 , 1309915.0] , [ 1280548800000 , 1309915.0] , [ 1283227200000 , 1309915.0] , [ 1285819200000 , 1331875.0] , [ 1288497600000 , 1331875.0] , [ 1291093200000 , 1331875.0] , [ 1293771600000 , 1331875.0] , [ 1296450000000 , 1154695.0] , [ 1298869200000 , 1154695.0] , [ 1301544000000 , 1194025.0] , [ 1304136000000 , 1194025.0] , [ 1306814400000 , 1194025.0] , [ 1309406400000 , 1194025.0] , [ 1312084800000 , 1194025.0] , [ 1314763200000 , 1244525.0] , [ 1317355200000 , 475000.0] , [ 1320033600000 , 475000.0] , [ 1322629200000 , 475000.0] , [ 1325307600000 , 690033.0] , [ 1327986000000 , 690033.0] , [ 1330491600000 , 690033.0] , [ 1333166400000 , 514733.0] , [ 1335758400000 , 514733.0]]
- },
- {
- "key" : "Price" ,
- "values" : [ [ 1136005200000 , 71.89] , [ 1138683600000 , 75.51] , [ 1141102800000 , 68.49] , [ 1143781200000 , 62.72] , [ 1146369600000 , 70.39] , [ 1149048000000 , 59.77] , [ 1151640000000 , 57.27] , [ 1154318400000 , 67.96] , [ 1156996800000 , 67.85] , [ 1159588800000 , 76.98] , [ 1162270800000 , 81.08] , [ 1164862800000 , 91.66] , [ 1167541200000 , 84.84] , [ 1170219600000 , 85.73] , [ 1172638800000 , 84.61] , [ 1175313600000 , 92.91] , [ 1177905600000 , 99.8] , [ 1180584000000 , 121.191] , [ 1183176000000 , 122.04] , [ 1185854400000 , 131.76] , [ 1188532800000 , 138.48] , [ 1191124800000 , 153.47] , [ 1193803200000 , 189.95] , [ 1196398800000 , 182.22] , [ 1199077200000 , 198.08] , [ 1201755600000 , 135.36] , [ 1204261200000 , 125.02] , [ 1206936000000 , 143.5] , [ 1209528000000 , 173.95] , [ 1212206400000 , 188.75] , [ 1214798400000 , 167.44] , [ 1217476800000 , 158.95] , [ 1220155200000 , 169.53] , [ 1222747200000 , 113.66] , [ 1225425600000 , 107.59] , [ 1228021200000 , 92.67] , [ 1230699600000 , 85.35] , [ 1233378000000 , 90.13] , [ 1235797200000 , 89.31] , [ 1238472000000 , 105.12] , [ 1241064000000 , 125.83] , [ 1243742400000 , 135.81] , [ 1246334400000 , 142.43] , [ 1249012800000 , 163.39] , [ 1251691200000 , 168.21] , [ 1254283200000 , 185.35] , [ 1256961600000 , 188.5] , [ 1259557200000 , 199.91] , [ 1262235600000 , 210.732] , [ 1264914000000 , 192.063] , [ 1267333200000 , 204.62] , [ 1270008000000 , 235.0] , [ 1272600000000 , 261.09] , [ 1275278400000 , 256.88] , [ 1277870400000 , 251.53] , [ 1280548800000 , 257.25] , [ 1283227200000 , 243.1] , [ 1285819200000 , 283.75] , [ 1288497600000 , 300.98] , [ 1291093200000 , 311.15] , [ 1293771600000 , 322.56] , [ 1296450000000 , 339.32] , [ 1298869200000 , 353.21] , [ 1301544000000 , 348.5075] , [ 1304136000000 , 350.13] , [ 1306814400000 , 347.83] , [ 1309406400000 , 335.67] , [ 1312084800000 , 390.48] , [ 1314763200000 , 384.83] , [ 1317355200000 , 381.32] , [ 1320033600000 , 404.78] , [ 1322629200000 , 382.2] , [ 1325307600000 , 405.0] , [ 1327986000000 , 456.48] , [ 1330491600000 , 542.44] , [ 1333166400000 , 599.55] , [ 1335758400000 , 583.98] ]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
- return series;
-});
-
-/*
-//For testing single data point
-var testdata = [
- {
- "key" : "Quantity" ,
- "bar": true,
- "values" : [ [ 1136005200000 , 1271000.0] ]
- } ,
- {
- "key" : "Price" ,
- "values" : [ [ 1136005200000 , 71.89] ]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
- return series;
-});
-*/
-
-var chart;
-
-nv.addGraph(function() {
- chart = nv.models.linePlusBarChart()
- .margin({top: 30, right: 60, bottom: 50, left: 70})
- .x(function(d,i) { return i })
- .color(d3.scale.category10().range());
-
- chart.xAxis.tickFormat(function(d) {
- var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
- return dx ? d3.time.format('%x')(new Date(dx)) : '';
- })
- .showMaxMin(false);
-
- chart.y1Axis
- .tickFormat(d3.format(',f'));
-
- chart.y2Axis
- .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });
-
- chart.bars.forceY([0]).padData(false);
- //chart.lines.forceY([0]);
-
- d3.select('#chart1 svg')
- .datum(testdata)
- .transition().duration(500).call(chart);
-
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html
deleted file mode 100755
index 4eac5d8d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 svg {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1" class='with-3d-shadow with-transitions'>
- <svg> </svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/linePlusBarWithFocusChart.js"></script>
-<script>
-
-
-var testdata = [
- {
- "key" : "Quantity" ,
- "bar": true,
- "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , [ 1141102800000 , 1271000.0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 3899486.0] , [ 1162270800000 , 3899486.0] , [ 1164862800000 , 3899486.0] , [ 1167541200000 , 3564700.0] , [ 1170219600000 , 3564700.0] , [ 1172638800000 , 3564700.0] , [ 1175313600000 , 2648493.0] , [ 1177905600000 , 2648493.0] , [ 1180584000000 , 2648493.0] , [ 1183176000000 , 2522993.0] , [ 1185854400000 , 2522993.0] , [ 1188532800000 , 2522993.0] , [ 1191124800000 , 2906501.0] , [ 1193803200000 , 2906501.0] , [ 1196398800000 , 2906501.0] , [ 1199077200000 , 2206761.0] , [ 1201755600000 , 2206761.0] , [ 1204261200000 , 2206761.0] , [ 1206936000000 , 2287726.0] , [ 1209528000000 , 2287726.0] , [ 1212206400000 , 2287726.0] , [ 1214798400000 , 2732646.0] , [ 1217476800000 , 2732646.0] , [ 1220155200000 , 2732646.0] , [ 1222747200000 , 2599196.0] , [ 1225425600000 , 2599196.0] , [ 1228021200000 , 2599196.0] , [ 1230699600000 , 1924387.0] , [ 1233378000000 , 1924387.0] , [ 1235797200000 , 1924387.0] , [ 1238472000000 , 1756311.0] , [ 1241064000000 , 1756311.0] , [ 1243742400000 , 1756311.0] , [ 1246334400000 , 1743470.0] , [ 1249012800000 , 1743470.0] , [ 1251691200000 , 1743470.0] , [ 1254283200000 , 1519010.0] , [ 1256961600000 , 1519010.0] , [ 1259557200000 , 1519010.0] , [ 1262235600000 , 1591444.0] , [ 1264914000000 , 1591444.0] , [ 1267333200000 , 1591444.0] , [ 1270008000000 , 1543784.0] , [ 1272600000000 , 1543784.0] , [ 1275278400000 , 1543784.0] , [ 1277870400000 , 1309915.0] , [ 1280548800000 , 1309915.0] , [ 1283227200000 , 1309915.0] , [ 1285819200000 , 1331875.0] , [ 1288497600000 , 1331875.0] , [ 1291093200000 , 1331875.0] , [ 1293771600000 , 1331875.0] , [ 1296450000000 , 1154695.0] , [ 1298869200000 , 1154695.0] , [ 1301544000000 , 1194025.0] , [ 1304136000000 , 1194025.0] , [ 1306814400000 , 1194025.0] , [ 1309406400000 , 1194025.0] , [ 1312084800000 , 1194025.0] , [ 1314763200000 , 1244525.0] , [ 1317355200000 , 475000.0] , [ 1320033600000 , 475000.0] , [ 1322629200000 , 475000.0] , [ 1325307600000 , 690033.0] , [ 1327986000000 , 690033.0] , [ 1330491600000 , 690033.0] , [ 1333166400000 , 514733.0] , [ 1335758400000 , 514733.0]]
- },
- {
- "key" : "Price" ,
- "values" : [ [ 1136005200000 , 71.89] , [ 1138683600000 , 75.51] , [ 1141102800000 , 68.49] , [ 1143781200000 , 62.72] , [ 1146369600000 , 70.39] , [ 1149048000000 , 59.77] , [ 1151640000000 , 57.27] , [ 1154318400000 , 67.96] , [ 1156996800000 , 67.85] , [ 1159588800000 , 76.98] , [ 1162270800000 , 81.08] , [ 1164862800000 , 91.66] , [ 1167541200000 , 84.84] , [ 1170219600000 , 85.73] , [ 1172638800000 , 84.61] , [ 1175313600000 , 92.91] , [ 1177905600000 , 99.8] , [ 1180584000000 , 121.191] , [ 1183176000000 , 122.04] , [ 1185854400000 , 131.76] , [ 1188532800000 , 138.48] , [ 1191124800000 , 153.47] , [ 1193803200000 , 189.95] , [ 1196398800000 , 182.22] , [ 1199077200000 , 198.08] , [ 1201755600000 , 135.36] , [ 1204261200000 , 125.02] , [ 1206936000000 , 143.5] , [ 1209528000000 , 173.95] , [ 1212206400000 , 188.75] , [ 1214798400000 , 167.44] , [ 1217476800000 , 158.95] , [ 1220155200000 , 169.53] , [ 1222747200000 , 113.66] , [ 1225425600000 , 107.59] , [ 1228021200000 , 92.67] , [ 1230699600000 , 85.35] , [ 1233378000000 , 90.13] , [ 1235797200000 , 89.31] , [ 1238472000000 , 105.12] , [ 1241064000000 , 125.83] , [ 1243742400000 , 135.81] , [ 1246334400000 , 142.43] , [ 1249012800000 , 163.39] , [ 1251691200000 , 168.21] , [ 1254283200000 , 185.35] , [ 1256961600000 , 188.5] , [ 1259557200000 , 199.91] , [ 1262235600000 , 210.732] , [ 1264914000000 , 192.063] , [ 1267333200000 , 204.62] , [ 1270008000000 , 235.0] , [ 1272600000000 , 261.09] , [ 1275278400000 , 256.88] , [ 1277870400000 , 251.53] , [ 1280548800000 , 257.25] , [ 1283227200000 , 243.1] , [ 1285819200000 , 283.75] , [ 1288497600000 , 300.98] , [ 1291093200000 , 311.15] , [ 1293771600000 , 322.56] , [ 1296450000000 , 339.32] , [ 1298869200000 , 353.21] , [ 1301544000000 , 348.5075] , [ 1304136000000 , 350.13] , [ 1306814400000 , 347.83] , [ 1309406400000 , 335.67] , [ 1312084800000 , 390.48] , [ 1314763200000 , 384.83] , [ 1317355200000 , 381.32] , [ 1320033600000 , 404.78] , [ 1322629200000 , 382.2] , [ 1325307600000 , 405.0] , [ 1327986000000 , 456.48] , [ 1330491600000 , 542.44] , [ 1333166400000 , 599.55] , [ 1335758400000 , 583.98]]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
- return series;
-});
-
-
-/*
-//For testing single data point
-var testdata = [
- {
- "key" : "Quantity" ,
- "bar": true,
- "values" : [ [ 1136005200000 , 1271000.0] ]
- } ,
- {
- "key" : "Price" ,
- "values" : [ [ 1136005200000 , 71.89] ]
- }
-].map(function(series) {
- series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
- return series;
-});
-*/
-
-
-
-nv.addGraph(function() {
- var chart = nv.models.linePlusBarWithFocusChart()
- .margin({top: 30, right: 60, bottom: 50, left: 70})
- .x(function(d,i) { return i })
- .color(d3.scale.category10().range());
-
- chart.xAxis.tickFormat(function(d) {
-
- var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
- if (dx > 0) {
- return d3.time.format('%x')(new Date(dx))
- }
- return null;
- });
-
- chart.x2Axis.tickFormat(function(d) {
- var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
- return d3.time.format('%x')(new Date(dx))
- });
-
- chart.y1Axis
- .tickFormat(d3.format(',f'));
-
- chart.y3Axis
- .tickFormat(d3.format(',f'));
-
- chart.y2Axis
- .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });
-
- chart.y4Axis
- .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });
-
- chart.bars.forceY([0]);
- chart.bars2.forceY([0]);
- //chart.lines.forceY([0]);
- nv.log(testdata);
- d3.select('#chart1 svg')
- .datum(testdata)
- .call(chart);
-
-// nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html
deleted file mode 100755
index e0818502..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 svg {
- height: 500px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 50px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1" class='with-3d-shadow with-transitions'>
- <svg style="height: 500px;"></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/lineWithFisheye.js"></script>
-<script src="../src/models/lineWithFisheyeChart.js"></script>
-<script>
-
-
-// Wrapping in nv.addGraph allows for '0 timeout render', stors rendered charts in nv.graphs, and may do more in the future... it's NOT required
-nv.addGraph(function() {
- var chart = nv.models.lineChart();
-
- chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
- .tickFormat(d3.format(',r'));
-
- chart.yAxis
- .axisLabel('Voltage (v)')
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart1 svg')
- .datum(sinAndCos())
- .transition().duration(500)
- .call(chart);
-
- //TODO: Figure out a good way to do this automatically
- nv.utils.windowResize(chart.update);
- //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
-
- return chart;
-});
-
-
-
-function sinAndCos() {
- var sin = [],
- cos = [];
-
- for (var i = 0; i < 200; i++) {
- sin.push({x: i, y: Math.sin(i/2)});
- cos.push({x: i, y: .5 * Math.cos(i)});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- }
- ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html
deleted file mode 100755
index c5278a13..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-svg {
- display: block;
-}
-
-#chart1 svg {
- height: 500px;
- min-width: 100px;
- min-height: 100px;
-/*
- margin: 50px;
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart" class='with-3d-shadow with-transitions'>
- <svg style="height: 500px;"></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-nv.addGraph(function() {
- var chart = nv.models.lineWithFocusChart();
-
- // chart.transitionDuration(500);
- chart.xAxis
- .tickFormat(d3.format(',f'));
- chart.x2Axis
- .tickFormat(d3.format(',f'));
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
- chart.y2Axis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart svg')
- .datum(testData())
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-
-
-function testData() {
- return stream_layers(3,128,.1).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data
- };
- });
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html
deleted file mode 100755
index f00de237..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body>
-
- <div id="test1">
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/utils.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
- //var test_data = stream_layers(3,128,.1).map(function(data, i) {
- var test_data = stream_layers(3,128,.1).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data
- };
- });
-
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.multiBar()
- .width(width)
- .height(height)
- .stacked(true)
-
-
- var svg = d3.select('#test1 svg')
- .attr('width', width)
- .attr('height', height)
- .datum(test_data);
-
- svg.transition().duration(500).call(chart);
-
- return chart;
- },
- callback: function(graph) {
-
-
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40,
- margin = graph.margin();
-
-
- if (width < margin.left + margin.right + 20)
- width = margin.left + margin.right + 20;
-
- if (height < margin.top + margin.bottom + 20)
- height = margin.top + margin.bottom + 20;
-
-
- graph
- .width(width)
- .height(height);
-
- d3.select('#test1 svg')
- .attr('width', width)
- .attr('height', height)
- transition().duration(500)
- .call(graph);
-
- };
- }
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html
deleted file mode 100755
index 55e30102..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
- <div id="chart1" class='with-3d-shadow with-transitions'>
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiBarChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-var test_data = stream_layers(3,10+Math.random()*100,.1).map(function(data, i) {
-//var test_data = stream_layers(3,1,.1).map(function(data, i) { //for testing single data point
- return {
- key: 'Stream' + i,
- values: data
- };
-});
-
-console.log('td',test_data);
-
-var negative_test_data = new d3.range(0,3).map(function(d,i) { return {
- key: 'Stream' + i,
- values: new d3.range(0,11).map( function(f,j) {
- return {
- y: 10 + Math.random()*100 * (Math.floor(Math.random()*100)%2 ? 1 : -1),
- x: j
- }
- })
- };
-});
-
-var chart;
-nv.addGraph(function() {
- chart = nv.models.multiBarChart()
- .barColor(d3.scale.category20().range())
- .margin({bottom: 100})
- .transitionDuration(300)
- .delay(0)
- .rotateLabels(45)
- .groupSpacing(0.1)
- ;
-
- chart.multibar
- .hideable(true);
-
- chart.reduceXTicks(false).staggerLabels(true);
-
- chart.xAxis
- .axisLabel("Current Index")
- .showMaxMin(true)
- .tickFormat(d3.format(',.6f'));
-
- chart.yAxis
- .tickFormat(d3.format(',.1f'));
-
- d3.select('#chart1 svg')
- .datum(negative_test_data)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html
deleted file mode 100755
index 51572635..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html
+++ /dev/null
@@ -1,389 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 {
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-#chart1 svg {
- height: 500px;
-}
-
-</style>
-<body>
-
- <div id="chart1" class='with-3d-shadow with-transitions'>
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBarHorizontal.js"></script>
-<script src="../src/models/multiBarHorizontalChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-
-long_short_data = [
- {
- key: 'Series1',
- color: '#d62728',
- values: [
- {
- "label" : "Group A" ,
- "value" : -1.8746444827653
- } ,
- {
- "label" : "Group B" ,
- "value" : -8.0961543492239
- } ,
- {
- "label" : "Group C" ,
- "value" : -0.57072943117674
- } ,
- {
- "label" : "Group D" ,
- "value" : -2.4174010336624
- } ,
- {
- "label" : "Group E" ,
- "value" : -0.72009071426284
- } ,
- {
- "label" : "Group F" ,
- "value" : -0.77154485523777
- } ,
- {
- "label" : "Group G" ,
- "value" : -0.90152097798131
- } ,
- {
- "label" : "Group H" ,
- "value" : -0.91445417330854
- } ,
- {
- "label" : "Group I" ,
- "value" : -0.055746319141851
- }
- ]
- },
- {
- key: 'Series2',
- color: '#1f77b4',
- values: [
- {
- "label" : "Group A" ,
- "value" : 25.307646510375
- } ,
- {
- "label" : "Group B" ,
- "value" : 16.756779544553
- } ,
- {
- "label" : "Group C" ,
- "value" : 18.451534877007
- } ,
- {
- "label" : "Group D" ,
- "value" : 8.6142352811805
- } ,
- {
- "label" : "Group E" ,
- "value" : 7.8082472075876
- } ,
- {
- "label" : "Group F" ,
- "value" : 5.259101026956
- } ,
- {
- "label" : "Group G" ,
- "value" : 0.30947953487127
- } ,
- {
- "label" : "Group H" ,
- "value" : 0
- } ,
- {
- "label" : "Group I" ,
- "value" : 0
- }
- ]
- },
- {
- key: 'Series3',
- color: '#2ca02c',
- values: [
- {
- "label" : "Group A" ,
- "value" : -25.307646510375
- } ,
- {
- "label" : "Group B" ,
- "value" : 16.756779544553
- } ,
- {
- "label" : "Group C" ,
- "value" : -18.451534877007
- } ,
- {
- "label" : "Group D" ,
- "value" : 8.6142352811805
- } ,
- {
- "label" : "Group E" ,
- "value" : -7.8082472075876
- } ,
- {
- "label" : "Group F" ,
- "value" : 5.259101026956
- } ,
- {
- "label" : "Group G" ,
- "value" : -0.30947953487127
- } ,
- {
- "label" : "Group H" ,
- "value" : 0
- } ,
- {
- "label" : "Group I" ,
- "value" : 0
- }
- ]
- }
-];
-
-
-
-long_short_pos_data = [
- {
- key: 'Series1',
- color: '#d62728',
- values: [
- {
- "label" : "Group A" ,
- "value" : 1.8746444827653
- } ,
- {
- "label" : "Group B" ,
- "value" : 8.0961543492239
- } ,
- {
- "label" : "Group C" ,
- "value" : 0.57072943117674
- } ,
- {
- "label" : "Group D" ,
- "value" : 2.4174010336624
- } ,
- {
- "label" : "Group E" ,
- "value" : 0.72009071426284
- } ,
- {
- "label" : "Group F" ,
- "value" : 0.77154485523777
- } ,
- {
- "label" : "Group G" ,
- "value" : 0.90152097798131
- } ,
- {
- "label" : "Group H" ,
- "value" : 0.91445417330854
- } ,
- {
- "label" : "Group I" ,
- "value" : 0.055746319141851
- }
- ]
- },
- {
- key: 'Series2',
- color: '#1f77b4',
- values: [
- {
- "label" : "Group A" ,
- "value" : 25.307646510375
- } ,
- {
- "label" : "Group B" ,
- "value" : 16.756779544553
- } ,
- {
- "label" : "Group C" ,
- "value" : 18.451534877007
- } ,
- {
- "label" : "Group D" ,
- "value" : 8.6142352811805
- } ,
- {
- "label" : "Group E" ,
- "value" : 7.8082472075876
- } ,
- {
- "label" : "Group F" ,
- "value" : 5.259101026956
- } ,
- {
- "label" : "Group G" ,
- "value" : 0.30947953487127
- } ,
- {
- "label" : "Group H" ,
- "value" : 0
- } ,
- {
- "label" : "Group I" ,
- "value" : 0
- }
- ]
- }
-];
-
-
-long_short_neg_data = [
- {
- key: 'Series1',
- color: '#d62728',
- values: [
- {
- "label" : "Group A" ,
- "value" : -1.8746444827653
- } ,
- {
- "label" : "Group B" ,
- "value" : -8.0961543492239
- } ,
- {
- "label" : "Group C" ,
- "value" : -0.57072943117674
- } ,
- {
- "label" : "Group D" ,
- "value" : -2.4174010336624
- } ,
- {
- "label" : "Group E" ,
- "value" : -0.72009071426284
- } ,
- {
- "label" : "Group F" ,
- "value" : -0.77154485523777
- } ,
- {
- "label" : "Group G" ,
- "value" : -0.90152097798131
- } ,
- {
- "label" : "Group H" ,
- "value" : -0.91445417330854
- } ,
- {
- "label" : "Group I" ,
- "value" : -0.055746319141851
- }
- ]
- },
- {
- key: 'Series2',
- color: '#1f77b4',
- values: [
- {
- "label" : "Group A" ,
- "value" : -25.307646510375
- } ,
- {
- "label" : "Group B" ,
- "value" : -16.756779544553
- } ,
- {
- "label" : "Group C" ,
- "value" : -18.451534877007
- } ,
- {
- "label" : "Group D" ,
- "value" : -8.6142352811805
- } ,
- {
- "label" : "Group E" ,
- "value" : -7.8082472075876
- } ,
- {
- "label" : "Group F" ,
- "value" : -5.259101026956
- } ,
- {
- "label" : "Group G" ,
- "value" : -0.30947953487127
- } ,
- {
- "label" : "Group H" ,
- "value" : 0
- } ,
- {
- "label" : "Group I" ,
- "value" : 0
- }
- ]
- }
-];
-
-
-
-
-var chart;
-nv.addGraph(function() {
- chart = nv.models.multiBarHorizontalChart()
- .x(function(d) { return d.label })
- .y(function(d) { return d.value })
- .margin({top: 30, right: 20, bottom: 50, left: 175})
- //.showValues(true)
- //.tooltips(false)
- .barColor(d3.scale.category20().range())
- .transitionDuration(250)
- .stacked(true)
- //.showControls(false);
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart1 svg')
- .datum(long_short_data)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html
deleted file mode 100755
index 3bfa6930..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1 svg {
- height: 500px;
- margin: 10px;
- min-width: 100px;
- min-height: 100px;
-/*
- Minimum height and width is a good idea to prevent negative SVG dimensions...
- For example width should be =< margin.left + margin.right + 1,
- of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
- <div id="chart1" >
- <svg> </svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-var testdata = stream_layers(7,10+Math.random()*100,.1).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data.map(function(a){a.y = a.y * (i <= 1 ? -1 : 1); return a})
- };
-});
-
-testdata[0].type = "area"
-testdata[0].yAxis = 1
-testdata[1].type = "area"
-testdata[1].yAxis = 1
-testdata[2].type = "line"
-testdata[2].yAxis = 1
-testdata[3].type = "line"
-testdata[3].yAxis = 2
-testdata[4].type = "bar"
-testdata[4].yAxis = 2
-testdata[5].type = "bar"
-testdata[5].yAxis = 2
-testdata[6].type = "bar"
-testdata[6].yAxis = 2
-
-
-nv.addGraph(function() {
- var chart = nv.models.multiChart()
- .margin({top: 30, right: 60, bottom: 50, left: 70})
- .color(d3.scale.category10().range());
-
- chart.xAxis
- .tickFormat(d3.format(',f'));
-
- chart.yAxis1
- .tickFormat(d3.format(',.1f'));
-
- chart.yAxis2
- .tickFormat(d3.format(',.1f'));
-
-
- d3.select('#chart1 svg')
- .datum(testdata)
- .transition().duration(500).call(chart);
-
- return chart;
-});
-
-</script>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json
deleted file mode 100755
index c9e730c6..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"name":"Angola","region":"Sub-Saharan Africa","income":[[1800,359.93],[1820,359.93],[1913,556.12],[1950,3363.02],[1951,3440.9],[1952,3520.61],[1953,3598.81],[1954,3450.82],[1955,3672.08],[1956,3549.04],[1957,3827.94],[1958,3966.42],[1959,3917.76],[1960,4006.21],[1961,4463.83],[1962,4269.28],[1963,4413.6],[1964,4826.49],[1965,5102.21],[1966,5308.14],[1967,5522.78],[1968,5346.63],[1969,5408.12],[1970,5651.88],[1971,5526.21],[1972,5473.29],[1973,5722.02],[1974,5470.21],[1975,3430.85],[1976,3050.32],[1977,3008.65],[1978,3070.82],[1979,3064.89],[1980,3074.75],[1981,2953.41],[1982,2756.95],[1983,2584.56],[1984,2527.47],[1985,2492.83],[1986,2220.61],[1987,2430.21],[1988,2728.53],[1989,2730.56],[1990,2777.42],[1991,2730.85],[1992,2627.85],[1993,1869.92],[1994,1851.45],[1995,1989.02],[1996,2157.35],[1997,2277.14],[1998,2384.48],[1999,2417.18],[2000,2446.65],[2001,2479.69],[2002,2773.29],[2003,2785.39],[2004,3007.11],[2005,3533],[2006,4069.56],[2007,4755.46],[2008,5228.74],[2009,5055.59]],"population":[[1800,1567028],[1820,1567028],[1940,3738000],[1950,4117617],[1951,4173095],[1952,4232095],[1953,4293840],[1954,4357527],[1955,4423223],[1956,4490992],[1957,4561361],[1958,4635885],[1959,4714676],[1960,4797344],[1961,4752489],[1962,4826015],[1963,4919586],[1964,5026044],[1965,5134818],[1966,5201250],[1967,5247469],[1968,5350384],[1969,5471641],[1970,5605626],[1971,5752775],[1972,5894858],[1973,6025841],[1974,5986432],[1975,5884241],[1976,5942225],[1977,6162675],[1978,6285716],[1979,6451227],[1980,6741465],[1981,6877697],[1982,7016384],[1983,7238214],[1984,7439658],[1985,7581504],[1986,7744932],[1987,7874230],[1988,8018724],[1989,8148595],[1990,8290856],[1991,8490763],[1992,8735988],[1993,8961438],[1994,9170032],[1995,9421477],[1996,9660081],[1997,9875024],[1998,10071442],[1999,10263229],[2000,10442812],[2001,10623424],[2002,10866106],[2003,11186202],[2004,11521432],[2005,11827315],[2006,12127071],[2007,12420476],[2008,12707546]],"lifeExpectancy":[[1800,26.98],[1940,26.98],[1950,29.22],[1951,29.42],[1952,29.81],[1953,30.21],[1954,30.6],[1955,31],[1956,31.4],[1957,31.8],[1958,32.2],[1959,32.6],[1960,33],[1961,33.4],[1962,33.8],[1963,34.2],[1964,34.6],[1965,35],[1966,35.4],[1967,35.8],[1968,36.2],[1969,36.6],[1970,37],[1971,37.41],[1972,37.83],[1973,38.26],[1974,38.68],[1975,39.09],[1976,39.46],[1977,39.8],[1978,40.1],[1979,40.34],[1980,40.55],[1981,40.71],[1982,40.85],[1983,40.97],[1984,41.08],[1985,41.2],[1986,41.33],[1987,41.48],[1988,41.64],[1989,41.81],[1990,41.99],[1991,42.16],[1992,42.32],[1993,42.46],[1994,42.59],[1995,42.7],[1996,42.82],[1997,42.96],[1998,43.12],[1999,43.32],[2000,43.56],[2001,43.86],[2002,44.22],[2003,44.61],[2004,45.05],[2005,45.52],[2006,46.02],[2007,46.54],[2008,47.06],[2009,47.58]]},{"name":"Benin","region":"Sub-Saharan Africa","income":[[1800,553.72],[1820,553.72],[1913,855.53],[1950,1104.47],[1951,1083.57],[1952,1062.75],[1953,1012.84],[1954,1021.29],[1955,1000.66],[1956,980.06],[1957,959.6],[1958,974.04],[1959,988.88],[1960,996.93],[1961,1006.39],[1962,949.5],[1963,970.34],[1964,1012.25],[1965,1039.34],[1966,1051.67],[1967,1035.83],[1968,1048.78],[1969,1052.8],[1970,1047.17],[1971,1024.93],[1972,1085.8],[1973,1081.87],[1974,973.64],[1975,987.96],[1976,1002.19],[1977,1029.16],[1978,1032.01],[1979,1083.17],[1980,1154.23],[1981,1186.7],[1982,1277.9],[1983,1187.14],[1984,1243.82],[1985,1297.16],[1986,1285.08],[1987,1225.86],[1988,1222.9],[1989,1158.34],[1990,1165.47],[1991,1181.65],[1992,1191.21],[1993,1177.91],[1994,1168.53],[1995,1176.67],[1996,1202.15],[1997,1232.98],[1998,1251.88],[1999,1272.8],[2000,1307.57],[2001,1333.3],[2002,1372.88],[2003,1386.05],[2004,1389.13],[2005,1390],[2006,1402.94],[2007,1428.15],[2008,1459.07],[2009,1457.57]],"population":[[1800,636559],[1820,636559],[1950,1672661],[1951,1704916],[1952,1738315],[1953,1772899],[1954,1808895],[1955,1846175],[1956,1884978],[1957,1925173],[1958,1966816],[1959,2010163],[1960,2055083],[1961,2101846],[1962,2151895],[1963,2202775],[1964,2255760],[1965,2310714],[1966,2367951],[1967,2427334],[1968,2488957],[1969,2553162],[1970,2619809],[1971,2689271],[1972,2761407],[1973,2836325],[1974,2914439],[1975,2995605],[1976,3080268],[1977,3168267],[1978,3259760],[1979,3354798],[1980,3444361],[1981,3540043],[1982,3641603],[1983,3748839],[1984,3861680],[1985,3982013],[1986,4110035],[1987,4243788],[1988,4382448],[1989,4526250],[1990,4676077],[1991,4828814],[1992,4981671],[1993,5214220],[1994,5487359],[1995,5700089],[1996,5886094],[1997,6066080],[1998,6248686],[1999,6435871],[2000,6627964],[2001,6824931],[2002,7026113],[2003,7230693],[2004,7438437],[2005,7649360],[2006,7862944],[2007,8078314],[2008,8294941]],"lifeExpectancy":[[1800,31],[1944,31],[1950,36.53],[1951,36.73],[1952,37.15],[1953,37.58],[1954,38.01],[1955,38.45],[1956,38.9],[1957,39.35],[1958,39.8],[1959,40.26],[1960,40.72],[1961,41.18],[1962,41.64],[1963,42.1],[1964,42.55],[1965,43.01],[1966,43.47],[1967,43.95],[1968,44.43],[1969,44.93],[1970,45.45],[1971,45.99],[1972,46.55],[1973,47.12],[1974,47.69],[1975,48.25],[1976,48.79],[1977,49.29],[1978,49.75],[1979,50.17],[1980,50.54],[1981,50.87],[1982,51.15],[1983,51.42],[1984,51.68],[1985,51.94],[1986,52.24],[1987,52.57],[1988,52.95],[1989,53.37],[1990,53.84],[1991,54.34],[1992,54.86],[1993,55.38],[1994,55.89],[1995,56.38],[1996,56.84],[1997,57.26],[1998,57.64],[1999,58],[2000,58.34],[2001,58.68],[2002,59.02],[2003,59.38],[2004,59.77],[2005,60.17],[2006,60.6],[2007,61.03],[2008,61.47],[2009,61.89]]},{"name":"Botswana","region":"Sub-Saharan Africa","income":[[1800,407.36],[1820,407.36],[1913,629.4],[1950,825.25],[1951,840.94],[1952,851.24],[1953,865.86],[1954,880.5],[1955,893.58],[1956,905.91],[1957,918.23],[1958,929.05],[1959,944.14],[1960,953.26],[1961,971.44],[1962,983.65],[1963,999.69],[1964,1018.75],[1965,1034.37],[1966,1119.01],[1967,1214.71],[1968,1319.18],[1969,1424.21],[1970,1532.71],[1971,1769.34],[1972,2263.61],[1973,2658.43],[1974,3077.33],[1975,2897.18],[1976,3271.32],[1977,3214.86],[1978,3640.34],[1979,3818.4],[1980,4178.48],[1981,4399.13],[1982,4551.14],[1983,5079.53],[1984,5450.44],[1985,5656.04],[1986,5889.64],[1987,6205.88],[1988,6959.66],[1989,7619.62],[1990,7829.23],[1991,7964.58],[1992,7954.11],[1993,7860.65],[1994,7898.05],[1995,8030.48],[1996,8281.92],[1997,8647.14],[1998,8990.98],[1999,9416.67],[2000,10107.99],[2001,10543.61],[2002,11003.61],[2003,11391.09],[2004,11722.59],[2005,12057],[2006,12574.18],[2007,13010.7],[2008,13240.06],[2009,12282.28]],"population":[[1800,121000],[1904,121000],[1911,125000],[1921,153000],[1936,266000],[1946,296000],[1950,430413],[1951,436320],[1952,442308],[1953,448377],[1954,454640],[1955,461100],[1956,467765],[1957,474639],[1958,481731],[1959,489080],[1960,496695],[1961,504585],[1962,512764],[1963,521237],[1964,529966],[1965,538100],[1966,545965],[1967,553541],[1968,561941],[1969,571874],[1970,583999],[1971,599647],[1972,619351],[1973,643076],[1974,671769],[1975,704591],[1976,741273],[1977,781472],[1978,822247],[1979,862602],[1980,900476],[1981,934438],[1982,970347],[1983,1006466],[1984,1042702],[1985,1078902],[1986,1114934],[1987,1151184],[1988,1188137],[1989,1225684],[1990,1263643],[1991,1301796],[1992,1342614],[1993,1385749],[1994,1427426],[1995,1466989],[1996,1503652],[1997,1536536],[1998,1564950],[1999,1588505],[2000,1607069],[2001,1620848],[2002,1630347],[2003,1636213],[2004,1639231],[2005,1640115],[2006,1639833],[2007,1639131],[2008,1638393]],"lifeExpectancy":[[1800,33.6],[1945,33.6],[1950,46.82],[1951,47.02],[1952,47.43],[1953,47.84],[1954,48.25],[1955,48.65],[1956,49.05],[1957,49.45],[1958,49.85],[1959,50.23],[1960,50.61],[1961,50.98],[1962,51.33],[1963,51.68],[1964,52.02],[1965,52.37],[1966,52.74],[1967,53.13],[1968,53.57],[1969,54.04],[1970,54.56],[1971,55.13],[1972,55.75],[1973,56.39],[1974,57.04],[1975,57.7],[1976,58.33],[1977,58.93],[1978,59.48],[1979,59.99],[1980,60.46],[1981,60.92],[1982,61.38],[1983,61.85],[1984,62.31],[1985,62.77],[1986,63.23],[1987,63.65],[1988,64],[1989,64.22],[1990,64.24],[1991,63.97],[1992,63.38],[1993,62.47],[1994,61.26],[1995,59.76],[1996,57.98],[1997,56.05],[1998,54.08],[1999,52.21],[2000,50.65],[2001,49.59],[2002,49.11],[2003,49.22],[2004,49.87],[2005,50.92],[2006,52.17],[2007,53.39],[2008,54.4],[2009,55.12]]},{"name":"Burkina Faso","region":"Sub-Saharan Africa","income":[[1800,454.33],[1820,454.33],[1913,497.44],[1950,515.71],[1951,529.66],[1952,543.26],[1953,557.01],[1954,571.4],[1955,586.4],[1956,601.99],[1957,617.18],[1958,633.89],[1959,649.7],[1960,661.86],[1961,684.8],[1962,722.51],[1963,708.58],[1964,719.57],[1965,740.98],[1966,737.83],[1967,794.83],[1968,810.76],[1969,817.43],[1970,809.75],[1971,831.9],[1972,854.74],[1973,798.63],[1974,772.28],[1975,727.95],[1976,709.39],[1977,743.39],[1978,811.57],[1979,800.89],[1980,794.76],[1981,809.75],[1982,807.2],[1983,778.05],[1984,770.53],[1985,848.8],[1986,955.4],[1987,912.06],[1988,957.87],[1989,917.41],[1990,880.17],[1991,938.09],[1992,931.75],[1993,895.91],[1994,878.97],[1995,889.91],[1996,929.21],[1997,946.29],[1998,978.6],[1999,1009.59],[2000,1001.48],[2001,1029.97],[2002,1037.65],[2003,1080.53],[2004,1096.85],[2005,1140],[2006,1175.51],[2007,1189.88],[2008,1223.52],[2009,1234.42]],"population":[[1800,1665421],[1820,1665421],[1950,4376162],[1951,4422822],[1952,4469979],[1953,4517639],[1954,4565808],[1955,4614490],[1956,4663691],[1957,4713416],[1958,4763672],[1959,4814463],[1960,4865796],[1961,4890688],[1962,4919632],[1963,4952695],[1964,4989961],[1965,5031519],[1966,5077473],[1967,5127935],[1968,5183033],[1969,5242904],[1970,5303777],[1971,5366018],[1972,5433886],[1973,5507594],[1974,5587373],[1975,5673472],[1976,5764606],[1977,5889574],[1978,6023204],[1979,6165533],[1980,6315312],[1981,6471556],[1982,6634596],[1983,6804810],[1984,6982590],[1985,7168228],[1986,7367641],[1987,7586551],[1988,7824563],[1989,8076170],[1990,8335771],[1991,8603238],[1992,8878303],[1993,9159653],[1994,9467871],[1995,9772602],[1996,10060724],[1997,10352843],[1998,10652495],[1999,10975109],[2000,11308552],[2001,11732326],[2002,12251209],[2003,12705775],[2004,13092647],[2005,13491736],[2006,13902972],[2007,14326203],[2008,14761339]],"lifeExpectancy":[[1800,29.2],[1945,29.2],[1950,32.89],[1951,33.09],[1952,33.49],[1953,33.9],[1954,34.34],[1955,34.79],[1956,35.26],[1957,35.74],[1958,36.24],[1959,36.74],[1960,37.25],[1961,37.76],[1962,38.25],[1963,38.73],[1964,39.2],[1965,39.63],[1966,40.04],[1967,40.43],[1968,40.79],[1969,41.14],[1970,41.48],[1971,41.82],[1972,42.17],[1973,42.53],[1974,42.9],[1975,43.27],[1976,43.64],[1977,44],[1978,44.33],[1979,44.65],[1980,44.95],[1981,45.22],[1982,45.49],[1983,45.75],[1984,46.01],[1985,46.27],[1986,46.51],[1987,46.75],[1988,46.98],[1989,47.2],[1990,47.42],[1991,47.65],[1992,47.89],[1993,48.14],[1994,48.41],[1995,48.7],[1996,49.01],[1997,49.34],[1998,49.68],[1999,50.02],[2000,50.37],[2001,50.72],[2002,51.07],[2003,51.42],[2004,51.76],[2005,52.09],[2006,52.42],[2007,52.74],[2008,53.06],[2009,53.38]]},{"name":"Burundi","region":"Sub-Saharan Africa","income":[[1800,447.59],[1820,447.59],[1913,353.82],[1950,322.23],[1951,334.76],[1952,339.3],[1953,346.93],[1954,359.61],[1955,364.64],[1956,372],[1957,379.56],[1958,383.38],[1959,398.3],[1960,396.94],[1961,333.27],[1962,355.2],[1963,364.13],[1964,376.1],[1965,380.08],[1966,387.47],[1967,412.98],[1968,400.03],[1969,388.1],[1970,483.32],[1971,510.51],[1972,464.1],[1973,496.11],[1974,484.51],[1975,478.55],[1976,506.22],[1977,556.1],[1978,536.58],[1979,522.02],[1980,539.85],[1981,574.48],[1982,559.6],[1983,563.3],[1984,549.69],[1985,600.88],[1986,611.89],[1987,621.82],[1988,628.59],[1989,623.27],[1990,630.44],[1991,646.51],[1992,631.7],[1993,613.04],[1994,585.18],[1995,507.2],[1996,462.85],[1997,463.12],[1998,473.7],[1999,455.41],[2000,443.76],[2001,440.51],[2002,446.4],[2003,427.14],[2004,431.76],[2005,420.08],[2006,432.95],[2007,439.64],[2008,450.54],[2009,457.07]],"population":[[1800,899097],[1820,899097],[1950,2362522],[1951,2403682],[1952,2445618],[1953,2488348],[1954,2531886],[1955,2576249],[1956,2621454],[1957,2667518],[1958,2714458],[1959,2763722],[1960,2815405],[1961,2894153],[1962,2961915],[1963,3008458],[1964,3088827],[1965,3170653],[1966,3253610],[1967,3330989],[1968,3400775],[1969,3460144],[1970,3521913],[1971,3596811],[1972,3529983],[1973,3540066],[1974,3594958],[1975,3676308],[1976,3749077],[1977,3834415],[1978,3929974],[1979,4119789],[1980,4299555],[1981,4480338],[1982,4580410],[1983,4692262],[1984,4802889],[1985,4906862],[1986,5002688],[1987,5126023],[1988,5257314],[1989,5379124],[1990,5505113],[1991,5636676],[1992,5809236],[1993,5632915],[1994,5681513],[1995,6077812],[1996,6100754],[1997,6121610],[1998,6271409],[1999,6458283],[2000,6621126],[2001,6810307],[2002,7021078],[2003,7251827],[2004,7516212],[2005,7795426],[2006,8090068],[2007,8390505],[2008,8691005]],"lifeExpectancy":[[1800,31.5],[1945,31.5],[1950,38.42],[1951,38.58],[1952,38.88],[1953,39.18],[1954,39.49],[1955,39.79],[1956,40.08],[1957,40.38],[1958,40.68],[1959,40.98],[1960,41.29],[1961,41.61],[1962,41.93],[1963,42.25],[1964,42.57],[1965,42.87],[1966,43.13],[1967,43.35],[1968,43.53],[1969,43.66],[1970,43.78],[1971,43.91],[1972,44.07],[1973,44.28],[1974,44.55],[1975,44.87],[1976,45.24],[1977,45.63],[1978,46.02],[1979,46.4],[1980,46.76],[1981,47.11],[1982,47.44],[1983,47.75],[1984,48],[1985,48.15],[1986,48.13],[1987,47.91],[1988,47.52],[1989,46.97],[1990,46.36],[1991,45.76],[1992,45.27],[1993,44.96],[1994,44.85],[1995,44.95],[1996,45.23],[1997,45.61],[1998,46.03],[1999,46.47],[2000,46.9],[2001,47.33],[2002,47.77],[2003,48.22],[2004,48.69],[2005,49.15],[2006,49.61],[2007,50.06],[2008,50.51],[2009,50.95]]},{"name":"Cameroon","region":"Sub-Saharan Africa","income":[[1800,517.46],[1820,517.46],[1913,799.51],[1950,1117.97],[1951,1145.39],[1952,1172.67],[1953,1199.76],[1954,1227.65],[1955,1256.24],[1956,1284.39],[1957,1313.05],[1958,1342.09],[1959,1370.44],[1960,1386.31],[1961,1380.62],[1962,1399.61],[1963,1427.16],[1964,1452.69],[1965,1455.61],[1966,1495.91],[1967,1508.45],[1968,1575.87],[1969,1621],[1970,1635.98],[1971,1649.53],[1972,1684.15],[1973,1671.33],[1974,1706.3],[1975,1752.24],[1976,1739.5],[1977,1783.43],[1978,1824.31],[1979,1867.89],[1980,1989.19],[1981,2256.63],[1982,2367.98],[1983,2461.92],[1984,2575.35],[1985,2719.24],[1986,2824.45],[1987,2602.66],[1988,2411.32],[1989,2131.49],[1990,2036.08],[1991,1903.16],[1992,1793.16],[1993,1688.77],[1994,1603.04],[1995,1613.97],[1996,1652.43],[1997,1694.34],[1998,1736.44],[1999,1770.65],[2000,1803.44],[2001,1857.15],[2002,1934.01],[2003,1967.39],[2004,1997.11],[2005,1995],[2006,2003.19],[2007,2012.18],[2008,2013.83],[2009,1997.18]],"population":[[1800,1860054],[1820,1860054],[1926,2547668],[1931,3023000],[1936,3241694],[1950,4887591],[1951,4947090],[1952,5009067],[1953,5073595],[1954,5140805],[1955,5210832],[1956,5283822],[1957,5359923],[1958,5439350],[1959,5522218],[1960,5608760],[1961,5699165],[1962,5793633],[1963,5892378],[1964,5995682],[1965,6103788],[1966,6216951],[1967,6335506],[1968,6459744],[1969,6590041],[1970,6726733],[1971,6870244],[1972,7021028],[1973,7179499],[1974,7346174],[1975,7521530],[1976,7721125],[1977,7959865],[1978,8206825],[1979,8451209],[1980,8746201],[1981,9024472],[1982,9250831],[1983,9521511],[1984,9815056],[1985,10127591],[1986,10454538],[1987,10780667],[1988,11105864],[1989,11438491],[1990,11778594],[1991,12122404],[1992,12467171],[1993,12814205],[1994,13161203],[1995,13504356],[1996,13848792],[1997,14195809],[1998,14543246],[1999,14889962],[2000,15233673],[2001,15577246],[2002,15929988],[2003,16286408],[2004,16637276],[2005,16988132],[2006,17340702],[2007,17696293],[2008,18054929]],"lifeExpectancy":[[1800,28.75],[1931,28.75],[1945,28.75],[1950,37.85],[1951,38.01],[1952,38.34],[1953,38.69],[1954,39.06],[1955,39.43],[1956,39.83],[1957,40.24],[1958,40.66],[1959,41.09],[1960,41.53],[1961,41.98],[1962,42.42],[1963,42.86],[1964,43.3],[1965,43.74],[1966,44.17],[1967,44.61],[1968,45.05],[1969,45.49],[1970,45.94],[1971,46.38],[1972,46.82],[1973,47.26],[1974,47.7],[1975,48.16],[1976,48.66],[1977,49.2],[1978,49.79],[1979,50.42],[1980,51.08],[1981,51.76],[1982,52.44],[1983,53.09],[1984,53.69],[1985,54.2],[1986,54.61],[1987,54.9],[1988,55.08],[1989,55.14],[1990,55.08],[1991,54.91],[1992,54.66],[1993,54.34],[1994,53.98],[1995,53.59],[1996,53.18],[1997,52.75],[1998,52.31],[1999,51.9],[2000,51.52],[2001,51.19],[2002,50.93],[2003,50.74],[2004,50.64],[2005,50.62],[2006,50.7],[2007,50.87],[2008,51.1],[2009,51.39]]},{"name":"Cape Verde","region":"Sub-Saharan Africa","income":[[1800,340],[1820,340],[1821,341.4],[1822,342.8],[1823,344.22],[1824,345.63],[1825,347.05],[1826,348.48],[1827,349.92],[1828,351.36],[1829,352.8],[1830,354.26],[1831,355.71],[1832,357.18],[1833,358.65],[1834,360.12],[1835,361.61],[1836,363.1],[1837,364.59],[1838,366.09],[1839,367.6],[1840,369.11],[1841,370.63],[1842,372.15],[1843,373.69],[1844,375.22],[1845,376.77],[1846,378.32],[1847,379.88],[1848,381.44],[1849,383.01],[1850,384.59],[1851,386.17],[1852,387.76],[1853,389.35],[1854,390.96],[1855,392.57],[1856,394.18],[1857,395.8],[1858,397.43],[1859,399.07],[1860,400.71],[1861,402.36],[1862,404.02],[1863,405.68],[1864,407.35],[1865,409.03],[1866,410.71],[1867,412.4],[1868,414.1],[1869,415.8],[1870,417.51],[1871,419.23],[1872,420.96],[1873,422.69],[1874,424.43],[1875,426.18],[1876,427.93],[1877,429.69],[1878,431.46],[1879,433.24],[1880,435.02],[1881,436.81],[1882,438.61],[1883,440.41],[1884,442.23],[1885,444.05],[1886,445.87],[1887,447.71],[1888,449.55],[1889,451.4],[1890,453.26],[1891,455.13],[1892,457],[1893,458.88],[1894,460.77],[1895,462.67],[1896,464.57],[1897,466.48],[1898,468.4],[1899,470.33],[1900,472.27],[1901,474.21],[1902,476.16],[1903,478.12],[1904,480.09],[1905,482.06],[1906,484.05],[1907,486.04],[1908,488.04],[1909,490.05],[1910,492.07],[1911,494.09],[1912,496.13],[1913,498.17],[1914,500.22],[1915,502.28],[1916,504.35],[1917,506.42],[1918,508.51],[1919,510.6],[1920,512.7],[1921,514.81],[1922,516.93],[1923,519.06],[1924,521.19],[1925,523.34],[1926,525.49],[1927,527.66],[1928,529.83],[1929,532.01],[1930,534.2],[1931,536.4],[1932,538.6],[1933,540.82],[1934,543.05],[1935,545.28],[1936,547.53],[1937,549.78],[1938,552.04],[1939,554.31],[1940,556.6],[1941,558.89],[1942,561.19],[1943,563.5],[1944,565.82],[1945,568.15],[1946,570.48],[1947,572.83],[1948,575.19],[1949,577.56],[1950,579.93],[1951,587.25],[1952,594.73],[1953,602.33],[1954,593.9],[1955,596.83],[1956,604.27],[1957,583.63],[1958,578.66],[1959,627.09],[1960,654.58],[1961,676.65],[1962,695.81],[1963,712.76],[1964,727.65],[1965,741.25],[1966,754.17],[1967,765.83],[1968,776.91],[1969,787.69],[1970,798.3],[1971,730.46],[1972,691.52],[1973,682.07],[1974,660.05],[1975,676.79],[1976,671.08],[1977,667.78],[1978,730.72],[1979,801.76],[1980,1084.09],[1981,1165.56],[1982,1181.35],[1983,1274.12],[1984,1301.51],[1985,1391.73],[1986,1408.06],[1987,1481.04],[1988,1500.81],[1989,1554.99],[1990,1587.89],[1993,1524.74],[1994,1600.25],[1995,1700.27],[1996,1788.78],[1997,1902.83],[1998,2018.62],[1999,2168.69],[2000,2291.29],[2001,2406.57],[2002,2505.29],[2003,2600.55],[2004,2692.59],[2005,2831],[2006,3078.92],[2007,3274.76],[2008,3384.72],[2009,3456.14]],"population":[[1800,55716],[1820,55716],[1950,146403],[1951,150651],[1952,155037],[1953,159567],[1954,164262],[1955,169146],[1956,174228],[1957,179516],[1958,185020],[1959,190769],[1960,196768],[1961,203146],[1962,209878],[1963,216919],[1964,224264],[1965,231719],[1966,239230],[1967,246787],[1968,254303],[1969,261602],[1970,268867],[1971,273381],[1972,275392],[1973,277218],[1974,278617],[1975,280259],[1976,282516],[1977,285691],[1978,288855],[1979,292276],[1980,296042],[1981,300190],[1982,304586],[1983,309265],[1984,314237],[1985,319490],[1986,325009],[1987,330779],[1988,336773],[1989,342950],[1990,349264],[1991,355545],[1992,361638],[1993,367520],[1994,373163],[1995,378520],[1996,383584],[1997,388383],[1998,392941],[1999,397270],[2000,401343],[2001,405163],[2002,408760],[2003,412137],[2004,415294],[2005,418224],[2006,420979],[2007,423613],[2008,426113]],"lifeExpectancy":[[1800,33.8],[1935,33.8],[1950,47.32],[1951,47.63],[1952,48.22],[1953,48.79],[1954,49.32],[1955,49.82],[1956,50.29],[1957,50.74],[1958,51.16],[1959,51.57],[1960,51.98],[1961,52.4],[1962,52.83],[1963,53.28],[1964,53.75],[1965,54.23],[1966,54.71],[1967,55.18],[1968,55.63],[1969,56.06],[1970,56.48],[1971,56.88],[1972,57.3],[1973,57.73],[1974,58.18],[1975,58.67],[1976,59.18],[1977,59.73],[1978,60.3],[1979,60.89],[1980,61.47],[1981,62.03],[1982,62.57],[1983,63.08],[1984,63.54],[1985,63.98],[1986,64.38],[1987,64.78],[1988,65.17],[1989,65.55],[1990,65.93],[1991,66.3],[1992,66.65],[1993,66.97],[1994,67.28],[1995,67.57],[1996,67.84],[1997,68.12],[1998,68.4],[1999,68.68],[2000,68.98],[2001,69.28],[2002,69.59],[2003,69.9],[2004,70.21],[2005,70.52],[2006,70.82],[2007,71.11],[2008,71.4],[2009,71.68]]},{"name":"Chad","region":"Sub-Saharan Africa","income":[[1800,400.69],[1820,400.69],[1913,619.09],[1950,1127.84],[1951,1153.46],[1952,1178.67],[1953,1203.41],[1954,1229.37],[1955,1255.59],[1956,1281.99],[1957,1308.5],[1958,1335.84],[1959,1361.48],[1960,1348.77],[1961,1343.29],[1962,1389.82],[1963,1345.06],[1964,1285.51],[1965,1264.43],[1966,1215.21],[1967,1196.81],[1968,1165.85],[1969,1219.07],[1970,1215.75],[1971,1211.69],[1972,1104.1],[1973,1026.42],[1974,1140.6],[1975,1305.72],[1976,1255.78],[1977,1133.98],[1978,1100.92],[1979,855.79],[1980,804.73],[1981,794.8],[1982,797.91],[1983,886.92],[1984,896.32],[1985,1083.31],[1986,1010.52],[1987,952.39],[1988,1066.26],[1989,1097.79],[1990,999.11],[1991,1065.94],[1992,1058.06],[1993,1003.69],[1994,1023.26],[1995,995.98],[1996,995.1],[1997,1004.96],[1998,1048.81],[1999,1039.29],[2000,1017.03],[2001,1084.2],[2002,1156.18],[2003,1287.08],[2004,1669.42],[2005,1749],[2006,1708.94],[2007,1670.3],[2008,1622.41],[2009,1557.83]],"population":[[1800,1432000],[1936,1432000],[1950,2607769],[1951,2644428],[1952,2682462],[1953,2721913],[1954,2762828],[1955,2805256],[1956,2849247],[1957,2894855],[1958,2942133],[1959,2991261],[1960,3042303],[1961,3095331],[1962,3150417],[1963,3207638],[1964,3271357],[1965,3344639],[1966,3419602],[1967,3495967],[1968,3572528],[1969,3650046],[1970,3730240],[1971,3813207],[1972,3899068],[1973,3988497],[1974,4082064],[1975,4179837],[1976,4281867],[1977,4388260],[1978,4498511],[1979,4545410],[1980,4542002],[1981,4646494],[1982,4875118],[1983,5073154],[1984,5125782],[1985,5169374],[1986,5314060],[1987,5498955],[1988,5674660],[1989,5829327],[1990,6022856],[1991,6232340],[1992,6429417],[1993,6655731],[1994,6886696],[1995,7103883],[1996,7329462],[1997,7562011],[1998,7804481],[1999,8058514],[2000,8316481],[2001,8573507],[2002,8835739],[2003,9103618],[2004,9377194],[2005,9657069],[2006,9944201],[2007,10238807],[2008,10541156]],"lifeExpectancy":[[1800,30.9],[1945,30.9],[1950,37.39],[1951,37.56],[1952,37.91],[1953,38.27],[1954,38.62],[1955,38.98],[1956,39.34],[1957,39.7],[1958,40.06],[1959,40.42],[1960,40.79],[1961,41.16],[1962,41.53],[1963,41.9],[1964,42.27],[1965,42.65],[1966,43.03],[1967,43.42],[1968,43.82],[1969,44.21],[1970,44.61],[1971,44.98],[1972,45.35],[1973,45.69],[1974,46.03],[1975,46.36],[1976,46.69],[1977,47.05],[1978,47.43],[1979,47.84],[1980,48.26],[1981,48.7],[1982,49.14],[1983,49.56],[1984,49.96],[1985,50.31],[1986,50.61],[1987,50.85],[1988,51.04],[1989,51.16],[1990,51.21],[1991,51.2],[1992,51.14],[1993,51.03],[1994,50.88],[1995,50.68],[1996,50.45],[1997,50.18],[1998,49.89],[1999,49.59],[2000,49.3],[2001,49.03],[2002,48.81],[2003,48.63],[2004,48.52],[2005,48.48],[2006,48.51],[2007,48.61],[2008,48.76],[2009,48.97]]},{"name":"Comoros","region":"Sub-Saharan Africa","income":[[1800,800.61],[1820,800.61],[1913,973.4],[1950,1052.1],[1951,1090.85],[1952,1102.99],[1953,1122.69],[1954,1162.08],[1955,1174.15],[1956,1193.11],[1957,1211.15],[1958,1218.42],[1959,1260.08],[1960,1337.13],[1961,1320.49],[1962,1406.65],[1963,1666.01],[1964,1750.41],[1965,1714.18],[1966,1847.27],[1967,1876.03],[1968,1827.9],[1969,1807.69],[1970,1894.29],[1971,2167.2],[1972,1937.58],[1973,1669.69],[1974,1980.87],[1975,1509.81],[1976,1298.57],[1977,1172.6],[1978,1177.32],[1979,1170.84],[1980,1208.28],[1981,1247.48],[1982,1267.1],[1983,1283.26],[1984,1291.09],[1985,1296.92],[1986,1296.8],[1987,1315.98],[1988,1337.51],[1989,1303.55],[1990,1286.8],[1991,1183.07],[1992,1246.91],[1993,1247.05],[1994,1146.29],[1995,1209.23],[1996,1158.46],[1997,1173.62],[1998,1148.85],[1999,1137.89],[2000,1090.79],[2001,1083.42],[2002,1075.81],[2003,1070.95],[2004,1083.02],[2005,1063],[2006,1054.06],[2007,1037.46],[2008,1026.03],[2009,1016.42]],"population":[[1800,56346],[1820,56346],[1950,148057],[1951,150937],[1952,153936],[1953,157062],[1954,160318],[1955,163711],[1956,167245],[1957,170928],[1958,174766],[1959,178754],[1960,182899],[1961,187209],[1962,191689],[1963,196348],[1964,201208],[1965,206279],[1966,211571],[1967,217378],[1968,223443],[1969,229732],[1970,236252],[1971,243014],[1972,250027],[1973,257303],[1974,264851],[1975,272685],[1976,280815],[1977,304739],[1978,313970],[1979,323557],[1980,333513],[1981,340765],[1982,348643],[1983,356997],[1984,365813],[1985,375099],[1986,384862],[1987,395114],[1988,405874],[1989,417164],[1990,429010],[1991,441427],[1992,454429],[1993,468010],[1994,482162],[1995,496906],[1996,512197],[1997,527982],[1998,544267],[1999,561063],[2000,578400],[2001,596202],[2002,614382],[2003,632948],[2004,651901],[2005,671247],[2006,690948],[2007,710960],[2008,731281]],"lifeExpectancy":[[1800,32.1],[1945,32.1],[1950,40.1],[1951,40.25],[1952,40.55],[1953,40.87],[1954,41.2],[1955,41.55],[1956,41.91],[1957,42.28],[1958,42.66],[1959,43.05],[1960,43.45],[1961,43.85],[1962,44.24],[1963,44.64],[1964,45.04],[1965,45.44],[1966,45.86],[1967,46.3],[1968,46.75],[1969,47.23],[1970,47.72],[1971,48.21],[1972,48.68],[1973,49.14],[1974,49.58],[1975,50],[1976,50.4],[1977,50.79],[1978,51.18],[1979,51.57],[1980,51.96],[1981,52.35],[1982,52.73],[1983,53.11],[1984,53.49],[1985,53.89],[1986,54.32],[1987,54.78],[1988,55.29],[1989,55.85],[1990,56.43],[1991,57.04],[1992,57.64],[1993,58.24],[1994,58.82],[1995,59.37],[1996,59.9],[1997,60.41],[1998,60.9],[1999,61.38],[2000,61.85],[2001,62.31],[2002,62.76],[2003,63.2],[2004,63.64],[2005,64.08],[2006,64.51],[2007,64.94],[2008,65.36],[2009,65.77]]},{"name":"Congo, Dem. Rep.","region":"Sub-Saharan Africa","income":[[1800,394.03],[1820,394.03],[1913,608.8],[1950,665.38],[1951,729.1],[1952,780.54],[1953,809.04],[1954,841.4],[1955,856.8],[1956,896.38],[1957,905.86],[1958,861.47],[1959,872.68],[1960,873.47],[1961,762.12],[1962,896.31],[1963,915],[1964,872.83],[1965,861.88],[1966,897.08],[1967,861.59],[1968,871.21],[1969,925.06],[1970,897.41],[1971,928.83],[1972,904.9],[1973,955.92],[1974,961.96],[1975,888.5],[1976,814.53],[1977,795.76],[1978,727.85],[1979,703.98],[1980,698.67],[1981,696.07],[1982,673.75],[1983,665.85],[1984,683.46],[1985,665.88],[1986,676.35],[1987,672.77],[1988,655.34],[1989,630.56],[1990,595.59],[1991,527.67],[1992,465.07],[1993,395.61],[1994,373.44],[1995,367.22],[1996,362.19],[1997,343.52],[1998,335.86],[1999,316.71],[2000,292.45],[2001,281.91],[2002,287.38],[2003,299.49],[2004,314.52],[2005,330],[2006,338.29],[2007,348.98],[2008,359.38],[2009,358.8]],"population":[[1800,5163819],[1820,5163819],[1950,13568762],[1951,13831813],[1952,14100005],[1953,14373435],[1954,14657484],[1955,14952568],[1956,15259279],[1957,15577932],[1958,15909008],[1959,16253014],[1960,16610482],[1961,16964231],[1962,17486434],[1963,18027167],[1964,18432651],[1965,18855509],[1966,19343383],[1967,19941073],[1968,20570629],[1969,21178812],[1970,21780955],[1971,22385560],[1972,23007669],[1973,23668471],[1974,24327147],[1975,25027571],[1976,25737520],[1977,26480870],[1978,27314183],[1979,28201693],[1980,29010717],[1981,29806198],[1982,30646495],[1983,31444001],[1984,32337982],[1985,33340593],[1986,34372899],[1987,35481645],[1988,36632259],[1989,37814050],[1990,39064041],[1991,40388906],[1992,41672143],[1993,43055943],[1994,44539132],[1995,46343432],[1996,47265530],[1997,47798986],[1998,48877408],[1999,50400431],[2000,52021832],[2001,53682112],[2002,55379852],[2003,57124974],[2004,58919207],[2005,60764490],[2006,62660551],[2007,64606759],[2008,66604314]],"lifeExpectancy":[[1800,31.6],[1940,31.6],[1950,38.46],[1951,38.63],[1952,38.96],[1953,39.29],[1954,39.6],[1955,39.91],[1956,40.2],[1957,40.49],[1958,40.76],[1959,41.03],[1960,41.28],[1961,41.53],[1962,41.76],[1963,41.99],[1964,42.21],[1965,42.44],[1966,42.69],[1967,42.95],[1968,43.23],[1969,43.52],[1970,43.83],[1971,44.12],[1972,44.39],[1973,44.64],[1974,44.87],[1975,45.09],[1976,45.32],[1977,45.57],[1978,45.86],[1979,46.17],[1980,46.49],[1981,46.8],[1982,47.08],[1983,47.3],[1984,47.46],[1985,47.57],[1986,47.65],[1987,47.71],[1988,47.76],[1989,47.8],[1990,47.79],[1991,47.68],[1992,47.45],[1993,47.12],[1994,46.71],[1995,46.29],[1996,45.96],[1997,45.79],[1998,45.8],[1999,46],[2000,46.34],[2001,46.75],[2002,47.13],[2003,47.4],[2004,47.57],[2005,47.63],[2006,47.63],[2007,47.63],[2008,47.68],[2009,47.81]]},{"name":"Congo, Rep.","region":"Sub-Saharan Africa","income":[[1800,387.38],[1820,387.38],[1913,598.52],[1950,2045.71],[1951,2086.26],[1952,2125.62],[1953,2163.66],[1954,2202.17],[1955,2240.94],[1956,2277.93],[1957,2315.06],[1958,2352.14],[1959,2388.98],[1960,2416.97],[1961,2441.68],[1962,2464.78],[1963,2489.39],[1964,2513.69],[1965,2537.54],[1966,2606.33],[1967,2677.94],[1968,2749.04],[1969,2822.37],[1970,2896.11],[1971,3049.9],[1972,3213.15],[1973,3382.1],[1974,3557.86],[1975,3740.93],[1976,3654.71],[1977,3259.18],[1978,3113.91],[1979,3487.82],[1980,3968.45],[1981,4653.12],[1982,4879.51],[1983,4974.83],[1984,5137.42],[1985,4760.07],[1986,4302.47],[1987,4201.19],[1988,4080.9],[1989,4102.61],[1990,4066.16],[1991,4036.64],[1992,4016.24],[1993,3850.64],[1994,3523.16],[1995,3554.39],[1996,3596.92],[1997,3484.16],[1998,3516.06],[1999,3304.52],[2000,3423.52],[2001,3397.84],[2002,3484.06],[2003,3425.54],[2004,3455.04],[2005,3621],[2006,3738.39],[2007,3575.55],[2008,3668.41],[2009,3834.67]],"population":[[1800,314465],[1820,314465],[1950,826308],[1951,840223],[1952,854885],[1953,870325],[1954,886576],[1955,903672],[1956,921651],[1957,940458],[1958,960128],[1959,980700],[1960,1002214],[1961,1024609],[1962,1047924],[1963,1072198],[1964,1097474],[1965,1123795],[1966,1151207],[1967,1179760],[1968,1209505],[1969,1240372],[1970,1272408],[1971,1305794],[1972,1340458],[1973,1376455],[1974,1414408],[1975,1453638],[1976,1494409],[1977,1536769],[1978,1580775],[1979,1626497],[1980,1674005],[1981,1723397],[1982,1774735],[1983,1828053],[1984,1883386],[1985,1941071],[1986,2001363],[1987,2064095],[1988,2129084],[1989,2196100],[1990,2264842],[1991,2336155],[1992,2409073],[1993,2487553],[1994,2568840],[1995,2648529],[1996,2729757],[1997,2800947],[1998,2878481],[1999,2970784],[2000,3102404],[2001,3238410],[2002,3328795],[2003,3412576],[2004,3502035],[2005,3602269],[2006,3702314],[2007,3800610],[2008,3903318]],"lifeExpectancy":[[1800,32.7],[1945,32.7],[1950,41.21],[1951,41.62],[1952,42.42],[1953,43.21],[1954,43.98],[1955,44.73],[1956,45.47],[1957,46.18],[1958,46.89],[1959,47.57],[1960,48.24],[1961,48.9],[1962,49.54],[1963,50.17],[1964,50.79],[1965,51.41],[1966,52.02],[1967,52.62],[1968,53.22],[1969,53.82],[1970,54.42],[1971,55.01],[1972,55.61],[1973,56.19],[1974,56.76],[1975,57.31],[1976,57.83],[1977,58.34],[1978,58.8],[1979,59.23],[1980,59.6],[1981,59.91],[1982,60.15],[1983,60.33],[1984,60.43],[1985,60.44],[1986,60.37],[1987,60.21],[1988,59.98],[1989,59.66],[1990,59.26],[1991,58.76],[1992,58.16],[1993,57.5],[1994,56.8],[1995,56.09],[1996,55.41],[1997,54.8],[1998,54.28],[1999,53.87],[2000,53.58],[2001,53.39],[2002,53.29],[2003,53.24],[2004,53.24],[2005,53.28],[2006,53.35],[2007,53.46],[2008,53.59],[2009,53.75]]},{"name":"Cote d'Ivoire","region":"Sub-Saharan Africa","income":[[1800,549.19],[1820,549.19],[1913,848.53],[1950,1344.43],[1951,1366.57],[1952,1388.59],[1953,1410.48],[1954,1433.43],[1955,1455.9],[1956,1478.01],[1957,1500.9],[1958,1522.78],[1959,1537.94],[1960,1622.67],[1961,1714.79],[1962,1728.87],[1963,1935.62],[1964,2192.29],[1965,2055.67],[1966,2120.46],[1967,2052.05],[1968,2258.48],[1969,2245],[1970,2367.24],[1971,2364.51],[1972,2378.2],[1973,2453.1],[1974,2421.08],[1975,2324.96],[1976,2501.3],[1977,2517.74],[1978,2661.38],[1979,2608.89],[1980,2704.73],[1981,2695.54],[1982,2602.71],[1983,2411.97],[1984,2250.26],[1985,2279.11],[1986,2267.42],[1987,2156.96],[1988,2049.2],[1989,1972.84],[1990,1760.42],[1991,1692.62],[1992,1648.07],[1993,1598.85],[1994,1577.61],[1995,1640.62],[1996,1724],[1997,1786.27],[1998,1840.24],[1999,1830.03],[2000,1746.31],[2001,1710.01],[2002,1648.8],[2003,1587.23],[2004,1579.42],[2005,1575],[2006,1540.28],[2007,1519.12],[2008,1509.24],[2009,1520.23]],"population":[[1800,1088530],[1820,1088530],[1950,2860288],[1951,2918070],[1952,2977019],[1953,3037159],[1954,3098513],[1955,3164270],[1956,3231423],[1957,3300000],[1958,3373788],[1959,3463050],[1960,3576077],[1961,3700174],[1962,3832408],[1963,3985277],[1964,4148402],[1965,4326838],[1966,4526508],[1967,4744870],[1968,4983741],[1969,5234620],[1970,5503630],[1971,5786465],[1972,6071696],[1973,6351885],[1974,6621723],[1975,6888884],[1976,7170368],[1977,7459574],[1978,7756303],[1979,8061217],[1980,8375546],[1981,8697986],[1982,9025951],[1983,9360268],[1984,9701389],[1985,10049353],[1986,10403065],[1987,10761098],[1988,11122436],[1989,11484678],[1990,11981454],[1991,12461399],[1992,12772596],[1993,13139524],[1994,13582754],[1995,13988434],[1996,14336812],[1997,14625967],[1998,14878476],[1999,15200755],[2000,15563387],[2001,15909606],[2002,16252726],[2003,16595981],[2004,16944598],[2005,17298040],[2006,17654843],[2007,18013409],[2008,18373060]],"lifeExpectancy":[[1800,31.9],[1945,31.9],[1950,36.64],[1951,36.8],[1952,37.13],[1953,37.48],[1954,37.87],[1955,38.29],[1956,38.74],[1957,39.21],[1958,39.7],[1959,40.21],[1960,40.71],[1961,41.21],[1962,41.69],[1963,42.16],[1964,42.64],[1965,43.14],[1966,43.72],[1967,44.38],[1968,45.15],[1969,46.02],[1970,46.99],[1971,48.05],[1972,49.16],[1973,50.27],[1974,51.36],[1975,52.38],[1976,53.28],[1977,54.07],[1978,54.73],[1979,55.26],[1980,55.66],[1981,55.96],[1982,56.2],[1983,56.39],[1984,56.56],[1985,56.72],[1986,56.87],[1987,57.02],[1988,57.14],[1989,57.24],[1990,57.3],[1991,57.31],[1992,57.26],[1993,57.16],[1994,57],[1995,56.79],[1996,56.53],[1997,56.24],[1998,55.94],[1999,55.66],[2000,55.45],[2001,55.32],[2002,55.3],[2003,55.4],[2004,55.61],[2005,55.94],[2006,56.36],[2007,56.84],[2008,57.34],[2009,57.86]]},{"name":"Equatorial Guinea","region":"Sub-Saharan Africa","income":[[1800,379.13],[1820,379.13],[1913,361.54],[1950,354.77],[1951,368.45],[1952,375.64],[1953,385.57],[1954,401.06],[1955,407.34],[1956,418.34],[1957,426.1],[1958,433.52],[1959,451.56],[1960,490.52],[1961,529.99],[1962,582.84],[1963,661.42],[1964,752.29],[1965,844.87],[1966,869.18],[1967,915.6],[1968,935.83],[1969,896.39],[1970,860.36],[1971,779.61],[1972,672.41],[1973,700.14],[1974,741.54],[1975,850.5],[1976,954.17],[1977,958.57],[1978,1033.54],[1979,1012.78],[1980,970.46],[1981,935.92],[1982,927.83],[1983,917.08],[1984,1103.64],[1985,920.91],[1986,936.05],[1987,966.9],[1988,1010.4],[1989,1025.24],[1990,1027.71],[1991,1048.47],[1992,1132.06],[1993,1172.91],[1994,1201.49],[1995,1337.98],[1996,1684.68],[1997,2814.48],[1998,3349.46],[1999,4623.26],[2000,5240.45],[2001,7192.38],[2002,7703.5],[2003,8913.56],[2004,11487.29],[2005,11999],[2006,11807.73],[2007,13934.25],[2008,14988.85],[2009,15342.2]],"population":[[1800,80377],[1820,80377],[1920,112000],[1932,167000],[1942,171000],[1950,211204],[1951,214064],[1952,216964],[1953,219902],[1954,222880],[1955,225899],[1956,229383],[1957,232922],[1958,236514],[1959,240163],[1960,243867],[1961,248028],[1962,249220],[1963,250419],[1964,251623],[1965,252833],[1966,256349],[1967,259864],[1968,263377],[1969,266898],[1970,270435],[1971,273999],[1972,277603],[1973,271301],[1974,249952],[1975,213292],[1976,190808],[1977,192675],[1978,194597],[1979,221299],[1980,256009],[1981,271778],[1982,285483],[1983,299577],[1984,314447],[1985,324741],[1986,332827],[1987,341244],[1988,349968],[1989,359008],[1990,368379],[1991,378008],[1992,387838],[1993,397863],[1994,408095],[1995,418534],[1996,429158],[1997,439971],[1998,450938],[1999,462037],[2000,473216],[2001,484425],[2002,495627],[2003,506800],[2004,517927],[2005,529034],[2006,540109],[2007,551201],[2008,562339]],"lifeExpectancy":[[1800,29.8],[1945,29.8],[1950,33.88],[1951,34.03],[1952,34.33],[1953,34.63],[1954,34.93],[1955,35.23],[1956,35.53],[1957,35.83],[1958,36.13],[1959,36.43],[1960,36.73],[1961,37.03],[1962,37.33],[1963,37.63],[1964,37.93],[1965,38.24],[1966,38.54],[1967,38.84],[1968,39.14],[1969,39.44],[1970,39.74],[1971,40.05],[1972,40.35],[1973,40.65],[1974,40.95],[1975,41.25],[1976,41.55],[1977,41.85],[1978,42.17],[1979,42.48],[1980,42.81],[1981,43.16],[1982,43.52],[1983,43.89],[1984,44.27],[1985,44.67],[1986,45.08],[1987,45.5],[1988,45.92],[1989,46.34],[1990,46.74],[1991,47.13],[1992,47.48],[1993,47.8],[1994,48.09],[1995,48.32],[1996,48.49],[1997,48.61],[1998,48.68],[1999,48.72],[2000,48.74],[2001,48.77],[2002,48.82],[2003,48.92],[2004,49.08],[2005,49.29],[2006,49.57],[2007,49.89],[2008,50.25],[2009,50.64]]},{"name":"Eritrea","region":"Sub-Saharan Africa","income":[[1800,583.95],[1820,583.95],[1913,381.13],[1950,321.62],[1951,325.28],[1952,328.94],[1953,342.07],[1954,336.19],[1955,348.03],[1956,353.14],[1957,344.16],[1958,348.98],[1959,351.76],[1960,362.82],[1961,373.26],[1962,381],[1963,422.94],[1964,434.87],[1965,451.17],[1966,459.13],[1967,468.79],[1968,466.87],[1969,473.94],[1970,490.38],[1971,500.27],[1972,514.32],[1973,519.46],[1974,513.76],[1975,502.68],[1976,503.64],[1977,505.75],[1978,491.88],[1979,517.1],[1980,534.43],[1981,531.04],[1982,524.88],[1983,536.48],[1984,513.94],[1985,472.36],[1986,491.55],[1987,521.13],[1988,512.63],[1989,501.93],[1990,476.62],[1991,526.15],[1992,582.86],[1993,658.71],[1994,794.98],[1995,806.51],[1996,866.1],[1997,913.47],[1998,905.29],[1999,877.61],[2000,741.57],[2001,775.23],[2002,765.35],[2003,713.58],[2004,694.36],[2005,685],[2006,636.32],[2007,624.3],[2008,545.79],[2009,548.37]],"population":[[1800,205010],[1820,205010],[1950,1402510],[1951,1420279],[1952,1438760],[1953,1457971],[1954,1477939],[1955,1498684],[1956,1520231],[1957,1542611],[1958,1565847],[1959,1589868],[1960,1614698],[1961,1640231],[1962,1666618],[1963,1693045],[1964,1718392],[1965,1746439],[1966,1773393],[1967,1820319],[1968,1857075],[1969,2007110],[1970,2160460],[1971,2208336],[1972,2260187],[1973,2340837],[1974,2380509],[1975,2421037],[1976,2469199],[1977,2512642],[1978,2537978],[1979,2556806],[1980,2568741],[1981,2592782],[1982,2637297],[1983,2693884],[1984,2759280],[1985,2789056],[1986,2837875],[1987,2915959],[1988,2978325],[1989,2989759],[1990,2996243],[1991,3310098],[1992,3668440],[1993,3743948],[1994,3815601],[1995,3858978],[1996,3926212],[1997,4058319],[1998,4183431],[1999,4317425],[2000,4356581],[2001,4360461],[2002,4414865],[2003,4470145],[2004,4554408],[2005,4669638],[2006,4786994],[2007,4906585],[2008,5028475]],"lifeExpectancy":[[1800,30.2],[1945,30.2],[1950,35.08],[1951,35.29],[1952,35.72],[1953,36.14],[1954,36.56],[1955,36.99],[1956,37.41],[1957,37.84],[1958,38.26],[1959,38.69],[1960,39.11],[1961,39.53],[1962,39.95],[1963,40.37],[1964,40.78],[1965,41.19],[1966,41.61],[1967,42.04],[1968,42.47],[1969,42.89],[1970,43.3],[1971,43.66],[1972,43.98],[1973,44.23],[1974,44.42],[1975,44.53],[1976,44.54],[1977,44.47],[1978,44.35],[1979,44.19],[1980,44.05],[1981,43.97],[1982,43.99],[1983,44.13],[1984,44.41],[1985,44.82],[1986,45.36],[1987,45.98],[1988,46.65],[1989,47.36],[1990,48.09],[1991,48.87],[1992,49.68],[1993,50.53],[1994,51.4],[1995,52.27],[1996,53.11],[1997,53.9],[1998,54.65],[1999,55.33],[2000,55.94],[2001,56.5],[2002,57],[2003,57.48],[2004,57.93],[2005,58.37],[2006,58.8],[2007,59.21],[2008,59.62],[2009,60.03]]},{"name":"Ethiopia","region":"Sub-Saharan Africa","income":[[1800,619.21],[1820,619.21],[1913,415.14],[1950,354.09],[1951,358.12],[1952,362.15],[1953,376.6],[1954,370.13],[1955,383.17],[1956,388.79],[1957,378.9],[1958,384.21],[1959,387.26],[1960,399.45],[1961,410.94],[1962,419.46],[1963,465.63],[1964,478.77],[1965,496.71],[1966,505.48],[1967,516.12],[1968,514],[1969,521.78],[1970,539.88],[1971,550.77],[1972,566.24],[1973,571.9],[1974,565.62],[1975,553.43],[1976,554.48],[1977,556.81],[1978,541.54],[1979,569.31],[1980,588.38],[1981,584.64],[1982,577.86],[1983,590.64],[1984,565.82],[1985,520.04],[1986,541.17],[1987,573.74],[1988,564.37],[1989,552.6],[1990,524.74],[1991,489.83],[1992,421.35],[1993,462.36],[1994,460.14],[1995,471.41],[1996,512.79],[1997,515.89],[1998,481.46],[1999,496.87],[2000,512.36],[2001,537.42],[2002,530.05],[2003,498.42],[2004,549.6],[2005,591],[2006,642.27],[2007,699.61],[2008,757.88],[2009,812.16]],"population":[[1800,2948990],[1820,2948990],[1950,20174562],[1951,20511408],[1952,20860941],[1953,21223618],[1954,21599912],[1955,21990323],[1956,22395376],[1957,22815614],[1958,23251610],[1959,23702450],[1960,24168672],[1961,24648849],[1962,25145372],[1963,25659679],[1964,26192357],[1965,26740270],[1966,27307798],[1967,27860297],[1968,28451255],[1969,28962280],[1970,29468504],[1971,30099662],[1972,30770372],[1973,31445177],[1974,32199367],[1975,32975868],[1976,33824835],[1977,34617799],[1978,35216317],[1979,35664267],[1980,36036457],[1981,37056244],[1982,38111756],[1983,39204501],[1984,40072430],[1985,40698078],[1986,41662199],[1987,42999530],[1988,44606289],[1989,46396556],[1990,48197268],[1991,50274862],[1992,52088559],[1993,53446251],[1994,54954863],[1995,56628083],[1996,58283759],[1997,59861301],[1998,61436985],[1999,63054968],[2000,64690052],[2001,66308836],[2002,67946797],[2003,69628079],[2004,71336571],[2005,73053286],[2006,74777981],[2007,76511887],[2008,78254090]],"lifeExpectancy":[[1800,29.7],[1945,29.7],[1950,33.3],[1951,33.47],[1952,33.83],[1953,34.25],[1954,34.72],[1955,35.24],[1956,35.81],[1957,36.42],[1958,37.07],[1959,37.74],[1960,38.41],[1961,39.07],[1962,39.7],[1963,40.28],[1964,40.8],[1965,41.25],[1966,41.65],[1967,42.01],[1968,42.33],[1969,42.64],[1970,42.93],[1971,43.21],[1972,43.49],[1973,43.76],[1974,44.01],[1975,44.21],[1976,44.32],[1977,44.33],[1978,44.24],[1979,44.08],[1980,43.9],[1981,43.76],[1982,43.72],[1983,43.82],[1984,44.07],[1985,44.45],[1986,44.93],[1987,45.46],[1988,45.99],[1989,46.49],[1990,46.96],[1991,47.41],[1992,47.84],[1993,48.28],[1994,48.72],[1995,49.17],[1996,49.62],[1997,50.07],[1998,50.52],[1999,50.96],[2000,51.4],[2001,51.85],[2002,52.31],[2003,52.78],[2004,53.27],[2005,53.76],[2006,54.26],[2007,54.75],[2008,55.22],[2009,55.69]]},{"name":"Gabon","region":"Sub-Saharan Africa","income":[[1800,377.54],[1820,377.54],[1913,583.32],[1950,4041.34],[1951,4166.22],[1952,4293.48],[1953,4422.18],[1954,4556.15],[1955,4694.68],[1956,4833.63],[1957,4976.2],[1958,5121.54],[1959,5268.77],[1960,5440.07],[1961,6209.47],[1962,6631.46],[1963,6988.93],[1964,7256.21],[1965,7803.24],[1966,8093.55],[1967,8358.76],[1968,8486.71],[1969,9060.22],[1970,9691.64],[1971,10478.03],[1972,11401.95],[1973,12250.84],[1974,16647.43],[1975,19327.89],[1976,25536.95],[1977,21745.57],[1978,16084.69],[1979,15732.21],[1980,15696.83],[1981,16042.76],[1982,15113.36],[1983,15510.03],[1984,16193.67],[1985,15349.56],[1986,14768.66],[1987,11864.41],[1988,12980.29],[1989,13663.2],[1990,13944.56],[1991,14364.38],[1992,13522.16],[1993,13664.83],[1994,13792.03],[1995,14105.84],[1996,14258.12],[1997,14722.84],[1998,14894.74],[1999,13276.45],[2000,12764.05],[2001,12787.09],[2002,12521.71],[2003,12610.07],[2004,12568.46],[2005,12742],[2006,12577.37],[2007,12920.7],[2008,13075.4],[2009,12704.99]],"population":[[1800,158227],[1820,158227],[1950,415767],[1951,418227],[1952,420702],[1953,423276],[1954,425951],[1955,428772],[1956,431741],[1957,434904],[1958,438310],[1959,442007],[1960,446003],[1961,450485],[1962,455661],[1963,461357],[1964,467592],[1965,474386],[1966,481519],[1967,489004],[1968,496853],[1969,503763],[1970,514597],[1971,525927],[1972,537977],[1973,560622],[1974,597096],[1975,647426],[1976,687695],[1977,706367],[1978,726252],[1979,722642],[1980,713502],[1981,730507],[1982,753874],[1983,778618],[1984,804827],[1985,832590],[1986,858970],[1987,880397],[1988,899193],[1989,918253],[1990,937493],[1991,959814],[1992,985739],[1993,1012516],[1994,1040151],[1995,1068383],[1996,1096999],[1997,1126189],[1998,1156362],[1999,1194780],[2000,1235484],[2001,1268125],[2002,1299304],[2003,1331419],[2004,1363116],[2005,1394307],[2006,1424906],[2007,1454867],[2008,1484149]],"lifeExpectancy":[[1800,30.6],[1945,30.6],[1950,35.97],[1951,36.26],[1952,36.8],[1953,37.29],[1954,37.72],[1955,38.11],[1956,38.44],[1957,38.74],[1958,39.01],[1959,39.28],[1960,39.58],[1961,39.94],[1962,40.39],[1963,40.94],[1964,41.6],[1965,42.36],[1966,43.2],[1967,44.08],[1968,44.96],[1969,45.84],[1970,46.69],[1971,47.5],[1972,48.29],[1973,49.05],[1974,49.8],[1975,50.54],[1976,51.28],[1977,52.04],[1978,52.82],[1979,53.61],[1980,54.43],[1981,55.28],[1982,56.15],[1983,57.02],[1984,57.86],[1985,58.65],[1986,59.36],[1987,59.98],[1988,60.48],[1989,60.86],[1990,61.13],[1991,61.29],[1992,61.37],[1993,61.39],[1994,61.36],[1995,61.27],[1996,61.11],[1997,60.88],[1998,60.57],[1999,60.24],[2000,59.9],[2001,59.61],[2002,59.4],[2003,59.3],[2004,59.32],[2005,59.46],[2006,59.72],[2007,60.07],[2008,60.46],[2009,60.89]]},{"name":"Ghana","region":"Sub-Saharan Africa","income":[[1800,505.14],[1820,505.14],[1913,780.48],[1950,943.1],[1951,952.97],[1952,911.3],[1953,1010.36],[1954,1107.53],[1955,1008.52],[1956,1039.12],[1957,1043.56],[1958,998.03],[1959,1110.59],[1960,1158.85],[1961,1167.03],[1962,1190.04],[1963,1197.51],[1964,1189.01],[1965,1170.79],[1966,1138.51],[1967,1125.7],[1968,1108.41],[1969,1114.11],[1970,1197.15],[1971,1253.21],[1972,1178.22],[1973,1174.72],[1974,1223.12],[1975,1048.26],[1976,990.2],[1977,993.22],[1978,1059.27],[1979,1017.28],[1980,972.84],[1981,960.18],[1982,876.03],[1983,784.53],[1984,807.25],[1985,822.8],[1986,831.21],[1987,847.01],[1988,870.05],[1989,889.39],[1990,893.8],[1991,915.14],[1992,925.06],[1993,942.02],[1994,945.56],[1995,961.42],[1996,984.87],[1997,1005.25],[1998,1030.05],[1999,1052.28],[2000,1067.6],[2001,1088.32],[2002,1111.98],[2003,1143.69],[2004,1181.71],[2005,1225],[2006,1271.24],[2007,1309.88],[2008,1370.14],[2009,1382.95]],"population":[[1800,2016034],[1820,2016034],[1870,1579000],[1913,2043000],[1950,5297454],[1951,5436555],[1952,5581001],[1953,5731008],[1954,5886798],[1955,6048606],[1956,6216679],[1957,6391288],[1958,6572719],[1959,6761280],[1960,6958283],[1961,7153508],[1962,7355248],[1963,7563839],[1964,7781813],[1965,8009602],[1966,8245481],[1967,8490213],[1968,8744302],[1969,9009048],[1970,8788945],[1971,9065500],[1972,9354120],[1973,9649958],[1974,9905330],[1975,10118240],[1976,10333176],[1977,10538093],[1978,10720559],[1979,10878226],[1980,11015630],[1981,11176529],[1982,11400338],[1983,12150541],[1984,12829647],[1985,13224725],[1986,13776193],[1987,14168101],[1988,14568008],[1989,14975941],[1990,15399466],[1991,15837581],[1992,16278738],[1993,16784962],[1994,17274479],[1995,17669087],[1996,18041282],[1997,18418288],[1998,18819453],[1999,19232823],[2000,19657719],[2001,20093021],[2002,20550751],[2003,21019630],[2004,21483085],[2005,21946247],[2006,22409572],[2007,22873338],[2008,23336661]],"lifeExpectancy":[[1800,28],[1921,28],[1925,28],[1950,42.81],[1951,42.99],[1952,43.36],[1953,43.71],[1954,44.04],[1955,44.37],[1956,44.69],[1957,44.99],[1958,45.28],[1959,45.56],[1960,45.83],[1961,46.09],[1962,46.35],[1963,46.6],[1964,46.86],[1965,47.14],[1966,47.43],[1967,47.75],[1968,48.1],[1969,48.48],[1970,48.89],[1971,49.32],[1972,49.77],[1973,50.23],[1974,50.69],[1975,51.14],[1976,51.57],[1977,51.98],[1978,52.36],[1979,52.71],[1980,53.03],[1981,53.33],[1982,53.61],[1983,53.88],[1984,54.17],[1985,54.49],[1986,54.9],[1987,55.39],[1988,55.97],[1989,56.6],[1990,57.24],[1991,57.85],[1992,58.38],[1993,58.77],[1994,59.01],[1995,59.09],[1996,59.02],[1997,58.83],[1998,58.56],[1999,58.25],[2000,57.91],[2001,57.57],[2002,57.24],[2003,56.94],[2004,56.7],[2005,56.54],[2006,56.47],[2007,56.51],[2008,56.62],[2009,56.83]]},{"name":"Guinea","region":"Sub-Saharan Africa","income":[[1800,375.96],[1820,375.96],[1913,448.43],[1950,481],[1951,502.27],[1952,510.2],[1953,520.99],[1954,543.59],[1955,553.34],[1956,565.42],[1957,576.27],[1958,583.77],[1959,606.89],[1960,621.38],[1961,650.64],[1962,686.37],[1963,637.63],[1964,666.64],[1965,699.08],[1966,700.53],[1967,708.76],[1968,716.29],[1969,723.13],[1970,733.71],[1971,741.47],[1972,741.67],[1973,758.7],[1974,795.61],[1975,812.14],[1976,873.48],[1977,874.69],[1978,879.33],[1979,862.64],[1980,873.69],[1981,860.19],[1982,857.25],[1983,848.68],[1984,833.19],[1985,807.66],[1986,801.25],[1987,805.57],[1988,831.91],[1989,843.64],[1990,834.48],[1991,797.48],[1992,794.35],[1993,809.58],[1994,815.22],[1995,825.5],[1996,838.4],[1997,869.45],[1998,897.23],[1999,909.94],[2000,906.62],[2001,934.76],[2002,945.58],[2003,934.37],[2004,937.47],[2005,946],[2006,939.12],[2007,925.58],[2008,940.88],[2009,908.86]],"population":[[1800,983959],[1820,983959],[1950,2585509],[1951,2624584],[1952,2664249],[1953,2704514],[1954,2745388],[1955,2786879],[1956,2830712],[1957,2876726],[1958,2924954],[1959,2975408],[1960,3028117],[1961,3083075],[1962,3140003],[1963,3198659],[1964,3259080],[1965,3321330],[1966,3385447],[1967,3451418],[1968,3519302],[1969,3589194],[1970,3661175],[1971,3735240],[1972,3811387],[1973,3889716],[1974,3970332],[1975,4053377],[1976,4138911],[1977,4227026],[1978,4317827],[1979,4411454],[1980,4508009],[1981,4607654],[1982,4710497],[1983,4816673],[1984,5045067],[1985,5327721],[1986,5505366],[1987,5650262],[1988,5800268],[1989,5955501],[1990,6278696],[1991,6727693],[1992,6990574],[1993,7195158],[1994,7431162],[1995,7682082],[1996,7949756],[1997,8048834],[1998,8174290],[1999,8431352],[2000,8638858],[2001,8713005],[2002,8807818],[2003,9020431],[2004,9234177],[2005,9452670],[2006,9690222],[2007,9947814],[2008,10211437]],"lifeExpectancy":[[1800,29.5],[1945,29.5],[1950,34.62],[1951,34.69],[1952,34.84],[1953,35],[1954,35.17],[1955,35.35],[1956,35.54],[1957,35.75],[1958,35.96],[1959,36.18],[1960,36.42],[1961,36.66],[1962,36.91],[1963,37.17],[1964,37.45],[1965,37.72],[1966,38],[1967,38.28],[1968,38.56],[1969,38.85],[1970,39.16],[1971,39.49],[1972,39.85],[1973,40.26],[1974,40.69],[1975,41.16],[1976,41.64],[1977,42.12],[1978,42.6],[1979,43.08],[1980,43.54],[1981,43.99],[1982,44.43],[1983,44.87],[1984,45.32],[1985,45.78],[1986,46.25],[1987,46.74],[1988,47.24],[1989,47.75],[1990,48.27],[1991,48.79],[1992,49.28],[1993,49.76],[1994,50.23],[1995,50.69],[1996,51.15],[1997,51.64],[1998,52.15],[1999,52.7],[2000,53.27],[2001,53.86],[2002,54.46],[2003,55.05],[2004,55.64],[2005,56.21],[2006,56.76],[2007,57.31],[2008,57.84],[2009,58.35]]},{"name":"Guinea-Bissau","region":"Sub-Saharan Africa","income":[[1800,345],[1820,345],[1913,366.87],[1950,375.95],[1951,390.83],[1952,405.9],[1953,422.18],[1954,495.74],[1955,464.95],[1956,516.5],[1957,537.35],[1958,540.85],[1959,534.3],[1960,550.27],[1961,574.7],[1962,597.24],[1963,608.93],[1964,659.09],[1965,692.24],[1966,723.48],[1967,752.62],[1968,762.76],[1969,786.65],[1970,809.41],[1971,773.81],[1972,820.22],[1973,818.98],[1974,847.35],[1975,859.11],[1976,837.67],[1977,764.73],[1978,850.21],[1979,852.16],[1980,700.4],[1981,808.75],[1982,838.12],[1983,752.58],[1984,765.49],[1985,789.16],[1986,765.22],[1987,736.42],[1988,747.97],[1989,734.08],[1990,740.35],[1991,759.66],[1992,745.54],[1993,737.76],[1994,739.54],[1995,754.03],[1996,772.64],[1997,796.66],[1998,559.2],[1999,590.7],[2000,632.08],[2001,619.45],[2002,575.7],[2003,560.94],[2004,562.08],[2005,569],[2006,568.44],[2007,557.62],[2008,564.6],[2009,568.94]],"population":[[1800,218167],[1820,218167],[1950,573268],[1951,576948],[1952,580653],[1953,584381],[1954,588133],[1955,591909],[1956,596365],[1957,601095],[1958,606044],[1959,611217],[1960,616682],[1961,622070],[1962,627820],[1963,633939],[1964,610284],[1965,603780],[1966,598111],[1967,601287],[1968,611160],[1969,615749],[1970,620020],[1971,623282],[1972,625361],[1973,633266],[1974,640043],[1975,680919],[1976,732707],[1977,745228],[1978,758113],[1979,771376],[1980,789053],[1981,807257],[1982,825987],[1983,845212],[1984,864949],[1985,885234],[1986,906084],[1987,927524],[1988,949625],[1989,972421],[1990,995991],[1991,1020178],[1992,1050938],[1993,1084327],[1994,1116326],[1995,1143057],[1996,1165914],[1997,1193708],[1998,1221772],[1999,1249889],[2000,1278273],[2001,1305832],[2002,1332459],[2003,1359242],[2004,1386228],[2005,1413446],[2006,1442029],[2007,1472041],[2008,1502442]],"lifeExpectancy":[[1800,29.3],[1945,29.3],[1950,31.97],[1951,32.1],[1952,32.37],[1953,32.63],[1954,32.9],[1955,33.16],[1956,33.43],[1957,33.7],[1958,33.97],[1959,34.24],[1960,34.51],[1961,34.78],[1962,35.06],[1963,35.33],[1964,35.6],[1965,35.86],[1966,36.13],[1967,36.4],[1968,36.67],[1969,36.94],[1970,37.2],[1971,37.46],[1972,37.71],[1973,37.95],[1974,38.2],[1975,38.45],[1976,38.73],[1977,39.04],[1978,39.38],[1979,39.76],[1980,40.17],[1981,40.62],[1982,41.08],[1983,41.56],[1984,42.02],[1985,42.46],[1986,42.84],[1987,43.17],[1988,43.43],[1989,43.65],[1990,43.81],[1991,43.96],[1992,44.1],[1993,44.26],[1994,44.45],[1995,44.66],[1996,44.89],[1997,45.14],[1998,45.38],[1999,45.61],[2000,45.84],[2001,46.05],[2002,46.27],[2003,46.48],[2004,46.71],[2005,46.95],[2006,47.22],[2007,47.51],[2008,47.84],[2009,48.2]]},{"name":"Kenya","region":"Sub-Saharan Africa","income":[[1800,512.93],[1820,512.93],[1913,792.51],[1950,832.27],[1951,986.6],[1952,853.54],[1953,809.44],[1954,878.6],[1955,918.37],[1956,941.46],[1957,944.44],[1958,926.84],[1959,921.34],[1960,928.11],[1961,878.15],[1962,896.97],[1963,912.86],[1964,970.14],[1965,950.16],[1966,1038.15],[1967,1056.74],[1968,1096.54],[1969,1126.71],[1970,1170.44],[1971,1203.44],[1972,1222.36],[1973,1240.76],[1974,1255.49],[1975,1204.84],[1976,1206.85],[1977,1267.61],[1978,1328.72],[1979,1325.06],[1980,1344.17],[1981,1321.86],[1982,1348.23],[1983,1305.72],[1984,1279.51],[1985,1286.56],[1986,1330.65],[1987,1361.94],[1988,1396.42],[1989,1413.7],[1990,1429],[1991,1402.96],[1992,1341.92],[1993,1305.89],[1994,1309.87],[1995,1335.67],[1996,1361.07],[1997,1360.49],[1998,1355.29],[1999,1346.86],[2000,1318.49],[2001,1304.01],[2002,1287.51],[2003,1291.42],[2004,1317.47],[2005,1359],[2006,1419.87],[2007,1492.25],[2008,1488.42],[2009,1493.53]],"population":[[1800,2574000],[1921,2574000],[1931,3041000],[1949,5406000],[1950,6121184],[1951,6289336],[1952,6464046],[1953,6646268],[1954,6836360],[1955,7033999],[1956,7240247],[1957,7454779],[1958,7678739],[1959,7912591],[1960,8156827],[1961,8411966],[1962,8678557],[1963,8957178],[1964,9247518],[1965,9549179],[1966,9863639],[1967,10191512],[1968,10532389],[1969,10887934],[1970,11247182],[1971,11633030],[1972,12044785],[1973,12482054],[1974,12944287],[1975,13433414],[1976,13951436],[1977,14500404],[1978,15079690],[1979,15690251],[1980,16331401],[1981,16988530],[1982,17661452],[1983,18349550],[1984,19051861],[1985,19763285],[1986,20479093],[1987,21198082],[1988,21918633],[1989,22638202],[1990,23358413],[1991,24125055],[1992,25020539],[1993,25813694],[1994,26430941],[1995,27060142],[1996,27670930],[1997,28263827],[1998,28826109],[1999,29383563],[2000,29985839],[2001,30652299],[2002,31386842],[2003,32168495],[2004,32982109],[2005,33829590],[2006,34707817],[2007,35610177],[2008,36529155]],"lifeExpectancy":[[1800,25.5],[1922,25.5],[1927,23.92],[1937,26.37],[1945,28.82],[1950,41.57],[1951,41.72],[1952,42.06],[1953,42.44],[1954,42.87],[1955,43.35],[1956,43.87],[1957,44.44],[1958,45.04],[1959,45.67],[1960,46.32],[1961,46.96],[1962,47.6],[1963,48.21],[1964,48.8],[1965,49.36],[1966,49.92],[1967,50.47],[1968,51.02],[1969,51.59],[1970,52.16],[1971,52.74],[1972,53.31],[1973,53.86],[1974,54.41],[1975,54.95],[1976,55.49],[1977,56.04],[1978,56.6],[1979,57.16],[1980,57.69],[1981,58.17],[1982,58.59],[1983,58.92],[1984,59.17],[1985,59.35],[1986,59.5],[1987,59.63],[1988,59.74],[1989,59.83],[1990,59.84],[1991,59.72],[1992,59.43],[1993,58.95],[1994,58.29],[1995,57.47],[1996,56.52],[1997,55.5],[1998,54.51],[1999,53.58],[2000,52.82],[2001,52.28],[2002,51.98],[2003,51.91],[2004,52.08],[2005,52.46],[2006,53],[2007,53.63],[2008,54.3],[2009,54.95]]},{"name":"Lesotho","region":"Sub-Saharan Africa","income":[[1800,364],[1820,364],[1913,303.98],[1950,282.95],[1951,294.6],[1952,298.85],[1953,306.02],[1954,317.54],[1955,322.51],[1956,329.2],[1957,336],[1958,342.58],[1959,346.22],[1960,364.73],[1961,364.1],[1962,411.8],[1963,446.09],[1964,472.32],[1965,472.45],[1966,459.69],[1967,498.64],[1968,485.57],[1969,481.65],[1970,480.98],[1971,426.31],[1972,496.58],[1973,612.03],[1974,634.32],[1975,569.25],[1976,648.41],[1977,745.37],[1978,839.36],[1979,765.89],[1980,800.51],[1981,788.82],[1982,797.26],[1983,710.85],[1984,752.06],[1985,759.02],[1986,755.05],[1987,773.99],[1988,851.83],[1989,922.62],[1990,940.26],[1991,955.97],[1992,977.49],[1993,991.56],[1994,967.11],[1995,1067.93],[1996,1149.19],[1997,1186.15],[1998,1136.96],[1999,1153.3],[2000,1186.64],[2001,1221.48],[2002,1275.18],[2003,1311.24],[2004,1369.81],[2005,1415],[2006,1479.94],[2007,1488.72],[2008,1527.28],[2009,1521.4]],"population":[[1800,276361],[1820,276361],[1950,726182],[1951,737230],[1952,748747],[1953,760747],[1954,773249],[1955,786192],[1956,799548],[1957,813338],[1958,827697],[1959,842730],[1960,858551],[1961,875282],[1962,893143],[1963,912006],[1964,931826],[1965,952459],[1966,973983],[1967,996380],[1968,1019394],[1969,1043044],[1970,1067136],[1971,1091675],[1972,1116779],[1973,1142460],[1974,1168731],[1975,1195487],[1976,1222874],[1977,1251524],[1978,1281271],[1979,1312161],[1980,1344218],[1981,1377430],[1982,1411807],[1983,1447280],[1984,1483833],[1985,1521382],[1986,1559868],[1987,1599200],[1988,1639294],[1989,1680103],[1990,1721563],[1991,1762702],[1992,1803195],[1993,1843375],[1994,1882531],[1995,1919569],[1996,1953349],[1997,1982823],[1998,2007073],[1999,2025481],[2000,2037961],[2001,2044848],[2002,2046772],[2003,2044530],[2004,2039070],[2005,2031348],[2006,2022331],[2007,2012649],[2008,2002749]],"lifeExpectancy":[[1800,32.8],[1945,32.8],[1950,41.01],[1951,41.29],[1952,41.85],[1953,42.43],[1954,43.02],[1955,43.62],[1956,44.23],[1957,44.84],[1958,45.45],[1959,46.04],[1960,46.58],[1961,47.07],[1962,47.48],[1963,47.81],[1964,48.06],[1965,48.24],[1966,48.38],[1967,48.5],[1968,48.64],[1969,48.81],[1970,49.02],[1971,49.29],[1972,49.62],[1973,49.99],[1974,50.41],[1975,50.87],[1976,51.4],[1977,51.96],[1978,52.56],[1979,53.18],[1980,53.79],[1981,54.37],[1982,54.9],[1983,55.39],[1984,55.84],[1985,56.29],[1986,56.79],[1987,57.36],[1988,58.01],[1989,58.68],[1990,59.31],[1991,59.79],[1992,60.05],[1993,60],[1994,59.62],[1995,58.85],[1996,57.67],[1997,56.13],[1998,54.34],[1999,52.41],[2000,50.48],[2001,48.71],[2002,47.2],[2003,46.03],[2004,45.24],[2005,44.84],[2006,44.78],[2007,44.94],[2008,45.22],[2009,45.56]]},{"name":"Liberia","region":"Sub-Saharan Africa","income":[[1800,544.65],[1820,544.65],[1913,550.92],[1950,553.44],[1951,571.85],[1952,575.57],[1953,583.97],[1954,601.88],[1955,606.52],[1956,613.67],[1957,620.97],[1958,622.59],[1959,641.9],[1960,645.17],[1961,643.26],[1962,634.2],[1963,631.84],[1964,645.9],[1965,638.98],[1966,738.93],[1967,713.6],[1968,726.35],[1969,756.52],[1970,782.61],[1971,797.21],[1972,803.01],[1973,759.51],[1974,791],[1975,654.74],[1976,662.88],[1977,640.32],[1978,647.93],[1979,658.5],[1980,609.85],[1981,606.16],[1982,572.2],[1983,551.96],[1984,531.2],[1985,508.55],[1986,507.83],[1987,506.11],[1988,490.92],[1989,482.01],[1990,556.52],[1991,658.71],[1992,636.62],[1993,626.15],[1994,644.95],[1995,662.2],[1996,658.47],[1997,609.17],[1998,551.37],[1999,529.79],[2000,519.49],[2001,515.95],[2002,531.48],[2003,365.83],[2004,375.69],[2005,383],[2006,396.99],[2007,414.61],[2008,476.2],[2009,474.9]],"population":[[1800,313543],[1820,313543],[1950,823885],[1951,843231],[1952,863308],[1953,884145],[1954,905784],[1955,928269],[1956,951644],[1957,975950],[1958,1001227],[1959,1027507],[1960,1054837],[1961,1083250],[1962,1112796],[1963,1143525],[1964,1175491],[1965,1208749],[1966,1243371],[1967,1279406],[1968,1316907],[1969,1355941],[1970,1396565],[1971,1438780],[1972,1482628],[1973,1528162],[1974,1575442],[1975,1616410],[1976,1659105],[1977,1703617],[1978,1750011],[1979,1798417],[1980,1848979],[1981,1901768],[1982,1956875],[1983,2014375],[1984,2074333],[1985,2136793],[1986,2201806],[1987,2269414],[1988,2339630],[1989,2412315],[1990,2116666],[1991,1816959],[1992,1912974],[1993,1989395],[1994,1973706],[1995,1974588],[1996,2024800],[1997,2200725],[1998,2455238],[1999,2597815],[2000,2693780],[2001,2758041],[2002,2814651],[2003,2809784],[2004,2807259],[2005,2900269],[2006,3042004],[2007,3193942],[2008,3332483]],"lifeExpectancy":[[1800,31.1],[1945,31.1],[1950,35.89],[1951,36.12],[1952,36.59],[1953,37.05],[1954,37.51],[1955,37.97],[1956,38.42],[1957,38.88],[1958,39.33],[1959,39.78],[1960,40.22],[1961,40.66],[1962,41.1],[1963,41.53],[1964,41.95],[1965,42.38],[1966,42.79],[1967,43.21],[1968,43.62],[1969,44.03],[1970,44.44],[1971,44.86],[1972,45.29],[1973,45.73],[1974,46.15],[1975,46.55],[1976,46.9],[1977,47.18],[1978,47.39],[1979,47.53],[1980,47.59],[1981,47.57],[1982,47.52],[1983,47.44],[1984,47.37],[1985,47.35],[1986,47.39],[1987,47.53],[1988,47.76],[1989,48.08],[1990,48.5],[1991,49.01],[1992,49.57],[1993,50.16],[1994,50.77],[1995,51.38],[1996,51.99],[1997,52.61],[1998,53.23],[1999,53.84],[2000,54.44],[2001,55.02],[2002,55.57],[2003,56.09],[2004,56.58],[2005,57.04],[2006,57.48],[2007,57.9],[2008,58.31],[2009,58.71]]},{"name":"Madagascar","region":"Sub-Saharan Africa","income":[[1800,434.14],[1820,434.14],[1913,670.78],[1950,1383.73],[1951,1413.63],[1952,1443.01],[1953,1471.77],[1954,1501.17],[1955,1531.05],[1956,1560.03],[1957,1589.2],[1958,1618.5],[1959,1646.63],[1960,1637.51],[1961,1638.93],[1962,1643.39],[1963,1594.74],[1964,1624.24],[1965,1583.08],[1966,1581.86],[1967,1634.05],[1968,1707.7],[1969,1733.68],[1970,1784.13],[1971,1812.57],[1972,1748.56],[1973,1663.95],[1974,1657.87],[1975,1638.76],[1976,1547.31],[1977,1544.23],[1978,1465.12],[1979,1566.08],[1980,1535.57],[1981,1364.72],[1982,1302.88],[1983,1277.05],[1984,1196.06],[1985,1188.84],[1986,1163.5],[1987,1155.44],[1988,1140.36],[1989,1152.55],[1990,1163.04],[1991,1058.68],[1992,1040.68],[1993,1031.86],[1994,1001.87],[1995,989.14],[1996,980.06],[1997,986.3],[1998,994.3],[1999,1010.14],[2000,1027.09],[2001,1056.21],[2002,894.64],[2003,953.05],[2004,973.59],[2005,988],[2006,1009.65],[2007,1044.09],[2008,1088.44],[2009,1006.9]],"population":[[1820,1683000],[1950,4620437],[1951,4690031],[1952,4762912],[1953,4839248],[1954,4919118],[1955,5002657],[1956,5090058],[1957,5181679],[1958,5277482],[1959,5377583],[1960,5481721],[1961,5590111],[1962,5703324],[1963,5821158],[1964,5943744],[1965,6070004],[1966,6200000],[1967,6334556],[1968,6473179],[1969,6615873],[1970,6765644],[1971,6920494],[1972,7082430],[1973,7250455],[1974,7423573],[1975,7603790],[1976,7805271],[1977,8007166],[1978,8216944],[1979,8442496],[1980,8676821],[1981,8919844],[1982,9171477],[1983,9432079],[1984,9701947],[1985,9981292],[1986,10270192],[1987,10568642],[1988,10876604],[1989,11194241],[1990,11522099],[1991,11860473],[1992,12210395],[1993,12573284],[1994,12949727],[1995,13340359],[1996,13745709],[1997,14165114],[1998,14598047],[1999,15045015],[2000,15506472],[2001,15982563],[2002,16473477],[2003,16979744],[2004,17501871],[2005,18040341],[2006,18595469],[2007,19167654],[2008,19757525]],"lifeExpectancy":[[1800,30.5],[1945,30.5],[1950,35.75],[1951,35.98],[1952,36.45],[1953,36.91],[1954,37.36],[1955,37.8],[1956,38.23],[1957,38.64],[1958,39.05],[1959,39.46],[1960,39.85],[1961,40.25],[1962,40.65],[1963,41.05],[1964,41.45],[1965,41.85],[1966,42.25],[1967,42.65],[1968,43.05],[1969,43.45],[1970,43.84],[1971,44.24],[1972,44.63],[1973,45.02],[1974,45.42],[1975,45.83],[1976,46.27],[1977,46.73],[1978,47.2],[1979,47.68],[1980,48.13],[1981,48.51],[1982,48.8],[1983,49],[1984,49.12],[1985,49.21],[1986,49.32],[1987,49.52],[1988,49.84],[1989,50.28],[1990,50.84],[1991,51.48],[1992,52.15],[1993,52.81],[1994,53.43],[1995,54.01],[1996,54.54],[1997,55.05],[1998,55.54],[1999,56.03],[2000,56.51],[2001,56.99],[2002,57.48],[2003,57.96],[2004,58.45],[2005,58.93],[2006,59.42],[2007,59.89],[2008,60.36],[2009,60.81]]},{"name":"Malawi","region":"Sub-Saharan Africa","income":[[1800,360],[1820,360],[1913,354.6],[1950,352.47],[1951,360.94],[1952,369.17],[1953,377.47],[1954,385.81],[1955,384.81],[1956,408.52],[1957,416.37],[1958,422.15],[1959,427.44],[1960,428.7],[1961,439.6],[1962,427.9],[1963,409.48],[1964,390.22],[1965,431.95],[1966,463.44],[1967,495.51],[1968,476.61],[1969,493.75],[1970,488.72],[1971,544.85],[1972,584.62],[1973,616.28],[1974,638.79],[1975,643.6],[1976,649.7],[1977,663.22],[1978,703.63],[1979,715.76],[1980,700.07],[1981,645.55],[1982,632.8],[1983,640.17],[1984,649.03],[1985,678.85],[1986,656.77],[1987,635.52],[1988,610.94],[1989,605.5],[1990,602.72],[1991,630.14],[1992,563.2],[1993,607.6],[1994,555.37],[1995,653.33],[1996,685.08],[1997,692.28],[1998,696.47],[1999,705.88],[2000,713.78],[2001,667.79],[2002,665.42],[2003,674.88],[2004,691.85],[2005,691],[2006,769.2],[2007,763.3],[2008,818.38],[2009,866.35]],"population":[[1800,737000],[1901,737000],[1911,970000],[1921,1202000],[1926,1293000],[1931,1603000],[1945,2050000],[1950,2816600],[1951,2866038],[1952,2917802],[1953,2971986],[1954,3028691],[1955,3088155],[1956,3151911],[1957,3221238],[1958,3294697],[1959,3370054],[1960,3450444],[1961,3532056],[1962,3628608],[1963,3726394],[1964,3816197],[1965,3914095],[1966,4023000],[1967,4147252],[1968,4263813],[1969,4379269],[1970,4489313],[1971,4606268],[1972,4730997],[1973,4864937],[1974,5030764],[1975,5267679],[1976,5473443],[1977,5637246],[1978,5791837],[1979,5955844],[1980,6129035],[1981,6311339],[1982,6502825],[1983,6702443],[1984,6909279],[1985,7123455],[1986,7391617],[1987,7824747],[1988,8349217],[1989,8843826],[1990,9286655],[1991,9655208],[1992,10014249],[1993,10182205],[1994,9992214],[1995,9912344],[1996,10143562],[1997,10419991],[1998,10697625],[1999,10977362],[2000,11258163],[2001,11539920],[2002,11824495],[2003,12113276],[2004,12407373],[2005,12707464],[2006,13013926],[2007,13327079],[2008,13647273]],"lifeExpectancy":[[1800,30.3],[1945,30.3],[1950,35.96],[1951,36.03],[1952,36.17],[1953,36.32],[1954,36.49],[1955,36.68],[1956,36.89],[1957,37.1],[1958,37.33],[1959,37.56],[1960,37.8],[1961,38.02],[1962,38.24],[1963,38.45],[1964,38.65],[1965,38.87],[1966,39.11],[1967,39.4],[1968,39.74],[1969,40.13],[1970,40.56],[1971,41.01],[1972,41.47],[1973,41.92],[1974,42.36],[1975,42.78],[1976,43.19],[1977,43.59],[1978,44],[1979,44.41],[1980,44.81],[1981,45.2],[1982,45.56],[1983,45.91],[1984,46.25],[1985,46.61],[1986,47.01],[1987,47.48],[1988,48.03],[1989,48.63],[1990,49.28],[1991,49.94],[1992,50.57],[1993,51.14],[1994,51.6],[1995,51.92],[1996,52.04],[1997,51.96],[1998,51.73],[1999,51.38],[2000,50.99],[2001,50.66],[2002,50.46],[2003,50.44],[2004,50.64],[2005,51.06],[2006,51.66],[2007,52.37],[2008,53.12],[2009,53.88]]},{"name":"Mali","region":"Sub-Saharan Africa","income":[[1800,427.43],[1820,427.43],[1913,434.93],[1950,437.95],[1951,445.16],[1952,452.34],[1953,459.88],[1954,466.94],[1955,474.73],[1956,482.42],[1957,490.38],[1958,498.21],[1959,506.63],[1960,510.59],[1961,503.57],[1962,496.17],[1963,518.77],[1964,532.17],[1965,528.5],[1966,539.18],[1967,545.01],[1968,553.24],[1969,538.49],[1970,559.07],[1971,565.59],[1972,581.37],[1973,554.3],[1974,528.3],[1975,587.58],[1976,651.72],[1977,686.4],[1978,659.18],[1979,806.19],[1980,700.86],[1981,666.52],[1982,618.01],[1983,634.54],[1984,651.28],[1985,654.54],[1986,683.76],[1987,684.17],[1988,670.5],[1989,724.84],[1990,716.23],[1991,695.72],[1992,739.01],[1993,706.57],[1994,709.85],[1995,743.17],[1996,757.76],[1997,790.26],[1998,809.92],[1999,844.11],[2000,854.73],[2001,935.08],[2002,951.41],[2003,994.71],[2004,993.12],[2005,1027],[2006,1065.32],[2007,1084.97],[2008,1112.71],[2009,1136.17]],"population":[[1800,1403398],[1820,1403398],[1950,3687654],[1951,3762158],[1952,3838168],[1953,3915714],[1954,3994826],[1955,4075537],[1956,4157879],[1957,4241884],[1958,4327586],[1959,4415019],[1960,4504219],[1961,4595790],[1962,4690372],[1963,4788073],[1964,4889008],[1965,4993293],[1966,5101054],[1967,5212416],[1968,5327515],[1969,5446489],[1970,5569486],[1971,5696656],[1972,5828158],[1973,5964156],[1974,6104825],[1975,6250341],[1976,6400896],[1977,6491649],[1978,6578372],[1979,6672872],[1980,6774767],[1981,6883907],[1982,6998256],[1983,7116320],[1984,7238471],[1985,7365165],[1986,7496855],[1987,7634008],[1988,7777570],[1989,7927623],[1990,8083816],[1991,8247171],[1992,8416215],[1993,8591439],[1994,8774902],[1995,8967132],[1996,9172631],[1997,9384984],[1998,9605719],[1999,9834362],[2000,10072267],[2001,10321053],[2002,10580176],[2003,10848146],[2004,11126144],[2005,11415261],[2006,11716829],[2007,12031795],[2008,12360306]],"lifeExpectancy":[[1800,29.6],[1945,29.6],[1950,35.3],[1951,35.34],[1952,35.44],[1953,35.53],[1954,35.63],[1955,35.72],[1956,35.82],[1957,35.92],[1958,36.01],[1959,36.11],[1960,36.21],[1961,36.3],[1962,36.41],[1963,36.51],[1964,36.62],[1965,36.74],[1966,36.86],[1967,37],[1968,37.16],[1969,37.33],[1970,37.51],[1971,37.71],[1972,37.93],[1973,38.16],[1974,38.4],[1975,38.65],[1976,38.91],[1977,39.18],[1978,39.45],[1979,39.74],[1980,40.03],[1981,40.33],[1982,40.64],[1983,40.96],[1984,41.28],[1985,41.6],[1986,41.91],[1987,42.2],[1988,42.48],[1989,42.74],[1990,42.99],[1991,43.22],[1992,43.46],[1993,43.69],[1994,43.93],[1995,44.18],[1996,44.45],[1997,44.73],[1998,45.02],[1999,45.32],[2000,45.64],[2001,45.96],[2002,46.3],[2003,46.64],[2004,47],[2005,47.35],[2006,47.72],[2007,48.09],[2008,48.46],[2009,48.84]]},{"name":"Mauritania","region":"Sub-Saharan Africa","income":[[1800,374.38],[1820,374.38],[1913,578.45],[1950,702.93],[1951,723.07],[1952,743.12],[1953,763.01],[1954,783.4],[1955,804.2],[1956,825.35],[1957,846.12],[1958,866.47],[1959,887.9],[1960,946.38],[1961,1093.56],[1962,1055.9],[1963,978],[1964,1252.62],[1965,1406.61],[1966,1393.99],[1967,1421.15],[1968,1523.62],[1969,1476.67],[1970,1604.04],[1971,1593.13],[1972,1586.85],[1973,1462.95],[1974,1585.2],[1975,1457.61],[1976,1545.63],[1977,1497.49],[1978,1462.29],[1979,1498.6],[1980,1524.95],[1981,1547.7],[1982,1481.15],[1983,1516.61],[1984,1372.51],[1985,1376.16],[1986,1416.14],[1987,1421.6],[1988,1435.1],[1989,1448.61],[1990,1393.46],[1991,1389.87],[1992,1361.37],[1993,1380.38],[1994,1396.88],[1995,1422.19],[1996,1470.89],[1997,1483.14],[1998,1495.14],[1999,1510.81],[2000,1540.84],[2001,1561.91],[2002,1579.02],[2003,1619.47],[2004,1654.89],[2005,1691],[2006,1840.36],[2007,1815.61],[2008,1838.06],[2009,1775.87]],"population":[[1800,382696],[1820,382696],[1950,1005595],[1951,1013753],[1952,1022556],[1953,1032021],[1954,1042164],[1955,1053003],[1956,1064559],[1957,1076852],[1958,1089905],[1959,1103409],[1960,1117376],[1961,1131821],[1962,1146757],[1963,1162199],[1964,1178277],[1965,1195012],[1966,1212426],[1967,1230542],[1968,1249383],[1969,1269000],[1970,1289420],[1971,1310672],[1972,1332786],[1973,1355793],[1974,1379655],[1975,1404403],[1976,1430069],[1977,1456688],[1978,1485467],[1979,1516462],[1980,1549589],[1981,1584814],[1982,1622136],[1983,1661573],[1984,1703154],[1985,1746923],[1986,1792933],[1987,1841240],[1988,1891894],[1989,1937201],[1990,1984449],[1991,2041306],[1992,2119465],[1993,2205240],[1994,2279436],[1995,2341749],[1996,2388865],[1997,2444741],[1998,2515309],[1999,2590516],[2000,2667859],[2001,2747312],[2002,2828858],[2003,2912584],[2004,2998563],[2005,3086859],[2006,3177388],[2007,3270065],[2008,3364940]],"lifeExpectancy":[[1800,32],[1945,32],[1950,41.32],[1951,41.49],[1952,41.83],[1953,42.17],[1954,42.5],[1955,42.84],[1956,43.17],[1957,43.5],[1958,43.83],[1959,44.16],[1960,44.48],[1961,44.8],[1962,45.12],[1963,45.44],[1964,45.75],[1965,46.07],[1966,46.38],[1967,46.68],[1968,46.99],[1969,47.31],[1970,47.65],[1971,48.02],[1972,48.42],[1973,48.86],[1974,49.34],[1975,49.86],[1976,50.41],[1977,50.98],[1978,51.56],[1979,52.13],[1980,52.68],[1981,53.18],[1982,53.64],[1983,54.05],[1984,54.4],[1985,54.7],[1986,54.95],[1987,55.16],[1988,55.34],[1989,55.51],[1990,55.66],[1991,55.8],[1992,55.93],[1993,56.04],[1994,56.15],[1995,56.25],[1996,56.33],[1997,56.4],[1998,56.45],[1999,56.48],[2000,56.5],[2001,56.49],[2002,56.47],[2003,56.44],[2004,56.42],[2005,56.42],[2006,56.47],[2007,56.57],[2008,56.75],[2009,56.99]]},{"name":"Mauritius","region":"Sub-Saharan Africa","income":[[1800,799.61],[1820,799.61],[1913,1235.45],[1950,1937.84],[1951,1977.13],[1952,1967.96],[1953,1969.44],[1954,2013.47],[1955,2013.15],[1956,2018.86],[1957,2034.04],[1958,2031.19],[1959,2089.8],[1960,2161.31],[1961,2583.15],[1962,2529.07],[1963,2824.71],[1964,2555.21],[1965,2570.02],[1966,2419.02],[1967,2475.39],[1968,2262.62],[1969,2339.48],[1970,2292.46],[1971,2371.81],[1972,2575.48],[1973,2864.23],[1974,3129.06],[1975,3089.22],[1976,3542.22],[1977,3710.98],[1978,3785.22],[1979,3847.18],[1980,3398.74],[1981,3541.69],[1982,3688.04],[1983,3664.7],[1984,3799.59],[1985,4026.39],[1986,4386.07],[1987,4783.59],[1988,5062.21],[1989,5233.98],[1990,5547.92],[1991,5841.66],[1992,6058.25],[1993,6398.27],[1994,6617.21],[1995,6783.9],[1996,7068.83],[1997,7425.71],[1998,7804.35],[1999,8149.82],[2000,8290.95],[2001,8801.58],[2002,9021.82],[2003,9564.7],[2004,9931.83],[2005,10155],[2006,10469.25],[2007,10967.13],[2008,11330.3],[2009,11411.53]],"population":[[1850,181000],[1861,320000],[1871,330000],[1881,360000],[1891,371000],[1901,371000],[1911,369000],[1921,376000],[1931,393000],[1944,419000],[1950,481270],[1951,498593],[1952,516556],[1953,536057],[1954,553977],[1955,571669],[1956,591764],[1957,609816],[1958,627660],[1959,645313],[1960,663229],[1961,681284],[1962,701016],[1963,715140],[1964,736182],[1965,755528],[1966,774160],[1967,789309],[1968,804177],[1969,816027],[1970,829511],[1971,841079],[1972,851334],[1973,861239],[1974,873292],[1975,885461],[1976,897811],[1977,913025],[1978,929367],[1979,946640],[1980,963701],[1981,979050],[1982,992040],[1983,1002175],[1984,1012005],[1985,1021710],[1986,1032333],[1987,1042663],[1988,1052336],[1989,1062525],[1990,1073507],[1991,1084777],[1992,1096202],[1993,1107490],[1994,1117988],[1995,1128608],[1996,1139491],[1997,1149818],[1998,1159654],[1999,1169325],[2000,1179368],[2001,1189825],[2002,1200206],[2003,1210447],[2004,1220481],[2005,1230602],[2006,1240827],[2007,1250882],[2008,1260781]],"lifeExpectancy":[[1800,31.2],[1924,31.22],[1934,33.87],[1941,36.17],[1944,33.29],[1947,38.62],[1950,46.86],[1951,48.01],[1952,50.19],[1953,52.13],[1954,53.85],[1955,55.34],[1956,56.6],[1957,57.64],[1958,58.48],[1959,59.13],[1960,59.63],[1961,60],[1962,60.29],[1963,60.53],[1964,60.75],[1965,60.98],[1966,61.21],[1967,61.45],[1968,61.69],[1969,61.94],[1970,62.2],[1971,62.49],[1972,62.81],[1973,63.15],[1974,63.52],[1975,63.91],[1976,64.3],[1977,64.69],[1978,65.07],[1979,65.45],[1980,65.82],[1981,66.19],[1982,66.58],[1983,66.98],[1984,67.39],[1985,67.8],[1986,68.17],[1987,68.51],[1988,68.8],[1989,69.04],[1990,69.24],[1991,69.41],[1992,69.57],[1993,69.74],[1994,69.93],[1995,70.14],[1996,70.36],[1997,70.6],[1998,70.85],[1999,71.09],[2000,71.32],[2001,71.52],[2002,71.7],[2003,71.85],[2004,71.96],[2005,72.04],[2006,72.08],[2007,72.1],[2008,72.1],[2009,72.1]]},{"name":"Mayotte","region":"Sub-Saharan Africa","income":[[2005,9617.82]],"population":[[1800,8219],[1820,8219],[1950,21597],[1951,22099],[1952,22620],[1953,23161],[1954,23723],[1955,24307],[1956,24913],[1957,25543],[1958,26197],[1959,26876],[1960,27579],[1961,28308],[1962,29065],[1963,29849],[1964,30663],[1965,31507],[1966,32383],[1967,33338],[1968,34349],[1969,35403],[1970,36502],[1971,37648],[1972,38842],[1973,40089],[1974,41390],[1975,42747],[1976,44164],[1977,45644],[1978,47189],[1979,49517],[1980,51995],[1981,54629],[1982,57431],[1983,60414],[1984,63594],[1985,66849],[1986,70694],[1987,74877],[1988,79415],[1989,84326],[1990,89629],[1991,95267],[1992,101167],[1993,107320],[1994,113713],[1995,120330],[1996,127146],[1997,134133],[1998,141271],[1999,148538],[2000,155911],[2001,163366],[2002,170879],[2003,178437],[2004,186026],[2005,193633],[2006,201234],[2007,208807],[2008,216334]],"lifeExpectancy":[[1950,51.48],[1951,51.7],[1952,52.13],[1953,52.58],[1954,53.03],[1955,53.5],[1956,53.97],[1957,54.46],[1958,54.95],[1959,55.45],[1960,55.96],[1961,56.47],[1962,57],[1963,57.53],[1964,58.07],[1965,58.64],[1966,59.24],[1967,59.88],[1968,60.56],[1969,61.27],[1970,61.99],[1971,62.71],[1972,63.4],[1973,64.07],[1974,64.69],[1975,65.28],[1976,65.84],[1977,66.4],[1978,66.96],[1979,67.52],[1980,68.07],[1981,68.61],[1982,69.11],[1983,69.58],[1984,70.02],[1985,70.42],[1986,70.81],[1987,71.18],[1988,71.56],[1989,71.94],[1990,72.31],[1991,72.67],[1992,73.01],[1993,73.31],[1994,73.58],[1995,73.82],[1996,74.02],[1997,74.21],[1998,74.38],[1999,74.54],[2000,74.69],[2001,74.84],[2002,74.99],[2003,75.14],[2004,75.28],[2005,75.42],[2006,75.57],[2007,75.71],[2008,75.85],[2009,75.99]]},{"name":"Mozambique","region":"Sub-Saharan Africa","income":[[1800,358],[1820,358],[1913,422.15],[1950,450.75],[1951,459.52],[1952,468.53],[1953,476.86],[1954,479.86],[1955,500.62],[1956,494.02],[1957,495.59],[1958,509.18],[1959,526.05],[1960,527.87],[1961,531.89],[1962,556.69],[1963,525.45],[1964,536.63],[1965,537.25],[1966,542.48],[1967,566.67],[1968,615.9],[1969,673.31],[1970,693.12],[1971,722.14],[1972,724.92],[1973,744.86],[1974,669.69],[1975,558.21],[1976,514.84],[1977,502.32],[1978,491.17],[1979,483.07],[1980,485.37],[1981,483.81],[1982,462.21],[1983,422.85],[1984,406.6],[1985,366.02],[1986,369.16],[1987,389.88],[1988,424.48],[1989,443.13],[1990,443.24],[1991,455.44],[1992,410.9],[1993,430.19],[1994,428.72],[1995,419.87],[1996,435.93],[1997,472.35],[1998,519.32],[1999,545.8],[2000,542.81],[2001,601.17],[2002,633.62],[2003,671.77],[2004,710.42],[2005,743],[2006,774.48],[2007,814.58],[2008,852.43],[2009,888.65]],"population":[[1820,2096000],[1950,6250443],[1951,6345838],[1952,6446316],[1953,6552276],[1954,6663941],[1955,6781616],[1956,6906364],[1957,7038035],[1958,7176661],[1959,7321327],[1960,7472230],[1961,7627642],[1962,7788944],[1963,7957010],[1964,8127242],[1965,8301446],[1966,8486381],[1967,8680909],[1968,8883626],[1969,9092797],[1970,9304375],[1971,9539059],[1972,9809596],[1973,10087915],[1974,10370281],[1975,10432604],[1976,10769649],[1977,11127868],[1978,11466483],[1979,11828029],[1980,12102619],[1981,12363066],[1982,12587223],[1983,12772878],[1984,12923005],[1985,13062589],[1986,13142107],[1987,12891952],[1988,12517962],[1989,12474404],[1990,12655732],[1991,12920197],[1992,13160731],[1993,13664085],[1994,14740072],[1995,15697711],[1996,16192388],[1997,16603334],[1998,17003681],[1999,17392597],[2000,17768457],[2001,18129398],[2002,18473780],[2003,18800908],[2004,19111633],[2005,19406703],[2006,19686505],[2007,19951656],[2008,20203186]],"lifeExpectancy":[[1800,30.28],[1950,30.28],[1951,30.53],[1952,31.04],[1953,31.54],[1954,32.04],[1955,32.55],[1956,33.05],[1957,33.55],[1958,34.05],[1959,34.54],[1960,35.02],[1961,35.48],[1962,35.93],[1963,36.35],[1964,36.76],[1965,37.16],[1966,37.56],[1967,37.96],[1968,38.37],[1969,38.79],[1970,39.23],[1971,39.69],[1972,40.17],[1973,40.66],[1974,41.14],[1975,41.58],[1976,41.98],[1977,42.3],[1978,42.54],[1979,42.71],[1980,42.8],[1981,42.83],[1982,42.81],[1983,42.78],[1984,42.74],[1985,42.74],[1986,42.76],[1987,42.84],[1988,42.96],[1989,43.14],[1990,43.41],[1991,43.77],[1992,44.22],[1993,44.74],[1994,45.31],[1995,45.89],[1996,46.42],[1997,46.88],[1998,47.25],[1999,47.5],[2000,47.65],[2001,47.7],[2002,47.69],[2003,47.67],[2004,47.65],[2005,47.66],[2006,47.71],[2007,47.8],[2008,47.94],[2009,48.13]]},{"name":"Namibia","region":"Sub-Saharan Africa","income":[[1800,350],[1820,350],[1913,1382.86],[1950,2388.81],[1951,2406.47],[1952,2423.78],[1953,2458.45],[1954,2535.28],[1955,2555.54],[1956,2587.28],[1957,2621.45],[1958,2628.16],[1959,2711.34],[1960,2893.49],[1961,2852.45],[1962,3173.22],[1963,3402.72],[1964,3855.43],[1965,4010.17],[1966,4057.53],[1967,3793.69],[1968,3726.62],[1969,3756.41],[1970,3673.78],[1971,3665.84],[1972,3746.08],[1973,3762.12],[1974,3787.96],[1975,3687.59],[1976,3748.13],[1977,3876.49],[1978,4046.23],[1979,4095.71],[1980,4167.1],[1981,4231.42],[1982,4191.1],[1983,3956.89],[1984,3789.58],[1985,3696.11],[1986,3698.87],[1987,3693.73],[1988,3624.19],[1989,3719.25],[1990,3472.4],[1991,3568.87],[1992,3804.54],[1993,3626.94],[1994,3768.68],[1995,3823.11],[1996,3836.63],[1997,3899.52],[1998,3939.06],[1999,3989.97],[2000,4022.88],[2001,4023.14],[2002,4072.32],[2003,4169.68],[2004,4399.55],[2005,4547],[2006,4783.15],[2007,4956.93],[2008,5029.66],[2009,4952.26]],"population":[[1800,229000],[1921,229000],[1946,362000],[1950,463729],[1951,474595],[1952,485831],[1953,497453],[1954,509470],[1955,521903],[1956,534767],[1957,548080],[1958,561854],[1959,576077],[1960,590731],[1961,605831],[1962,621392],[1963,637428],[1964,653950],[1965,670981],[1966,688539],[1967,706640],[1968,725304],[1969,744618],[1970,764683],[1971,792629],[1972,821782],[1973,851258],[1974,882005],[1975,915325],[1976,950488],[1977,977026],[1978,997913],[1979,1027780],[1980,1058021],[1981,1074401],[1982,1099010],[1983,1134107],[1984,1169268],[1985,1203934],[1986,1240171],[1987,1278184],[1988,1332970],[1989,1409105],[1990,1471314],[1991,1513139],[1992,1554253],[1993,1597752],[1994,1642093],[1995,1686700],[1996,1731210],[1997,1774766],[1998,1816763],[1999,1858172],[2000,1905659],[2001,1947326],[2002,1972153],[2003,1993482],[2004,2014026],[2005,2030692],[2006,2044147],[2007,2055080],[2008,2063927]],"lifeExpectancy":[[1800,32.4],[1940,32.4],[1950,40.25],[1951,40.63],[1952,41.38],[1953,42.11],[1954,42.83],[1955,43.54],[1956,44.24],[1957,44.92],[1958,45.59],[1959,46.25],[1960,46.89],[1961,47.51],[1962,48.11],[1963,48.7],[1964,49.27],[1965,49.83],[1966,50.39],[1967,50.93],[1968,51.48],[1969,52.02],[1970,52.56],[1971,53.09],[1972,53.62],[1973,54.15],[1974,54.67],[1975,55.19],[1976,55.72],[1977,56.26],[1978,56.8],[1979,57.34],[1980,57.88],[1981,58.39],[1982,58.87],[1983,59.31],[1984,59.72],[1985,60.11],[1986,60.5],[1987,60.92],[1988,61.35],[1989,61.78],[1990,62.19],[1991,62.56],[1992,62.84],[1993,63.01],[1994,63.03],[1995,62.85],[1996,62.4],[1997,61.7],[1998,60.79],[1999,59.77],[2000,58.78],[2001,58.01],[2002,57.58],[2003,57.55],[2004,57.92],[2005,58.61],[2006,59.49],[2007,60.39],[2008,61.15],[2009,61.72]]},{"name":"Niger","region":"Sub-Saharan Africa","income":[[1800,371.26],[1820,371.26],[1913,573.63],[1950,732.21],[1951,747.18],[1952,761.88],[1953,776.29],[1954,791.06],[1955,806.11],[1956,820.73],[1957,835.52],[1958,850.43],[1959,865.4],[1960,902.91],[1961,921.45],[1962,997.77],[1963,1073.59],[1964,1053.89],[1965,1109.42],[1966,1072.44],[1967,1054.38],[1968,1040.13],[1969,987.35],[1970,995.55],[1971,1028.97],[1972,954.21],[1973,774.24],[1974,822.83],[1975,781.86],[1976,768.89],[1977,808.9],[1978,895.6],[1979,936.37],[1980,957.49],[1981,944.67],[1982,909.72],[1983,870.32],[1984,704.61],[1985,698.53],[1986,711.64],[1987,668.3],[1988,687.39],[1989,670.19],[1990,640.6],[1991,638.96],[1992,581.18],[1993,573.05],[1994,579.26],[1995,577.48],[1996,580.29],[1997,580.31],[1998,623.34],[1999,602.36],[2000,577.19],[2001,600.62],[2002,601.07],[2003,610.12],[2004,587.8],[2005,613],[2006,629.09],[2007,631.21],[2008,669.12],[2009,643.39]],"population":[[1800,1244861],[1820,1244861],[1950,3271073],[1951,3324164],[1952,3379468],[1953,3437066],[1954,3497045],[1955,3559494],[1956,3624507],[1957,3692184],[1958,3762630],[1959,3835954],[1960,3912663],[1961,3992502],[1962,4076008],[1963,4162926],[1964,4252122],[1965,4343664],[1966,4437620],[1967,4534062],[1968,4633063],[1969,4735173],[1970,4840501],[1971,4948667],[1972,5060262],[1973,5175408],[1974,5294763],[1975,5419038],[1976,5547894],[1977,5682086],[1978,5821985],[1979,5967481],[1980,6118518],[1981,6275098],[1982,6437188],[1983,6604789],[1984,6777992],[1985,6956968],[1986,7141829],[1987,7332638],[1988,7529666],[1989,7733615],[1990,7945137],[1991,8164668],[1992,8392818],[1993,8631131],[1994,8880037],[1995,9139044],[1996,9404073],[1997,9666252],[1998,9935490],[1999,10220540],[2000,10516111],[2001,10823004],[2002,11140655],[2003,11469579],[2004,11810183],[2005,12162856],[2006,12525094],[2007,12894865],[2008,13272679]],"lifeExpectancy":[[1800,30.8],[1945,30.8],[1950,37.1],[1951,37.12],[1952,37.16],[1953,37.21],[1954,37.26],[1955,37.3],[1956,37.35],[1957,37.4],[1958,37.44],[1959,37.49],[1960,37.54],[1961,37.59],[1962,37.64],[1963,37.68],[1964,37.74],[1965,37.79],[1966,37.85],[1967,37.91],[1968,37.98],[1969,38.05],[1970,38.14],[1971,38.23],[1972,38.33],[1973,38.44],[1974,38.56],[1975,38.68],[1976,38.82],[1977,38.96],[1978,39.1],[1979,39.26],[1980,39.42],[1981,39.58],[1982,39.76],[1983,39.94],[1984,40.13],[1985,40.34],[1986,40.56],[1987,40.79],[1988,41.05],[1989,41.32],[1990,41.62],[1991,41.95],[1992,42.29],[1993,42.67],[1994,43.08],[1995,43.52],[1996,44.01],[1997,44.55],[1998,45.14],[1999,45.76],[2000,46.41],[2001,47.08],[2002,47.75],[2003,48.41],[2004,49.05],[2005,49.67],[2006,50.26],[2007,50.84],[2008,51.4],[2009,51.95]]},{"name":"Nigeria","region":"Sub-Saharan Africa","income":[[1800,576.38],[1820,576.38],[1913,890.54],[1950,974.02],[1951,1026.05],[1952,1077.28],[1953,1080.04],[1954,1132.34],[1955,1134.59],[1956,1082.52],[1957,1100.59],[1958,1062.67],[1959,1083.06],[1960,1104.93],[1961,1115.22],[1962,1150.93],[1963,1228.98],[1964,1251.08],[1965,1303.64],[1966,1231.2],[1967,1014.51],[1968,978.68],[1969,1210.33],[1970,1542.25],[1971,1679.52],[1972,1698.39],[1973,1796.08],[1974,1947.97],[1975,1833.21],[1976,1971.99],[1977,1981.95],[1978,1807.02],[1979,1870.34],[1980,1843.34],[1981,1641.37],[1982,1576.97],[1983,1448.42],[1984,1358.55],[1985,1439.69],[1986,1434.08],[1987,1385.03],[1988,1481.38],[1989,1534.61],[1990,1571.11],[1991,1621.23],[1992,1619.85],[1993,1612.47],[1994,1561.22],[1995,1561.31],[1996,1619.42],[1997,1624.94],[1998,1613.59],[1999,1590.3],[2000,1619.12],[2001,1629.84],[2002,1615.29],[2003,1746.05],[2004,1807.34],[2005,1892],[2006,1955.68],[2007,2036.03],[2008,2100.11],[2009,2158.98]],"population":[[1800,12100855],[1820,12100855],[1921,18631000],[1931,19158000],[1950,31796939],[1951,32448689],[1952,33119096],[1953,33808763],[1954,34626706],[1955,35458978],[1956,36306207],[1957,37173340],[1958,38062768],[1959,38976103],[1960,39914593],[1961,40879339],[1962,41871351],[1963,42891491],[1964,43940734],[1965,45020052],[1966,46134375],[1967,47287752],[1968,48481074],[1969,49719289],[1970,51027516],[1971,52370604],[1972,53740085],[1973,55179709],[1974,56775644],[1975,58522112],[1976,60324738],[1977,62209173],[1978,64203864],[1979,66319068],[1980,68550274],[1981,70815282],[1982,73039376],[1983,74154971],[1984,75526667],[1985,77573154],[1986,79345497],[1987,81551520],[1988,83815330],[1989,86135468],[1990,88510354],[1991,90920655],[1992,93364244],[1993,95855030],[1994,98388477],[1995,100960105],[1996,103567064],[1997,106207839],[1998,108880275],[1999,111580397],[2000,114306700],[2001,117074880],[2002,119901274],[2003,122790463],[2004,125744458],[2005,128765768],[2006,131859731],[2007,135031164],[2008,138283240]],"lifeExpectancy":[[1800,30.4],[1945,30.4],[1950,35.59],[1951,35.7],[1952,35.92],[1953,36.14],[1954,36.38],[1955,36.62],[1956,36.86],[1957,37.11],[1958,37.37],[1959,37.63],[1960,37.89],[1961,38.14],[1962,38.39],[1963,38.63],[1964,38.87],[1965,39.1],[1966,39.33],[1967,39.56],[1968,39.8],[1969,40.07],[1970,40.37],[1971,40.74],[1972,41.17],[1973,41.67],[1974,42.22],[1975,42.78],[1976,43.32],[1977,43.81],[1978,44.22],[1979,44.54],[1980,44.76],[1981,44.88],[1982,44.93],[1983,44.95],[1984,44.93],[1985,44.89],[1986,44.83],[1987,44.76],[1988,44.69],[1989,44.61],[1990,44.55],[1991,44.51],[1992,44.5],[1993,44.53],[1994,44.59],[1995,44.7],[1996,44.86],[1997,45.07],[1998,45.32],[1999,45.6],[2000,45.9],[2001,46.2],[2002,46.5],[2003,46.77],[2004,47.03],[2005,47.27],[2006,47.49],[2007,47.71],[2008,47.93],[2009,48.17]]},{"name":"Reunion","region":"Sub-Saharan Africa","income":[[1800,692.33],[1820,692.33],[1913,1069.7],[1950,2637.69],[1951,2710.19],[1952,2718.89],[1953,2740.7],[1954,2801.73],[1955,2772.53],[1956,2781.87],[1957,2769.45],[1958,2764.12],[1959,2840.76],[1960,2969.28],[1961,3033.87],[1962,3173.72],[1963,3307.58],[1964,3469.5],[1965,3717.11],[1966,3845.99],[1967,4021.18],[1968,4202.49],[1969,4496.76],[1970,4591.19],[1971,4605.39],[1972,5047.66],[1973,5004.19],[1974,5231.8],[1975,5066.54],[1976,4457.05],[1977,4319.8],[1978,4614.38],[1979,4793.06],[1980,4887.45],[1981,4956.25],[1982,5267.22],[1983,5467.59],[1984,5428.2],[1985,5396.09],[1986,5363.43],[1987,5303.38],[1988,5508.86],[1989,5560.26],[1990,5980.27],[1991,6225.76],[1992,6101.26],[1993,5980.36],[1994,5863.97],[1995,5752.28],[1996,5939.19],[1997,6071.94],[1998,6037.73],[1999,6058.56],[2000,6084.03],[2001,6112.28],[2002,6316.17],[2003,6529.84],[2004,6796.21],[2005,7077.24],[2006,7375.61],[2007,7670.12]],"population":[[1800,92744],[1820,92744],[1950,243700],[1951,250700],[1952,257700],[1953,265500],[1954,274400],[1955,286100],[1956,296000],[1957,308700],[1958,317900],[1959,327200],[1960,337500],[1961,347900],[1962,358900],[1963,371000],[1964,383700],[1965,392900],[1966,403300],[1967,414024],[1968,425070],[1969,435564],[1970,444806],[1971,453345],[1972,461633],[1973,469368],[1974,475364],[1975,481100],[1976,486749],[1977,492095],[1978,497039],[1979,501979],[1980,507015],[1981,511650],[1982,517810],[1983,523170],[1984,532769],[1985,541776],[1986,551188],[1987,562035],[1988,573509],[1989,585202],[1990,597308],[1991,609686],[1992,622191],[1993,634769],[1994,647368],[1995,659938],[1996,672433],[1997,684810],[1998,697035],[1999,709083],[2000,720934],[2001,732570],[2002,743981],[2003,755171],[2004,766153],[2005,776948],[2006,787584],[2007,798094],[2008,808506]],"lifeExpectancy":[[1950,51.83],[1951,52.05],[1952,52.49],[1953,52.94],[1954,53.4],[1955,53.87],[1956,54.34],[1957,54.83],[1958,55.32],[1959,55.82],[1960,56.33],[1961,56.84],[1962,57.36],[1963,57.89],[1964,58.43],[1965,59],[1966,59.61],[1967,60.26],[1968,60.94],[1969,61.66],[1970,62.4],[1971,63.13],[1972,63.83],[1973,64.5],[1974,65.13],[1975,65.72],[1976,66.29],[1977,66.84],[1978,67.4],[1979,67.96],[1980,68.51],[1981,69.06],[1982,69.57],[1983,70.06],[1984,70.51],[1985,70.94],[1986,71.35],[1987,71.75],[1988,72.14],[1989,72.53],[1990,72.9],[1991,73.26],[1992,73.58],[1993,73.86],[1994,74.11],[1995,74.33],[1996,74.53],[1997,74.71],[1998,74.89],[1999,75.08],[2000,75.27],[2001,75.46],[2002,75.64],[2003,75.81],[2004,75.97],[2005,76.12],[2006,76.26],[2007,76.39],[2008,76.52],[2009,76.64]]},{"name":"Rwanda","region":"Sub-Saharan Africa","income":[[1800,369],[1820,369],[1913,438.93],[1950,470.31],[1951,487.82],[1952,493.32],[1953,502.1],[1954,519.56],[1955,524.69],[1956,532.76],[1957,540.29],[1958,542.88],[1959,560.7],[1960,564.22],[1961,537.5],[1962,597.47],[1963,525.43],[1964,451.85],[1965,471.62],[1966,490.59],[1967,510.96],[1968,531.62],[1969,572.58],[1970,616.38],[1971,605.84],[1972,590.58],[1973,591.25],[1974,602.09],[1975,692.82],[1976,658.96],[1977,670.08],[1978,711.13],[1979,753.51],[1980,818.71],[1981,843.68],[1982,881.57],[1983,902.56],[1984,840.84],[1985,856],[1986,879.87],[1987,847.99],[1988,793.55],[1989,786.33],[1990,760.74],[1991,708.92],[1992,737.07],[1993,660.82],[1994,382.44],[1995,581.39],[1996,622.92],[1997,589.94],[1998,643.74],[1999,677.54],[2000,704.04],[2001,734.98],[2002,785.65],[2003,774.07],[2004,785.77],[2005,813],[2006,866.95],[2007,895.97],[2008,975.75],[2009,995.27]],"population":[[1800,928368],[1820,928368],[1950,2439435],[1951,2485919],[1952,2534927],[1953,2586573],[1954,2640978],[1955,2698272],[1956,2758591],[1957,2822082],[1958,2888902],[1959,2958761],[1960,3031804],[1961,3045908],[1962,3051242],[1963,3129004],[1964,3183993],[1965,3264640],[1966,3358202],[1967,3451079],[1968,3547932],[1969,3656796],[1970,3769171],[1971,3880225],[1972,3992121],[1973,4109838],[1974,4226380],[1975,4356863],[1976,4502352],[1977,4657072],[1978,4818992],[1979,4975833],[1980,5138689],[1981,5310271],[1982,5507565],[1983,5701104],[1984,5860320],[1985,6009833],[1986,6166230],[1987,6349365],[1988,6552179],[1989,6745103],[1990,6923738],[1991,7110348],[1992,7290203],[1993,7456502],[1994,6417511],[1995,5706501],[1996,6002451],[1997,7212583],[1998,7197680],[1999,7358932],[2000,7507056],[2001,7673062],[2002,7852401],[2003,8042082],[2004,8238673],[2005,8440820],[2006,8648248],[2007,8860588],[2008,9077425]],"lifeExpectancy":[[1800,31.8],[1930,31.8],[1950,39.41],[1951,39.56],[1952,39.85],[1953,40.15],[1954,40.45],[1955,40.75],[1956,41.06],[1957,41.36],[1958,41.67],[1959,41.98],[1960,42.28],[1961,42.58],[1962,42.87],[1963,43.14],[1964,43.4],[1965,43.63],[1966,43.83],[1967,44.01],[1968,44.17],[1969,44.3],[1970,44.4],[1971,44.49],[1972,44.55],[1973,44.61],[1974,44.67],[1975,44.75],[1976,44.89],[1977,45.08],[1978,45.31],[1979,45.58],[1980,45.88],[1981,46.26],[1982,46.67],[1983,47],[1984,47.15],[1985,47.38],[1986,47.61],[1987,47.84],[1988,48.07],[1989,48.3],[1990,48.53],[1991,48.76],[1992,48.99],[1993,26.39],[1994,27.09],[1997,35.33],[1998,38.41],[1999,41.04],[2000,43.1],[2001,44.6],[2002,45.77],[2003,46.77],[2004,47.65],[2005,48.42],[2006,49.11],[2007,49.71],[2008,50.23],[2009,50.69]]},{"name":"Sao Tome and Principe","region":"Sub-Saharan Africa","income":[[1800,674.7],[1820,674.7],[1913,818.38],[1950,883.72],[1951,880.98],[1952,879.58],[1953,879.74],[1954,915.56],[1955,822.77],[1956,868.21],[1957,860.74],[1958,943.06],[1959,844.46],[1960,934.47],[1961,1004.73],[1962,1071.55],[1963,1136.31],[1964,1197.78],[1965,1254.59],[1966,1327.9],[1967,1384.84],[1968,1440.24],[1969,1496.12],[1970,1550.8],[1971,1597.29],[1972,1532.99],[1973,1459.78],[1974,1460.35],[1975,1531.24],[1976,1612.48],[1977,1737.56],[1978,1796.06],[1979,1947.86],[1980,2164.3],[1981,1530.25],[1982,1890.22],[1983,1687.83],[1984,1513.8],[1985,1601.21],[1986,1583.52],[1987,1516.53],[1988,1508.15],[1989,1498.63],[1990,1497],[1991,1458.63],[1992,1428.78],[1993,1406.6],[1994,1399.62],[1995,1382.99],[1996,1365.18],[1997,1339.08],[1998,1327.1],[1999,1321.09],[2000,1320.58],[2001,1331.58],[2002,1353.09],[2003,1396.44],[2004,1435.8],[2005,1460],[2006,1532.32],[2007,1598.38],[2008,1664.3],[2009,1703.43]],"population":[[1800,22731],[1820,22731],[1950,59730],[1951,59916],[1952,60011],[1953,60000],[1954,60006],[1955,60227],[1956,60797],[1957,61325],[1958,61683],[1959,62507],[1960,63403],[1961,64330],[1962,65345],[1963,66361],[1964,67452],[1965,68691],[1966,69766],[1967,70787],[1968,71804],[1969,72722],[1970,73631],[1971,74860],[1972,76595],[1973,78222],[1974,79667],[1975,81607],[1976,84176],[1977,86796],[1978,89367],[1979,91804],[1980,94071],[1981,96443],[1982,98593],[1983,100842],[1984,103184],[1985,105624],[1986,108165],[1987,110812],[1988,113570],[1989,116448],[1990,119453],[1991,122596],[1992,125911],[1993,129428],[1994,133152],[1995,137090],[1996,141246],[1997,145608],[1998,150169],[1999,154929],[2000,159883],[2001,165034],[2002,170372],[2003,175883],[2004,181565],[2005,187410],[2006,193413],[2007,199579],[2008,205901]],"lifeExpectancy":[[1950,45.62],[1951,45.82],[1952,46.23],[1953,46.67],[1954,47.14],[1955,47.63],[1956,48.15],[1957,48.69],[1958,49.25],[1959,49.83],[1960,50.42],[1961,51],[1962,51.59],[1963,52.15],[1964,52.7],[1965,53.23],[1966,53.72],[1967,54.19],[1968,54.64],[1969,55.07],[1970,55.49],[1971,55.9],[1972,56.31],[1973,56.72],[1974,57.13],[1975,57.54],[1976,57.95],[1977,58.35],[1978,58.75],[1979,59.14],[1980,59.51],[1981,59.86],[1982,60.2],[1983,60.51],[1984,60.82],[1985,61.1],[1986,61.37],[1987,61.63],[1988,61.87],[1989,62.09],[1990,62.3],[1991,62.48],[1992,62.64],[1993,62.78],[1994,62.91],[1995,63.02],[1996,63.14],[1997,63.27],[1998,63.42],[1999,63.59],[2000,63.78],[2001,63.99],[2002,64.21],[2003,64.45],[2004,64.69],[2005,64.92],[2006,65.16],[2007,65.4],[2008,65.63],[2009,65.86]]},{"name":"Senegal","region":"Sub-Saharan Africa","income":[[1800,420.73],[1820,420.73],[1913,650.06],[1950,1401],[1951,1426.07],[1952,1450.36],[1953,1473.8],[1954,1497.64],[1955,1521.72],[1956,1544.67],[1957,1567.65],[1958,1590.37],[1959,1611.7],[1960,1607.71],[1961,1641.12],[1962,1654.99],[1963,1677],[1964,1668.63],[1965,1681.15],[1966,1678.35],[1967,1612.4],[1968,1668.22],[1969,1515.4],[1970,1597.18],[1971,1547.21],[1972,1597.71],[1973,1463.61],[1974,1479.55],[1975,1553.67],[1976,1655.33],[1977,1561.77],[1978,1454.39],[1979,1508.72],[1980,1414.11],[1981,1360.07],[1982,1518.48],[1983,1509.42],[1984,1395.71],[1985,1404.61],[1986,1427.99],[1987,1441.72],[1988,1470.26],[1989,1402.53],[1990,1423.27],[1991,1376.72],[1992,1367.9],[1993,1301.36],[1994,1302.8],[1995,1333.03],[1996,1362.47],[1997,1392.37],[1998,1432.95],[1999,1466.61],[2000,1511.49],[2001,1542.03],[2002,1519.64],[2003,1579.91],[2004,1630.75],[2005,1676],[2006,1676.66],[2007,1715.54],[2008,1714.35],[2009,1700.05]],"population":[[1800,1009886],[1820,1009886],[1950,2653637],[1951,2703457],[1952,2755589],[1953,2810131],[1954,2867186],[1955,2926863],[1956,2989276],[1957,3054547],[1958,3123116],[1959,3194821],[1960,3269808],[1961,3348228],[1962,3430243],[1963,3516025],[1964,3636138],[1965,3743967],[1966,3856528],[1967,3965841],[1968,4073826],[1969,4192724],[1970,4317891],[1971,4450142],[1972,4588696],[1973,4727163],[1974,4872244],[1975,4989168],[1976,5100499],[1977,5260855],[1978,5426864],[1979,5598599],[1980,5776012],[1981,5959049],[1982,6147783],[1983,6342309],[1984,6542073],[1985,6746778],[1986,6956526],[1987,7171347],[1988,7391190],[1989,7615614],[1990,7844199],[1991,8076976],[1992,8307920],[1993,8540599],[1994,8778563],[1995,9025562],[1996,9280615],[1997,9535314],[1998,9794164],[1999,10057259],[2000,10324150],[2001,10595275],[2002,10870037],[2003,11147063],[2004,11426026],[2005,11706498],[2006,11987121],[2007,12267493],[2008,12548243]],"lifeExpectancy":[[1800,25.2],[1922,25.2],[1927,23.9],[1937,26.4],[1945,28.8],[1950,37.87],[1951,38.03],[1952,38.33],[1953,38.62],[1954,38.89],[1955,39.16],[1956,39.41],[1957,39.65],[1958,39.88],[1959,40.09],[1960,40.3],[1961,40.5],[1962,40.7],[1963,40.89],[1964,41.09],[1965,41.29],[1966,41.52],[1967,41.75],[1968,42.01],[1969,42.3],[1970,42.61],[1971,42.96],[1972,43.35],[1973,43.76],[1974,44.21],[1975,44.69],[1976,45.2],[1977,45.73],[1978,46.27],[1979,46.83],[1980,47.39],[1981,47.94],[1982,48.49],[1983,49.04],[1984,49.56],[1985,50.06],[1986,50.52],[1987,50.95],[1988,51.34],[1989,51.7],[1990,52.02],[1991,52.31],[1992,52.56],[1993,52.79],[1994,52.99],[1995,53.19],[1996,53.37],[1997,53.54],[1998,53.72],[1999,53.89],[2000,54.07],[2001,54.24],[2002,54.41],[2003,54.57],[2004,54.74],[2005,54.92],[2006,55.12],[2007,55.35],[2008,55.62],[2009,55.91]]},{"name":"Sierra Leone","region":"Sub-Saharan Africa","income":[[1800,508.4],[1820,508.4],[1913,785.51],[1950,828.88],[1951,864.62],[1952,879.79],[1953,901.45],[1954,939.54],[1955,959.27],[1956,981.97],[1957,1004.48],[1958,1018.62],[1959,1062.02],[1960,1080.7],[1961,1084.2],[1962,1116.64],[1963,1118.69],[1964,1114.89],[1965,1176.51],[1966,1232.61],[1967,1206.04],[1968,1304.02],[1969,1400.45],[1970,1425.83],[1971,1390.7],[1972,1353.76],[1973,1373.08],[1974,1405.55],[1975,1421.79],[1976,1353.94],[1977,1348.29],[1978,1326.87],[1979,1375.89],[1980,1412.69],[1981,1470.35],[1982,1465.01],[1983,1414.02],[1984,1402.52],[1985,1333.95],[1986,1258.36],[1987,1294.45],[1988,1298.33],[1989,1296.02],[1990,1297.16],[1991,1162.26],[1992,1068.7],[1993,1081.64],[1994,1094.22],[1995,969],[1996,719.36],[1997,574.65],[1998,558.42],[1999,510.42],[2000,517.67],[2001,578.72],[2002,699.49],[2003,723.63],[2004,753.56],[2005,790],[2006,826.04],[2007,856.97],[2008,881.48],[2009,893.6]],"population":[[1800,794264],[1820,794264],[1950,2087055],[1951,2114827],[1952,2143249],[1953,2172336],[1954,2202105],[1955,2232573],[1956,2263758],[1957,2295678],[1958,2328351],[1959,2361885],[1960,2396304],[1961,2431632],[1962,2467895],[1963,2505118],[1964,2543140],[1965,2581979],[1966,2621656],[1967,2662190],[1968,2703603],[1969,2745967],[1970,2789306],[1971,2833646],[1972,2879013],[1973,2925433],[1974,2973542],[1975,3027190],[1976,3083053],[1977,3140897],[1978,3200714],[1979,3262699],[1980,3327118],[1981,3394288],[1982,3464522],[1983,3538074],[1984,3615186],[1985,3695969],[1986,3780514],[1987,3868905],[1988,3961276],[1989,4057767],[1990,4220883],[1991,4333951],[1992,4260884],[1993,4214121],[1994,4311456],[1995,4381750],[1996,4438506],[1997,4578212],[1998,4672778],[1999,4698964],[2000,4808817],[2001,5080682],[2002,5359092],[2003,5564299],[2004,5732171],[2005,5867426],[2006,6005250],[2007,6144562],[2008,6286617]],"lifeExpectancy":[[1800,25.1],[1926,25.1],[1931,24.5],[1945,24.5],[1950,31.71],[1951,31.8],[1952,31.98],[1953,32.15],[1954,32.32],[1955,32.49],[1956,32.66],[1957,32.83],[1958,32.99],[1959,33.16],[1960,33.34],[1961,33.52],[1962,33.71],[1963,33.91],[1964,34.14],[1965,34.38],[1966,34.65],[1967,34.93],[1968,35.24],[1969,35.58],[1970,35.97],[1971,36.43],[1972,36.96],[1973,37.56],[1974,38.22],[1975,38.9],[1976,39.59],[1977,40.24],[1978,40.84],[1979,41.35],[1980,41.76],[1981,42.07],[1982,42.29],[1983,42.43],[1984,42.47],[1985,42.39],[1986,42.16],[1987,41.77],[1988,41.25],[1989,40.63],[1990,39.98],[1991,39.35],[1992,38.8],[1993,38.4],[1994,38.19],[1995,38.23],[1996,38.54],[1997,39.12],[1998,39.9],[1999,40.84],[2000,41.88],[2001,42.95],[2002,43.98],[2003,44.92],[2004,45.72],[2005,46.37],[2006,46.87],[2007,47.28],[2008,47.63],[2009,47.95]]},{"name":"Somalia","region":"Sub-Saharan Africa","income":[[1800,498.83],[1820,498.83],[1913,770.73],[1950,1079.21],[1951,1121.11],[1952,1135.75],[1953,1156.66],[1954,1200.56],[1955,1216.04],[1956,1236.83],[1957,1258.15],[1958,1267.28],[1959,1314.37],[1960,1304.43],[1961,1339.27],[1962,1369.49],[1963,1393.03],[1964,1216.29],[1965,1111.44],[1966,1241.97],[1967,1284.73],[1968,1278.43],[1969,1094.01],[1970,1162.59],[1971,1165.65],[1972,1254.58],[1973,1201.48],[1974,933.75],[1975,1227.29],[1976,1191.53],[1977,1450.99],[1978,1419.24],[1979,1206.31],[1980,1059.16],[1981,1136.58],[1982,1176.81],[1983,1037.61],[1984,1037.59],[1985,1080.05],[1986,1075.7],[1987,1093.24],[1988,1089.29],[1989,1112.25],[1990,1106.43],[1991,1030.38],[1992,926.96],[1993,933.06],[1994,942.53],[1995,952.5],[1996,956.1],[1997,930.6],[1998,902.11],[1999,891.91],[2000,881.51],[2001,868.92],[2002,882.08],[2003,895.72],[2004,914.04],[2005,932.96],[2006,935.96],[2007,939.53],[2008,943.04]],"population":[[1820,1000000],[1950,2437932],[1951,2481642],[1952,2526994],[1953,2574024],[1954,2622821],[1955,2673425],[1956,2725932],[1957,2780415],[1958,2836952],[1959,2895391],[1960,2955803],[1961,3016963],[1962,3080153],[1963,3145420],[1964,3212842],[1965,3282503],[1966,3354474],[1967,3428839],[1968,3505657],[1969,3584995],[1970,3666949],[1971,3751979],[1972,3840161],[1973,3931655],[1974,4027472],[1975,4127771],[1976,4237929],[1977,4353666],[1978,4677751],[1979,5308692],[1980,5790705],[1981,5824927],[1982,5828892],[1983,6002525],[1984,6207416],[1985,6445623],[1986,6699590],[1987,6921858],[1988,6900134],[1989,6748499],[1990,6675067],[1991,6448104],[1992,6099799],[1993,6059950],[1994,6177841],[1995,6291143],[1996,6460865],[1997,6633514],[1998,6843022],[1999,7043751],[2000,7253137],[2001,7488773],[2002,7753310],[2003,8025190],[2004,8304601],[2005,8591629],[2006,8863338],[2007,9118773],[2008,9379907]],"lifeExpectancy":[[1800,29.4],[1945,29.4],[1950,32.18],[1951,32.38],[1952,32.78],[1953,33.18],[1954,33.58],[1955,33.98],[1956,34.38],[1957,34.78],[1958,35.18],[1959,35.58],[1960,35.98],[1961,36.38],[1962,36.78],[1963,37.18],[1964,37.58],[1965,37.98],[1966,38.39],[1967,38.81],[1968,39.23],[1969,39.65],[1970,40.05],[1971,40.41],[1972,40.74],[1973,41.02],[1974,41.26],[1975,41.48],[1976,41.69],[1977,41.93],[1978,42.21],[1979,42.53],[1980,42.9],[1981,43.35],[1982,43.85],[1983,44.36],[1984,44.87],[1985,45.28],[1986,45.51],[1987,45.52],[1988,45.32],[1989,44.95],[1990,44.51],[1991,44.12],[1992,43.89],[1993,43.91],[1994,44.19],[1995,44.72],[1996,45.45],[1997,46.26],[1998,47.05],[1999,47.77],[2000,48.37],[2001,48.81],[2002,49.13],[2003,49.34],[2004,49.47],[2005,49.54],[2006,49.61],[2007,49.7],[2008,49.86],[2009,50.09]]},{"name":"South Africa","region":"Sub-Saharan Africa","income":[[1800,759.05],[1820,759.05],[1870,1569.68],[1911,2895.87],[1912,2905.27],[1913,2693.95],[1914,2543.25],[1915,2345.4],[1916,2337.68],[1917,2239.29],[1918,2263.96],[1919,2548.17],[1920,1939.11],[1921,2172.74],[1922,2287.39],[1923,2499.68],[1924,2627.12],[1925,2677.32],[1926,2751.35],[1927,2790.42],[1928,2867.08],[1929,2847.2],[1930,2783.61],[1931,2600.07],[1932,2528.04],[1933,2873.65],[1934,3035.38],[1935,3544.11],[1936,3837.86],[1937,3817.2],[1938,3882.67],[1939,4083.14],[1940,4134.38],[1941,4285.57],[1942,4222.72],[1943,4140.07],[1944,4178.71],[1945,4349.06],[1946,4538.22],[1947,4530.29],[1948,4760.18],[1949,4766.14],[1950,4575.12],[1951,4689.81],[1952,4725.3],[1953,4827.96],[1954,5065.89],[1955,5199.29],[1956,5370.01],[1957,5487.1],[1958,5510.16],[1959,5630.54],[1960,5545.68],[1961,5582.3],[1962,5768.73],[1963,6045.12],[1964,6380.02],[1965,6625.41],[1966,6773.61],[1967,7114.48],[1968,7256.58],[1969,7441.4],[1970,7668.61],[1971,7817.81],[1972,7765.96],[1973,7943.17],[1974,8249.3],[1975,8205.63],[1976,8211.03],[1977,8028.65],[1978,8099.64],[1979,8226.73],[1980,8577.42],[1981,8826.14],[1982,8568.27],[1983,8187.6],[1984,8389.87],[1985,8067.51],[1986,7859.35],[1987,7825.82],[1988,7965.5],[1989,7976.29],[1990,7786.88],[1991,7545.41],[1992,7225.07],[1993,7160],[1994,7236.9],[1995,7304.2],[1996,7454.42],[1997,7479.19],[1998,7339.96],[1999,7333.69],[2000,7454.45],[2001,7520.72],[2002,7710.95],[2003,7863.74],[2004,8154.74],[2005,8477],[2006,8857.05],[2007,9253.18],[2008,9428.79],[2009,9141.27]],"population":[[1820,1550000],[1870,2547000],[1913,6153000],[1950,13595840],[1951,13926314],[1952,14264935],[1953,14623631],[1954,14991553],[1955,15368551],[1956,15755233],[1957,16151549],[1958,16558044],[1959,16974984],[1960,17416653],[1961,17869991],[1962,18356657],[1963,18856708],[1964,19370514],[1965,19898242],[1966,20440487],[1967,20997321],[1968,21569468],[1969,22157355],[1970,22739921],[1971,23338080],[1972,23935810],[1973,24549294],[1974,25178954],[1975,25815144],[1976,26467896],[1977,27129932],[1978,27809087],[1979,28505816],[1980,29251588],[1981,30168679],[1982,31140029],[1983,32143960],[1984,33181594],[1985,34254092],[1986,35098897],[1987,35933379],[1988,36761065],[1989,37581427],[1990,38391094],[1991,39183648],[1992,39964159],[1993,40639384],[1994,41211897],[1995,41779149],[1996,42311979],[1997,42835005],[1998,43334603],[1999,43745636],[2000,44066197],[2001,44296012],[2002,44433622],[2003,44481901],[2004,44448470],[2005,44344136],[2006,44187637],[2007,43997828],[2008,43786115]],"lifeExpectancy":[[1800,33.5],[1930,33.5],[1950,43.55],[1951,43.94],[1952,44.69],[1953,45.4],[1954,46.06],[1955,46.66],[1956,47.22],[1957,47.74],[1958,48.21],[1959,48.64],[1960,49.05],[1961,49.44],[1962,49.82],[1963,50.19],[1964,50.57],[1965,50.96],[1966,51.35],[1967,51.73],[1968,52.1],[1969,52.47],[1970,52.82],[1971,53.17],[1972,53.51],[1973,53.85],[1974,54.2],[1975,54.56],[1976,54.94],[1977,55.36],[1978,55.81],[1979,56.28],[1980,56.79],[1981,57.33],[1982,57.89],[1983,58.45],[1984,58.99],[1985,59.51],[1986,60.01],[1987,60.46],[1988,60.85],[1989,61.16],[1990,61.38],[1991,61.47],[1992,61.43],[1993,61.25],[1994,60.94],[1995,60.45],[1996,59.78],[1997,58.93],[1998,57.95],[1999,56.87],[2000,55.77],[2001,54.7],[2002,53.72],[2003,52.9],[2004,52.25],[2005,51.8],[2006,51.57],[2007,51.5],[2008,51.56],[2009,51.72]]},{"name":"Sudan","region":"Sub-Saharan Africa","income":[[1800,484.74],[1820,484.74],[1913,748.95],[1950,1551.84],[1951,1582.37],[1952,1615.99],[1953,1646.64],[1954,1680.02],[1955,1714.45],[1956,1844.53],[1957,1770.34],[1958,1793.53],[1959,1952.43],[1960,1935.05],[1961,1882.94],[1962,1959.59],[1963,1852.46],[1964,1785.07],[1965,1860.81],[1966,1789.81],[1967,1688],[1968,1744.15],[1969,1802.85],[1970,1679.15],[1971,1745.17],[1972,1659.65],[1973,1473.99],[1974,1574.27],[1975,1720.49],[1976,1974.01],[1977,2202.99],[1978,2094.28],[1979,1808.21],[1980,1760.99],[1981,1739.51],[1982,1895.54],[1983,1811.71],[1984,1660.51],[1985,1495.82],[1986,1508.83],[1987,1507.82],[1988,1494.42],[1989,1574.46],[1990,1405.31],[1991,1458.84],[1992,1492.2],[1993,1495],[1994,1483.56],[1995,1488.27],[1996,1524.29],[1997,1632.21],[1998,1680.62],[1999,1758.2],[2000,1874.02],[2001,1933.19],[2002,1993.4],[2003,2077.55],[2004,2125.87],[2005,2249],[2006,2439.47],[2007,2619.28],[2008,2727.56],[2009,2778.61]],"population":[[1820,5156000],[1950,8051151],[1951,8274803],[1952,8504667],[1953,8740917],[1954,8983729],[1955,9233287],[1956,9489777],[1957,9753392],[1958,10024330],[1959,10302794],[1960,10588993],[1961,10882055],[1962,11183227],[1963,11492735],[1964,11800659],[1965,12085785],[1966,12376709],[1967,12716129],[1968,13058929],[1969,13402968],[1970,13787599],[1971,14182396],[1972,14597019],[1973,15113382],[1974,15571235],[1975,16056068],[1976,16570074],[1977,17104986],[1978,17712471],[1979,18386531],[1980,19063992],[1981,19701604],[1982,20367053],[1983,21750815],[1984,22542649],[1985,23454185],[1986,24171132],[1987,24725960],[1988,25240354],[1989,25837856],[1990,26627366],[1991,27445775],[1992,28227588],[1993,28963634],[1994,29771011],[1995,30567288],[1996,31307337],[1997,32160729],[1998,33108466],[1999,34085246],[2000,35079814],[2001,36080373],[2002,37090298],[2003,38114160],[2004,39148162],[2005,40187486],[2006,41236378],[2007,42292929],[2008,43354411]],"lifeExpectancy":[[1800,31.4],[1940,31.4],[1950,41.06],[1951,41.15],[1952,41.32],[1953,41.5],[1954,41.69],[1955,41.89],[1956,42.09],[1957,42.3],[1958,42.51],[1959,42.75],[1960,43],[1961,43.26],[1962,43.56],[1963,43.87],[1964,44.21],[1965,44.57],[1966,44.94],[1967,45.31],[1968,45.68],[1969,46.04],[1970,46.39],[1971,46.73],[1972,47.05],[1973,47.37],[1974,47.68],[1975,47.98],[1976,48.28],[1977,48.58],[1978,48.88],[1979,49.18],[1980,49.49],[1981,49.78],[1982,50.07],[1983,50.36],[1984,50.64],[1985,50.93],[1986,51.22],[1987,51.53],[1988,51.85],[1989,52.19],[1990,52.55],[1991,52.92],[1992,53.3],[1993,53.69],[1994,54.07],[1995,54.44],[1996,54.8],[1997,55.14],[1998,55.46],[1999,55.77],[2000,56.06],[2001,56.32],[2002,56.57],[2003,56.81],[2004,57.05],[2005,57.3],[2006,57.56],[2007,57.85],[2008,58.16],[2009,58.5]]},{"name":"Swaziland","region":"Sub-Saharan Africa","income":[[1800,414.04],[1820,414.04],[1913,639.72],[1950,1102.4],[1951,1139.3],[1952,1148.38],[1953,1165.39],[1954,1202.81],[1955,1211.97],[1956,1228.31],[1957,1244.71],[1958,1248.4],[1959,1288.37],[1960,1428.81],[1961,1571.42],[1962,1856.18],[1963,1913.56],[1964,2139.39],[1965,2410.44],[1966,2448.89],[1967,2613.1],[1968,2428.33],[1969,2464.78],[1970,3111.99],[1971,3080.01],[1972,3364.84],[1973,3451.35],[1974,3735.37],[1975,3763.75],[1976,3778.83],[1977,3781.41],[1978,3764.15],[1979,3701.56],[1980,3664.77],[1981,3793.14],[1982,3895.38],[1983,3782.51],[1984,3725.86],[1985,3817.84],[1986,3813.04],[1987,3984.84],[1988,3712.85],[1989,3787.6],[1990,3722.55],[1991,3646.2],[1992,3553.02],[1993,3561.05],[1994,3660.89],[1995,3771.59],[1996,3821.06],[1997,3876.77],[1998,3920.39],[1999,3989.51],[2000,4021.22],[2001,4046.53],[2002,4128.12],[2003,4206.8],[2004,4286.16],[2005,4384],[2006,4494.11],[2007,4632.83],[2008,4726.06],[2009,4728.18]],"population":[[1800,86000],[1904,86000],[1911,109000],[1921,113000],[1936,157000],[1946,188000],[1950,277384],[1951,283699],[1952,290243],[1953,297025],[1954,304057],[1955,311346],[1956,318904],[1957,326741],[1958,334837],[1959,343201],[1960,351842],[1961,360775],[1962,370006],[1963,379526],[1964,389347],[1965,399481],[1966,409941],[1967,420690],[1968,431797],[1969,443277],[1970,455145],[1971,467416],[1972,480105],[1973,493232],[1974,506812],[1975,520864],[1976,535618],[1977,551425],[1978,568333],[1979,588268],[1980,611447],[1981,631303],[1982,649901],[1983,672690],[1984,696870],[1985,722451],[1986,750707],[1987,779348],[1988,817085],[1989,851904],[1990,884616],[1991,925717],[1992,962344],[1993,991859],[1994,997652],[1995,1004849],[1996,1030651],[1997,1054486],[1998,1075900],[1999,1094429],[2000,1109750],[2001,1121699],[2002,1130269],[2003,1135657],[2004,1138171],[2005,1138227],[2006,1136334],[2007,1133066],[2008,1128814]],"lifeExpectancy":[[1800,32.3],[1945,32.3],[1950,40.5],[1951,40.74],[1952,41.21],[1953,41.66],[1954,42.09],[1955,42.5],[1956,42.89],[1957,43.26],[1958,43.61],[1959,43.94],[1960,44.26],[1961,44.56],[1962,44.84],[1963,45.13],[1964,45.42],[1965,45.73],[1966,46.09],[1967,46.49],[1968,46.95],[1969,47.46],[1970,48.01],[1971,48.6],[1972,49.2],[1973,49.81],[1974,50.42],[1975,51.03],[1976,51.65],[1977,52.29],[1978,52.95],[1979,53.63],[1980,54.33],[1981,55.04],[1982,55.75],[1983,56.45],[1984,57.13],[1985,57.78],[1986,58.42],[1987,59.04],[1988,59.63],[1989,60.14],[1990,60.53],[1991,60.76],[1992,60.77],[1993,60.55],[1994,60.06],[1995,59.25],[1996,58.05],[1997,56.52],[1998,54.71],[1999,52.74],[2000,50.75],[2001,48.91],[2002,47.33],[2003,46.13],[2004,45.34],[2005,44.99],[2006,45.03],[2007,45.34],[2008,45.8],[2009,46.36]]},{"name":"Tanzania","region":"Sub-Saharan Africa","income":[[1800,470.64],[1820,470.64],[1913,595.68],[1950,654.21],[1951,719.42],[1952,716.65],[1953,674.35],[1954,711.14],[1955,710.04],[1956,700.32],[1957,698.54],[1958,685.88],[1959,700.2],[1960,708.87],[1961,681.14],[1962,722],[1963,745.36],[1964,763.24],[1965,767.49],[1966,840.34],[1967,848.22],[1968,865.71],[1969,855.27],[1970,877.54],[1971,886.77],[1972,915.99],[1973,914.86],[1974,907.39],[1975,926.81],[1976,964.5],[1977,962.49],[1978,961.31],[1979,944.86],[1980,925.32],[1981,888.54],[1982,874.24],[1983,845.05],[1984,840.91],[1985,814.7],[1986,816.73],[1987,831.82],[1988,840.71],[1989,844.46],[1990,850.81],[1991,844.63],[1992,825.68],[1993,808.59],[1994,790.9],[1995,794.02],[1996,813.6],[1997,789.19],[1998,798.12],[1999,806.1],[2000,826.23],[2001,857.59],[2002,899.07],[2003,929.86],[2004,972.48],[2005,1018],[2006,1066.68],[2007,1120.51],[2008,1180.24],[2009,1220.25]],"population":[[1800,3019768],[1820,3019768],[1921,4314332],[1931,5299000],[1948,7740786],[1950,7934924],[1951,8124902],[1952,8322925],[1953,8529355],[1954,8745102],[1955,8970610],[1956,9206352],[1957,9452826],[1958,9710558],[1959,9978909],[1960,10259653],[1961,10555397],[1962,10863958],[1963,11185238],[1964,11521695],[1965,11870412],[1966,12231389],[1967,12607312],[1968,12988137],[1969,13389543],[1970,13806869],[1971,14236867],[1972,14706593],[1973,15201384],[1974,15681232],[1975,16147863],[1976,16625711],[1977,17129565],[1978,17647395],[1979,18174406],[1980,18715307],[1981,19273923],[1982,19844382],[1983,20437869],[1984,21050790],[1985,21677040],[1986,22328642],[1987,23040630],[1988,23760348],[1989,24447781],[1990,25137888],[1991,25853394],[1992,26605473],[1993,27493980],[1994,28556908],[1995,29470379],[1996,30055334],[1997,30686889],[1998,31467507],[1999,32245532],[2000,33065142],[2001,33831342],[2002,34593779],[2003,35354845],[2004,36070799],[2005,36766356],[2006,37445392],[2007,38139640],[2008,38858276]],"lifeExpectancy":[[1800,32.2],[1945,32.2],[1950,40.39],[1951,40.61],[1952,41.05],[1953,41.45],[1954,41.84],[1955,42.19],[1956,42.53],[1957,42.84],[1958,43.12],[1959,43.4],[1960,43.66],[1961,43.91],[1962,44.16],[1963,44.42],[1964,44.7],[1965,44.99],[1966,45.3],[1967,45.63],[1968,45.97],[1969,46.32],[1970,46.69],[1971,47.08],[1972,47.48],[1973,47.89],[1974,48.3],[1975,48.7],[1976,49.07],[1977,49.41],[1978,49.72],[1979,49.98],[1980,50.21],[1981,50.42],[1982,50.61],[1983,50.8],[1984,50.97],[1985,51.12],[1986,51.2],[1987,51.22],[1988,51.17],[1989,51.05],[1990,50.87],[1991,50.65],[1992,50.41],[1993,50.2],[1994,50.02],[1995,49.92],[1996,49.9],[1997,49.97],[1998,50.13],[1999,50.38],[2000,50.74],[2001,51.19],[2002,51.73],[2003,52.33],[2004,52.97],[2005,53.65],[2006,54.34],[2007,55.03],[2008,55.7],[2009,56.35]]},{"name":"Togo","region":"Sub-Saharan Africa","income":[[1800,535.59],[1820,535.59],[1913,827.52],[1950,832.05],[1951,846.17],[1952,859.81],[1953,872.92],[1954,886.24],[1955,899.68],[1956,913.16],[1957,925.91],[1958,937.89],[1959,950.54],[1960,1011.31],[1961,1054.67],[1962,1067.53],[1963,1092.43],[1964,1218.93],[1965,1350.38],[1966,1437.09],[1967,1477.6],[1968,1511.87],[1969,1631.71],[1970,1558.82],[1971,1631.68],[1972,1649.66],[1973,1546.84],[1974,1575.43],[1975,1530.1],[1976,1487.63],[1977,1532.78],[1978,1649.61],[1979,1707.47],[1980,1589.51],[1981,1446.7],[1982,1344.58],[1983,1228.04],[1984,1221.05],[1985,1234.15],[1986,1228.38],[1987,1202.2],[1988,1212.08],[1989,1213.3],[1990,1160.13],[1991,1113.67],[1992,1034.3],[1993,869.67],[1994,1014.99],[1995,1026.07],[1996,1073.78],[1997,982.29],[1998,932.92],[1999,933.17],[2000,890.36],[2001,871.57],[2002,886.22],[2003,907.24],[2004,903.34],[2005,888],[2006,900.26],[2007,895.17],[2008,888.41],[2009,888.01]],"population":[[1800,445985],[1820,445985],[1950,1171897],[1951,1194973],[1952,1219113],[1953,1244363],[1954,1270771],[1955,1298389],[1956,1327270],[1957,1357445],[1958,1388973],[1959,1421772],[1960,1455900],[1961,1491264],[1962,1528098],[1963,1566469],[1964,1606285],[1965,1647772],[1966,1690838],[1967,1735550],[1968,1781978],[1969,1830381],[1970,1964128],[1971,2009685],[1972,2056351],[1973,2104154],[1974,2153238],[1975,2203646],[1976,2255413],[1977,2308582],[1978,2363192],[1979,2420740],[1980,2481375],[1981,2555796],[1982,2644765],[1983,2738544],[1984,2836453],[1985,2938286],[1986,3044174],[1987,3154264],[1988,3268540],[1989,3385787],[1990,3504813],[1991,3625489],[1992,3747553],[1993,3726013],[1994,3750370],[1995,3965576],[1996,4157932],[1997,4320890],[1998,4454777],[1999,4582500],[2000,4711655],[2001,4843185],[2002,4977378],[2003,5114524],[2004,5255320],[2005,5399991],[2006,5548702],[2007,5701579],[2008,5858673]],"lifeExpectancy":[[1800,31.3],[1945,31.3],[1950,40.13],[1951,40.42],[1952,40.98],[1953,41.52],[1954,42.04],[1955,42.54],[1956,43.01],[1957,43.47],[1958,43.91],[1959,44.34],[1960,44.76],[1961,45.16],[1962,45.57],[1963,45.98],[1964,46.4],[1965,46.84],[1966,47.29],[1967,47.76],[1968,48.26],[1969,48.77],[1970,49.3],[1971,49.85],[1972,50.42],[1973,51],[1974,51.58],[1975,52.15],[1976,52.72],[1977,53.28],[1978,53.82],[1979,54.34],[1980,54.82],[1981,55.27],[1982,55.68],[1983,56.05],[1984,56.38],[1985,56.68],[1986,56.93],[1987,57.16],[1988,57.36],[1989,57.54],[1990,57.72],[1991,57.9],[1992,58.08],[1993,58.28],[1994,58.49],[1995,58.71],[1996,58.93],[1997,59.14],[1998,59.34],[1999,59.54],[2000,59.76],[2001,60],[2002,60.28],[2003,60.6],[2004,60.96],[2005,61.36],[2006,61.77],[2007,62.18],[2008,62.57],[2009,62.93]]},{"name":"Uganda","region":"Sub-Saharan Africa","income":[[1800,461.08],[1820,461.08],[1913,712.4],[1950,759.88],[1951,710.29],[1952,734.75],[1953,746.83],[1954,716.66],[1955,743.21],[1956,763.14],[1957,774.37],[1958,757.98],[1959,774.45],[1960,788.69],[1961,758.7],[1962,767.27],[1963,830.8],[1964,868.29],[1965,861.75],[1966,888.69],[1967,908.92],[1968,904.6],[1969,974.6],[1970,960.97],[1971,964.15],[1972,950.74],[1973,927.25],[1974,908.34],[1975,867.67],[1976,852.35],[1977,843.73],[1978,777.37],[1979,675.82],[1980,638.77],[1981,647.57],[1982,682.27],[1983,711.85],[1984,630.52],[1985,622.04],[1986,603.24],[1987,617.72],[1988,636.79],[1989,658.11],[1990,661.3],[1991,646.06],[1992,644.17],[1993,674.24],[1994,693.03],[1995,755.16],[1996,799.01],[1997,816.56],[1998,830.71],[1999,865.83],[2000,881.21],[2001,896.54],[2002,927.72],[2003,937.6],[2004,959.71],[2005,991],[2006,1059.73],[2007,1108.95],[2008,1163.64],[2009,1202.53]],"population":[[1800,2101397],[1820,2101397],[1911,2843000],[1921,2921000],[1931,3554000],[1948,4959000],[1950,5521758],[1951,5670970],[1952,5824797],[1953,5983396],[1954,6147541],[1955,6317454],[1956,6493361],[1957,6675501],[1958,6864123],[1959,7059486],[1960,7261862],[1961,7471533],[1962,7688797],[1963,7913960],[1964,8147346],[1965,8389294],[1966,8640153],[1967,8900294],[1968,9170101],[1969,9449977],[1970,9728111],[1971,9983229],[1972,10190285],[1973,10385004],[1974,10619695],[1975,10890181],[1976,11169608],[1977,11457758],[1978,11755730],[1979,12032167],[1980,12296592],[1981,12595972],[1982,12939400],[1983,13321200],[1984,13761689],[1985,14225933],[1986,14717932],[1987,15283050],[1988,15892811],[1989,16500123],[1990,17074034],[1991,17651716],[1992,18252190],[1993,18903138],[1994,19566609],[1995,20094075],[1996,20623835],[1997,21210254],[1998,21829118],[1999,22535846],[2000,23248553],[2001,23970202],[2002,24739869],[2003,25556448],[2004,26390258],[2005,27269482],[2006,28195754],[2007,29170398],[2008,30214531]],"lifeExpectancy":[[1800,25.3],[1922,25.3],[1927,23.9],[1937,26.4],[1945,28.8],[1950,39],[1951,39.24],[1952,39.73],[1953,40.23],[1954,40.74],[1955,41.25],[1956,41.78],[1957,42.32],[1958,42.86],[1959,43.41],[1960,43.97],[1961,44.52],[1962,45.07],[1963,45.62],[1964,46.16],[1965,46.72],[1966,47.31],[1967,47.94],[1968,48.59],[1969,49.23],[1970,49.84],[1971,50.34],[1972,50.71],[1973,50.92],[1974,50.98],[1975,50.9],[1976,50.73],[1977,50.53],[1978,50.32],[1979,50.15],[1980,50.04],[1981,49.98],[1982,49.96],[1983,49.95],[1984,49.93],[1985,49.86],[1986,49.7],[1987,49.42],[1988,49.01],[1989,48.5],[1990,47.91],[1991,47.27],[1992,46.65],[1993,46.09],[1994,45.64],[1995,45.34],[1996,45.22],[1997,45.26],[1998,45.46],[1999,45.81],[2000,46.31],[2001,46.95],[2002,47.7],[2003,48.52],[2004,49.38],[2005,50.25],[2006,51.11],[2007,51.94],[2008,52.73],[2009,53.47]]},{"name":"Zambia","region":"Sub-Saharan Africa","income":[[1800,364.46],[1820,364.46],[1913,563.12],[1950,1060.84],[1951,1103.66],[1952,1147.39],[1953,1192.69],[1954,1239.06],[1955,1180.94],[1956,1289.24],[1957,1311.96],[1958,1245.62],[1959,1468.11],[1960,1540.6],[1961,1505.53],[1962,1452.73],[1963,1447.58],[1964,1599.11],[1965,1841.72],[1966,1695.38],[1967,1777.08],[1968,1753.08],[1969,1695.41],[1970,1722.48],[1971,1672.76],[1972,1773.5],[1973,1704.46],[1974,1788.69],[1975,1670.52],[1976,1718.94],[1977,1588.69],[1978,1552.52],[1979,1461.38],[1980,1461.6],[1981,1502.69],[1982,1408.68],[1983,1329.5],[1984,1279.2],[1985,1258.79],[1986,1223.74],[1987,1213.32],[1988,1249.79],[1989,1226.43],[1990,1299.99],[1991,1264.81],[1992,1210.88],[1993,1261.3],[1994,1067.93],[1995,1017.79],[1996,1060.55],[1997,1071.35],[1998,1027.23],[1999,1025.58],[2000,1035.9],[2001,1059.73],[2002,1071.61],[2003,1105.23],[2004,1140.76],[2005,1175],[2006,1218.75],[2007,1333.61],[2008,1382.47],[2009,1442.06]],"population":[[1800,747000],[1904,747000],[1911,822000],[1921,984000],[1931,1345000],[1950,2553000],[1951,2611000],[1952,2672000],[1953,2734000],[1954,2800000],[1955,2869000],[1956,2941000],[1957,3016000],[1958,3094000],[1959,3173000],[1960,3254000],[1961,3337000],[1962,3421000],[1963,3508000],[1964,3599000],[1965,3694000],[1966,3794000],[1967,3900000],[1968,4009000],[1969,4123000],[1970,4251612],[1971,4376371],[1972,4506497],[1973,4642941],[1974,4784668],[1975,4923730],[1976,5067045],[1977,5216550],[1978,5371218],[1979,5531990],[1980,5699777],[1981,5884561],[1982,6100407],[1983,6337427],[1984,6563331],[1985,6779477],[1986,7022362],[1987,7272406],[1988,7502249],[1989,7722416],[1990,7941694],[1991,8162612],[1992,8381163],[1993,8593282],[1994,8800157],[1995,9001866],[1996,9201909],[1997,9417789],[1998,9636385],[1999,9863137],[2000,10116606],[2001,10373871],[2002,10595811],[2003,10799220],[2004,11025690],[2005,11261795],[2006,11502010],[2007,11746035],[2008,11993403]],"lifeExpectancy":[[1800,32.6],[1945,32.6],[1950,41.22],[1951,41.43],[1952,41.85],[1953,42.26],[1954,42.67],[1955,43.09],[1956,43.5],[1957,43.9],[1958,44.31],[1959,44.71],[1960,45.1],[1961,45.47],[1962,45.84],[1963,46.19],[1964,46.54],[1965,46.9],[1966,47.27],[1967,47.66],[1968,48.09],[1969,48.53],[1970,48.99],[1971,49.46],[1972,49.91],[1973,50.34],[1974,50.72],[1975,51.05],[1976,51.33],[1977,51.55],[1978,51.72],[1979,51.84],[1980,51.93],[1981,51.99],[1982,52.04],[1983,52.08],[1984,52.11],[1985,52.1],[1986,52.07],[1987,51.97],[1988,51.8],[1989,51.53],[1990,51.12],[1991,50.53],[1992,49.77],[1993,48.85],[1994,47.81],[1995,46.69],[1996,45.55],[1997,44.45],[1998,43.45],[1999,42.63],[2000,42.04],[2001,41.72],[2002,41.67],[2003,41.86],[2004,42.27],[2005,42.88],[2006,43.66],[2007,44.54],[2008,45.47],[2009,46.4]]},{"name":"Zimbabwe","region":"Sub-Saharan Africa","income":[[1800,372.82],[1820,372.82],[1913,387.64],[1950,393.7],[1951,405.39],[1952,406.88],[1953,426.64],[1954,433.72],[1955,454.05],[1956,500.9],[1957,518.76],[1958,509.09],[1959,519.6],[1960,526.78],[1961,536.66],[1962,527.27],[1963,506.09],[1964,535.49],[1965,552.37],[1966,543.32],[1967,569.8],[1968,561.22],[1969,609.82],[1970,720.26],[1971,760.02],[1972,799.36],[1973,804.19],[1974,801.62],[1975,787.31],[1976,762.17],[1977,685.59],[1978,692],[1979,679.95],[1980,727.55],[1981,790.3],[1982,788.86],[1983,771.84],[1984,728.37],[1985,749.91],[1986,742.3],[1987,706.16],[1988,744.46],[1989,768.28],[1990,761.5],[1991,782.09],[1992,693.42],[1993,686.67],[1994,719.99],[1995,717.36],[1996,781.5],[1997,792.45],[1998,806.31],[1999,792.76],[2000,745.77],[2001,719.96],[2002,672.04],[2003,598.24],[2004,571.74],[2005,538],[2006,517.35],[2007,498.8],[2008,426.62],[2009,443.74]],"population":[[1800,1085814],[1820,1085814],[1950,2853151],[1951,2950941],[1952,3080907],[1953,3190967],[1954,3307273],[1955,3409017],[1956,3529739],[1957,3646340],[1958,3764157],[1959,3886947],[1960,4010933],[1961,4140117],[1962,4277736],[1963,4412423],[1964,4537263],[1965,4685272],[1966,4835691],[1967,4995432],[1968,5171817],[1969,5352802],[1970,5514536],[1971,5684187],[1972,5861135],[1973,6001949],[1974,6172535],[1975,6341797],[1976,6496418],[1977,6642107],[1978,6767223],[1979,6887132],[1980,7169968],[1981,7429223],[1982,7636524],[1983,7928538],[1984,8241357],[1985,8560378],[1986,8876579],[1987,9216418],[1988,9560036],[1989,9867471],[1990,10152933],[1991,10429405],[1992,10704340],[1993,10950080],[1994,11049617],[1995,11111992],[1996,11260802],[1997,11404948],[1998,11534135],[1999,11649168],[2000,11751323],[2001,11844109],[2002,11926563],[2003,12004576],[2004,12083553],[2005,12160782],[2006,12236805],[2007,12311143],[2008,12382920]],"lifeExpectancy":[[1800,33.7],[1940,33.7],[1950,47.65],[1951,47.86],[1952,48.28],[1953,48.7],[1954,49.12],[1955,49.53],[1956,49.93],[1957,50.33],[1958,50.73],[1959,51.12],[1960,51.5],[1961,51.87],[1962,52.23],[1963,52.58],[1964,52.92],[1965,53.25],[1966,53.58],[1967,53.9],[1968,54.22],[1969,54.54],[1970,54.86],[1971,55.19],[1972,55.52],[1973,55.85],[1974,56.2],[1975,56.58],[1976,56.99],[1977,57.44],[1978,57.92],[1979,58.43],[1980,58.96],[1981,59.5],[1982,60.03],[1983,60.52],[1984,60.94],[1985,61.26],[1986,61.48],[1987,61.58],[1988,61.53],[1989,61.28],[1990,60.76],[1991,59.89],[1992,58.65],[1993,57.07],[1994,55.21],[1995,53.13],[1996,50.93],[1997,48.73],[1998,46.66],[1999,44.82],[2000,43.32],[2001,42.23],[2002,41.54],[2003,41.22],[2004,41.28],[2005,41.68],[2006,42.4],[2007,43.36],[2008,44.49],[2009,45.72]]},{"name":"Afghanistan","region":"South Asia","income":[[1800,472.05],[1820,472.05],[1913,638.38],[1950,757.32],[1951,766.75],[1952,779.45],[1953,812.86],[1954,815.36],[1955,816.41],[1956,837.07],[1957,820.85],[1958,849.74],[1959,856.23],[1960,868.5],[1961,857.36],[1962,853.1],[1963,849.44],[1964,846.27],[1965,845.22],[1966,833.61],[1967,836.2],[1968,845.08],[1969,837.62],[1970,833.32],[1971,773.7],[1972,739.98],[1973,803.49],[1974,825.58],[1975,846.44],[1976,866.19],[1977,786.11],[1978,827.09],[1979,809.07],[1980,810.43],[1981,896.86],[1982,978.01],[1983,1013.13],[1984,994.57],[1985,961.92],[1986,1030.89],[1987,852.4],[1988,770.01],[1989,751.44],[1990,709.5],[1991,705.45],[1992,649.34],[1993,558.85],[1994,500.45],[1995,601.87],[1996,617.91],[1997,635.34],[1998,653.3],[1999,670.99],[2000,663.91],[2001,595.04],[2002,726.73],[2003,785.13],[2004,804.72],[2005,874],[2006,910.38],[2007,1012.61],[2008,1019.36],[2009,1216.68]],"population":[[1800,3280000],[1820,3280000],[1870,4207000],[1913,5730000],[1950,8150368],[1951,8284473],[1952,8425333],[1953,8573217],[1954,8728408],[1955,8891209],[1956,9061938],[1957,9240934],[1958,9428556],[1959,9624606],[1960,9829450],[1961,10043473],[1962,10267083],[1963,10500711],[1964,10744167],[1965,10997885],[1966,11262324],[1967,11537966],[1968,11825320],[1969,12122740],[1970,12430623],[1971,12749385],[1972,13079460],[1973,13421301],[1974,13772076],[1975,14132019],[1976,14501369],[1977,14880372],[1978,15269281],[1979,15555612],[1980,15112149],[1981,13812973],[1982,12881816],[1983,12934937],[1984,13387737],[1985,13796928],[1986,13856100],[1987,13867957],[1988,14076478],[1989,14511868],[1990,14669339],[1991,14871963],[1992,16317921],[1993,18371583],[1994,19900668],[1995,20881480],[1996,21559923],[1997,22227415],[1998,22912814],[1999,23646128],[2000,23898198],[2001,23997412],[2002,25268405],[2003,27060359],[2004,28513677],[2005,29928987],[2006,31056997],[2007,31889923],[2008,32738376]],"lifeExpectancy":[[1800,28.21],[1950,28.21],[1951,28.36],[1952,28.65],[1953,28.95],[1954,29.25],[1955,29.55],[1956,29.85],[1957,30.16],[1958,30.48],[1959,30.8],[1960,31.13],[1961,31.47],[1962,31.82],[1963,32.2],[1964,32.58],[1965,32.98],[1966,33.38],[1967,33.79],[1968,34.2],[1969,34.61],[1970,35.03],[1971,35.46],[1972,35.91],[1973,36.37],[1974,36.85],[1975,37.31],[1976,37.77],[1977,38.2],[1978,38.59],[1979,38.94],[1980,39.25],[1981,39.52],[1982,39.76],[1983,39.98],[1984,40.19],[1985,40.39],[1986,40.58],[1987,40.77],[1988,40.96],[1989,41.15],[1990,41.32],[1991,41.46],[1992,41.58],[1993,41.67],[1994,41.72],[1995,41.75],[1996,41.76],[1997,41.75],[1998,41.75],[1999,41.77],[2000,41.83],[2001,41.93],[2002,42.09],[2003,42.3],[2004,42.57],[2005,42.88],[2006,43.23],[2007,43.58],[2008,43.94],[2009,44.3]]},{"name":"Bangladesh","region":"South Asia","income":[[1800,609],[1820,606],[1821,606],[1822,606],[1823,606],[1824,606],[1825,606],[1826,606],[1827,606],[1828,606],[1829,606],[1830,606],[1831,606],[1832,606],[1833,606],[1834,606],[1835,606],[1836,606],[1837,606],[1838,606],[1839,606],[1840,606],[1841,606],[1842,606],[1843,606],[1844,606],[1845,606],[1846,606],[1847,606],[1848,606],[1849,606],[1850,606],[1851,606],[1852,606],[1853,606],[1854,606],[1855,606],[1856,606],[1857,606],[1858,606],[1859,606],[1860,606],[1861,606],[1862,606],[1863,606],[1864,606],[1865,606],[1866,606],[1867,606],[1868,606],[1869,606],[1870,606],[1871,607],[1872,608],[1873,610],[1874,611],[1875,613],[1876,614],[1877,615],[1878,617],[1879,618],[1880,620],[1881,621],[1882,623],[1883,624],[1884,625],[1885,644],[1886,622],[1887,649],[1888,654],[1889,635],[1890,664],[1891,602],[1892,649],[1893,664],[1894,673],[1895,655],[1896,606],[1897,715],[1898,716],[1899,659],[1900,681],[1901,691],[1902,744],[1903,750],[1904,749],[1905,730],[1906,747],[1907,697],[1908,703],[1909,795],[1910,791],[1911,785],[1912,782],[1913,764],[1914,805],[1915,785],[1916,807],[1917,791],[1918,690],[1919,784],[1920,721],[1921,772],[1922,796],[1923,763],[1924,792],[1925,793],[1926,810],[1927,802],[1928,802],[1929,827],[1930,824],[1931,808],[1932,806],[1933,795],[1934,791],[1935,773],[1936,792],[1937,768],[1938,759],[1939,765],[1940,780],[1941,785],[1942,772],[1943,793],[1944,776],[1945,754],[1946,706],[1947,702],[1948,701],[1949,709],[1950,673],[1951,675],[1952,684],[1953,683],[1954,683],[1955,633],[1956,688],[1957,662],[1958,636],[1959,656],[1960,679],[1961,704],[1962,686],[1963,741],[1964,734],[1965,758],[1966,753],[1967,721],[1968,772],[1969,767],[1970,785],[1971,731],[1972,630],[1973,620],[1974,682],[1975,660],[1976,674],[1977,660],[1978,687],[1979,698],[1980,684],[1981,687],[1982,677],[1983,693],[1984,714],[1985,720],[1986,736],[1987,752],[1988,759],[1989,763],[1990,799],[1991,810],[1992,838],[1993,863],[1994,884],[1995,913],[1996,939],[1997,973],[1998,1005],[1999,1035],[2000,1075],[2001,1110],[2002,1136],[2003,1172],[2004,1221],[2005,1268],[2006,1326],[2007,1384],[2008,1441],[2009,1492]],"population":[[1820,20000000],[1870,24721000],[1913,31786000],[1929,34427000],[1941,41966000],[1946,41660000],[1950,45645964],[1951,46152281],[1952,46886859],[1953,47660488],[1954,48603271],[1955,49601520],[1956,50477738],[1957,51365468],[1958,52399182],[1959,53484608],[1960,54621538],[1961,55741313],[1962,56839289],[1963,58226108],[1964,59402546],[1965,60332117],[1966,61548117],[1967,62821884],[1968,64133002],[1969,65482564],[1970,67402621],[1971,69226511],[1972,70759295],[1973,72470813],[1974,74679411],[1975,76253310],[1976,77928480],[1977,80428306],[1978,82935511],[1979,85492214],[1980,88076996],[1981,90666000],[1982,93074406],[1983,95384346],[1984,97611763],[1985,99752733],[1986,101768861],[1987,103764241],[1988,105771136],[1989,107806550],[1990,109896945],[1991,111935847],[1992,113704579],[1993,115447696],[1994,117279697],[1995,119186448],[1996,121189286],[1997,123315288],[1998,125572731],[1999,127943283],[2000,130406594],[2001,132974813],[2002,135656790],[2003,138448210],[2004,141340476],[2005,144319628],[2006,147365352],[2007,150448339],[2008,153546901]],"lifeExpectancy":[[1800,25.5],[1876,25.5],[1886,23.2],[1896,22],[1906,21.5],[1926,24.9],[1950,36.75],[1951,36.94],[1952,37.32],[1953,37.69],[1954,38.05],[1955,38.41],[1956,38.77],[1957,39.12],[1958,39.48],[1959,39.84],[1960,40.21],[1961,40.6],[1962,41.01],[1963,41.44],[1964,41.88],[1965,42.33],[1966,42.75],[1967,43.13],[1968,43.47],[1969,43.77],[1970,44.03],[1971,44.25],[1972,44.46],[1973,44.68],[1974,44.92],[1975,45.2],[1976,45.56],[1977,45.98],[1978,46.48],[1979,47.05],[1980,47.67],[1981,48.32],[1982,48.99],[1983,49.65],[1984,50.3],[1985,50.92],[1986,51.52],[1987,52.12],[1988,52.72],[1989,53.34],[1990,53.98],[1991,54.64],[1992,55.34],[1993,56.06],[1994,56.8],[1995,57.56],[1996,58.32],[1997,59.09],[1998,59.84],[1999,60.58],[2000,61.29],[2001,61.99],[2002,62.67],[2003,63.33],[2004,63.97],[2005,64.58],[2006,65.15],[2007,65.67],[2008,66.14],[2009,66.56]]},{"name":"Bhutan","region":"South Asia","income":[[1800,539.56],[1820,539.56],[1950,683.5],[1970,835.91],[1971,828.28],[1972,807.62],[1973,789.32],[1974,799.54],[1975,745.32],[1976,783.53],[1977,816.31],[1978,845.46],[1979,858.09],[1980,874.57],[1981,948.71],[1982,946.81],[1983,999.68],[1984,1035.6],[1985,1064.85],[1986,1177.59],[1987,1494.29],[1988,1535.47],[1989,1615.41],[1990,1782.04],[1991,1804.67],[1992,1904.18],[1993,1989.17],[1994,2149.47],[1995,2317.07],[1996,2456.12],[1997,2561.51],[1998,2656.05],[1999,2790.21],[2000,2922.11],[2001,3045.89],[2002,3256.02],[2003,3406.36],[2004,3545.99],[2005,3694],[2006,3845.06],[2007,4520.52],[2008,4670.97],[2009,5053.83]],"population":[[1800,392287],[1820,392287],[1950,734000],[1951,745689],[1952,757716],[1953,770091],[1954,782825],[1955,796000],[1956,809486],[1957,823365],[1958,837649],[1959,852335],[1960,867000],[1961,882518],[1962,898475],[1963,914885],[1964,931782],[1965,950000],[1966,967932],[1967,986400],[1968,1005421],[1969,1025096],[1970,1045000],[1971,1066129],[1972,1087991],[1973,1110611],[1974,1133702],[1975,1157452],[1976,1181554],[1977,1205659],[1978,1230769],[1979,1255882],[1980,1281000],[1981,1306579],[1982,1333704],[1983,1362337],[1984,1392489],[1985,1424193],[1986,1457094],[1987,1490857],[1988,1525539],[1989,1561160],[1990,1597719],[1991,1635161],[1992,1673428],[1993,1712504],[1994,1752368],[1995,1793012],[1996,1834341],[1997,1876236],[1998,1918669],[1999,1961642],[2000,2005222],[2001,2049412],[2002,2094176],[2003,2139549],[2004,2185569],[2005,2232291],[2006,2279723],[2007,2327849],[2008,2376680]],"lifeExpectancy":[[1950,36.04],[1951,36.04],[1952,36.06],[1953,36.1],[1954,36.17],[1955,36.26],[1956,36.38],[1957,36.51],[1958,36.68],[1959,36.86],[1960,37.08],[1961,37.31],[1962,37.58],[1963,37.86],[1964,38.18],[1965,38.52],[1966,38.88],[1967,39.27],[1968,39.68],[1969,40.12],[1970,40.58],[1971,41.06],[1972,41.56],[1973,42.09],[1974,42.64],[1975,43.21],[1976,43.8],[1977,44.41],[1978,45.03],[1979,45.66],[1980,46.29],[1981,46.91],[1982,47.51],[1983,48.1],[1984,48.67],[1985,49.25],[1986,49.83],[1987,50.43],[1988,51.07],[1989,51.75],[1990,52.47],[1991,53.24],[1992,54.05],[1993,54.89],[1994,55.75],[1995,56.65],[1996,57.57],[1997,58.52],[1998,59.48],[1999,60.43],[2000,61.36],[2001,62.22],[2002,63],[2003,63.7],[2004,64.3],[2005,64.82],[2006,65.26],[2007,65.67],[2008,66.05],[2009,66.42]]},{"name":"India","region":"South Asia","income":[[1800,563],[1820,560],[1821,560],[1822,560],[1823,560],[1824,560],[1825,560],[1826,560],[1827,560],[1828,560],[1829,560],[1830,560],[1831,560],[1832,560],[1833,560],[1834,560],[1835,560],[1836,560],[1837,560],[1838,560],[1839,560],[1840,560],[1841,560],[1842,560],[1843,560],[1844,560],[1845,560],[1846,560],[1847,560],[1848,560],[1849,560],[1850,560],[1851,560],[1852,560],[1853,560],[1854,560],[1855,560],[1856,560],[1857,560],[1858,560],[1859,560],[1860,560],[1861,560],[1862,560],[1863,560],[1864,560],[1865,560],[1866,560],[1867,560],[1868,560],[1869,560],[1870,560],[1871,561],[1872,561],[1873,562],[1874,562],[1875,563],[1876,563],[1877,564],[1878,564],[1879,565],[1880,565],[1881,566],[1882,566],[1883,567],[1884,567],[1885,583],[1886,563],[1887,587],[1888,590],[1889,572],[1890,597],[1891,540],[1892,582],[1893,595],[1894,602],[1895,585],[1896,540],[1897,637],[1898,637],[1899,585],[1900,604],[1901,612],[1902,658],[1903,662],[1904,660],[1905,643],[1906,657],[1907,613],[1908,617],[1909,696],[1910,692],[1911,686],[1912,683],[1913,666],[1914,700],[1915,682],[1916,700],[1917,686],[1918,597],[1919,678],[1920,622],[1921,665],[1922,685],[1923,655],[1924,679],[1925,680],[1926,693],[1927,685],[1928,684],[1929,704],[1930,701],[1931,687],[1932,684],[1933,674],[1934,670],[1935,653],[1936,668],[1937,647],[1938,639],[1939,643],[1940,654],[1941,658],[1942,646],[1943,663],[1944,647],[1945,629],[1946,588],[1947,583],[1948,582],[1949,588],[1950,580],[1951,583],[1952,588],[1953,613],[1954,626],[1955,629],[1956,651],[1957,631],[1958,663],[1959,664],[1960,696],[1961,700],[1962,699],[1963,717],[1964,755],[1965,707],[1966,698],[1967,739],[1968,739],[1969,771],[1970,791],[1971,779],[1972,758],[1973,774],[1974,764],[1975,812],[1976,804],[1977,845],[1978,870],[1979,806],[1980,844],[1981,877],[1982,883],[1983,933],[1984,947],[1985,963],[1986,982],[1987,1001],[1988,1081],[1989,1127],[1990,1160],[1991,1150],[1992,1186],[1993,1227],[1994,1290],[1995,1354],[1996,1433],[1997,1475],[1998,1543],[1999,1607],[2000,1648],[2001,1714],[2002,1754],[2003,1872],[2004,1981],[2005,2126],[2006,2300],[2007,2478],[2008,2622],[2009,2731]],"population":[[1820,175349000],[1870,212189000],[1913,251906000],[1929,275861000],[1941,321565000],[1946,340857000],[1947,346000000],[1948,350000000],[1949,355000000],[1950,359000000],[1951,365000000],[1952,372000000],[1953,379000000],[1954,386000000],[1955,393000000],[1956,401000000],[1957,409000000],[1958,418000000],[1959,426000000],[1960,434000000],[1961,444000000],[1962,454000000],[1963,464000000],[1964,474000000],[1965,485000000],[1966,495000000],[1967,506000000],[1968,518000000],[1969,529000000],[1970,541000000],[1971,554000000],[1972,567000000],[1973,580000000],[1974,593000000],[1975,607000000],[1976,620000000],[1977,634000000],[1978,648000000],[1979,664000000],[1980,679000000],[1981,692000000],[1982,708000000],[1983,723000000],[1984,739000000],[1985,755000000],[1986,771000000],[1987,788000000],[1988,805000000],[1989,822000000],[1990,839000000],[1991,856000000],[1992,872000000],[1993,891000000],[1994,908000000],[1995,927000000],[1996,943000000],[1997,959000000],[1998,975000000],[1999,991691000],[2000,1007702000],[2001,1023590000],[2002,1034172547],[2003,1049700118],[2004,1065070607],[2005,1080264388],[2006,1095351995],[2007,1110396331],[2008,1125368288]],"lifeExpectancy":[[1800,25.4],[1881,25.44],[1891,24.27],[1901,23.49],[1905,23.98],[1911,23.15],[1915,24.02],[1921,24.86],[1925,27.61],[1931,29.31],[1935,30.95],[1941,32.59],[1945,35.03],[1950,36.8],[1951,37.08],[1952,37.65],[1953,38.22],[1954,38.8],[1955,39.39],[1956,39.98],[1957,40.59],[1958,41.19],[1959,41.81],[1960,42.44],[1961,43.07],[1962,43.71],[1963,44.35],[1964,45],[1965,45.65],[1966,46.3],[1967,46.94],[1968,47.57],[1969,48.19],[1970,48.82],[1971,49.47],[1972,50.14],[1973,50.83],[1974,51.54],[1975,52.24],[1976,52.92],[1977,53.55],[1978,54.13],[1979,54.65],[1980,55.11],[1981,55.51],[1982,55.88],[1983,56.22],[1984,56.55],[1985,56.86],[1986,57.16],[1987,57.44],[1988,57.7],[1989,57.95],[1990,58.2],[1991,58.45],[1992,58.72],[1993,59],[1994,59.3],[1995,59.62],[1996,59.95],[1997,60.28],[1998,60.61],[1999,60.94],[2000,61.26],[2001,61.56],[2002,61.86],[2003,62.15],[2004,62.45],[2005,62.74],[2006,63.04],[2007,63.35],[2008,63.68],[2009,64.01]]},{"name":"Maldives","region":"South Asia","income":[[1800,472.12],[1820,472.12],[1950,457.04],[1970,699.73],[1971,719.24],[1972,719.32],[1973,713.06],[1974,735.04],[1975,658.84],[1976,645.16],[1977,698.04],[1978,778.18],[1979,836.67],[1980,963.7],[1981,1046.14],[1982,985.5],[1983,1112.25],[1984,1369.88],[1985,1500.14],[1986,1588.81],[1987,1674.2],[1988,1761.8],[1989,1863.84],[1990,2099.77],[1991,2192.57],[1992,2261.8],[1993,2334.22],[1994,2424.26],[1995,2533.7],[1996,2696.2],[1997,2945.77],[1998,3159.42],[1999,3345.16],[2000,3433.5],[2001,3488.21],[2002,3643.83],[2003,3919.91],[2004,4296.72],[2005,4017],[2006,4598.79],[2007,4931.92],[2008,5240.39],[2009,5081.79]],"population":[[1800,42378],[1820,42378],[1911,72000],[1921,70000],[1931,79000],[1946,82000],[1950,79293],[1951,78614],[1952,77940],[1953,77273],[1954,78684],[1955,80121],[1956,81585],[1957,83075],[1958,87582],[1959,89290],[1960,92247],[1961,92793],[1962,92744],[1963,94527],[1964,94244],[1965,97769],[1966,100937],[1967,103810],[1968,107000],[1969,110810],[1970,114572],[1971,118880],[1972,122681],[1973,125665],[1974,128722],[1975,132608],[1976,136604],[1977,140721],[1978,144875],[1979,149280],[1980,153957],[1981,158926],[1982,164210],[1983,169830],[1984,175800],[1985,181749],[1986,188125],[1987,194783],[1988,201721],[1989,208931],[1990,216401],[1991,224107],[1992,232026],[1993,240147],[1994,248459],[1995,256949],[1996,265592],[1997,274366],[1998,283271],[1999,292307],[2000,301475],[2001,310764],[2002,320165],[2003,329684],[2004,339330],[2005,349106],[2006,359008],[2007,369031],[2008,379174]],"lifeExpectancy":[[1950,37.63],[1951,37.94],[1952,38.57],[1953,39.19],[1954,39.82],[1955,40.44],[1956,41.07],[1957,41.7],[1958,42.32],[1959,42.95],[1960,43.58],[1961,44.21],[1962,44.84],[1963,45.47],[1964,46.1],[1965,46.73],[1966,47.36],[1967,47.98],[1968,48.61],[1969,49.24],[1970,49.87],[1971,50.51],[1972,51.15],[1973,51.79],[1974,52.42],[1975,53.06],[1976,53.67],[1977,54.27],[1978,54.84],[1979,55.38],[1980,55.91],[1981,56.43],[1982,56.95],[1983,57.47],[1984,57.99],[1985,58.48],[1986,58.94],[1987,59.33],[1988,59.67],[1989,59.96],[1990,60.23],[1991,60.49],[1992,60.78],[1993,61.13],[1994,61.55],[1995,62.07],[1996,62.71],[1997,63.44],[1998,64.26],[1999,65.13],[2000,66.04],[2001,66.94],[2002,67.81],[2003,68.62],[2004,69.35],[2005,70],[2006,70.56],[2007,71.07],[2008,71.52],[2009,71.94]]},{"name":"Nepal","region":"South Asia","income":[[1800,419.18],[1820,419.18],[1870,419.09],[1913,568.94],[1950,523.98],[1951,533.44],[1952,545.87],[1953,573.1],[1954,579.1],[1955,584.46],[1956,604.31],[1957,597.94],[1958,624.64],[1959,634.84],[1960,640.8],[1961,647.14],[1962,652.4],[1963,657.22],[1964,661.37],[1965,665.64],[1966,699.91],[1967,676.44],[1968,668.49],[1969,685.31],[1970,689.73],[1971,668.18],[1972,674.79],[1973,656.98],[1974,683],[1975,677.24],[1976,690.36],[1977,694.11],[1978,706.97],[1979,705.92],[1980,672.3],[1981,655.45],[1982,718.37],[1983,679.89],[1984,727.02],[1985,752.59],[1986,765.17],[1987,775.63],[1988,815.81],[1989,813.76],[1990,852.69],[1991,884.4],[1992,897.74],[1993,909.05],[1994,959.49],[1995,968.55],[1996,995.5],[1997,1010.89],[1998,1005.27],[1999,1014.02],[2000,1054.79],[2001,1085.11],[2002,1057.21],[2003,1065.44],[2004,1079.3],[2005,1081],[2006,1106.58],[2007,1132.53],[2008,1181.59],[2009,1224.73]],"population":[[1800,3881000],[1820,3881000],[1850,4352000],[1870,4698000],[1890,5192000],[1900,5283000],[1913,5639000],[1950,8989915],[1951,9085715],[1952,9182536],[1953,9280389],[1954,9379284],[1955,9479233],[1956,9580247],[1957,9682338],[1958,9788923],[1959,9906107],[1960,10034723],[1961,10176198],[1962,10332057],[1963,10500330],[1964,10677158],[1965,10862394],[1966,11057476],[1967,11261690],[1968,11473118],[1969,11692022],[1970,11918678],[1971,12154648],[1972,12412593],[1973,12684751],[1974,12972880],[1975,13278095],[1976,13599104],[1977,13933198],[1978,14280079],[1979,14640898],[1980,15016477],[1981,15402612],[1982,15796314],[1983,16199649],[1984,16613359],[1985,17037772],[1986,17472236],[1987,17917180],[1988,18374009],[1989,18843260],[1990,19325207],[1991,19818809],[1992,20326209],[1993,20845700],[1994,21372585],[1995,21907276],[1996,22450069],[1997,23001113],[1998,23560320],[1999,24127391],[2000,24702119],[2001,25284463],[2002,25873917],[2003,26469569],[2004,27070666],[2005,27676547],[2006,28287147],[2007,28901790],[2008,29519114]],"lifeExpectancy":[[1800,32.8],[1945,32.8],[1950,35.6],[1951,35.74],[1952,36.02],[1953,36.31],[1954,36.61],[1955,36.9],[1956,37.21],[1957,37.51],[1958,37.82],[1959,38.14],[1960,38.47],[1961,38.81],[1962,39.16],[1963,39.53],[1964,39.92],[1965,40.32],[1966,40.75],[1967,41.19],[1968,41.66],[1969,42.13],[1970,42.63],[1971,43.14],[1972,43.66],[1973,44.2],[1974,44.74],[1975,45.3],[1976,45.85],[1977,46.41],[1978,46.98],[1979,47.54],[1980,48.11],[1981,48.69],[1982,49.27],[1983,49.85],[1984,50.45],[1985,51.04],[1986,51.63],[1987,52.2],[1988,52.77],[1989,53.34],[1990,53.92],[1991,54.54],[1992,55.2],[1993,55.91],[1994,56.67],[1995,57.47],[1996,58.32],[1997,59.18],[1998,60.03],[1999,60.87],[2000,61.69],[2001,62.47],[2002,63.23],[2003,63.95],[2004,64.63],[2005,65.25],[2006,65.81],[2007,66.31],[2008,66.74],[2009,67.12]]},{"name":"Pakistan","region":"South Asia","income":[[1800,666],[1820,662],[1821,662],[1822,662],[1823,662],[1824,662],[1825,662],[1826,662],[1827,662],[1828,662],[1829,662],[1830,662],[1831,662],[1832,662],[1833,662],[1834,662],[1835,662],[1836,662],[1837,662],[1838,662],[1839,662],[1840,662],[1841,662],[1842,662],[1843,662],[1844,662],[1845,662],[1846,662],[1847,662],[1848,662],[1849,662],[1850,662],[1851,662],[1852,662],[1853,662],[1854,662],[1855,662],[1856,662],[1857,662],[1858,662],[1859,662],[1860,662],[1861,662],[1862,662],[1863,662],[1864,662],[1865,662],[1866,662],[1867,662],[1868,662],[1869,662],[1870,662],[1871,664],[1872,665],[1873,667],[1874,668],[1875,670],[1876,671],[1877,673],[1878,675],[1879,676],[1880,678],[1881,679],[1882,681],[1883,682],[1884,684],[1885,704],[1886,681],[1887,710],[1888,715],[1889,695],[1890,726],[1891,658],[1892,709],[1893,726],[1894,736],[1895,717],[1896,663],[1897,782],[1898,783],[1899,720],[1900,744],[1901,755],[1902,813],[1903,820],[1904,819],[1905,799],[1906,817],[1907,763],[1908,769],[1909,869],[1910,865],[1911,858],[1912,856],[1913,835],[1914,880],[1915,858],[1916,882],[1917,865],[1918,754],[1919,857],[1920,789],[1921,844],[1922,871],[1923,834],[1924,866],[1925,867],[1926,886],[1927,877],[1928,877],[1929,904],[1930,901],[1931,883],[1932,881],[1933,869],[1934,865],[1935,845],[1936,866],[1937,840],[1938,830],[1939,837],[1940,853],[1941,858],[1942,844],[1943,867],[1944,848],[1945,825],[1946,772],[1947,767],[1948,766],[1949,776],[1950,739],[1951,698],[1952,685],[1953,733],[1954,732],[1955,730],[1956,734],[1957,747],[1958,739],[1959,728],[1960,744],[1961,769],[1962,803],[1963,831],[1964,871],[1965,886],[1966,933],[1967,942],[1968,982],[1969,1018],[1970,1094],[1971,1070],[1972,1050],[1973,1096],[1974,1106],[1975,1124],[1976,1156],[1977,1176],[1978,1241],[1979,1250],[1980,1334],[1981,1388],[1982,1443],[1983,1497],[1984,1519],[1985,1609],[1986,1661],[1987,1705],[1988,1761],[1989,1794],[1990,1826],[1991,1875],[1992,1972],[1993,1967],[1994,1991],[1995,2038],[1996,2081],[1997,2049],[1998,2050],[1999,2073],[2000,2086],[2001,2069],[2002,2093],[2003,2153],[2004,2270],[2005,2396],[2006,2497],[2007,2591],[2008,2598],[2009,2603]],"population":[[1820,13651000],[1870,16090000],[1913,20008000],[1929,22812000],[1941,28169000],[1946,32683000],[1950,39448232],[1951,40382206],[1952,41346560],[1953,42342412],[1954,43372063],[1955,44434445],[1956,45535711],[1957,46679944],[1958,47868932],[1959,49104112],[1960,50386898],[1961,51718581],[1962,53100671],[1963,54524471],[1964,55988385],[1965,57494940],[1966,59046203],[1967,60641899],[1968,62282496],[1969,63969987],[1970,65705964],[1971,67491369],[1972,69325921],[1973,71121085],[1974,72911780],[1975,74711541],[1976,76456121],[1977,78152686],[1978,80051300],[1979,82374302],[1980,85219117],[1981,88417079],[1982,91462088],[1983,94147312],[1984,96489872],[1985,99060352],[1986,102046668],[1987,105186881],[1988,108384014],[1989,111502409],[1990,114578478],[1991,117653767],[1992,120065004],[1993,122487513],[1994,125491984],[1995,128690285],[1996,132146638],[1997,135564834],[1998,139007774],[1999,142461389],[2000,146342958],[2001,150334765],[2002,153403524],[2003,156127453],[2004,159196336],[2005,162419946],[2006,165803560],[2007,169270617],[2008,172730891]],"lifeExpectancy":[[1800,25.9],[1916,25.9],[1921,20.13],[1931,26.75],[1941,31.76],[1945,22.8],[1950,45.63],[1951,45.81],[1952,46.18],[1953,46.55],[1954,46.93],[1955,47.31],[1956,47.7],[1957,48.1],[1958,48.51],[1959,48.94],[1960,49.38],[1961,49.85],[1962,50.34],[1963,50.85],[1964,51.38],[1965,51.91],[1966,52.44],[1967,52.94],[1968,53.41],[1969,53.84],[1970,54.24],[1971,54.63],[1972,55],[1973,55.38],[1974,55.76],[1975,56.13],[1976,56.49],[1977,56.83],[1978,57.15],[1979,57.44],[1980,57.71],[1981,57.97],[1982,58.24],[1983,58.51],[1984,58.8],[1985,59.1],[1986,59.4],[1987,59.7],[1988,59.99],[1989,60.28],[1990,60.56],[1991,60.85],[1992,61.14],[1993,61.46],[1994,61.79],[1995,62.13],[1996,62.49],[1997,62.85],[1998,63.21],[1999,63.56],[2000,63.91],[2001,64.25],[2002,64.58],[2003,64.91],[2004,65.23],[2005,65.55],[2006,65.88],[2007,66.2],[2008,66.52],[2009,66.84]]},{"name":"Sri Lanka","region":"South Asia","income":[[1800,453.6],[1820,453.6],[1850,465.1],[1870,702.32],[1871,682.16],[1872,647.27],[1873,650.3],[1874,639.05],[1875,643.92],[1876,650.63],[1877,654.17],[1878,591.99],[1879,634.77],[1880,685.1],[1881,731.41],[1882,771.49],[1883,776.58],[1884,746.19],[1885,694.79],[1886,668.39],[1887,779.57],[1888,759.89],[1889,743.68],[1890,862.16],[1891,855.2],[1892,867.93],[1893,868.21],[1894,860.58],[1895,894.97],[1896,897.5],[1897,928.02],[1898,963.32],[1899,1017.61],[1900,1064.45],[1901,983.09],[1902,969.58],[1903,1010.89],[1904,1002.44],[1905,972.46],[1906,982],[1907,1017.33],[1908,1007.41],[1909,951.02],[1910,996.49],[1911,957.04],[1912,954.05],[1913,1018.14],[1914,997.97],[1915,937.41],[1916,967.28],[1917,1004.45],[1918,913.55],[1919,962.2],[1920,900.8],[1921,873.58],[1922,896.22],[1923,879.03],[1924,930.21],[1925,979.1],[1926,1044.63],[1927,1040.61],[1928,1036.82],[1929,1101.67],[1930,1043.6],[1931,992.24],[1932,941.2],[1933,948.68],[1934,1039.14],[1935,976.68],[1936,968.98],[1937,1028.34],[1938,1010.76],[1939,978.52],[1940,1031.87],[1941,1053.03],[1942,1091.12],[1943,1059.3],[1944,952.32],[1945,920.42],[1946,866.43],[1947,885.51],[1948,956.2],[1949,989.11],[1950,1033.5],[1951,1066.73],[1952,1083.53],[1953,1072.41],[1954,1070.87],[1955,1104.57],[1956,1084.42],[1957,1072.55],[1958,1076.23],[1959,1063.15],[1960,1072.21],[1961,1064.79],[1962,1074.47],[1963,1069.52],[1964,1094.23],[1965,1102.42],[1966,1064.71],[1967,1135.51],[1968,1192.5],[1969,1213.16],[1970,1244.91],[1971,1210.75],[1972,1213.4],[1973,1240.69],[1974,1261.62],[1975,1270.97],[1976,1287.13],[1977,1348.78],[1978,1407.65],[1979,1471.17],[1980,1525.22],[1981,1595.28],[1982,1648.08],[1983,1709.46],[1984,1771.43],[1985,1821.76],[1986,1885.81],[1987,1876.77],[1988,1898.77],[1989,1922.06],[1990,2019.4],[1991,2088.24],[1992,2153.74],[1993,2271.55],[1994,2365.6],[1995,2464.51],[1996,2529.76],[1997,2664.48],[1998,2762.24],[1999,2853.81],[2000,2997.69],[2001,2925.52],[2002,3015.38],[2003,3166.6],[2004,3310.2],[2005,3481],[2006,3718.72],[2007,3940.58],[2008,4142.53],[2009,4254.13]],"population":[[1800,1213000],[1820,1213000],[1850,2217000],[1870,2786000],[1871,2820000],[1872,2842000],[1873,2863000],[1874,2885000],[1875,2908000],[1876,2930000],[1877,2952000],[1878,2975000],[1879,2998000],[1880,3021000],[1881,3044000],[1882,3073000],[1883,3107000],[1884,3144000],[1885,3170000],[1886,3194000],[1887,3221000],[1888,3261000],[1889,3311000],[1890,3343000],[1891,3404000],[1892,3470000],[1893,3524000],[1894,3584000],[1895,3626000],[1896,3693000],[1897,3752000],[1898,3820000],[1899,3874000],[1900,3912000],[1901,4031000],[1902,4071000],[1903,4156000],[1904,4233000],[1905,4383000],[1906,4458000],[1907,4467000],[1908,4520000],[1909,4585000],[1910,4668000],[1911,4757000],[1912,4784000],[1913,4811000],[1914,4838000],[1915,4905000],[1916,4971000],[1917,5040000],[1918,5109000],[1919,5179000],[1920,5250000],[1921,5304000],[1922,5367000],[1923,5426000],[1924,5452000],[1925,5505000],[1926,5545000],[1927,5591000],[1928,5730000],[1929,5669000],[1930,5707000],[1931,5748000],[1932,5788000],[1933,5825000],[1934,5872000],[1935,5897000],[1936,5943000],[1937,5989000],[1938,6045000],[1939,6095000],[1940,6134000],[1941,6169000],[1942,6191000],[1943,6296000],[1944,6442000],[1945,6650000],[1946,6854000],[1947,7037000],[1948,7244000],[1949,7455000],[1950,7533097],[1951,7752374],[1952,7982342],[1953,8221291],[1954,8457223],[1955,8678721],[1956,8898480],[1957,9128546],[1958,9361755],[1959,9609556],[1960,9879178],[1961,10151799],[1962,10421936],[1963,10686957],[1964,10942373],[1965,11202264],[1966,11469679],[1967,11737396],[1968,12010095],[1969,12275330],[1970,12531522],[1971,12776057],[1972,13016733],[1973,13245615],[1974,13449623],[1975,13660275],[1976,13887354],[1977,14116836],[1978,14370898],[1979,14648618],[1980,14900181],[1981,15151762],[1982,15410151],[1983,15618275],[1984,15810021],[1985,16020699],[1986,16256077],[1987,16495304],[1988,16734716],[1989,16970982],[1990,17192896],[1991,17390974],[1992,17587060],[1993,17825536],[1994,18075443],[1995,18304268],[1996,18509760],[1997,18698655],[1998,18884614],[1999,19064642],[2000,19238575],[2001,19408635],[2002,19576783],[2003,19742439],[2004,19905165],[2005,20064776],[2006,20222240],[2007,20378239],[2008,20532150]],"lifeExpectancy":[[1800,32.6],[1901,32.6],[1911,29.9],[1921,32],[1935,46.3],[1940,45.2],[1946,45.8],[1948,54],[1949,55.5],[1950,51.36],[1951,51.86],[1952,52.81],[1953,53.67],[1954,54.45],[1955,55.14],[1956,55.74],[1957,56.27],[1958,56.73],[1959,57.14],[1960,57.51],[1961,57.87],[1962,58.24],[1963,58.64],[1964,59.09],[1965,59.58],[1966,60.14],[1967,60.72],[1968,61.33],[1969,61.95],[1970,62.57],[1971,63.16],[1972,63.73],[1973,64.26],[1974,64.76],[1975,65.25],[1976,65.73],[1977,66.24],[1978,66.76],[1979,67.3],[1980,67.8],[1981,68.23],[1982,68.55],[1983,68.76],[1984,68.85],[1985,68.87],[1986,68.88],[1987,68.92],[1988,69.03],[1989,69.21],[1990,69.42],[1991,69.6],[1992,69.69],[1993,69.67],[1994,69.56],[1995,69.43],[1996,69.38],[1997,69.48],[1998,69.79],[1999,70.29],[2000,70.95],[2001,71.67],[2002,72.35],[2003,72.93],[2004,73.37],[2005,73.66],[2006,73.85],[2007,73.97],[2008,74.1],[2009,74.24]]},{"name":"Algeria","region":"Middle East & North Africa","income":[[1800,766.25],[1820,765.88],[1870,1272.76],[1913,2070.76],[1950,2429.21],[1951,2397.53],[1952,2449.01],[1953,2436.34],[1954,2557.82],[1955,2572.47],[1956,2764.42],[1957,3013.98],[1958,3059.58],[1959,3548.42],[1960,3716.79],[1961,3202.96],[1962,2550.82],[1963,3146.58],[1964,3214.44],[1965,3327.99],[1966,3070.75],[1967,3246.99],[1968,3519.79],[1969,3747.74],[1970,4003.57],[1971,3559.35],[1972,4182.66],[1973,4194.6],[1974,4320.96],[1975,4489.03],[1976,4642.62],[1977,4910.42],[1978,5373.17],[1979,5682.03],[1980,5610.2],[1981,5573.38],[1982,5745.16],[1983,5853.66],[1984,5986.54],[1985,6107.18],[1986,5876.05],[1987,5681.36],[1988,5415.99],[1989,5457.75],[1990,5244.51],[1991,5061.3],[1992,5023.22],[1993,4800.32],[1994,4652.84],[1995,4732.43],[1996,4824.21],[1997,4797.3],[1998,4965.23],[1999,5048.62],[2000,5098.85],[2001,5156.45],[2002,5288.04],[2003,5576.85],[2004,5790.97],[2005,6011],[2006,5969.05],[2007,6040.89],[2008,6175.1],[2009,6207.17]],"population":[[1820,2689000],[1870,3776000],[1913,5497000],[1950,8892718],[1951,9073304],[1952,9279525],[1953,9531710],[1954,9611093],[1955,9841851],[1956,10057133],[1957,10270856],[1958,10484925],[1959,10696396],[1960,10909294],[1961,11121645],[1962,11000948],[1963,11272878],[1964,11612858],[1965,11963091],[1966,12339140],[1967,12760499],[1968,13146267],[1969,13528304],[1970,13931846],[1971,14335388],[1972,14760787],[1973,15197724],[1974,15653200],[1975,16140252],[1976,16634618],[1977,17152804],[1978,17685768],[1979,18229932],[1980,18806061],[1981,19407036],[1982,20033753],[1983,20680982],[1984,21340546],[1985,22008450],[1986,22642538],[1987,23254956],[1988,23883858],[1989,24500650],[1990,25093154],[1991,25689444],[1992,26298373],[1993,26914091],[1994,27517041],[1995,28082573],[1996,28595073],[1997,29072015],[1998,29521270],[1999,29962690],[2000,30409300],[2001,30851518],[2002,31287142],[2003,31713719],[2004,32129324],[2005,32531853],[2006,32930091],[2007,33333216],[2008,33739635]],"lifeExpectancy":[[1800,28.8],[1923,28.82],[1933,31.22],[1941,33.72],[1943,33.72],[1945,33.72],[1950,42.02],[1951,42.29],[1952,42.82],[1953,43.34],[1954,43.87],[1955,44.38],[1956,44.9],[1957,45.41],[1958,45.92],[1959,46.43],[1960,46.96],[1961,47.49],[1962,48.04],[1963,48.62],[1964,49.21],[1965,49.82],[1966,50.44],[1967,51.06],[1968,51.68],[1969,52.31],[1970,52.93],[1971,53.57],[1972,54.21],[1973,54.88],[1974,55.56],[1975,56.24],[1976,56.93],[1977,57.61],[1978,58.28],[1979,58.95],[1980,59.63],[1981,60.35],[1982,61.13],[1983,61.96],[1984,62.82],[1985,63.69],[1986,64.53],[1987,65.3],[1988,65.97],[1989,66.54],[1990,67],[1991,67.36],[1992,67.67],[1993,67.94],[1994,68.2],[1995,68.47],[1996,68.75],[1997,69.06],[1998,69.38],[1999,69.73],[2000,70.08],[2001,70.44],[2002,70.79],[2003,71.12],[2004,71.42],[2005,71.7],[2006,71.96],[2007,72.2],[2008,72.44],[2009,72.67]]},{"name":"Bahrain","region":"Middle East & North Africa","income":[[1800,808.99],[1820,812.82],[1913,1394.65],[1934,1575.47],[1950,9158.27],[1951,9508.37],[1952,9867.08],[1953,10230.37],[1954,10599.69],[1955,10957.17],[1956,11308.31],[1957,11635.8],[1958,11921.78],[1959,12169.79],[1960,12373.91],[1961,12543.97],[1962,12753.28],[1963,13030.13],[1964,13372.47],[1965,13810.42],[1966,14286.48],[1967,14804.67],[1968,15319.7],[1969,15864.95],[1970,16484.34],[1971,17331.76],[1972,18268.66],[1973,19043.08],[1974,19904.55],[1975,17069.07],[1976,18770.21],[1977,19340.1],[1978,19212.87],[1979,18373.37],[1980,19096.98],[1981,18770.08],[1982,19211.15],[1983,19765.09],[1984,19830.06],[1985,19035.18],[1986,18782.87],[1987,18524.02],[1988,18571.21],[1989,18431.74],[1990,17860.39],[1991,18146.86],[1992,19035.58],[1993,20065.77],[1994,19499.26],[1995,19759.06],[1996,20101.55],[1997,20292.02],[1998,20834.14],[1999,21317.72],[2000,22015.32],[2001,22630.44],[2002,23403.56],[2003,24686.46],[2004,25659.68],[2005,27236],[2006,28478.46],[2007,30173.04],[2008,31391.38],[2009,24226.51]],"population":[[1800,64474],[1820,64474],[1870,64474],[1913,81882],[1950,114840],[1951,117580],[1952,120447],[1953,123469],[1954,126708],[1955,130253],[1956,134207],[1957,138655],[1958,143798],[1959,149769],[1960,156648],[1961,164334],[1962,171863],[1963,179108],[1964,185691],[1965,191378],[1966,196706],[1967,202182],[1968,207811],[1969,213596],[1970,219543],[1971,225375],[1972,230800],[1973,238977],[1974,248343],[1975,258789],[1976,273661],[1977,297410],[1978,322535],[1979,336070],[1980,347568],[1981,363427],[1982,377967],[1983,393022],[1984,408282],[1985,423950],[1986,439556],[1987,454612],[1988,469484],[1989,484791],[1990,500476],[1991,515234],[1992,529491],[1993,543998],[1994,558397],[1995,572639],[1996,586047],[1997,598561],[1998,610767],[1999,622634],[2000,634137],[2001,645361],[2002,656397],[2003,667238],[2004,677886],[2005,688345],[2006,698585],[2007,708573],[2008,718306]],"lifeExpectancy":[[1800,30.3],[1935,30.3],[1950,49.84],[1951,50.11],[1952,50.65],[1953,51.2],[1954,51.77],[1955,52.35],[1956,52.93],[1957,53.53],[1958,54.14],[1959,54.75],[1960,55.36],[1961,55.97],[1962,56.58],[1963,57.19],[1964,57.79],[1965,58.4],[1966,59.02],[1967,59.66],[1968,60.32],[1969,60.99],[1970,61.66],[1971,62.3],[1972,62.89],[1973,63.44],[1974,63.95],[1975,64.43],[1976,64.93],[1977,65.47],[1978,66.06],[1979,66.69],[1980,67.35],[1981,68],[1982,68.61],[1983,69.14],[1984,69.6],[1985,70],[1986,70.34],[1987,70.68],[1988,71.02],[1989,71.37],[1990,71.73],[1991,72.1],[1992,72.46],[1993,72.79],[1994,73.09],[1995,73.36],[1996,73.61],[1997,73.82],[1998,74.02],[1999,74.21],[2000,74.38],[2001,74.56],[2002,74.72],[2003,74.89],[2004,75.06],[2005,75.23],[2006,75.4],[2007,75.57],[2008,75.73],[2009,75.88]]},{"name":"Djibouti","region":"Middle East & North Africa","income":[[1800,380.73],[1820,380.73],[1913,588.26],[1950,2576.1],[1951,2655.01],[1952,2669.53],[1953,2705.48],[1954,2786.75],[1955,2803.23],[1956,2836.84],[1957,2864.97],[1958,2859.64],[1959,2939.93],[1960,3043.2],[1961,3063.21],[1962,3020.99],[1963,3047.41],[1964,3019.73],[1965,3013.92],[1966,3025.89],[1967,3020.05],[1968,2999.58],[1969,2992.7],[1970,3554.43],[1971,3679.34],[1972,3694.21],[1973,3753.6],[1974,3573.21],[1975,3548.19],[1976,3700.95],[1977,3081.76],[1978,2961.74],[1979,2898.73],[1980,2853.84],[1981,2875.04],[1982,2879.47],[1983,2821.91],[1984,3094.98],[1985,3020.75],[1986,2949.02],[1987,2880.1],[1988,2742.92],[1989,2580.68],[1990,2487.04],[1991,2438.6],[1992,2377.16],[1993,2231.57],[1994,2159.36],[1995,2052.06],[1996,1927.09],[1997,1895.02],[1998,1875.74],[1999,1901.12],[2000,1894.04],[2001,1899.26],[2002,1908.26],[2003,1931.6],[2004,1942.69],[2005,1964],[2006,2008.4],[2007,2058.87],[2008,2125.61],[2009,2176.79]],"population":[[1800,22848],[1820,22848],[1950,60036],[1951,61572],[1952,63149],[1953,64768],[1954,66431],[1955,68137],[1956,69892],[1957,71851],[1958,73986],[1959,76174],[1960,78417],[1961,83913],[1962,89898],[1963,96376],[1964,103354],[1965,110840],[1966,118886],[1967,127617],[1968,137047],[1969,147181],[1970,158034],[1971,168600],[1972,178848],[1973,188750],[1974,198279],[1975,207959],[1976,217219],[1977,228694],[1978,247883],[1979,263409],[1980,279149],[1981,293659],[1982,305991],[1983,316123],[1984,289431],[1985,296544],[1986,303756],[1987,311025],[1988,326580],[1989,349928],[1990,366088],[1991,375227],[1992,384156],[1993,393258],[1994,402548],[1995,409366],[1996,413627],[1997,417908],[1998,422202],[1999,426507],[2000,430822],[2001,437778],[2002,447416],[2003,457130],[2004,466900],[2005,476703],[2006,486530],[2007,496374],[2008,506221]],"lifeExpectancy":[[1800,29.9],[1945,29.9],[1950,33.76],[1951,34.03],[1952,34.56],[1953,35.08],[1954,35.59],[1955,36.1],[1956,36.59],[1957,37.08],[1958,37.57],[1959,38.05],[1960,38.52],[1961,38.99],[1962,39.47],[1963,39.94],[1964,40.42],[1965,40.89],[1966,41.37],[1967,41.84],[1968,42.31],[1969,42.78],[1970,43.24],[1971,43.69],[1972,44.15],[1973,44.59],[1974,45.03],[1975,45.47],[1976,45.9],[1977,46.33],[1978,46.75],[1979,47.17],[1980,47.58],[1981,47.98],[1982,48.35],[1983,48.7],[1984,49.04],[1985,49.35],[1986,49.65],[1987,49.94],[1988,50.23],[1989,50.52],[1990,50.82],[1991,51.14],[1992,51.47],[1993,51.81],[1994,52.16],[1995,52.5],[1996,52.8],[1997,53.06],[1998,53.27],[1999,53.44],[2000,53.57],[2001,53.7],[2002,53.83],[2003,54],[2004,54.2],[2005,54.46],[2006,54.75],[2007,55.08],[2008,55.42],[2009,55.78]]},{"name":"Iraq","region":"Middle East & North Africa","income":[[1800,700],[1820,700],[1821,706.73],[1822,713.53],[1823,720.39],[1824,727.32],[1825,734.31],[1826,741.37],[1827,748.5],[1828,755.7],[1829,762.97],[1830,770.3],[1831,777.71],[1832,785.19],[1833,792.74],[1834,800.36],[1835,808.06],[1836,815.83],[1837,823.68],[1838,831.6],[1839,839.6],[1840,847.67],[1841,855.82],[1842,864.05],[1843,872.36],[1844,880.75],[1845,889.22],[1846,897.77],[1847,906.4],[1848,915.12],[1849,923.92],[1850,932.8],[1851,941.77],[1852,950.83],[1853,959.98],[1854,969.21],[1855,978.53],[1856,987.94],[1857,997.44],[1858,1007.03],[1859,1016.71],[1860,1026.49],[1861,1036.36],[1862,1046.33],[1863,1056.39],[1864,1066.55],[1865,1076.8],[1866,1087.16],[1867,1097.61],[1868,1108.17],[1869,1118.83],[1870,1129.59],[1871,1144.63],[1872,1159.87],[1873,1175.32],[1874,1190.97],[1875,1206.84],[1876,1222.91],[1877,1239.2],[1878,1255.7],[1879,1272.42],[1880,1289.37],[1881,1306.54],[1882,1323.94],[1883,1341.58],[1884,1359.44],[1885,1377.55],[1886,1395.9],[1887,1414.49],[1888,1433.33],[1889,1452.42],[1890,1471.76],[1891,1491.36],[1892,1511.22],[1893,1531.35],[1894,1551.74],[1895,1572.41],[1896,1593.35],[1897,1614.57],[1898,1636.08],[1899,1657.87],[1900,1679.95],[1901,1702.32],[1902,1724.99],[1903,1747.97],[1904,1771.25],[1905,1794.84],[1906,1818.74],[1907,1842.96],[1908,1867.51],[1909,1892.38],[1910,1917.58],[1911,1943.12],[1912,1969],[1913,1995.22],[1914,2023.23],[1915,2051.63],[1916,2080.43],[1917,2109.64],[1918,2139.25],[1919,2169.28],[1920,2199.73],[1921,2230.61],[1922,2261.93],[1923,2293.68],[1924,2325.88],[1925,2358.52],[1926,2391.63],[1927,2425.21],[1928,2459.25],[1929,2493.77],[1930,2528.78],[1931,2564.28],[1932,2600.27],[1933,2636.77],[1934,2673.79],[1935,2711.32],[1936,2749.38],[1937,2787.98],[1938,2827.11],[1939,2866.8],[1940,2907.04],[1941,2947.85],[1942,2989.23],[1943,3031.19],[1944,3073.74],[1945,3116.89],[1946,3160.64],[1947,3205.01],[1948,3250],[1949,3295.62],[1950,3341.89],[1951,3562.05],[1952,3857.31],[1953,5305.47],[1954,6172.51],[1955,5791.49],[1956,6054.16],[1957,5859.83],[1958,6388.15],[1959,6500.84],[1960,7086.01],[1961,7714.63],[1962,7902.87],[1963,7565.25],[1964,8253.13],[1965,8758.22],[1966,8969.67],[1967,8521.87],[1968,9761.33],[1969,9816.71],[1970,9511.46],[1971,9823.3],[1972,9202.01],[1973,10452.87],[1974,10711.67],[1975,12152.33],[1976,14224.37],[1977,14215.14],[1978,16303],[1979,19452.15],[1980,18465.74],[1981,14677.56],[1982,14150.44],[1983,12567.34],[1984,12243.9],[1985,11706.94],[1986,11252.93],[1987,11429.75],[1988,8801.59],[1989,7824.67],[1990,7525.13],[1991,2913.94],[1992,3703.06],[1993,3613.88],[1994,3350.26],[1995,2973.04],[1996,3264.74],[1997,3062.95],[1998,3438.69],[1999,3643.97],[2000,3951.74],[2001,4209.66],[2002,4402.9],[2003,3366.63],[2004,3293.16],[2005,3200],[2006,3299.56],[2007,3254.5],[2008,3467.12],[2009,3518.18]],"population":[[1820,1093000],[1870,1580000],[1913,2613000],[1950,5163443],[1951,5299983],[1952,5441766],[1953,5589018],[1954,5742552],[1955,5903253],[1956,6073493],[1957,6248643],[1958,6433104],[1959,6624713],[1960,6822030],[1961,7026278],[1962,7240260],[1963,7468223],[1964,7711071],[1965,7970746],[1966,8240451],[1967,8519282],[1968,8807547],[1969,9105567],[1970,9413671],[1971,9732199],[1972,10061506],[1973,10401956],[1974,10753925],[1975,11117804],[1976,11493995],[1977,11882916],[1978,12317137],[1979,12768376],[1980,13232839],[1981,13703103],[1982,14173318],[1983,14652218],[1984,15160546],[1985,15693620],[1986,16247340],[1987,16543189],[1988,17038084],[1989,17568414],[1990,18134702],[1991,17471586],[1992,17861905],[1993,18404698],[1994,18969505],[1995,19557247],[1996,20161940],[1997,20775703],[1998,21397764],[1999,22031349],[2000,22675617],[2001,23331985],[2002,24001816],[2003,24683313],[2004,25374691],[2005,26074906],[2006,26783383],[2007,27499638],[2008,28221181]],"lifeExpectancy":[[1800,31.2],[1940,31.2],[1950,40.04],[1951,40.62],[1952,41.77],[1953,42.89],[1954,44],[1955,45.08],[1956,46.13],[1957,47.17],[1958,48.18],[1959,49.17],[1960,50.13],[1961,51.07],[1962,51.99],[1963,52.87],[1964,53.73],[1965,54.54],[1966,55.32],[1967,56.06],[1968,56.75],[1969,57.39],[1970,57.98],[1971,58.5],[1972,58.95],[1973,59.35],[1974,59.68],[1975,59.97],[1976,60.21],[1977,60.42],[1978,60.61],[1979,60.81],[1980,61],[1981,61.21],[1982,61.42],[1983,61.66],[1984,61.92],[1985,62.21],[1986,62.54],[1987,62.91],[1988,63.33],[1989,63.79],[1990,64.36],[1991,65.06],[1992,65.9],[1993,66.85],[1994,67.88],[1995,68.89],[1996,69.8],[1997,70.54],[1998,71.04],[1999,71.28],[2000,71.24],[2001,70.92],[2002,70.4],[2003,69.77],[2004,69.1],[2005,68.5],[2006,68.06],[2007,67.84],[2008,67.86],[2009,68.1]]},{"name":"Israel","region":"Middle East & North Africa","income":[[1800,882.54],[1820,886.71],[1913,1521.43],[1950,3800.93],[1951,4261.85],[1952,4086.52],[1953,3926.39],[1954,4552.49],[1955,4993.23],[1956,5208.06],[1957,5385.28],[1958,5543.32],[1959,6073.06],[1960,6291.25],[1961,6740.54],[1962,7105.63],[1963,7546.03],[1964,7981.81],[1965,8462.28],[1966,8351.32],[1967,8393.74],[1968,9488.73],[1969,10418.87],[1970,10928.84],[1971,11752.59],[1972,12786.93],[1973,13012.38],[1974,13525.4],[1975,13690.86],[1976,13587.56],[1977,13306.62],[1978,13659.85],[1979,14185.86],[1980,14819.26],[1981,15322.59],[1982,15367.03],[1983,15630.64],[1984,15462.57],[1985,15722.47],[1986,16227.05],[1987,17122.48],[1988,17187.12],[1989,17048.77],[1990,17495.15],[1991,17543.46],[1992,18051.52],[1993,18202.42],[1994,19299.93],[1995,20145.03],[1996,20644.52],[1997,20896.61],[1998,21113.01],[1999,21332.8],[2000,22834.93],[2001,22377.18],[2002,21905.6],[2003,22090.73],[2004,22930.28],[2005,23846],[2006,24667.09],[2007,25392],[2008,25839.31],[2009,25463.69]],"population":[[1800,209954],[1850,209954],[1860,227862],[1877,272230],[1878,275487],[1879,278796],[1880,282159],[1881,285577],[1882,289050],[1883,292581],[1884,296171],[1885,299820],[1886,303529],[1887,307301],[1888,311138],[1889,314897],[1890,318717],[1891,322595],[1892,326535],[1893,330540],[1894,334700],[1895,338923],[1896,343302],[1897,347747],[1898,352496],[1899,357320],[1900,362220],[1901,367198],[1902,372255],[1903,377392],[1904,382612],[1905,387914],[1906,393303],[1907,398779],[1908,404344],[1909,409998],[1910,415745],[1911,427524],[1912,433559],[1913,439694],[1914,445931],[1918,417858],[1922,455836],[1931,588805],[1932,611936],[1933,649925],[1934,689309],[1935,744301],[1936,775728],[1937,797281],[1938,816723],[1939,860556],[1940,889866],[1941,915868],[1942,940120],[1943,971687],[1944,1005926],[1945,1043684],[1946,1084877],[1950,1286131],[1951,1489998],[1952,1620914],[1953,1667098],[1954,1711647],[1955,1772032],[1956,1850059],[1957,1944401],[1958,2024772],[1959,2081592],[1960,2141495],[1961,2217050],[1962,2310904],[1963,2406662],[1964,2498199],[1965,2578184],[1966,2641123],[1967,2693585],[1968,2746986],[1969,2817051],[1970,2903434],[1971,2996919],[1972,3095893],[1973,3197411],[1974,3285761],[1975,3354242],[1976,3423635],[1977,3495918],[1978,3569780],[1979,3653480],[1980,3737473],[1981,3801338],[1982,3858421],[1983,3926893],[1984,4005301],[1985,4074965],[1986,4137141],[1987,4203148],[1988,4271530],[1989,4344042],[1990,4512068],[1991,4756279],[1992,4936550],[1993,5062136],[1994,5184895],[1995,5305120],[1996,5420065],[1997,5531387],[1998,5638981],[1999,5742719],[2000,5842454],[2001,5938093],[2002,6029529],[2003,6116533],[2004,6199008],[2005,6276883],[2006,6352117],[2007,6426679],[2008,6500389]],"lifeExpectancy":[[1950,64.17],[1951,64.5],[1952,65.13],[1953,65.72],[1954,66.26],[1955,66.76],[1956,67.22],[1957,67.64],[1958,68.03],[1959,68.38],[1960,68.7],[1961,69.01],[1962,69.3],[1963,69.58],[1964,69.86],[1965,70.12],[1966,70.37],[1967,70.6],[1968,70.81],[1969,71],[1970,71.19],[1971,71.37],[1972,71.57],[1973,71.79],[1974,72.04],[1975,72.31],[1976,72.6],[1977,72.9],[1978,73.19],[1979,73.49],[1980,73.77],[1981,74.05],[1982,74.31],[1983,74.82],[1984,75.11],[1985,75.44],[1986,75.27],[1987,75.65],[1988,76.01],[1989,76.61],[1990,77.08],[1991,76.93],[1992,76.8],[1993,77.39],[1994,77.64],[1995,77.62],[1996,78.23],[1997,78.12],[1998,78.29],[1999,78.57],[2000,78.75],[2001,79.16],[2002,79.15],[2003,79.5],[2004,79.96],[2005,80.02],[2006,80.37],[2007,80.46],[2008,80.84],[2009,81]]},{"name":"Jordan","region":"Middle East & North Africa","income":[[1800,528.69],[1820,528.69],[1870,643.58],[1913,896.29],[1950,1490.67],[1951,1519.55],[1952,1546.91],[1953,1574.41],[1954,1601.52],[1955,1456.61],[1956,1917.53],[1957,1886.08],[1958,1989.85],[1959,2050.05],[1960,2088.37],[1961,2406.72],[1962,2348.01],[1963,2374.59],[1964,2671.52],[1965,2853.28],[1966,2812.02],[1967,2741.8],[1968,2396.39],[1969,2485.4],[1970,2147.05],[1971,2120.34],[1972,2110.86],[1973,2140.76],[1974,2246.18],[1975,2315.09],[1976,2775.3],[1977,2852.35],[1978,3332.55],[1979,3512.68],[1980,4015.32],[1981,4035.5],[1982,4161.42],[1983,4083.58],[1984,4272.23],[1985,4261.3],[1986,4483.23],[1987,4448.68],[1988,4257.36],[1989,3677.47],[1990,3399.1],[1991,3124.26],[1992,3431.59],[1993,3524.17],[1994,3610.78],[1995,3732.14],[1996,3668.74],[1997,3645.38],[1998,3624.61],[1999,3626.38],[2000,3664.56],[2001,3742.83],[2002,3844.92],[2003,3894.25],[2004,4115.51],[2005,4294],[2006,4531.28],[2007,4829.01],[2008,5086.65],[2009,5109.39]],"population":[[1800,217000],[1820,217000],[1870,266000],[1913,348000],[1950,561254],[1951,584172],[1952,607914],[1953,632897],[1954,659275],[1955,686955],[1956,715991],[1957,746559],[1958,778683],[1959,812544],[1960,848515],[1961,886800],[1962,933559],[1963,974549],[1964,1017180],[1965,1061463],[1966,1107384],[1967,1255058],[1968,1382539],[1969,1453541],[1970,1502959],[1971,1556226],[1972,1613551],[1973,1674258],[1974,1737593],[1975,1802960],[1976,1869657],[1977,1937652],[1978,2006908],[1979,2077386],[1980,2162807],[1981,2253579],[1982,2347031],[1983,2439504],[1984,2532511],[1985,2627750],[1986,2724221],[1987,2820042],[1988,2916505],[1989,3018990],[1990,3262054],[1991,3630633],[1992,3867409],[1993,3984238],[1994,4082087],[1995,4201514],[1996,4363534],[1997,4526235],[1998,4685946],[1999,4842831],[2000,4998564],[2001,5153378],[2002,5307470],[2003,5460265],[2004,5611202],[2005,5759732],[2006,5906760],[2007,6053193],[2008,6198677]],"lifeExpectancy":[[1800,31.7],[1935,31.7],[1950,42.12],[1951,42.38],[1952,42.91],[1953,43.42],[1954,43.93],[1955,44.42],[1956,44.91],[1957,45.39],[1958,45.86],[1959,46.33],[1960,46.82],[1961,47.32],[1962,47.84],[1963,48.41],[1964,49.02],[1965,49.69],[1966,50.43],[1967,51.24],[1968,52.11],[1969,53.03],[1970,54],[1971,55],[1972,56.03],[1973,57.05],[1974,58.05],[1975,59],[1976,59.89],[1977,60.69],[1978,61.42],[1979,62.06],[1980,62.63],[1981,63.13],[1982,63.58],[1983,64.01],[1984,64.43],[1985,64.85],[1986,65.27],[1987,65.69],[1988,66.12],[1989,66.55],[1990,66.97],[1991,67.4],[1992,67.81],[1993,68.2],[1994,68.58],[1995,68.94],[1996,69.29],[1997,69.62],[1998,69.94],[1999,70.25],[2000,70.55],[2001,70.84],[2002,71.12],[2003,71.4],[2004,71.66],[2005,71.92],[2006,72.17],[2007,72.41],[2008,72.65],[2009,72.88]]},{"name":"Kuwait","region":"Middle East & North Africa","income":[[1800,661.9],[1820,665.03],[1913,1141.07],[1938,1319.3],[1950,104248.05],[1951,107493.38],[1952,108382.35],[1953,113211.88],[1954,119849.29],[1955,116444.4],[1956,118681.3],[1957,113523.13],[1958,107961.27],[1959,106738.9],[1960,104014.69],[1961,94263.18],[1962,95458.11],[1963,91444.07],[1964,91341.83],[1965,84952.11],[1966,86817.71],[1967,80894.88],[1968,80502.14],[1969,75675.71],[1970,110805.23],[1971,111654.83],[1972,109347.87],[1973,96344.51],[1974,79178.58],[1975,65562.34],[1976,65578.2],[1977,59265.48],[1978,59706.33],[1979,63804.61],[1980,47907.19],[1981,37146.48],[1982,31354.04],[1983,32366.58],[1984,32575.65],[1985,29473.68],[1986,30593.24],[1987,28118.43],[1988,27895.53],[1989,28764.51],[1990,22095.96],[1991,29268.87],[1992,34932.92],[1993,44804.87],[1994,46467.09],[1995,44959.08],[1996,41620.24],[1997,40300.62],[1998,38056.53],[1999,36011.27],[2000,36397.96],[2001,35249.64],[2002,35110.11],[2003,39560.79],[2004,42275.64],[2005,44947],[2006,44411.38],[2007,43774.85],[2008,44783.08],[2009,42443.53]],"population":[[1800,81280],[1820,81280],[1870,81280],[1913,103226],[1950,144774],[1951,152197],[1952,160000],[1953,168372],[1954,177181],[1955,186639],[1956,196601],[1957,212846],[1958,234855],[1959,262006],[1960,292229],[1961,325342],[1962,358266],[1963,394128],[1964,433233],[1965,476123],[1966,523259],[1967,575003],[1968,631802],[1969,690445],[1970,747502],[1971,793314],[1972,841934],[1973,893534],[1974,948296],[1975,1006892],[1976,1071549],[1977,1140357],[1978,1213584],[1979,1291514],[1980,1369769],[1981,1432188],[1982,1497494],[1983,1565822],[1984,1637314],[1985,1732824],[1986,1811489],[1987,1891487],[1988,1973148],[1989,2056779],[1990,2142011],[1991,954071],[1992,1418095],[1993,1483773],[1994,1551427],[1995,1620808],[1996,1692893],[1997,1765345],[1998,1835863],[1999,1905246],[2000,1973572],[2001,2041961],[2002,2111561],[2003,2183161],[2004,2257549],[2005,2335648],[2006,2418393],[2007,2505559],[2008,2596799]],"lifeExpectancy":[[1800,26],[1908,26],[1939,26],[1950,54.5],[1951,54.78],[1952,55.33],[1953,55.85],[1954,56.35],[1955,56.83],[1956,57.29],[1957,57.74],[1958,58.19],[1959,58.65],[1960,59.14],[1961,59.68],[1962,60.29],[1963,60.97],[1964,61.72],[1965,62.52],[1966,63.35],[1967,64.18],[1968,64.97],[1969,65.71],[1970,66.38],[1971,66.96],[1972,67.46],[1973,67.9],[1974,68.29],[1975,68.63],[1976,68.94],[1977,69.24],[1978,69.55],[1979,69.88],[1980,70.25],[1981,70.68],[1982,71.17],[1983,71.7],[1984,72.26],[1985,72.82],[1986,73.35],[1987,73.83],[1988,74.24],[1989,74.57],[1990,74.82],[1991,75.02],[1992,75.19],[1993,75.35],[1994,75.52],[1995,75.7],[1996,75.88],[1997,76.06],[1998,76.23],[1999,76.4],[2000,76.55],[2001,76.7],[2002,76.84],[2003,76.98],[2004,77.12],[2005,77.26],[2006,77.39],[2007,77.53],[2008,77.66],[2009,77.79]]},{"name":"Lebanon","region":"Middle East & North Africa","income":[[1800,932],[1820,932],[1870,1416.26],[1913,2612.58],[1950,5318.45],[1951,4659.46],[1952,4834.8],[1953,5435.23],[1954,6091.8],[1955,6426.76],[1956,6129.26],[1957,6089.79],[1958,5102.57],[1959,5404.77],[1960,5416.84],[1961,5637.19],[1962,5714.56],[1963,5622.87],[1964,5814.82],[1965,6229.76],[1966,6477.88],[1967,6006.98],[1968,6583.23],[1969,6555.04],[1970,6827.41],[1971,7047.88],[1972,7486.38],[1973,7460.56],[1974,8310.09],[1975,8238.75],[1976,8415.07],[1977,8659.7],[1978,8921.68],[1979,8462.01],[1980,8532.76],[1981,8168.77],[1982,7640.52],[1983,7582.8],[1984,7767.38],[1985,7991.15],[1986,7663.71],[1987,5377.09],[1988,4896.81],[1989,4901.33],[1990,4849.2],[1991,6627.25],[1992,6890.81],[1993,7323.93],[1994,7844.05],[1995,8271.72],[1996,8509.88],[1997,8754.96],[1998,8920.81],[1999,8754.7],[2000,8809.99],[2001,9110.35],[2002,9313.94],[2003,9598.46],[2004,10207.45],[2005,10212],[2006,10256.98],[2007,11026.25],[2008,11864.38],[2009,12766.21]],"population":[[1800,332000],[1820,332000],[1870,476000],[1913,649000],[1950,1364030],[1951,1401246],[1952,1439529],[1953,1478915],[1954,1519439],[1955,1560985],[1956,1603579],[1957,1647412],[1958,1692357],[1959,1738617],[1960,1786235],[1961,1835620],[1962,1886848],[1963,1940191],[1964,1996143],[1965,2057945],[1966,2121579],[1967,2186894],[1968,2253719],[1969,2320495],[1970,2383029],[1971,2529267],[1972,2680018],[1973,2825318],[1974,2987566],[1975,3098159],[1976,3118590],[1977,3115787],[1978,3109385],[1979,3099426],[1980,3085876],[1981,3081499],[1982,3086876],[1983,3089792],[1984,3090257],[1985,3088235],[1986,3086848],[1987,3089353],[1988,3095949],[1989,3106800],[1990,3147267],[1991,3193208],[1992,3219994],[1993,3252469],[1994,3290707],[1995,3334733],[1996,3382135],[1997,3430388],[1998,3479269],[1999,3528559],[2000,3578036],[2001,3627774],[2002,3677780],[2003,3727703],[2004,3777218],[2005,3826018],[2006,3874050],[2007,3921278],[2008,3967467]],"lifeExpectancy":[[1800,29.7],[1940,29.7],[1950,54.28],[1951,54.71],[1952,55.55],[1953,56.36],[1954,57.13],[1955,57.86],[1956,58.55],[1957,59.21],[1958,59.82],[1959,60.4],[1960,60.93],[1961,61.43],[1962,61.89],[1963,62.31],[1964,62.7],[1965,63.07],[1966,63.42],[1967,63.76],[1968,64.1],[1969,64.42],[1970,64.73],[1971,65.02],[1972,65.27],[1973,65.48],[1974,65.66],[1975,65.81],[1976,65.95],[1977,66.08],[1978,66.21],[1979,66.36],[1980,66.52],[1981,66.69],[1982,66.87],[1983,67.05],[1984,67.23],[1985,67.42],[1986,67.62],[1987,67.84],[1988,68.08],[1989,68.34],[1990,68.61],[1991,68.88],[1992,69.14],[1993,69.39],[1994,69.61],[1995,69.82],[1996,70.01],[1997,70.18],[1998,70.34],[1999,70.5],[2000,70.65],[2001,70.8],[2002,70.97],[2003,71.14],[2004,71.31],[2005,71.5],[2006,71.69],[2007,71.88],[2008,72.08],[2009,72.26]]},{"name":"Libya","region":"Middle East & North Africa","income":[[1800,570],[1820,570],[1950,2084.28],[1951,2270.25],[1952,2387.55],[1953,2375.34],[1954,2313.67],[1955,2844.84],[1956,3385.73],[1957,3448.28],[1958,3705.67],[1959,3901.97],[1960,4902.71],[1961,5237.93],[1962,6757.03],[1963,8862.05],[1964,12161.38],[1965,15128.28],[1966,17346.19],[1967,18772.75],[1968,24313.51],[1969,26443.62],[1970,26914.43],[1971,24603.66],[1972,21011.5],[1973,20259.77],[1974,16512.38],[1975,17095.75],[1976,20471.58],[1977,21951.21],[1978,22311.86],[1979,24378.58],[1980,23661.27],[1981,18559.06],[1982,17364.28],[1983,16643.32],[1984,14874.49],[1985,13502.85],[1986,12367.27],[1987,11770.59],[1988,11617.21],[1989,11476.56],[1990,11069.61],[1991,10228.75],[1992,9640.14],[1993,9056.06],[1994,8810.1],[1995,8737.85],[1996,9051.46],[1997,9467.45],[1998,8998.07],[1999,8966.93],[2000,9139.68],[2001,9539.9],[2002,9534.68],[2003,9954.11],[2004,10304.93],[2005,10804],[2006,11305.18],[2007,11916.54],[2008,12079.02],[2009,12051.62]],"population":[[1820,538000],[1950,961305],[1951,989591],[1952,1019729],[1953,1051835],[1954,1086038],[1955,1122475],[1956,1160947],[1957,1201578],[1958,1244627],[1959,1290121],[1960,1337947],[1961,1388517],[1962,1441863],[1963,1498607],[1964,1560361],[1965,1623770],[1966,1693925],[1967,1759224],[1968,1833726],[1969,1922974],[1970,1999162],[1971,2077381],[1972,2183877],[1973,2312369],[1974,2451375],[1975,2569606],[1976,2666160],[1977,2721783],[1978,2796747],[1979,2928575],[1980,3065365],[1981,3204071],[1982,3344074],[1983,3484531],[1984,3624920],[1985,3675422],[1986,3699538],[1987,3799845],[1988,3913314],[1989,4026847],[1990,4139825],[1991,4252354],[1992,4364501],[1993,4475679],[1994,4585017],[1995,4654252],[1996,4686329],[1997,4759670],[1998,4874638],[1999,4993414],[2000,5115450],[2001,5240599],[2002,5368585],[2003,5499074],[2004,5631585],[2005,5765563],[2006,5900754],[2007,6036914],[2008,6173579]],"lifeExpectancy":[[1800,33],[1940,33],[1950,41.69],[1951,41.95],[1952,42.47],[1953,42.98],[1954,43.5],[1955,44.01],[1956,44.53],[1957,45.04],[1958,45.55],[1959,46.06],[1960,46.56],[1961,47.06],[1962,47.55],[1963,48.04],[1964,48.53],[1965,49.01],[1966,49.47],[1967,49.92],[1968,50.37],[1969,50.83],[1970,51.33],[1971,51.89],[1972,52.52],[1973,53.25],[1974,54.06],[1975,54.94],[1976,55.89],[1977,56.88],[1978,57.87],[1979,58.86],[1980,59.83],[1981,60.79],[1982,61.73],[1983,62.67],[1984,63.57],[1985,64.44],[1986,65.25],[1987,65.99],[1988,66.67],[1989,67.27],[1990,67.83],[1991,68.35],[1992,68.86],[1993,69.37],[1994,69.88],[1995,70.38],[1996,70.86],[1997,71.29],[1998,71.67],[1999,71.98],[2000,72.25],[2001,72.49],[2002,72.7],[2003,72.92],[2004,73.14],[2005,73.36],[2006,73.6],[2007,73.83],[2008,74.06],[2009,74.28]]},{"name":"Morocco","region":"Middle East & North Africa","income":[[1800,497.25],[1820,497.17],[1870,651.13],[1913,821.37],[1950,1683.1],[1951,1686.17],[1952,1688.2],[1953,1698.28],[1954,1707.29],[1955,1715.26],[1956,1678.43],[1957,1642],[1958,1606.28],[1959,1570.98],[1960,1536.62],[1961,1551.35],[1962,1566.35],[1963,1581.36],[1964,1596.54],[1965,1612.12],[1966,1660.76],[1967,1711.04],[1968,1762.62],[1969,1815.24],[1970,1869.14],[1971,1924.99],[1972,1930.19],[1973,1959.41],[1974,2024.8],[1975,2117.48],[1976,2304.26],[1977,2370.62],[1978,2392.59],[1979,2453.98],[1980,2627.7],[1981,2508.85],[1982,2702.62],[1983,2616.83],[1984,2655.21],[1985,2748.96],[1986,2889.61],[1987,2755.05],[1988,2963.85],[1989,2960.35],[1990,3002.1],[1991,3138.3],[1992,2948.05],[1993,2857.36],[1994,3090.03],[1995,2828.67],[1996,3112.23],[1997,2982.1],[1998,3156.79],[1999,3097.02],[2000,3073.43],[2001,3211.29],[2002,3258.5],[2003,3400.37],[2004,3519.46],[2005,3547],[2006,3774.77],[2007,3832.92],[2008,3990.75],[2009,4162.93]],"population":[[1820,2689000],[1870,3776000],[1913,5111000],[1950,9343384],[1951,9633621],[1952,9939217],[1953,10205766],[1954,10486500],[1955,10781677],[1956,11088510],[1957,11406350],[1958,11734866],[1959,12074375],[1960,12423434],[1961,12736342],[1962,13056604],[1963,13385360],[1964,13722483],[1965,14066154],[1966,14414636],[1967,14770296],[1968,15137266],[1969,15517155],[1970,15909275],[1971,16313391],[1972,16660670],[1973,16998378],[1974,17335236],[1975,17687376],[1976,18042963],[1977,18396941],[1978,18758283],[1979,19125959],[1980,19487272],[1981,19846221],[1982,20198730],[1983,20740299],[1984,21295943],[1985,21857410],[1986,22421628],[1987,22987397],[1988,23554959],[1989,24122368],[1990,24685960],[1991,25244056],[1992,25798239],[1993,26350819],[1994,26900833],[1995,27446860],[1996,27989535],[1997,28529501],[1998,29065648],[1999,29596788],[2000,30122350],[2001,30645305],[2002,31167783],[2003,31689265],[2004,32209101],[2005,32725847],[2006,33241259],[2007,33757175],[2008,34272968]],"lifeExpectancy":[[1800,33.1],[1940,33.1],[1950,41.85],[1951,42.1],[1952,42.62],[1953,43.13],[1954,43.64],[1955,44.16],[1956,44.67],[1957,45.17],[1958,45.68],[1959,46.18],[1960,46.68],[1961,47.18],[1962,47.67],[1963,48.16],[1964,48.64],[1965,49.13],[1966,49.61],[1967,50.09],[1968,50.57],[1969,51.06],[1970,51.56],[1971,52.06],[1972,52.57],[1973,53.09],[1974,53.63],[1975,54.19],[1976,54.8],[1977,55.46],[1978,56.17],[1979,56.91],[1980,57.68],[1981,58.45],[1982,59.21],[1983,59.93],[1984,60.61],[1985,61.25],[1986,61.86],[1987,62.44],[1988,63],[1989,63.55],[1990,64.1],[1991,64.63],[1992,65.15],[1993,65.64],[1994,66.12],[1995,66.59],[1996,67.04],[1997,67.47],[1998,67.89],[1999,68.3],[2000,68.69],[2001,69.08],[2002,69.44],[2003,69.79],[2004,70.13],[2005,70.44],[2006,70.75],[2007,71.03],[2008,71.31],[2009,71.58]]},{"name":"Oman","region":"Middle East & North Africa","income":[[1800,882.54],[1820,886.71],[1913,1521.43],[1950,1681.63],[1951,1753.06],[1952,1828.23],[1953,1906.94],[1954,1986.07],[1955,2068.1],[1956,2155.84],[1957,2242.75],[1958,2337.97],[1959,2429.59],[1960,2522.63],[1961,2491.42],[1962,2924.64],[1963,2975.73],[1964,2902.51],[1965,2842.57],[1966,2914],[1967,4720.94],[1968,8348.98],[1969,10208.31],[1970,10251.63],[1971,10029.3],[1972,10618.04],[1973,8849.08],[1974,9557.8],[1975,11516.25],[1976,12407.01],[1977,11848.34],[1978,11026.71],[1979,10914.09],[1980,10989.43],[1981,12206.78],[1982,12954.79],[1983,14428.57],[1984,16128.07],[1985,17663.75],[1986,17386.29],[1987,18115.22],[1988,18002.58],[1989,18103.04],[1990,17485.61],[1991,17828.04],[1992,18616.71],[1993,19021.94],[1994,19083.44],[1995,19325.59],[1996,19207.86],[1997,19702.06],[1998,19545.61],[1999,18843.38],[2000,19204.29],[2001,19945.39],[2002,19774.84],[2003,19497.67],[2004,19870.6],[2005,20334],[2006,20984.34],[2007,21239.98],[2008,22789.62],[2009,22804.85]],"population":[[1800,318000],[1820,318000],[1870,367000],[1913,444000],[1950,488588],[1951,498207],[1952,507833],[1953,517464],[1954,528286],[1955,539115],[1956,549950],[1957,561977],[1958,572826],[1959,586055],[1960,599292],[1961,613723],[1962,628164],[1963,644990],[1964,661826],[1965,678672],[1966,696718],[1967,714775],[1968,735222],[1969,755682],[1970,778536],[1971,802594],[1972,829050],[1973,856714],[1974,884395],[1975,913285],[1976,956453],[1977,1004533],[1978,1058744],[1979,1115515],[1980,1174857],[1981,1237945],[1982,1301048],[1983,1363189],[1984,1423521],[1985,1481587],[1986,1537697],[1987,1593882],[1988,1651822],[1989,1711642],[1990,1772974],[1991,1843255],[1992,1915208],[1993,1988746],[1994,2058553],[1995,2130934],[1996,2205958],[1997,2283635],[1998,2364049],[1999,2447279],[2000,2533389],[2001,2622198],[2002,2713462],[2003,2807125],[2004,2903165],[2005,3001583],[2006,3102229],[2007,3204897],[2008,3309440]],"lifeExpectancy":[[1800,32.3],[1945,32.3],[1950,36.72],[1951,36.92],[1952,37.34],[1953,37.78],[1954,38.24],[1955,38.73],[1956,39.24],[1957,39.78],[1958,40.34],[1959,40.91],[1960,41.52],[1961,42.14],[1962,42.79],[1963,43.46],[1964,44.17],[1965,44.92],[1966,45.72],[1967,46.57],[1968,47.48],[1969,48.45],[1970,49.46],[1971,50.5],[1972,51.55],[1973,52.62],[1974,53.68],[1975,54.74],[1976,55.79],[1977,56.85],[1978,57.92],[1979,58.99],[1980,60.07],[1981,61.15],[1982,62.23],[1983,63.31],[1984,64.36],[1985,65.38],[1986,66.37],[1987,67.31],[1988,68.2],[1989,69.02],[1990,69.75],[1991,70.38],[1992,70.91],[1993,71.34],[1994,71.7],[1995,71.99],[1996,72.25],[1997,72.5],[1998,72.76],[1999,73.04],[2000,73.35],[2001,73.68],[2002,74.02],[2003,74.34],[2004,74.66],[2005,74.95],[2006,75.22],[2007,75.48],[2008,75.72],[2009,75.94]]},{"name":"Qatar","region":"Middle East & North Africa","income":[[1800,588.36],[1820,591.14],[1913,1014.29],[1939,1179.54],[1970,80244.5],[1971,80293.69],[1972,81068.9],[1973,82057.81],[1974,80224.5],[1975,79275.52],[1976,81127.92],[1977,71615.83],[1978,74170.51],[1979,73434.87],[1980,67344.1],[1981,65947.52],[1982,57679.64],[1983,52169.59],[1984,49067.69],[1985,44379.47],[1986,42994.48],[1987,40870.69],[1988,40632.35],[1989,40930],[1990,40510.85],[1991,39011.46],[1992,41781.68],[1993,40684.8],[1994,40794.94],[1995,41058.27],[1996,42008.11],[1997,52938.65],[1998,57390.75],[1999,57836.84],[2000,60394.43],[2001,59277.98],[2002,60016],[2003,58706.15],[2004,67458.36],[2005,68696],[2006,75078.13],[2007,76900.53],[2008,75474.32],[2009,74138.28]],"population":[[1800,14092],[1820,14092],[1870,14092],[1913,17897],[1950,25101],[1951,27064],[1952,29057],[1953,31074],[1954,33105],[1955,35142],[1956,36952],[1957,38757],[1958,40550],[1959,42667],[1960,45183],[1961,48712],[1962,52968],[1963,58146],[1964,63897],[1965,70284],[1966,77319],[1967,85168],[1968,93925],[1969,103283],[1970,113262],[1971,122177],[1972,131794],[1973,142167],[1974,153358],[1975,165429],[1976,176798],[1977,188947],[1978,201932],[1979,215809],[1980,230640],[1981,242474],[1982,252300],[1983,283926],[1984,314767],[1985,345079],[1986,375013],[1987,402134],[1988,429731],[1989,456616],[1990,481477],[1991,504531],[1992,529399],[1993,557008],[1994,585368],[1995,613142],[1996,640524],[1997,667336],[1998,693592],[1999,719306],[2000,744483],[2001,769152],[2002,793341],[2003,817052],[2004,840290],[2005,863051],[2006,885359],[2007,907229],[2008,928635]],"lifeExpectancy":[[1800,30.8],[1940,30.8],[1950,47.03],[1951,47.23],[1952,47.67],[1953,48.16],[1954,48.69],[1955,49.27],[1956,49.9],[1957,50.57],[1958,51.28],[1959,52.03],[1960,52.81],[1961,53.61],[1962,54.42],[1963,55.24],[1964,56.04],[1965,56.83],[1966,57.6],[1967,58.35],[1968,59.08],[1969,59.78],[1970,60.47],[1971,61.13],[1972,61.78],[1973,62.41],[1974,63.02],[1975,63.61],[1976,64.17],[1977,64.71],[1978,65.22],[1979,65.69],[1980,66.12],[1981,66.52],[1982,66.87],[1983,67.19],[1984,67.48],[1985,67.75],[1986,68.01],[1987,68.26],[1988,68.53],[1989,68.8],[1990,69.1],[1991,69.42],[1992,69.77],[1993,70.13],[1994,70.52],[1995,70.93],[1996,71.36],[1997,71.81],[1998,72.27],[1999,72.73],[2000,73.18],[2001,73.61],[2002,74.01],[2003,74.38],[2004,74.71],[2005,75],[2006,75.24],[2007,75.46],[2008,75.65],[2009,75.81]]},{"name":"Saudi Arabia","region":"Middle East & North Africa","income":[[1800,441.27],[1820,443.36],[1913,760.72],[1950,5834.36],[1951,6208.71],[1952,6459.55],[1953,6968.42],[1954,7615.79],[1955,7642.33],[1956,8042.36],[1957,8157.59],[1958,8380.7],[1959,9044.26],[1960,9726.96],[1961,10635.36],[1962,11626.42],[1963,12332.87],[1964,13089.1],[1965,14304.44],[1966,15958.99],[1967,16903.05],[1968,17910.56],[1969,18751.91],[1970,19938.92],[1971,22166.86],[1972,24837.43],[1973,28873.35],[1974,32254.54],[1975,30827.93],[1976,31661.42],[1977,34167.76],[1978,33789.05],[1979,33588.81],[1980,34568.06],[1981,35101.25],[1982,33693.18],[1983,28412.06],[1984,26815.59],[1985,23663.08],[1986,21161.24],[1987,21198.26],[1988,20995.14],[1989,20934.15],[1990,23520.95],[1991,25113.59],[1992,24841.62],[1993,23173.54],[1994,22010.66],[1995,21162.71],[1996,20772.36],[1997,20586.69],[1998,20353.7],[1999,19635.3],[2000,20001.87],[2001,19528.5],[2002,19014.54],[2003,19945.47],[2004,20481.98],[2005,21220],[2006,21356.15],[2007,21255.6],[2008,21635.15],[2009,21138.18]],"population":[[1800,2091000],[1820,2091000],[1870,2338000],[1913,2676000],[1950,3859801],[1951,3931753],[1952,4005677],[1953,4081572],[1954,4160424],[1955,4243218],[1956,4328970],[1957,4419650],[1958,4514271],[1959,4613822],[1960,4718301],[1961,4827708],[1962,4943029],[1963,5065249],[1964,5192398],[1965,5327432],[1966,5469365],[1967,5618198],[1968,5774916],[1969,5938534],[1970,6109051],[1971,6287454],[1972,6472756],[1973,6666928],[1974,6868001],[1975,7204820],[1976,7620435],[1977,8128505],[1978,8708801],[1979,9346019],[1980,9999161],[1981,10627409],[1982,11254672],[1983,11912032],[1984,12606940],[1985,13330067],[1986,13998295],[1987,14619745],[1988,15233131],[1989,15829361],[1990,16060761],[1991,16305774],[1992,16945857],[1993,18056656],[1994,19108307],[1995,19966998],[1996,20625641],[1997,21229759],[1998,21842982],[1999,22483640],[2000,23153090],[2001,23832849],[2002,24501530],[2003,25156630],[2004,25795938],[2005,26417599],[2006,27019731],[2007,27601038],[2008,28161417]],"lifeExpectancy":[[1800,32.1],[1945,32.1],[1950,38.66],[1951,38.97],[1952,39.58],[1953,40.18],[1954,40.78],[1955,41.37],[1956,41.96],[1957,42.54],[1958,43.12],[1959,43.71],[1960,44.31],[1961,44.95],[1962,45.61],[1963,46.32],[1964,47.06],[1965,47.83],[1966,48.63],[1967,49.43],[1968,50.23],[1969,51.02],[1970,51.83],[1971,52.65],[1972,53.5],[1973,54.39],[1974,55.31],[1975,56.26],[1976,57.23],[1977,58.2],[1978,59.17],[1979,60.11],[1980,61.02],[1981,61.89],[1982,62.72],[1983,63.5],[1984,64.24],[1985,64.92],[1986,65.57],[1987,66.17],[1988,66.74],[1989,67.29],[1990,67.8],[1991,68.27],[1992,68.71],[1993,69.12],[1994,69.49],[1995,69.83],[1996,70.14],[1997,70.41],[1998,70.66],[1999,70.9],[2000,71.12],[2001,71.33],[2002,71.55],[2003,71.77],[2004,71.99],[2005,72.21],[2006,72.44],[2007,72.66],[2008,72.88],[2009,73.1]]},{"name":"Tunisia","region":"Middle East & North Africa","income":[[1800,518.72],[1820,517.32],[1870,761.63],[1913,1062.88],[1950,1341.82],[1951,1331.69],[1952,1468.48],[1953,1497.12],[1954,1503.54],[1955,1401.36],[1956,1472.77],[1957,1395.23],[1958,1554.59],[1959,1465.08],[1960,1616.32],[1961,1728.37],[1962,1660.3],[1963,1872.91],[1964,1912.76],[1965,1989.82],[1966,1991.34],[1967,1932.36],[1968,2088.68],[1969,2118.73],[1970,2199.31],[1971,2386.27],[1972,2753.29],[1973,2673.63],[1974,2820.76],[1975,2944.73],[1976,3093],[1977,3120.88],[1978,3251.03],[1979,3384.54],[1980,3543.72],[1981,3647.29],[1982,3560.23],[1983,3658.69],[1984,3693.06],[1985,3806.44],[1986,3656.88],[1987,3810.42],[1988,3732.5],[1989,3794.69],[1990,4017.22],[1991,4095.28],[1992,4332.72],[1993,4347.77],[1994,4409.94],[1995,4444.95],[1996,4691.19],[1997,4876.8],[1998,5046.68],[1999,5292.3],[2000,5480.32],[2001,5687.24],[2002,5722.9],[2003,5980.59],[2004,6274.88],[2005,6461],[2006,6740.19],[2007,7099.69],[2008,7356.75],[2009,7499.61]],"population":[[1820,875000],[1870,1176000],[1913,1870000],[1950,3517210],[1951,3582970],[1952,3647735],[1953,3713496],[1954,3779257],[1955,3846014],[1956,3903067],[1957,3950849],[1958,4007300],[1959,4074970],[1960,4149157],[1961,4216031],[1962,4286552],[1963,4374477],[1964,4468393],[1965,4565747],[1966,4676017],[1967,4786986],[1968,4894178],[1969,4996300],[1970,5098627],[1971,5197559],[1972,5303507],[1973,5426213],[1974,5556437],[1975,5703966],[1976,5859294],[1977,6005061],[1978,6136282],[1979,6280477],[1980,6443183],[1981,6605707],[1982,6734098],[1983,6859890],[1984,7184530],[1985,7362332],[1986,7544710],[1987,7724976],[1988,7895088],[1989,8052989],[1990,8207240],[1991,8364780],[1992,8523077],[1993,8680433],[1994,8831747],[1995,8972635],[1996,9105233],[1997,9231669],[1998,9349100],[1999,9458862],[2000,9563816],[2001,9667365],[2002,9770575],[2003,9873149],[2004,9974722],[2005,10074951],[2006,10175014],[2007,10276158],[2008,10378140]],"lifeExpectancy":[[1800,28.8],[1923,28.8],[1933,31.22],[1943,33.72],[1950,43.61],[1951,43.85],[1952,44.35],[1953,44.85],[1954,45.35],[1955,45.85],[1956,46.35],[1957,46.85],[1958,47.35],[1959,47.85],[1960,48.34],[1961,48.82],[1962,49.3],[1963,49.77],[1964,50.24],[1965,50.73],[1966,51.24],[1967,51.79],[1968,52.38],[1969,53.01],[1970,53.69],[1971,54.42],[1972,55.19],[1973,55.99],[1974,56.81],[1975,57.65],[1976,58.51],[1977,59.4],[1978,60.29],[1979,61.18],[1980,62.05],[1981,62.88],[1982,63.65],[1983,64.36],[1984,65.02],[1985,65.63],[1986,66.22],[1987,66.81],[1988,67.4],[1989,68.02],[1990,68.63],[1991,69.23],[1992,69.8],[1993,70.32],[1994,70.79],[1995,71.19],[1996,71.54],[1997,71.84],[1998,72.11],[1999,72.34],[2000,72.56],[2001,72.76],[2002,72.94],[2003,73.12],[2004,73.29],[2005,73.46],[2006,73.63],[2007,73.81],[2008,73.98],[2009,74.15]]},{"name":"United Arab Emirates","region":"Middle East & North Africa","income":[[1800,845.76],[1820,849.76],[1913,1458.04],[1958,5100],[1970,13677.04],[1971,13239.26],[1972,12703.61],[1973,19448.86],[1974,47592.52],[1975,53499.46],[1976,52628.36],[1977,53335.18],[1978,45587.62],[1979,50726.23],[1980,58179.45],[1981,55157.82],[1982,47211.4],[1983,42152.15],[1984,41475.71],[1985,38213.65],[1986,29225.3],[1987,29327.06],[1988,27050.85],[1989,29062.16],[1990,32431.23],[1991,30832.82],[1992,30084.24],[1993,28314.81],[1994,29007.14],[1995,29341.65],[1996,29286.31],[1997,29989.45],[1998,28676.19],[1999,28251.7],[2000,30012.32],[2001,29446.26],[2002,28728.96],[2003,30646.11],[2004,32181.94],[2005,33487],[2006,35347.29],[2007,35324.66],[2008,34981.22],[2009,33734.94]],"population":[[1800,40153],[1820,40153],[1870,40153],[1913,50995],[1950,71520],[1951,73298],[1952,75273],[1953,77480],[1954,79947],[1955,82715],[1956,85831],[1957,89353],[1958,93340],[1959,97870],[1960,103048],[1961,108989],[1962,115827],[1963,123751],[1964,132980],[1965,143798],[1966,156574],[1967,171745],[1968,190974],[1969,217858],[1970,249369],[1971,288136],[1972,336325],[1973,391337],[1974,453222],[1975,522571],[1976,598023],[1977,683672],[1978,778736],[1979,884040],[1980,1000285],[1981,1100356],[1982,1203634],[1983,1315978],[1984,1437950],[1985,1570219],[1986,1713616],[1987,1778365],[1988,1839339],[1989,1896774],[1990,1950792],[1991,2001524],[1992,2048857],[1993,2093393],[1994,2135896],[1995,2176370],[1996,2215556],[1997,2254266],[1998,2292669],[1999,2330923],[2000,2369153],[2001,2407460],[2002,2445989],[2003,2484818],[2004,2523915],[2005,2563212],[2006,2602713],[2007,2642566],[2008,2682747]],"lifeExpectancy":[[1800,30.7],[1945,30.7],[1950,46.99],[1951,47.21],[1952,47.66],[1953,48.17],[1954,48.72],[1955,49.32],[1956,49.97],[1957,50.65],[1958,51.38],[1959,52.14],[1960,52.93],[1961,53.74],[1962,54.56],[1963,55.38],[1964,56.19],[1965,56.98],[1966,57.73],[1967,58.46],[1968,59.16],[1969,59.84],[1970,60.52],[1971,61.22],[1972,61.95],[1973,62.71],[1974,63.5],[1975,64.29],[1976,65.06],[1977,65.78],[1978,66.43],[1979,67.01],[1980,67.53],[1981,68.02],[1982,68.49],[1983,68.97],[1984,69.47],[1985,69.99],[1986,70.53],[1987,71.05],[1988,71.56],[1989,72.06],[1990,72.54],[1991,73.02],[1992,73.49],[1993,73.97],[1994,74.43],[1995,74.88],[1996,75.3],[1997,75.66],[1998,75.97],[1999,76.22],[2000,76.42],[2001,76.57],[2002,76.7],[2003,76.82],[2004,76.94],[2005,77.06],[2006,77.18],[2007,77.31],[2008,77.45],[2009,77.58]]},{"name":"West Bank and Gaza","region":"Middle East & North Africa","income":[[1800,735.45],[1820,738.93],[1913,1267.86],[1950,1405.45],[1951,1461.21],[1952,1515.59],[1953,1570.9],[1954,1633.31],[1955,1694.35],[1956,1757.71],[1957,1827.07],[1958,1895.34],[1959,1965.96],[1960,2039.72],[1961,2118.83],[1962,2198.96],[1963,2282.6],[1964,2368.29],[1965,2457.42],[1966,2552.07],[1967,2649.72],[1968,2750.96],[1969,2840.54],[1970,2931.07],[1971,3029.87],[1972,3133.41],[1973,3233.64],[1974,3340.31],[1975,3448.53],[1976,3565.14],[1977,3682.83],[1978,3806.21],[1979,3931.93],[1980,4062.85],[1981,4199.87],[1982,4336.03],[1983,4482.74],[1984,4631.3],[1985,4784.28],[1986,4945.41],[1987,5107.2],[1988,5276.33],[1989,5452.69],[1990,5635.48],[1991,5821.77],[1992,6017.65],[1993,6218.71],[1994,6431.12],[1995,6647.75],[1996,6875.61],[1997,7110.67],[1998,7477.12],[1999,7864.94],[2000,7586.32],[2001,5852.63],[2002,4515.49],[2003,3793.97],[2004,3664.45],[2005,3542],[2006,3263.47],[2007,3121.4],[2008,3084.56]],"population":[[1800,165944],[1850,165944],[1860,180099],[1877,215167],[1878,217741],[1879,220357],[1880,223014],[1881,225716],[1882,228461],[1883,231252],[1884,234089],[1885,236974],[1886,239905],[1887,242887],[1888,245919],[1889,248890],[1890,251909],[1891,254974],[1892,258089],[1893,261254],[1894,264542],[1895,267880],[1896,271341],[1897,274854],[1898,278608],[1899,282421],[1900,286294],[1901,290228],[1902,294225],[1903,298285],[1904,302411],[1905,306602],[1906,310861],[1907,315189],[1908,319588],[1909,324056],[1910,328599],[1911,337909],[1912,342679],[1913,347528],[1914,352458],[1918,330270],[1922,360287],[1931,465384],[1932,483666],[1933,513691],[1934,544820],[1935,588286],[1936,613124],[1937,630160],[1938,645526],[1939,680171],[1940,703338],[1941,723889],[1942,743058],[1943,768008],[1944,795069],[1945,824913],[1946,857472],[1950,1016540],[1951,1022333],[1952,1030585],[1953,1040483],[1954,1048766],[1955,1053801],[1956,1061298],[1957,1070439],[1958,1077965],[1959,1100998],[1960,1113446],[1961,1109603],[1962,1133134],[1963,1156474],[1964,1182145],[1965,1210960],[1966,1235665],[1967,1142636],[1968,1000482],[1969,1006458],[1970,1032447],[1971,1059861],[1972,1089572],[1973,1124018],[1974,1166576],[1975,1200805],[1976,1228388],[1977,1261091],[1978,1296061],[1979,1329554],[1980,1359954],[1981,1388910],[1982,1425876],[1983,1474659],[1984,1524537],[1985,1576361],[1986,1630382],[1987,1691210],[1988,1757935],[1989,1820817],[1990,1897320],[1991,1997073],[1992,2104779],[1993,2215999],[1994,2345625],[1995,2501920],[1996,2665989],[1997,2826046],[1998,2931882],[1999,3040686],[2000,3152361],[2001,3268832],[2002,3389578],[2003,3512062],[2004,3636195],[2005,3761904],[2006,3889249],[2007,4018332],[2008,4149173]],"lifeExpectancy":[[1950,42.12],[1951,42.38],[1952,42.91],[1953,43.43],[1954,43.93],[1955,44.43],[1956,44.91],[1957,45.39],[1958,45.86],[1959,46.34],[1960,46.82],[1961,47.32],[1962,47.85],[1963,48.41],[1964,49.02],[1965,49.69],[1966,50.44],[1967,51.25],[1968,52.13],[1969,53.06],[1970,54.02],[1971,55.01],[1972,55.98],[1973,56.94],[1974,57.86],[1975,58.74],[1976,59.59],[1977,60.41],[1978,61.2],[1979,61.97],[1980,62.71],[1981,63.41],[1982,64.07],[1983,64.68],[1984,65.26],[1985,65.81],[1986,66.34],[1987,66.88],[1988,67.42],[1989,67.95],[1990,68.48],[1991,68.99],[1992,69.44],[1993,69.85],[1994,70.21],[1995,70.52],[1996,70.79],[1997,71.03],[1998,71.28],[1999,71.52],[2000,71.76],[2001,72.01],[2002,72.25],[2003,72.48],[2004,72.7],[2005,72.92],[2006,73.13],[2007,73.33],[2008,73.54],[2009,73.74]]},{"name":"Yemen, Rep.","region":"Middle East & North Africa","income":[[1800,661.9],[1820,665.03],[1950,771.3],[1951,776.63],[1952,781.72],[1953,787.32],[1954,792.09],[1955,797.17],[1956,800.97],[1957,804.83],[1958,808.4],[1959,811.99],[1960,815.92],[1961,820.54],[1962,825.62],[1963,832.92],[1964,837.04],[1965,843.34],[1966,852.7],[1967,862.44],[1968,870.25],[1969,880.66],[1970,1041.1],[1971,1196.79],[1972,1265.05],[1973,1388.2],[1974,1435.54],[1975,1509.67],[1976,1695.14],[1977,1829.77],[1978,1930.83],[1979,1982.42],[1980,1938.74],[1981,2000.3],[1982,1977.56],[1983,2032.19],[1984,2050.33],[1985,1973.82],[1986,1955.75],[1987,1971.74],[1988,1989.89],[1989,1991.58],[1990,1923.3],[1991,1859.24],[1992,1879.5],[1993,1861.89],[1994,1834.92],[1995,1970.6],[1996,2022.93],[1997,2117.48],[1998,2149.8],[1999,2158.6],[2000,2217.07],[2001,2225.1],[2002,2234.82],[2003,2239.83],[2004,2250.9],[2005,2276],[2006,2277.84],[2007,2283.39],[2008,2295.8],[2009,2313.16]],"population":[[1800,2593000],[1820,2593000],[1870,2840000],[1913,3284000],[1950,4777089],[1951,4869125],[1952,4963829],[1953,5061153],[1954,5162494],[1955,5265327],[1956,5380106],[1957,5498090],[1958,5619377],[1959,5743926],[1960,5871831],[1961,5993828],[1962,6120081],[1963,6248206],[1964,6378206],[1965,6510081],[1966,6624755],[1967,6740785],[1968,6859408],[1969,6978155],[1970,7098239],[1971,7251383],[1972,7407075],[1973,7579501],[1974,7755019],[1975,7934497],[1976,8170521],[1977,8403990],[1978,8641036],[1979,8883381],[1980,9132545],[1981,9390138],[1982,9657618],[1983,9936258],[1984,10229272],[1985,10539928],[1986,10869580],[1987,11219340],[1988,11591069],[1989,11986392],[1990,12416080],[1991,12882420],[1992,13367997],[1993,13885756],[1994,14394750],[1995,14859342],[1996,15327307],[1997,15826497],[1998,16352459],[1999,16904520],[2000,17479206],[2001,18078035],[2002,18701257],[2003,19349881],[2004,20024867],[2005,20727063],[2006,21456188],[2007,22211743],[2008,22993911]],"lifeExpectancy":[[1800,33],[1945,33],[1950,31.91],[1951,32.08],[1952,32.4],[1953,32.71],[1954,33.01],[1955,33.29],[1956,33.56],[1957,33.82],[1958,34.07],[1959,34.31],[1960,34.54],[1961,34.79],[1962,35.04],[1963,35.31],[1964,35.62],[1965,35.95],[1966,36.32],[1967,36.73],[1968,37.18],[1969,37.67],[1970,38.22],[1971,38.83],[1972,39.49],[1973,40.22],[1974,41.01],[1975,41.85],[1976,42.75],[1977,43.7],[1978,44.69],[1979,45.69],[1980,46.68],[1981,47.66],[1982,48.62],[1983,49.53],[1984,50.39],[1985,51.19],[1986,51.93],[1987,52.6],[1988,53.23],[1989,53.82],[1990,54.37],[1991,54.89],[1992,55.4],[1993,55.88],[1994,56.37],[1995,56.84],[1996,57.32],[1997,57.79],[1998,58.25],[1999,58.71],[2000,59.17],[2001,59.63],[2002,60.09],[2003,60.56],[2004,61.03],[2005,61.51],[2006,61.98],[2007,62.46],[2008,62.93],[2009,63.39]]},{"name":"Argentina","region":"America","income":[[1800,871.63],[1820,871.63],[1875,1885.41],[1876,1867.47],[1877,2002.04],[1878,1839.6],[1879,1863.06],[1880,1769.57],[1881,1743.09],[1882,2140.95],[1883,2333.66],[1884,2426.44],[1885,2770.22],[1886,2695.38],[1887,2794.95],[1888,3156.64],[1889,3364.75],[1890,2982.77],[1891,2730.32],[1892,3176.32],[1893,3266.51],[1894,3664.86],[1895,3949.4],[1896,4246.48],[1897,3317.39],[1898,3498.62],[1899,4011.23],[1900,3419.66],[1901,3611.77],[1902,3436.59],[1903,3830.91],[1904,4131.05],[1905,4562.36],[1906,4580.22],[1907,4464.29],[1908,4694.41],[1909,4708.23],[1910,4832.38],[1911,4726.01],[1912,4923.21],[1913,4777.66],[1914,4091.98],[1915,3949.97],[1916,3767.94],[1917,3397.62],[1918,3961.68],[1919,4038.95],[1920,4263.13],[1921,4242.31],[1922,4452.29],[1923,4807.28],[1924,5035.79],[1925,4861.3],[1926,4962.42],[1927,5178.2],[1928,5356.78],[1929,5456.67],[1930,5081.2],[1931,4633.64],[1932,4393.52],[1933,4518.05],[1934,4790.22],[1935,4909.12],[1936,4872.97],[1937,5149.63],[1938,5084.62],[1939,5199.52],[1940,5202.23],[1941,5393.04],[1942,5368.42],[1943,5248.21],[1944,5757.53],[1945,5482.92],[1946,5845.22],[1947,6359.64],[1948,6560.39],[1949,6322.98],[1950,6252.86],[1951,6362.13],[1952,5911.32],[1953,6107.59],[1954,6242.6],[1955,6566.88],[1956,6630.03],[1957,6856.86],[1958,7157.86],[1959,6575.45],[1960,6984.76],[1961,7367.29],[1962,7133.17],[1963,6852.54],[1964,7452.89],[1965,8022.44],[1966,7955.97],[1967,8052.95],[1968,8284.39],[1969,8870.89],[1970,9212.3],[1971,9408.19],[1972,9443.04],[1973,9633.5],[1974,9989.81],[1975,9766.38],[1976,9611.92],[1977,10079.03],[1978,9602.71],[1979,10124.86],[1980,10126.5],[1981,9421.94],[1982,8997.9],[1983,9238.61],[1984,9301.55],[1985,8525.61],[1986,9026.86],[1987,9139.67],[1988,8845.59],[1989,8107.72],[1990,7846.61],[1991,8575.87],[1992,9308.42],[1993,9742.08],[1994,10206.9],[1995,9807.79],[1996,10245.38],[1997,10967.28],[1998,11272.75],[1999,10771.08],[2000,10571.36],[2001,9992.71],[2002,8797.64],[2003,9481.37],[2004,10232.1],[2005,11063],[2006,11883.08],[2007,12784.8],[2008,13515.18],[2009,13498.04]],"population":[[1800,534000],[1820,534000],[1850,1100000],[1870,1796000],[1890,3376000],[1900,4693000],[1901,4873000],[1902,5060000],[1903,5254000],[1904,5455000],[1905,5664000],[1906,5881000],[1907,6107000],[1908,6341000],[1909,6584000],[1910,6836000],[1911,7098000],[1912,7370000],[1913,7653000],[1914,7885000],[1915,8072000],[1916,8226000],[1917,8374000],[1918,8518000],[1919,8672000],[1920,8861000],[1921,9092000],[1922,9368000],[1923,9707000],[1924,10054000],[1925,10358000],[1926,10652000],[1927,10965000],[1928,11282000],[1929,11592000],[1930,11896000],[1931,12167000],[1932,12402000],[1933,12623000],[1934,12834000],[1935,13044000],[1936,13260000],[1937,13490000],[1938,13724000],[1939,13984000],[1940,14169000],[1941,14402000],[1942,14638000],[1943,14877000],[1944,15130000],[1945,15390000],[1946,15654000],[1947,15942000],[1948,16307000],[1949,16737000],[1950,17150336],[1951,17517342],[1952,17876956],[1953,18230816],[1954,18580559],[1955,18927821],[1956,19271511],[1957,19610538],[1958,19946539],[1959,20281150],[1960,20616009],[1961,20950583],[1962,21283783],[1963,21616403],[1964,21949244],[1965,22283100],[1966,22611604],[1967,22934225],[1968,23260514],[1969,23600026],[1970,23962313],[1971,24363816],[1972,24779799],[1973,25209829],[1974,25646371],[1975,26081880],[1976,26531280],[1977,26983828],[1978,27440272],[1979,27901971],[1980,28369799],[1981,28862831],[1982,29341374],[1983,29801763],[1984,30235573],[1985,30675059],[1986,31145966],[1987,31620918],[1988,32090943],[1989,32558573],[1990,33022202],[1991,33491595],[1992,33958947],[1993,34411978],[1994,34864440],[1995,35311049],[1996,35753590],[1997,36203463],[1998,36643768],[1999,37073828],[2000,37497728],[2001,37916560],[2002,38331121],[2003,38740807],[2004,39144753],[2005,39537943],[2006,39921833],[2007,40301927],[2008,40677348]],"lifeExpectancy":[[1800,33.2],[1875,33.2],[1880,33.1],[1885,32.6],[1890,34],[1895,33.3],[1900,36.8],[1905,39.7],[1910,43.5],[1915,46.2],[1920,50.2],[1925,52.6],[1930,54.3],[1935,54.3],[1940,59.1],[1945,62],[1950,61.61],[1951,61.92],[1952,62.51],[1953,63.04],[1954,63.52],[1955,63.94],[1956,64.3],[1957,64.61],[1958,64.86],[1959,65.07],[1960,65.23],[1961,65.35],[1962,65.44],[1963,65.52],[1964,65.6],[1965,65.68],[1966,65.8],[1967,65.95],[1968,66.13],[1969,66.35],[1970,66.61],[1971,66.89],[1972,67.18],[1973,67.48],[1974,67.77],[1975,68.06],[1976,68.35],[1977,68.64],[1978,68.94],[1979,69.24],[1980,69.53],[1981,69.8],[1982,70.05],[1983,70.27],[1984,70.47],[1985,70.65],[1986,70.81],[1987,70.98],[1988,71.16],[1989,71.35],[1990,71.56],[1991,71.78],[1992,72.01],[1993,72.23],[1994,72.46],[1995,72.68],[1996,72.9],[1997,73.12],[1998,73.34],[1999,73.55],[2000,73.77],[2001,73.97],[2002,74.18],[2003,74.38],[2004,74.58],[2005,74.77],[2006,74.96],[2007,75.15],[2008,75.33],[2009,75.52]]},{"name":"Aruba","region":"America","income":[[1800,575.86],[1820,575.86],[1913,1062.48],[1970,4223.84],[1971,4567.57],[1972,4939.76],[1973,5344.09],[1974,5785.94],[1975,6270.23],[1976,6803.64],[1977,7390.36],[1978,8026.34],[1979,8701.79],[1980,9409.56],[1981,10133.58],[1982,10874.91],[1983,11672.8],[1984,12589.72],[1985,13681.02],[1986,15016.43],[1987,17674.34],[1988,21252.41],[1989,23845.24],[1990,24316.97],[1991,25167.86],[1992,25120.55],[1993,25277.57],[1994,25830.48],[1995,25359.88],[1996,24966.43],[1997,26483.67],[1998,27963.77],[1999,27962.89],[2000,28711.44],[2001,27884.99],[2002,26467.87],[2003,25782.77],[2004,26972.7],[2005,26762.65],[2006,26482.97],[2007,26073.67],[2008,25351.09]],"population":[[1800,19286],[1820,19286],[1950,49712],[1951,51335],[1952,51955],[1953,52585],[1954,53220],[1955,53865],[1956,54516],[1957,55176],[1958,55843],[1959,56518],[1960,57203],[1961,57008],[1962,57681],[1963,58541],[1964,59091],[1965,59020],[1966,58632],[1967,58316],[1968,58149],[1969,58424],[1970,59039],[1971,59397],[1972,59461],[1973,59609],[1974,59555],[1975,59390],[1976,59337],[1977,59412],[1978,59481],[1979,59741],[1980,60266],[1981,60717],[1982,61569],[1983,62483],[1984,63337],[1985,64129],[1986,64817],[1987,65415],[1988,65922],[1989,66335],[1990,66653],[1991,66919],[1992,67174],[1993,67414],[1994,67636],[1995,67836],[1996,68057],[1997,68341],[1998,68683],[1999,69083],[2000,69539],[2001,70007],[2002,70441],[2003,70844],[2004,71218],[2005,71566],[2006,71891],[2007,72194],[2008,72480]],"lifeExpectancy":[[1950,58.43],[1951,58.97],[1952,60.01],[1953,60.98],[1954,61.87],[1955,62.68],[1956,63.42],[1957,64.09],[1958,64.68],[1959,65.21],[1960,65.68],[1961,66.09],[1962,66.47],[1963,66.81],[1964,67.14],[1965,67.46],[1966,67.79],[1967,68.12],[1968,68.46],[1969,68.81],[1970,69.16],[1971,69.52],[1972,69.87],[1973,70.21],[1974,70.53],[1975,70.85],[1976,71.15],[1977,71.45],[1978,71.75],[1979,72.03],[1980,72.3],[1981,72.55],[1982,72.76],[1983,72.94],[1984,73.08],[1985,73.18],[1986,73.26],[1987,73.33],[1988,73.38],[1989,73.42],[1990,73.47],[1991,73.5],[1992,73.53],[1993,73.54],[1994,73.55],[1995,73.56],[1996,73.56],[1997,73.57],[1998,73.59],[1999,73.63],[2000,73.68],[2001,73.76],[2002,73.86],[2003,73.98],[2004,74.12],[2005,74.28],[2006,74.44],[2007,74.61],[2008,74.77],[2009,74.92]]},{"name":"Barbados","region":"America","income":[[1800,1017.81],[1820,1017.81],[1913,1877.92],[1950,3245.07],[1960,5319.74],[1961,5711.59],[1962,6204.49],[1963,5863.17],[1964,6130.21],[1965,6806.04],[1966,7057.57],[1967,7788.54],[1968,8306.96],[1969,8904.4],[1970,9712.48],[1971,9814.38],[1972,9853.81],[1973,9990.79],[1974,11268.72],[1975,10983.92],[1976,11414.78],[1977,11817.36],[1978,12375.14],[1979,13301.46],[1980,13858.9],[1981,13504.66],[1982,12736.47],[1983,12679.08],[1984,13003.27],[1985,13020.58],[1986,13560.56],[1987,13783.21],[1988,14140.09],[1989,14528.02],[1990,13954.78],[1991,13293.9],[1992,12263.45],[1993,12299.76],[1994,12736.75],[1995,13009.36],[1996,13356.08],[1997,13901.91],[1998,14702.32],[1999,14710.96],[2000,14982.12],[2001,14533.64],[2002,14544.49],[2003,14779.73],[2004,15268.13],[2005,15837],[2006,16294.8],[2007,16803.95],[2008,16783.85],[2009,15846.77]],"population":[[1800,81729],[1820,81729],[1851,136000],[1861,153000],[1871,162000],[1881,172000],[1891,183000],[1901,196000],[1911,172000],[1921,157000],[1946,194000],[1950,210666],[1951,214729],[1952,217959],[1953,221303],[1954,225244],[1955,227255],[1956,225962],[1957,225569],[1958,227979],[1959,231394],[1960,232339],[1961,229597],[1962,228747],[1963,230738],[1964,233269],[1965,234980],[1966,236227],[1967,238224],[1968,239868],[1969,239321],[1970,238756],[1971,240606],[1972,242445],[1973,244127],[1974,245563],[1975,247147],[1976,248023],[1977,249169],[1978,250145],[1979,251145],[1980,251966],[1981,252376],[1982,253522],[1983,254918],[1984,256227],[1985,257446],[1986,258506],[1987,259428],[1988,260313],[1989,261441],[1990,262624],[1991,263693],[1992,264925],[1993,265977],[1994,266906],[1995,267907],[1996,268944],[1997,270096],[1998,271232],[1999,272364],[2000,273483],[2001,274584],[2002,275673],[2003,276761],[2004,277816],[2005,278870],[2006,279912],[2007,280946],[2008,281968]],"lifeExpectancy":[[1950,54.59],[1951,55.29],[1952,56.65],[1953,57.92],[1954,59.11],[1955,60.22],[1956,61.24],[1957,62.18],[1958,63.04],[1959,63.81],[1960,64.5],[1961,65.11],[1962,65.64],[1963,66.1],[1964,66.5],[1965,66.87],[1966,67.2],[1967,67.53],[1968,67.85],[1969,68.18],[1970,68.52],[1971,68.88],[1972,69.25],[1973,69.62],[1974,69.99],[1975,70.36],[1976,70.73],[1977,71.09],[1978,71.43],[1979,71.77],[1980,72.09],[1981,72.4],[1982,72.7],[1983,73],[1984,73.29],[1985,73.56],[1986,73.83],[1987,74.07],[1988,74.29],[1989,74.49],[1990,74.66],[1991,74.79],[1992,74.88],[1993,74.94],[1994,74.98],[1995,75.01],[1996,75.04],[1997,75.09],[1998,75.16],[1999,75.27],[2000,75.41],[2001,75.59],[2002,75.8],[2003,76.03],[2004,76.28],[2005,76.53],[2006,76.79],[2007,77.04],[2008,77.28],[2009,77.51]]},{"name":"Belize","region":"America","income":[[1800,542.97],[1820,542.97],[1913,1001.8],[1950,1731.13],[1960,1868.46],[1961,1893.4],[1962,1916.32],[1963,1941.29],[1964,1972.05],[1965,2008.96],[1966,2049.49],[1967,2099.16],[1968,2206.04],[1969,2275.3],[1970,2345.4],[1971,2403.23],[1972,2616.7],[1973,2724.54],[1974,3051.15],[1975,3105.45],[1976,3039.69],[1977,3158.69],[1978,3318.66],[1979,3472.14],[1980,3893.63],[1981,3841.46],[1982,3732.09],[1983,3580.48],[1984,3537.98],[1985,3484.98],[1986,3554.57],[1987,3844.93],[1988,4092.66],[1989,4542.52],[1990,4871.11],[1991,5298.35],[1992,5780.69],[1993,5958.65],[1994,5806.45],[1995,5677.1],[1996,5632.53],[1997,5631.5],[1998,5632.34],[1999,5991.97],[2000,6545.45],[2001,6669.07],[2002,6799.54],[2003,7203.58],[2004,7300.54],[2005,7290],[2006,7392.78],[2007,7250.58],[2008,7297.77],[2009,6998.08]],"population":[[1800,25526],[1820,25526],[1861,26000],[1871,25000],[1881,27000],[1891,31000],[1901,37000],[1911,40000],[1921,45000],[1931,51000],[1946,59000],[1950,65797],[1951,66759],[1952,69932],[1953,72143],[1954,74408],[1955,76892],[1956,79651],[1957,82461],[1958,85394],[1959,88641],[1960,91863],[1961,94685],[1962,97594],[1963,100712],[1964,103902],[1965,106965],[1966,110115],[1967,113265],[1968,116293],[1969,119183],[1970,122070],[1971,124890],[1972,127661],[1973,130375],[1974,133027],[1975,135611],[1976,138135],[1977,140578],[1978,142937],[1979,145205],[1980,144416],[1981,149191],[1982,153277],[1983,156825],[1984,160800],[1985,165530],[1986,171219],[1987,176347],[1988,181390],[1989,186418],[1990,190847],[1991,195733],[1992,200798],[1993,206055],[1994,211500],[1995,217120],[1996,222908],[1997,228884],[1998,235030],[1999,241369],[2000,247887],[2001,254497],[2002,261138],[2003,267787],[2004,274435],[2005,281084],[2006,287730],[2007,294385],[2008,301022]],"lifeExpectancy":[[1950,56.67],[1951,56.92],[1952,57.42],[1953,57.93],[1954,58.43],[1955,58.93],[1956,59.43],[1957,59.93],[1958,60.43],[1959,60.93],[1960,61.43],[1961,61.93],[1962,62.43],[1963,62.93],[1964,63.44],[1965,63.94],[1966,64.44],[1967,64.94],[1968,65.44],[1969,65.93],[1970,66.42],[1971,66.9],[1972,67.37],[1973,67.83],[1974,68.29],[1975,68.73],[1976,69.16],[1977,69.57],[1978,69.97],[1979,70.35],[1980,70.69],[1981,71],[1982,71.27],[1983,71.5],[1984,71.69],[1985,71.84],[1986,71.94],[1987,72.02],[1988,72.08],[1989,72.13],[1990,72.19],[1991,72.27],[1992,72.39],[1993,72.54],[1994,72.72],[1995,72.94],[1996,73.18],[1997,73.42],[1998,73.66],[1999,73.89],[2000,74.11],[2001,74.34],[2002,74.59],[2003,74.85],[2004,75.14],[2005,75.44],[2006,75.74],[2007,76.04],[2008,76.33],[2009,76.6]]},{"name":"Bolivia","region":"America","income":[[1800,695.05],[1820,695.05],[1945,2227.96],[1946,2241.79],[1947,2254.85],[1948,2277.13],[1949,2298.47],[1950,2530.6],[1951,2653.57],[1952,2677.33],[1953,2373.25],[1954,2371.67],[1955,2443.66],[1956,2249.19],[1957,2127.69],[1958,2130.5],[1959,2076.82],[1960,2117.78],[1961,2113.49],[1962,2180.97],[1963,2268.27],[1964,2323.02],[1965,2380.76],[1966,2493.24],[1967,2586.89],[1968,2740.72],[1969,2794.62],[1970,2869.46],[1971,2906.44],[1972,2980.33],[1973,3107.44],[1974,3188.22],[1975,3317.13],[1976,3490],[1977,3548.1],[1978,3578.97],[1979,3496.02],[1980,3391.07],[1981,3358.19],[1982,3156.51],[1983,2965.56],[1984,2945.48],[1985,2875.32],[1986,2734.54],[1987,2753.69],[1988,2800.94],[1989,2819.34],[1990,2897.28],[1991,2982.23],[1992,2961.7],[1993,3015.14],[1994,3089.45],[1995,3164.52],[1996,3234.03],[1997,3326.14],[1998,3429.73],[1999,3377.57],[2000,3394.71],[2001,3390.16],[2002,3413.26],[2003,3450.76],[2004,3528.67],[2005,3618],[2006,3712.77],[2007,3803.13],[2008,3956.4],[2009,4007.16]],"population":[[1800,1100000],[1820,1100000],[1850,1374000],[1870,1495000],[1900,1696000],[1901,1710000],[1902,1723000],[1903,1737000],[1904,1751000],[1905,1765000],[1906,1779000],[1907,1793000],[1908,1808000],[1909,1822000],[1910,1837000],[1911,1851000],[1912,1866000],[1913,1881000],[1914,1915000],[1915,1951000],[1916,1986000],[1917,2023000],[1918,2060000],[1919,2098000],[1920,2136000],[1921,2161000],[1922,2186000],[1923,2212000],[1924,2237000],[1925,2263000],[1926,2289000],[1927,2316000],[1928,2343000],[1929,2370000],[1930,2397000],[1931,2425000],[1932,2453000],[1933,2482000],[1934,2511000],[1935,2540000],[1936,2569000],[1937,2599000],[1938,2629000],[1939,2659000],[1940,2690000],[1941,2721000],[1942,2753000],[1943,2785000],[1944,2817000],[1945,2850000],[1946,2883000],[1947,2916000],[1948,2950000],[1949,2984000],[1950,2766028],[1951,2823667],[1952,2883315],[1953,2944968],[1954,3008635],[1955,3074311],[1956,3141998],[1957,3211738],[1958,3283613],[1959,3357701],[1960,3434073],[1961,3512782],[1962,3593918],[1963,3677637],[1964,3764067],[1965,3853315],[1966,3945474],[1967,4040665],[1968,4139069],[1969,4240872],[1970,4346218],[1971,4454684],[1972,4565872],[1973,4679923],[1974,4796240],[1975,4914316],[1976,4955744],[1977,5079716],[1978,5204622],[1979,5326981],[1980,5441298],[1981,5545224],[1982,5642224],[1983,5737434],[1984,5834293],[1985,5934935],[1986,6041350],[1987,6156369],[1988,6283164],[1989,6423135],[1990,6573900],[1991,6731484],[1992,6893451],[1993,7055495],[1994,7216538],[1995,7376582],[1996,7535615],[1997,7693188],[1998,7848703],[1999,8001930],[2000,8152620],[2001,8300463],[2002,8445134],[2003,8586443],[2004,8724156],[2005,8857870],[2006,8989046],[2007,9119152],[2008,9247816]],"lifeExpectancy":[[1800,33],[1925,33],[1940,33],[1950,39.87],[1951,40.01],[1952,40.29],[1953,40.58],[1954,40.87],[1955,41.16],[1956,41.46],[1957,41.76],[1958,42.06],[1959,42.36],[1960,42.67],[1961,42.98],[1962,43.29],[1963,43.61],[1964,43.92],[1965,44.24],[1966,44.55],[1967,44.84],[1968,45.14],[1969,45.44],[1970,45.77],[1971,46.14],[1972,46.56],[1973,47.05],[1974,47.61],[1975,48.23],[1976,48.92],[1977,49.65],[1978,50.41],[1979,51.19],[1980,51.96],[1981,52.74],[1982,53.51],[1983,54.26],[1984,54.99],[1985,55.69],[1986,56.37],[1987,57.01],[1988,57.63],[1989,58.22],[1990,58.78],[1991,59.31],[1992,59.8],[1993,60.25],[1994,60.68],[1995,61.09],[1996,61.48],[1997,61.86],[1998,62.22],[1999,62.59],[2000,62.95],[2001,63.31],[2002,63.67],[2003,64.01],[2004,64.35],[2005,64.69],[2006,65.02],[2007,65.35],[2008,65.68],[2009,66.01]]},{"name":"Brazil","region":"America","income":[[1800,509.2],[1820,539.02],[1850,571.9],[1851,611.36],[1852,594.85],[1853,558.23],[1854,539.18],[1855,544.31],[1856,564.09],[1857,603.65],[1858,642.47],[1859,637.34],[1860,654.19],[1861,648.33],[1862,617.56],[1863,631.48],[1864,640.27],[1865,687.89],[1866,712.8],[1867,772.14],[1868,772.14],[1869,772.14],[1870,715.73],[1871,715.73],[1872,740.64],[1873,718.66],[1874,729.65],[1875,740.64],[1876,712.8],[1877,693.02],[1878,726.72],[1879,732.58],[1880,698.88],[1881,704.74],[1882,721.59],[1883,701.81],[1884,749.43],[1885,695.95],[1886,718.66],[1887,671.04],[1888,645.4],[1889,654.19],[1890,715.73],[1891,760.42],[1892,659.32],[1893,561.16],[1894,561.16],[1895,665.18],[1896,603.65],[1897,594.85],[1898,608.77],[1899,597.78],[1900,575.07],[1901,648.48],[1902,629.74],[1903,630.97],[1904,622.59],[1905,632.64],[1906,696.97],[1907,691.3],[1908,654.7],[1909,705.48],[1910,711.35],[1911,737.66],[1912,770.7],[1913,778.23],[1914,750.11],[1915,738.09],[1916,729.69],[1917,783.66],[1918,749.02],[1919,792.56],[1920,875.52],[1921,874.14],[1922,925.6],[1923,984.14],[1924,980.08],[1925,959.96],[1926,989.1],[1927,1076.22],[1928,1177.58],[1929,1164.62],[1930,1118.34],[1931,1056.7],[1932,1081.05],[1933,1157.13],[1934,1237.46],[1935,1250.24],[1936,1374.69],[1937,1410.23],[1938,1444.01],[1939,1449.77],[1940,1406.39],[1941,1443.76],[1942,1369.92],[1943,1457.02],[1944,1538.99],[1945,1553.89],[1946,1695.26],[1947,1694.1],[1948,1813.51],[1949,1903.64],[1950,1979.81],[1951,2020.23],[1952,2108.94],[1953,2145.84],[1954,2249.2],[1955,2379.48],[1956,2376.5],[1957,2487.37],[1958,2680.43],[1959,2861.75],[1960,3044.13],[1961,3214.19],[1962,3336.59],[1963,3260.25],[1964,3277.01],[1965,3261.05],[1966,3385.4],[1967,3429.86],[1968,3666.98],[1969,3909.48],[1970,4184.07],[1971,4554.85],[1972,4985.71],[1973,5558.5],[1974,5873.83],[1975,6031.57],[1976,6500.65],[1977,6660.12],[1978,6825.89],[1979,7117.96],[1980,7623.18],[1981,7128.81],[1982,7030.84],[1983,6672.28],[1984,6890.25],[1985,7286.96],[1986,7685.06],[1987,7807.1],[1988,7657.32],[1989,7763.04],[1990,7136.93],[1991,7097.83],[1992,6950.28],[1993,7188.19],[1994,7503.67],[1995,7713.35],[1996,7810.2],[1997,7957.98],[1998,7860.55],[1999,7818.96],[2000,8056.06],[2001,8022.52],[2002,8131.21],[2003,8110.41],[2004,8461.5],[2005,8596],[2006,8869.55],[2007,9305.66],[2008,9682],[2009,9569.78]],"population":[[1820,4507000],[1850,7234000],[1870,9797000],[1871,9980000],[1872,10167000],[1873,10358000],[1874,10552000],[1875,10749000],[1876,10951000],[1877,11156000],[1878,11365000],[1879,11578000],[1880,11794000],[1881,12015000],[1882,12240000],[1883,12470000],[1884,12703000],[1885,12941000],[1886,13183000],[1887,13430000],[1888,13682000],[1889,13938000],[1890,14199000],[1891,14539000],[1892,14886000],[1893,15242000],[1894,15607000],[1895,15980000],[1896,16362000],[1897,16753000],[1898,17154000],[1899,17564000],[1900,17984000],[1901,18392000],[1902,18782000],[1903,19180000],[1904,19587000],[1905,20003000],[1906,20427000],[1907,20860000],[1908,21303000],[1909,21754000],[1910,22216000],[1911,22687000],[1912,23168000],[1913,23660000],[1914,24161000],[1915,24674000],[1916,25197000],[1917,25732000],[1918,26277000],[1919,26835000],[1920,27404000],[1921,27969000],[1922,28542000],[1923,29126000],[1924,29723000],[1925,30332000],[1926,30953000],[1927,31587000],[1928,32234000],[1929,32894000],[1930,33568000],[1931,34256000],[1932,34957000],[1933,35673000],[1934,36404000],[1935,37150000],[1936,37911000],[1937,38687000],[1938,39480000],[1939,40289000],[1940,41114000],[1941,42069000],[1942,43069000],[1943,44093000],[1944,45141000],[1945,46215000],[1946,47313000],[1947,48438000],[1948,49590000],[1949,50769000],[1950,53443075],[1951,54995532],[1952,56602560],[1953,58266357],[1954,59989219],[1955,61773546],[1956,63631992],[1957,65551171],[1958,67533213],[1959,69580328],[1960,71694810],[1961,73832902],[1962,76039390],[1963,78316598],[1964,80666939],[1965,83092908],[1966,85557441],[1967,88049823],[1968,90569084],[1969,93114241],[1970,95684297],[1971,98245467],[1972,100840058],[1973,103469438],[1974,106131448],[1975,108823732],[1976,111545124],[1977,114313951],[1978,117146603],[1979,120040282],[1980,122958132],[1981,125929730],[1982,128962939],[1983,131891729],[1984,134626216],[1985,137302933],[1986,140111725],[1987,142938076],[1988,145782100],[1989,148567499],[1990,151083809],[1991,153511587],[1992,155975974],[1993,158471338],[1994,160994257],[1995,163542501],[1996,166073876],[1997,168546719],[1998,170956177],[1999,173293681],[2000,175552771],[2001,177752913],[2002,179914212],[2003,182032604],[2004,184101109],[2005,186112794],[2006,188078227],[2007,190010647],[2008,191908598]],"lifeExpectancy":[[1800,32],[1920,31.98],[1930,32],[1940,36.64],[1945,42.3],[1950,49.97],[1951,50.2],[1952,50.67],[1953,51.14],[1954,51.61],[1955,52.09],[1956,52.58],[1957,53.06],[1958,53.55],[1959,54.03],[1960,54.51],[1961,54.97],[1962,55.43],[1963,55.86],[1964,56.28],[1965,56.69],[1966,57.08],[1967,57.45],[1968,57.83],[1969,58.2],[1970,58.57],[1971,58.94],[1972,59.32],[1973,59.71],[1974,60.1],[1975,60.49],[1976,60.89],[1977,61.29],[1978,61.68],[1979,62.07],[1980,62.46],[1981,62.84],[1982,63.22],[1983,63.6],[1984,63.98],[1985,64.36],[1986,64.74],[1987,65.12],[1988,65.5],[1989,65.88],[1990,66.26],[1991,66.65],[1992,67.06],[1993,67.47],[1994,67.88],[1995,68.3],[1996,68.7],[1997,69.1],[1998,69.48],[1999,69.85],[2000,70.19],[2001,70.51],[2002,70.82],[2003,71.11],[2004,71.4],[2005,71.67],[2006,71.93],[2007,72.19],[2008,72.44],[2009,72.68]]},{"name":"Canada","region":"America","income":[[1800,1159.5],[1820,1312.47],[1830,1451.18],[1840,1686.35],[1850,1929.46],[1860,2105.05],[1870,2459.06],[1871,2546.14],[1872,2474.56],[1873,2672.9],[1874,2690.08],[1875,2588.86],[1876,2381.27],[1877,2506.83],[1878,2375.88],[1879,2561.68],[1880,2635.18],[1881,2959.8],[1882,3060.65],[1883,3033.5],[1884,3237.49],[1885,3008.03],[1886,3011.56],[1887,3076.36],[1888,3263.56],[1889,3249.51],[1890,3451.46],[1891,3495.5],[1892,3440.52],[1893,3386.62],[1894,3512.53],[1895,3440.7],[1896,3321],[1897,3644.66],[1898,3749.07],[1899,4056.95],[1900,4224.78],[1901,4493.99],[1902,4833.78],[1903,4837.7],[1904,4759.25],[1905,5168.85],[1906,5581.55],[1907,5623.11],[1908,5183.71],[1909,5586.47],[1910,5900.16],[1911,6113.16],[1912,6352.01],[1913,6453.07],[1914,5841.42],[1915,6142.69],[1916,6742.36],[1917,6966.52],[1918,6444.11],[1919,5832.8],[1920,5603.71],[1921,4871.63],[1922,5504.55],[1923,5769.84],[1924,5771.38],[1925,6298.53],[1926,6526.05],[1927,7033.87],[1928,7504.92],[1929,7350.88],[1930,6981.06],[1931,5810.09],[1932,5327.95],[1933,4891.07],[1934,5356.36],[1935,5733.08],[1936,5984.97],[1937,6491.73],[1938,6596.94],[1939,6919.43],[1940,7790.3],[1941,8780.77],[1942,10206.71],[1943,10539.59],[1944,10800.51],[1945,10351.21],[1946,10058.5],[1947,10286.28],[1948,10253.07],[1949,10251.27],[1950,10581.27],[1951,10932.47],[1952,11367.16],[1953,11586.61],[1954,11173.26],[1955,11901.51],[1956,12555.55],[1957,12489.95],[1958,12384.41],[1959,12590.8],[1960,12701.48],[1961,12817.92],[1962,13462.49],[1963,13882.56],[1964,14510.9],[1965,15198.11],[1966,15884.84],[1967,16076.59],[1968,16658.21],[1969,17286.99],[1970,17487.46],[1971,18229.64],[1972,18970.57],[1973,20081.31],[1974,20613.59],[1975,20775.51],[1976,21626.09],[1977,22090.88],[1978,22754.83],[1979,23465.83],[1980,23473.9],[1981,23904.53],[1982,22898.79],[1983,23329.8],[1984,24431.85],[1985,25514.79],[1986,25921.17],[1987,26626.52],[1988,27562.41],[1989,27729.9],[1990,27387.27],[1991,26491.6],[1992,26342.88],[1993,26590.4],[1994,27543.91],[1995,27969.67],[1996,28074.84],[1997,28954.93],[1998,29837.46],[1999,31154.86],[2000,32448.61],[2001,32570.57],[2002,33328.97],[2003,33635.25],[2004,34346.97],[2005,35078],[2006,35714.67],[2007,36225.06],[2008,35950.08],[2009,34569.63]],"population":[[1820,816000],[1830,1169000],[1840,1697000],[1850,2485000],[1860,3369000],[1870,3781000],[1871,3801000],[1872,3870000],[1873,3943000],[1874,4012000],[1875,4071000],[1876,4128000],[1877,4184000],[1878,4244000],[1879,4312000],[1880,4384000],[1881,4451000],[1882,4503000],[1883,4560000],[1884,4617000],[1885,4666000],[1886,4711000],[1887,4760000],[1888,4813000],[1889,4865000],[1890,4918000],[1891,4972000],[1892,5022000],[1893,5072000],[1894,5121000],[1895,5169000],[1896,5218000],[1897,5269000],[1898,5325000],[1899,5383000],[1900,5457000],[1901,5536000],[1902,5650000],[1903,5813000],[1904,5994000],[1905,6166000],[1906,6282000],[1907,6596000],[1908,6813000],[1909,6993000],[1910,7188000],[1911,7410000],[1912,7602000],[1913,7852000],[1914,8093000],[1915,8191000],[1916,8214000],[1917,8277000],[1918,8374000],[1919,8548000],[1920,8798000],[1921,9028000],[1922,9159000],[1923,9256000],[1924,9394000],[1925,9549000],[1926,9713000],[1927,9905000],[1928,10107000],[1929,10305000],[1930,10488000],[1931,10657000],[1932,10794000],[1933,10919000],[1934,11030000],[1935,11136000],[1936,11243000],[1937,11341000],[1938,11452000],[1939,11570000],[1940,11688000],[1941,11818000],[1942,11969000],[1943,12115000],[1944,12268000],[1945,12404000],[1946,12634000],[1947,12901000],[1948,13180000],[1949,13469000],[1950,14011422],[1951,14330675],[1952,14785584],[1953,15183375],[1954,15636245],[1955,16050356],[1956,16445087],[1957,17010154],[1958,17462004],[1959,17872034],[1960,18266765],[1961,18634977],[1962,18985849],[1963,19342841],[1964,19711053],[1965,20071104],[1966,20448496],[1967,20819767],[1968,21143100],[1969,21448073],[1970,21749986],[1971,22026400],[1972,22284500],[1973,22559500],[1974,22874700],[1975,23209200],[1976,23517500],[1977,23796400],[1978,24036300],[1979,24276900],[1980,24593300],[1981,24900000],[1982,25201900],[1983,25456300],[1984,25701800],[1985,25941600],[1986,26203800],[1987,26549700],[1988,26894800],[1989,27379300],[1990,27790600],[1991,28117600],[1992,28523502],[1993,28920644],[1994,29262472],[1995,29619002],[1996,29983162],[1997,30305843],[1998,30628924],[1999,30957019],[2000,31278097],[2001,31592805],[2002,31902268],[2003,32207113],[2004,32507874],[2005,32805041],[2006,33098932],[2007,33390141],[2008,33679263]],"lifeExpectancy":[[1800,39],[1831,39.05],[1841,40.32],[1851,41.06],[1861,41.6],[1871,42.56],[1881,44.73],[1891,45.17],[1901,48.63],[1911,52.51],[1921,57.02],[1922,57.02],[1923,57.02],[1924,58.83],[1925,59.31],[1926,57.99],[1927,58.68],[1928,58.57],[1929,57.97],[1930,58.95],[1931,60.36],[1932,61.43],[1933,62.36],[1934,62.77],[1935,62.49],[1936,62.72],[1937,61.35],[1938,63.31],[1939,63.74],[1940,64.01],[1941,63.76],[1942,64.7],[1943,64.61],[1944,65.35],[1945,66.33],[1946,66.53],[1947,66.78],[1948,67.33],[1949,67.65],[1950,68.28],[1951,68.55],[1952,68.75],[1953,69.13],[1954,69.99],[1955,70.05],[1956,70.04],[1957,69.96],[1958,70.62],[1959,70.66],[1960,71.04],[1961,71.27],[1962,71.3],[1963,71.31],[1964,71.69],[1965,71.79],[1966,71.92],[1967,72.13],[1968,72.29],[1969,72.45],[1970,72.65],[1971,72.98],[1972,72.88],[1973,73.11],[1974,73.19],[1975,73.49],[1976,73.92],[1977,74.21],[1978,74.54],[1979,74.9],[1980,75.14],[1981,75.55],[1982,75.76],[1983,76.13],[1984,76.43],[1985,76.41],[1986,76.56],[1987,76.86],[1988,76.93],[1989,77.2],[1990,77.51],[1991,77.69],[1992,77.95],[1993,77.83],[1994,78.01],[1995,78.13],[1996,78.4],[1997,78.61],[1998,78.83],[1999,79.05],[2000,79.41],[2001,79.65],[2002,79.77],[2003,79.95],[2004,80.25],[2005,80.36],[2006,80.78],[2007,80.59],[2008,80.74],[2009,80.89]]},{"name":"Chile","region":"America","income":[[1800,702.1],[1820,702.1],[1821,671.26],[1822,674.88],[1823,672.16],[1824,655.85],[1825,675.33],[1826,680.4],[1827,683.34],[1828,678.3],[1829,682.26],[1830,671.74],[1831,670.8],[1832,679.53],[1833,676.85],[1834,691.32],[1835,706.81],[1836,701.53],[1837,718.11],[1838,721.22],[1839,722.49],[1840,759.86],[1841,761.15],[1842,769.85],[1843,784.83],[1844,787.67],[1845,802.73],[1846,821],[1847,829.82],[1848,854.98],[1849,906.14],[1850,942.87],[1851,959.04],[1852,977.78],[1853,946.81],[1854,964.38],[1855,998.49],[1856,1000.39],[1857,1022.86],[1858,1057.28],[1859,1081.1],[1860,1106.69],[1861,1096.14],[1862,1081.49],[1863,1111.61],[1864,1158.9],[1865,1186.33],[1866,1199.8],[1867,1141.19],[1868,1186.1],[1869,1291.65],[1870,1305.81],[1871,1288.95],[1872,1364.89],[1873,1433.73],[1874,1353.28],[1875,1443.33],[1876,1406.65],[1877,1341.24],[1878,1401.5],[1879,1590.66],[1880,1761.15],[1881,1796.41],[1882,1917.94],[1883,1902.05],[1884,1891.54],[1885,1809.21],[1886,1859.31],[1887,1961.87],[1888,1858.47],[1889,1880.77],[1890,1990.16],[1891,2124.06],[1892,2054.33],[1893,2128.49],[1894,2066.71],[1895,2183.84],[1896,2168.76],[1897,2094.59],[1898,2319.9],[1899,2306.31],[1900,2220.49],[1901,2249.32],[1902,2320.22],[1903,2164.58],[1904,2315.07],[1905,2286.48],[1906,2437.44],[1907,2537.55],[1908,2775.6],[1909,2758.56],[1910,3036.29],[1911,2921.34],[1912,3003.54],[1913,3024.38],[1914,2526.96],[1915,2417.9],[1916,2930.1],[1917,2958.57],[1918,2961.16],[1919,2510.4],[1920,2801.57],[1921,2398.38],[1922,2455.04],[1923,2919.39],[1924,3098.6],[1925,3190.46],[1926,2884.86],[1927,2793.06],[1928,3372.55],[1929,3497.1],[1930,2893.24],[1931,2244.42],[1932,1866.7],[1933,2263.32],[1934,2687.51],[1935,2794.54],[1936,2881.79],[1937,3219.61],[1938,3199.01],[1939,3207.47],[1940,3275.24],[1941,3178.6],[1942,3264.58],[1943,3295.38],[1944,3295.07],[1945,3513.35],[1946,3743.95],[1947,3279.23],[1948,3756.64],[1949,3611.84],[1950,3714],[1951,3775.99],[1952,3939.98],[1953,4161.72],[1954,3954.37],[1955,4023.33],[1956,4004.52],[1957,4315.62],[1958,4444.52],[1959,4090.77],[1960,4321.77],[1961,4418.96],[1962,4519.09],[1963,4695.23],[1964,4694.22],[1965,4632.34],[1966,5044.56],[1967,5106.65],[1968,5189.48],[1969,5283.39],[1970,5294.52],[1971,5664.81],[1972,5494.02],[1973,5094.38],[1974,5052.19],[1975,4324.83],[1976,4399.45],[1977,4756.76],[1978,5071.09],[1979,5409.11],[1980,5748.92],[1981,6003.99],[1982,5095.67],[1983,4868.24],[1984,5071.32],[1985,5090.75],[1986,5290.96],[1987,5547.06],[1988,5850.79],[1989,6359.08],[1990,6478.75],[1991,6877.27],[1992,7596.13],[1993,8000.88],[1994,8501.17],[1995,9082.42],[1996,9620.05],[1997,10118.05],[1998,10310.03],[1999,10105.61],[2000,10435.17],[2001,10665.2],[2002,10778.78],[2003,11082.55],[2004,11649.71],[2005,12262],[2006,12677.5],[2007,13124.6],[2008,13474.41],[2009,13087.38]],"population":[[1800,771447],[1820,771447],[1821,789144],[1822,807304],[1823,825890],[1824,844866],[1825,864198],[1826,883855],[1827,903807],[1828,924027],[1829,944490],[1830,965173],[1831,986056],[1832,1007120],[1833,1028350],[1834,1049733],[1835,1071256],[1836,1092912],[1837,1114694],[1838,1136597],[1839,1158619],[1840,1180761],[1841,1203023],[1842,1225410],[1843,1247926],[1844,1270578],[1845,1293375],[1846,1316325],[1847,1339439],[1848,1362729],[1849,1386207],[1850,1409885],[1851,1433777],[1852,1457897],[1853,1482258],[1854,1506873],[1855,1531758],[1856,1556924],[1857,1582386],[1858,1608154],[1859,1634242],[1860,1660659],[1861,1687416],[1862,1714521],[1863,1741983],[1864,1769808],[1865,1798001],[1866,1826566],[1867,1855505],[1868,1884819],[1869,1914507],[1870,1944569],[1871,1974998],[1872,2005790],[1873,2036939],[1874,2068435],[1875,2100268],[1876,2132427],[1877,2164899],[1878,2197670],[1879,2230723],[1880,2264042],[1881,2297611],[1882,2331409],[1883,2365419],[1884,2399621],[1885,2433995],[1886,2468522],[1887,2503181],[1888,2537954],[1889,2572823],[1890,2607769],[1891,2642778],[1892,2677834],[1893,2712925],[1894,2748040],[1895,2783171],[1896,2818312],[1897,2853462],[1898,2888620],[1899,2923792],[1900,2958986],[1901,2994214],[1902,3029494],[1903,3064845],[1904,3100295],[1905,3135874],[1906,3171619],[1907,3207571],[1908,3243777],[1909,3280289],[1910,3317166],[1911,3354469],[1912,3392269],[1913,3430640],[1914,3469662],[1915,3509420],[1916,3550005],[1917,3591512],[1918,3634043],[1919,3677702],[1920,3722598],[1921,3768846],[1922,3816561],[1923,3865863],[1924,3916875],[1925,3969721],[1926,4024523],[1927,4081406],[1928,4140494],[1929,4201905],[1930,4265756],[1931,4332156],[1932,4401207],[1933,4473001],[1934,4547615],[1935,4625112],[1936,4705534],[1937,4788901],[1938,4875203],[1939,4964398],[1940,5056404],[1941,5151095],[1942,5248293],[1943,5347758],[1944,5449185],[1945,5552190],[1946,5656303],[1947,5760959],[1948,5865486],[1949,5969096],[1950,6090833],[1951,6251933],[1952,6377619],[1953,6492774],[1954,6612138],[1955,6743269],[1956,6888843],[1957,7048426],[1958,7219783],[1959,7399842],[1960,7585349],[1961,7773314],[1962,7961258],[1963,8147349],[1964,8330423],[1965,8509950],[1966,8685954],[1967,8858908],[1968,9029621],[1969,9199122],[1970,9368558],[1971,9540298],[1972,9717524],[1973,9896635],[1974,10076544],[1975,10251542],[1976,10432214],[1977,10599793],[1978,10759823],[1979,10922822],[1980,11093718],[1981,11282304],[1982,11487112],[1983,11686845],[1984,11879139],[1985,12066701],[1986,12259840],[1987,12463354],[1988,12677524],[1989,12901157],[1990,13127760],[1991,13352503],[1992,13572994],[1993,13788271],[1994,14000060],[1995,14205449],[1996,14404243],[1997,14599929],[1998,14790995],[1999,14975383],[2000,15153450],[2001,15327316],[2002,15497046],[2003,15662645],[2004,15823957],[2005,15980912],[2006,16134219],[2007,16284741],[2008,16432536]],"lifeExpectancy":[[1800,32],[1902,32],[1907,30.5],[1912,31.9],[1917,32.2],[1922,31.6],[1927,37],[1932,38.7],[1937,39.1],[1942,44],[1947,47.9],[1950,54.34],[1951,54.45],[1952,54.67],[1953,54.91],[1954,55.16],[1955,55.43],[1956,55.72],[1957,56.02],[1958,56.33],[1959,56.67],[1960,57.03],[1961,57.42],[1962,57.83],[1963,58.28],[1964,58.76],[1965,59.26],[1966,59.78],[1967,60.32],[1968,60.87],[1969,61.44],[1970,62.02],[1971,62.63],[1972,63.27],[1973,63.93],[1974,64.62],[1975,65.34],[1976,66.08],[1977,66.84],[1978,67.6],[1979,68.35],[1980,69.07],[1981,69.74],[1982,70.36],[1983,70.91],[1984,71.4],[1985,71.83],[1986,72.22],[1987,72.57],[1988,72.91],[1989,73.24],[1990,73.56],[1991,73.87],[1992,74.56],[1993,74.64],[1994,75.12],[1995,75.04],[1996,75.36],[1997,75.93],[1998,76.05],[1999,76.25],[2000,77.01],[2001,76.86],[2002,77.42],[2003,77.48],[2004,77.53],[2005,77.93],[2006,78.34],[2007,78.45],[2008,78.56],[2009,78.67]]},{"name":"Colombia","region":"America","income":[[1800,522.98],[1820,522.98],[1905,643.11],[1906,648.17],[1907,677.81],[1908,702],[1909,724.72],[1910,751.11],[1911,772.97],[1912,795.3],[1913,813.77],[1914,823.55],[1915,840.3],[1916,861.89],[1917,874.93],[1918,900.89],[1919,952.4],[1920,992.81],[1921,1024.24],[1922,1067.09],[1923,1107.43],[1924,1141.8],[1925,1173.69],[1926,1255.5],[1927,1336],[1928,1399.43],[1929,1413.64],[1930,1384.68],[1931,1345.95],[1932,1419.21],[1933,1482.01],[1934,1557.56],[1935,1577.06],[1936,1641.72],[1937,1647.76],[1938,1735.24],[1939,1795.23],[1940,1786.07],[1941,1768.32],[1942,1724.65],[1943,1685.56],[1944,1754.34],[1945,1789.64],[1946,1913.78],[1947,1936.98],[1948,1940.11],[1949,2057.58],[1950,2087.95],[1951,2079.14],[1952,2144.12],[1953,2184.17],[1954,2270.06],[1955,2286.56],[1956,2321.02],[1957,2323.81],[1958,2292.18],[1959,2381.6],[1960,2399.03],[1961,2443.57],[1962,2492.35],[1963,2493.77],[1964,2566.86],[1965,2591.01],[1966,2657.98],[1967,2678.73],[1968,2770.65],[1969,2871.63],[1970,2987.81],[1971,3095.9],[1972,3264.66],[1973,3415.45],[1974,3557.45],[1975,3587.95],[1976,3706.3],[1977,3815.81],[1978,4095.24],[1979,4263.25],[1980,4379.58],[1981,4424.36],[1982,4397.58],[1983,4406.32],[1984,4470.55],[1985,4533.92],[1986,4719.37],[1987,4903.22],[1988,5046.81],[1989,5145.39],[1990,5302.34],[1991,5321.6],[1992,5444.65],[1993,5645.09],[1994,5823.7],[1995,6013.41],[1996,6022.65],[1997,6117.36],[1998,6041.41],[1999,5680.88],[2000,5749.55],[2001,5738],[2002,5755.26],[2003,5885.52],[2004,6080.32],[2005,6306],[2006,6663.54],[2007,7081.42],[2008,7168.15],[2009,7090.69]],"population":[[1800,1206000],[1820,1206000],[1850,2065000],[1870,2392000],[1890,3369000],[1900,3998000],[1901,4079000],[1902,4162000],[1903,4247000],[1904,4334000],[1905,4422000],[1906,4512000],[1907,4604000],[1908,4697000],[1909,4793000],[1910,4890000],[1911,4990000],[1912,5091000],[1913,5195000],[1914,5330000],[1915,5468000],[1916,5609000],[1917,5754000],[1918,5903000],[1919,6056000],[1920,6213000],[1921,6374000],[1922,6539000],[1923,6709000],[1924,6882000],[1925,7061000],[1926,7243000],[1927,7431000],[1928,7624000],[1929,7821000],[1930,7914000],[1931,8009000],[1932,8104000],[1933,8201000],[1934,8299000],[1935,8398000],[1936,8498000],[1937,8599000],[1938,8702000],[1939,8935000],[1940,9174000],[1941,9419000],[1942,9671000],[1943,9930000],[1944,10196000],[1945,10469000],[1946,10749000],[1947,11036000],[1948,11332000],[1949,11635000],[1950,11591658],[1951,11965000],[1952,12350771],[1953,12749619],[1954,13162003],[1955,13588405],[1956,14029321],[1957,14485993],[1958,14958277],[1959,15446730],[1960,15952727],[1961,16476124],[1962,17009885],[1963,17546017],[1964,18090000],[1965,18646175],[1966,19201732],[1967,19764027],[1968,20321665],[1969,20869140],[1970,21429658],[1971,21992579],[1972,22542890],[1973,23069231],[1974,23593390],[1975,24114177],[1976,24620486],[1977,25094412],[1978,25542727],[1979,26030848],[1980,26582811],[1981,27159381],[1982,27764644],[1983,28389398],[1984,29027923],[1985,29678395],[1986,30326818],[1987,30964245],[1988,31589376],[1989,32216557],[1990,32858579],[1991,33518610],[1992,34202721],[1993,34896573],[1994,35588746],[1995,36280883],[1996,36971016],[1997,37657830],[1998,38339937],[1999,39016113],[2000,39685655],[2001,40349388],[2002,41008227],[2003,41662073],[2004,42310775],[2005,42954279],[2006,43593035],[2007,44227550],[2008,44858264]],"lifeExpectancy":[[1800,32],[1912,32],[1918,31.99],[1930,32],[1938,36.6],[1944,41.85],[1950,48.37],[1951,48.97],[1952,50.14],[1953,51.22],[1954,52.23],[1955,53.16],[1956,54.02],[1957,54.79],[1958,55.5],[1959,56.14],[1960,56.72],[1961,57.25],[1962,57.74],[1963,58.2],[1964,58.64],[1965,59.06],[1966,59.46],[1967,59.84],[1968,60.2],[1969,60.54],[1970,60.87],[1971,61.21],[1972,61.56],[1973,61.93],[1974,62.32],[1975,62.75],[1976,63.23],[1977,63.76],[1978,64.32],[1979,64.9],[1980,65.48],[1981,66.03],[1982,66.52],[1983,66.95],[1984,67.3],[1985,67.57],[1986,67.78],[1987,67.93],[1988,68.05],[1989,68.17],[1990,68.3],[1991,68.45],[1992,68.64],[1993,68.86],[1994,69.13],[1995,69.43],[1996,69.75],[1997,70.07],[1998,70.39],[1999,70.7],[2000,70.98],[2001,71.25],[2002,71.51],[2003,71.76],[2004,72.01],[2005,72.25],[2006,72.49],[2007,72.72],[2008,72.96],[2009,73.19]]},{"name":"Costa Rica","region":"America","income":[[1800,670.12],[1820,670.12],[1920,2018.1],[1921,1930.71],[1922,2101.23],[1923,1898.13],[1924,2123.84],[1925,2069.57],[1926,2239.72],[1927,2033.47],[1928,2094.67],[1929,1965.69],[1930,2020.83],[1931,1956.83],[1932,1766.24],[1933,2063.55],[1934,1785.98],[1935,1898.13],[1936,1988.51],[1937,2239.22],[1938,2331.87],[1939,2320.61],[1940,2190.97],[1941,2414.62],[1942,2097.5],[1943,2061.95],[1944,1813.06],[1945,2006.27],[1946,2186.31],[1947,2529.91],[1948,2603.3],[1949,2638.98],[1950,2439.82],[1951,2425.02],[1952,2627.01],[1953,2924],[1954,2845.1],[1955,3057.12],[1956,2859.88],[1957,2990.01],[1958,3237.3],[1959,3228.87],[1960,3374.88],[1961,3383.62],[1962,3460.94],[1963,3627.39],[1964,3680.52],[1965,3885.68],[1966,4049.72],[1967,4161.73],[1968,4346.33],[1969,4501.74],[1970,4665.44],[1971,4833.79],[1972,5118.15],[1973,5367.23],[1974,5505.86],[1975,5463.45],[1976,5600.27],[1977,5926.88],[1978,6052.64],[1979,6163.74],[1980,6102.95],[1981,5817.93],[1982,5262.73],[1983,5257.08],[1984,5508.07],[1985,5394.25],[1986,5525.6],[1987,5629.92],[1988,5668.47],[1989,5839.22],[1990,5899.67],[1991,5885.81],[1992,6160.42],[1993,6374.84],[1994,6508.09],[1995,6515.31],[1996,6444.68],[1997,6677.05],[1998,7106.62],[1999,7637.89],[2000,7672.85],[2001,7627.11],[2002,7723.45],[2003,8098.56],[2004,8301.9],[2005,8661],[2006,9231.72],[2007,9765.16],[2008,9840.79],[2009,9551.56]],"population":[[1801,53000],[1820,63000],[1824,65000],[1836,78000],[1844,94000],[1850,101000],[1864,120000],[1870,137000],[1875,153000],[1883,182000],[1892,243000],[1900,297000],[1901,310000],[1902,320000],[1903,320000],[1904,330000],[1905,340000],[1906,340000],[1907,350000],[1908,350000],[1909,360000],[1910,363000],[1911,366000],[1912,369000],[1913,372000],[1914,390000],[1915,390000],[1916,400000],[1917,400000],[1918,410000],[1919,420000],[1920,420000],[1921,430000],[1922,430000],[1923,440000],[1924,450000],[1925,460000],[1926,470000],[1927,470000],[1928,480000],[1929,490000],[1930,500000],[1931,510000],[1932,520000],[1933,530000],[1934,540000],[1935,550000],[1936,560000],[1937,580000],[1938,590000],[1939,610000],[1940,620000],[1941,630000],[1942,650000],[1943,660000],[1944,680000],[1945,700000],[1946,710000],[1947,730000],[1948,750000],[1949,770000],[1950,866982],[1951,895336],[1952,926317],[1953,958893],[1954,993786],[1955,1031782],[1956,1071654],[1957,1112300],[1958,1154408],[1959,1200148],[1960,1248022],[1961,1296587],[1962,1345187],[1963,1393441],[1964,1440184],[1965,1487605],[1966,1538442],[1967,1588717],[1968,1638476],[1969,1687100],[1970,1735523],[1971,1785636],[1972,1834796],[1973,1886035],[1974,1937413],[1975,1991580],[1976,2048557],[1977,2108457],[1978,2192367],[1979,2259714],[1980,2299124],[1981,2357285],[1982,2424367],[1983,2494353],[1984,2567516],[1985,2643808],[1986,2723111],[1987,2799811],[1988,2875267],[1989,2951454],[1990,3027175],[1991,3101029],[1992,3173216],[1993,3244282],[1994,3314588],[1995,3383786],[1996,3451722],[1997,3518107],[1998,3583162],[1999,3647319],[2000,3710558],[2001,3773057],[2002,3834934],[2003,3896092],[2004,3956507],[2005,4016173],[2006,4075261],[2007,4133884],[2008,4191948]],"lifeExpectancy":[[1800,30.21],[1875,30.21],[1889,30.2],[1900,34.7],[1910,35.1],[1920,35.1],[1930,42.2],[1940,46.9],[1950,56.11],[1951,56.39],[1952,56.97],[1953,57.55],[1954,58.13],[1955,58.71],[1956,59.29],[1957,59.87],[1958,60.45],[1959,61.03],[1960,61.61],[1961,62.18],[1962,62.74],[1963,63.29],[1964,63.83],[1965,64.36],[1966,64.87],[1967,65.37],[1968,65.86],[1969,66.35],[1970,66.83],[1971,67.34],[1972,67.86],[1973,68.4],[1974,68.96],[1975,69.54],[1976,70.15],[1977,70.77],[1978,71.39],[1979,72],[1980,72.56],[1981,73.07],[1982,73.5],[1983,73.86],[1984,74.15],[1985,74.39],[1986,74.59],[1987,74.79],[1988,75],[1989,75.24],[1990,75.5],[1991,75.77],[1992,76.05],[1993,76.31],[1994,76.56],[1995,76.79],[1996,77],[1997,77.2],[1998,77.39],[1999,77.57],[2000,77.74],[2001,77.9],[2002,78.06],[2003,78.21],[2004,78.35],[2005,78.48],[2006,78.61],[2007,78.74],[2008,78.86],[2009,78.98]]},{"name":"Cuba","region":"America","income":[[1800,1123.88],[1820,1123.88],[1929,4148.69],[1930,3811.08],[1931,3142.29],[1932,2474.51],[1933,2627.11],[1934,3028.01],[1935,3471.57],[1936,3982.61],[1937,4505],[1938,3437.35],[1939,3572.08],[1940,3058.45],[1941,4047.45],[1942,3344.39],[1943,3649.49],[1944,4128.31],[1945,4496.19],[1946,4793.61],[1947,5368.57],[1948,4664.52],[1949,4957.64],[1950,5180.44],[1951,5507.89],[1952,5586.54],[1953,4811.18],[1954,4953.84],[1955,5076.02],[1956,5429.24],[1957,6092.17],[1958,5982],[1959,5232.62],[1960,5194.75],[1961,5190.1],[1962,5180.76],[1963,5143.38],[1964,5087.17],[1965,5033.96],[1966,5193.19],[1967,5690.27],[1968,5265.77],[1969,5116.29],[1970,4854.33],[1971,5155.9],[1972,5305.45],[1973,5683.94],[1974,5883.88],[1975,6086.94],[1976,6173.86],[1977,6380.49],[1978,6708.18],[1979,6821.94],[1980,6695.01],[1981,7208.8],[1982,7316.92],[1983,7453.54],[1984,7645.61],[1985,7710.16],[1986,7651.77],[1987,7532.92],[1988,7599.98],[1989,7549.09],[1990,7463.69],[1991,6537.35],[1992,5592.84],[1993,4669.61],[1994,4738.16],[1995,4875.77],[1996,5277.62],[1997,5431.99],[1998,5479.51],[1999,5823.76],[2000,6115.59],[2001,6270],[2002,6340.65],[2003,6500.13],[2004,6877.99],[2005,7407.24],[2006,8295.24],[2007,8894.89],[2008,9277.96]],"population":[[1817,572000],[1820,605000],[1827,704000],[1841,1008000],[1850,1186000],[1861,1397000],[1870,1331000],[1877,1522000],[1887,1632000],[1900,1658000],[1901,1716000],[1902,1775000],[1903,1837000],[1904,1879000],[1905,1927000],[1906,1979000],[1907,2034000],[1908,2092000],[1909,2154000],[1910,2219000],[1911,2287000],[1912,2358000],[1913,2431000],[1914,2507000],[1915,2585000],[1916,2664000],[1917,2746000],[1918,2828000],[1919,2912000],[1920,2997000],[1921,3083000],[1922,3170000],[1923,3257000],[1924,3345000],[1925,3432000],[1926,3519000],[1927,3606000],[1928,3693000],[1929,3742000],[1930,3837000],[1931,3910000],[1932,3984000],[1933,4060000],[1934,4137000],[1935,4221000],[1936,4289000],[1937,4357000],[1938,4428000],[1939,4497000],[1940,4566000],[1941,4635000],[1942,4704000],[1943,4779000],[1944,4849000],[1945,4932000],[1946,5039000],[1947,5152000],[1948,5268000],[1949,5386000],[1950,5784797],[1951,5891797],[1952,6007797],[1953,6128797],[1954,6254337],[1955,6381106],[1956,6512938],[1957,6640752],[1958,6763058],[1959,6900886],[1960,7027210],[1961,7134000],[1962,7254373],[1963,7414884],[1964,7612275],[1965,7809916],[1966,7985316],[1967,8139332],[1968,8283933],[1969,8421048],[1970,8542746],[1971,8669625],[1972,8831348],[1973,9001355],[1974,9152866],[1975,9290074],[1976,9420906],[1977,9537988],[1978,9634028],[1979,9710150],[1980,9652975],[1981,9711975],[1982,9789224],[1983,9885596],[1984,9982299],[1985,10078658],[1986,10162192],[1987,10239839],[1988,10334044],[1989,10439251],[1990,10544793],[1991,10642491],[1992,10723260],[1993,10788020],[1994,10844611],[1995,10896802],[1996,10943047],[1997,10983007],[1998,11029133],[1999,11082746],[2000,11134273],[2001,11182298],[2002,11226999],[2003,11268976],[2004,11308764],[2005,11346670],[2006,11382820],[2007,11416987],[2008,11449006]],"lifeExpectancy":[[1800,32.2],[1804,32.7],[1809,33.5],[1814,34.2],[1819,34.7],[1824,36.4],[1829,35.6],[1834,36.3],[1839,36.6],[1844,36],[1849,36.2],[1854,36.5],[1859,36.6],[1864,34.8],[1869,29.6],[1874,29.9],[1879,35.8],[1884,41],[1889,43.7],[1894,22.9],[1899,18.9],[1900,33.11],[1905,34.16],[1910,35.22],[1915,36.29],[1920,37.38],[1925,38.76],[1930,41.5],[1935,44.57],[1940,47.47],[1945,50.93],[1950,58.31],[1951,58.61],[1952,59.19],[1953,59.77],[1954,60.36],[1955,60.94],[1956,61.52],[1957,62.11],[1958,62.7],[1959,63.29],[1960,63.89],[1961,64.51],[1962,65.13],[1963,65.76],[1964,66.4],[1965,67.03],[1966,67.65],[1967,68.25],[1968,68.82],[1969,69.36],[1970,69.88],[1971,70.37],[1972,70.85],[1973,71.31],[1974,71.76],[1975,72.19],[1976,72.59],[1977,72.96],[1978,73.29],[1979,73.58],[1980,73.82],[1981,74.03],[1982,74.19],[1983,74.33],[1984,74.44],[1985,74.52],[1986,74.57],[1987,74.6],[1988,74.61],[1989,74.62],[1990,74.64],[1991,74.69],[1992,74.8],[1993,74.95],[1994,75.16],[1995,75.41],[1996,75.67],[1997,75.94],[1998,76.19],[1999,76.42],[2000,76.64],[2001,76.86],[2002,77.1],[2003,77.36],[2004,77.64],[2005,77.93],[2006,78.21],[2007,78.46],[2008,78.67],[2009,78.84]]},{"name":"Ecuador","region":"America","income":[[1800,1085.13],[1820,1085.13],[1939,2280.28],[1940,2377.52],[1941,2319.07],[1942,2384.45],[1943,2619.62],[1944,2584.66],[1945,2530.62],[1946,2760.5],[1947,2980.45],[1948,3296.76],[1949,3262.54],[1950,3266.23],[1951,3217.46],[1952,3522.11],[1953,3503.58],[1954,3687.72],[1955,3684.14],[1956,3717.83],[1957,3780.55],[1958,3784.77],[1959,3877.18],[1960,4012.4],[1961,3995.41],[1962,4086.11],[1963,4068.08],[1964,4227.1],[1965,4498.49],[1966,4480.75],[1967,4579.07],[1968,4690.4],[1969,4801.95],[1970,4988.61],[1971,5122.72],[1972,5280.99],[1973,5768.63],[1974,5931.37],[1975,6065.29],[1976,6463.83],[1977,6679.62],[1978,6944.34],[1979,7117.72],[1980,7239.77],[1981,7331.12],[1982,7213.79],[1983,6876],[1984,6968.94],[1985,7075.66],[1986,7096.73],[1987,6481.78],[1988,6992.25],[1989,6826.42],[1990,6842.3],[1991,7042.35],[1992,7103.7],[1993,7107.17],[1994,7268.52],[1995,7336.07],[1996,7331.53],[1997,7429.46],[1998,7319.01],[1999,6670.59],[2000,5616.42],[2001,5812.3],[2002,5773.04],[2003,5911],[2004,6311.01],[2005,6533],[2006,6679.1],[2007,6721.26],[2008,7108.36],[2009,7035.45]],"population":[[1800,500000],[1820,500000],[1850,816000],[1870,1013000],[1900,1400000],[1901,1420000],[1902,1441000],[1903,1462000],[1904,1483000],[1905,1505000],[1906,1527000],[1907,1549000],[1908,1571000],[1909,1594000],[1910,1617000],[1911,1641000],[1912,1665000],[1913,1689000],[1914,1703000],[1915,1717000],[1916,1731000],[1917,1746000],[1918,1760000],[1919,1774000],[1920,1790000],[1921,1805000],[1922,1820000],[1923,1835000],[1924,1850000],[1925,1865000],[1926,1881000],[1927,1896000],[1928,1912000],[1929,1928000],[1930,1944000],[1931,1995000],[1932,2050000],[1933,2095000],[1934,2140000],[1935,2196000],[1936,2249000],[1937,2298000],[1938,2355000],[1939,2412000],[1940,2466000],[1941,2541000],[1942,2575000],[1943,2641000],[1944,2712000],[1945,2781000],[1946,2853000],[1947,2936000],[1948,3017000],[1949,3104000],[1950,3369955],[1951,3458093],[1952,3548753],[1953,3642591],[1954,3740256],[1955,3842399],[1956,3948587],[1957,4058385],[1958,4172445],[1959,4291418],[1960,4415956],[1961,4546197],[1962,4681707],[1963,4822279],[1964,4967705],[1965,5117779],[1966,5272639],[1967,5432424],[1968,5596925],[1969,5765935],[1970,5939246],[1971,6116773],[1972,6298651],[1973,6485013],[1974,6675986],[1975,6871698],[1976,7072687],[1977,7278866],[1978,7489432],[1979,7703577],[1980,7920499],[1981,8141078],[1982,8365850],[1983,8593494],[1984,8825829],[1985,9061664],[1986,9301083],[1987,9545158],[1988,9794122],[1989,10048223],[1990,10318036],[1991,10526095],[1992,10748394],[1993,10979476],[1994,11208048],[1995,11438004],[1996,11673950],[1997,11911819],[1998,12139965],[1999,12347543],[2000,12505204],[2001,12701839],[2002,12921234],[2003,13074082],[2004,13212742],[2005,13363593],[2006,13547510],[2007,13755680],[2008,13927650]],"lifeExpectancy":[[1800,32.9],[1939,32.9],[1950,47.27],[1951,47.52],[1952,48.05],[1953,48.61],[1954,49.19],[1955,49.81],[1956,50.44],[1957,51.1],[1958,51.78],[1959,52.46],[1960,53.12],[1961,53.76],[1962,54.35],[1963,54.9],[1964,55.39],[1965,55.83],[1966,56.23],[1967,56.61],[1968,56.99],[1969,57.38],[1970,57.78],[1971,58.2],[1972,58.64],[1973,59.09],[1974,59.57],[1975,60.06],[1976,60.59],[1977,61.14],[1978,61.71],[1979,62.31],[1980,62.92],[1981,63.55],[1982,64.19],[1983,64.82],[1984,65.45],[1985,66.06],[1986,66.66],[1987,67.24],[1988,67.8],[1989,68.33],[1990,68.85],[1991,69.35],[1992,69.84],[1993,70.31],[1994,70.78],[1995,71.24],[1996,71.69],[1997,72.13],[1998,72.56],[1999,72.97],[2000,73.36],[2001,73.7],[2002,74.01],[2003,74.27],[2004,74.49],[2005,74.67],[2006,74.83],[2007,74.98],[2008,75.12],[2009,75.26]]},{"name":"El Salvador","region":"America","income":[[1800,804.31],[1820,804.31],[1920,1834.11],[1921,1808.24],[1922,1868.57],[1923,1916.16],[1924,2000.99],[1925,1820.16],[1926,2102.98],[1927,1821.22],[1928,2074.46],[1929,2047.83],[1930,2055.71],[1931,1817.38],[1932,1619.03],[1933,1813.79],[1934,1848.38],[1935,2008.06],[1936,1937.73],[1937,2094.71],[1938,1922.39],[1939,2036.56],[1940,2185.33],[1941,2112.35],[1942,2253.76],[1943,2428.97],[1944,2264.25],[1945,2145.53],[1946,2154.67],[1947,2679.65],[1948,3357.89],[1949,2999.55],[1950,2928.38],[1951,2911.2],[1952,3048.3],[1953,3178.36],[1954,3126.4],[1955,3195.05],[1956,3346.59],[1957,3421.52],[1958,3392.04],[1959,3437.78],[1960,3468.95],[1961,3478.67],[1962,3776.8],[1963,3817.2],[1964,4047.7],[1965,4132.17],[1966,4271.86],[1967,4358.6],[1968,4345.97],[1969,4339.02],[1970,4301.25],[1971,4370.84],[1972,4520.25],[1973,4607.17],[1974,4791.29],[1975,4924.57],[1976,4980.98],[1977,5138.92],[1978,5339.79],[1979,5124.05],[1980,4629.77],[1981,4299.26],[1982,4098.34],[1983,4083.37],[1984,4113.8],[1985,4140.59],[1986,4109.36],[1987,4140.44],[1988,4142.57],[1989,4114.22],[1990,4167.27],[1991,4213.31],[1992,4444.23],[1993,4645.22],[1994,4836.25],[1995,5042.31],[1996,5037.56],[1997,5154.83],[1998,5248.87],[1999,5325.56],[2000,5341.27],[2001,5332.23],[2002,5351.57],[2003,5350.2],[2004,5349.69],[2005,5403],[2006,5592.24],[2007,5794.23],[2008,5894.67],[2009,5646.85]],"population":[[1800,248000],[1820,248000],[1850,366000],[1870,492000],[1900,766000],[1901,782000],[1902,799000],[1903,816000],[1904,834000],[1905,851000],[1906,869000],[1907,888000],[1908,907000],[1909,926000],[1910,946000],[1911,966000],[1912,987000],[1913,1008000],[1914,1030000],[1915,1052000],[1916,1074000],[1917,1098000],[1918,1121000],[1919,1145000],[1920,1170000],[1921,1190000],[1922,1220000],[1923,1240000],[1924,1270000],[1925,1300000],[1926,1330000],[1927,1350000],[1928,1390000],[1929,1410000],[1930,1440000],[1931,1460000],[1932,1470000],[1933,1490000],[1934,1510000],[1935,1530000],[1936,1550000],[1937,1570000],[1938,1590000],[1939,1610000],[1940,1630000],[1941,1650000],[1942,1680000],[1943,1690000],[1944,1720000],[1945,1740000],[1946,1760000],[1947,1780000],[1948,1810000],[1949,1840000],[1950,1939800],[1951,1989756],[1952,2042865],[1953,2099130],[1954,2158554],[1955,2221139],[1956,2286889],[1957,2355805],[1958,2427891],[1959,2503149],[1960,2581583],[1961,2664838],[1962,2747687],[1963,2836090],[1964,2923870],[1965,3017852],[1966,3128206],[1967,3232927],[1968,3347320],[1969,3469177],[1970,3603907],[1971,3710335],[1972,3790903],[1973,3878197],[1974,3971783],[1975,4071179],[1976,4174737],[1977,4282586],[1978,4396275],[1979,4508055],[1980,4566199],[1981,4515094],[1982,4474873],[1983,4521153],[1984,4587633],[1985,4664361],[1986,4751017],[1987,4842194],[1988,4930397],[1989,5015522],[1990,5099884],[1991,5185604],[1992,5274649],[1993,5369502],[1994,5466906],[1995,5568437],[1996,5674036],[1997,5783439],[1998,5895283],[1999,6008356],[2000,6122515],[2001,6237662],[2002,6353681],[2003,6470379],[2004,6587541],[2005,6704932],[2006,6822378],[2007,6939688],[2008,7057131]],"lifeExpectancy":[[1800,28.7],[1930,28.7],[1950,43.24],[1951,43.7],[1952,44.61],[1953,45.51],[1954,46.39],[1955,47.26],[1956,48.1],[1957,48.94],[1958,49.75],[1959,50.54],[1960,51.3],[1961,52.03],[1962,52.72],[1963,53.37],[1964,53.97],[1965,54.52],[1966,55.02],[1967,55.48],[1968,55.9],[1969,56.27],[1970,56.58],[1971,56.82],[1972,56.98],[1973,57.07],[1974,57.09],[1975,57.05],[1976,56.93],[1977,56.75],[1978,56.55],[1979,56.39],[1980,56.34],[1981,56.5],[1982,56.9],[1983,57.56],[1984,58.48],[1985,59.61],[1986,60.9],[1987,62.26],[1988,63.59],[1989,64.82],[1990,65.91],[1991,66.81],[1992,67.52],[1993,68.08],[1994,68.5],[1995,68.78],[1996,68.97],[1997,69.11],[1998,69.23],[1999,69.36],[2000,69.53],[2001,69.74],[2002,69.97],[2003,70.21],[2004,70.47],[2005,70.74],[2006,71],[2007,71.26],[2008,71.5],[2009,71.74]]},{"name":"French Guiana","region":"America","income":[[1800,819.27],[1820,819.27],[1913,1511.59],[1950,2612.06],[1973,7212.76],[1990,7210.63],[2001,8495.63],[2002,8869.85],[2003,8344.72],[2004,7910.72],[2005,8202.74]],"population":[[1800,9899],[1820,9899],[1950,25516],[1951,26083],[1952,26664],[1953,27257],[1954,27863],[1955,28483],[1956,29145],[1957,29853],[1958,30609],[1959,31400],[1960,32243],[1961,33206],[1962,34424],[1963,35973],[1964,37893],[1965,40035],[1966,42172],[1967,43991],[1968,45383],[1969,46782],[1970,48291],[1971,49934],[1972,51609],[1973,53190],[1974,54687],[1975,56261],[1976,57871],[1977,59707],[1978,62287],[1979,64907],[1980,67762],[1981,70885],[1982,73999],[1983,78844],[1984,83757],[1985,88828],[1986,94003],[1987,99323],[1988,104745],[1989,110251],[1990,115930],[1991,121664],[1992,127452],[1993,133287],[1994,139166],[1995,145082],[1996,150933],[1997,156616],[1998,162127],[1999,167459],[2000,172605],[2001,177562],[2002,182333],[2003,186917],[2004,191309],[2005,195506],[2006,199509],[2007,203321],[2008,206941]],"lifeExpectancy":[[1950,52.21],[1951,52.48],[1952,53.01],[1953,53.55],[1954,54.08],[1955,54.62],[1956,55.16],[1957,55.72],[1958,56.3],[1959,56.91],[1960,57.58],[1961,58.32],[1962,59.14],[1963,60.03],[1964,60.97],[1965,61.92],[1966,62.81],[1967,63.62],[1968,64.29],[1969,64.82],[1970,65.21],[1971,65.46],[1972,65.62],[1973,65.73],[1974,65.83],[1975,65.97],[1976,66.18],[1977,66.47],[1978,66.85],[1979,67.31],[1980,67.84],[1981,68.41],[1982,68.97],[1983,69.49],[1984,69.96],[1985,70.38],[1986,70.74],[1987,71.07],[1988,71.39],[1989,71.7],[1990,72.01],[1991,72.32],[1992,72.63],[1993,72.94],[1994,73.25],[1995,73.55],[1996,73.83],[1997,74.1],[1998,74.34],[1999,74.55],[2000,74.75],[2001,74.92],[2002,75.08],[2003,75.24],[2004,75.39],[2005,75.54],[2006,75.69],[2007,75.85],[2008,76],[2009,76.16]]},{"name":"Grenada","region":"America","income":[[1800,775.67],[1820,775.67],[1950,1320.46],[1970,2079.72],[1971,2231.37],[1972,2404.58],[1973,2622.9],[1974,2805.2],[1975,2911.44],[1976,3209.18],[1977,3439.56],[1978,3766.12],[1979,3877.83],[1980,3865.76],[1981,3862.08],[1982,3872.36],[1983,3816.39],[1984,3917.98],[1985,4099.47],[1986,4491.84],[1987,4947.83],[1988,5135.84],[1989,5504.78],[1990,5839.92],[1991,6057.94],[1992,6098.92],[1993,5978.42],[1994,6130.94],[1995,6279.52],[1996,6430.85],[1997,6690.02],[1998,7565.56],[1999,8137.77],[2000,8655.03],[2001,8320.16],[2002,8365.59],[2003,8862.07],[2004,8276.23],[2005,9128],[2006,8913.55],[2007,9353.93],[2008,9558.52],[2009,8826.9]],"population":[[1800,29409],[1820,29409],[1851,33000],[1861,32000],[1871,38000],[1881,42000],[1891,53000],[1901,63000],[1911,67000],[1921,66000],[1946,72000],[1950,75806],[1951,76969],[1952,78339],[1953,80254],[1954,82525],[1955,84621],[1956,85809],[1957,87086],[1958,88359],[1959,89239],[1960,90148],[1961,90865],[1962,91449],[1963,92076],[1964,92767],[1965,93290],[1966,93579],[1967,93879],[1968,94349],[1969,94867],[1970,95410],[1971,96034],[1972,96618],[1973,96857],[1974,96340],[1975,95819],[1976,95555],[1977,94280],[1978,92535],[1979,91354],[1980,90164],[1981,92354],[1982,92112],[1983,91899],[1984,91905],[1985,92203],[1986,92576],[1987,92719],[1988,92805],[1989,92825],[1990,92360],[1991,91837],[1992,91487],[1993,90904],[1994,90591],[1995,90603],[1996,90371],[1997,90005],[1998,89700],[1999,89470],[2000,89312],[2001,89227],[2002,89211],[2003,89258],[2004,89357],[2005,89502],[2006,89703],[2007,89971],[2008,90303]],"lifeExpectancy":[[1950,62.44],[1951,62.49],[1952,62.58],[1953,62.68],[1954,62.78],[1955,62.87],[1956,62.97],[1957,63.07],[1958,63.16],[1959,63.26],[1960,63.36],[1961,63.46],[1962,63.56],[1963,63.66],[1964,63.75],[1965,63.85],[1966,63.95],[1967,64.04],[1968,64.14],[1969,64.24],[1970,64.34],[1971,64.43],[1972,64.53],[1973,64.62],[1974,64.72],[1975,64.8],[1976,64.88],[1977,64.95],[1978,65.01],[1979,65.07],[1980,65.16],[1981,65.27],[1982,65.42],[1983,65.62],[1984,65.88],[1985,66.22],[1986,66.65],[1987,67.16],[1988,67.75],[1989,68.38],[1990,69.04],[1991,69.7],[1992,70.31],[1993,70.87],[1994,71.37],[1995,71.8],[1996,72.18],[1997,72.53],[1998,72.87],[1999,73.2],[2000,73.53],[2001,73.86],[2002,74.15],[2003,74.43],[2004,74.67],[2005,74.89],[2006,75.09],[2007,75.28],[2008,75.45],[2009,75.62]]},{"name":"Guadeloupe","region":"America","income":[[1800,760.98],[1820,760.98],[1913,1404.04],[1950,2426.2],[1973,3896.92],[1990,3510.82],[2001,6697.88],[2002,6987.87],[2003,6810.68],[2004,7416.83],[2005,7788.25]],"population":[[1800,80726],[1820,80726],[1950,208080],[1951,212927],[1952,218011],[1953,223303],[1954,229120],[1955,235385],[1956,242078],[1957,248602],[1958,255124],[1959,261974],[1960,268888],[1961,275714],[1962,282625],[1963,289527],[1964,295823],[1965,301565],[1966,306983],[1967,311603],[1968,315392],[1969,318493],[1970,320657],[1971,323709],[1972,326841],[1973,329477],[1974,331634],[1975,333418],[1976,334454],[1977,334846],[1978,335118],[1979,335616],[1980,336846],[1981,338693],[1982,340813],[1983,345275],[1984,349721],[1985,354125],[1986,358368],[1987,362691],[1988,367386],[1989,372445],[1990,377678],[1991,382946],[1992,388102],[1993,392897],[1994,397585],[1995,402359],[1996,407191],[1997,412050],[1998,416906],[1999,421729],[2000,426493],[2001,431170],[2002,435739],[2003,440189],[2004,444515],[2005,448713],[2006,452776],[2007,456698],[2008,460486]],"lifeExpectancy":[[1950,54.06],[1951,54.72],[1952,55.99],[1953,57.18],[1954,58.31],[1955,59.36],[1956,60.33],[1957,61.22],[1958,62.03],[1959,62.76],[1960,63.4],[1961,63.94],[1962,64.39],[1963,64.75],[1964,65.05],[1965,65.31],[1966,65.55],[1967,65.8],[1968,66.07],[1969,66.38],[1970,66.72],[1971,67.11],[1972,67.51],[1973,67.92],[1974,68.33],[1975,68.76],[1976,69.21],[1977,69.69],[1978,70.21],[1979,70.74],[1980,71.26],[1981,71.74],[1982,72.17],[1983,72.53],[1984,72.82],[1985,73.08],[1986,73.32],[1987,73.59],[1988,73.91],[1989,74.28],[1990,74.69],[1991,75.12],[1992,75.55],[1993,75.95],[1994,76.31],[1995,76.63],[1996,76.91],[1997,77.17],[1998,77.41],[1999,77.64],[2000,77.87],[2001,78.08],[2002,78.27],[2003,78.44],[2004,78.6],[2005,78.75],[2006,78.88],[2007,79.01],[2008,79.15],[2009,79.28]]},{"name":"Guatemala","region":"America","income":[[1800,682.75],[1820,682.75],[1920,1517.05],[1921,1648.07],[1922,1539.52],[1923,1675.57],[1924,1793.08],[1925,1740.93],[1926,1740.36],[1927,1835.3],[1928,1856.8],[1929,2051.3],[1930,2117.3],[1931,1932.03],[1932,1645.48],[1933,1618.64],[1934,1802.56],[1935,2041.34],[1936,2748.75],[1937,2630.51],[1938,2651.84],[1939,2929.14],[1940,3269.57],[1941,3368.07],[1942,3337.88],[1943,2187.38],[1944,2076.27],[1945,2065],[1946,2387.43],[1947,2354.88],[1948,2370.12],[1949,2516.51],[1950,2485.79],[1951,2448.64],[1952,2428.24],[1953,2445.13],[1954,2419.2],[1955,2407.56],[1956,2550.95],[1957,2617.16],[1958,2660.06],[1959,2710.41],[1960,2696.63],[1961,2733.06],[1962,2750.36],[1963,2928.41],[1964,2978.56],[1965,3055.2],[1966,3169.15],[1967,3242.53],[1968,3466.05],[1969,3565.7],[1970,3700.25],[1971,3831.07],[1972,4031.41],[1973,4218.99],[1974,4397.54],[1975,4392.23],[1976,4621.21],[1977,4879.99],[1978,5018.99],[1979,5150.05],[1980,5236.1],[1981,5147.5],[1982,4820.49],[1983,4587.98],[1984,4488.18],[1985,4337.45],[1986,4220.98],[1987,4246.49],[1988,4284.96],[1989,4324.88],[1990,4328.93],[1991,4358.67],[1992,4439.45],[1993,4483.12],[1994,4531.75],[1995,4622.17],[1996,4627.13],[1997,4684.31],[1998,4790.14],[1999,4840.46],[2000,4884.72],[2001,4872.04],[2002,4858.35],[2003,4840.72],[2004,4858.11],[2005,4897],[2006,5035.14],[2007,5222.58],[2008,5261.46],[2009,5163.22]],"population":[[1820,595000],[1850,850000],[1870,1080000],[1900,1300000],[1901,1313000],[1902,1327000],[1903,1341000],[1904,1355000],[1905,1369000],[1906,1383000],[1907,1397000],[1908,1412000],[1909,1426000],[1910,1441000],[1911,1456000],[1912,1470000],[1913,1486000],[1914,1501000],[1915,1517000],[1916,1533000],[1917,1549000],[1918,1565000],[1919,1581000],[1920,1597000],[1921,1614000],[1922,1631000],[1923,1648000],[1924,1665000],[1925,1682000],[1926,1699000],[1927,1717000],[1928,1735000],[1929,1753000],[1930,1771000],[1931,1810000],[1932,1860000],[1933,1910000],[1934,1940000],[1935,1980000],[1936,2020000],[1937,2070000],[1938,2110000],[1939,2150000],[1940,2200000],[1941,2250000],[1942,2300000],[1943,2340000],[1944,2390000],[1945,2440000],[1946,2500000],[1947,2570000],[1948,2640000],[1949,2720000],[1950,2968976],[1951,3056382],[1952,3146381],[1953,3239239],[1954,3335063],[1955,3433887],[1956,3535792],[1957,3640876],[1958,3749336],[1959,3861360],[1960,3975707],[1961,4091112],[1962,4208858],[1963,4329980],[1964,4454413],[1965,4531949],[1966,4610525],[1967,4690773],[1968,4773538],[1969,4859160],[1970,4950548],[1971,5048218],[1972,5149581],[1973,5254378],[1974,5362594],[1975,5473584],[1976,5586789],[1977,5703430],[1978,5822706],[1979,5942151],[1980,6064228],[1981,6208454],[1982,6395630],[1983,6546945],[1984,6726525],[1985,6917947],[1986,7117868],[1987,7326406],[1988,7543322],[1989,7768407],[1990,8001019],[1991,8240499],[1992,8486949],[1993,8740433],[1994,9001037],[1995,9266312],[1996,9533880],[1997,9803875],[1998,10076122],[1999,10350211],[2000,10625732],[2001,10902031],[2002,11178650],[2003,11456063],[2004,11734580],[2005,12013907],[2006,12293545],[2007,12572928],[2008,12851647]],"lifeExpectancy":[[1800,25.8],[1921,25.82],[1934,25.8],[1940,30.35],[1950,41.36],[1951,41.52],[1952,41.84],[1953,42.19],[1954,42.58],[1955,43],[1956,43.45],[1957,43.93],[1958,44.44],[1959,44.98],[1960,45.53],[1961,46.11],[1962,46.69],[1963,47.28],[1964,47.89],[1965,48.51],[1966,49.16],[1967,49.85],[1968,50.57],[1969,51.31],[1970,52.05],[1971,52.77],[1972,53.45],[1973,54.07],[1974,54.63],[1975,55.13],[1976,55.58],[1977,55.99],[1978,56.39],[1979,56.79],[1980,57.2],[1981,57.64],[1982,58.09],[1983,58.56],[1984,59.06],[1985,59.57],[1986,60.1],[1987,60.64],[1988,61.17],[1989,61.71],[1990,62.24],[1991,62.77],[1992,63.31],[1993,63.86],[1994,64.41],[1995,64.97],[1996,65.53],[1997,66.1],[1998,66.66],[1999,67.22],[2000,67.74],[2001,68.22],[2002,68.66],[2003,69.04],[2004,69.36],[2005,69.64],[2006,69.88],[2007,70.11],[2008,70.33],[2009,70.55]]},{"name":"Guyana","region":"America","income":[[1800,910.69],[1820,910.69],[1913,1680.26],[1950,2903.52],[1960,2197.3],[1961,2236.82],[1962,2202.78],[1963,1884.75],[1964,2049.28],[1965,2213.57],[1966,2277.62],[1967,2325.09],[1968,2302.61],[1969,2421.63],[1970,2489.76],[1971,2540.96],[1972,2439.15],[1973,2456.52],[1974,2632.25],[1975,2838.12],[1976,2859.95],[1977,2760.81],[1978,2688.04],[1979,2620.32],[1980,2653.79],[1981,2688.36],[1982,2334.36],[1983,2180.61],[1984,2078.81],[1985,2139.35],[1986,2133.58],[1987,2169.07],[1988,2104.87],[1989,2013.1],[1990,1959],[1991,2077.16],[1992,2234.65],[1993,2408.93],[1994,2604.9],[1995,2729.15],[1996,2944.07],[1997,3131.96],[1998,3085.38],[1999,3182.97],[2000,3141.35],[2001,3209.76],[2002,3237.95],[2003,3198.6],[2004,3298.36],[2005,3232],[2006,3386.17],[2007,3613.42],[2008,3667.37],[2009,3776.95]],"population":[[1800,166034],[1820,166034],[1950,427971],[1951,439062],[1952,451430],[1953,464323],[1954,477498],[1955,491180],[1956,505229],[1957,520286],[1958,536776],[1959,554471],[1960,571083],[1961,584710],[1962,597896],[1963,612069],[1964,626389],[1965,640316],[1966,656528],[1967,672848],[1968,687477],[1969,701552],[1970,714811],[1971,728990],[1972,742869],[1973,755324],[1974,765282],[1975,767977],[1976,763718],[1977,758334],[1978,755889],[1979,757400],[1980,759352],[1981,761204],[1982,761673],[1983,760529],[1984,759690],[1985,758329],[1986,756887],[1987,755464],[1988,754045],[1989,752537],[1990,750903],[1991,748816],[1992,747460],[1993,747337],[1994,747536],[1995,747929],[1996,747171],[1997,746336],[1998,748211],[1999,752105],[2000,755171],[2001,757092],[2002,759104],[2003,761181],[2004,763251],[2005,765283],[2006,767245],[2007,769095],[2008,770794]],"lifeExpectancy":[[1800,31.12],[1911,31.12],[1921,34.62],[1930,41.42],[1946,50.65],[1950,51.32],[1951,51.57],[1952,52.06],[1953,52.56],[1954,53.06],[1955,53.56],[1956,54.07],[1957,54.59],[1958,55.1],[1959,55.61],[1960,56.12],[1961,56.62],[1962,57.1],[1963,57.56],[1964,57.99],[1965,58.39],[1966,58.73],[1967,59.03],[1968,59.28],[1969,59.49],[1970,59.67],[1971,59.82],[1972,59.95],[1973,60.08],[1974,60.21],[1975,60.34],[1976,60.46],[1977,60.57],[1978,60.66],[1979,60.73],[1980,60.8],[1981,60.88],[1982,60.97],[1983,61.08],[1984,61.21],[1985,61.36],[1986,61.53],[1987,61.7],[1988,61.87],[1989,62.02],[1990,62.15],[1991,62.25],[1992,62.31],[1993,62.34],[1994,62.35],[1995,62.37],[1996,62.41],[1997,62.5],[1998,62.66],[1999,62.88],[2000,63.18],[2001,63.55],[2002,63.99],[2003,64.46],[2004,64.96],[2005,65.47],[2006,65.98],[2007,66.48],[2008,66.97],[2009,67.43]]},{"name":"Haiti","region":"America","income":[[1800,503.81],[1820,503.81],[1945,1764.26],[1946,1759.43],[1947,1769.37],[1948,1766.79],[1949,1765.92],[1950,1774.19],[1951,1771.24],[1952,1840.37],[1953,1751.26],[1954,1861.11],[1955,1754.02],[1956,1871.58],[1957,1726.89],[1958,1827.63],[1959,1707.09],[1960,1780.91],[1961,1673.93],[1962,1796.59],[1963,1644.38],[1964,1572.87],[1965,1556.3],[1966,1514.23],[1967,1452.06],[1968,1477.58],[1969,1493.51],[1970,1530.69],[1971,1613.19],[1972,1654.46],[1973,1712.59],[1974,1804.06],[1975,1747],[1976,1880.97],[1977,1874.3],[1978,1947.74],[1979,2071.78],[1980,2212.9],[1981,2118.88],[1982,2011.16],[1983,1988.46],[1984,1954.71],[1985,1918.55],[1986,1876.28],[1987,1823.02],[1988,1798.56],[1989,1779.9],[1990,1742.99],[1991,1716.39],[1992,1456.31],[1993,1398.46],[1994,1259.94],[1995,1299.75],[1996,1329.43],[1997,1341.73],[1998,1346.85],[1999,1358.24],[2000,1344.49],[2001,1303.77],[2002,1270.36],[2003,1249.95],[2004,1180.25],[2005,1175],[2006,1179.62],[2007,1197],[2008,1185.24],[2009,1198.05]],"population":[[1800,723000],[1820,723000],[1850,938000],[1870,1150000],[1900,1560000],[1901,1583000],[1902,1607000],[1903,1631000],[1904,1655000],[1905,1680000],[1906,1705000],[1907,1730000],[1908,1756000],[1909,1782000],[1910,1809000],[1911,1836000],[1912,1863000],[1913,1891000],[1914,1923000],[1915,1955000],[1916,1988000],[1917,2021000],[1918,2055000],[1919,2089000],[1920,2124000],[1921,2152000],[1922,2181000],[1923,2209000],[1924,2239000],[1925,2268000],[1926,2298000],[1927,2328000],[1928,2359000],[1929,2390000],[1930,2422000],[1931,2453000],[1932,2485000],[1933,2517000],[1934,2549000],[1935,2582000],[1936,2615000],[1937,2648000],[1938,2682000],[1939,2716000],[1940,2751000],[1941,2786000],[1942,2820000],[1943,2856000],[1944,2892000],[1945,2928000],[1946,2961000],[1947,2994000],[1948,3028000],[1949,3062000],[1950,3097220],[1951,3148152],[1952,3201488],[1953,3257356],[1954,3315524],[1955,3376419],[1956,3441339],[1957,3507701],[1958,3576772],[1959,3648298],[1960,3722743],[1961,3800257],[1962,3880130],[1963,3964060],[1964,4049805],[1965,4137405],[1966,4226710],[1967,4318137],[1968,4411541],[1969,4506965],[1970,4604915],[1971,4653084],[1972,4698301],[1973,4742929],[1974,4787018],[1975,4828338],[1976,4867802],[1977,4908554],[1978,4950634],[1979,4994123],[1980,5029725],[1981,5108660],[1982,5198399],[1983,5297652],[1984,5404670],[1985,5517977],[1986,5635089],[1987,5756203],[1988,5880465],[1989,6004762],[1990,6126101],[1991,6226921],[1992,6326682],[1993,6443498],[1994,6558149],[1995,6675578],[1996,6794575],[1997,6913545],[1998,7038935],[1999,7167662],[2000,7306302],[2001,7454154],[2002,7607651],[2003,7771090],[2004,7942419],[2005,8121622],[2006,8308504],[2007,8502814],[2008,8704413]],"lifeExpectancy":[[1950,36.27],[1951,36.6],[1952,37.26],[1953,37.91],[1954,38.55],[1955,39.17],[1956,39.79],[1957,40.4],[1958,41],[1959,41.59],[1960,42.18],[1961,42.76],[1962,43.33],[1963,43.9],[1964,44.46],[1965,45],[1966,45.51],[1967,45.99],[1968,46.43],[1969,46.83],[1970,47.2],[1971,47.56],[1972,47.92],[1973,48.28],[1974,48.65],[1975,49.02],[1976,49.38],[1977,49.72],[1978,50.04],[1979,50.34],[1980,50.63],[1981,50.93],[1982,51.25],[1983,51.61],[1984,52.01],[1985,52.45],[1986,52.93],[1987,53.42],[1988,53.93],[1989,54.44],[1990,54.95],[1991,55.46],[1992,55.98],[1993,56.51],[1994,57.02],[1995,57.5],[1996,57.93],[1997,58.31],[1998,58.63],[1999,58.9],[2000,59.12],[2001,59.34],[2002,59.57],[2003,59.82],[2004,60.11],[2005,60.41],[2006,60.72],[2007,61.01],[2008,61.26],[2009,61.48]]},{"name":"Honduras","region":"America","income":[[1800,583.8],[1820,583.8],[1920,2061.23],[1921,2027.39],[1922,2118.65],[1923,2027.06],[1924,1847.36],[1925,2151.54],[1926,2096.58],[1927,2276.69],[1928,2504.1],[1929,2425.88],[1930,2529.84],[1931,2531.07],[1932,2221.64],[1933,2043.05],[1934,1959.55],[1935,1836.28],[1936,1833.69],[1937,1720.31],[1938,1787.61],[1939,1804.82],[1940,1877.36],[1941,1841.12],[1942,1641.34],[1943,1630.45],[1944,1627.55],[1945,1972.92],[1946,2073.83],[1947,2157.89],[1948,2154.29],[1949,2121.4],[1950,2125.56],[1951,2175.9],[1952,2194.93],[1953,2299.86],[1954,2103.69],[1955,2092.37],[1956,2191.2],[1957,2220.49],[1958,2217.79],[1959,2201.34],[1960,2262.22],[1961,2243.2],[1962,2291.16],[1963,2293.2],[1964,2326.64],[1965,2438.23],[1966,2489.67],[1967,2538.27],[1968,2594.6],[1969,2523.46],[1970,2518.49],[1971,2528.59],[1972,2529.84],[1973,2558.71],[1974,2824.6],[1975,2802.95],[1976,2994.99],[1977,3203.21],[1978,3403.51],[1979,3443.47],[1980,3336.79],[1981,3287.52],[1982,3121.76],[1983,2997.61],[1984,3009.41],[1985,3033.15],[1986,2952.67],[1987,3023.1],[1988,3073.17],[1989,3092.5],[1990,3004.97],[1991,2999.13],[1992,3081.69],[1993,3204.57],[1994,3052.26],[1995,3073.89],[1996,3094.71],[1997,3160.45],[1998,3168.46],[1999,3028.73],[2000,3093.71],[2001,3093.68],[2002,3099.73],[2003,3129.92],[2004,3209.35],[2005,3266],[2006,3412.03],[2007,3549.04],[2008,3615.09],[2009,3473.46]],"population":[[1801,130000],[1820,135000],[1850,350000],[1870,404000],[1900,500000],[1901,511000],[1902,522000],[1903,533000],[1904,545000],[1905,556000],[1906,568000],[1907,581000],[1908,593000],[1909,606000],[1910,619000],[1911,632000],[1912,646000],[1913,660000],[1914,668000],[1915,677000],[1916,685000],[1917,694000],[1918,702000],[1919,711000],[1920,720000],[1921,740000],[1922,770000],[1923,800000],[1924,820000],[1925,850000],[1926,880000],[1927,890000],[1928,910000],[1929,930000],[1930,950000],[1931,970000],[1932,990000],[1933,1010000],[1934,1020000],[1935,1040000],[1936,1060000],[1937,1080000],[1938,1100000],[1939,1120000],[1940,1150000],[1941,1170000],[1942,1200000],[1943,1210000],[1944,1240000],[1945,1260000],[1946,1290000],[1947,1320000],[1948,1350000],[1949,1390000],[1950,1431447],[1951,1474191],[1952,1517453],[1953,1562218],[1954,1610959],[1955,1662219],[1956,1715023],[1957,1770390],[1958,1828733],[1959,1888715],[1960,1951640],[1961,2018693],[1962,2090162],[1963,2165930],[1964,2246099],[1965,2329159],[1966,2413644],[1967,2500689],[1968,2591112],[1969,2685322],[1970,2760666],[1971,2855882],[1972,2965146],[1973,3077805],[1974,2765159],[1975,2857540],[1976,2954226],[1977,3055235],[1978,3167869],[1979,3278690],[1980,3401940],[1981,3542519],[1982,3669448],[1983,3795505],[1984,3932288],[1985,4076514],[1986,4225991],[1987,4372203],[1988,4513723],[1989,4654540],[1990,4792271],[1991,4931117],[1992,5077347],[1993,5229618],[1994,5386133],[1995,5546185],[1996,5707074],[1997,5867957],[1998,6022706],[1999,6180871],[2000,6347658],[2001,6513048],[2002,6677328],[2003,6843018],[2004,7007482],[2005,7167902],[2006,7326496],[2007,7483763],[2008,7639327]],"lifeExpectancy":[[1800,33.9],[1930,33.9],[1950,40.94],[1951,41.15],[1952,41.59],[1953,42.07],[1954,42.58],[1955,43.13],[1956,43.71],[1957,44.33],[1958,44.97],[1959,45.63],[1960,46.3],[1961,46.97],[1962,47.64],[1963,48.29],[1964,48.92],[1965,49.52],[1966,50.11],[1967,50.68],[1968,51.26],[1969,51.84],[1970,52.43],[1971,53.04],[1972,53.67],[1973,54.32],[1974,54.99],[1975,55.69],[1976,56.41],[1977,57.15],[1978,57.9],[1979,58.66],[1980,59.44],[1981,60.22],[1982,61.02],[1983,61.82],[1984,62.62],[1985,63.39],[1986,64.12],[1987,64.78],[1988,65.38],[1989,65.91],[1990,66.38],[1991,66.82],[1992,67.24],[1993,67.67],[1994,68.09],[1995,68.52],[1996,68.94],[1997,69.33],[1998,69.69],[1999,70.01],[2000,70.29],[2001,70.56],[2002,70.8],[2003,71.04],[2004,71.28],[2005,71.52],[2006,71.75],[2007,71.98],[2008,72.2],[2009,72.41]]},{"name":"Jamaica","region":"America","income":[[1800,1350.4],[1820,1350.4],[1850,1048.06],[1870,1031.12],[1913,1171.9],[1938,1874.05],[1942,1870.22],[1943,2215.6],[1946,3178.64],[1947,2914.58],[1950,2556.82],[1951,2721.41],[1952,2898.53],[1953,3258.81],[1954,3580.81],[1955,3893.49],[1956,4220.5],[1957,4756.53],[1958,4737.22],[1959,4897.48],[1960,5113.57],[1961,5207.34],[1962,5246.11],[1963,5312.99],[1964,5596.18],[1965,5915.47],[1966,6029.79],[1967,6124.7],[1968,6328.34],[1969,6706.97],[1970,7416.69],[1971,7329.12],[1972,7433.89],[1973,7959.55],[1974,7531.91],[1975,7409.37],[1976,6867.75],[1977,6650.2],[1978,6628.02],[1979,6428.41],[1980,6015.19],[1981,6094.31],[1982,6068.05],[1983,6186.72],[1984,6116.87],[1985,5820.33],[1986,5905.2],[1987,6351.24],[1988,6524.14],[1989,6948.14],[1990,7296.54],[1991,7285.44],[1992,7404.92],[1993,7447.48],[1994,7497.59],[1995,7524.48],[1996,7316.26],[1997,7121.92],[1998,7012.28],[1999,6928.82],[2000,6934.03],[2001,6987.81],[2002,6994.77],[2003,7092.05],[2004,7093.44],[2005,7132],[2006,7291.22],[2007,7365.48],[2008,7261.39],[2009,7023.74]],"population":[[1800,401000],[1820,401000],[1850,399000],[1870,499000],[1900,720000],[1901,728000],[1902,737000],[1903,745000],[1904,754000],[1905,763000],[1906,772000],[1907,781000],[1908,790000],[1909,799000],[1910,808000],[1911,818000],[1912,827000],[1913,837000],[1914,840000],[1915,842000],[1916,845000],[1917,847000],[1918,850000],[1919,852000],[1920,855000],[1921,860000],[1922,879000],[1923,891000],[1924,900000],[1925,910000],[1926,930000],[1927,946000],[1928,966000],[1929,985000],[1930,1009000],[1931,1039000],[1932,1061000],[1933,1082000],[1934,1098000],[1935,1113000],[1936,1130000],[1937,1142000],[1938,1163000],[1939,1191000],[1940,1212000],[1941,1230000],[1942,1254000],[1943,1249000],[1944,1259000],[1945,1266000],[1946,1298000],[1947,1327000],[1948,1350000],[1949,1374000],[1950,1384550],[1951,1405615],[1952,1426095],[1953,1446425],[1954,1467585],[1955,1488805],[1956,1509975],[1957,1535090],[1958,1565755],[1959,1599115],[1960,1631784],[1961,1647918],[1962,1665128],[1963,1697847],[1964,1738997],[1965,1777397],[1966,1820082],[1967,1861096],[1968,1893477],[1969,1919615],[1970,1943787],[1971,1967012],[1972,1997616],[1973,2036377],[1974,2071146],[1975,2104879],[1976,2133388],[1977,2156814],[1978,2179441],[1979,2207245],[1980,2228803],[1981,2258368],[1982,2298309],[1983,2306556],[1984,2313362],[1985,2318652],[1986,2323182],[1987,2326606],[1988,2330226],[1989,2337517],[1990,2347922],[1991,2358643],[1992,2378618],[1993,2407463],[1994,2436866],[1995,2469389],[1996,2501477],[1997,2531311],[1998,2560447],[1999,2588786],[2000,2615467],[2001,2640289],[2002,2664659],[2003,2688706],[2004,2712355],[2005,2735520],[2006,2758124],[2007,2780132],[2008,2801544]],"lifeExpectancy":[[1800,34.2],[1881,34.2],[1882,40.1],[1883,38.1],[1884,37.2],[1885,37.8],[1886,36.9],[1887,35.5],[1888,38.6],[1889,37.6],[1890,34.3],[1891,37.3],[1892,39.2],[1893,38.6],[1894,39],[1895,37.4],[1896,37.6],[1897,37],[1898,39.1],[1899,37.6],[1900,37.8],[1901,38.1],[1902,40.4],[1903,34.6],[1904,33.6],[1905,37.6],[1906,32.4],[1907,29.5],[1908,36.8],[1909,37.3],[1910,36.7],[1911,37.9],[1912,34.4],[1913,37.5],[1914,38.2],[1915,37],[1916,35.6],[1917,31.7],[1918,26.4],[1919,36.6],[1920,35.4],[1921,30.7],[1922,37],[1923,38],[1924,38.6],[1925,38.9],[1926,40.7],[1927,39.4],[1928,41.6],[1929,43],[1930,45.3],[1931,42.7],[1932,44.2],[1933,41.6],[1934,44.4],[1935,44],[1936,44.4],[1937,47.2],[1938,45.9],[1939,48.5],[1940,47.6],[1941,49.4],[1942,49.8],[1943,50.3],[1944,49.1],[1945,49.1],[1946,51.4],[1947,50.4],[1948,51.7],[1949,53.9],[1950,56.65],[1951,57.14],[1952,58.1],[1953,59.02],[1954,59.9],[1955,60.74],[1956,61.54],[1957,62.29],[1958,63],[1959,63.66],[1960,64.28],[1961,64.85],[1962,65.38],[1963,65.85],[1964,66.28],[1965,66.68],[1966,67.05],[1967,67.39],[1968,67.71],[1969,68.02],[1970,68.32],[1971,68.61],[1972,68.89],[1973,69.16],[1974,69.41],[1975,69.64],[1976,69.84],[1977,70.02],[1978,70.16],[1979,70.28],[1980,70.38],[1981,70.47],[1982,70.54],[1983,70.62],[1984,70.7],[1985,70.78],[1986,70.87],[1987,70.96],[1988,71.04],[1989,71.12],[1990,71.18],[1991,71.24],[1992,71.28],[1993,71.31],[1994,71.32],[1995,71.31],[1996,71.28],[1997,71.23],[1998,71.16],[1999,71.08],[2000,71.02],[2001,70.98],[2002,70.98],[2003,71.03],[2004,71.13],[2005,71.28],[2006,71.46],[2007,71.68],[2008,71.89],[2009,72.11]]},{"name":"Martinique","region":"America","income":[[1800,944.05],[1820,944.05],[1913,1741.82],[1950,3009.89],[1973,10528.11],[1990,11068.35],[2001,13040.82],[2002,13561.81],[2003,13247.9],[2004,13925.33],[2005,14627.13]],"population":[[1800,84039],[1820,84039],[1950,216618],[1951,221631],[1952,226688],[1953,232524],[1954,239131],[1955,245815],[1956,252779],[1957,260147],[1958,267402],[1959,274591],[1960,281802],[1961,288810],[1962,295486],[1963,301371],[1964,306529],[1965,311445],[1966,315759],[1967,319163],[1968,322092],[1969,324121],[1970,325484],[1971,327676],[1972,330290],[1973,332137],[1974,333474],[1975,334654],[1976,335492],[1977,336148],[1978,336888],[1979,337943],[1980,339365],[1981,340940],[1982,342583],[1983,345978],[1984,349558],[1985,353188],[1986,356886],[1987,360841],[1988,365013],[1989,369305],[1990,373565],[1991,377676],[1992,381739],[1993,385826],[1994,389926],[1995,394021],[1996,398129],[1997,402265],[1998,406394],[1999,410487],[2000,414516],[2001,418454],[2002,422277],[2003,425966],[2004,429510],[2005,432900],[2006,436131],[2007,439202],[2008,442119]],"lifeExpectancy":[[1950,54.74],[1951,55.22],[1952,56.15],[1953,57.06],[1954,57.93],[1955,58.79],[1956,59.61],[1957,60.41],[1958,61.18],[1959,61.91],[1960,62.61],[1961,63.27],[1962,63.89],[1963,64.47],[1964,65.01],[1965,65.53],[1966,66.02],[1967,66.5],[1968,66.98],[1969,67.45],[1970,67.93],[1971,68.43],[1972,68.94],[1973,69.45],[1974,69.97],[1975,70.49],[1976,71],[1977,71.49],[1978,71.96],[1979,72.4],[1980,72.81],[1981,73.21],[1982,73.59],[1983,73.96],[1984,74.31],[1985,74.65],[1986,74.96],[1987,75.23],[1988,75.48],[1989,75.69],[1990,75.89],[1991,76.09],[1992,76.29],[1993,76.51],[1994,76.75],[1995,77],[1996,77.27],[1997,77.54],[1998,77.8],[1999,78.05],[2000,78.28],[2001,78.49],[2002,78.69],[2003,78.87],[2004,79.04],[2005,79.2],[2006,79.35],[2007,79.5],[2008,79.63],[2009,79.77]]},{"name":"Mexico","region":"America","income":[[1800,1053.6],[1820,1105.63],[1870,981.78],[1890,1472.82],[1895,1649.1],[1896,1675.45],[1897,1762.72],[1898,1838.1],[1899,1721.61],[1900,1709.31],[1901,1837.59],[1902,1686.64],[1903,1857.23],[1904,1869.64],[1905,2043.53],[1906,1998.24],[1907,2093.88],[1908,2067.87],[1909,2106.18],[1910,2102.03],[1911,2017.76],[1912,2000.96],[1913,1880.29],[1914,1883.54],[1915,1856.03],[1916,1999.11],[1917,2084.7],[1918,2165.95],[1919,2252.31],[1920,2395.46],[1921,2386.88],[1922,2404.07],[1923,2447.87],[1924,2368.93],[1925,2477.54],[1926,2586.29],[1927,2430.9],[1928,2406.84],[1929,2274.99],[1930,2095.67],[1931,2128.79],[1932,1774.36],[1933,1944.06],[1934,2041.55],[1935,2157.92],[1936,2292.82],[1937,2328.97],[1938,2326.41],[1939,2411.19],[1940,2402.91],[1941,2570.67],[1942,2644.12],[1943,2669.16],[1944,2813.56],[1945,2824.38],[1946,2932.21],[1947,2952.46],[1948,2992.76],[1949,3074.34],[1950,3293.78],[1951,3447.11],[1952,3478.13],[1953,3380.66],[1954,3614.58],[1955,3810.53],[1956,3953.72],[1957,4131.55],[1958,4224.17],[1959,4220.45],[1960,4433.09],[1961,4512.03],[1962,4581.61],[1963,4803.87],[1964,5213.6],[1965,5384.97],[1966,5584.87],[1967,5754.73],[1968,6036.64],[1969,6222.44],[1970,6450.93],[1971,6486.92],[1972,6809.41],[1973,7130.34],[1974,7322.16],[1975,7519.08],[1976,7630.74],[1977,7674.93],[1978,8156.87],[1979,8734.87],[1980,9319.56],[1981,9890.22],[1982,9611.15],[1983,9063.14],[1984,9177.23],[1985,9184.99],[1986,8713.36],[1987,8688.16],[1988,8628.26],[1989,8815.27],[1990,9103.39],[1991,9315.66],[1992,9472.38],[1993,9482.49],[1994,9733.59],[1995,8954.52],[1996,9274.7],[1997,9767.3],[1998,10108.77],[1999,10358.8],[2000,10894.51],[2001,10763.08],[2002,10742.44],[2003,10778.21],[2004,11118.69],[2005,11317],[2006,11772.08],[2007,12057.97],[2008,12135.33],[2009,11250.37]],"population":[[1820,6587000],[1850,7662000],[1870,9219000],[1871,9331000],[1872,9444000],[1873,9558000],[1874,9674000],[1875,9791000],[1876,9910000],[1877,10030000],[1878,10151000],[1879,10274000],[1880,10399000],[1881,10524000],[1882,10652000],[1883,10781000],[1884,10912000],[1885,11044000],[1886,11178000],[1887,11313000],[1888,11450000],[1889,11589000],[1890,11729000],[1891,11904000],[1892,12083000],[1893,12263000],[1894,12447000],[1895,12663000],[1896,12822000],[1897,13014000],[1898,13209000],[1899,13406000],[1900,13607000],[1901,13755000],[1902,13904000],[1903,14055000],[1904,14208000],[1905,14363000],[1906,14519000],[1907,14676000],[1908,14836000],[1909,14997000],[1910,15000000],[1911,14990000],[1912,14980000],[1913,14970000],[1914,14960000],[1915,14950000],[1916,14940000],[1917,14930000],[1918,14920000],[1919,14910000],[1920,14900000],[1921,14895000],[1922,15129000],[1923,15367000],[1924,15609000],[1925,15854000],[1926,16103000],[1927,16356000],[1928,16613000],[1929,16875000],[1930,17175000],[1931,17480000],[1932,17790000],[1933,18115000],[1934,18445000],[1935,18781000],[1936,19040000],[1937,19370000],[1938,19705000],[1939,20047000],[1940,20393000],[1941,20955000],[1942,21532000],[1943,22125000],[1944,22734000],[1945,23724000],[1946,24413000],[1947,25122000],[1948,25852000],[1949,26603000],[1950,28485180],[1951,29296235],[1952,30144317],[1953,31031279],[1954,31959113],[1955,32929914],[1956,33945886],[1957,35015548],[1958,36141955],[1959,37328466],[1960,38578505],[1961,39836230],[1962,41121485],[1963,42434264],[1964,43774575],[1965,45142399],[1966,46537832],[1967,47995559],[1968,49518803],[1969,51110928],[1970,52775158],[1971,54406901],[1972,55984294],[1973,57557303],[1974,59122839],[1975,60678045],[1976,62219964],[1977,63759976],[1978,65295990],[1979,66825878],[1980,68347479],[1981,69969263],[1982,71640904],[1983,73362881],[1984,75080138],[1985,76767225],[1986,78442430],[1987,80122492],[1988,81781816],[1989,83366836],[1990,84913652],[1991,86488032],[1992,88111030],[1993,89749141],[1994,91337896],[1995,92880353],[1996,94398579],[1997,95895146],[1998,97325063],[1999,98616905],[2000,99926620],[2001,101246961],[2002,102479927],[2003,103718062],[2004,104959594],[2005,106202903],[2006,107449525],[2007,108700891],[2008,109955400]],"lifeExpectancy":[[1800,26.9],[1890,26.9],[1893,23.29],[1894,26.62],[1895,29.52],[1896,28.8],[1897,26.24],[1898,27.03],[1899,24.98],[1900,27.58],[1901,26.65],[1902,28.37],[1903,28.68],[1904,29.09],[1905,26.8],[1906,27.88],[1907,27.97],[1908,28.72],[1909,29.21],[1910,27.41],[1922,32.6],[1923,33.5],[1924,32.8],[1925,32.1],[1926,34.2],[1927,40.3],[1928,34.5],[1929,35.4],[1930,36.2],[1931,37.7],[1932,38.4],[1933,37.3],[1934,38.2],[1935,40.4],[1936,38.3],[1937,36.8],[1938,39.4],[1939,45.5],[1940,39.2],[1941,42.6],[1942,39.8],[1943,42.8],[1944,43.2],[1945,44.2],[1946,44.8],[1947,46.3],[1948,48.3],[1949,45.8],[1950,48.56],[1951,49.12],[1952,50.21],[1953,51.25],[1954,52.24],[1955,53.18],[1956,54.07],[1957,54.9],[1958,55.69],[1959,56.41],[1960,57.07],[1961,57.66],[1962,58.18],[1963,58.64],[1964,59.06],[1965,59.43],[1966,59.79],[1967,60.15],[1968,60.52],[1969,60.92],[1970,61.35],[1971,61.82],[1972,62.32],[1973,62.84],[1974,63.37],[1975,63.92],[1976,64.47],[1977,65.01],[1978,65.55],[1979,66.06],[1980,66.56],[1981,67.04],[1982,67.5],[1983,67.94],[1984,68.37],[1985,68.79],[1986,69.2],[1987,69.61],[1988,70],[1989,70.4],[1990,70.8],[1991,71.19],[1992,71.59],[1993,71.98],[1994,72.37],[1995,72.74],[1996,73.1],[1997,73.43],[1998,73.73],[1999,74.01],[2000,74.26],[2001,74.51],[2002,74.75],[2003,74.99],[2004,75.24],[2005,75.49],[2006,75.74],[2007,75.99],[2008,76.23],[2009,76.47]]},{"name":"Netherlands Antilles","region":"America","income":[[1800,698.1],[1820,698.1],[1913,1288.03],[1970,10117.71],[1971,10647.82],[1972,11045.68],[1973,11405.41],[1974,11939.92],[1975,12156.49],[1976,12814.81],[1977,17335.5],[1978,18336.29],[1979,19045.02],[1980,20507.69],[1981,20565.55],[1982,20008.69],[1983,19721.51],[1984,19180.39],[1985,18592.1],[1986,17385.59],[1987,17406.53],[1988,17486.37],[1989,18682.47],[1990,18834.43],[1991,19081.35],[1992,19633.02],[1993,20520.88],[1994,21690.98],[1995,22159.94],[1996,22681.57],[1997,23267.56],[1998,22901.65],[1999,22746.86],[2000,22284.26],[2001,22605.42],[2002,22596.6],[2003,22741.81],[2004,22761.26],[2005,22700.41],[2006,22795.7],[2007,23039.61],[2008,23178.37]],"population":[[1800,42536],[1820,42536],[1950,109641],[1951,112935],[1952,115318],[1953,117751],[1954,120236],[1955,122772],[1956,125362],[1957,128007],[1958,130708],[1959,133466],[1960,136282],[1961,136679],[1962,133959],[1963,141865],[1964,144450],[1965,146841],[1966,148637],[1967,150529],[1968,153117],[1969,155768],[1970,158355],[1971,161491],[1972,163778],[1973,165204],[1974,167205],[1975,168549],[1976,169591],[1977,170574],[1978,170743],[1979,171297],[1980,172534],[1981,174179],[1982,176526],[1983,178902],[1984,181168],[1985,182923],[1986,184328],[1987,185666],[1988,186689],[1989,187630],[1990,188788],[1991,190140],[1992,192002],[1993,194496],[1994,196793],[1995,198914],[1996,201239],[1997,203533],[1998,205785],[1999,207987],[2000,210134],[2001,212226],[2002,214258],[2003,216226],[2004,218126],[2005,219958],[2006,221736],[2007,223472],[2008,225168]],"lifeExpectancy":[[1950,58.45],[1951,59],[1952,60.04],[1953,61.01],[1954,61.91],[1955,62.72],[1956,63.46],[1957,64.11],[1958,64.7],[1959,65.22],[1960,65.68],[1961,66.09],[1962,66.46],[1963,66.8],[1964,67.13],[1965,67.46],[1966,67.81],[1967,68.17],[1968,68.55],[1969,68.94],[1970,69.35],[1971,69.76],[1972,70.17],[1973,70.56],[1974,70.94],[1975,71.3],[1976,71.65],[1977,72],[1978,72.34],[1979,72.68],[1980,73.01],[1981,73.33],[1982,73.61],[1983,73.86],[1984,74.08],[1985,74.25],[1986,74.38],[1987,74.46],[1988,74.51],[1989,74.53],[1990,74.53],[1991,74.52],[1992,74.49],[1993,74.47],[1994,74.45],[1995,74.46],[1996,74.5],[1997,74.57],[1998,74.67],[1999,74.79],[2000,74.95],[2001,75.11],[2002,75.29],[2003,75.47],[2004,75.63],[2005,75.79],[2006,75.94],[2007,76.09],[2008,76.23],[2009,76.38]]},{"name":"Nicaragua","region":"America","income":[[1800,726.97],[1820,726.97],[1920,2070.64],[1921,2149.99],[1922,1937.98],[1923,2074.07],[1924,2164.26],[1925,2390.12],[1926,2046.39],[1927,2056.17],[1928,2603.82],[1929,2866.65],[1930,2317.41],[1931,2136.64],[1932,1922.97],[1933,2384.59],[1934,2134.13],[1935,2109.32],[1936,1633.72],[1937,1725.31],[1938,1761.99],[1939,2107.27],[1940,2247.93],[1941,2429.83],[1942,2285.7],[1943,2449.68],[1944,2371.59],[1945,2330.71],[1946,2451.96],[1947,2383.58],[1948,2539.03],[1949,2420.55],[1950,2646.8],[1951,2742.44],[1952,3112.36],[1953,3092.08],[1954,3279.8],[1955,3393.42],[1956,3288.89],[1957,3457.42],[1958,3362.04],[1959,3307.13],[1960,3248.3],[1961,3382.87],[1962,3634.36],[1963,3902.48],[1964,4222.45],[1965,4478.93],[1966,4481.54],[1967,4643.39],[1968,4559.44],[1969,4709.94],[1970,4605.7],[1971,4678.35],[1972,4688.59],[1973,4785.64],[1974,5299.98],[1975,5125.38],[1976,5219.41],[1977,5486.37],[1978,4949.85],[1979,3524.06],[1980,3528.64],[1981,3594.8],[1982,3470.34],[1983,3551.18],[1984,3397.84],[1985,3185.74],[1986,3050.94],[1987,2955.98],[1988,2560.22],[1989,2457.13],[1990,2355.47],[1991,2234.44],[1992,2170.15],[1993,2097.6],[1994,2119.13],[1995,2153.69],[1996,2196.82],[1997,2253.02],[1998,2291.86],[1999,2678.53],[2000,2490.8],[2001,2511.22],[2002,2474.55],[2003,2484.75],[2004,2559.93],[2005,2611],[2006,2657.49],[2007,2675.66],[2008,2688.74],[2009,2591.39]],"population":[[1800,186000],[1820,186000],[1850,300000],[1870,337000],[1900,478000],[1901,485000],[1902,492000],[1903,499000],[1904,507000],[1905,514000],[1906,522000],[1907,529000],[1908,537000],[1909,545000],[1910,553000],[1911,561000],[1912,570000],[1913,578000],[1914,580000],[1915,595000],[1916,604000],[1917,613000],[1918,622000],[1919,631000],[1920,640000],[1921,640000],[1922,650000],[1923,650000],[1924,660000],[1925,660000],[1926,670000],[1927,670000],[1928,670000],[1929,680000],[1930,680000],[1931,690000],[1932,690000],[1933,700000],[1934,710000],[1935,730000],[1936,750000],[1937,770000],[1938,780000],[1939,810000],[1940,830000],[1941,840000],[1942,860000],[1943,880000],[1944,900000],[1945,920000],[1946,950000],[1947,980000],[1948,1000000],[1949,1030000],[1950,1097916],[1951,1131307],[1952,1165790],[1953,1201514],[1954,1238630],[1955,1277288],[1956,1317387],[1957,1358828],[1958,1401760],[1959,1446333],[1960,1492698],[1961,1540819],[1962,1590597],[1963,1642083],[1964,1695330],[1965,1750391],[1966,1807123],[1967,1865490],[1968,1925707],[1969,1987988],[1970,2052544],[1971,2120111],[1972,2182908],[1973,2247491],[1974,2319602],[1975,2394786],[1976,2473102],[1977,2554598],[1978,2609107],[1979,2689042],[1980,2805321],[1981,2901332],[1982,2979423],[1983,3048600],[1984,3121094],[1985,3190053],[1986,3262816],[1987,3344353],[1988,3433924],[1989,3530673],[1990,3683746],[1991,3871551],[1992,4017939],[1993,4140517],[1994,4262327],[1995,4382555],[1996,4498580],[1997,4609572],[1998,4717284],[1999,4824619],[2000,4932420],[2001,5039717],[2002,5146848],[2003,5253603],[2004,5359759],[2005,5465100],[2006,5570129],[2007,5675356],[2008,5780586]],"lifeExpectancy":[[1800,25.4],[1916,25.4],[1921,24.35],[1940,34.47],[1950,41.06],[1951,41.36],[1952,41.97],[1953,42.58],[1954,43.2],[1955,43.82],[1956,44.45],[1957,45.08],[1958,45.72],[1959,46.35],[1960,47],[1961,47.64],[1962,48.29],[1963,48.95],[1964,49.6],[1965,50.27],[1966,50.94],[1967,51.62],[1968,52.3],[1969,52.98],[1970,53.64],[1971,54.29],[1972,54.9],[1973,55.48],[1974,56.02],[1975,56.51],[1976,56.96],[1977,57.37],[1978,57.76],[1979,58.13],[1980,58.5],[1981,58.87],[1982,59.27],[1983,59.69],[1984,60.15],[1985,60.67],[1986,61.26],[1987,61.91],[1988,62.62],[1989,63.37],[1990,64.13],[1991,64.88],[1992,65.59],[1993,66.24],[1994,66.82],[1995,67.34],[1996,67.81],[1997,68.27],[1998,68.72],[1999,69.18],[2000,69.64],[2001,70.12],[2002,70.59],[2003,71.05],[2004,71.49],[2005,71.92],[2006,72.32],[2007,72.71],[2008,73.09],[2009,73.44]]},{"name":"Panama","region":"America","income":[[1800,686.66],[1820,686.66],[1945,2756.5],[1946,2811.71],[1947,2870.98],[1948,2641.44],[1949,2650.17],[1950,2500.03],[1951,2415.69],[1952,2480.38],[1953,2569.85],[1954,2600.24],[1955,2681.59],[1956,2750.55],[1957,2961.8],[1958,2924.12],[1959,3029.42],[1960,3119.95],[1961,3358.29],[1962,3536.54],[1963,3760.37],[1964,3810.21],[1965,4025.8],[1966,4200.79],[1967,4421.01],[1968,4607.85],[1969,4826.57],[1970,4976.35],[1971,5234.49],[1972,5364.25],[1973,5546.03],[1974,5521.94],[1975,5478.34],[1976,5437.09],[1977,5351.91],[1978,5773.1],[1979,5895.08],[1980,6643.42],[1981,6777.81],[1982,7009.6],[1983,6916.65],[1984,6746.94],[1985,6921.11],[1986,7003.71],[1987,7034.78],[1988,5821.91],[1989,5685.88],[1990,5834.2],[1991,6236.41],[1992,6618.74],[1993,6840.32],[1994,6922.27],[1995,6920.48],[1996,6951.6],[1997,7113.69],[1998,7255.6],[1999,7355.14],[2000,7405.97],[2001,7317.09],[2002,7356.03],[2003,7550.69],[2004,7986.1],[2005,8399],[2006,8960.44],[2007,9868.16],[2008,10733.83],[2009,10796.68]],"population":[[1800,78842],[1820,78842],[1850,135000],[1870,176000],[1900,263000],[1901,269000],[1902,275000],[1903,281000],[1904,287000],[1905,293000],[1906,299000],[1907,306000],[1908,312000],[1909,319000],[1910,326000],[1911,333000],[1912,341000],[1913,348000],[1914,365000],[1915,383000],[1916,402000],[1917,422000],[1918,442000],[1919,464000],[1920,487000],[1921,489000],[1922,491000],[1923,493000],[1924,495000],[1925,497000],[1926,499000],[1927,502000],[1928,504000],[1929,506000],[1930,515000],[1931,527000],[1932,543000],[1933,559000],[1934,576000],[1935,592000],[1936,608000],[1937,623000],[1938,640000],[1939,656000],[1940,697000],[1941,720000],[1942,773000],[1943,795000],[1944,784000],[1945,791000],[1946,788000],[1947,804000],[1948,822000],[1949,838000],[1950,892502],[1951,915560],[1952,940080],[1953,962188],[1954,985066],[1955,1010655],[1956,1036550],[1957,1063506],[1958,1085241],[1959,1115146],[1960,1147610],[1961,1181175],[1962,1215725],[1963,1251278],[1964,1287993],[1965,1325975],[1966,1365169],[1967,1405486],[1968,1446758],[1969,1488794],[1970,1531038],[1971,1573444],[1972,1616384],[1973,1659161],[1974,1706336],[1975,1747783],[1976,1789842],[1977,1839782],[1978,1872588],[1979,1914853],[1980,1956454],[1981,1995823],[1982,2036305],[1983,2077631],[1984,2120220],[1985,2164335],[1986,2209048],[1987,2253639],[1988,2298640],[1989,2344226],[1990,2390419],[1991,2437528],[1992,2484997],[1993,2531926],[1994,2579616],[1995,2629303],[1996,2680414],[1997,2734531],[1998,2788234],[1999,2838492],[2000,2889485],[2001,2941167],[2002,2990875],[2003,3039748],[2004,3089531],[2005,3140232],[2006,3191319],[2007,3242173],[2008,3292693]],"lifeExpectancy":[[1800,32.9],[1915,32.9],[1930,35.9],[1940,42.4],[1950,53.26],[1951,53.79],[1952,54.83],[1953,55.79],[1954,56.69],[1955,57.53],[1956,58.3],[1957,59.01],[1958,59.66],[1959,60.26],[1960,60.81],[1961,61.32],[1962,61.8],[1963,62.27],[1964,62.72],[1965,63.17],[1966,63.61],[1967,64.05],[1968,64.48],[1969,64.91],[1970,65.35],[1971,65.8],[1972,66.27],[1973,66.76],[1974,67.26],[1975,67.76],[1976,68.26],[1977,68.74],[1978,69.19],[1979,69.62],[1980,70],[1981,70.35],[1982,70.66],[1983,70.94],[1984,71.2],[1985,71.42],[1986,71.61],[1987,71.78],[1988,71.92],[1989,72.04],[1990,72.16],[1991,72.3],[1992,72.46],[1993,72.65],[1994,72.86],[1995,73.11],[1996,73.36],[1997,73.61],[1998,73.86],[1999,74.09],[2000,74.29],[2001,74.48],[2002,74.66],[2003,74.84],[2004,75.01],[2005,75.17],[2006,75.33],[2007,75.5],[2008,75.65],[2009,75.81]]},{"name":"Paraguay","region":"America","income":[[1800,564.16],[1820,564.16],[1939,2455.59],[1940,2271.97],[1941,2256.51],[1942,2333.36],[1943,2328.36],[1944,2323.8],[1945,2191.57],[1946,2352.9],[1947,1998.8],[1948,1976.22],[1949,2255.95],[1950,2054.03],[1951,2038.81],[1952,1952.31],[1953,1955.91],[1954,1938.39],[1955,1974.52],[1956,2006.18],[1957,2046.15],[1958,2107.31],[1959,2049.46],[1960,2016.41],[1961,2058.78],[1962,2148.03],[1963,2150.97],[1964,2187.33],[1965,2253.94],[1966,2219.58],[1967,2299.38],[1968,2318.87],[1969,2345.99],[1970,2426.65],[1971,2465.48],[1972,2523.34],[1973,2642.34],[1974,2779.72],[1975,2878.12],[1976,3000.98],[1977,3248.37],[1978,3525.63],[1979,3829.88],[1980,4283.09],[1981,4534.67],[1982,4258.5],[1983,4015.03],[1984,4023.96],[1985,4064.65],[1986,3943.64],[1987,3998.88],[1988,4136.87],[1989,4254.41],[1990,4261.11],[1991,4244.88],[1992,4196.41],[1993,4242.62],[1994,4248.93],[1995,4318.04],[1996,4254.72],[1997,4247.4],[1998,4117.41],[1999,4028.5],[2000,3907.3],[2001,3885.14],[2002,3783.67],[2003,3828.38],[2004,3885.94],[2005,3900],[2006,3989.49],[2007,4175.72],[2008,4332.38],[2009,4054.3]],"population":[[1800,143000],[1820,143000],[1850,350000],[1870,384000],[1900,440000],[1901,450000],[1902,461000],[1903,472000],[1904,483000],[1905,494000],[1906,505000],[1907,517000],[1908,529000],[1909,542000],[1910,554000],[1911,567000],[1912,580000],[1913,594000],[1914,608000],[1915,622000],[1916,637000],[1917,652000],[1918,667000],[1919,683000],[1920,699000],[1921,715000],[1922,732000],[1923,749000],[1924,767000],[1925,785000],[1926,803000],[1927,822000],[1928,841000],[1929,860000],[1930,880000],[1931,901000],[1932,922000],[1933,944000],[1934,966000],[1935,988000],[1936,1012000],[1937,1036000],[1938,1061000],[1939,1086000],[1940,1111000],[1941,1137000],[1942,1164000],[1943,1191000],[1944,1219000],[1945,1247000],[1946,1275000],[1947,1305000],[1948,1335000],[1949,1366000],[1950,1475669],[1951,1515299],[1952,1555876],[1953,1597419],[1954,1639946],[1955,1683477],[1956,1726702],[1957,1770902],[1958,1816096],[1959,1862301],[1960,1909538],[1961,1959034],[1962,2009813],[1963,2061907],[1964,2115353],[1965,2170183],[1966,2228306],[1967,2287985],[1968,2349262],[1969,2412181],[1970,2476785],[1971,2544518],[1972,2614104],[1973,2692135],[1974,2772696],[1975,2850419],[1976,2919486],[1977,2984494],[1978,3050953],[1979,3119329],[1980,3193047],[1981,3275777],[1982,3366439],[1983,3462731],[1984,3563622],[1985,3668292],[1986,3775922],[1987,3886512],[1988,4000058],[1989,4116564],[1990,4236056],[1991,4358536],[1992,4483945],[1993,4612341],[1994,4743715],[1995,4877951],[1996,5014837],[1997,5154123],[1998,5295745],[1999,5439657],[2000,5585828],[2001,5734139],[2002,5884491],[2003,6036900],[2004,6191368],[2005,6347884],[2006,6506464],[2007,6667147],[2008,6829969]],"lifeExpectancy":[[1800,35.5],[1932,35.5],[1950,62.58],[1951,62.57],[1952,62.57],[1953,62.61],[1954,62.69],[1955,62.8],[1956,62.95],[1957,63.13],[1958,63.34],[1959,63.56],[1960,63.79],[1961,64.02],[1962,64.22],[1963,64.41],[1964,64.57],[1965,64.71],[1966,64.83],[1967,64.96],[1968,65.11],[1969,65.26],[1970,65.43],[1971,65.6],[1972,65.77],[1973,65.93],[1974,66.07],[1975,66.2],[1976,66.32],[1977,66.44],[1978,66.55],[1979,66.66],[1980,66.77],[1981,66.88],[1982,66.98],[1983,67.08],[1984,67.19],[1985,67.29],[1986,67.41],[1987,67.54],[1988,67.69],[1989,67.84],[1990,68.02],[1991,68.19],[1992,68.37],[1993,68.55],[1994,68.73],[1995,68.92],[1996,69.11],[1997,69.33],[1998,69.56],[1999,69.81],[2000,70.07],[2001,70.34],[2002,70.6],[2003,70.84],[2004,71.07],[2005,71.29],[2006,71.49],[2007,71.68],[2008,71.88],[2009,72.07]]},{"name":"Peru","region":"America","income":[[1800,697.3],[1820,697.3],[1896,842.17],[1897,909.29],[1898,955.97],[1899,996.45],[1900,1036.35],[1901,1098.3],[1902,1143.88],[1903,1206.27],[1904,1231.36],[1905,1304.9],[1906,1391.58],[1907,1460.21],[1908,1469.46],[1909,1475.52],[1910,1482.18],[1911,1495.16],[1912,1528.49],[1913,1559.94],[1914,1530.83],[1915,1642.07],[1916,1789.86],[1917,1832.51],[1918,1820.58],[1919,1857.88],[1920,1852.87],[1921,1899.58],[1922,2031.68],[1923,2138.02],[1924,2302.87],[1925,2327.35],[1926,2523.87],[1927,2529.18],[1928,2650.85],[1929,2882.33],[1930,2512.78],[1931,2272.66],[1932,2150.42],[1933,2354.03],[1934,2629.71],[1935,2830.3],[1936,2918.46],[1937,2910.29],[1938,2908.69],[1939,2877.83],[1940,2887.16],[1941,2841.44],[1942,2729.71],[1943,2726.15],[1944,2910.25],[1945,2967.32],[1946,3029.7],[1947,3062.49],[1948,3110.57],[1949,3288.95],[1950,3486.91],[1951,3665.31],[1952,3758.52],[1953,3896.3],[1954,3902.72],[1955,4084.31],[1956,4157.3],[1957,4245.26],[1958,4144.74],[1959,4053.34],[1960,4486.39],[1961,4747.91],[1962,4957.04],[1963,5038.46],[1964,5235.97],[1965,5430.6],[1966,5724.34],[1967,5788.09],[1968,5568.88],[1969,5555.3],[1970,5823.86],[1971,5916.94],[1972,5937.83],[1973,6078.65],[1974,6224.46],[1975,6536.7],[1976,6453.03],[1977,6281.29],[1978,6118.28],[1979,6317.33],[1980,6441.29],[1981,6561.48],[1982,6434.5],[1983,5452.54],[1984,5578.5],[1985,5563.34],[1986,5987.6],[1987,6360.94],[1988,5714.65],[1989,4911.48],[1990,4564.34],[1991,4581.33],[1992,4446.38],[1993,4603.44],[1994,5123.24],[1995,5453.85],[1996,5474.06],[1997,5838.35],[1998,5745.32],[1999,5704.59],[2000,5791.37],[2001,5714.9],[2002,5909.02],[2003,6054.91],[2004,6161.25],[2005,6466],[2006,6860.37],[2007,7317.57],[2008,7912.56],[2009,7858.97]],"population":[[1820,1317000],[1850,2001000],[1870,2606000],[1890,3346000],[1896,3470000],[1897,3513000],[1898,3558000],[1899,3603000],[1900,3648000],[1901,3694000],[1902,3741000],[1903,3788000],[1904,3836000],[1905,3885000],[1906,3934000],[1907,3984000],[1908,4034000],[1909,4085000],[1910,4137000],[1911,4189000],[1912,4242000],[1913,4295000],[1914,4350000],[1915,4405000],[1916,4460000],[1917,4517000],[1918,4574000],[1919,4631000],[1920,4690000],[1921,4764000],[1922,4838000],[1923,4914000],[1924,4992000],[1925,5070000],[1926,5150000],[1927,5230000],[1928,5312000],[1929,5396000],[1930,5480000],[1931,5569000],[1932,5660000],[1933,5752000],[1934,5846000],[1935,5941000],[1936,6038000],[1937,6137000],[1938,6237000],[1939,6338000],[1940,6440000],[1941,6550000],[1942,6662000],[1943,6776000],[1944,6892000],[1945,7010000],[1946,7130000],[1947,7252000],[1948,7376000],[1949,7502000],[1950,7632500],[1951,7826200],[1952,8025700],[1953,8232100],[1954,8447000],[1955,8671500],[1956,8904900],[1957,9146100],[1958,9396700],[1959,9657800],[1960,9931000],[1961,10217500],[1962,10516500],[1963,10825800],[1964,11143500],[1965,11467300],[1966,11796400],[1967,12132200],[1968,12476000],[1969,12829100],[1970,13192800],[1971,13568300],[1972,13954700],[1973,14350300],[1974,14753100],[1975,15161199],[1976,15573199],[1977,15990099],[1978,16414399],[1979,16848699],[1980,17295298],[1981,17754798],[1982,18125129],[1983,18516941],[1984,18927692],[1985,19348926],[1986,19771935],[1987,20195924],[1988,20625082],[1989,21063800],[1990,21511443],[1991,21967278],[1992,22430449],[1993,22900004],[1994,23374974],[1995,23846388],[1996,24304899],[1997,24748122],[1998,25174087],[1999,25581874],[2000,25979722],[2001,26376033],[2002,26769436],[2003,27158869],[2004,27544305],[2005,27925628],[2006,28302603],[2007,28674757],[2008,29041593]],"lifeExpectancy":[[1800,35.7],[1940,35.7],[1950,43.11],[1951,43.29],[1952,43.67],[1953,44.08],[1954,44.53],[1955,45],[1956,45.51],[1957,46.04],[1958,46.59],[1959,47.14],[1960,47.7],[1961,48.24],[1962,48.76],[1963,49.26],[1964,49.74],[1965,50.23],[1966,50.75],[1967,51.33],[1968,51.98],[1969,52.7],[1970,53.46],[1971,54.25],[1972,55.02],[1973,55.76],[1974,56.45],[1975,57.1],[1976,57.7],[1977,58.29],[1978,58.88],[1979,59.46],[1980,60.06],[1981,60.66],[1982,61.26],[1983,61.86],[1984,62.44],[1985,63.01],[1986,63.56],[1987,64.09],[1988,64.6],[1989,65.1],[1990,65.58],[1991,66.06],[1992,66.53],[1993,67.02],[1994,67.51],[1995,68.01],[1996,68.51],[1997,69.03],[1998,69.53],[1999,70.03],[2000,70.51],[2001,70.96],[2002,71.39],[2003,71.78],[2004,72.14],[2005,72.46],[2006,72.75],[2007,73.01],[2008,73.25],[2009,73.47]]},{"name":"Puerto Rico","region":"America","income":[[1800,775.1],[1820,775.1],[1913,1265.58],[1950,2822.05],[1951,2903.07],[1952,3081.96],[1953,3252.09],[1954,3370.58],[1955,3487.49],[1956,3738.97],[1957,3907.16],[1958,3951.38],[1959,4263.73],[1960,4502.88],[1961,4840.8],[1962,5108.34],[1963,5529.93],[1964,5793.24],[1965,6211.83],[1966,6572.88],[1967,6929.28],[1968,7191.45],[1969,7688.13],[1970,8357.4],[1971,8743.88],[1972,9123.04],[1973,9611.77],[1974,9539.61],[1975,9143.75],[1976,9336.84],[1977,9770.52],[1978,10292.77],[1979,10747.13],[1980,10771.18],[1981,10787.87],[1982,10330.99],[1983,10263.66],[1984,10902.91],[1985,11022.16],[1986,11812.68],[1987,12281.34],[1988,12965.94],[1989,13487.7],[1990,13873.73],[1991,14093.02],[1992,14641.59],[1993,15193.09],[1994,15682.44],[1995,16245.19],[1996,16594.09],[1997,16999.43],[1998,17443.02],[1999,18084.73],[2000,18568.22],[2001,18861.59],[2002,18855.61],[2003,19067.16],[2004,19287.91],[2005,19725.45],[2006,19366.01],[2007,19016.23],[2008,18970.51]],"population":[[1800,155000],[1815,221000],[1820,248000],[1832,330000],[1850,495000],[1860,583000],[1870,645000],[1877,732000],[1887,799000],[1899,953000],[1900,959000],[1901,974000],[1902,990000],[1903,1006000],[1904,1022000],[1905,1039000],[1906,1056000],[1907,1073000],[1908,1090000],[1909,1108000],[1910,1126000],[1911,1144000],[1912,1162000],[1913,1181000],[1914,1199000],[1915,1217000],[1916,1235000],[1917,1254000],[1918,1273000],[1919,1292000],[1920,1312000],[1921,1336000],[1922,1359000],[1923,1383000],[1924,1407000],[1925,1431000],[1926,1455000],[1927,1478000],[1928,1502000],[1929,1526000],[1930,1552000],[1931,1584000],[1932,1615000],[1933,1647000],[1934,1679000],[1935,1710000],[1936,1743000],[1937,1777000],[1938,1810000],[1939,1844000],[1940,1880000],[1941,1935000],[1942,1987000],[1943,2033000],[1944,2062000],[1945,2099000],[1946,2141000],[1947,2162000],[1948,2187000],[1949,2197000],[1950,2218000],[1951,2235000],[1952,2227000],[1953,2204000],[1954,2214000],[1955,2250000],[1956,2249000],[1957,2260000],[1958,2299000],[1959,2322000],[1960,2358000],[1961,2402514],[1962,2448046],[1963,2496601],[1964,2552181],[1965,2596774],[1966,2627368],[1967,2648961],[1968,2673568],[1969,2722232],[1970,2721754],[1971,2766299],[1972,2847132],[1973,2863420],[1974,2886600],[1975,2935124],[1976,3026125],[1977,3080828],[1978,3117884],[1979,3168446],[1980,3209648],[1981,3238968],[1982,3279001],[1983,3316031],[1984,3350037],[1985,3382106],[1986,3413303],[1987,3444468],[1988,3474992],[1989,3505600],[1990,3536910],[1991,3562110],[1992,3585176],[1993,3615497],[1994,3649237],[1995,3683103],[1996,3724655],[1997,3759430],[1998,3781101],[1999,3800081],[2000,3815909],[2001,3839190],[2002,3859606],[2003,3877881],[2004,3894855],[2005,3911299],[2006,3927188],[2007,3942491],[2008,3957169]],"lifeExpectancy":[[1800,30.43],[1894,30.43],[1902,33.3],[1903,30.36],[1910,38.17],[1920,38.46],[1930,40.65],[1940,46.01],[1950,61.71],[1951,62.43],[1952,63.8],[1953,65],[1954,66.05],[1955,66.93],[1956,67.67],[1957,68.25],[1958,68.7],[1959,69.05],[1960,69.3],[1961,69.51],[1962,69.7],[1963,69.89],[1964,70.12],[1965,70.37],[1966,70.65],[1967,70.92],[1968,71.18],[1969,71.42],[1970,71.65],[1971,71.87],[1972,72.11],[1973,72.36],[1974,72.61],[1975,72.86],[1976,73.08],[1977,73.28],[1978,73.43],[1979,73.54],[1980,73.63],[1981,73.71],[1982,73.81],[1983,73.94],[1984,74.09],[1985,74.24],[1986,74.38],[1987,74.47],[1988,74.51],[1989,74.5],[1990,74.45],[1991,74.37],[1992,74.3],[1993,74.25],[1994,74.26],[1995,74.35],[1996,74.55],[1997,74.87],[1998,75.29],[1999,75.78],[2000,76.32],[2001,76.86],[2002,77.37],[2003,77.8],[2004,78.15],[2005,78.4],[2006,78.58],[2007,78.72],[2008,78.84],[2009,78.95]]},{"name":"Suriname","region":"America","income":[[1800,1004.13],[1820,1004.13],[1913,1852.67],[1950,3201.44],[1970,4958.82],[1971,5250.97],[1972,5504.44],[1973,5758.36],[1974,5960.04],[1975,5413.8],[1976,5953.52],[1977,6622.72],[1978,7028.64],[1979,6631.28],[1980,6045.94],[1981,6417.63],[1982,6061.25],[1983,5722.81],[1984,5518.3],[1985,6193.03],[1986,6009.13],[1987,5508.17],[1988,5930.97],[1989,6148.98],[1990,5863.39],[1991,5962.17],[1992,5974.26],[1993,5624.37],[1994,5400.78],[1995,5509.17],[1996,5520.94],[1997,5589.34],[1998,5703.02],[1999,5510.23],[2000,5677.29],[2001,5962.11],[2002,6070.68],[2003,6446.04],[2004,6880.09],[2005,7234],[2006,7425.02],[2007,7722.28],[2008,8091.8],[2009,8199.03]],"population":[[1800,80721],[1820,80721],[1950,208068],[1951,213358],[1952,219442],[1953,226016],[1954,233027],[1955,240491],[1956,248363],[1957,256534],[1958,265294],[1959,274847],[1960,284506],[1961,294466],[1962,305124],[1963,316001],[1964,327023],[1965,336711],[1966,345810],[1967,354353],[1968,361735],[1969,368064],[1970,372898],[1971,377191],[1972,381410],[1973,383662],[1974,380911],[1975,363393],[1976,353047],[1977,360780],[1978,366025],[1979,363631],[1980,354860],[1981,352967],[1982,359611],[1983,365602],[1984,370748],[1985,375592],[1986,379472],[1987,382559],[1988,386349],[1989,390987],[1990,395000],[1991,398992],[1992,402943],[1993,406817],[1994,410577],[1995,414188],[1996,417635],[1997,420899],[1998,423948],[1999,426759],[2000,429323],[2001,431635],[2002,433682],[2003,435449],[2004,436935],[2005,438144],[2006,439117],[2007,439894],[2008,440486]],"lifeExpectancy":[[1800,32.9],[1925,32.9],[1950,54.7],[1951,55.05],[1952,55.73],[1953,56.36],[1954,56.95],[1955,57.5],[1956,58],[1957,58.47],[1958,58.9],[1959,59.3],[1960,59.68],[1961,60.05],[1962,60.41],[1963,60.78],[1964,61.14],[1965,61.52],[1966,61.9],[1967,62.27],[1968,62.63],[1969,62.98],[1970,63.31],[1971,63.61],[1972,63.89],[1973,64.14],[1974,64.37],[1975,64.59],[1976,64.81],[1977,65.05],[1978,65.3],[1979,65.56],[1980,65.83],[1981,66.09],[1982,66.33],[1983,66.53],[1984,66.71],[1985,66.85],[1986,66.96],[1987,67.06],[1988,67.15],[1989,67.24],[1990,67.33],[1991,67.44],[1992,67.55],[1993,67.66],[1994,67.77],[1995,67.88],[1996,67.97],[1997,68.03],[1998,68.08],[1999,68.1],[2000,68.11],[2001,68.12],[2002,68.15],[2003,68.21],[2004,68.3],[2005,68.43],[2006,68.58],[2007,68.76],[2008,68.96],[2009,69.16]]},{"name":"Trinidad and Tobago","region":"America","income":[[1800,774.21],[1820,774.21],[1913,1264.12],[1950,2818.8],[1951,2987.51],[1952,3023.27],[1953,3033.59],[1954,3002.88],[1955,3311.35],[1956,3881.04],[1957,4100.39],[1958,4303.08],[1959,4405.84],[1960,4795.86],[1961,4888.04],[1962,4997.52],[1963,5154.49],[1964,5217.56],[1965,5393.58],[1966,5550.35],[1967,5621.37],[1968,5895.03],[1969,6058.54],[1970,6324.94],[1971,6346.12],[1972,6619.55],[1973,6663.4],[1974,6945.61],[1975,6995.35],[1976,7555.17],[1977,7899.55],[1978,8683.78],[1979,8937.55],[1980,9498.49],[1981,9815.18],[1982,9119.53],[1983,8280.37],[1984,8647.69],[1985,8180.31],[1986,7818.14],[1987,7388.6],[1988,7059.56],[1989,6990.8],[1990,7113.56],[1991,7398.63],[1992,7370.99],[1993,7340.13],[1994,7705.76],[1995,8071.16],[1996,8449.63],[1997,8792.57],[1998,9269.85],[1999,9952.12],[2000,10496.91],[2001,11020.92],[2002,11460.6],[2003,13030.45],[2004,13978.56],[2005,15352],[2006,17384.13],[2007,18141.92],[2008,18511.09],[2009,17826.05]],"population":[[1800,60000],[1820,60000],[1850,80000],[1870,124000],[1900,268000],[1901,274000],[1902,279000],[1903,285000],[1904,291000],[1905,298000],[1906,304000],[1907,310000],[1908,317000],[1909,324000],[1910,331000],[1911,338000],[1912,345000],[1913,352000],[1914,357000],[1915,362000],[1916,367000],[1917,373000],[1918,378000],[1919,383000],[1920,389000],[1921,367000],[1922,371000],[1923,376000],[1924,379000],[1925,382000],[1926,385000],[1927,388000],[1928,392000],[1929,398000],[1930,405000],[1931,412000],[1932,417000],[1933,422000],[1934,428000],[1935,435000],[1936,442000],[1937,450000],[1938,458000],[1939,466000],[1940,476000],[1941,492000],[1942,510000],[1943,525000],[1944,536000],[1945,547000],[1946,561000],[1947,583000],[1948,600000],[1949,616000],[1950,632000],[1951,648700],[1952,662850],[1953,678300],[1954,697500],[1955,720800],[1956,742500],[1957,764900],[1958,788600],[1959,817050],[1960,841150],[1961,861387],[1962,887498],[1963,904380],[1964,923887],[1965,939255],[1966,952535],[1967,960155],[1968,963086],[1969,962927],[1970,955000],[1971,961605],[1972,975199],[1973,984786],[1974,995364],[1975,1006931],[1976,1021480],[1977,1039009],[1978,1055527],[1979,1073027],[1980,1090513],[1981,1101836],[1982,1116479],[1983,1133265],[1984,1150426],[1985,1166353],[1986,1180346],[1987,1191336],[1988,1198392],[1989,1200303],[1990,1198247],[1991,1192417],[1992,1183669],[1993,1174430],[1994,1165700],[1995,1158553],[1996,1148699],[1997,1138101],[1998,1131314],[1999,1125375],[2000,1118204],[2001,1110217],[2002,1101832],[2003,1093146],[2004,1084206],[2005,1075066],[2006,1065842],[2007,1056608],[2008,1047366]],"lifeExpectancy":[[1800,32.9],[1829,32.9],[1835,38.8],[1921,38.8],[1931,45.7],[1946,54.5],[1950,58.22],[1951,58.42],[1952,58.83],[1953,59.3],[1954,59.81],[1955,60.36],[1956,60.96],[1957,61.6],[1958,62.25],[1959,62.9],[1960,63.52],[1961,64.08],[1962,64.55],[1963,64.92],[1964,65.18],[1965,65.35],[1966,65.43],[1967,65.47],[1968,65.5],[1969,65.54],[1970,65.61],[1971,65.72],[1972,65.86],[1973,66.03],[1974,66.22],[1975,66.42],[1976,66.63],[1977,66.84],[1978,67.03],[1979,67.2],[1980,67.36],[1981,67.51],[1982,67.67],[1983,67.83],[1984,67.99],[1985,68.16],[1986,68.34],[1987,68.51],[1988,68.66],[1989,68.8],[1990,68.92],[1991,69],[1992,69.06],[1993,69.08],[1994,69.08],[1995,69.04],[1996,68.96],[1997,68.85],[1998,68.72],[1999,68.59],[2000,68.48],[2001,68.41],[2002,68.39],[2003,68.44],[2004,68.57],[2005,68.75],[2006,68.97],[2007,69.22],[2008,69.46],[2009,69.7]]},{"name":"United States","region":"America","income":[[1800,1912.62],[1801,1948.59],[1802,1981.63],[1803,1946.61],[1804,1944.22],[1805,1987.88],[1806,2024.49],[1807,2045.45],[1808,1896.7],[1809,1993.22],[1810,2050.52],[1811,2093.55],[1812,2056.15],[1813,2079.25],[1814,2119.35],[1815,2111.19],[1816,2023.09],[1817,2021.75],[1818,2027.3],[1819,2023.02],[1820,2011.22],[1821,2043.38],[1822,2101.55],[1823,2077.84],[1824,2134.86],[1825,2184.19],[1826,2200.15],[1827,2210.11],[1828,2209.17],[1829,2133.96],[1830,2293.67],[1831,2438],[1832,2530.55],[1833,2620.99],[1834,2491.55],[1835,2589.99],[1836,2629.47],[1837,2543.05],[1838,2520.65],[1839,2646.12],[1840,2512.15],[1841,2457.92],[1842,2436.73],[1843,2476.52],[1844,2614.36],[1845,2656.44],[1846,2673.07],[1847,2744.83],[1848,2817.92],[1849,2743.7],[1850,2754.9],[1851,2871.34],[1852,3022.03],[1853,3235.59],[1854,3244.9],[1855,3172.17],[1856,3239.39],[1857,3167.39],[1858,3182.83],[1859,3270.94],[1860,3359.31],[1861,3288.25],[1862,3393.61],[1863,3617.64],[1864,3739.47],[1865,3541.92],[1866,3514],[1867,3632],[1868,3681.88],[1869,3781.48],[1870,3970.93],[1871,4044.9],[1872,4106.03],[1873,4198.88],[1874,4055.76],[1875,4170.62],[1876,4131.67],[1877,4181.78],[1878,4275.61],[1879,4718.64],[1880,5178.86],[1881,5239.22],[1882,5428.53],[1883,5402.76],[1884,5362.11],[1885,5277.75],[1886,5332.39],[1887,5472.26],[1888,5330.85],[1889,5549.39],[1890,5524.7],[1891,5584.39],[1892,5717.15],[1893,5579.84],[1894,5297.88],[1895,5828.93],[1896,5603.9],[1897,5962.94],[1898,6008.89],[1899,6609.78],[1900,6624.3],[1901,7305.78],[1902,7282.17],[1903,7356.13],[1904,7494.66],[1905,8031.68],[1906,8205.42],[1907,7928.61],[1908,7339.85],[1909,8048.39],[1910,7913.7],[1911,8010.71],[1912,8317.33],[1913,8448.56],[1914,7615.96],[1915,7758.77],[1916,8875.24],[1917,8714.46],[1918,9254.58],[1919,8908.37],[1920,8568.17],[1921,8068.82],[1922,8504.51],[1923,9512.22],[1924,9544.98],[1925,9581.57],[1926,9990.36],[1927,9869.44],[1928,9892.79],[1929,10387.38],[1930,9346.2],[1931,8640.93],[1932,7433.95],[1933,7267.63],[1934,7977.82],[1935,8601.16],[1936,9629.63],[1937,10028.34],[1938,9569.07],[1939,10225.26],[1940,10948.06],[1941,12667.38],[1942,14819.55],[1943,16980.87],[1944,18085.1],[1945,17614.95],[1946,15431.41],[1947,14931.55],[1948,15266.38],[1949,14866.24],[1950,15855.86],[1951,16750.74],[1952,17039.38],[1953,17471.28],[1954,16979.26],[1955,17822.45],[1956,17783.27],[1957,17749.5],[1958,17217.39],[1959,18084.11],[1960,18175.43],[1961,18226.62],[1962,18978.45],[1963,19461.1],[1964,20243.98],[1965,21209.93],[1966,22263.22],[1967,22495.68],[1968,23268.21],[1969,23669.41],[1970,23345.77],[1971,23744.67],[1972,24654.04],[1973,25742],[1974,25281.7],[1975,24889.6],[1976,25881.72],[1977,26715.14],[1978,27814.18],[1979,28278.91],[1980,27838.11],[1981,28160.14],[1982,27243.47],[1983,28119.69],[1984,29785.25],[1985,30636.21],[1986,31297.31],[1987,31953.81],[1988,32860.52],[1989,33587.09],[1990,33710.39],[1991,33076.87],[1992,33589.59],[1993,33914.89],[1994,34730.56],[1995,35053.29],[1996,35807],[1997,36847.81],[1998,37811.68],[1999,38912.58],[2000,39758.5],[2001,39474.11],[2002,39535.84],[2003,40044.18],[2004,40956.4],[2005,41674],[2006,42385.18],[2007,42866.22],[2008,42656.49],[2009,41256.08]],"population":[[1820,9980510],[1821,10298969],[1822,10625503],[1823,10951077],[1824,11276695],[1825,11602355],[1826,11928057],[1827,12250905],[1828,12580590],[1829,12906416],[1830,13240314],[1831,13658580],[1832,14077890],[1833,14496235],[1834,14914618],[1835,15334042],[1836,15752501],[1837,16170997],[1838,16590533],[1839,17009101],[1840,17443768],[1841,18056100],[1842,18667464],[1843,19278865],[1844,19890301],[1845,20502776],[1846,21114282],[1847,21725822],[1848,22337396],[1849,22950007],[1850,23579718],[1851,24405303],[1852,25230918],[1853,26156953],[1854,26882238],[1855,27707943],[1856,28534680],[1857,29360442],[1858,30186232],[1859,31012051],[1860,31838901],[1861,32677742],[1862,33515609],[1863,34354509],[1864,35192433],[1865,36031388],[1866,36869368],[1867,37708378],[1868,38546412],[1869,39385476],[1870,40240630],[1871,41098000],[1872,42136000],[1873,43174000],[1874,44212000],[1875,45245000],[1876,46287000],[1877,47325000],[1878,48362000],[1879,49400000],[1880,50458000],[1881,51743000],[1882,53027000],[1883,54311000],[1884,55595000],[1885,56879000],[1886,58164000],[1887,59448000],[1888,60732000],[1889,62016000],[1890,63302000],[1891,64612000],[1892,65922000],[1893,67231000],[1894,68541000],[1895,69851000],[1896,71161000],[1897,72471000],[1898,73781000],[1899,75091000],[1900,76391000],[1901,77888000],[1902,79469000],[1903,80946000],[1904,82485000],[1905,84147000],[1906,85770000],[1907,87339000],[1908,89055000],[1909,90845000],[1910,92767000],[1911,94234000],[1912,95703000],[1913,97606000],[1914,99505000],[1915,100941000],[1916,102364000],[1917,103817000],[1918,104958000],[1919,105473000],[1920,106881000],[1921,108964000],[1922,110484000],[1923,112387000],[1924,114558000],[1925,116284000],[1926,117857000],[1927,119502000],[1928,120971000],[1929,122245000],[1930,123668000],[1931,124633000],[1932,125436000],[1933,126180000],[1934,126978000],[1935,127859000],[1936,128681000],[1937,129464000],[1938,130476000],[1939,131539000],[1940,132637000],[1941,133922000],[1942,135386000],[1943,137272000],[1944,138937000],[1945,140474000],[1946,141940000],[1947,144688000],[1948,147203000],[1949,149770000],[1950,152271000],[1951,154878000],[1952,157553000],[1953,160184000],[1954,163026000],[1955,165931000],[1956,168903000],[1957,171984000],[1958,174882000],[1959,177830000],[1960,180671000],[1961,183691000],[1962,186538000],[1963,189242000],[1964,191889000],[1965,194303000],[1966,196560000],[1967,198712000],[1968,200706000],[1969,202677000],[1970,205052000],[1971,207661000],[1972,209896000],[1973,211909000],[1974,213854000],[1975,215973000],[1976,218035000],[1977,220239000],[1978,222585000],[1979,225055000],[1980,227726463],[1981,229966237],[1982,232187835],[1983,234307207],[1984,236348292],[1985,238466283],[1986,240650755],[1987,242803533],[1988,245021414],[1989,247341697],[1990,250131894],[1991,253492503],[1992,256894189],[1993,260255352],[1994,263435673],[1995,266557091],[1996,269667391],[1997,272911760],[1998,276115288],[1999,279294713],[2000,282338631],[2001,285023886],[2002,287675526],[2003,290342554],[2004,293027571],[2005,295734134],[2006,298444215],[2007,301139947],[2008,303824646]],"lifeExpectancy":[[1800,39.41],[1880,39.41],[1890,45.21],[1901,49.3],[1902,50.5],[1903,50.6],[1904,49.6],[1905,50.3],[1906,50.1],[1907,50.2],[1908,51.9],[1909,52.8],[1910,51.8],[1911,53.4],[1912,54.1],[1913,53.5],[1914,54.6],[1915,55.1],[1916,54.2],[1917,54],[1918,47.2],[1919,55.3],[1920,55.4],[1921,58.2],[1922,58.1],[1923,57.5],[1924,58.5],[1925,58.5],[1926,57.9],[1927,59.4],[1928,58.3],[1929,58.5],[1930,59.6],[1931,60.3],[1932,61],[1933,60.95],[1934,60.31],[1935,60.97],[1936,60.42],[1937,61.11],[1938,62.44],[1939,63.12],[1940,63.28],[1941,63.84],[1942,64.63],[1943,64.34],[1944,65.13],[1945,65.63],[1946,66.33],[1947,66.73],[1948,67.3],[1949,67.68],[1950,68.12],[1951,68.22],[1952,68.44],[1953,68.79],[1954,69.58],[1955,69.63],[1956,69.71],[1957,69.49],[1958,69.76],[1959,69.98],[1960,69.91],[1961,70.32],[1962,70.21],[1963,70.04],[1964,70.33],[1965,70.41],[1966,70.43],[1967,70.76],[1968,70.42],[1969,70.66],[1970,70.92],[1971,71.24],[1972,71.34],[1973,71.54],[1974,72.08],[1975,72.68],[1976,72.99],[1977,73.38],[1978,73.58],[1979,74.03],[1980,73.93],[1981,74.36],[1982,74.65],[1983,74.71],[1984,74.82],[1985,74.79],[1986,74.87],[1987,75.01],[1988,75.03],[1989,75.31],[1990,75.6],[1991,75.8],[1992,76.08],[1993,75.83],[1994,76],[1995,76.09],[1996,76.44],[1997,76.8],[1998,76.97],[1999,76.97],[2000,77.13],[2001,77.25],[2002,77.31],[2003,77.49],[2004,77.92],[2005,77.93],[2006,78.21],[2007,79.09],[2008,79.27],[2009,79.43]]},{"name":"Uruguay","region":"America","income":[[1800,784.46],[1820,784.46],[1870,2515.22],[1871,2512],[1872,3035.52],[1873,2999.99],[1874,2670.33],[1875,2240.25],[1876,2427.41],[1877,2448.19],[1878,2591.78],[1879,2247.79],[1880,2401.2],[1881,2227.77],[1882,2398.64],[1883,2764.11],[1884,2680.57],[1885,2963.18],[1886,3008.19],[1887,2614.93],[1888,3134.99],[1889,2785.56],[1890,2476.55],[1891,2641.64],[1892,2646.24],[1893,2810.95],[1894,3064.67],[1895,2962.06],[1896,3049.71],[1897,2875.86],[1898,2595.08],[1899,2607.73],[1900,2558.84],[1901,2575.86],[1902,2967.03],[1903,3016.04],[1904,3044.56],[1905,2692.36],[1906,2921.72],[1907,3180.2],[1908,3429.15],[1909,3410.15],[1910,3616.95],[1911,3410.32],[1912,4045.87],[1913,3817.78],[1914,3061.19],[1915,2849.17],[1916,2892.97],[1917,3134.27],[1918,3261.16],[1919,3615.78],[1920,3084.06],[1921,3173],[1922,3550.25],[1923,3656.14],[1924,3918.22],[1925,3676.65],[1926,3918.96],[1927,4379.65],[1928,4504.87],[1929,4437.56],[1930,4960.9],[1931,4037.12],[1932,3686.22],[1933,3172.25],[1934,3714.87],[1935,3870.21],[1936,3989.47],[1937,3993.26],[1938,4240.05],[1939,4258.09],[1940,4221.98],[1941,4247.21],[1942,3849.73],[1943,3841.54],[1944,4272.8],[1945,4340.79],[1946,4709.27],[1947,4973.97],[1948,5080.7],[1949,5194.38],[1950,5374.01],[1951,5714.81],[1952,5716.77],[1953,5926.63],[1954,6217.57],[1955,6172.35],[1956,6182.26],[1957,6150.77],[1958,6230.9],[1959,5605],[1960,5720.89],[1961,5808.7],[1962,5603.36],[1963,5558.9],[1964,5603.15],[1965,5605.11],[1966,5737.16],[1967,5444.62],[1968,5475.23],[1969,5756.43],[1970,5979.13],[1971,5916.95],[1972,5703.41],[1973,5737.31],[1974,5909.05],[1975,6252.62],[1976,6468.66],[1977,6504.34],[1978,6808.86],[1979,7189.87],[1980,7586.16],[1981,7690.7],[1982,6920.22],[1983,6475.01],[1984,6366.47],[1985,6420.41],[1986,6946.57],[1987,7452.4],[1988,7407.36],[1989,7453.36],[1990,7466.41],[1991,7628.84],[1992,8137],[1993,8331.94],[1994,8728.07],[1995,8495.07],[1996,8856.81],[1997,9230.24],[1998,9590.07],[1999,9266.79],[2000,9092.32],[2001,8732.2],[2002,7727],[2003,7853.82],[2004,8735],[2005,9266],[2006,9641.29],[2007,10331.31],[2008,11178.99],[2009,11461.03]],"population":[[1800,55000],[1820,55000],[1850,132000],[1870,343000],[1871,354000],[1872,364000],[1873,376000],[1874,387000],[1875,399000],[1876,411000],[1877,424000],[1878,437000],[1879,450000],[1880,464000],[1881,482000],[1882,502000],[1883,522000],[1884,543000],[1885,564000],[1886,587000],[1887,610000],[1888,635000],[1889,660000],[1890,686000],[1891,706000],[1892,727000],[1893,748000],[1894,770000],[1895,792000],[1896,815000],[1897,839000],[1898,864000],[1899,889000],[1900,915000],[1901,930000],[1902,945000],[1903,961000],[1904,977000],[1905,993000],[1906,1009000],[1907,1026000],[1908,1043000],[1909,1062000],[1910,1081000],[1911,1112000],[1912,1144000],[1913,1177000],[1914,1223000],[1915,1246000],[1916,1269000],[1917,1292000],[1918,1316000],[1919,1341000],[1920,1371000],[1921,1402000],[1922,1433000],[1923,1465000],[1924,1498000],[1925,1534000],[1926,1571000],[1927,1608000],[1928,1646000],[1929,1685000],[1930,1713000],[1931,1741000],[1932,1770000],[1933,1799000],[1934,1829000],[1935,1859000],[1936,1889000],[1937,1921000],[1938,1952000],[1939,1944000],[1940,1965000],[1941,1987000],[1942,2010000],[1943,2032000],[1944,2055000],[1945,2081000],[1946,2107000],[1947,2134000],[1948,2160000],[1949,2188000],[1950,2194275],[1951,2223060],[1952,2252965],[1953,2283920],[1954,2316543],[1955,2353136],[1956,2389290],[1957,2424959],[1958,2460411],[1959,2495022],[1960,2530969],[1961,2563794],[1962,2598466],[1963,2632111],[1964,2663610],[1965,2693133],[1966,2721207],[1967,2748579],[1968,2776607],[1969,2801859],[1970,2823659],[1971,2826042],[1972,2829526],[1973,2834115],[1974,2838213],[1975,2841818],[1976,2857453],[1977,2873520],[1978,2889495],[1979,2905131],[1980,2919851],[1981,2935649],[1982,2953997],[1983,2972570],[1984,2990097],[1985,3008270],[1986,3026971],[1987,3045153],[1988,3063668],[1989,3084065],[1990,3105708],[1991,3127574],[1992,3149262],[1993,3170958],[1994,3193413],[1995,3215423],[1996,3238280],[1997,3262838],[1998,3284853],[1999,3304234],[2000,3323876],[2001,3343797],[2002,3363085],[2003,3381606],[2004,3399237],[2005,3415920],[2006,3431932],[2007,3447496],[2008,3462531]],"lifeExpectancy":[[1800,32.9],[1925,32.9],[1950,65.98],[1951,66.04],[1952,66.18],[1953,66.33],[1954,66.51],[1955,66.71],[1956,66.93],[1957,67.17],[1958,67.41],[1959,67.66],[1960,67.89],[1961,68.11],[1962,68.29],[1963,68.44],[1964,68.54],[1965,68.6],[1966,68.63],[1967,68.64],[1968,68.65],[1969,68.66],[1970,68.69],[1971,68.73],[1972,68.8],[1973,68.88],[1974,69],[1975,69.14],[1976,69.32],[1977,69.53],[1978,69.76],[1979,70.02],[1980,70.28],[1981,70.56],[1982,70.83],[1983,71.1],[1984,71.35],[1985,71.58],[1986,71.8],[1987,72],[1988,72.19],[1989,72.37],[1990,72.54],[1991,72.72],[1992,72.91],[1993,73.11],[1994,73.32],[1995,73.54],[1996,73.77],[1997,74],[1998,74.23],[1999,74.45],[2000,74.66],[2001,74.88],[2002,75.08],[2003,75.3],[2004,75.51],[2005,75.71],[2006,75.92],[2007,76.12],[2008,76.31],[2009,76.5]]},{"name":"Albania","region":"Europe & Central Asia","income":[[1800,601.22],[1820,613.83],[1870,682.67],[1890,914.81],[1900,1048.26],[1910,1194.13],[1913,1240.6],[1929,1417.53],[1950,1532.35],[1951,1598.49],[1952,1601.06],[1953,1665.79],[1954,1714.69],[1955,1807.13],[1956,1825.3],[1957,1942.28],[1958,2029.79],[1959,2113.35],[1960,2220.34],[1961,2238.79],[1962,2312.89],[1963,2391.78],[1964,2473.7],[1965,2563.95],[1966,2660.07],[1967,2760.2],[1968,2859.81],[1969,2956.94],[1970,3066.02],[1971,3188.58],[1972,3313.42],[1973,3478.46],[1974,3491.43],[1975,3503.59],[1976,3517.62],[1977,3533],[1978,3549.26],[1979,3566.57],[1980,3591.76],[1981,3611.03],[1982,3630.88],[1983,3652.08],[1984,3672.87],[1985,3692.09],[1986,3715.55],[1987,3738.93],[1988,3762.61],[1989,3790.98],[1990,3824.85],[1991,2717.57],[1992,2497.44],[1993,2716.65],[1994,2918.82],[1995,3285.53],[1996,3569.59],[1997,3193.05],[1998,3584.77],[1999,3928.28],[2000,4195.21],[2001,4476.05],[2002,4604.21],[2003,4855.21],[2004,5115.25],[2005,5369],[2006,5635.21],[2007,5967.02],[2008,6399.81],[2009,6546.27]],"population":[[1820,437000],[1850,500000],[1870,603000],[1890,726000],[1900,800000],[1910,874000],[1913,898000],[1920,932000],[1921,937000],[1922,942000],[1923,947000],[1924,952000],[1925,956000],[1926,962000],[1927,967000],[1928,972000],[1929,977000],[1930,982000],[1931,988000],[1932,993000],[1933,998000],[1934,1003000],[1935,1009000],[1936,1014000],[1937,1030000],[1938,1040000],[1939,1070000],[1940,1088000],[1941,1100000],[1942,1117000],[1943,1119000],[1944,1122000],[1945,1138000],[1946,1154000],[1947,1175000],[1948,1192000],[1949,1209000],[1950,1227156],[1951,1254119],[1952,1282697],[1953,1314608],[1954,1352982],[1955,1392164],[1956,1434476],[1957,1476505],[1958,1521417],[1959,1571329],[1960,1623114],[1961,1676635],[1962,1728137],[1963,1779715],[1964,1832284],[1965,1883652],[1966,1932963],[1967,1984060],[1968,2038698],[1969,2100263],[1970,2156612],[1971,2208719],[1972,2263554],[1973,2295691],[1974,2347924],[1975,2401108],[1976,2454824],[1977,2509048],[1978,2563376],[1979,2617679],[1980,2671412],[1981,2724272],[1982,2780097],[1983,2837315],[1984,2895998],[1985,2956697],[1986,3015438],[1987,3075321],[1988,3136843],[1989,3195800],[1990,3250778],[1991,3294227],[1992,3326498],[1993,3351656],[1994,3378424],[1995,3400516],[1996,3414733],[1997,3428038],[1998,3441234],[1999,3457493],[2000,3473835],[2001,3490304],[2002,3508512],[2003,3526642],[2004,3544808],[2005,3563112],[2006,3581655],[2007,3600523],[2008,3619778]],"lifeExpectancy":[[1800,35.4],[1929,35.4],[1950,54.16],[1951,54.37],[1952,54.85],[1953,55.44],[1954,56.15],[1955,56.98],[1956,57.91],[1957,58.94],[1958,60.04],[1959,61.16],[1960,62.25],[1961,63.27],[1962,64.16],[1963,64.89],[1964,65.44],[1965,65.83],[1966,66.1],[1967,66.31],[1968,66.51],[1969,66.73],[1970,66.98],[1971,67.25],[1972,67.53],[1973,67.8],[1974,68.06],[1975,68.31],[1976,68.56],[1977,68.82],[1978,69.08],[1979,69.36],[1980,69.66],[1981,69.98],[1982,70.32],[1983,70.67],[1984,71.02],[1985,71.34],[1986,71.6],[1987,71.78],[1988,71.88],[1989,71.91],[1990,71.9],[1991,71.86],[1992,71.84],[1993,71.87],[1994,71.97],[1995,72.17],[1996,72.47],[1997,72.87],[1998,73.33],[1999,73.84],[2000,74.36],[2001,74.86],[2002,75.31],[2003,75.69],[2004,75.99],[2005,76.21],[2006,76.37],[2007,76.5],[2008,76.62],[2009,76.74]]},{"name":"Armenia","region":"Europe & Central Asia","income":[[1800,502.64],[1820,513.22],[1913,1144.01],[1950,2241.72],[1973,2849.09],[1990,2809.07],[1991,2436.61],[1992,1442.94],[1993,1375.72],[1994,1498.94],[1995,1632.31],[1996,1731.63],[1997,1791.35],[1998,1928.33],[1999,1992.96],[2000,2114.06],[2001,2328.46],[2002,2692.3],[2003,3078.9],[2004,3413.91],[2005,3903],[2006,4413.18],[2007,5011.56],[2008,5338.64],[2009,4523.44]],"population":[[1800,413326],[1820,413326],[1950,1355269],[1951,1379204],[1952,1416722],[1953,1455777],[1954,1505668],[1955,1565329],[1956,1617460],[1957,1672403],[1958,1733125],[1959,1796363],[1960,1868852],[1961,1943799],[1962,2006853],[1963,2065618],[1964,2134940],[1965,2205833],[1966,2273695],[1967,2338063],[1968,2402358],[1969,2463153],[1970,2519745],[1971,2581671],[1972,2647035],[1973,2712997],[1974,2776539],[1975,2834136],[1976,2892704],[1977,2954907],[1978,3014042],[1979,3066726],[1980,3115289],[1981,3166098],[1982,3218691],[1983,3270153],[1984,3322394],[1985,3373532],[1986,3421978],[1987,3468857],[1988,3515614],[1989,3325992],[1990,3376783],[1991,3437479],[1992,3378331],[1993,3231570],[1994,3126094],[1995,3068751],[1996,3063395],[1997,3059000],[1998,3049147],[1999,3047620],[2000,3042556],[2001,3027590],[2002,3013818],[2003,3001712],[2004,2991360],[2005,2982904],[2006,2976372],[2007,2971650],[2008,2968586]],"lifeExpectancy":[[1950,61.94],[1951,62.15],[1952,62.58],[1953,63.01],[1954,63.44],[1955,63.86],[1956,64.28],[1957,64.71],[1958,65.13],[1959,65.56],[1960,65.99],[1961,66.42],[1962,66.86],[1963,67.3],[1964,67.74],[1965,68.18],[1966,68.61],[1967,69.04],[1968,69.45],[1969,69.83],[1970,70.17],[1971,70.44],[1972,70.63],[1973,70.74],[1974,70.79],[1975,70.79],[1976,70.79],[1977,70.8],[1978,70.84],[1979,70.89],[1980,70.93],[1981,70.91],[1982,70.78],[1983,70.52],[1984,70.16],[1985,69.71],[1986,69.22],[1987,68.75],[1988,68.35],[1989,68.06],[1990,67.89],[1991,67.86],[1992,67.96],[1993,68.14],[1994,68.41],[1995,68.76],[1996,69.18],[1997,69.65],[1998,70.16],[1999,70.68],[2000,71.19],[2001,71.66],[2002,72.1],[2003,72.49],[2004,72.83],[2005,73.13],[2006,73.38],[2007,73.61],[2008,73.82],[2009,74.03]]},{"name":"Austria","region":"Europe & Central Asia","income":[[1800,1434.51],[1820,1550.01],[1821,1574.98],[1822,1600.35],[1823,1626.12],[1824,1652.32],[1825,1678.93],[1826,1705.97],[1827,1733.45],[1828,1761.37],[1829,1789.74],[1830,1818.56],[1831,1837.1],[1832,1855.82],[1833,1874.73],[1834,1893.83],[1835,1913.13],[1836,1932.63],[1837,1952.33],[1838,1972.22],[1839,1992.32],[1840,2012.62],[1841,2034.4],[1842,2056.41],[1843,2078.65],[1844,2101.14],[1845,2123.87],[1846,2146.85],[1847,2170.08],[1848,2193.56],[1849,2217.29],[1850,2241.28],[1851,2262.88],[1852,2284.7],[1853,2306.73],[1854,2328.97],[1855,2351.42],[1856,2374.09],[1857,2396.98],[1858,2420.09],[1859,2443.42],[1860,2466.98],[1861,2483.91],[1862,2500.97],[1863,2518.14],[1864,2535.43],[1865,2552.84],[1866,2570.37],[1867,2588.02],[1868,2605.79],[1869,2623.68],[1870,2641.7],[1871,2813.04],[1872,2815.2],[1873,2730.96],[1874,2834.04],[1875,2829.2],[1876,2873.94],[1877,2952.65],[1878,3031.03],[1879,2990.81],[1880,3013.1],[1881,3116],[1882,3115.19],[1883,3222.36],[1884,3287.4],[1885,3245.89],[1886,3329.95],[1887,3538.38],[1888,3508.79],[1889,3454.42],[1890,3619.16],[1891,3720.23],[1892,3771.43],[1893,3764.68],[1894,3951.4],[1895,4024.65],[1896,4053.25],[1897,4105.88],[1898,4303.41],[1899,4359.56],[1900,4362.27],[1901,4344.52],[1902,4477.8],[1903,4480.79],[1904,4513.37],[1905,4728.12],[1906,4870.98],[1907,5130.41],[1908,5113.09],[1909,5056.77],[1910,5090.03],[1911,5205.8],[1912,5422.19],[1913,5360.93],[1914,4448.44],[1915,4104.04],[1916,4064.74],[1917,4000.87],[1918,3952.16],[1919,3494.55],[1920,3731.71],[1921,4099.62],[1922,4451.32],[1923,4396.76],[1924,4892.64],[1925,5208.47],[1926,5279.81],[1927,5422.72],[1928,5657.6],[1929,5721.43],[1930,5546.91],[1931,5085.87],[1932,4547.49],[1933,4382.76],[1934,4411.25],[1935,4496.45],[1936,4632.65],[1937,4881.74],[1938,5506.35],[1939,6336.15],[1940,6124.69],[1941,6524.02],[1942,6161.23],[1943,6287.8],[1944,5888.21],[1945,2667.85],[1946,3026.57],[1947,3351.41],[1948,4276.52],[1949,5094.41],[1950,5733.1],[1951,6124.93],[1952,6137.08],[1953,6399.79],[1954,7045.97],[1955,7817.25],[1956,8348.45],[1957,8842.6],[1958,9137.3],[1959,9360.85],[1960,10083.83],[1961,10560.97],[1962,10750.72],[1963,11116.7],[1964,11705.63],[1965,11964.28],[1966,12549.33],[1967,12834.6],[1968,13335.56],[1969,14125.32],[1970,15078.77],[1971,15779.07],[1972,16661.63],[1973,17379.33],[1974,18033.98],[1975,18016.37],[1976,18874.3],[1977,19749.42],[1978,19693.62],[1979,20803.4],[1980,21284.71],[1981,21220.89],[1982,21597.08],[1983,22266.66],[1984,22336.95],[1985,22821.2],[1986,23329.16],[1987,23687.83],[1988,24371.18],[1989,25307.87],[1990,26135],[1991,26744.4],[1992,27042.02],[1993,26882.04],[1994,27463.48],[1995,27918.82],[1996,28602.35],[1997,29095.92],[1998,30107.98],[1999,31039.62],[2000,32008.5],[2001,32196.42],[2002,32417.61],[2003,32741.19],[2004,33455.69],[2005,34108],[2006,35161.23],[2007,36348.95],[2008,37032.76],[2009,35636.42]],"population":[[1820,3369000],[1821,3386000],[1822,3402000],[1823,3419000],[1824,3436000],[1825,3452000],[1826,3469000],[1827,3486000],[1828,3504000],[1829,3521000],[1830,3538000],[1831,3555000],[1832,3573000],[1833,3590000],[1834,3608000],[1835,3626000],[1836,3614000],[1837,3662000],[1838,3680000],[1839,3698000],[1840,3716000],[1841,3739000],[1842,3762000],[1843,3785000],[1844,3808000],[1845,3831000],[1846,3855000],[1847,3878000],[1848,3902000],[1849,3926000],[1850,3950000],[1851,3978000],[1852,4006000],[1853,4035000],[1854,4063000],[1855,4092000],[1856,4120000],[1857,4150000],[1858,4178000],[1859,4206000],[1860,4235000],[1861,4263000],[1862,4292000],[1863,4321000],[1864,4350000],[1865,4380000],[1866,4409000],[1867,4439000],[1868,4469000],[1869,4499000],[1870,4520000],[1871,4562000],[1872,4604000],[1873,4646000],[1874,4688000],[1875,4730000],[1876,4772000],[1877,4815000],[1878,4857000],[1879,4899000],[1880,4941000],[1881,4985000],[1882,5030000],[1883,5075000],[1884,5121000],[1885,5166000],[1886,5212000],[1887,5257000],[1888,5303000],[1889,5348000],[1890,5394000],[1891,5446000],[1892,5504000],[1893,5563000],[1894,5622000],[1895,5680000],[1896,5739000],[1897,5798000],[1898,5856000],[1899,5915000],[1900,5973000],[1901,6035000],[1902,6099000],[1903,6164000],[1904,6228000],[1905,6292000],[1906,6357000],[1907,6421000],[1908,6485000],[1909,6550000],[1910,6614000],[1911,6669000],[1912,6724000],[1913,6767000],[1914,6806000],[1915,6843000],[1916,6825000],[1917,6785000],[1918,6727000],[1919,6420000],[1920,6455000],[1921,6504000],[1922,6528000],[1923,6543000],[1924,6562000],[1925,6582000],[1926,6603000],[1927,6623000],[1928,6643000],[1929,6664000],[1930,6684000],[1931,6705000],[1932,6725000],[1933,6746000],[1934,6760000],[1935,6761000],[1936,6758000],[1937,6755000],[1938,6753000],[1939,6653000],[1940,6705000],[1941,6745000],[1942,6783000],[1943,6808000],[1944,6834000],[1945,6799000],[1946,7000000],[1947,6971000],[1948,6956000],[1949,6943000],[1950,6935100],[1951,6935451],[1952,6927772],[1953,6932483],[1954,6940209],[1955,6946885],[1956,6952359],[1957,6965860],[1958,6987358],[1959,7014331],[1960,7047437],[1961,7086299],[1962,7129864],[1963,7175811],[1964,7223801],[1965,7270889],[1966,7322066],[1967,7376998],[1968,7415403],[1969,7441055],[1970,7467086],[1971,7500482],[1972,7544201],[1973,7586115],[1974,7599038],[1975,7578903],[1976,7565525],[1977,7568430],[1978,7562305],[1979,7549425],[1980,7549433],[1981,7564629],[1982,7574613],[1983,7552896],[1984,7554132],[1985,7559776],[1986,7568242],[1987,7578903],[1988,7599791],[1989,7627861],[1990,7722953],[1991,7818423],[1992,7914969],[1993,7988599],[1994,8027540],[1995,8047433],[1996,8060852],[1997,8069876],[1998,8078622],[1999,8094156],[2000,8113413],[2001,8131690],[2002,8148312],[2003,8162656],[2004,8174762],[2005,8184691],[2006,8192880],[2007,8199783],[2008,8205533]],"lifeExpectancy":[[1800,34.4],[1870,34.4],[1881,35],[1891,37.3],[1901,42],[1903,40.1],[1911,45.1],[1931,56.45],[1947,61.31],[1948,63.24],[1949,63.43],[1950,64.88],[1951,65.26],[1952,66.8],[1953,67.29],[1954,67.32],[1955,67.6],[1956,67.72],[1957,67.48],[1958,68.49],[1959,68.42],[1960,68.78],[1961,69.75],[1962,69.54],[1963,69.67],[1964,70.16],[1965,69.95],[1966,70.26],[1967,70.14],[1968,70.29],[1969,70.06],[1970,70.11],[1971,70.31],[1972,70.63],[1973,71.21],[1974,71.2],[1975,71.33],[1976,71.82],[1977,72.17],[1978,72.25],[1979,72.56],[1980,72.7],[1981,73.02],[1982,73.18],[1983,73.25],[1984,73.79],[1985,74.01],[1986,74.49],[1987,74.93],[1988,75.41],[1989,75.5],[1990,75.77],[1991,75.83],[1992,76.04],[1993,76.27],[1994,76.59],[1995,76.83],[1996,77.1],[1997,77.5],[1998,77.87],[1999,78.05],[2000,78.33],[2001,78.83],[2002,78.96],[2003,78.96],[2004,79.47],[2005,79.64],[2006,80.1],[2007,80.3],[2008,80.51],[2009,80.23]]},{"name":"Azerbaijan","region":"Europe & Central Asia","income":[[1800,639.95],[1820,653.43],[1913,1456.54],[1950,2854.15],[1973,4425.48],[1990,4629.49],[1991,4528.84],[1992,3455.54],[1993,2627.69],[1994,2088.93],[1995,1828.59],[1996,1843.19],[1997,1943.29],[1998,2132.38],[1999,2285.7],[2000,2533.17],[2001,2775.74],[2002,3059.18],[2003,3387.79],[2004,3760.11],[2005,4648],[2006,6183.5],[2007,7646.12],[2008,8381.63],[2009,9088.42]],"population":[[1800,879960],[1820,879960],[1950,2885332],[1951,2983082],[1952,3090973],[1953,3158974],[1954,3222581],[1955,3313718],[1956,3416717],[1957,3526313],[1958,3630590],[1959,3740596],[1960,3881546],[1961,4033503],[1962,4157301],[1963,4283470],[1964,4430183],[1965,4566962],[1966,4701730],[1967,4827284],[1968,4945231],[1969,5059334],[1970,5168973],[1971,5283659],[1972,5393681],[1973,5497774],[1974,5599407],[1975,5696117],[1976,5789818],[1977,5886578],[1978,5986427],[1979,6082087],[1980,6173361],[1981,6270531],[1982,6369133],[1983,6470276],[1984,6578901],[1985,6681687],[1986,6776473],[1987,6873978],[1988,6975798],[1989,7101735],[1990,7199838],[1991,7308339],[1992,7413618],[1993,7497205],[1994,7572945],[1995,7630291],[1996,7668253],[1997,7695123],[1998,7714005],[1999,7729131],[2000,7748163],[2001,7771092],[2002,7798497],[2003,7830764],[2004,7868385],[2005,7911974],[2006,7961619],[2007,8017309],[2008,8079043]],"lifeExpectancy":[[1950,57.15],[1951,57.35],[1952,57.76],[1953,58.17],[1954,58.57],[1955,58.98],[1956,59.38],[1957,59.79],[1958,60.19],[1959,60.6],[1960,61.01],[1961,61.42],[1962,61.84],[1963,62.25],[1964,62.67],[1965,63.08],[1966,63.5],[1967,63.91],[1968,64.3],[1969,64.67],[1970,65],[1971,65.25],[1972,65.42],[1973,65.5],[1974,65.51],[1975,65.45],[1976,65.34],[1977,65.21],[1978,65.08],[1979,64.97],[1980,64.92],[1981,64.93],[1982,65.02],[1983,65.17],[1984,65.36],[1985,65.55],[1986,65.72],[1987,65.82],[1988,65.84],[1989,65.77],[1990,65.65],[1991,65.49],[1992,65.35],[1993,65.27],[1994,65.26],[1995,65.36],[1996,65.56],[1997,65.86],[1998,66.23],[1999,66.67],[2000,67.14],[2001,67.63],[2002,68.11],[2003,68.58],[2004,69.01],[2005,69.39],[2006,69.73],[2007,70.04],[2008,70.33],[2009,70.6]]},{"name":"Belarus","region":"Europe & Central Asia","income":[[1800,717.05],[1820,732.15],[1913,1632.01],[1950,3197.98],[1973,4958.61],[1990,6807.78],[1991,6693.19],[1992,6014.41],[1993,5528.26],[1994,4868.62],[1995,4355.51],[1996,4475.41],[1997,4987.79],[1998,5411.86],[1999,5602.35],[2000,5936.24],[2001,6225.16],[2002,6545.79],[2003,6999.86],[2004,7806.72],[2005,8541],[2006,9431.37],[2007,10271.59],[2008,11322.27],[2009,11574.43]],"population":[[1800,2355081],[1820,2355081],[1950,7722155],[1951,7742159],[1952,7698249],[1953,7666821],[1954,7698751],[1955,7780565],[1956,7856790],[1957,7912626],[1958,7982625],[1959,8075290],[1960,8167918],[1961,8262998],[1962,8365073],[1963,8438881],[1964,8501607],[1965,8590786],[1966,8694009],[1967,8786887],[1968,8864776],[1969,8946091],[1970,9027198],[1971,9101396],[1972,9169156],[1973,9236465],[1974,9304311],[1975,9360184],[1976,9405544],[1977,9457385],[1978,9520280],[1979,9581518],[1980,9643706],[1981,9712761],[1982,9778781],[1983,9845174],[1984,9914262],[1985,9981744],[1986,10044184],[1987,10097446],[1988,10149612],[1989,10184084],[1990,10215208],[1991,10244639],[1992,10306362],[1993,10360516],[1994,10387841],[1995,10403989],[1996,10408773],[1997,10404210],[1998,10394407],[1999,10382370],[2000,10366719],[2001,10350194],[2002,10335382],[2003,10322151],[2004,10310520],[2005,10300483],[2006,10293011],[2007,10289007],[2008,10287955]],"lifeExpectancy":[[1800,36.2],[1900,36.2],[1950,65.02],[1951,65.25],[1952,65.69],[1953,66.13],[1954,66.55],[1955,66.96],[1956,67.36],[1957,67.74],[1958,68.11],[1959,69.06],[1960,71.85],[1961,72.57],[1962,71.29],[1963,71.95],[1964,73.48],[1965,73.02],[1966,73.38],[1967,73.13],[1968,73.24],[1969,72.84],[1970,72.32],[1971,72.96],[1972,72.67],[1973,72.71],[1974,73.01],[1975,72.08],[1976,71.92],[1977,71.86],[1978,71.72],[1979,71.32],[1980,71.08],[1981,71.36],[1982,71.49],[1983,71.28],[1984,70.65],[1985,70.86],[1986,72.25],[1987,72.15],[1988,71.89],[1989,71.68],[1990,71.14],[1991,70.58],[1992,70.16],[1993,69.05],[1994,68.81],[1995,68.42],[1996,68.56],[1997,68.37],[1998,68.37],[1999,67.97],[2000,68.99],[2001,68.61],[2002,68.17],[2003,68.71],[2004,69.09],[2005,68.84],[2006,69.51],[2007,70.41],[2008,69.19],[2009,69.4]]},{"name":"Belgium","region":"Europe & Central Asia","income":[[1800,1554],[1820,1566.22],[1821,1570.35],[1822,1574.5],[1823,1578.66],[1824,1582.83],[1825,1587.02],[1826,1591.21],[1827,1595.41],[1828,1599.63],[1829,1603.86],[1830,1608.09],[1831,1630.75],[1832,1653.73],[1833,1677.03],[1834,1700.66],[1835,1724.62],[1836,1748.92],[1837,1773.57],[1838,1798.56],[1839,1823.9],[1840,1849.6],[1841,1875.66],[1842,1902.09],[1843,1928.89],[1844,1956.07],[1845,1983.63],[1846,2011.58],[1847,2092.67],[1848,2083.09],[1849,2127.15],[1850,2194.69],[1851,2241.25],[1852,2286.73],[1853,2332.14],[1854,2461.44],[1855,2462.74],[1856,2581.08],[1857,2631],[1858,2631.23],[1859,2614.36],[1860,2728.3],[1861,2749.4],[1862,2801.79],[1863,2861.59],[1864,2936.27],[1865,2914.6],[1866,2980.08],[1867,2973.81],[1868,3059.92],[1869,3171.27],[1870,3206.23],[1871,3195.35],[1872,3364.87],[1873,3360.56],[1874,3444.3],[1875,3409.48],[1876,3426.09],[1877,3437.96],[1878,3507.43],[1879,3510.63],[1880,3654.84],[1881,3660.7],[1882,3740.81],[1883,3751.04],[1884,3740.87],[1885,3742.93],[1886,3761.51],[1887,3877.6],[1888,3874.23],[1889,4032.17],[1890,4091.5],[1891,4052.2],[1892,4108.36],[1893,4124.83],[1894,4140.29],[1895,4192.43],[1896,4240.59],[1897,4282.65],[1898,4316.81],[1899,4366.64],[1900,4456.85],[1901,4442.72],[1902,4466.99],[1903,4506.92],[1904,4565.58],[1905,4639.15],[1906,4682.47],[1907,4700.11],[1908,4700.77],[1909,4746.97],[1910,4858.37],[1911,4959.53],[1912,5029.69],[1913,5045.58],[1914,3696.15],[1915,3027.96],[1916,3388.9],[1917,2821.92],[1918,2636.44],[1919,3249.35],[1920,4906.66],[1921,5166.58],[1922,5513.88],[1923,5864.8],[1924,6123.55],[1925,6131.49],[1926,6209.34],[1927,6183.18],[1928,6598.97],[1929,6763.13],[1930,6865.1],[1931,6615.19],[1932,6291.57],[1933,6216.09],[1934,6063.88],[1935,6335.16],[1936,6529.96],[1937,6834.46],[1938,6697.85],[1939,6423.53],[1940,5272.8],[1941,4501.67],[1942,4617.74],[1943,3740.56],[1944,3794.18],[1945,4048.7],[1946,6372.25],[1947,7175.79],[1948,7533.41],[1949,7749.11],[1950,7990.47],[1951,8393.42],[1952,8343.11],[1953,8645.37],[1954,8950.31],[1955,9244.73],[1956,9529.4],[1957,9714.96],[1958,9477.27],[1959,9675.47],[1960,10076.6],[1961,10512.51],[1962,10991.21],[1963,11396.13],[1964,12089.41],[1965,12406.29],[1966,12720.18],[1967,13149.04],[1968,13647.2],[1969,14520.74],[1970,15379.71],[1971,15899.66],[1972,16672.14],[1973,17639.58],[1974,18325.17],[1975,18032.12],[1976,19019.94],[1977,19117.97],[1978,19645.54],[1979,20090.12],[1980,20969.62],[1981,20696.13],[1982,20979.85],[1983,20979.01],[1984,21498.94],[1985,21708.75],[1986,22024.75],[1987,22525.56],[1988,23555.82],[1989,24269.23],[1990,24925.91],[1991,25293.57],[1992,25575.57],[1993,25229.6],[1994,25947.3],[1995,26480.95],[1996,26725.5],[1997,27561.2],[1998,28030.61],[1999,28937.15],[2000,29940.2],[2001,30092.08],[2002,30485.88],[2003,30736.53],[2004,31600.02],[2005,32077],[2006,32738.41],[2007,33448],[2008,33490.47],[2009,32256.64]],"population":[[1820,3434000],[1821,3464000],[1822,3495000],[1823,3526000],[1824,3557000],[1825,3589000],[1826,3620000],[1827,3652000],[1828,3685000],[1829,3717000],[1830,3750000],[1831,3782000],[1832,3814000],[1833,3846000],[1834,3879000],[1835,3912000],[1836,3945000],[1837,3978000],[1838,4012000],[1839,4046000],[1840,4080000],[1841,4115000],[1842,4151000],[1843,4187000],[1844,4223000],[1845,4259000],[1846,4296000],[1847,4333000],[1848,4371000],[1849,4408000],[1850,4449000],[1851,4477000],[1852,4506000],[1853,4534000],[1854,4563000],[1855,4592000],[1856,4621000],[1857,4651000],[1858,4680000],[1859,4710000],[1860,4740000],[1861,4774000],[1862,4809000],[1863,4844000],[1864,4879000],[1865,4915000],[1866,4950000],[1867,4986000],[1868,5023000],[1869,5029000],[1870,5096000],[1871,5137000],[1872,5178000],[1873,5219000],[1874,5261000],[1875,5303000],[1876,5345000],[1877,5394000],[1878,5442000],[1879,5492000],[1880,5541000],[1881,5606000],[1882,5673000],[1883,5740000],[1884,5807000],[1885,5876000],[1886,5919000],[1887,5962000],[1888,6007000],[1889,6051000],[1890,6096000],[1891,6164000],[1892,6231000],[1893,6300000],[1894,6370000],[1895,6439000],[1896,6494000],[1897,6548000],[1898,6604000],[1899,6662000],[1900,6719000],[1901,6801000],[1902,6903000],[1903,6997000],[1904,7086000],[1905,7175000],[1906,7258000],[1907,7338000],[1908,7411000],[1909,7478000],[1910,7498000],[1911,7517000],[1912,7590000],[1913,7666000],[1914,7723000],[1915,7759000],[1916,7762000],[1917,7729000],[1918,7660000],[1919,7628000],[1920,7552000],[1921,7504000],[1922,7571000],[1923,7635000],[1924,7707000],[1925,7779000],[1926,7844000],[1927,7904000],[1928,7968000],[1929,8032000],[1930,8076000],[1931,8126000],[1932,8186000],[1933,8231000],[1934,8262000],[1935,8288000],[1936,8315000],[1937,8346000],[1938,8374000],[1939,8392000],[1940,8346000],[1941,8276000],[1942,8247000],[1943,8242000],[1944,8291000],[1945,8339000],[1946,8367000],[1947,8450000],[1948,8557000],[1949,8614000],[1950,8639369],[1951,8678386],[1952,8730405],[1953,8777873],[1954,8819380],[1955,8868475],[1956,8923845],[1957,8989111],[1958,9052707],[1959,9103729],[1960,9118700],[1961,9165800],[1962,9218400],[1963,9283100],[1964,9367000],[1965,9448100],[1966,9507800],[1967,9556500],[1968,9589800],[1969,9612700],[1970,9637800],[1971,9672500],[1972,9709100],[1973,9738400],[1974,9767800],[1975,9794800],[1976,9811000],[1977,9821800],[1978,9829700],[1979,9837200],[1980,9846800],[1981,9852400],[1982,9856303],[1983,9855520],[1984,9855300],[1985,9858200],[1986,9861800],[1987,9870200],[1988,9884000],[1989,9937697],[1990,9969310],[1991,10004487],[1992,10045622],[1993,10085426],[1994,10122914],[1995,10155459],[1996,10178934],[1997,10199787],[1998,10217030],[1999,10235655],[2000,10263618],[2001,10291679],[2002,10311970],[2003,10330824],[2004,10348276],[2005,10364388],[2006,10379067],[2007,10392226],[2008,10403951]],"lifeExpectancy":[[1800,40],[1841,40.33],[1842,38.66],[1843,40.36],[1844,41.9],[1845,41.03],[1846,37.83],[1847,35.11],[1848,38.04],[1849,34.5],[1850,42.28],[1851,41.88],[1852,41.77],[1853,41.33],[1854,39.78],[1855,37.49],[1856,40.92],[1857,40.49],[1858,40.18],[1859,38.98],[1860,45.12],[1861,41.27],[1862,43.12],[1863,41.33],[1864,39.81],[1865,37.74],[1866,32.47],[1867,43.08],[1868,42.56],[1869,42.58],[1870,40.92],[1871,34.35],[1872,40.04],[1873,43.48],[1874,44.67],[1875,42.17],[1876,43.68],[1877,44.48],[1878,44.24],[1879,43.84],[1880,42.48],[1881,44.42],[1882,45.54],[1883,44.89],[1884,44.24],[1885,45.48],[1886,43.36],[1887,46.06],[1888,44.92],[1889,45.07],[1890,44.14],[1891,44.06],[1892,43.16],[1893,44.44],[1894,46.65],[1895,45.46],[1896,48.06],[1897,48.82],[1898,48.12],[1899,46.49],[1900,46.59],[1901,49.44],[1902,49.18],[1903,49.26],[1904,49.32],[1905,50.01],[1906,49.74],[1907,51.11],[1908,49.7],[1909,50.7],[1910,51.37],[1911,49.25],[1912,52.26],[1913,52.51],[1919,49.86],[1920,53.66],[1921,54.75],[1922,55.15],[1923,56.77],[1924,57.51],[1925,57.16],[1926,56.97],[1927,57.2],[1928,57.53],[1929,55.07],[1930,57.17],[1931,58.51],[1932,58.59],[1933,58.76],[1934,60.42],[1935,60.01],[1936,60.01],[1937,60],[1938,60.15],[1939,60.01],[1940,55.96],[1941,58.95],[1942,59.2],[1943,60.39],[1944,56.94],[1945,58.39],[1946,61.92],[1947,63.46],[1948,64.98],[1949,65.48],[1950,66.35],[1951,66.8],[1952,68],[1953,68.37],[1954,68.63],[1955,68.58],[1956,68.87],[1957,69.24],[1958,69.93],[1959,70.33],[1960,69.65],[1961,70.52],[1962,70.25],[1963,70.06],[1964,70.73],[1965,70.58],[1966,70.65],[1967,70.94],[1968,70.63],[1969,70.71],[1970,70.97],[1971,71.1],[1972,71.44],[1973,71.65],[1974,72.01],[1975,72],[1976,72.15],[1977,72.8],[1978,72.75],[1979,73.24],[1980,73.29],[1981,73.7],[1982,73.93],[1983,73.93],[1984,74.43],[1985,74.54],[1986,74.74],[1987,75.35],[1988,75.66],[1989,75.73],[1990,76.14],[1991,76.3],[1992,76.46],[1993,76.47],[1994,76.82],[1995,76.97],[1996,77.31],[1997,77.53],[1998,77.62],[1999,77.8],[2000,77.91],[2001,78.22],[2002,78.32],[2003,78.47],[2004,79.12],[2005,79.21],[2006,79.55],[2007,79.49],[2008,79.78],[2009,80.05]]},{"name":"Bosnia and Herzegovina","region":"Europe & Central Asia","income":[[1800,490.82],[1820,501.12],[1870,402.62],[1890,566.65],[1900,606.28],[1910,710.41],[1913,710.43],[1920,693.15],[1921,699.98],[1922,710.29],[1923,736.69],[1924,778.43],[1925,805.15],[1926,849.17],[1927,823.56],[1928,883.37],[1929,916.93],[1930,886.2],[1931,847.43],[1932,758.01],[1933,770.86],[1934,788.59],[1935,766.06],[1936,853.69],[1937,855.96],[1938,911.73],[1939,948.93],[1947,884.19],[1948,1040.8],[1949,1128.12],[1950,1042.5],[1951,1069.5],[1952,973.53],[1953,1104.17],[1954,1150.69],[1955,1208.08],[1956,1170.76],[1957,1353.99],[1958,1398.03],[1959,1555.19],[1960,1638.06],[1961,1694.86],[1962,1709.68],[1963,1869.42],[1964,2029.36],[1965,2063.9],[1966,2154.29],[1967,2172.35],[1968,2199.57],[1969,2426.35],[1970,2523.61],[1971,2790],[1972,2860.17],[1973,2930.94],[1974,3279.66],[1975,3250.83],[1976,3319.88],[1977,3528.48],[1978,3690.94],[1979,3910.97],[1980,4075.45],[1981,4123.1],[1982,4126.61],[1983,4138.77],[1984,4220.39],[1985,4232.24],[1986,4383.55],[1987,4314.11],[1988,4234.67],[1989,4162.74],[1990,3844.61],[1991,3378.38],[1992,2546.78],[1993,1895.66],[1994,2034.37],[1995,2200.62],[1996,3487.83],[1997,4766.36],[1998,5251.02],[1999,5544.95],[2000,5733.15],[2001,5880.63],[2002,6018.98],[2003,6097.74],[2004,6317.27],[2005,6506],[2006,6856.27],[2007,7247.13],[2008,7619.54],[2009,7341.98]],"population":[[1800,851806],[1820,851806],[1950,2662000],[1951,2721000],[1952,2791000],[1953,2863000],[1954,2916000],[1955,2974000],[1956,3025000],[1957,3076000],[1958,3126000],[1959,3185000],[1960,3240000],[1961,3299000],[1962,3349000],[1963,3399000],[1964,3445000],[1965,3493000],[1966,3541000],[1967,3585000],[1968,3627000],[1969,3669000],[1970,3703000],[1971,3761000],[1972,3819000],[1973,3872000],[1974,3925000],[1975,3980000],[1976,4033000],[1977,4086000],[1978,4135000],[1979,4181000],[1980,4092000],[1981,4135743],[1982,4172693],[1983,4207275],[1984,4241401],[1985,4275355],[1986,4307685],[1987,4338977],[1988,4369894],[1989,4398322],[1990,4423646],[1991,4449406],[1992,4256013],[1993,3955016],[1994,3784983],[1995,3708960],[1996,3608495],[1997,3607000],[1998,3817575],[1999,3958653],[2000,4035457],[2001,4111293],[2002,4165416],[2003,4243181],[2004,4345591],[2005,4430494],[2006,4498976],[2007,4552198],[2008,4590310]],"lifeExpectancy":[[1800,35.1],[1920,35.1],[1950,51.68],[1951,52.24],[1952,53.34],[1953,54.38],[1954,55.37],[1955,56.32],[1956,57.21],[1957,58.06],[1958,58.86],[1959,59.62],[1960,60.33],[1961,61.01],[1962,61.65],[1963,62.26],[1964,62.85],[1965,63.43],[1966,63.99],[1967,64.54],[1968,65.09],[1969,65.63],[1970,66.16],[1971,66.7],[1972,67.24],[1973,67.78],[1974,68.3],[1975,68.8],[1976,69.25],[1977,69.64],[1978,69.96],[1979,70.22],[1980,70.45],[1981,70.69],[1982,70.94],[1983,71.21],[1984,71.44],[1985,71.5],[1986,71.22],[1987,70.53],[1988,69.45],[1989,68.1],[1990,66.74],[1991,65.69],[1992,65.22],[1993,65.44],[1994,66.36],[1995,67.85],[1996,69.63],[1997,71.38],[1998,72.83],[1999,73.88],[2000,74.49],[2001,74.72],[2002,74.77],[2003,74.76],[2004,74.77],[2005,74.82],[2006,74.93],[2007,75.06],[2008,75.2],[2009,75.34]]},{"name":"Bulgaria","region":"Europe & Central Asia","income":[[1800,836.31],[1820,853.86],[1870,1084.36],[1890,1460.07],[1900,1578.95],[1910,1879.73],[1913,1980.34],[1924,1173.28],[1925,1190.81],[1926,1509.7],[1927,1619.8],[1928,1573.86],[1929,1523.89],[1930,1658.24],[1931,1876.69],[1932,1864.41],[1933,1871.38],[1934,1689.5],[1935,1595.52],[1936,1927.59],[1937,2022.45],[1938,2059.3],[1939,2068.96],[1940,1998.58],[1941,2022.66],[1942,1910.08],[1943,1953.88],[1944,1790.93],[1945,1384.92],[1950,2131.56],[1951,2567.42],[1952,2444.29],[1953,2691.94],[1954,2613.98],[1955,2772.89],[1956,2747.38],[1957,3008.67],[1958,3238.11],[1959,3464.57],[1960,3759.17],[1961,3966.09],[1962,4254.34],[1963,4412.81],[1964,4721.86],[1965,4970.49],[1966,5325.95],[1967,5577],[1968,5639.35],[1969,5868.78],[1970,6162.47],[1971,6328.5],[1972,6597.49],[1973,6822.39],[1974,6989.57],[1975,7527.86],[1976,7722.87],[1977,7612.24],[1978,7771.12],[1979,8062.6],[1980,7802.85],[1981,7987.02],[1982,8224.19],[1983,8052.37],[1984,8301.98],[1985,8037.95],[1986,8236.46],[1987,8239.85],[1988,8179.01],[1989,8025.27],[1990,7225.88],[1991,6710.7],[1992,6302.62],[1993,6367.39],[1994,6550.71],[1995,6820.31],[1996,6250.97],[1997,5970.39],[1998,6282.64],[1999,6491.1],[2000,6907.01],[2001,7264.61],[2002,7696.78],[2003,8105.39],[2004,8721.23],[2005,9353],[2006,9995.42],[2007,10923.45],[2008,11357.63],[2009,10840.26]],"population":[[1820,2187000],[1850,2500000],[1870,2586000],[1890,3445000],[1900,4000000],[1910,4520000],[1913,4720000],[1920,5072000],[1921,5148000],[1922,5255000],[1923,5365000],[1924,5476000],[1925,5590000],[1926,5705000],[1927,5798000],[1928,5873000],[1929,5950000],[1930,6027000],[1931,6106000],[1932,6186000],[1933,6267000],[1934,6349000],[1935,6415000],[1936,6469000],[1937,6514000],[1938,6564000],[1939,6614000],[1940,6666000],[1941,6715000],[1942,6771000],[1943,6828000],[1944,6885000],[1945,6942000],[1946,7000000],[1947,7064000],[1948,7130000],[1949,7195000],[1950,7250500],[1951,7258200],[1952,7274900],[1953,7346100],[1954,7423300],[1955,7499400],[1956,7575800],[1957,7651254],[1958,7727553],[1959,7797777],[1960,7867374],[1961,7943118],[1962,8012946],[1963,8078145],[1964,8144339],[1965,8201400],[1966,8258057],[1967,8310226],[1968,8369603],[1969,8434172],[1970,8489574],[1971,8536395],[1972,8576200],[1973,8620997],[1974,8678745],[1975,8720742],[1976,8755037],[1977,8797022],[1978,8803281],[1979,8811589],[1980,8843528],[1981,8869441],[1982,8892098],[1983,8910284],[1984,8928271],[1985,8943573],[1986,8958770],[1987,8971958],[1988,8982025],[1989,8990055],[1990,8894028],[1991,8772368],[1992,8658506],[1993,8441872],[1994,8353335],[1995,8255811],[1996,8161026],[1997,8066057],[1998,7971774],[1999,7893227],[2000,7818495],[2001,7738416],[2002,7661799],[2003,7588399],[2004,7517973],[2005,7450349],[2006,7385367],[2007,7322858],[2008,7262675]],"lifeExpectancy":[[1800,35.8],[1900,40.2],[1902,42.5],[1905,43.3],[1923,44.6],[1926,45.3],[1930,48.3],[1937,51.8],[1947,54.08],[1948,55.79],[1949,57.92],[1950,61.39],[1951,60.63],[1952,59.6],[1953,64.14],[1954,64.4],[1955,64.81],[1956,65.21],[1957,66.61],[1958,68.71],[1959,66.57],[1960,69.18],[1961,70.22],[1962,69.51],[1963,70.34],[1964,71.14],[1965,71.3],[1966,71.23],[1967,70.42],[1968,71.25],[1969,70.43],[1970,71.27],[1971,70.87],[1972,70.9],[1973,71.34],[1974,71.2],[1975,71.05],[1976,71.38],[1977,70.81],[1978,71.17],[1979,71.27],[1980,71.1],[1981,71.49],[1982,71.08],[1983,71.25],[1984,71.35],[1985,71.07],[1986,71.55],[1987,71.34],[1988,71.4],[1989,71.46],[1990,71.31],[1991,71.19],[1992,71.19],[1993,71.18],[1994,70.85],[1995,70.95],[1996,70.85],[1997,70.32],[1998,70.91],[1999,71.57],[2000,71.59],[2001,71.9],[2002,72.14],[2003,72.35],[2004,72.54],[2005,72.53],[2006,72.64],[2007,72.95],[2008,73.32],[2009,73.53]]},{"name":"Croatia","region":"Europe & Central Asia","income":[[1800,1227.06],[1820,1252.8],[1870,1290.02],[1890,1815.56],[1900,1942.56],[1910,2276.2],[1913,2276.25],[1920,2220.87],[1921,2242.77],[1922,2275.79],[1923,2360.39],[1924,2494.12],[1925,2579.72],[1926,2720.79],[1927,2638.71],[1928,2830.35],[1929,2937.87],[1930,2839.43],[1931,2715.2],[1932,2428.7],[1933,2469.86],[1934,2526.67],[1935,2454.48],[1936,2735.24],[1937,2742.51],[1938,2921.23],[1939,3040.4],[1947,2832.99],[1948,3334.76],[1949,3614.53],[1950,3340.19],[1951,3426.71],[1952,3119.24],[1953,3537.81],[1954,3686.86],[1955,3870.72],[1956,3751.15],[1957,4338.23],[1958,4479.35],[1959,4982.88],[1960,5248.4],[1961,5430.38],[1962,5477.89],[1963,5989.69],[1964,6502.15],[1965,6612.81],[1966,6902.41],[1967,6960.3],[1968,7047.52],[1969,7774.12],[1970,8085.73],[1971,8939.27],[1972,9164.09],[1973,9390.85],[1974,10508.17],[1975,10415.79],[1976,10637.03],[1977,11305.39],[1978,11825.89],[1979,12530.9],[1980,13057.9],[1981,13210.57],[1982,13221.82],[1983,13260.78],[1984,13522.3],[1985,13560.25],[1986,14045.06],[1987,13822.58],[1988,13568.05],[1989,13337.57],[1990,12318.28],[1991,9653.91],[1992,8447.79],[1993,7699.56],[1994,8100.49],[1995,8636.98],[1996,9176.84],[1997,9875.6],[1998,10225.82],[1999,10229.92],[2000,10582.67],[2001,11070.38],[2002,11628.39],[2003,12080.57],[2004,12490.93],[2005,13232],[2006,13865.36],[2007,14635.87],[2008,14981.18],[2009,14110.46]],"population":[[1800,1227886],[1820,1227886],[1950,3837297],[1951,3859830],[1952,3882229],[1953,3906475],[1954,3929591],[1955,3955526],[1956,3973442],[1957,3991242],[1958,4004029],[1959,4020631],[1960,4036145],[1961,4055443],[1962,4076557],[1963,4098506],[1964,4113553],[1965,4133313],[1966,4155830],[1967,4174366],[1968,4189903],[1969,4200551],[1970,4205389],[1971,4215869],[1972,4225310],[1973,4234664],[1974,4245822],[1975,4255000],[1976,4286311],[1977,4318673],[1978,4349242],[1979,4379909],[1980,4383000],[1981,4390829],[1982,4413368],[1983,4430941],[1984,4441854],[1985,4457874],[1986,4471752],[1987,4484310],[1988,4493676],[1989,4501397],[1990,4508347],[1991,4540641],[1992,4494013],[1993,4486066],[1994,4511187],[1995,4496683],[1996,4464030],[1997,4444595],[1998,4420195],[1999,4408383],[2000,4410830],[2001,4439110],[2002,4481020],[2003,4497779],[2004,4496869],[2005,4495904],[2006,4494749],[2007,4493312],[2008,4491543]],"lifeExpectancy":[[1800,36.1],[1920,36.1],[1950,59.5],[1951,59.95],[1952,60.83],[1953,61.66],[1954,62.44],[1955,63.18],[1956,63.87],[1957,64.5],[1958,65.09],[1959,65.63],[1960,66.12],[1961,66.57],[1962,66.96],[1963,67.31],[1964,67.63],[1965,67.92],[1966,68.18],[1967,68.42],[1968,68.65],[1969,68.87],[1970,69.09],[1971,69.32],[1972,69.55],[1973,69.79],[1974,70.01],[1975,70.22],[1976,70.38],[1977,70.5],[1978,70.55],[1979,70.56],[1980,70.55],[1981,70.54],[1982,70.55],[1983,70.61],[1984,70.73],[1985,70.9],[1986,71.1],[1987,71.31],[1988,71.53],[1989,71.73],[1990,71.95],[1991,72.2],[1992,72.49],[1993,72.83],[1994,73.21],[1995,73.6],[1996,73.96],[1997,74.27],[1998,74.52],[1999,74.69],[2000,74.81],[2001,74.9],[2002,75],[2003,75.14],[2004,75.31],[2005,75.53],[2006,75.78],[2007,76.03],[2008,76.27],[2009,76.49]]},{"name":"Cyprus","region":"Europe & Central Asia","income":[[1800,572.78],[1820,592.1],[1913,1752.95],[1950,2920.87],[1970,6323.94],[1971,7126.25],[1972,7624.59],[1973,7845.87],[1974,7689.08],[1975,6454.1],[1976,7680.86],[1977,8898.47],[1978,9539.09],[1979,10405.7],[1980,10904.71],[1981,11096.52],[1982,11663.94],[1983,12125.95],[1984,13018.71],[1985,13469.91],[1986,13820.98],[1987,14634.95],[1988,15679.76],[1989,16704.33],[1990,17572.31],[1991,17235.54],[1992,18364.5],[1993,18043.12],[1994,18695.08],[1995,20180.14],[1996,20228.69],[1997,20409.23],[1998,21170.8],[1999,21953.68],[2000,22821.38],[2001,23469.74],[2002,23683.6],[2003,23766.98],[2004,24211.44],[2005,24473],[2006,24908.98],[2007,25774.93],[2008,26349.47],[2009,25643.45]],"population":[[1800,184392],[1881,186000],[1891,209000],[1901,237000],[1911,274000],[1921,311000],[1931,348000],[1946,450000],[1950,494000],[1951,502000],[1952,508000],[1953,515000],[1954,523000],[1955,530000],[1956,536000],[1957,546000],[1958,558000],[1959,567000],[1960,573000],[1961,578700],[1962,576000],[1963,582300],[1964,586500],[1965,590800],[1966,595000],[1967,599400],[1968,604300],[1969,609400],[1970,614600],[1971,619800],[1972,626300],[1973,633900],[1974,640700],[1975,610500],[1976,598600],[1977,598400],[1978,601000],[1979,605100],[1980,611000],[1981,617900],[1982,624300],[1983,631800],[1984,639900],[1985,647300],[1986,650000],[1987,659400],[1988,664217],[1989,670912],[1990,681349],[1991,693906],[1992,707285],[1993,718776],[1994,726752],[1995,733188],[1996,738649],[1997,743728],[1998,748822],[1999,753692],[2000,758363],[2001,762887],[2002,767314],[2003,771657],[2004,775927],[2005,780133],[2006,784301],[2007,788457],[2008,792604]],"lifeExpectancy":[[1800,38.5],[1895,38.51],[1905,45],[1915,47.46],[1925,48.46],[1937,48.46],[1943,53.46],[1950,66.55],[1951,66.66],[1952,66.88],[1953,67.1],[1954,67.32],[1955,67.54],[1956,67.76],[1957,67.98],[1958,68.2],[1959,68.42],[1960,68.65],[1961,68.87],[1962,69.09],[1963,69.31],[1964,69.53],[1965,69.75],[1966,69.95],[1967,70.15],[1968,70.35],[1969,70.55],[1970,70.77],[1971,71.03],[1972,71.34],[1973,71.7],[1974,72.11],[1975,72.54],[1976,72.98],[1977,73.41],[1978,73.8],[1979,74.14],[1980,74.44],[1981,74.69],[1982,74.93],[1983,75.16],[1984,75.39],[1985,75.61],[1986,75.82],[1987,76.02],[1988,76.21],[1989,76.38],[1990,76.55],[1991,76.71],[1992,76.87],[1993,77.05],[1994,77.23],[1995,77.42],[1996,77.63],[1997,77.86],[1998,78.08],[1999,78.31],[2000,78.54],[2001,78.75],[2002,78.94],[2003,79.11],[2004,79.27],[2005,79.4],[2006,79.52],[2007,79.63],[2008,79.74],[2009,79.85]]},{"name":"Denmark","region":"Europe & Central Asia","income":[[1800,1342.84],[1820,1389.28],[1821,1442.33],[1822,1450.88],[1823,1432.15],[1824,1456.44],[1825,1451.29],[1826,1456.02],[1827,1485.24],[1828,1495.5],[1829,1461.16],[1830,1470.07],[1831,1459.29],[1832,1500.9],[1833,1483.15],[1834,1552.3],[1835,1531.9],[1836,1523.43],[1837,1552.67],[1838,1553.12],[1839,1560.42],[1840,1599.67],[1841,1585.44],[1842,1580.41],[1843,1659.37],[1844,1719.34],[1845,1748.87],[1846,1770.96],[1847,1749.37],[1848,1825.11],[1849,1917.22],[1850,2005.8],[1851,1888.73],[1852,1937.48],[1853,1928.12],[1854,1918.48],[1855,2105.48],[1856,1963.1],[1857,1972.19],[1858,1936.14],[1859,2042.7],[1860,2002.6],[1861,2012.25],[1862,2051.1],[1863,2158.64],[1864,2119.27],[1865,2170.78],[1866,2155.68],[1867,2136.16],[1868,2154.08],[1869,2258.2],[1870,2334.67],[1871,2325.92],[1872,2438.77],[1873,2406.44],[1874,2456.17],[1875,2477.37],[1876,2502.66],[1877,2406.95],[1878,2476.02],[1879,2534.1],[1880,2576.34],[1881,2581.47],[1882,2652.98],[1883,2726.01],[1884,2713.39],[1885,2703.7],[1886,2780.97],[1887,2854.28],[1888,2851.25],[1889,2867.96],[1890,3019.69],[1891,3061.96],[1892,3117.15],[1893,3158.46],[1894,3197.16],[1895,3337.28],[1896,3420.8],[1897,3458.18],[1898,3470.75],[1899,3575.26],[1900,3658.24],[1901,3769.45],[1902,3819.26],[1903,4006.01],[1904,4054.34],[1905,4084.6],[1906,4158.25],[1907,4267.16],[1908,4353.49],[1909,4470.21],[1910,4553.02],[1911,4745.57],[1912,4697.1],[1913,4826.63],[1914,5077.93],[1915,4673.39],[1916,4819.94],[1917,4485.64],[1918,4295.37],[1919,4799.78],[1920,4970.96],[1921,4770.64],[1922,5201.84],[1923,5699.38],[1924,5668.6],[1925,5488.31],[1926,5770.84],[1927,5854.2],[1928,6022.47],[1929,6395.75],[1930,6739.15],[1931,6771.4],[1932,6540.17],[1933,6702.3],[1934,6852.67],[1935,6960.34],[1936,7090.48],[1937,7219.21],[1938,7348.56],[1939,7652.71],[1940,6541.9],[1941,5855.93],[1942,5933.93],[1943,6521.29],[1944,7125.28],[1945,6520.8],[1946,7445.19],[1947,7788.25],[1948,7925.43],[1949,8403.5],[1950,8996.05],[1951,8999.38],[1952,9035.67],[1953,9485.18],[1954,9601.58],[1955,9645.67],[1956,9715.12],[1957,10416.31],[1958,10600.5],[1959,11325.13],[1960,11569.48],[1961,12242.19],[1962,12831.71],[1963,12828.01],[1964,13937.78],[1965,14476.65],[1966,14769.04],[1967,15155.34],[1968,15706.49],[1969,16649.14],[1970,16877.42],[1971,17230.2],[1972,18059.78],[1973,18627.44],[1974,18392.37],[1975,18242.49],[1976,19400.16],[1977,19679.76],[1978,19934.76],[1979,20617.91],[1980,20529.08],[1981,20379.19],[1982,21037.65],[1983,21610.89],[1984,22601.41],[1985,23592.45],[1986,24451.45],[1987,24524.78],[1988,24831.14],[1989,24914.52],[1990,25208.56],[1991,25503.74],[1992,25956.19],[1993,25882.23],[1994,27258.06],[1995,27985.59],[1996,28655.63],[1997,29490.37],[1998,30058.99],[1999,30767.67],[2000,31805.54],[2001,31964.4],[2002,32039.01],[2003,32089.74],[2004,32694.6],[2005,33626],[2006,34664.67],[2007,35124.41],[2008,34636.39],[2009,32670.06]],"population":[[1820,1155000],[1821,1167000],[1822,1179000],[1823,1196000],[1824,1213000],[1825,1228000],[1826,1243000],[1827,1255000],[1828,1265000],[1829,1270000],[1830,1273000],[1831,1275000],[1832,1276000],[1833,1284000],[1834,1295000],[1835,1306000],[1836,1315000],[1837,1325000],[1838,1335000],[1839,1347000],[1840,1357000],[1841,1371000],[1842,1385000],[1843,1392000],[1844,1414000],[1845,1430000],[1846,1444000],[1847,1456000],[1848,1470000],[1849,1484000],[1850,1499000],[1851,1517000],[1852,1536000],[1853,1552000],[1854,1569000],[1855,1590000],[1856,1612000],[1857,1634000],[1858,1653000],[1859,1674000],[1860,1696000],[1861,1717000],[1862,1739000],[1863,1761000],[1864,1777000],[1865,1799000],[1866,1814000],[1867,1833000],[1868,1852000],[1869,1871000],[1870,1888000],[1871,1903000],[1872,1918000],[1873,1935000],[1874,1954000],[1875,1973000],[1876,1994000],[1877,2019000],[1878,2043000],[1879,2064000],[1880,2081000],[1881,2101000],[1882,2120000],[1883,2137000],[1884,2160000],[1885,2186000],[1886,2213000],[1887,2237000],[1888,2257000],[1889,2276000],[1890,2294000],[1891,2311000],[1892,2327000],[1893,2344000],[1894,2367000],[1895,2397000],[1896,2428000],[1897,2462000],[1898,2497000],[1899,2530000],[1900,2561000],[1901,2594000],[1902,2623000],[1903,2653000],[1904,2681000],[1905,2710000],[1906,2741000],[1907,2775000],[1908,2809000],[1909,2845000],[1910,2882000],[1911,2917000],[1912,2951000],[1913,2983000],[1914,3018000],[1915,3055000],[1916,3092000],[1917,3130000],[1918,3165000],[1919,3202000],[1920,3242000],[1921,3285000],[1922,3322000],[1923,3356000],[1924,3389000],[1925,3425000],[1926,3452000],[1927,3475000],[1928,3497000],[1929,3518000],[1930,3542000],[1931,3569000],[1932,3603000],[1933,3633000],[1934,3666000],[1935,3695000],[1936,3722000],[1937,3749000],[1938,3777000],[1939,3805000],[1940,3832000],[1941,3863000],[1942,3903000],[1943,3949000],[1944,3998000],[1945,4045000],[1946,4101000],[1947,4146000],[1948,4190000],[1949,4230000],[1950,4271000],[1951,4303620],[1952,4334000],[1953,4369280],[1954,4406000],[1955,4439000],[1956,4466471],[1957,4487831],[1958,4515132],[1959,4546636],[1960,4581000],[1961,4609817],[1962,4646899],[1963,4683579],[1964,4720171],[1965,4758100],[1966,4797500],[1967,4838800],[1968,4867300],[1969,4890687],[1970,4928757],[1971,4963126],[1972,4991596],[1973,5021861],[1974,5045297],[1975,5059861],[1976,5072596],[1977,5088419],[1978,5104247],[1979,5116800],[1980,5123027],[1981,5121572],[1982,5117810],[1983,5114297],[1984,5111619],[1985,5113691],[1986,5120534],[1987,5127024],[1988,5129516],[1989,5132593],[1990,5140954],[1991,5154352],[1992,5171393],[1993,5188386],[1994,5205603],[1995,5232612],[1996,5262075],[1997,5283663],[1998,5302767],[1999,5320134],[2000,5337416],[2001,5355826],[2002,5374693],[2003,5394138],[2004,5413392],[2005,5432335],[2006,5450661],[2007,5468120],[2008,5484723]],"lifeExpectancy":[[1800,35],[1835,38.35],[1836,39.92],[1837,41.5],[1838,43.11],[1839,41.86],[1840,41.06],[1841,42.64],[1842,42.49],[1843,43.85],[1844,44],[1845,43.35],[1846,40.43],[1847,40.47],[1848,40.73],[1849,39.5],[1850,43.5],[1851,44.57],[1852,43.08],[1853,38.6],[1854,44.74],[1855,46.18],[1856,46.78],[1857,42.49],[1858,40.04],[1859,44.42],[1860,45.11],[1861,47.65],[1862,47.62],[1863,47.58],[1864,40.2],[1865,39.85],[1866,42.95],[1867,44.97],[1868,45.66],[1869,46.13],[1870,46.06],[1871,46.15],[1872,47.53],[1873,47.58],[1874,46.11],[1875,44.51],[1876,45.88],[1877,47.41],[1878,47.6],[1879,46.29],[1880,44.86],[1881,48.37],[1882,46.77],[1883,48.56],[1884,48.6],[1885,49.69],[1886,49],[1887,48.71],[1888,46.71],[1889,47.83],[1890,47.3],[1891,46.83],[1892,47.49],[1893,47.14],[1894,49.42],[1895,50.93],[1896,52.99],[1897,51.86],[1898,53.15],[1899,50.71],[1900,51.95],[1901,52.66],[1902,54.74],[1903,54.81],[1904,55.81],[1905,54.41],[1906,56.6],[1907,56.13],[1908,54.96],[1909,57.44],[1910,58.09],[1911,57.01],[1912,58.09],[1913,58.93],[1914,58.53],[1915,58.46],[1916,56.97],[1917,57.31],[1918,56.25],[1919,57],[1920,57.55],[1921,61.78],[1922,60.65],[1923,61.22],[1924,61.19],[1925,61.96],[1926,61.71],[1927,61.24],[1928,61.93],[1929,62],[1930,62.31],[1931,61.89],[1932,62.74],[1933,63.66],[1934,64.15],[1935,62.92],[1936,63.5],[1937,63.98],[1938,64.99],[1939,65.83],[1940,66.27],[1941,66.02],[1942,67.16],[1943,67.46],[1944,66.41],[1945,66.09],[1946,67.24],[1947,68.54],[1948,70.12],[1949,70.15],[1950,70.33],[1951,70.93],[1952,70.78],[1953,71.15],[1954,71.35],[1955,71.92],[1956,72.05],[1957,71.81],[1958,72.24],[1959,72.22],[1960,72.21],[1961,72.47],[1962,72.35],[1963,72.44],[1964,72.52],[1965,72.4],[1966,72.48],[1967,72.96],[1968,73.17],[1969,73.26],[1970,73.38],[1971,73.44],[1972,73.47],[1973,73.71],[1974,73.84],[1975,74.11],[1976,73.78],[1977,74.69],[1978,74.45],[1979,74.27],[1980,74.16],[1981,74.29],[1982,74.63],[1983,74.5],[1984,74.65],[1985,74.52],[1986,74.69],[1987,74.8],[1988,74.89],[1989,74.92],[1990,74.92],[1991,75.29],[1992,75.33],[1993,75.25],[1994,75.51],[1995,75.36],[1996,75.74],[1997,76.11],[1998,76.51],[1999,76.66],[2000,76.9],[2001,77.06],[2002,77.18],[2003,77.78],[2004,77.58],[2005,78.32],[2006,78.32],[2007,78.44],[2008,78.41],[2009,78.57]]},{"name":"Estonia","region":"Europe & Central Asia","income":[[1800,906.39],[1820,925.48],[1913,2062.96],[1950,4042.45],[1973,8313.11],[1990,10389.82],[1991,9409.45],[1992,8245.73],[1993,7733.48],[1994,7733.63],[1995,8199.12],[1996,8680.18],[1997,9689.84],[1998,10283.79],[1999,10356.42],[2000,11244.49],[2001,12050.17],[2002,13011.44],[2003,13770.19],[2004,15014.22],[2005,16654],[2006,18350.51],[2007,19705.76],[2008,18993.59],[2009,16349.13]],"population":[[1800,334136],[1820,334136],[1950,1095610],[1951,1111966],[1952,1130445],[1953,1140395],[1954,1148378],[1955,1154371],[1956,1162801],[1957,1174251],[1958,1185336],[1959,1197418],[1960,1210647],[1961,1224467],[1962,1238786],[1963,1254604],[1964,1272439],[1965,1287808],[1966,1300177],[1967,1311560],[1968,1324437],[1969,1342891],[1970,1363183],[1971,1381459],[1972,1397391],[1973,1410836],[1974,1422291],[1975,1432246],[1976,1442204],[1977,1453168],[1978,1463533],[1979,1472244],[1980,1482196],[1981,1493318],[1982,1504043],[1983,1514671],[1984,1526128],[1985,1538224],[1986,1550072],[1987,1562224],[1988,1569187],[1989,1570926],[1990,1569322],[1991,1559547],[1992,1528715],[1993,1491426],[1994,1467535],[1995,1446509],[1996,1427827],[1997,1413351],[1998,1400972],[1999,1389756],[2000,1379835],[2001,1369983],[2002,1360122],[2003,1350722],[2004,1341664],[2005,1332893],[2006,1324333],[2007,1315912],[2008,1307605]],"lifeExpectancy":[[1800,36.5],[1860,36.5],[1897,43],[1900,43.1],[1922,51.7],[1935,56.27],[1950,64.36],[1951,64.6],[1952,65.08],[1953,65.57],[1954,66.06],[1955,66.55],[1956,67.04],[1957,67.53],[1958,68],[1959,68.64],[1960,69.34],[1961,69.66],[1962,69.84],[1963,69.9],[1964,70.64],[1965,70.71],[1966,70.68],[1967,70.97],[1968,70.59],[1969,70.28],[1970,70.39],[1971,70.59],[1972,70.35],[1973,70.7],[1974,70.8],[1975,70.12],[1976,69.74],[1977,69.86],[1978,69.72],[1979,69.5],[1980,69.59],[1981,69.46],[1982,69.86],[1983,69.78],[1984,69.65],[1985,69.79],[1986,70.93],[1987,70.94],[1988,70.98],[1989,70.53],[1990,69.9],[1991,69.8],[1992,69.14],[1993,68.19],[1994,66.67],[1995,67.72],[1996,69.94],[1997,70.13],[1998,69.72],[1999,70.5],[2000,70.8],[2001,70.67],[2002,71.23],[2003,71.82],[2004,72.29],[2005,72.96],[2006,73.13],[2007,73.14],[2008,73.23],[2009,73.5]]},{"name":"Finland","region":"Europe & Central Asia","income":[[1800,1037.69],[1820,1073.4],[1821,1078.92],[1822,1084.47],[1823,1090.05],[1824,1095.65],[1825,1101.29],[1826,1106.95],[1827,1112.64],[1828,1118.37],[1829,1124.12],[1830,1129.9],[1831,1135.71],[1832,1141.55],[1833,1147.42],[1834,1153.32],[1835,1159.25],[1836,1165.21],[1837,1171.21],[1838,1177.23],[1839,1183.28],[1840,1189.37],[1841,1195.48],[1842,1201.63],[1843,1207.81],[1844,1214.02],[1845,1220.27],[1846,1226.54],[1847,1232.85],[1848,1239.19],[1849,1245.56],[1850,1251.97],[1851,1258.44],[1852,1264.95],[1853,1271.49],[1854,1278.06],[1855,1284.67],[1856,1291.32],[1857,1297.99],[1858,1304.71],[1859,1311.45],[1860,1318.23],[1861,1316.39],[1862,1231.83],[1863,1316.16],[1864,1331.17],[1865,1307.65],[1866,1316.86],[1867,1217.5],[1868,1379.02],[1869,1513.88],[1870,1566.35],[1871,1548.7],[1872,1573.71],[1873,1640.18],[1874,1654.92],[1875,1664.63],[1876,1730.68],[1877,1664.65],[1878,1611.83],[1879,1604.46],[1880,1587.17],[1881,1525.64],[1882,1653.22],[1883,1690.22],[1884,1675.84],[1885,1692.17],[1886,1753.02],[1887,1753.07],[1888,1789.84],[1889,1823.23],[1890,1898.07],[1891,1855.95],[1892,1759.05],[1893,1842.91],[1894,1923.34],[1895,2051.12],[1896,2157.69],[1897,2232.26],[1898,2292.74],[1899,2208.61],[1900,2293.12],[1901,2248.73],[1902,2187.05],[1903,2316.91],[1904,2379.03],[1905,2393.93],[1906,2466.09],[1907,2521.28],[1908,2513.65],[1909,2589.75],[1910,2620.18],[1911,2665.1],[1912,2779.55],[1913,2900.86],[1914,2749.61],[1915,2586.14],[1916,2601.75],[1917,2172.74],[1918,1882.63],[1919,2279.04],[1920,2536.46],[1921,2589.95],[1922,2828.49],[1923,3005.49],[1924,3056.68],[1925,3199.82],[1926,3287.25],[1927,3514.45],[1928,3720.77],[1929,3733.94],[1930,3663.59],[1931,3546.72],[1932,3504.34],[1933,3713.08],[1934,4107.16],[1935,4250.49],[1936,4506.28],[1937,4729.48],[1938,4933.25],[1939,4683.47],[1940,4426.07],[1941,4565.98],[1942,4572.8],[1943,5080.7],[1944,5064.01],[1945,4740.94],[1946,5061.83],[1947,5108.35],[1948,5438.68],[1949,5694.41],[1950,5845.63],[1951,6282.55],[1952,6424.52],[1953,6393.12],[1954,6874.03],[1955,7142.39],[1956,7277.78],[1957,7545.42],[1958,7523.81],[1959,7907.52],[1960,8562.87],[1961,9150.5],[1962,9371.84],[1963,9612.4],[1964,10042.22],[1965,10540.94],[1966,10753.82],[1967,10921.64],[1968,11122.84],[1969,12201.15],[1970,13162.25],[1971,13420.39],[1972,14358.88],[1973,15235.13],[1974,15614.72],[1975,15724.68],[1976,15610.75],[1977,15605.42],[1978,15886.31],[1979,16948.22],[1980,17796.77],[1981,18051.17],[1982,18533.16],[1983,18920.9],[1984,19387.97],[1985,19958.81],[1986,20367.55],[1987,21141.01],[1988,22110.88],[1989,23289.8],[1990,23180.78],[1991,21581.75],[1992,20647.16],[1993,20294.81],[1994,21005.54],[1995,21650.15],[1996,22402.5],[1997,23723.95],[1998,25004.32],[1999,25915.26],[2000,27171.97],[2001,27825.53],[2002,28204.59],[2003,28650.03],[2004,29651.4],[2005,30469],[2006,31683.68],[2007,33102.61],[2008,33339.32],[2009,30602.73]],"population":[[1820,1169000],[1821,1186000],[1822,1202000],[1823,1219000],[1824,1235000],[1825,1252000],[1826,1268000],[1827,1310000],[1828,1326000],[1829,1343000],[1830,1364000],[1831,1374000],[1832,1378000],[1833,1383000],[1834,1387000],[1835,1391000],[1836,1399000],[1837,1409000],[1838,1420000],[1839,1430000],[1840,1441000],[1841,1456000],[1842,1476000],[1843,1495000],[1844,1516000],[1845,1536000],[1846,1555000],[1847,1573000],[1848,1591000],[1849,1610000],[1850,1628000],[1851,1642000],[1852,1652000],[1853,1663000],[1854,1673000],[1855,1683000],[1856,1692000],[1857,1703000],[1858,1715000],[1859,1726000],[1860,1738000],[1861,1754000],[1862,1774000],[1863,1794000],[1864,1813000],[1865,1833000],[1866,1840000],[1867,1831000],[1868,1776000],[1869,1734000],[1870,1754000],[1871,1786000],[1872,1819000],[1873,1847000],[1874,1873000],[1875,1899000],[1876,1928000],[1877,1957000],[1878,1983000],[1879,2014000],[1880,2047000],[1881,2072000],[1882,2098000],[1883,2130000],[1884,2164000],[1885,2195000],[1886,2224000],[1887,2259000],[1888,2296000],[1889,2331000],[1890,2364000],[1891,2394000],[1892,2451000],[1893,2430000],[1894,2511000],[1895,2483000],[1896,2515000],[1897,2549000],[1898,2589000],[1899,2624000],[1900,2646000],[1901,2667000],[1902,2686000],[1903,2706000],[1904,2735000],[1905,2762000],[1906,2788000],[1907,2821000],[1908,2861000],[1909,2899000],[1910,2929000],[1911,2962000],[1912,2998000],[1913,3027000],[1914,3053000],[1915,3083000],[1916,3105000],[1917,3124000],[1918,3125000],[1919,3117000],[1920,3133000],[1921,3170000],[1922,3210000],[1923,3243000],[1924,3272000],[1925,3304000],[1926,3339000],[1927,3368000],[1928,3396000],[1929,3424000],[1930,3449000],[1931,3476000],[1932,3503000],[1933,3526000],[1934,3549000],[1935,3576000],[1936,3601000],[1937,3626000],[1938,3656000],[1939,3686000],[1940,3698000],[1941,3702000],[1942,3708000],[1943,3721000],[1944,3735000],[1945,3758000],[1946,3806000],[1947,3859000],[1948,3912000],[1949,3963000],[1950,4008900],[1951,4047300],[1952,4090500],[1953,4139400],[1954,4186900],[1955,4234900],[1956,4281700],[1957,4324000],[1958,4359800],[1959,4394700],[1960,4429600],[1961,4461004],[1962,4491443],[1963,4523309],[1964,4548544],[1965,4563732],[1966,4580869],[1967,4605744],[1968,4626469],[1969,4623785],[1970,4606307],[1971,4612124],[1972,4639657],[1973,4666081],[1974,4690574],[1975,4711439],[1976,4725664],[1977,4738902],[1978,4752528],[1979,4764690],[1980,4779535],[1981,4799964],[1982,4826933],[1983,4855787],[1984,4881788],[1985,4901783],[1986,4917386],[1987,4931729],[1988,4946633],[1989,4962441],[1990,4986431],[1991,5013786],[1992,5041039],[1993,5064846],[1994,5086044],[1995,5104654],[1996,5120310],[1997,5134406],[1998,5146983],[1999,5158097],[2000,5168595],[2001,5180309],[2002,5193039],[2003,5204405],[2004,5214512],[2005,5223442],[2006,5231372],[2007,5238460],[2008,5244749]],"lifeExpectancy":[[1800,31.8],[1805,31.77],[1815,35.77],[1825,38.36],[1835,34.61],[1845,40.4],[1855,35.06],[1865,32.07],[1875,41.57],[1878,39.17],[1879,44.95],[1880,39.67],[1881,37.65],[1882,40.46],[1883,42.79],[1884,42.87],[1885,41.3],[1886,40.92],[1887,45.6],[1888,45.16],[1889,44.93],[1890,44.61],[1891,42.57],[1892,39.73],[1893,43.34],[1894,45.22],[1895,47.64],[1896,46.56],[1897,48.16],[1898,48.07],[1899,44.4],[1900,41.8],[1901,42.87],[1902,46.23],[1903,46.64],[1904,47.21],[1905,46.04],[1906,47.07],[1907,46.98],[1908,46.15],[1909,48.67],[1910,48.53],[1911,48.73],[1912,49.13],[1913,49.05],[1914,49.73],[1915,49.54],[1916,48.03],[1917,46.49],[1918,32.71],[1919,43.07],[1920,47.55],[1921,52.41],[1922,51.92],[1923,52.52],[1924,50.22],[1925,53.42],[1926,53.83],[1927,51.86],[1928,53.71],[1929,51.28],[1930,54.47],[1931,54.88],[1932,55.79],[1933,55.45],[1934,56.04],[1935,57.36],[1936,56.16],[1937,57.1],[1938,57.2],[1939,54.67],[1940,46.65],[1941,46.5],[1942,53.9],[1943,56.27],[1944,48],[1945,57.19],[1946,60.27],[1947,60.53],[1948,61.99],[1949,61.88],[1950,64.24],[1951,65.67],[1952,66.55],[1953,66.61],[1954,67.57],[1955,67.37],[1956,67.99],[1957,67.49],[1958,68.63],[1959,68.81],[1960,69.01],[1961,69.04],[1962,68.75],[1963,69.16],[1964,69.37],[1965,69.13],[1966,69.65],[1967,69.83],[1968,69.79],[1969,69.67],[1970,70.36],[1971,70.18],[1972,70.87],[1973,71.38],[1974,71.3],[1975,71.85],[1976,72],[1977,72.52],[1978,73.08],[1979,73.37],[1980,73.66],[1981,73.98],[1982,74.55],[1983,74.46],[1984,74.77],[1985,74.44],[1986,74.8],[1987,74.83],[1988,74.79],[1989,75.01],[1990,75.04],[1991,75.45],[1992,75.7],[1993,75.94],[1994,76.64],[1995,76.66],[1996,76.94],[1997,77.13],[1998,77.34],[1999,77.53],[2000,77.76],[2001,78.23],[2002,78.37],[2003,78.63],[2004,78.96],[2005,79.09],[2006,79.49],[2007,79.53],[2008,79.7],[2009,79.9]]},{"name":"France","region":"Europe & Central Asia","income":[[1800,1388.32],[1820,1508.17],[1821,1605.15],[1822,1488.9],[1823,1484.46],[1824,1450.73],[1825,1461.26],[1826,1507.24],[1827,1517.77],[1828,1424.55],[1829,1505.31],[1830,1478.21],[1831,1468.18],[1832,1575.78],[1833,1575.21],[1834,1556.85],[1835,1638.99],[1836,1670.87],[1837,1691.88],[1838,1728.95],[1839,1702.64],[1840,1833.29],[1841,1782.25],[1842,1748.42],[1843,1814.96],[1844,1869.79],[1845,1937.81],[1846,2061.01],[1847,2247.78],[1848,1754.96],[1849,1751.73],[1850,1840.71],[1851,1810.27],[1852,2049.4],[1853,2279.88],[1854,2558.73],[1855,2699.62],[1856,2804.19],[1857,2709.43],[1858,2530.47],[1859,2537.44],[1860,2704.03],[1861,2763.29],[1862,2864.8],[1863,2947.49],[1864,3001.41],[1865,2952.32],[1866,3078.84],[1867,3035.75],[1868,3248.75],[1869,3053.02],[1870,2952.12],[1871,3094.7],[1872,3265.24],[1873,3226.92],[1874,3368.09],[1875,3305.81],[1876,3271.13],[1877,3263.78],[1878,3086.79],[1879,3061.22],[1880,3251.85],[1881,3467.16],[1882,3592.01],[1883,3442.58],[1884,3268.75],[1885,3178.76],[1886,3144.18],[1887,3176.37],[1888,3256.96],[1889,3273.56],[1890,3400.86],[1891,3444.97],[1892,3524.93],[1893,3398.78],[1894,3737.15],[1895,3668.19],[1896,3791.6],[1897,3688.84],[1898,3914.43],[1899,4060.44],[1900,4120.2],[1901,3923.77],[1902,3882.54],[1903,4018.39],[1904,4104.52],[1905,4215.5],[1906,4163.4],[1907,4506.35],[1908,4497.65],[1909,4648.43],[1910,4431.67],[1911,4874.61],[1912,5269.95],[1913,5216.06],[1914,4366.68],[1915,3838.35],[1916,4391.91],[1917,4343.65],[1918,3715.96],[1919,4091.01],[1920,4363.66],[1921,4138.93],[1922,4952.53],[1923,5174.88],[1924,5731.07],[1925,5758.31],[1926,5943.23],[1927,5809.19],[1928,6139.65],[1929,6647.68],[1930,6404.85],[1931,6109.1],[1932,5562.21],[1933,5715.58],[1934,5506.14],[1935,5360.76],[1936,5427.12],[1937,5543.16],[1938,5395.35],[1939,5609.14],[1940,4419.43],[1941,4268.29],[1942,4290.23],[1943,4272.41],[1944,3266.23],[1945,4011.65],[1946,5348.07],[1947,5625.06],[1948,6298.46],[1949,6625.98],[1950,7104.01],[1951,7436.28],[1952,7550.91],[1953,7692.44],[1954,8019.09],[1955,8399.74],[1956,8786.31],[1957,9242.42],[1958,9434.98],[1959,9619.51],[1960,10244.42],[1961,10686.66],[1962,11191.29],[1963,11579.29],[1964,12197.97],[1965,12650.59],[1966,13187.05],[1967,13683.81],[1968,14146.15],[1969,15000.57],[1970,15703.71],[1971,16284.72],[1972,16840.55],[1973,17597.08],[1974,18004.5],[1975,17848.25],[1976,18509.58],[1977,18996.91],[1978,19524.41],[1979,20102.02],[1980,20334.47],[1981,20488.68],[1982,20933.53],[1983,21265.16],[1984,21488.65],[1985,21805.96],[1986,22218.56],[1987,22608.9],[1988,23523.51],[1989,24186.1],[1990,24676.73],[1991,24847.93],[1992,25140.92],[1993,24731.22],[1994,25117.85],[1995,25556.85],[1996,25717.2],[1997,26170.75],[1998,26957.92],[1999,27689.46],[2000,28636.15],[2001,28983.72],[2002,29043.35],[2003,29048.88],[2004,29505.88],[2005,29644],[2006,30161.01],[2007,30666.76],[2008,30598.37],[2009,29774.85]],"population":[[1820,31250000],[1821,31460000],[1822,31685000],[1823,31905000],[1824,32127000],[1825,32350000],[1826,32538000],[1827,32727000],[1828,32917000],[1829,33108000],[1830,33300000],[1831,33439000],[1832,33598000],[1833,33718000],[1834,33859000],[1835,34000000],[1836,34178000],[1837,34357000],[1838,34537000],[1839,34718000],[1840,34900000],[1841,35059000],[1842,35218000],[1843,35378000],[1844,35539000],[1845,35700000],[1846,35829000],[1847,35959000],[1848,36089000],[1849,36219000],[1850,36350000],[1851,36479000],[1852,36609000],[1853,36739000],[1854,36869000],[1855,37000000],[1856,37060000],[1857,37120000],[1858,37180000],[1859,37240000],[1860,37300000],[1861,37390000],[1862,37520000],[1863,37710000],[1864,37860000],[1865,38020000],[1866,38080000],[1867,38230000],[1868,38330000],[1869,38890000],[1870,38440000],[1871,37731000],[1872,37679000],[1873,37887000],[1874,38044000],[1875,38221000],[1876,38398000],[1877,38576000],[1878,38763000],[1879,38909000],[1880,39045000],[1881,39191000],[1882,39337000],[1883,39472000],[1884,39629000],[1885,39733000],[1886,39858000],[1887,39889000],[1888,39920000],[1889,40004000],[1890,40014000],[1891,39983000],[1892,39993000],[1893,40014000],[1894,40056000],[1895,40098000],[1896,40192000],[1897,40348000],[1898,40473000],[1899,40546000],[1900,40598000],[1901,40640000],[1902,40713000],[1903,40786000],[1904,40859000],[1905,40890000],[1906,40942000],[1907,40942000],[1908,41046000],[1909,41109000],[1910,41224000],[1911,41307000],[1912,41359000],[1913,41463000],[1914,41476000],[1915,40481000],[1916,39884000],[1917,39288000],[1918,38542000],[1919,38700000],[1920,39000000],[1921,39240000],[1922,39420000],[1923,39880000],[1924,40310000],[1925,40610000],[1926,40870000],[1927,40940000],[1928,41050000],[1929,41230000],[1930,41610000],[1931,41860000],[1932,41860000],[1933,41890000],[1934,41950000],[1935,41940000],[1936,41910000],[1937,41930000],[1938,41960000],[1939,41900000],[1940,41000000],[1941,39600000],[1942,39400000],[1943,39000000],[1944,38900000],[1945,39700000],[1946,40290000],[1947,40680000],[1948,41110000],[1949,41480000],[1950,41828673],[1951,42155534],[1952,42459667],[1953,42751746],[1954,43056505],[1955,43427669],[1956,43843075],[1957,44310863],[1958,44788852],[1959,45239729],[1960,45670000],[1961,46189000],[1962,47124000],[1963,47808000],[1964,48340000],[1965,48763000],[1966,49194000],[1967,49569000],[1968,49934000],[1969,50353000],[1970,50787000],[1971,51285000],[1972,51732000],[1973,52157000],[1974,52503000],[1975,52758427],[1976,52953613],[1977,53165019],[1978,53380649],[1979,53605523],[1980,53869743],[1981,54147284],[1982,54433565],[1983,54649810],[1984,54946500],[1985,55171224],[1986,55387361],[1987,55630100],[1988,55873463],[1989,56416625],[1990,56735161],[1991,57055448],[1992,57374179],[1993,57658289],[1994,57906847],[1995,58149727],[1996,58388408],[1997,58623428],[1998,58866290],[1999,59116128],[2000,59381628],[2001,59658144],[2002,59925035],[2003,60180529],[2004,60424213],[2005,60656178],[2006,60876136],[2007,61083916],[2008,61279972]],"lifeExpectancy":[[1800,32.4],[1806,35],[1807,34.2],[1808,34.5],[1809,35],[1810,37.4],[1811,36.1],[1812,31.7],[1813,31.2],[1814,30.1],[1815,36.5],[1816,40.04],[1817,39.18],[1818,38.53],[1819,37.25],[1820,39.21],[1821,39.83],[1822,38.3],[1823,39.97],[1824,39.14],[1825,38.53],[1826,37.76],[1827,39.35],[1828,37.53],[1829,39.36],[1830,39.56],[1831,39.65],[1832,35.81],[1833,38.83],[1834,35.01],[1835,39.48],[1836,41.95],[1837,39.38],[1838,39.33],[1839,40.91],[1840,40.37],[1841,40.68],[1842,40.01],[1843,40.75],[1844,42.29],[1845,43.58],[1846,40.67],[1847,40.41],[1848,40.29],[1849,35.91],[1850,43.28],[1851,41.77],[1852,41.32],[1853,42.52],[1854,36.13],[1855,37.54],[1856,40.18],[1857,39.59],[1858,39.67],[1859,35.26],[1860,43.33],[1861,40.45],[1862,42.7],[1863,41.73],[1864,42.01],[1865,40.16],[1866,41.83],[1867,42.33],[1868,40.23],[1869,41.14],[1870,36.41],[1871,29.59],[1872,42.64],[1873,41.75],[1874,44.3],[1875,43.17],[1876,43.55],[1877,44.33],[1878,43.36],[1879,43.99],[1880,42.73],[1881,43.55],[1882,43.16],[1883,43.28],[1884,42.52],[1885,43.97],[1886,43.17],[1887,43.75],[1888,44.15],[1889,45.56],[1890,43.36],[1891,44.11],[1892,43.57],[1893,43.6],[1894,45.53],[1895,45.2],[1896,47.56],[1897,47.93],[1898,45.99],[1899,45.23],[1900,45.08],[1901,47.01],[1902,48.01],[1903,48.43],[1904,48.08],[1905,48.36],[1906,47.74],[1907,48.28],[1908,49.3],[1909,50.01],[1910,51.37],[1911,48.17],[1912,51.62],[1913,51.35],[1914,37.85],[1915,35.63],[1916,39.51],[1917,42.6],[1918,34.34],[1919,47.52],[1920,51.6],[1921,52.69],[1922,54.92],[1923,54.65],[1924,55.27],[1925,54.39],[1926,54.03],[1927,55.8],[1928,55.44],[1929,54.27],[1930,56.87],[1931,56.93],[1932,57.26],[1933,57.7],[1934,58.36],[1935,58.32],[1936,58.81],[1937,59.17],[1938,58.97],[1939,59.62],[1940,49.45],[1941,57.67],[1942,57.44],[1943,53.33],[1944,47.19],[1945,54.96],[1946,62.38],[1947,63.98],[1948,65.83],[1949,64.92],[1950,66.39],[1951,66.12],[1952,67.41],[1953,67.34],[1954,68.21],[1955,68.47],[1956,68.5],[1957,68.93],[1958,70.16],[1959,70.19],[1960,70.4],[1961,70.98],[1962,70.51],[1963,70.36],[1964,71.32],[1965,71.15],[1966,71.56],[1967,71.55],[1968,71.54],[1969,71.27],[1970,72.16],[1971,72.13],[1972,72.38],[1973,72.54],[1974,72.89],[1975,72.98],[1976,73.22],[1977,73.83],[1978,73.95],[1979,74.26],[1980,74.35],[1981,74.51],[1982,74.89],[1983,74.87],[1984,75.37],[1985,75.47],[1986,75.75],[1987,76.34],[1988,76.57],[1989,76.69],[1990,76.98],[1991,77.17],[1992,77.46],[1993,77.5],[1994,77.94],[1995,78.06],[1996,78.27],[1997,78.62],[1998,78.79],[1999,78.92],[2000,79.23],[2001,79.41],[2002,79.57],[2003,79.57],[2004,80.5],[2005,80.47],[2006,80.88],[2007,81.14],[2008,81.25],[2009,81.47]]},{"name":"Georgia","region":"Europe & Central Asia","income":[[1800,571.2],[1820,583.23],[1913,1300.06],[1965,2711.39],[1966,2881.8],[1967,3029.8],[1968,3134.36],[1969,3254.08],[1970,3613.63],[1971,3670.07],[1972,3741.23],[1973,3950.02],[1974,4263.52],[1975,4544.1],[1976,4788.27],[1977,5086.05],[1978,5430.06],[1979,5792.37],[1980,6014.45],[1981,6283.62],[1982,6359.83],[1983,6579.72],[1984,6876.8],[1985,7150.61],[1986,6499.97],[1987,6514.54],[1988,6816.1],[1989,6297.59],[1990,5375.31],[1991,4278.33],[1992,2393.03],[1993,1724.67],[1994,1576.71],[1995,1647.82],[1996,1861.57],[1997,2085.64],[1998,2176.23],[1999,2264.09],[2000,2332.22],[2001,2472.71],[2002,2637.56],[2003,2961.18],[2004,3167.15],[2005,3505],[2006,3764.4],[2007,4235.19],[2008,4345.66],[2009,4168.7]],"population":[[1800,1072178],[1820,1072178],[1950,3515602],[1951,3579417],[1952,3628347],[1953,3687436],[1954,3759860],[1955,3827154],[1956,3887496],[1957,3936823],[1958,3994787],[1959,4071078],[1960,4146570],[1961,4211113],[1962,4278649],[1963,4344220],[1964,4406832],[1965,4464959],[1966,4518103],[1967,4564785],[1968,4606979],[1969,4650335],[1970,4694491],[1971,4741628],[1972,4786475],[1973,4825850],[1974,4865233],[1975,4897656],[1976,4930036],[1977,4963464],[1978,4991045],[1979,5018606],[1980,5045697],[1981,5073148],[1982,5101213],[1983,5130925],[1984,5161724],[1985,5192957],[1986,5218973],[1987,5239970],[1988,5320248],[1989,5398106],[1990,5426207],[1991,5420156],[1992,5355289],[1993,5247618],[1994,5120809],[1995,5012952],[1996,4934572],[1997,4883476],[1998,4848495],[1999,4815667],[2000,4777209],[2001,4746164],[2002,4728357],[2003,4710921],[2004,4693892],[2005,4677401],[2006,4661473],[2007,4646003],[2008,4630841]],"lifeExpectancy":[[1950,59.8],[1951,60],[1952,60.4],[1953,60.8],[1954,61.2],[1955,61.6],[1956,62],[1957,62.4],[1958,62.81],[1959,63.21],[1960,63.61],[1961,64.02],[1962,64.44],[1963,64.85],[1964,65.27],[1965,65.67],[1966,66.06],[1967,66.43],[1968,66.79],[1969,67.12],[1970,67.44],[1971,67.75],[1972,68.07],[1973,68.39],[1974,68.71],[1975,69],[1976,69.25],[1977,69.45],[1978,69.58],[1979,69.65],[1980,69.69],[1981,69.71],[1982,69.74],[1983,69.81],[1984,69.91],[1985,70.04],[1986,70.18],[1987,70.31],[1988,70.41],[1989,70.47],[1990,70.51],[1991,70.54],[1992,70.57],[1993,70.61],[1994,70.68],[1995,70.77],[1996,70.88],[1997,71],[1998,71.13],[1999,71.25],[2000,71.36],[2001,71.45],[2002,71.5],[2003,71.53],[2004,71.54],[2005,71.55],[2006,71.57],[2007,71.63],[2008,71.72],[2009,71.86]]},{"name":"Germany","region":"Europe & Central Asia","income":[[1800,1695.68],[1820,1945.75],[1821,1959.18],[1822,1972.7],[1823,1986.32],[1824,2000.03],[1825,2013.83],[1826,2027.73],[1827,2041.73],[1828,2055.82],[1829,2070.01],[1830,2084.3],[1831,2091.83],[1832,2099.4],[1833,2106.99],[1834,2114.61],[1835,2122.26],[1836,2129.93],[1837,2137.64],[1838,2145.37],[1839,2153.13],[1840,2160.91],[1841,2168.73],[1842,2176.57],[1843,2184.44],[1844,2192.34],[1845,2200.27],[1846,2208.23],[1847,2216.21],[1848,2224.23],[1849,2232.27],[1850,2240.35],[1851,2209.1],[1852,2237.39],[1853,2218],[1854,2264.94],[1855,2229.04],[1856,2403.11],[1857,2502.1],[1858,2470.35],[1859,2456.18],[1860,2572.49],[1861,2483.9],[1862,2581.56],[1863,2744.35],[1864,2793.09],[1865,2776.92],[1866,2779.13],[1867,2770.95],[1868,2920.7],[1869,2919.02],[1870,2885.95],[1871,2850.62],[1872,3030.79],[1873,3136.39],[1874,3333],[1875,3314.78],[1876,3249.37],[1877,3189.68],[1878,3300.1],[1879,3183.46],[1880,3124.99],[1881,3178.15],[1882,3208.28],[1883,3363.31],[1884,3418.47],[1885,3477.8],[1886,3470.18],[1887,3570.4],[1888,3673.25],[1889,3733.56],[1890,3809.81],[1891,3760.75],[1892,3874.94],[1893,4025.82],[1894,4076.25],[1895,4215.1],[1896,4299.15],[1897,4354.02],[1898,4468.91],[1899,4558.78],[1900,4683.8],[1901,4505.8],[1902,4540.54],[1903,4720.51],[1904,4838.51],[1905,4870.98],[1906,4946.45],[1907,5091.98],[1908,5106.79],[1909,5138.79],[1910,5253.25],[1911,5348.6],[1912,5529.51],[1913,5724.59],[1914,4800.75],[1915,4549.24],[1916,4604.93],[1917,4632.51],[1918,4681.28],[1919,4058.48],[1920,4386.95],[1921,4829.84],[1922,5227.11],[1923,4314.74],[1924,5019.72],[1925,5542.04],[1926,5656.53],[1927,6184.52],[1928,6418.17],[1929,6357.62],[1930,6235.14],[1931,5730.09],[1932,5275.27],[1933,5579.88],[1934,6054.45],[1935,6464.97],[1936,6984.27],[1937,7351.76],[1938,7836.14],[1939,8483.68],[1940,8477.82],[1941,8962.15],[1942,9007.31],[1943,9242.26],[1944,9546.85],[1945,7083.98],[1946,3478.75],[1947,3822.81],[1948,4446.78],[1949,5150.97],[1950,6090.03],[1951,6599.92],[1952,7144.11],[1953,7697.25],[1954,8233.48],[1955,9096.83],[1956,9692.61],[1957,10187.83],[1958,10571.59],[1959,11261.93],[1960,12091.34],[1961,12478.83],[1962,12902.46],[1963,13158.88],[1964,13844.37],[1965,14414.59],[1966,14731.37],[1967,14745.63],[1968,15479.67],[1969,16383.41],[1970,17009.19],[1971,17382.08],[1972,18016.18],[1973,18778.23],[1974,18929.76],[1975,18894.57],[1976,19903.97],[1977,20512.92],[1978,21114.59],[1979,21958.81],[1980,22148.27],[1981,22202.51],[1982,22031.53],[1983,22485.38],[1984,23198.33],[1985,23757.88],[1986,24274.56],[1987,24639.19],[1988,25359.06],[1989,25983.63],[1990,24996.14],[1991,26127.06],[1992,26505.3],[1993,26119.46],[1994,26720.64],[1995,27145.96],[1996,27336.47],[1997,27788.88],[1998,28291.6],[1999,28842.66],[2000,29726.88],[2001,30061.4],[2002,30035.8],[2003,29952.94],[2004,30260.66],[2005,30496],[2006,31511.65],[2007,32342.82],[2008,32785.53],[2009,31191.15]],"population":[[1820,24905000],[1821,25260000],[1822,25620000],[1823,25969000],[1824,26307000],[1825,26650000],[1826,26964000],[1827,27249000],[1828,27540000],[1829,27807000],[1830,28045000],[1831,28283000],[1832,28535000],[1833,28801000],[1834,29071000],[1835,29390000],[1836,29702000],[1837,30013000],[1838,30365000],[1839,30746000],[1840,31126000],[1841,31475000],[1842,31787000],[1843,32086000],[1844,32394000],[1845,32743000],[1846,33059000],[1847,33231000],[1848,33289000],[1849,33452000],[1850,33746000],[1851,34055000],[1852,34290000],[1853,34422000],[1854,34531000],[1855,34586000],[1856,34715000],[1857,34979000],[1858,35278000],[1859,35633000],[1860,36049000],[1861,36435000],[1862,36788000],[1863,37184000],[1864,37602000],[1865,37955000],[1866,38193000],[1867,38440000],[1868,38637000],[1869,38914000],[1870,39231000],[1871,39456000],[1872,39691000],[1873,40017000],[1874,40450000],[1875,40897000],[1876,41491000],[1877,42034000],[1878,42546000],[1879,43052000],[1880,43500000],[1881,43827000],[1882,44112000],[1883,44404000],[1884,44777000],[1885,45084000],[1886,45505000],[1887,46001000],[1888,46538000],[1889,47083000],[1890,47607000],[1891,48129000],[1892,48633000],[1893,49123000],[1894,49703000],[1895,50363000],[1896,51111000],[1897,51921000],[1898,52753000],[1899,53592000],[1900,54388000],[1901,55214000],[1902,56104000],[1903,56963000],[1904,57806000],[1905,58644000],[1906,59481000],[1907,60341000],[1908,61187000],[1909,62038000],[1910,62884000],[1911,63852000],[1912,64457000],[1913,65058000],[1914,66096000],[1915,66230000],[1916,66076000],[1917,65763000],[1918,65237000],[1919,60547000],[1920,60894000],[1921,61573000],[1922,61900000],[1923,62307000],[1924,62697000],[1925,63166000],[1926,63630000],[1927,64023000],[1928,64393000],[1929,64739000],[1930,65084000],[1931,65423000],[1932,65716000],[1933,66027000],[1934,66409000],[1935,66871000],[1936,67349000],[1937,67831000],[1938,68558000],[1939,69286000],[1940,69835000],[1941,70244000],[1942,70834000],[1943,70411000],[1944,69865000],[1945,67000000],[1946,64678000],[1947,66094000],[1948,67295000],[1949,67991000],[1950,68374572],[1951,68875884],[1952,69145952],[1953,69550236],[1954,69868115],[1955,70195612],[1956,70602518],[1957,71019069],[1958,71488167],[1959,72013853],[1960,72480869],[1961,73123148],[1962,73739117],[1963,74340260],[1964,74954262],[1965,75638851],[1966,76206173],[1967,76368453],[1968,76584401],[1969,77143888],[1970,77783164],[1971,78354709],[1972,78717088],[1973,78950220],[1974,78966137],[1975,78682325],[1976,78298957],[1977,78160773],[1978,78066074],[1979,78081292],[1980,78297904],[1981,78401830],[1982,78335266],[1983,78121655],[1984,77855422],[1985,77684907],[1986,77713485],[1987,77718298],[1988,78030572],[1989,78644914],[1990,79380394],[1991,79984244],[1992,80597764],[1993,81132272],[1994,81414164],[1995,81653702],[1996,81890667],[1997,82011073],[1998,82023672],[1999,82074778],[2000,82187909],[2001,82280551],[2002,82350671],[2003,82398326],[2004,82424609],[2005,82431390],[2006,82422299],[2007,82400996],[2008,82369548]],"lifeExpectancy":[[1800,38.37],[1875,38.37],[1885,39.44],[1895,42.38],[1905,45.45],[1911,49],[1915,40.52],[1925,57.42],[1935,61.5],[1939,62.6],[1940,62.26],[1941,62.19],[1942,59.64],[1943,57.76],[1944,52.66],[1945,46.13],[1946,60.51],[1950,66.78],[1951,66.96],[1952,67.33],[1953,67.69],[1954,68.03],[1955,68.36],[1956,68.68],[1957,68.98],[1958,69.27],[1959,69.54],[1960,69.79],[1961,70.01],[1962,70.21],[1963,70.38],[1964,70.52],[1965,70.62],[1966,70.7],[1967,70.74],[1968,70.77],[1969,70.79],[1970,70.83],[1971,70.9],[1972,71.01],[1973,71.18],[1974,71.4],[1975,71.67],[1976,71.97],[1977,72.29],[1978,72.6],[1979,72.9],[1980,73.18],[1981,73.43],[1982,73.67],[1983,73.9],[1984,74.11],[1985,74.32],[1986,74.54],[1987,74.77],[1988,75],[1989,75.25],[1990,75.39],[1991,75.61],[1992,76.07],[1993,76.15],[1994,76.47],[1995,76.66],[1996,76.9],[1997,77.35],[1998,77.7],[1999,77.94],[2000,78.21],[2001,78.58],[2002,78.67],[2003,78.75],[2004,79.34],[2005,79.48],[2006,79.81],[2007,79.98],[2008,80.06],[2009,80.08]]},{"name":"Greece","region":"Europe & Central Asia","income":[[1800,934.41],[1801,935.9],[1802,937.38],[1803,938.87],[1804,940.36],[1805,941.85],[1806,943.34],[1807,944.84],[1808,946.33],[1809,947.84],[1810,949.34],[1811,950.84],[1812,952.35],[1813,953.86],[1814,955.38],[1815,956.89],[1816,958.41],[1817,959.93],[1818,961.45],[1819,962.98],[1820,964.5],[1821,972.3],[1822,980.15],[1823,988.07],[1824,996.05],[1825,1004.1],[1826,1012.21],[1827,1020.39],[1828,1028.64],[1829,1036.95],[1830,1045.33],[1831,1053.77],[1832,1062.29],[1833,1070.87],[1834,1079.52],[1835,1088.24],[1836,1097.04],[1837,1105.9],[1838,1114.84],[1839,1123.84],[1840,1132.92],[1841,1142.08],[1842,1151.31],[1843,1160.61],[1844,1169.99],[1845,1179.44],[1846,1188.97],[1847,1198.57],[1848,1208.26],[1849,1218.02],[1850,1227.86],[1851,1232.5],[1852,1237.16],[1853,1241.83],[1854,1246.52],[1855,1251.23],[1856,1255.96],[1857,1260.71],[1858,1265.47],[1859,1270.25],[1860,1275.05],[1861,1279.87],[1862,1284.7],[1863,1289.56],[1864,1294.43],[1865,1299.32],[1866,1304.23],[1867,1309.15],[1868,1314.1],[1869,1319.07],[1870,1324.05],[1871,1343.5],[1872,1363.25],[1873,1383.28],[1874,1403.6],[1875,1424.23],[1876,1445.15],[1877,1466.39],[1878,1487.94],[1879,1509.8],[1880,1531.98],[1881,1554.5],[1882,1577.34],[1883,1600.51],[1884,1624.03],[1885,1647.9],[1886,1672.11],[1887,1696.68],[1888,1721.61],[1889,1746.91],[1890,1772.58],[1891,1797.03],[1892,1821.83],[1893,1846.97],[1894,1872.45],[1895,1898.29],[1896,1924.48],[1897,1951.04],[1898,1977.96],[1899,2005.25],[1900,2032.92],[1901,2058.71],[1902,2084.84],[1903,2111.29],[1904,2138.08],[1905,2165.21],[1906,2192.68],[1907,2220.5],[1908,2248.67],[1909,2277.21],[1910,2306.1],[1911,2335.36],[1912,2364.99],[1913,2395],[1914,2455.06],[1915,2516.63],[1916,2579.74],[1917,2644.43],[1918,2710.74],[1919,2778.72],[1920,2848.4],[1921,2919.83],[1922,2993.27],[1923,3034.8],[1924,3144.67],[1925,3276.03],[1926,3342.01],[1927,3409.21],[1928,3435.92],[1929,3606.72],[1930,3482.77],[1931,3296.69],[1932,3539.75],[1933,3709.49],[1934,3751.22],[1935,3852.51],[1936,3819.78],[1937,4313.84],[1938,4176.55],[1939,4121.41],[1940,3478.46],[1941,2936.62],[1942,2477.95],[1943,2085.53],[1944,1756.5],[1945,1477.82],[1946,2188.35],[1947,2786.57],[1948,2847.04],[1949,2962.29],[1950,3040.41],[1951,3278.15],[1952,3269.31],[1953,3682.62],[1954,3766.01],[1955,4019.81],[1956,4333.64],[1957,4585.5],[1958,4759.42],[1959,4890.42],[1960,5067.26],[1961,5473.18],[1962,5653.18],[1963,6213.79],[1964,6709.76],[1965,7316.29],[1966,7717.14],[1967,8056.35],[1968,8581.63],[1969,9410.71],[1970,10150.88],[1971,10842.06],[1972,12129.8],[1973,12566.7],[1974,12082.49],[1975,12712.2],[1976,13362.2],[1977,13630.27],[1978,14376.56],[1979,14743.85],[1980,14877.19],[1981,14774],[1982,14767.21],[1983,14766.5],[1984,15123.24],[1985,15560.95],[1986,15791.5],[1987,15704.89],[1988,16414.35],[1989,16988.41],[1990,16851.57],[1991,17193.36],[1992,17213.67],[1993,16868.79],[1994,17153.8],[1995,17492.91],[1996,17894.05],[1997,18531.3],[1998,19146.38],[1999,19803.27],[2000,20675.21],[2001,21585.57],[2002,22416.45],[2003,23532.36],[2004,24587.16],[2005,25520],[2006,26618.65],[2007,27746.49],[2008,28242.04],[2009,27626.11]],"population":[[1820,2312000],[1821,2333000],[1822,2355000],[1823,2376000],[1824,2398000],[1825,2420000],[1826,2443000],[1827,2465000],[1828,2488000],[1829,2511000],[1830,2534000],[1831,2557000],[1832,2581000],[1833,2605000],[1834,2629000],[1835,2653000],[1836,2677000],[1837,2702000],[1838,2727000],[1839,2752000],[1840,2777000],[1841,2803000],[1842,2829000],[1843,2855000],[1844,2881000],[1845,2908000],[1846,2934000],[1847,2961000],[1848,2989000],[1849,3016000],[1850,3044000],[1851,3072000],[1852,3100000],[1853,3129000],[1854,3158000],[1855,3187000],[1856,3216000],[1857,3246000],[1858,3273000],[1859,3306000],[1860,3336000],[1861,3367000],[1862,3398000],[1863,3430000],[1864,3461000],[1865,3493000],[1866,3525000],[1867,3558000],[1868,3591000],[1869,3621000],[1870,3657000],[1871,3694000],[1872,3732000],[1873,3770000],[1874,3809000],[1875,3848000],[1876,3887000],[1877,3927000],[1878,3967000],[1879,4008000],[1880,4049000],[1881,4090000],[1882,4132000],[1883,4174000],[1884,4217000],[1885,4260000],[1886,4303000],[1887,4347000],[1888,4392000],[1889,4437000],[1890,4482000],[1891,4528000],[1892,4574000],[1893,4621000],[1894,4668000],[1895,4716000],[1896,4764000],[1897,4813000],[1898,4862000],[1899,4912000],[1900,4962000],[1901,4997000],[1902,5032000],[1903,5067000],[1904,5102000],[1905,5138000],[1906,5174000],[1907,5210000],[1908,5246000],[1909,5283000],[1910,5320000],[1911,5355000],[1912,5390000],[1913,5425000],[1914,5463000],[1915,5502000],[1916,5541000],[1917,5580000],[1918,5620000],[1919,5660000],[1920,5700000],[1921,5837000],[1922,5890000],[1923,6010000],[1924,6000000],[1925,5958000],[1926,6042000],[1927,6127000],[1928,6205000],[1929,6275000],[1930,6351000],[1931,6440000],[1932,6516000],[1933,6591000],[1934,6688000],[1935,6793000],[1936,6886000],[1937,6973000],[1938,7061000],[1939,7156000],[1940,7280000],[1941,7362000],[1942,7339000],[1943,7297000],[1944,7284000],[1945,7322000],[1946,7418000],[1947,7529000],[1948,7749000],[1949,7856000],[1950,7566028],[1951,7646402],[1952,7733250],[1953,7817095],[1954,7893412],[1955,7965538],[1956,8031013],[1957,8096218],[1958,8173129],[1959,8258162],[1960,8327405],[1961,8398050],[1962,8448233],[1963,8479625],[1964,8510429],[1965,8550333],[1966,8613651],[1967,8716441],[1968,8740765],[1969,8772764],[1970,8792806],[1971,8831036],[1972,8888628],[1973,8929086],[1974,8962023],[1975,9046542],[1976,9167190],[1977,9308479],[1978,9429959],[1979,9548258],[1980,9642505],[1981,9729350],[1982,9786480],[1983,9840526],[1984,9887169],[1985,9923253],[1986,9951370],[1987,9974490],[1988,9982723],[1989,10030765],[1990,10129603],[1991,10250880],[1992,10325429],[1993,10382995],[1994,10429826],[1995,10457554],[1996,10479420],[1997,10502372],[1998,10520068],[1999,10536749],[2000,10559110],[2001,10581515],[2002,10603863],[2003,10625945],[2004,10647529],[2005,10668354],[2006,10688058],[2007,10706290],[2008,10722816]],"lifeExpectancy":[[1800,36.6],[1877,36.6],[1882,37.1],[1887,37.7],[1892,38.5],[1897,39.4],[1902,40.4],[1907,41.2],[1920,44.65],[1922,45.2],[1927,48.2],[1928,46.17],[1929,49.97],[1932,50.5],[1937,52.8],[1940,54.34],[1950,64.97],[1951,65.2],[1952,65.65],[1953,66.09],[1954,66.51],[1955,66.92],[1956,67.31],[1957,67.68],[1958,68.04],[1959,68.39],[1960,68.73],[1961,69.05],[1962,69.37],[1963,69.68],[1964,69.98],[1965,70.28],[1966,70.57],[1967,70.86],[1968,71.14],[1969,71.41],[1970,71.68],[1971,71.95],[1972,72.21],[1973,72.47],[1974,72.73],[1975,72.99],[1976,73.27],[1977,73.55],[1978,73.84],[1979,74.15],[1980,74.46],[1981,74.77],[1982,75.09],[1983,75.41],[1984,75.72],[1985,76.02],[1986,76.3],[1987,76.56],[1988,76.79],[1989,77],[1990,77.15],[1991,77.26],[1992,77.31],[1993,77.31],[1994,77.28],[1995,77.23],[1996,77.2],[1997,77.2],[1998,77.26],[1999,77.37],[2000,77.53],[2001,77.74],[2002,77.97],[2003,78.21],[2004,78.44],[2005,78.67],[2006,78.88],[2007,79.09],[2008,79.3],[2009,79.5]]},{"name":"Hungary","region":"Europe & Central Asia","income":[[1800,1390.67],[1820,1419.84],[1870,2080.32],[1890,2806.25],[1900,3206.12],[1910,3812.26],[1913,3998.03],[1920,3256.68],[1924,3643.92],[1925,4343.45],[1926,4120.45],[1927,4263.81],[1928,4602.36],[1929,4718.3],[1930,4580.82],[1931,4322.77],[1932,4178.09],[1933,4523.85],[1934,4515.95],[1935,4709.54],[1936,4989.63],[1937,4846.07],[1938,5060.54],[1939,5408.1],[1940,5005.28],[1941,5004.94],[1942,5227.43],[1946,3279.36],[1947,3379.93],[1948,4192.74],[1949,4486.51],[1950,4726.19],[1951,5135.95],[1952,5263.67],[1953,5308.49],[1954,5431.86],[1955,5850.99],[1956,5537.72],[1957,6040.18],[1958,6416.73],[1959,6639.87],[1960,6954.29],[1961,7272.79],[1962,7550.36],[1963,7942.53],[1964,8362.48],[1965,8403.48],[1966,8854.42],[1967,9326.64],[1968,9403.18],[1969,9647.24],[1970,9581.97],[1971,9982.61],[1972,10168.66],[1973,10663.67],[1974,10892.94],[1975,11062.46],[1976,11035.57],[1977,11674.84],[1978,11917.24],[1979,11912.91],[1980,12018.55],[1981,12102.6],[1982,12545.99],[1983,12435.83],[1984,12786.88],[1985,12495.2],[1986,12767.16],[1987,12986.48],[1988,13399.3],[1989,13155.25],[1990,12308.91],[1991,10851.83],[1992,10535.63],[1993,10494.88],[1994,10821.26],[1995,11000.41],[1996,11169.79],[1997,11712.78],[1998,12319.41],[1999,12874.42],[2000,13592.35],[2001,14185.52],[2002,14843.94],[2003,15506.2],[2004,16291.2],[2005,17014],[2006,17725.9],[2007,17916.21],[2008,18068.58],[2009,16982.8]],"population":[[1820,4146000],[1850,5161000],[1870,5917000],[1890,6622000],[1900,7127000],[1910,7644000],[1913,7840000],[1920,7950000],[1921,8029000],[1922,8103000],[1923,8173000],[1924,8232000],[1925,8299000],[1926,8383000],[1927,8454000],[1928,8520000],[1929,8583000],[1930,8649000],[1931,8723000],[1932,8785000],[1933,8848000],[1934,8919000],[1935,8985000],[1936,9046000],[1937,9107000],[1938,9167000],[1939,9227000],[1940,9287000],[1941,9344000],[1942,9396000],[1943,9442000],[1944,9497000],[1945,9024000],[1946,9042000],[1947,9079000],[1948,9158000],[1949,9250000],[1950,9338000],[1951,9423000],[1952,9504000],[1953,9595000],[1954,9706000],[1955,9825000],[1956,9911000],[1957,9839000],[1958,9882000],[1959,9937000],[1960,9983512],[1961,10029000],[1962,10063000],[1963,10091000],[1964,10124000],[1965,10152934],[1966,10184561],[1967,10223422],[1968,10263542],[1969,10302814],[1970,10337004],[1971,10364869],[1972,10394091],[1973,10425984],[1974,10471272],[1975,10531820],[1976,10588729],[1977,10637171],[1978,10673300],[1979,10698234],[1980,10711122],[1981,10711848],[1982,10705535],[1983,10689463],[1984,10668095],[1985,10648713],[1986,10630563],[1987,10612740],[1988,10442500],[1989,10397959],[1990,10371878],[1991,10364737],[1992,10348684],[1993,10329012],[1994,10312714],[1995,10295874],[1996,10273591],[1997,10244684],[1998,10211127],[1999,10172673],[2000,10137449],[2001,10109467],[2002,10083313],[2003,10057745],[2004,10032375],[2005,10006835],[2006,9981334],[2007,9956108],[2008,9930915]],"lifeExpectancy":[[1800,36],[1890,36],[1900,37.34],[1910,39.76],[1920,42.06],[1930,50.21],[1941,56.56],[1949,61.29],[1950,62.07],[1951,62.46],[1952,64.03],[1953,63.87],[1954,65.43],[1955,66.88],[1956,66.04],[1957,66.41],[1958,67.42],[1959,67.32],[1960,68.09],[1961,69.02],[1962,67.96],[1963,68.98],[1964,69.48],[1965,69.17],[1966,69.93],[1967,69.5],[1968,69.33],[1969,69.4],[1970,69.24],[1971,69.13],[1972,69.76],[1973,69.63],[1974,69.35],[1975,69.4],[1976,69.69],[1977,69.95],[1978,69.49],[1979,69.7],[1980,69.11],[1981,69.17],[1982,69.39],[1983,68.95],[1984,68.99],[1985,68.93],[1986,69.14],[1987,69.61],[1988,70],[1989,69.44],[1990,69.41],[1991,69.46],[1992,69.21],[1993,69.25],[1994,69.68],[1995,70.08],[1996,70.67],[1997,71.07],[1998,71],[1999,71.14],[2000,71.86],[2001,72.49],[2002,72.61],[2003,72.63],[2004,73.04],[2005,72.99],[2006,73.45],[2007,73.45],[2008,73.48],[2009,73.67]]},{"name":"Iceland","region":"Europe & Central Asia","income":[[1800,801.9],[1820,828.93],[1870,1416.21],[1871,1441.22],[1872,1436.14],[1873,1501.2],[1874,1546.62],[1875,1539.8],[1876,1514.68],[1877,1546.88],[1878,1604.6],[1879,1698.15],[1880,1799.25],[1881,1802.69],[1882,1609.07],[1883,1547.32],[1884,1565.79],[1885,1599.16],[1886,1604.51],[1887,1577.48],[1888,1632.08],[1889,1701.73],[1890,1773.61],[1891,1816.24],[1892,1932.36],[1893,2057.61],[1894,2080.31],[1895,2035.37],[1896,2075.54],[1897,2062],[1898,2000.08],[1899,1997.73],[1900,2073.92],[1901,2163.93],[1902,2223.26],[1903,2222.88],[1904,2225.98],[1905,2377.91],[1906,2430.86],[1907,2524.6],[1908,2504.78],[1909,2476.25],[1910,2651.74],[1911,2763.78],[1912,2783.22],[1913,2908.62],[1914,2843.71],[1915,2789.84],[1916,2459.7],[1917,2406.44],[1918,2264.74],[1919,2622.11],[1920,2210.37],[1921,2429.41],[1922,2725.28],[1923,2576.98],[1924,2745.48],[1925,2739.43],[1926,2947.87],[1927,3236.57],[1928,3359.91],[1929,3552.27],[1930,3926.26],[1931,3864.34],[1932,3688.39],[1933,4066.56],[1934,4094.87],[1935,3943.75],[1936,3934.71],[1937,4083.18],[1938,4083.27],[1939,4538.18],[1940,4773.73],[1941,5411.37],[1942,6238.02],[1943,6574.81],[1944,7112.1],[1945,7562.67],[1946,7759.22],[1947,8431.86],[1948,8438.73],[1949,8116.16],[1950,7750.29],[1951,7468.81],[1952,7267.69],[1953,8211.29],[1954,8800.72],[1955,9458.67],[1956,9489.02],[1957,9244],[1958,9789.87],[1959,9768.93],[1960,9890.07],[1961,9724.49],[1962,10350.16],[1963,11221.63],[1964,12133.87],[1965,12794.88],[1966,13701.27],[1967,13319.9],[1968,12441.44],[1969,12659.11],[1970,13532.84],[1971,15128.83],[1972,15798.06],[1973,16670.02],[1974,17375.59],[1975,17297.44],[1976,18179.25],[1977,19654.96],[1978,20649.68],[1979,21453.78],[1980,22434.86],[1981,23121.41],[1982,23269.61],[1983,22499.9],[1984,23215.83],[1985,23821.71],[1986,25107.72],[1987,26923.21],[1988,26435.22],[1989,26317.46],[1990,26372.88],[1991,26332.62],[1992,25144.39],[1993,25030.86],[1994,25941.54],[1995,25840.49],[1996,27027.25],[1997,28061.1],[1998,29256.7],[1999,30042.94],[2000,31092.03],[2001,31830.54],[2002,31163.2],[2003,31937.01],[2004,34279.18],[2005,35630],[2006,36326.1],[2007,37787.48],[2008,37782.95],[2009,34989.73]],"population":[[1800,61428],[1820,61428],[1950,142938],[1951,145604],[1952,147962],[1953,151036],[1954,154563],[1955,158044],[1956,161358],[1957,165110],[1958,168771],[1959,172314],[1960,175860],[1961,178905],[1962,182053],[1963,185481],[1964,188847],[1965,192288],[1966,195610],[1967,198676],[1968,201245],[1969,202920],[1970,204104],[1971,206092],[1972,209275],[1973,212364],[1974,215324],[1975,218031],[1976,220133],[1977,221823],[1978,223587],[1979,225749],[1980,228161],[1981,230803],[1982,233997],[1983,237041],[1984,239498],[1985,241403],[1986,242999],[1987,244676],[1988,249885],[1989,252746],[1990,254719],[1991,256831],[1992,259012],[1993,261270],[1994,266075],[1995,267527],[1996,269000],[1997,271192],[1998,274000],[1999,277280],[2000,281043],[2001,284812],[2002,288030],[2003,291064],[2004,293966],[2005,296737],[2006,299388],[2007,301931],[2008,304367]],"lifeExpectancy":[[1800,32.4],[1838,32.4],[1839,27.95],[1840,31.97],[1841,40.22],[1842,40.13],[1843,25.39],[1844,42.9],[1845,41.35],[1846,18.31],[1847,32.94],[1848,41.39],[1849,37.14],[1850,36.61],[1851,30.01],[1852,42.1],[1853,48.6],[1854,43.14],[1855,38.15],[1856,42.34],[1857,39.49],[1858,34.84],[1859,29.67],[1860,19.76],[1861,27.09],[1862,26.96],[1863,35.11],[1864,34.81],[1865,34.21],[1866,27.2],[1867,37.54],[1868,34.64],[1869,28.03],[1870,38.37],[1871,35.02],[1872,25.15],[1873,36.61],[1874,39.62],[1875,36.54],[1876,40.25],[1877,44.64],[1878,41.61],[1879,39.52],[1880,42.32],[1881,35.82],[1882,17.74],[1883,30.27],[1884,42.19],[1885,45.46],[1886,44.97],[1887,40.6],[1888,46.8],[1889,52.47],[1890,36.58],[1891,47.49],[1892,52.73],[1893,52.58],[1894,44.79],[1895,52.52],[1896,53.22],[1897,48.52],[1898,44.2],[1899,49.79],[1900,46.64],[1901,52.98],[1902,50.52],[1903,48.84],[1904,52.66],[1905,49.51],[1906,53.58],[1907,49.74],[1908,45.79],[1909,52.36],[1910,52.67],[1911,55.47],[1912,56],[1913,58.95],[1914,51.92],[1915,53.66],[1916,54.53],[1917,59.02],[1918,51.07],[1919,58.49],[1920,54.58],[1921,54.21],[1922,56.95],[1923,57.67],[1924,54],[1925,58.23],[1926,60.79],[1927,58.12],[1928,61.81],[1929,60.55],[1930,60.23],[1931,60.83],[1932,62.16],[1933,63.02],[1934,63.37],[1935,59.49],[1936,62.75],[1937,63.52],[1938,65.09],[1939,65.99],[1940,65.79],[1941,63.18],[1942,64.12],[1943,65.22],[1944,66.8],[1945,67.53],[1946,68.56],[1947,69.39],[1948,70.17],[1949,71.44],[1950,71.01],[1951,71.05],[1952,72.49],[1953,72.31],[1954,73.36],[1955,73.3],[1956,72.98],[1957,73.47],[1958,73.43],[1959,72.66],[1960,74.09],[1961,73.47],[1962,73.68],[1963,72.98],[1964,73.57],[1965,73.84],[1966,73.23],[1967,73.73],[1968,73.94],[1969,73.71],[1970,73.81],[1971,73.55],[1972,74.46],[1973,74.31],[1974,74.37],[1975,75.35],[1976,76.71],[1977,76.11],[1978,76.42],[1979,76.63],[1980,76.66],[1981,76.35],[1982,76.99],[1983,76.63],[1984,77.43],[1985,77.56],[1986,78.09],[1987,77.23],[1988,77.08],[1989,78.15],[1990,77.98],[1991,77.94],[1992,78.77],[1993,78.98],[1994,79.24],[1995,78.04],[1996,78.84],[1997,78.95],[1998,79.67],[1999,79.46],[2000,79.72],[2001,80.64],[2002,80.5],[2003,81.06],[2004,80.95],[2005,81.43],[2006,81.12],[2007,81.31],[2008,81.85],[2009,81.95]]},{"name":"Ireland","region":"Europe & Central Asia","income":[[1800,1213.16],[1820,1255.19],[1821,1273],[1822,1291.06],[1823,1309.38],[1824,1327.97],[1825,1346.81],[1826,1365.92],[1827,1385.3],[1828,1404.96],[1829,1424.9],[1830,1445.12],[1831,1465.63],[1832,1486.42],[1833,1507.52],[1834,1528.91],[1835,1550.6],[1836,1572.61],[1837,1594.92],[1838,1617.56],[1839,1640.51],[1840,1663.79],[1841,1687.4],[1842,1711.34],[1843,1735.63],[1844,1760.26],[1845,1472.74],[1846,1232.18],[1847,1400],[1848,1232],[1849,1200],[1850,1550],[1851,1800],[1852,1970.3],[1853,1998.25],[1854,2026.61],[1855,2055.37],[1856,2084.54],[1857,2114.12],[1858,2144.12],[1859,2174.54],[1860,2205.4],[1861,2236.69],[1862,2268.43],[1863,2300.62],[1864,2333.27],[1865,2366.38],[1866,2399.96],[1867,2434.01],[1868,2468.55],[1869,2503.58],[1870,2539.11],[1871,2564.79],[1872,2590.73],[1873,2616.93],[1874,2643.4],[1875,2670.13],[1876,2697.13],[1877,2724.41],[1878,2751.97],[1879,2779.8],[1880,2807.91],[1881,2836.31],[1882,2864.99],[1883,2893.97],[1884,2923.24],[1885,2952.8],[1886,2982.66],[1887,3012.83],[1888,3043.3],[1889,3074.08],[1890,3105.17],[1891,3136.57],[1892,3168.29],[1893,3200.34],[1894,3232.7],[1895,3265.4],[1896,3298.42],[1897,3331.78],[1898,3365.48],[1899,3399.51],[1900,3433.9],[1901,3468.62],[1902,3503.7],[1903,3539.14],[1904,3574.93],[1905,3611.09],[1906,3647.61],[1907,3684.5],[1908,3721.76],[1909,3759.4],[1910,3797.42],[1911,3835.83],[1912,3874.62],[1913,3913.81],[1914,3876.19],[1915,3838.93],[1916,3802.03],[1917,3765.48],[1918,3729.28],[1919,3693.44],[1920,3657.94],[1921,3622.77],[1922,3716.68],[1923,3682.89],[1924,3674.88],[1925,3680.34],[1926,3678.42],[1927,3795.01],[1928,3915.26],[1929,4039.53],[1930,4144.23],[1931,4250.85],[1932,4126.9],[1933,4005.44],[1934,4122.34],[1935,4242.7],[1936,4366.06],[1937,4229.22],[1938,4366.34],[1939,4365.92],[1940,4365.8],[1941,4365.89],[1942,4365.68],[1943,4365.62],[1944,4365.67],[1945,4318.47],[1946,4365.83],[1947,4423.12],[1948,4621.03],[1949,4869.55],[1950,4939.18],[1951,5069.59],[1952,5210.28],[1953,5359.59],[1954,5427.05],[1955,5607.71],[1956,5574.54],[1957,5599.08],[1958,5535.12],[1959,5776.53],[1960,6125.35],[1961,6449],[1962,6631.6],[1963,6896.75],[1964,7131.74],[1965,7225.83],[1966,7267.29],[1967,7655.57],[1968,8253.11],[1969,8710.47],[1970,8867.96],[1971,9088.5],[1972,9530.77],[1973,9822.55],[1974,10073.82],[1975,10465.52],[1976,10445.81],[1977,11150.98],[1978,11800.94],[1979,11967.79],[1980,12217.02],[1981,12467.88],[1982,12618.32],[1983,12501.69],[1984,12953.44],[1985,13311.61],[1986,13252.76],[1987,13872.87],[1988,14639.6],[1989,15562.98],[1990,16904.61],[1991,17120.66],[1992,17558.82],[1993,17927.85],[1994,18869.09],[1995,20581.98],[1996,22144.69],[1997,24521.95],[1998,26127.25],[1999,28496.8],[2000,30827.98],[2001,32335.28],[2002,34077.05],[2003,35191.11],[2004,36303.8],[2005,38058],[2006,39093.97],[2007,40501.4],[2008,38533.88],[2009,35692.95]],"population":[[1820,5052603],[1821,5123045],[1822,5170718],[1823,5219102],[1824,5267487],[1825,5316582],[1826,5366390],[1827,5416197],[1828,5466716],[1829,5517947],[1830,5569177],[1831,5621119],[1832,5655984],[1833,5690849],[1834,5725715],[1835,5760580],[1836,5796156],[1837,5831733],[1838,5868021],[1839,5904310],[1840,5940598],[1841,5976886],[1842,5992540],[1843,6006059],[1844,6033097],[1845,6045905],[1846,6040924],[1847,5838137],[1848,5436120],[1849,5162891],[1850,4893931],[1851,4634933],[1852,4508991],[1853,4410800],[1854,4328262],[1855,4279877],[1856,4249993],[1857,4211570],[1858,4191647],[1859,4171013],[1860,4141840],[1861,4118359],[1862,4109821],[1863,4068552],[1864,4013764],[1865,3981033],[1866,3929803],[1867,3904187],[1868,3889245],[1869,3877149],[1870,3855803],[1871,3840861],[1872,3823072],[1873,3791053],[1874,3770419],[1875,3756188],[1876,3755477],[1877,3761169],[1878,3758323],[1879,3746938],[1880,3702112],[1881,3661554],[1882,3629535],[1883,3574747],[1884,3539882],[1885,3514267],[1886,3490786],[1887,3455921],[1888,3416075],[1889,3384767],[1890,3357018],[1891,3329979],[1892,3297249],[1893,3278037],[1894,3265230],[1895,3244595],[1896,3231788],[1897,3223249],[1898,3214711],[1899,3203326],[1900,3179846],[1901,3164192],[1902,3155654],[1903,3143557],[1904,3136442],[1905,3130038],[1906,3129327],[1907,3122211],[1908,3120077],[1909,3121500],[1910,3120077],[1911,3117231],[1912,3107981],[1913,3092327],[1914,3083789],[1915,3043943],[1916,3040385],[1917,3040385],[1918,3045366],[1919,3096596],[1920,3103000],[1921,3096000],[1922,3002000],[1923,3014000],[1924,3005000],[1925,2985000],[1926,2971000],[1927,2957000],[1928,2944000],[1929,2937000],[1930,2927000],[1931,2933000],[1932,2949000],[1933,2962000],[1934,2971000],[1935,2971000],[1936,2967000],[1937,2948000],[1938,2937000],[1939,2934000],[1940,2958000],[1941,2993000],[1942,2963000],[1943,2946000],[1944,2944000],[1945,2952000],[1946,2957000],[1947,2974000],[1948,2985000],[1949,2981000],[1950,2963018],[1951,2959311],[1952,2952156],[1953,2947311],[1954,2936769],[1955,2916133],[1956,2895253],[1957,2878220],[1958,2851522],[1959,2843041],[1960,2832000],[1961,2818300],[1962,2830000],[1963,2850000],[1964,2864000],[1965,2876000],[1966,2884000],[1967,2900100],[1968,2912500],[1969,2925600],[1970,2950100],[1971,2978300],[1972,3024400],[1973,3073200],[1974,3124200],[1975,3177300],[1976,3227800],[1977,3271900],[1978,3314000],[1979,3368200],[1980,3401000],[1981,3443400],[1982,3480000],[1983,3504000],[1984,3529000],[1985,3540000],[1986,3540500],[1987,3539900],[1988,3529600],[1989,3513200],[1990,3508200],[1991,3530771],[1992,3557761],[1993,3578349],[1994,3595542],[1995,3613890],[1996,3636179],[1997,3667233],[1998,3707555],[1999,3750141],[2000,3791690],[2001,3835025],[2002,3879155],[2003,3924023],[2004,3969558],[2005,4015676],[2006,4062235],[2007,4109086],[2008,4156119]],"lifeExpectancy":[[1800,37.7],[1845,37.7],[1846,25],[1847,30],[1848,20.55],[1849,20],[1850,35],[1851,37.7],[1859,37.7],[1901,49.4],[1911,53.8],[1926,57.6],[1936,58.9],[1941,60],[1946,61.4],[1950,65.61],[1951,64.78],[1952,67.2],[1953,67.96],[1954,68.07],[1955,68.06],[1956,69.01],[1957,69.06],[1958,69.36],[1959,69.49],[1960,70.23],[1961,69.69],[1962,69.99],[1963,70.24],[1964,70.49],[1965,70.69],[1966,70.2],[1967,71.24],[1968,70.93],[1969,70.85],[1970,70.89],[1971,71.68],[1972,71.02],[1973,71.24],[1974,71.18],[1975,71.76],[1976,71.86],[1977,72],[1978,71.98],[1979,72.25],[1980,72.6],[1981,72.96],[1982,73.23],[1983,73.26],[1984,73.71],[1985,73.65],[1986,73.72],[1987,74.52],[1988,74.55],[1989,74.58],[1990,74.98],[1991,75.14],[1992,75.54],[1993,75.4],[1994,75.91],[1995,75.58],[1996,75.94],[1997,76.08],[1998,76.3],[1999,76.2],[2000,76.66],[2001,77.24],[2002,77.73],[2003,78.24],[2004,78.64],[2005,79.4],[2006,79.73],[2007,79.66],[2008,79.94],[2009,80.16]]},{"name":"Italy","region":"Europe & Central Asia","income":[[1800,1339.84],[1801,1322.44],[1802,1365.94],[1803,1405.09],[1804,1465.99],[1805,1418.14],[1806,1452.94],[1807,1426.84],[1808,1509.5],[1809,1513.85],[1810,1396.39],[1811,1352.89],[1812,1378.99],[1813,1418.14],[1814,1435.54],[1815,1374.64],[1816,1352.89],[1817,1365.94],[1818,1465.99],[1819,1457.29],[1820,1452.94],[1821,1431.19],[1822,1448.59],[1823,1461.64],[1824,1496.45],[1825,1479.05],[1826,1518.2],[1827,1496.45],[1828,1479.05],[1829,1470.35],[1830,1452.94],[1831,1500.8],[1832,1518.2],[1833,1522.55],[1834,1535.6],[1835,1579.1],[1836,1431.19],[1837,1392.04],[1838,1418.14],[1839,1405.09],[1840,1448.59],[1841,1479.05],[1842,1483.4],[1843,1409.44],[1844,1409.44],[1845,1422.49],[1846,1409.44],[1847,1448.59],[1848,1444.24],[1849,1435.54],[1850,1357.24],[1851,1361.59],[1852,1339.84],[1853,1309.39],[1854,1226.74],[1855,1239.79],[1856,1244.14],[1857,1331.14],[1858,1383.34],[1859,1339.84],[1860,1335.49],[1861,1448.59],[1862,1492.1],[1863,1522.55],[1864,1496.45],[1865,1574.75],[1866,1465.99],[1867,1479.05],[1868,1487.75],[1869,1526.9],[1870,1600.85],[1871,1592.15],[1872,1566.05],[1873,1566.05],[1874,1674.8],[1875,1640],[1876,1579.1],[1877,1600.85],[1878,1683.5],[1879,1679.15],[1880,1722.65],[1881,1770.5],[1882,1809.66],[1883,1831.41],[1884,1774.85],[1885,1827.06],[1886,1914.06],[1887,1940.16],[1888,1918.41],[1889,1848.81],[1890,1896.66],[1891,1944.51],[1892,1931.46],[1893,1979.31],[1894,1988.01],[1895,2009.76],[1896,2031.51],[1897,2044.56],[1898,2053.26],[1899,2079.36],[1900,2127.22],[1901,2166.37],[1902,2214.22],[1903,2270.77],[1904,2340.37],[1905,2414.32],[1906,2479.58],[1907,2557.88],[1908,2592.68],[1909,2636.18],[1910,2640.53],[1911,2670.98],[1912,2762.33],[1913,2871.09],[1914,3133.99],[1915,3155.61],[1916,3517.13],[1917,3756.73],[1918,4142.93],[1919,3599.69],[1920,3229.38],[1921,3268.57],[1922,3419.44],[1923,3438.41],[1924,3409.86],[1925,3564.46],[1926,3560.69],[1927,3578.97],[1928,3782.3],[1929,3881.82],[1930,3664.52],[1931,3696.84],[1932,3832.8],[1933,3798.85],[1934,3826.45],[1935,4125.84],[1936,4218.03],[1937,4388.13],[1938,4396.7],[1939,4653.39],[1940,4495.44],[1941,4384.39],[1942,4377.87],[1943,4124.63],[1944,3499.45],[1945,2730.28],[1946,3417.92],[1947,3892.09],[1948,4108.64],[1949,4219.07],[1950,4461.07],[1951,4719.64],[1952,4931.4],[1953,5222.08],[1954,5436.14],[1955,5733.71],[1956,5958.25],[1957,6248.66],[1958,6518.37],[1959,6885.77],[1960,7314.83],[1961,7820.21],[1962,8243.58],[1963,8636.91],[1964,8821.6],[1965,9011.54],[1966,9503.61],[1967,10022.4],[1968,10694.07],[1969,11274.4],[1970,11788.23],[1971,11939.22],[1972,12269.27],[1973,13133.75],[1974,13614.98],[1975,13160.79],[1976,14021.93],[1977,14255.98],[1978,14831.4],[1979,15712.14],[1980,16201.88],[1981,16362.8],[1982,16537.48],[1983,16717.44],[1984,17530.69],[1985,18078.95],[1986,18479.37],[1987,19207.23],[1988,20293.85],[1989,21166.48],[1990,21561.42],[1991,21755.4],[1992,22013.64],[1993,21826.22],[1994,22471.23],[1995,23680.31],[1996,23897.55],[1997,24675.02],[1998,25409.99],[1999,26128.82],[2000,27160.47],[2001,27779.73],[2002,27968.1],[2003,27839.64],[2004,27887.57],[2005,27750],[2006,28141.34],[2007,28342.66],[2008,27753.8],[2009,26160.59]],"population":[[1820,20176000],[1821,20306000],[1822,20437000],[1823,20568000],[1824,20701000],[1825,20834000],[1826,20968000],[1827,21103000],[1828,21239000],[1829,21376000],[1830,21513000],[1831,21652000],[1832,21791000],[1833,21932000],[1834,22073000],[1835,22215000],[1836,22358000],[1837,22502000],[1838,22647000],[1839,22793000],[1840,22939000],[1841,23087000],[1842,23236000],[1843,23385000],[1844,23536000],[1845,23687000],[1846,23840000],[1847,23993000],[1848,24148000],[1849,24303000],[1850,24460000],[1851,24617000],[1852,24776000],[1853,24935000],[1854,25096000],[1855,25257000],[1856,25420000],[1857,25584000],[1858,25748000],[1859,25914000],[1860,26081000],[1861,26249000],[1862,26418000],[1863,26610000],[1864,26814000],[1865,27023000],[1866,27256000],[1867,27411000],[1868,27501000],[1869,27681000],[1870,27888000],[1871,28063000],[1872,28233000],[1873,28387000],[1874,28505000],[1875,28630000],[1876,28837000],[1877,29067000],[1878,29252000],[1879,29425000],[1880,29534000],[1881,29672000],[1882,29898000],[1883,30113000],[1884,30366000],[1885,30644000],[1886,30857000],[1887,31049000],[1888,31243000],[1889,31468000],[1890,31702000],[1891,31892000],[1892,32091000],[1893,32303000],[1894,32513000],[1895,32689000],[1896,32863000],[1897,33078000],[1898,33285000],[1899,33487000],[1900,33672000],[1901,33877000],[1902,34166000],[1903,34436000],[1904,34715000],[1905,35011000],[1906,35297000],[1907,35594000],[1908,35899000],[1909,36213000],[1910,36572000],[1911,36917000],[1912,37150000],[1913,37248000],[1914,37526000],[1915,37982000],[1916,38142000],[1917,37981000],[1918,37520000],[1919,37250000],[1920,37398000],[1921,37691000],[1922,38086000],[1923,38460000],[1924,38810000],[1925,39165000],[1926,39502000],[1927,39848000],[1928,40186000],[1929,40469000],[1930,40791000],[1931,41132000],[1932,41431000],[1933,41753000],[1934,42093000],[1935,42429000],[1936,42750000],[1937,43068000],[1938,43419000],[1939,43865000],[1940,44341000],[1941,44734000],[1942,45004000],[1943,45177000],[1944,45290000],[1945,45442000],[1946,45725000],[1947,46040000],[1948,46381000],[1949,46733000],[1950,47105000],[1951,47418000],[1952,47666000],[1953,47957000],[1954,48299000],[1955,48633000],[1956,48921000],[1957,49182000],[1958,49476000],[1959,49832000],[1960,50197600],[1961,50523200],[1962,50843200],[1963,51198300],[1964,51600200],[1965,51987100],[1966,52331600],[1967,52667100],[1968,52986600],[1969,53317000],[1970,53661100],[1971,54005500],[1972,54365564],[1973,54796843],[1974,55226259],[1975,55571894],[1976,55838536],[1977,56059245],[1978,56240143],[1979,56367710],[1980,56451247],[1981,56502489],[1982,56535636],[1983,56630129],[1984,56696963],[1985,56731215],[1986,56733833],[1987,56729703],[1988,56734027],[1989,56737529],[1990,56742886],[1991,56747462],[1992,56840847],[1993,57026746],[1994,57179460],[1995,57274531],[1996,57367032],[1997,57479469],[1998,57550318],[1999,57603634],[2000,57719337],[2001,57844924],[2002,57926999],[2003,57998353],[2004,58057477],[2005,58103033],[2006,58133509],[2007,58147733],[2008,58145321]],"lifeExpectancy":[[1800,29.01],[1872,29.69],[1873,31.6],[1874,31.75],[1875,31.31],[1876,33.6],[1877,34.88],[1878,34.32],[1879,33.95],[1880,32.74],[1881,34.2],[1882,34.29],[1883,35.18],[1884,36.6],[1885,36.83],[1886,35.1],[1887,35.97],[1888,36.92],[1889,39.05],[1890,38.5],[1891,38.46],[1892,38.84],[1893,39.79],[1894,39.91],[1895,39.61],[1896,40.7],[1897,43.29],[1898,42.33],[1899,43.67],[1900,41.66],[1901,43.52],[1902,42.99],[1903,43.15],[1904,44.43],[1905,43.94],[1906,45.09],[1907,45.45],[1908,43.19],[1909,44.67],[1910,46.75],[1911,44.77],[1912,48.98],[1913,48.46],[1914,49.89],[1915,42.34],[1916,39.27],[1917,37.69],[1918,25.62],[1919,42.1],[1920,45.51],[1921,49.25],[1922,50.01],[1923,51.45],[1924,51.51],[1925,51.31],[1926,50.96],[1927,52.58],[1928,52.67],[1929,52.29],[1930,55.2],[1931,54.78],[1932,54.77],[1933,56.29],[1934,56.86],[1935,56.22],[1936,56.75],[1937,55.49],[1938,56.13],[1939,57.64],[1940,56.95],[1941,54.62],[1942,52.45],[1943,49.19],[1944,52.34],[1945,54.78],[1946,58.97],[1947,61.18],[1948,63.45],[1949,64.11],[1950,65.77],[1951,65.31],[1952,65.94],[1953,66.58],[1954,67.9],[1955,68.25],[1956,67.64],[1957,67.81],[1958,68.87],[1959,69.32],[1960,69.21],[1961,69.85],[1962,69.24],[1963,69.35],[1964,70.4],[1965,70.27],[1966,71.02],[1967,71.06],[1968,70.88],[1969,70.9],[1970,71.66],[1971,71.91],[1972,72.19],[1973,72.13],[1974,72.85],[1975,72.76],[1976,73.11],[1977,73.48],[1978,73.83],[1979,74.16],[1980,74.12],[1981,74.51],[1982,74.98],[1983,74.8],[1984,75.56],[1985,75.67],[1986,76],[1987,76.42],[1988,76.6],[1989,77],[1990,77.06],[1991,77.07],[1992,77.44],[1993,77.72],[1994,77.93],[1995,78.19],[1996,78.52],[1997,78.82],[1998,78.92],[1999,79.32],[2000,79.73],[2001,80.01],[2002,80.25],[2003,80.33],[2004,81.19],[2005,81.18],[2006,81.59],[2007,81.11],[2008,81.24],[2009,81.34]]},{"name":"Kazakhstan","region":"Europe & Central Asia","income":[[1800,585.03],[1820,597.35],[1913,1331.55],[1950,2609.22],[1973,7244.19],[1990,7085.5],[1991,6265.36],[1992,5919.91],[1993,5404.83],[1994,4802.48],[1995,4492.99],[1996,4567.93],[1997,4709.06],[1998,4691.52],[1999,4870.09],[2000,5366.02],[2001,6082.3],[2002,6667.3],[2003,7272.72],[2004,7930.09],[2005,8699],[2006,9437.71],[2007,10185.05],[2008,10500.47],[2009,10612.29]],"population":[[1800,2041282],[1820,2041282],[1950,6693230],[1951,6936060],[1952,7123394],[1953,7260866],[1954,7516649],[1955,7976879],[1956,8413793],[1957,8709753],[1958,9062534],[1959,9499911],[1960,9982014],[1961,10466809],[1962,10945885],[1963,11311646],[1964,11601936],[1965,11902456],[1966,12179771],[1967,12451717],[1968,12691968],[1969,12900122],[1970,13106377],[1971,13324719],[1972,13541694],[1973,13754298],[1974,13971543],[1975,14157075],[1976,14304436],[1977,14454828],[1978,14623619],[1979,14803694],[1980,14966718],[1981,15136447],[1982,15303467],[1983,15466787],[1984,15630279],[1985,15789549],[1986,15946119],[1987,16109358],[1988,16206749],[1989,16265063],[1990,16398131],[1991,16504750],[1992,16542063],[1993,16451625],[1994,16182154],[1995,15878488],[1996,15696091],[1997,15484518],[1998,15247098],[1999,15084623],[2000,15032140],[2001,15052250],[2002,15077224],[2003,15107581],[2004,15143704],[2005,15185844],[2006,15233244],[2007,15284929],[2008,15340533]],"lifeExpectancy":[[1800,26.2],[1863,26.2],[1868,23.58],[1873,23.8],[1897,28.6],[1900,28.1],[1910,30.6],[1926,36.87],[1939,44.47],[1950,54.16],[1951,54.38],[1952,54.81],[1953,55.25],[1954,55.68],[1955,56.11],[1956,56.54],[1957,56.97],[1958,57.4],[1959,57.84],[1960,58.27],[1961,58.71],[1962,59.15],[1963,59.59],[1964,60.04],[1965,60.47],[1966,60.9],[1967,61.31],[1968,61.69],[1969,62.06],[1970,62.4],[1971,62.7],[1972,62.97],[1973,63.21],[1974,63.44],[1975,63.66],[1976,63.88],[1977,64.12],[1978,64.37],[1979,64.65],[1980,64.96],[1981,65.32],[1982,65.71],[1983,66.12],[1984,66.52],[1985,66.87],[1986,67.12],[1987,67.24],[1988,67.22],[1989,67.05],[1990,66.73],[1991,66.27],[1992,65.71],[1993,65.09],[1994,64.49],[1995,63.95],[1996,63.54],[1997,63.3],[1998,63.24],[1999,63.33],[2000,63.56],[2001,63.87],[2002,64.18],[2003,64.45],[2004,64.64],[2005,64.77],[2006,64.86],[2007,64.93],[2008,65.03],[2009,65.18]]},{"name":"Latvia","region":"Europe & Central Asia","income":[[1800,865.19],[1820,883.41],[1913,1969.19],[1965,4078.83],[1966,4110.99],[1967,4444.34],[1968,4596.58],[1969,4651.53],[1970,5470.69],[1971,5845.61],[1972,6095.31],[1973,6395.1],[1974,6651.16],[1975,7050.03],[1976,7350.82],[1977,7488.92],[1978,7635.77],[1979,8000.76],[1980,8278.29],[1981,8578.01],[1982,8728.46],[1983,9127.3],[1984,9596.89],[1985,9502.49],[1986,9893.28],[1987,10063.53],[1988,10512.99],[1989,11044.48],[1990,10217.78],[1991,8960.02],[1992,6151.51],[1993,5948.96],[1994,6169.9],[1995,6191.8],[1996,6488.44],[1997,7143.44],[1998,7604.97],[1999,8028.97],[2000,8649.22],[2001,9396.42],[2002,10094.47],[2003,10879.77],[2004,11888.05],[2005,13218],[2006,14911.56],[2007,16494.88],[2008,15816.36],[2009,13021.94]],"population":[[1800,590588],[1820,590588],[1950,1936498],[1951,1950888],[1952,1964319],[1953,1976212],[1954,1990651],[1955,2002111],[1956,2026333],[1957,2055709],[1958,2072119],[1959,2088934],[1960,2115183],[1961,2145744],[1962,2172829],[1963,2199396],[1964,2227495],[1965,2253604],[1966,2278721],[1967,2301371],[1968,2322031],[1969,2341871],[1970,2361159],[1971,2381641],[1972,2401244],[1973,2421355],[1974,2442473],[1975,2461606],[1976,2476760],[1977,2491407],[1978,2504508],[1979,2514167],[1980,2524543],[1981,2536976],[1982,2552229],[1983,2569826],[1984,2587996],[1985,2606405],[1986,2626695],[1987,2648965],[1988,2664068],[1989,2667309],[1990,2663590],[1991,2651308],[1992,2615869],[1993,2565708],[1994,2523532],[1995,2488008],[1996,2460277],[1997,2435967],[1998,2413173],[1999,2393657],[2000,2376178],[2001,2358232],[2002,2340205],[2003,2322943],[2004,2306306],[2005,2290237],[2006,2274735],[2007,2259810],[2008,2245423]],"lifeExpectancy":[[1800,33],[1860,33],[1896,44.95],[1924,53.7],[1935,58.08],[1950,64.53],[1951,64.93],[1952,65.7],[1953,66.42],[1954,67.08],[1955,67.69],[1956,68.24],[1957,68.72],[1958,69.16],[1959,69.54],[1960,70.3],[1961,70.54],[1962,69.88],[1963,70.29],[1964,71.52],[1965,71.2],[1966,71.16],[1967,70.82],[1968,70.46],[1969,70.2],[1970,70.22],[1971,70.57],[1972,70.25],[1973,70.2],[1974,70.11],[1975,69.28],[1976,69.41],[1977,69.45],[1978,69.35],[1979,68.87],[1980,69.19],[1981,69.13],[1982,69.71],[1983,69.47],[1984,69.51],[1985,69.63],[1986,71.01],[1987,71.05],[1988,70.99],[1989,70.46],[1990,69.51],[1991,69.24],[1992,68.57],[1993,66.78],[1994,65.53],[1995,66.33],[1996,68.92],[1997,69.55],[1998,69.19],[1999,69.98],[2000,70.57],[2001,70.32],[2002,70.67],[2003,71.17],[2004,71.5],[2005,71.24],[2006,71.14],[2007,71.2],[2008,72.52],[2009,72.77]]},{"name":"Lithuania","region":"Europe & Central Asia","income":[[1800,988.79],[1820,1009.61],[1913,2250.5],[1950,4409.94],[1973,11523.46],[1990,13148.26],[1991,12374.36],[1992,9743.51],[1993,8190.02],[1994,7406.2],[1995,7804.17],[1996,8182.69],[1997,8764.9],[1998,9412.97],[1999,9259.81],[2000,9631.65],[2001,10272.37],[2002,11008.68],[2003,12120.35],[2004,13049.48],[2005,14085],[2006,15280.33],[2007,16875.86],[2008,17432.25],[2009,14928.78]],"population":[[1800,778655],[1820,778655],[1950,2553159],[1951,2561579],[1952,2583984],[1953,2593918],[1954,2597435],[1955,2614336],[1956,2641167],[1957,2651630],[1958,2672229],[1959,2717677],[1960,2764864],[1961,2810271],[1962,2850220],[1963,2886180],[1964,2922673],[1965,2959173],[1966,2996683],[1967,3033728],[1968,3068801],[1969,3101819],[1970,3137562],[1971,3177533],[1972,3213271],[1973,3245551],[1974,3276362],[1975,3305195],[1976,3333542],[1977,3361419],[1978,3386988],[1979,3410869],[1980,3435289],[1981,3462341],[1982,3491974],[1983,3523380],[1984,3555054],[1985,3587032],[1986,3619593],[1987,3653339],[1988,3673950],[1989,3681250],[1990,3694836],[1991,3702136],[1992,3700278],[1993,3689004],[1994,3679636],[1995,3673577],[1996,3668316],[1997,3664372],[1998,3661168],[1999,3658454],[2000,3654387],[2001,3645747],[2002,3633232],[2003,3620094],[2004,3607899],[2005,3596617],[2006,3585906],[2007,3575439],[2008,3565205]],"lifeExpectancy":[[1800,28.9],[1870,28.9],[1900,41.7],[1925,50.5],[1950,63.56],[1951,63.87],[1952,64.49],[1953,65.11],[1954,65.73],[1955,66.34],[1956,66.95],[1957,67.55],[1958,68.14],[1959,67.68],[1960,70.28],[1961,70.47],[1962,69.4],[1963,70.58],[1964,71.94],[1965,71.69],[1966,71.85],[1967,71.92],[1968,71.61],[1969,71.22],[1970,71.08],[1971,72.02],[1972,71.26],[1973,71.61],[1974,71.54],[1975,71.15],[1976,71.29],[1977,71.04],[1978,70.83],[1979,70.7],[1980,70.68],[1981,70.66],[1982,71.06],[1983,70.98],[1984,70.49],[1985,70.66],[1986,72.33],[1987,72.14],[1988,71.98],[1989,71.66],[1990,71.37],[1991,70.55],[1992,70.4],[1993,69.01],[1994,68.58],[1995,69.02],[1996,70.15],[1997,70.99],[1998,71.32],[1999,71.71],[2000,72.18],[2001,71.79],[2002,71.98],[2003,72.24],[2004,72.23],[2005,71.7],[2006,71.47],[2007,71.39],[2008,71.84],[2009,71.93]]},{"name":"Luxembourg","region":"Europe & Central Asia","income":[[1800,1145.57],[1820,1184.19],[1913,3505.89],[1950,14554.96],[1951,13543.17],[1952,14326.14],[1953,14733.28],[1954,14468.25],[1955,15026.48],[1956,15697.47],[1957,16545.86],[1958,16587.41],[1959,16545.58],[1960,17086.72],[1961,17621.05],[1962,17713.7],[1963,17788.6],[1964,19273.35],[1965,19349.16],[1966,19340.04],[1967,19163],[1968,19989.65],[1969,22105.34],[1970,22298.67],[1971,22667.93],[1972,23883.2],[1973,25579.14],[1974,26441.81],[1975,24454.52],[1976,24917.29],[1977,25282.33],[1978,26202.01],[1979,26887.08],[1980,27021.65],[1981,26826.66],[1982,27078.42],[1983,27876.96],[1984,29606.07],[1985,30435.47],[1986,33355.98],[1987,34518.87],[1988,37373.59],[1989,40736.66],[1990,42467.64],[1991,45750.52],[1992,45854.36],[1993,47055.53],[1994,48284.01],[1995,48165.26],[1996,49005.59],[1997,52622.9],[1998,55788.96],[1999,59349.52],[2000,63924.16],[2001,63932.84],[2002,64421.03],[2003,65308.34],[2004,67283.43],[2005,70014],[2006,72742.03],[2007,76273.6],[2008,74985.91],[2009,70857.46]],"population":[[1800,127030],[1820,127030],[1950,295587],[1951,297425],[1952,299263],[1953,301101],[1954,302939],[1955,304777],[1956,306615],[1957,308453],[1958,310291],[1959,312129],[1960,313969],[1961,316845],[1962,320750],[1963,324100],[1964,327750],[1965,331500],[1966,333895],[1967,335012],[1968,335867],[1969,337500],[1970,339174],[1971,342400],[1972,346600],[1973,350450],[1974,355050],[1975,358950],[1976,360750],[1977,361450],[1978,362100],[1979,363000],[1980,364400],[1981,365400],[1982,365718],[1983,365885],[1984,366272],[1985,367169],[1986,369019],[1987,371660],[1988,375624],[1989,377621],[1990,382966],[1991,387152],[1992,392552],[1993,398084],[1994,403756],[1995,409704],[1996,415566],[1997,421014],[1998,426495],[1999,432527],[2000,438777],[2001,444779],[2002,450786],[2003,456764],[2004,462690],[2005,468571],[2006,474413],[2007,480222],[2008,486006]],"lifeExpectancy":[[1800,36.9],[1879,36.9],[1901,47.98],[1902,48.06],[1903,46.91],[1904,44.83],[1905,46.21],[1906,46.59],[1907,49],[1908,46.46],[1909,47.79],[1910,49.66],[1911,46.38],[1912,48.88],[1913,50.24],[1914,50.07],[1915,51.47],[1916,50.12],[1917,48.05],[1918,42.33],[1919,44.68],[1920,54.62],[1921,56.21],[1922,55.27],[1923,54.68],[1924,56.76],[1925,54.79],[1926,53.41],[1927,55.86],[1928,55.35],[1929,52.7],[1930,56.8],[1931,57.59],[1932,56.66],[1933,58.32],[1934,59.9],[1935,59.1],[1936,61.2],[1937,61.06],[1938,59.2],[1939,60.35],[1940,61.95],[1941,59.99],[1942,58.33],[1943,54.32],[1944,47.84],[1945,49.4],[1946,61.61],[1947,63.06],[1948,64.49],[1949,64.84],[1950,65.25],[1951,65.42],[1952,65.76],[1953,66.09],[1954,66.42],[1955,66.73],[1956,67.04],[1957,67.33],[1958,67.62],[1959,67.9],[1960,69.07],[1961,69.57],[1962,68.67],[1963,68.89],[1964,69.07],[1965,69.4],[1966,69.31],[1967,69.69],[1968,70.28],[1969,69.84],[1970,69.58],[1971,69.47],[1972,70.71],[1973,70.47],[1974,70.55],[1975,70.5],[1976,70.45],[1977,71.75],[1978,71.71],[1979,72.4],[1980,72.57],[1981,72.38],[1982,72.47],[1983,73.35],[1984,73.11],[1985,73.68],[1986,74.61],[1987,74.15],[1988,74.75],[1989,74.68],[1990,75.39],[1991,75.47],[1992,75.16],[1993,75.74],[1994,76.36],[1995,76.47],[1996,76.49],[1997,76.81],[1998,77],[1999,77.67],[2000,77.82],[2001,77.95],[2002,78.08],[2003,77.96],[2004,79.26],[2005,79.56],[2006,79.44],[2007,79.36],[2008,79.56],[2009,79.75]]},{"name":"Macedonia, FYR","region":"Europe & Central Asia","income":[[1800,800.76],[1820,817.56],[1870,788.24],[1890,1109.35],[1900,1186.95],[1910,1390.81],[1913,1390.85],[1920,1357.01],[1921,1370.39],[1922,1390.56],[1923,1442.26],[1924,1523.97],[1925,1576.27],[1926,1662.47],[1927,1612.32],[1928,1729.42],[1929,1795.11],[1930,1734.96],[1931,1659.06],[1932,1484],[1933,1509.15],[1934,1543.86],[1935,1499.75],[1936,1671.3],[1937,1675.75],[1938,1784.95],[1939,1857.76],[1947,1731.03],[1948,2037.63],[1949,2208.57],[1950,2040.95],[1951,2093.81],[1952,1905.93],[1953,2161.7],[1954,2252.77],[1955,2365.11],[1956,2292.05],[1957,2650.77],[1958,2737],[1959,3044.67],[1960,3206.91],[1961,3318.1],[1962,3347.13],[1963,3659.85],[1964,3972.98],[1965,4040.6],[1966,4217.55],[1967,4252.92],[1968,4306.22],[1969,4750.19],[1970,4940.59],[1971,5462.13],[1972,5599.5],[1973,5738.05],[1974,6420.76],[1975,6364.32],[1976,6499.5],[1977,6907.88],[1978,7225.93],[1979,7656.7],[1980,7978.72],[1981,8072],[1982,8078.87],[1983,8102.68],[1984,8262.47],[1985,8285.66],[1986,8581.89],[1987,8445.96],[1988,8290.43],[1989,8149.6],[1990,7526.79],[1991,7497.53],[1992,6964.03],[1993,6409.96],[1994,6266.98],[1995,6166.63],[1996,6208.04],[1997,6266.31],[1998,6446.95],[1999,6697.62],[2000,6975.62],[2001,6637.34],[2002,6675.89],[2003,6847.63],[2004,7113.23],[2005,7393],[2006,7658.59],[2007,8086.19],[2008,8449.03],[2009,8364.79]],"population":[[1800,391865],[1820,391865],[1950,1224627],[1951,1255619],[1952,1271611],[1953,1299452],[1954,1325223],[1955,1340031],[1956,1339977],[1957,1344846],[1958,1344772],[1959,1353539],[1960,1366198],[1961,1381753],[1962,1401167],[1963,1422470],[1964,1444676],[1965,1469729],[1966,1489836],[1967,1511816],[1968,1532751],[1969,1553615],[1970,1574407],[1971,1596091],[1972,1617701],[1973,1639236],[1974,1661657],[1975,1684000],[1976,1706445],[1977,1727797],[1978,1747113],[1979,1768203],[1980,1792000],[1981,1808103],[1982,1823791],[1983,1831444],[1984,1837295],[1985,1844740],[1986,1850679],[1987,1856378],[1988,1858920],[1989,1863007],[1990,1861361],[1991,1867710],[1992,1889358],[1993,1917563],[1994,1935034],[1995,1954048],[1996,1971102],[1997,1984860],[1998,1995474],[1999,2004985],[2000,2014512],[2001,2023912],[2002,2030445],[2003,2035145],[2004,2040085],[2005,2045262],[2006,2050554],[2007,2055915],[2008,2061315]],"lifeExpectancy":[[1950,53.09],[1951,53.58],[1952,54.54],[1953,55.45],[1954,56.32],[1955,57.15],[1956,57.94],[1957,58.68],[1958,59.39],[1959,60.07],[1960,60.72],[1961,61.34],[1962,61.95],[1963,62.55],[1964,63.14],[1965,63.72],[1966,64.28],[1967,64.83],[1968,65.35],[1969,65.86],[1970,66.35],[1971,66.83],[1972,67.32],[1973,67.81],[1974,68.28],[1975,68.71],[1976,69.07],[1977,69.34],[1978,69.51],[1979,69.61],[1980,69.64],[1981,69.66],[1982,69.69],[1983,69.78],[1984,69.92],[1985,70.13],[1986,70.37],[1987,70.64],[1988,70.9],[1989,71.14],[1990,71.36],[1991,71.55],[1992,71.73],[1993,71.89],[1994,72.05],[1995,72.2],[1996,72.35],[1997,72.51],[1998,72.67],[1999,72.83],[2000,73.01],[2001,73.18],[2002,73.35],[2003,73.51],[2004,73.67],[2005,73.82],[2006,73.97],[2007,74.11],[2008,74.25],[2009,74.4]]},{"name":"Malta","region":"Europe & Central Asia","income":[[1800,515.5],[1820,532.89],[1950,1525.8],[1960,2300.59],[1961,2326.46],[1962,2250.88],[1963,2255.34],[1964,2301.61],[1965,2452.02],[1966,2704.07],[1967,2878.91],[1968,3158.66],[1969,3350.19],[1970,3765.12],[1971,3885.88],[1972,4129.49],[1973,4531.31],[1974,4952.55],[1975,5853.62],[1976,6726.43],[1977,7348.86],[1978,7939.8],[1979,8586.64],[1980,9104.22],[1981,9401.68],[1982,9683.25],[1983,9751.66],[1984,10018.26],[1985,10476.97],[1986,10774.4],[1987,11105.43],[1988,11937.83],[1989,12805.72],[1990,13494.44],[1991,14216.34],[1992,14745.52],[1993,15256.63],[1994,15975.12],[1995,16779.82],[1996,17357.5],[1997,18048.17],[1998,18581.03],[1999,19172.83],[2000,20276.2],[2001,19797.46],[2002,20162.83],[2003,19966.69],[2004,19874],[2005,20410],[2006,21003.11],[2007,21666.88],[2008,21934.71],[2009,21327.85]],"population":[[1800,134072],[1820,134072],[1950,311973],[1951,312646],[1952,316619],[1953,317248],[1954,319787],[1955,314369],[1956,314066],[1957,318779],[1958,321940],[1959,324842],[1960,328517],[1961,328854],[1962,329011],[1963,328116],[1964,323591],[1965,319164],[1966,317482],[1967,318573],[1968,319254],[1969,322749],[1970,325569],[1971,325468],[1972,319430],[1973,321838],[1974,323524],[1975,327842],[1976,329354],[1977,332066],[1978,339786],[1979,346876],[1980,364001],[1981,363652],[1982,360222],[1983,355773],[1984,351379],[1985,347039],[1986,346625],[1987,349047],[1988,351951],[1989,355323],[1990,359107],[1991,362579],[1992,365897],[1993,370008],[1994,373606],[1995,376893],[1996,379962],[1997,382953],[1998,385608],[1999,387799],[2000,389947],[2001,391873],[2002,393515],[2003,395178],[2004,396851],[2005,398534],[2006,400214],[2007,401880],[2008,403532]],"lifeExpectancy":[[1950,64.7],[1951,65.04],[1952,65.7],[1953,66.29],[1954,66.81],[1955,67.27],[1956,67.66],[1957,67.99],[1958,68.26],[1959,68.48],[1960,68.64],[1961,68.77],[1962,68.88],[1963,68.96],[1964,69.05],[1965,69.15],[1966,69.26],[1967,69.4],[1968,69.57],[1969,69.76],[1970,69.98],[1971,70.23],[1972,70.5],[1973,70.79],[1974,71.09],[1975,71.39],[1976,71.69],[1977,71.99],[1978,72.29],[1979,72.58],[1980,72.86],[1981,73.14],[1982,73.43],[1983,73.72],[1984,74.01],[1985,74.31],[1986,74.6],[1987,74.89],[1988,75.16],[1989,75.43],[1990,75.68],[1991,75.93],[1992,76.16],[1993,76.39],[1994,76.61],[1995,76.83],[1996,77.07],[1997,77.31],[1998,77.55],[1999,77.81],[2000,78.06],[2001,78.32],[2002,78.57],[2003,78.81],[2004,79.04],[2005,79.25],[2006,79.44],[2007,79.61],[2008,79.77],[2009,79.91]]},{"name":"Moldova","region":"Europe & Central Asia","income":[[1800,617.12],[1820,630.11],[1913,1404.57],[1950,2752.3],[1973,4267.57],[1990,4903.83],[1991,4018.45],[1992,2839.94],[1993,2798.54],[1994,1932.28],[1995,1906.77],[1996,1797.92],[1997,1830.29],[1998,1713.62],[1999,1656.77],[2000,1692.09],[2001,1794.94],[2002,1933.65],[2003,2053.17],[2004,2201.64],[2005,2362],[2006,2482.25],[2007,2562.96],[2008,2769.37],[2009,2593.42]],"population":[[1800,712558],[1820,712558],[1950,2336432],[1951,2422094],[1952,2466740],[1953,2505504],[1954,2565909],[1955,2622424],[1956,2682168],[1957,2758940],[1958,2838489],[1959,2919316],[1960,2998981],[1961,3068962],[1962,3136438],[1963,3204914],[1964,3271001],[1965,3333549],[1966,3394160],[1967,3452263],[1968,3505944],[1969,3549420],[1970,3594517],[1971,3648754],[1972,3703001],[1973,3752827],[1974,3800643],[1975,3846519],[1976,3885894],[1977,3920281],[1978,3947422],[1979,3969989],[1980,3996278],[1981,4026204],[1982,4055086],[1983,4082711],[1984,4113243],[1985,4148172],[1986,4183283],[1987,4216682],[1988,4289659],[1989,4359496],[1990,4397798],[1991,4427569],[1992,4448083],[1993,4459725],[1994,4463208],[1995,4459595],[1996,4450539],[1997,4441779],[1998,4435827],[1999,4432040],[2000,4430654],[2001,4431570],[2002,4434547],[2003,4439502],[2004,4446455],[2005,4455421],[2006,4466706],[2007,4480560],[2008,4496774]],"lifeExpectancy":[[1950,57.46],[1951,57.71],[1952,58.18],[1953,58.64],[1954,59.08],[1955,59.51],[1956,59.91],[1957,60.3],[1958,60.68],[1959,61.05],[1960,61.42],[1961,61.79],[1962,62.18],[1963,62.57],[1964,62.96],[1965,63.35],[1966,63.7],[1967,64.02],[1968,64.28],[1969,64.49],[1970,64.65],[1971,64.75],[1972,64.81],[1973,64.84],[1974,64.85],[1975,64.84],[1976,64.81],[1977,64.75],[1978,64.69],[1979,64.63],[1980,64.62],[1981,64.7],[1982,64.89],[1983,65.2],[1984,65.6],[1985,66.05],[1986,66.52],[1987,66.93],[1988,67.26],[1989,67.47],[1990,67.56],[1991,67.51],[1992,67.38],[1993,67.2],[1994,66.99],[1995,66.79],[1996,66.64],[1997,66.55],[1998,66.54],[1999,66.61],[2000,66.76],[2001,66.97],[2002,67.21],[2003,67.45],[2004,67.7],[2005,67.92],[2006,68.13],[2007,68.33],[2008,68.53],[2009,68.72]]},{"name":"Montenegro","region":"Europe & Central Asia","income":[[1800,1112.36],[1820,1135.69],[1870,1094.96],[1890,1541.03],[1900,1648.83],[1910,1932.02],[1913,1932.07],[1920,1885.06],[1921,1903.65],[1922,1931.67],[1923,2003.48],[1924,2116.99],[1925,2189.64],[1926,2309.38],[1927,2239.71],[1928,2402.38],[1929,2493.64],[1930,2410.08],[1931,2304.64],[1932,2061.47],[1933,2096.4],[1934,2144.62],[1935,2083.35],[1936,2321.65],[1937,2327.82],[1938,2479.52],[1939,2580.67],[1947,2404.62],[1948,2830.52],[1949,3067.99],[1950,2835.13],[1951,2908.57],[1952,2647.59],[1953,3002.87],[1954,3129.38],[1955,3285.44],[1956,3183.95],[1957,3682.26],[1958,3802.04],[1959,4229.43],[1960,4454.8],[1961,4609.27],[1962,4649.59],[1963,5084.01],[1964,5518.98],[1965,5612.9],[1966,5858.72],[1967,5907.85],[1968,5981.88],[1969,6598.61],[1970,6863.11],[1971,7587.59],[1972,7778.41],[1973,7970.89],[1974,8919.26],[1975,8840.85],[1976,9028.63],[1977,9595.93],[1978,10037.73],[1979,10636.13],[1980,11083.46],[1981,11213.04],[1982,11222.59],[1983,11255.65],[1984,11477.63],[1985,11509.84],[1986,11921.35],[1987,11732.51],[1988,11516.46],[1989,11320.83],[1990,10455.67],[1991,9245.92],[1992,7003.34],[1993,4393.42],[1994,4398.21],[1995,4947.29],[1996,6193.74],[1997,6465.61],[1998,6637.47],[1999,6013.14],[2000,6185.69],[2001,6311.82],[2002,6557.19],[2003,6892.3],[2004,7374.97],[2005,7833],[2006,10315.88],[2007,11428.36],[2008,12257.79]],"population":[[1800,126582],[1820,126582],[1950,395587],[1951,405216],[1952,413834],[1953,419454],[1954,425065],[1955,431658],[1956,437249],[1957,442829],[1958,448399],[1959,454949],[1960,461487],[1961,468013],[1962,474528],[1963,480046],[1964,486538],[1965,491051],[1966,496539],[1967,501035],[1968,505522],[1969,510001],[1970,514472],[1971,519914],[1972,527678],[1973,534461],[1974,542221],[1975,549000],[1976,554552],[1977,560073],[1978,565561],[1979,571018],[1980,560000],[1981,560090],[1982,562548],[1983,565705],[1984,558389],[1985,560562],[1986,564558],[1987,569473],[1988,574401],[1989,578981],[1990,583202],[1991,590872],[1992,621621],[1993,635875],[1994,653213],[1995,670608],[1996,683946],[1997,692651],[1998,701246],[1999,720412],[2000,732302],[2001,726462],[2002,720230],[2003,713614],[2004,706577],[2005,699259],[2006,691871],[2007,684736],[2008,678177],[2009,672180]],"lifeExpectancy":[[1800,35.4],[1920,35.4],[1950,58.22],[1951,58.47],[1952,58.95],[1953,59.42],[1954,59.88],[1955,60.33],[1956,60.77],[1957,61.2],[1958,61.62],[1959,62.06],[1960,62.51],[1961,63],[1962,63.52],[1963,64.1],[1964,64.72],[1965,65.38],[1966,66.09],[1967,66.82],[1968,67.56],[1969,68.29],[1970,69],[1971,69.69],[1972,70.34],[1973,70.96],[1974,71.54],[1975,72.05],[1976,72.5],[1977,72.89],[1978,73.23],[1979,73.51],[1980,73.74],[1981,73.93],[1982,74.09],[1983,74.23],[1984,74.37],[1985,74.52],[1986,74.69],[1987,74.89],[1988,75.11],[1989,75.34],[1990,75.56],[1991,75.75],[1992,75.9],[1993,75.97],[1994,75.98],[1995,75.91],[1996,75.77],[1997,75.58],[1998,75.36],[1999,75.13],[2000,74.89],[2001,74.66],[2002,74.44],[2003,74.25],[2004,74.09],[2005,74],[2006,73.98],[2007,74.03],[2008,74.15],[2009,74.34]]},{"name":"Netherlands","region":"Europe & Central Asia","income":[[1800,2412.43],[1801,2410.19],[1802,2407.94],[1803,2405.7],[1804,2403.46],[1805,2401.22],[1806,2398.98],[1807,2396.75],[1808,2140.32],[1809,2115.41],[1810,2430.6],[1811,2463.51],[1812,2148.66],[1813,1937.55],[1814,1872.82],[1815,2485.36],[1816,2369.94],[1817,2397.3],[1818,2439.55],[1819,2329.64],[1820,2501.29],[1821,2446.72],[1822,2465.54],[1823,2584.47],[1824,2562.02],[1825,2492.15],[1826,2527.58],[1827,2672.71],[1828,2726.07],[1829,2726.1],[1830,2484.29],[1831,2665.82],[1832,2786.45],[1833,2719.09],[1834,2738.8],[1835,2726.17],[1836,2812.27],[1837,2874.01],[1838,2899.55],[1839,2893.62],[1840,2916.68],[1841,2940.77],[1842,2863.66],[1843,2808.67],[1844,2830.48],[1845,2805.03],[1846,2805.07],[1847,2819.16],[1848,2860.82],[1849,2941.02],[1850,2991.96],[1851,3030.22],[1852,2990.41],[1853,2917.71],[1854,3091.87],[1855,3002.04],[1856,3117.88],[1857,3057.96],[1858,2968.78],[1859,2857.73],[1860,2990.17],[1861,2902.77],[1862,3012.98],[1863,3064.49],[1864,3181.52],[1865,3182.08],[1866,3296.34],[1867,3177.69],[1868,3192],[1869,3290.79],[1870,3390.1],[1871,3358.03],[1872,3384.07],[1873,3442.73],[1874,3302.9],[1875,3481.91],[1876,3479],[1877,3509.16],[1878,3487.48],[1879,3305.83],[1880,3485.25],[1881,3494.5],[1882,3531.33],[1883,3739.93],[1884,3751.79],[1885,3777.75],[1886,3779.03],[1887,3816.41],[1888,3809.49],[1889,3884.11],[1890,3672.78],[1891,3628.37],[1892,3685.88],[1893,3593.38],[1894,3745.99],[1895,3708.29],[1896,3801.33],[1897,3832.52],[1898,3827.14],[1899,3818.28],[1900,3713.31],[1901,3826.9],[1902,3917.61],[1903,3843.64],[1904,3828.61],[1905,3951.5],[1906,3963.17],[1907,3826.46],[1908,3838.51],[1909,3979.81],[1910,4088.22],[1911,4188.72],[1912,4263.1],[1913,4422.05],[1914,4314.78],[1915,4098.55],[1916,4042.31],[1917,3588.65],[1918,3331.55],[1919,3716.74],[1920,4230.58],[1921,4958.89],[1922,5218.13],[1923,5261.95],[1924,5563.92],[1925,5681.74],[1926,6000.34],[1927,6211.6],[1928,6408.23],[1929,6457.97],[1930,6309.26],[1931,6009.03],[1932,5868.27],[1933,5827.76],[1934,5713.9],[1935,5822.82],[1936,6105.71],[1937,6414.44],[1938,6177.32],[1939,6641.98],[1940,5796.49],[1941,5449.65],[1942,4950.39],[1943,4813.35],[1944,3201.78],[1945,3255.32],[1946,5458.49],[1947,6215.75],[1948,6792.51],[1949,7196.12],[1950,7407.85],[1951,7498.82],[1952,7564.17],[1953,8144.21],[1954,8638.54],[1955,9170.54],[1956,9494.99],[1957,9690.89],[1958,9482.82],[1959,9823.19],[1960,10620.98],[1961,10822.2],[1962,11167.47],[1963,11420.64],[1964,12287.88],[1965,12809.27],[1966,13041.3],[1967,13626.76],[1968,14442.49],[1969,15304.9],[1970,16036.47],[1971,16602.54],[1972,16935.57],[1973,17681.37],[1974,18324.6],[1975,18255.08],[1976,18992.14],[1977,19415.07],[1978,19842.47],[1979,20126.43],[1980,20372.21],[1981,20194.33],[1982,19900.97],[1983,20247.92],[1984,20861.01],[1985,21393.33],[1986,22007.79],[1987,22345.03],[1988,23032.6],[1989,23982.73],[1990,24902.12],[1991,25383.24],[1992,25713.88],[1993,25958.69],[1994,26648.08],[1995,27423.96],[1996,28344.59],[1997,29491.94],[1998,30566.5],[1999,31895.29],[2000,33000.17],[2001,33482.67],[2002,33406.92],[2003,33454.56],[2004,34181.87],[2005,34724],[2006,35845.52],[2007,36535.43],[2008,37069.42],[2009,36074.53]],"population":[[1820,2333000],[1821,2365000],[1822,2400000],[1823,2435000],[1824,2474000],[1825,2514000],[1826,2543000],[1827,2561000],[1828,2585000],[1829,2610000],[1830,2633000],[1831,2653000],[1832,2665000],[1833,2683000],[1834,2707000],[1835,2732000],[1836,2762000],[1837,2791000],[1838,2821000],[1839,2853000],[1840,2886000],[1841,2921000],[1842,2952000],[1843,2981000],[1844,3014000],[1845,3047000],[1846,3069000],[1847,3071000],[1848,3069000],[1849,3076000],[1850,3098000],[1851,3133000],[1852,3167000],[1853,3194000],[1854,3218000],[1855,3235000],[1856,3253000],[1857,3277000],[1858,3294000],[1859,3304000],[1860,3318000],[1861,3340000],[1862,3366000],[1863,3397000],[1864,3431000],[1865,3460000],[1866,3484000],[1867,3510000],[1868,3543000],[1869,3575000],[1870,3610000],[1871,3636000],[1872,3662000],[1873,3670000],[1874,3745000],[1875,3788000],[1876,3832000],[1877,3883000],[1878,3834000],[1879,3986000],[1880,4043000],[1881,4079000],[1882,4130000],[1883,4180000],[1884,4226000],[1885,4276000],[1886,4326000],[1887,4378000],[1888,4432000],[1889,4485000],[1890,4535000],[1891,4585000],[1892,4632000],[1893,4684000],[1894,4743000],[1895,4803000],[1896,4866000],[1897,4935000],[1898,5003000],[1899,5070000],[1900,5142000],[1901,5221000],[1902,5305000],[1903,5389000],[1904,5470000],[1905,5551000],[1906,5632000],[1907,5710000],[1908,5786000],[1909,5862000],[1910,5922000],[1911,5984000],[1912,6068000],[1913,6164000],[1914,6277000],[1915,6395000],[1916,6516000],[1917,6654000],[1918,6752000],[1919,6805000],[1920,6848000],[1921,6921000],[1922,7032000],[1923,7150000],[1924,7264000],[1925,7366000],[1926,7471000],[1927,7576000],[1928,7679000],[1929,7782000],[1930,7884000],[1931,7999000],[1932,8123000],[1933,8237000],[1934,8341000],[1935,8434000],[1936,8516000],[1937,8599000],[1938,8685000],[1939,8782000],[1940,8879000],[1941,8966000],[1942,9042000],[1943,9103000],[1944,9175000],[1945,9262000],[1946,9424000],[1947,9630000],[1948,9800000],[1949,9956000],[1950,10113527],[1951,10264311],[1952,10381988],[1953,10493184],[1954,10615380],[1955,10750842],[1956,10889351],[1957,11026383],[1958,11186875],[1959,11347639],[1960,11486000],[1961,11638713],[1962,11805689],[1963,11965966],[1964,12127120],[1965,12292000],[1966,12454800],[1967,12596822],[1968,12724680],[1969,12873000],[1970,13032335],[1971,13193776],[1972,13329874],[1973,13438404],[1974,13540584],[1975,13653438],[1976,13769913],[1977,13852989],[1978,13936754],[1979,14030002],[1980,14143901],[1981,14246049],[1982,14310401],[1983,14362381],[1984,14420022],[1985,14491380],[1986,14571875],[1987,14665278],[1988,14761339],[1989,14848907],[1990,14951510],[1991,15066220],[1992,15174244],[1993,15274942],[1994,15382198],[1995,15459054],[1996,15527809],[1997,15604464],[1998,15699259],[1999,15801947],[2000,15907853],[2001,16017445],[2002,16122830],[2003,16223248],[2004,16318199],[2005,16407491],[2006,16491461],[2007,16570613],[2008,16645313]],"lifeExpectancy":[[1800,39.86],[1850,39.86],[1851,40],[1852,38.66],[1853,38.63],[1854,38.63],[1855,34.53],[1856,38.39],[1857,35.46],[1858,34.66],[1859,30.86],[1860,36.91],[1861,36.44],[1862,38.28],[1863,38.33],[1864,37.56],[1865,36.37],[1866,33.64],[1867,39.31],[1868,37.75],[1869,40.47],[1870,37.34],[1871,32.94],[1872,36.49],[1873,39.2],[1874,41.3],[1875,38.24],[1876,40.35],[1877,42.03],[1878,41.1],[1879,41.96],[1880,40.39],[1881,42.87],[1882,43.79],[1883,42.35],[1884,41.34],[1885,43.3],[1886,41.98],[1887,44.99],[1888,44.22],[1889,44.35],[1890,44.4],[1891,44.25],[1892,43.95],[1893,45.8],[1894,46.93],[1895,46.64],[1896,48.56],[1897,49.36],[1898,49.03],[1899,49.35],[1900,48.4],[1901,48.72],[1902,50.61],[1903,51.51],[1904,50.9],[1905,52.11],[1906,52.78],[1907,53.54],[1908,52.76],[1909,54.96],[1910,55.14],[1911,53.17],[1912,57.21],[1913,57.37],[1914,57.2],[1915,57.22],[1916,56.16],[1917,55.67],[1918,47.61],[1919,54.98],[1920,57.84],[1921,59.77],[1922,59.84],[1923,62.06],[1924,62.97],[1925,63.18],[1926,63.04],[1927,62.65],[1928,63.74],[1929,62.19],[1930,64.73],[1931,64.35],[1932,65.44],[1933,66.08],[1934,66.62],[1935,66.54],[1936,66.76],[1937,66.98],[1938,67.4],[1939,67.73],[1940,65.4],[1941,65.33],[1942,65.84],[1943,64.43],[1944,61.26],[1945,55.45],[1946,67.58],[1947,69.53],[1948,71.05],[1949,70.28],[1950,71.45],[1951,71.51],[1952,72.13],[1953,71.71],[1954,72.4],[1955,72.52],[1956,72.54],[1957,72.99],[1958,73.15],[1959,73.19],[1960,73.37],[1961,73.56],[1962,73.23],[1963,73.35],[1964,73.73],[1965,73.6],[1966,73.55],[1967,73.82],[1968,73.63],[1969,73.54],[1970,73.6],[1971,73.84],[1972,73.75],[1973,74.2],[1974,74.59],[1975,74.52],[1976,74.65],[1977,75.24],[1978,75.15],[1979,75.63],[1980,75.76],[1981,75.97],[1982,76.05],[1983,76.25],[1984,76.32],[1985,76.38],[1986,76.36],[1987,76.83],[1988,77.03],[1989,76.87],[1990,77.05],[1991,77.21],[1992,77.42],[1993,77.11],[1994,77.6],[1995,77.64],[1996,77.65],[1997,78.03],[1998,78.12],[1999,78.07],[2000,78.24],[2001,78.45],[2002,78.53],[2003,78.79],[2004,79.38],[2005,79.65],[2006,80],[2007,79.82],[2008,80.02],[2009,80.19]]},{"name":"Norway","region":"Europe & Central Asia","income":[[1800,950],[1820,978],[1821,984],[1822,990],[1823,996],[1824,1002],[1825,1008],[1826,1014],[1827,1020],[1828,1026],[1829,1032],[1830,1038],[1831,957],[1832,971],[1833,1080],[1834,1130],[1835,1107],[1836,1077],[1837,1080],[1838,1085],[1839,1086],[1840,1185],[1841,1208],[1842,1216],[1843,1190],[1844,1213],[1845,1267],[1846,1291],[1847,1242],[1848,1175],[1849,1206],[1850,1236],[1851,1313],[1852,1301],[1853,1362],[1854,1401],[1855,1472],[1856,1444],[1857,1365],[1858,1416],[1859,1446],[1860,1498],[1861,1457],[1862,1584],[1863,1589],[1864,1649],[1865,1720],[1866,1737],[1867,1774],[1868,1767],[1869,1834],[1870,1826],[1871,1851],[1872,1964],[1873,2001],[1874,2062],[1875,2103],[1876,2136],[1877,2129],[1878,2031],[1879,2026],[1880,2077],[1881,2096],[1882,2099],[1883,2096],[1884,2127],[1885,2134],[1886,2134],[1887,2152],[1888,2249],[1889,2332],[1890,2385],[1891,2393],[1892,2428],[1893,2482],[1894,2479],[1895,2482],[1896,2523],[1897,2624],[1898,2612],[1899,2661],[1900,2668],[1901,2709],[1902,2732],[1903,2705],[1904,2704],[1905,2716],[1906,2822],[1907,2937],[1908,3014],[1909,3058],[1910,3168],[1911,3274],[1912,3410],[1913,3566],[1914,3610],[1915,3737],[1916,3852],[1917,3468],[1918,3300],[1919,3836],[1920,4045],[1921,3615],[1922,3970],[1923,4058],[1924,4041],[1925,4269],[1926,4316],[1927,4469],[1928,4658],[1929,5089],[1930,5460],[1931,5012],[1932,5238],[1933,5350],[1934,5518],[1935,5774],[1936,6144],[1937,6396],[1938,6514],[1939,6800],[1940,6195],[1941,6322],[1942,6049],[1943,5895],[1944,5546],[1945,6164],[1946,6728],[1947,7563],[1948,8013],[1949,8158],[1950,8490],[1951,8884],[1952,9126],[1953,9413],[1954,9809],[1955,9948],[1956,10400],[1957,10636],[1958,10562],[1959,10936],[1960,11481],[1961,12127],[1962,12393],[1963,12794],[1964,13355],[1965,13982],[1966,14421],[1967,15220],[1968,15456],[1969,16050],[1970,16289],[1971,17044],[1972,17810],[1973,18501],[1974,19194],[1975,20125],[1976,21246],[1977,22101],[1978,22828],[1979,23815],[1980,24961],[1981,25164],[1982,25172],[1983,26036],[1984,27549],[1985,28950],[1986,29947],[1987,30478],[1988,30359],[1989,30581],[1990,31162],[1991,32200],[1992,33135],[1993,33900],[1994,35547],[1995,36975],[1996,38795],[1997,40659],[1998,41358],[1999,42008],[2000,43174],[2001,43888],[2002,44429],[2003,44767],[2004,46387],[2005,47551],[2006,48218],[2007,49013],[2008,49221],[2009,47915]],"population":[[1820,970000],[1821,984000],[1822,998000],[1823,1013000],[1824,1028000],[1825,1044000],[1826,1062000],[1827,1079000],[1828,1093000],[1829,1108000],[1830,1124000],[1831,1137000],[1832,1150000],[1833,1163000],[1834,1174000],[1835,1188000],[1836,1202000],[1837,1214000],[1838,1224000],[1839,1233000],[1840,1241000],[1841,1254000],[1842,1271000],[1843,1286000],[1844,1302000],[1845,1319000],[1846,1337000],[1847,1351000],[1848,1363000],[1849,1377000],[1850,1392000],[1851,1409000],[1852,1425000],[1853,1440000],[1854,1457000],[1855,1479000],[1856,1501000],[1857,1521000],[1858,1543000],[1859,1570000],[1860,1596000],[1861,1614000],[1862,1627000],[1863,1646000],[1864,1668000],[1865,1690000],[1866,1707000],[1867,1716000],[1868,1724000],[1869,1729000],[1870,1735000],[1871,1745000],[1872,1755000],[1873,1767000],[1874,1783000],[1875,1803000],[1876,1829000],[1877,1852000],[1878,1877000],[1879,1902000],[1880,1919000],[1881,1923000],[1882,1920000],[1883,1919000],[1884,1929000],[1885,1944000],[1886,1958000],[1887,1970000],[1888,1977000],[1889,1984000],[1890,1997000],[1891,2013000],[1892,2026000],[1893,2038000],[1894,2057000],[1895,2083000],[1896,2112000],[1897,2142000],[1898,2174000],[1899,2204000],[1900,2230000],[1901,2255000],[1902,2275000],[1903,2288000],[1904,2297000],[1905,2309000],[1906,2319000],[1907,2329000],[1908,2346000],[1909,2367000],[1910,2384000],[1911,2401000],[1912,2423000],[1913,2447000],[1914,2472000],[1915,2498000],[1916,2522000],[1917,2551000],[1918,2578000],[1919,2603000],[1920,2635000],[1921,2668000],[1922,2695000],[1923,2713000],[1924,2729000],[1925,2747000],[1926,2763000],[1927,2775000],[1928,2785000],[1929,2795000],[1930,2807000],[1931,2824000],[1932,2842000],[1933,2858000],[1934,2874000],[1935,2889000],[1936,2904000],[1937,2919000],[1938,2936000],[1939,2954000],[1940,2973000],[1941,2990000],[1942,3009000],[1943,3032000],[1944,3060000],[1945,3091000],[1946,3127000],[1947,3165000],[1948,3201000],[1949,3234000],[1950,3265126],[1951,3295871],[1952,3327728],[1953,3360888],[1954,3394246],[1955,3427409],[1956,3459992],[1957,3491938],[1958,3522993],[1959,3552851],[1960,3581239],[1961,3609800],[1962,3638919],[1963,3666540],[1964,3694339],[1965,3723153],[1966,3753628],[1967,3786019],[1968,3818983],[1969,3850977],[1970,3877386],[1971,3903039],[1972,3933004],[1973,3960613],[1974,3985258],[1975,4007313],[1976,4026152],[1977,4043205],[1978,4058671],[1979,4072517],[1980,4085620],[1981,4099702],[1982,4114787],[1983,4128432],[1984,4140095],[1985,4152419],[1986,4166596],[1987,4186147],[1988,4208729],[1989,4226142],[1990,4242006],[1991,4261733],[1992,4286357],[1993,4311964],[1994,4336638],[1995,4359101],[1996,4381277],[1997,4405672],[1998,4432718],[1999,4463377],[2000,4492400],[2001,4515195],[2002,4535591],[2003,4555400],[2004,4574560],[2005,4593041],[2006,4610820],[2007,4627926],[2008,4644457]],"lifeExpectancy":[[1800,38.8],[1815,38.8],[1846,48.05],[1847,44.77],[1848,45.02],[1849,48.05],[1850,49.53],[1851,49.74],[1852,48.46],[1853,47.92],[1854,51.65],[1855,50.44],[1856,50.37],[1857,50.22],[1858,51.59],[1859,49.93],[1860,50],[1861,45.81],[1862,44.7],[1863,46.71],[1864,48.78],[1865,50.42],[1866,49.92],[1867,47.87],[1868,47.16],[1869,49.25],[1870,50.86],[1871,49.69],[1872,50.02],[1873,49.67],[1874,47.77],[1875,47.64],[1876,46.83],[1877,49.77],[1878,51.79],[1879,53.18],[1880,51.91],[1881,50.47],[1882,47.4],[1883,49.64],[1884,50.8],[1885,51.06],[1886,51.72],[1887,51.69],[1888,50.38],[1889,49.06],[1890,48.6],[1891,49.79],[1892,49.68],[1893,51.41],[1894,50.62],[1895,52.8],[1896,53.84],[1897,53.73],[1898,53.96],[1899,51.62],[1900,53.47],[1901,54.59],[1902,56.49],[1903,54.98],[1904,56.09],[1905,55.1],[1906,56.91],[1907,56.49],[1908,56.31],[1909,57.47],[1910,57.99],[1911,58.04],[1912,57.75],[1913,58.32],[1914,57.82],[1915,58.17],[1916,57.25],[1917,57.75],[1918,50.3],[1919,56.82],[1920,58.89],[1921,61.61],[1922,60.79],[1923,61.81],[1924,62.12],[1925,62.52],[1926,63.26],[1927,62.87],[1928,63.4],[1929,62.47],[1930,64.11],[1931,64.14],[1932,64.61],[1933,65.49],[1934,66.22],[1935,65.84],[1936,65.84],[1937,66.04],[1938,67.09],[1939,67.36],[1940,65.89],[1941,65.77],[1942,65.68],[1943,66.12],[1944,65.8],[1945,68.19],[1946,69.51],[1947,70.01],[1948,71.13],[1949,71.53],[1950,71.6],[1951,72.54],[1952,72.67],[1953,73.15],[1954,73.23],[1955,73.44],[1956,73.49],[1957,73.44],[1958,73.43],[1959,73.56],[1960,73.58],[1961,73.59],[1962,73.47],[1963,73.11],[1964,73.61],[1965,73.73],[1966,74.01],[1967,74.08],[1968,73.96],[1969,73.67],[1970,74.08],[1971,74.18],[1972,74.34],[1973,74.43],[1974,74.75],[1975,74.8],[1976,75.03],[1977,75.37],[1978,75.4],[1979,75.39],[1980,75.65],[1981,75.84],[1982,75.97],[1983,76.03],[1984,76.19],[1985,75.9],[1986,76.04],[1987,75.89],[1988,75.99],[1989,76.33],[1990,76.41],[1991,76.93],[1992,77.32],[1993,77.28],[1994,77.86],[1995,77.89],[1996,78.31],[1997,78.32],[1998,78.49],[1999,78.47],[2000,78.76],[2001,78.98],[2002,79.05],[2003,79.61],[2004,80.06],[2005,80.29],[2006,80.55],[2007,80.61],[2008,80.67],[2009,80.85]]},{"name":"Poland","region":"Europe & Central Asia","income":[[1800,1198.39],[1820,1290.47],[1821,1294.57],[1822,1298.67],[1823,1302.79],[1824,1306.92],[1825,1311.07],[1826,1315.22],[1827,1319.4],[1828,1323.58],[1829,1327.78],[1830,1331.99],[1831,1336.21],[1832,1340.45],[1833,1344.7],[1834,1348.97],[1835,1353.24],[1836,1357.54],[1837,1361.84],[1838,1366.16],[1839,1370.49],[1840,1374.84],[1841,1379.2],[1842,1383.57],[1843,1387.96],[1844,1392.36],[1845,1396.78],[1846,1401.21],[1847,1405.65],[1848,1410.11],[1849,1414.58],[1850,1419.07],[1851,1423.57],[1852,1428.09],[1853,1432.61],[1854,1437.16],[1855,1441.72],[1856,1446.29],[1857,1450.88],[1858,1455.48],[1859,1460.09],[1860,1464.72],[1861,1469.37],[1862,1474.03],[1863,1478.7],[1864,1483.39],[1865,1488.1],[1866,1492.82],[1867,1497.55],[1868,1502.3],[1869,1507.07],[1870,1511.84],[1871,1535.12],[1872,1558.75],[1873,1582.74],[1874,1607.11],[1875,1631.85],[1876,1656.97],[1877,1682.47],[1878,1708.37],[1879,1734.67],[1880,1761.37],[1881,1788.49],[1882,1816.02],[1883,1843.97],[1884,1872.36],[1885,1901.18],[1886,1930.45],[1887,1960.16],[1888,1990.34],[1889,2020.98],[1890,2052.09],[1891,2089.19],[1892,2126.96],[1893,2165.42],[1894,2204.57],[1895,2244.43],[1896,2285.01],[1897,2326.32],[1898,2368.38],[1899,2411.2],[1900,2454.79],[1901,2478.36],[1902,2502.15],[1903,2526.17],[1904,2550.42],[1905,2574.9],[1906,2599.62],[1907,2624.58],[1908,2649.77],[1909,2675.21],[1910,2700.89],[1911,2726.76],[1912,2752.88],[1913,2779.24],[1914,2813.64],[1915,2848.47],[1916,2883.73],[1917,2919.43],[1918,2955.56],[1919,2992.15],[1920,3029.19],[1921,3066.68],[1922,3104.64],[1923,3143.07],[1924,3181.98],[1925,3221.37],[1926,3261.24],[1927,3301.61],[1928,3342.48],[1929,3383.85],[1930,3187.21],[1931,2914.14],[1932,2649.16],[1933,2540.64],[1934,2546.64],[1935,2551.83],[1936,2596.46],[1937,3061.3],[1938,3487.75],[1939,3750.1],[1940,3174.55],[1941,2892.29],[1942,2543.47],[1943,2391.53],[1944,1536.58],[1945,1588.31],[1946,2706.91],[1947,3132.14],[1948,3477.09],[1949,3741.25],[1950,3910.56],[1951,4011.8],[1952,4029.33],[1953,4183.46],[1954,4338.68],[1955,4464.95],[1956,4576.69],[1957,4734.25],[1958,4885.49],[1959,4948.3],[1960,5137.59],[1961,5475.68],[1962,5338.75],[1963,5597.46],[1964,5788.41],[1965,6052.03],[1966,6378.94],[1967,6557.15],[1968,6900.04],[1969,6778.28],[1970,7076.39],[1971,7522.54],[1972,8006.51],[1973,8533.52],[1974,8950.74],[1975,9281.98],[1976,9421.88],[1977,9508.14],[1978,9766.19],[1979,9496.48],[1980,9173.32],[1981,8606.55],[1982,8451.53],[1983,8786.11],[1984,9030.45],[1985,9046.3],[1986,9263.85],[1987,9082.35],[1988,9252.06],[1989,9083.71],[1990,8172.11],[1991,7572.21],[1992,7738.88],[1993,8007.93],[1994,8414.16],[1995,8986.89],[1996,9518.9],[1997,10159.58],[1998,10716.13],[1999,11208.8],[2000,11680.79],[2001,11825.87],[2002,12002.24],[2003,12472.53],[2004,13146.01],[2005,13573],[2006,14427.4],[2007,15414.7],[2008,16185.04],[2009,16465.8]],"population":[[1820,10426000],[1850,13000000],[1870,16865000],[1890,22854000],[1900,24750000],[1910,26644000],[1913,26710000],[1920,23968000],[1921,24330000],[1922,24935000],[1923,25569000],[1924,25992000],[1925,26425000],[1926,26815000],[1927,27148000],[1928,27509000],[1929,27856000],[1930,28204000],[1931,28615000],[1932,29022000],[1933,29421000],[1934,29771000],[1935,30129000],[1936,30471000],[1937,30791000],[1938,31062000],[1939,31365000],[1940,30021000],[1946,23959000],[1947,23734000],[1948,23980000],[1949,24410000],[1950,24824000],[1951,25262265],[1952,25730551],[1953,26221264],[1954,26715134],[1955,27220668],[1956,27743876],[1957,28235346],[1958,28692576],[1959,29152334],[1960,29589842],[1961,29978949],[1962,30329617],[1963,30662122],[1964,30975520],[1965,31262358],[1966,31532016],[1967,31785378],[1968,32034813],[1969,32280848],[1970,32526000],[1971,32777810],[1972,33039545],[1973,33331131],[1974,33642890],[1975,33969240],[1976,34299428],[1977,34621254],[1978,34929072],[1979,35256645],[1980,35578016],[1981,35901961],[1982,36227381],[1983,36571418],[1984,36904134],[1985,37225792],[1986,37504275],[1987,37740710],[1988,37866840],[1989,37970155],[1990,38119408],[1991,38253222],[1992,38370697],[1993,38467746],[1994,38548296],[1995,38600642],[1996,38629842],[1997,38654957],[1998,38668756],[1999,38665539],[2000,38654164],[2001,38643641],[2002,38625976],[2003,38602853],[2004,38580445],[2005,38557984],[2006,38536869],[2007,38518241],[2008,38500696]],"lifeExpectancy":[[1800,35.9],[1885,35.9],[1931,49.8],[1950,59.05],[1951,59.65],[1952,60.83],[1953,61.92],[1954,62.93],[1955,63.85],[1956,64.69],[1957,65.45],[1958,65.92],[1959,65.53],[1960,67.86],[1961,67.98],[1962,67.64],[1963,68.57],[1964,68.8],[1965,69.5],[1966,69.91],[1967,69.61],[1968,70.25],[1969,69.74],[1970,69.87],[1971,69.67],[1972,70.85],[1973,70.85],[1974,71.36],[1975,70.77],[1976,70.77],[1977,70.67],[1978,70.6],[1979,70.93],[1980,70.28],[1981,71.26],[1982,71.32],[1983,71.16],[1984,70.9],[1985,70.64],[1986,70.93],[1987,70.98],[1988,71.35],[1989,71.1],[1990,70.75],[1991,70.45],[1992,70.99],[1993,71.51],[1994,71.82],[1995,72.05],[1996,72.39],[1997,72.75],[1998,73.13],[1999,73.18],[2000,73.91],[2001,74.33],[2002,74.67],[2003,74.85],[2004,75.02],[2005,75.15],[2006,75.35],[2007,75.52],[2008,75.68],[2009,75.84]]},{"name":"Portugal","region":"Europe & Central Asia","income":[[1800,1284.41],[1820,1310.25],[1821,1310.27],[1822,1310.3],[1823,1310.32],[1824,1310.35],[1825,1310.37],[1826,1310.39],[1827,1310.42],[1828,1310.44],[1829,1310.47],[1830,1310.49],[1831,1310.52],[1832,1310.54],[1833,1310.57],[1834,1310.59],[1835,1310.62],[1836,1310.64],[1837,1310.67],[1838,1310.69],[1839,1310.71],[1840,1310.74],[1841,1310.76],[1842,1310.79],[1843,1310.81],[1844,1310.84],[1845,1310.86],[1846,1310.89],[1847,1310.91],[1848,1310.94],[1849,1310.96],[1850,1310.99],[1851,1407],[1852,1380.51],[1853,1354.51],[1854,1329],[1855,1303.97],[1856,1295.41],[1857,1286.89],[1858,1278.44],[1859,1270.04],[1860,1261.69],[1861,1253.4],[1862,1256.42],[1863,1259.45],[1864,1262.48],[1865,1265.52],[1866,1305.74],[1867,1335.79],[1868,1341.93],[1869,1368.8],[1870,1384.18],[1871,1324.39],[1872,1354.78],[1873,1402.86],[1874,1371.88],[1875,1361.98],[1876,1322.42],[1877,1375.87],[1878,1368.62],[1879,1361.54],[1880,1344.78],[1881,1377.49],[1882,1408.72],[1883,1431.01],[1884,1467.5],[1885,1493.03],[1886,1561.66],[1887,1581.31],[1888,1586.51],[1889,1544.92],[1890,1601.16],[1891,1560.79],[1892,1543.11],[1893,1562.93],[1894,1531.75],[1895,1586.21],[1896,1596.93],[1897,1677.51],[1898,1723.95],[1899,1772.8],[1900,1848.6],[1901,1801.95],[1902,1796.87],[1903,1807.25],[1904,1815.6],[1905,1750.28],[1906,1746.93],[1907,1773.59],[1908,1730.83],[1909,1715.02],[1910,1743.15],[1911,1762.62],[1912,1783.8],[1913,1774.99],[1914,1785.2],[1915,1742.99],[1916,1751.32],[1917,1721.27],[1918,1632.1],[1919,1665.53],[1920,1745.03],[1921,1831.16],[1922,2029.87],[1923,2091.67],[1924,1989.26],[1925,2052.85],[1926,2014.55],[1927,2338.95],[1928,2087.28],[1929,2285.66],[1930,2229.87],[1931,2315.53],[1932,2331.73],[1933,2458.92],[1934,2532.48],[1935,2368.84],[1936,2161.78],[1937,2494.69],[1938,2480.53],[1939,2482.87],[1940,2292.84],[1941,2479.98],[1942,2425.1],[1943,2564.33],[1944,2686.88],[1945,2560.36],[1946,2736.83],[1947,2939.33],[1948,2904.91],[1949,2919.51],[1950,2961.89],[1951,3077.24],[1952,3068.32],[1953,3262.2],[1954,3397.69],[1955,3513.19],[1956,3639.99],[1957,3774.57],[1958,3793.66],[1959,3966.47],[1960,4196.15],[1961,4428.04],[1962,4727.95],[1963,4974.5],[1964,5278.68],[1965,5667.66],[1966,5911.27],[1967,6361.52],[1968,6918.3],[1969,7079.03],[1970,7769.41],[1971,8334.25],[1972,9022.25],[1973,10026.71],[1974,10005],[1975,9251.92],[1976,9673.53],[1977,10172.49],[1978,10419.96],[1979,10978.31],[1980,11419.72],[1981,11519.39],[1982,11753.84],[1983,11718.43],[1984,11482.99],[1985,11791.3],[1986,12266.89],[1987,13039.31],[1988,14008.38],[1989,14724.11],[1990,15369.31],[1991,16046.61],[1992,16207.27],[1993,15812.16],[1994,15869.43],[1995,16486.84],[1996,17027.45],[1997,17641.03],[1998,18368.52],[1999,18959.84],[2000,19609.73],[2001,19904.87],[2002,19970.91],[2003,19727.84],[2004,19942.44],[2005,20006],[2006,20202.27],[2007,20523.09],[2008,20496.24],[2009,19898.43]],"population":[[1820,3297000],[1821,3316000],[1822,3335000],[1823,3354000],[1824,3373000],[1825,3393000],[1826,3412000],[1827,3432000],[1828,3452000],[1829,3472000],[1830,3491000],[1831,3512000],[1832,3532000],[1833,3552000],[1834,3475000],[1835,3595000],[1836,3617000],[1837,3639000],[1838,3661000],[1839,3683000],[1840,3704000],[1841,3715000],[1842,3726000],[1843,3738000],[1844,3749000],[1845,3760000],[1846,3771000],[1847,3783000],[1848,3794000],[1849,3804000],[1850,3816000],[1851,3827000],[1852,3839000],[1853,3850000],[1854,3858000],[1855,3867000],[1856,3875000],[1857,3889000],[1858,3925000],[1859,3963000],[1860,4000000],[1861,4074000],[1862,4113000],[1863,4131000],[1864,4176000],[1865,4201000],[1866,4226000],[1867,4251000],[1868,4276000],[1869,4302000],[1870,4327000],[1871,4353000],[1872,4379000],[1873,4405000],[1874,4431000],[1875,4458000],[1876,4484000],[1877,4511000],[1878,4538000],[1879,4571000],[1880,4610000],[1881,4651000],[1882,4691000],[1883,4732000],[1884,4773000],[1885,4815000],[1886,4857000],[1887,4899000],[1888,4942000],[1889,4985000],[1890,5028000],[1891,5068000],[1892,5104000],[1893,5141000],[1894,5178000],[1895,5215000],[1896,5252000],[1897,5290000],[1898,5327000],[1899,5366000],[1900,5404000],[1901,5447000],[1902,5494000],[1903,5541000],[1904,5589000],[1905,5637000],[1906,5686000],[1907,5735000],[1908,5784000],[1909,5834000],[1910,5884000],[1911,5935000],[1912,5964000],[1913,5972000],[1914,5980000],[1915,5988000],[1916,5996000],[1917,6005000],[1918,6013000],[1919,6021000],[1920,6029000],[1921,6071000],[1922,6146000],[1923,6223000],[1924,6300000],[1925,6378000],[1926,6457000],[1927,6538000],[1928,6619000],[1929,6701000],[1930,6784000],[1931,6869000],[1932,6954000],[1933,7040000],[1934,7127000],[1935,7216000],[1936,7305000],[1937,7396000],[1938,7488000],[1939,7581000],[1940,7675000],[1941,7757000],[1942,7826000],[1943,7896000],[1944,7967000],[1945,8038000],[1946,8110000],[1947,8183000],[1948,8256000],[1949,8329000],[1950,8442750],[1951,8490250],[1952,8526050],[1953,8578950],[1954,8632100],[1955,8692600],[1956,8756000],[1957,8817650],[1958,8888550],[1959,8961550],[1960,9036700],[1961,9031200],[1962,9019800],[1963,9081600],[1964,9122500],[1965,9128850],[1966,9108800],[1967,9103000],[1968,9115050],[1969,9097200],[1970,9044200],[1971,8990450],[1972,8970450],[1973,8975950],[1974,9098300],[1975,9411090],[1976,9621970],[1977,9662600],[1978,9698780],[1979,9724560],[1980,9777800],[1981,9850079],[1982,9859650],[1983,9872243],[1984,9885387],[1985,9897192],[1986,9907411],[1987,9915289],[1988,9920611],[1989,9923147],[1990,9922689],[1991,9919009],[1992,9927680],[1993,9967832],[1994,10027688],[1995,10065543],[1996,10099918],[1997,10156415],[1998,10224828],[1999,10283381],[2000,10335597],[2001,10386753],[2002,10433867],[2003,10479955],[2004,10524145],[2005,10566212],[2006,10605870],[2007,10642836],[2008,10676910]],"lifeExpectancy":[[1800,35.6],[1925,35.6],[1940,51.43],[1941,47.95],[1942,49.87],[1943,51.05],[1944,52.42],[1945,53.81],[1946,53.69],[1947,56.03],[1948,56.76],[1949,55.38],[1950,58.53],[1951,58.72],[1952,59.82],[1953,61.12],[1954,62.26],[1955,61.43],[1956,61.24],[1957,61.51],[1958,63.81],[1959,62.99],[1960,64.25],[1961,62.87],[1962,64.39],[1963,65.02],[1964,65.24],[1965,66.19],[1966,65.7],[1967,66.6],[1968,66.91],[1969,66.52],[1970,67.17],[1971,66.94],[1972,69.26],[1973,68.66],[1974,69.21],[1975,68.93],[1976,69.16],[1977,70.41],[1978,70.87],[1979,71.68],[1980,71.75],[1981,71.94],[1982,72.77],[1983,72.69],[1984,72.98],[1985,73.26],[1986,73.66],[1987,74.05],[1988,74.07],[1989,74.63],[1990,74.25],[1991,74.19],[1992,74.86],[1993,74.77],[1994,75.76],[1995,75.58],[1996,75.53],[1997,75.97],[1998,76.18],[1999,76.36],[2000,76.84],[2001,77.11],[2002,77.29],[2003,77.49],[2004,78.32],[2005,78.2],[2006,78.94],[2007,79.12],[2008,78.77],[2009,78.94]]},{"name":"Romania","region":"Europe & Central Asia","income":[[1800,1093.92],[1820,1116.86],[1870,2196.25],[1890,2939.27],[1900,3337.87],[1910,3915.9],[1913,4106.97],[1926,2966.42],[1927,2928.18],[1928,2888.6],[1929,2718.46],[1930,2875.09],[1931,2898.76],[1932,2699.76],[1933,2794.09],[1934,2788.24],[1935,2821.77],[1936,2816.99],[1937,2666.64],[1938,2929.59],[1948,1925.76],[1950,2788.13],[1951,2962.12],[1952,3144.61],[1953,3328.7],[1954,3529.11],[1955,3722.17],[1956,3829.44],[1957,3943.37],[1958,4065.81],[1959,4205.87],[1960,4349.19],[1961,4602.36],[1962,4735],[1963,5040.1],[1964,5326.92],[1965,5628.67],[1966,6234.45],[1967,6470.87],[1968,6461.5],[1969,6661.29],[1970,6729.78],[1971,7598.18],[1972,8011.41],[1973,8201.28],[1974,8579.08],[1975,8872.78],[1976,9239.34],[1977,9356.4],[1978,9584.18],[1979,9785.25],[1980,9755.08],[1981,9640.37],[1982,9605.31],[1983,9498.4],[1984,9855.45],[1985,9809.79],[1986,9942.75],[1987,9696.27],[1988,9637.16],[1989,9295.59],[1990,8281.62],[1991,7226.05],[1992,6598.41],[1993,6705.77],[1994,6976.44],[1995,7486.9],[1996,7801.29],[1997,7346.55],[1998,7008.4],[1999,6935.17],[2000,7089.83],[2001,7501.93],[2002,7885.36],[2003,8280.64],[2004,8994.49],[2005,9374],[2006,10151.92],[2007,10826.03],[2008,11662.14],[2009,10868.12]],"population":[[1820,6389000],[1850,8000000],[1870,9179000],[1890,10373000],[1900,11000000],[1910,11866000],[1913,12527000],[1920,12340000],[1921,12479000],[1922,12666000],[1923,12843000],[1924,13020000],[1925,13209000],[1926,13399000],[1927,13574000],[1928,13760000],[1929,13952000],[1930,14141000],[1931,14355000],[1932,14554000],[1933,14730000],[1934,14924000],[1935,15069000],[1936,15256000],[1937,15434000],[1938,15601000],[1939,15751000],[1940,15907000],[1941,15774000],[1942,15839000],[1943,15840000],[1944,15946000],[1945,15929000],[1946,15971000],[1947,15849000],[1948,15893000],[1949,16084000],[1950,16311000],[1951,16464000],[1952,16630000],[1953,16847000],[1954,17040000],[1955,17325000],[1956,17583000],[1957,17829327],[1958,18055948],[1959,18225830],[1960,18403414],[1961,18566932],[1962,18680721],[1963,18813131],[1964,18927081],[1965,19027367],[1966,19140783],[1967,19284814],[1968,19720984],[1969,20010178],[1970,20252541],[1971,20469658],[1972,20662648],[1973,20827525],[1974,21028841],[1975,21245103],[1976,21445698],[1977,21658597],[1978,21831875],[1979,22001388],[1980,22130036],[1981,22256551],[1982,22356726],[1983,22407281],[1984,22453788],[1985,22521195],[1986,22599678],[1987,22686371],[1988,22768897],[1989,22852123],[1990,22865945],[1991,22825559],[1992,22797027],[1993,22768538],[1994,22738680],[1995,22692830],[1996,22627562],[1997,22562458],[1998,22515824],[1999,22480527],[2000,22451921],[2001,22428044],[2002,22404337],[2003,22380273],[2004,22355551],[2005,22329977],[2006,22303552],[2007,22276056],[2008,22246862]],"lifeExpectancy":[[1800,35.7],[1920,35.7],[1932,42.01],[1950,59.86],[1951,60.15],[1952,60.74],[1953,61.34],[1954,61.96],[1955,62.6],[1956,63.25],[1957,63.9],[1958,64.54],[1959,65.14],[1960,65.68],[1961,66.13],[1962,66.46],[1963,66.67],[1964,66.78],[1965,66.83],[1966,66.9],[1967,67.03],[1968,67.26],[1969,67.59],[1970,68],[1971,68.43],[1972,68.83],[1973,69.15],[1974,69.37],[1975,69.5],[1976,69.55],[1977,69.56],[1978,69.57],[1979,69.58],[1980,69.6],[1981,69.62],[1982,69.64],[1983,69.65],[1984,69.64],[1985,69.62],[1986,69.59],[1987,69.54],[1988,69.5],[1989,69.45],[1990,69.4],[1991,69.37],[1992,69.34],[1993,69.33],[1994,69.35],[1995,69.4],[1996,69.51],[1997,69.68],[1998,69.9],[1999,70.17],[2000,70.48],[2001,70.81],[2002,71.14],[2003,71.47],[2004,71.77],[2005,72.04],[2006,72.29],[2007,72.53],[2008,72.76],[2009,72.99]]},{"name":"Serbia","region":"Europe & Central Asia","income":[[1800,1308.87],[1820,1336.32],[1870,1481.18],[1890,2084.6],[1900,2230.41],[1910,2613.49],[1913,2613.56],[1920,2549.97],[1921,2575.11],[1922,2613.02],[1923,2710.16],[1924,2863.71],[1925,2961.99],[1926,3123.97],[1927,3029.72],[1928,3249.77],[1929,3373.22],[1930,3260.19],[1931,3117.55],[1932,2788.6],[1933,2835.85],[1934,2901.09],[1935,2818.2],[1936,3140.56],[1937,3148.91],[1938,3354.11],[1939,3490.94],[1947,3252.79],[1948,3828.92],[1949,4150.15],[1950,3835.16],[1951,3934.49],[1952,3581.46],[1953,4062.06],[1954,4233.2],[1955,4444.31],[1956,4307.01],[1957,4981.09],[1958,5143.12],[1959,5721.27],[1960,6026.13],[1961,6235.08],[1962,6289.63],[1963,6877.27],[1964,7465.67],[1965,7592.72],[1966,7925.24],[1967,7991.71],[1968,8091.85],[1969,8926.12],[1970,9283.91],[1971,10263.93],[1972,10522.07],[1973,10782.43],[1974,12065.32],[1975,11959.25],[1976,12213.27],[1977,12980.67],[1978,13578.31],[1979,14387.78],[1980,14992.89],[1981,15168.18],[1982,15181.09],[1983,15225.82],[1984,15526.1],[1985,15569.67],[1986,16126.32],[1987,15870.88],[1988,15578.62],[1989,15313.99],[1990,14143.66],[1991,12990.68],[1992,9325.07],[1993,6478.91],[1994,6639.38],[1995,7012.19],[1996,7344.15],[1997,7914.32],[1998,8133.2],[1999,6302.01],[2000,6607.33],[2001,6939.82],[2002,7236.08],[2003,7436.24],[2004,8081.66],[2005,8609],[2006,9093.5],[2007,9760.87],[2008,10301.22],[2009,10005.22]],"population":[[1800,2147197],[1820,2147197],[1950,6710261],[1951,6794255],[1952,6860147],[1953,6950699],[1954,7045988],[1955,7145006],[1956,7207162],[1957,7271135],[1958,7331982],[1959,7405493],[1960,7470936],[1961,7542114],[1962,7616060],[1963,7689816],[1964,7756518],[1965,7830883],[1966,7906036],[1967,7971222],[1968,8039165],[1969,8104980],[1970,8166726],[1971,8236091],[1972,8313288],[1973,8383682],[1974,8461865],[1975,8542000],[1976,8614774],[1977,8686367],[1978,8752904],[1979,8817307],[1980,8955000],[1981,8973246],[1982,9032824],[1983,9087632],[1984,9096747],[1985,9150329],[1986,9201321],[1987,9230783],[1988,9270114],[1989,9310769],[1990,9347973],[1991,9617827],[1992,9826397],[1993,9926991],[1994,10031261],[1995,10192265],[1996,10311510],[1997,10336594],[1998,10302093],[1999,10170917],[2000,10117908],[2001,10131896],[2002,10111559],[2003,10109579],[2004,10119145],[2005,10129640],[2006,10140311],[2007,10150265],[2008,10159046],[2009,10166507]],"lifeExpectancy":[[1800,35.5],[1920,35.5],[1950,56.31],[1951,56.75],[1952,57.61],[1953,58.44],[1954,59.23],[1955,59.98],[1956,60.69],[1957,61.37],[1958,62.02],[1959,62.63],[1960,63.21],[1961,63.77],[1962,64.31],[1963,64.83],[1964,65.33],[1965,65.81],[1966,66.27],[1967,66.7],[1968,67.11],[1969,67.5],[1970,67.87],[1971,68.24],[1972,68.61],[1973,68.97],[1974,69.32],[1975,69.65],[1976,69.91],[1977,70.1],[1978,70.22],[1979,70.27],[1980,70.28],[1981,70.27],[1982,70.29],[1983,70.36],[1984,70.47],[1985,70.64],[1986,70.84],[1987,71.05],[1988,71.25],[1989,71.42],[1990,71.56],[1991,71.67],[1992,71.76],[1993,71.83],[1994,71.91],[1995,71.99],[1996,72.09],[1997,72.21],[1998,72.35],[1999,72.51],[2000,72.69],[2001,72.89],[2002,73.09],[2003,73.28],[2004,73.46],[2005,73.63],[2006,73.78],[2007,73.94],[2008,74.08],[2009,74.23]]},{"name":"Slovak Republic","region":"Europe & Central Asia","income":[[1800,1197.6],[1820,1197.6],[1850,1522.03],[1870,1641.83],[1890,2122.91],[1900,2438.9],[1910,2808.4],[1913,2955.87],[1920,2726.87],[1921,2940.51],[1922,2829.41],[1923,3033.56],[1924,3318.73],[1925,3675.88],[1926,3632.7],[1927,3881.4],[1928,4199.46],[1929,4291.43],[1930,4127.01],[1931,3961.86],[1932,3779.92],[1933,3599.45],[1934,3445.75],[1935,3399.29],[1936,3665.52],[1937,4064.56],[1948,4356.41],[1949,4597.55],[1950,4937.84],[1951,4970.41],[1952,5074.66],[1953,4999.31],[1954,5150.73],[1955,5532.03],[1956,5797.5],[1957,6093.26],[1958,6502.62],[1959,6742.24],[1960,7205.56],[1961,7424.43],[1962,7481.11],[1963,7292.14],[1964,7578.14],[1965,7804.18],[1966,8097.45],[1967,8412.9],[1968,8777.18],[1969,8962.51],[1970,9121.12],[1971,9391.97],[1972,9674.17],[1973,9932.09],[1974,10216.42],[1975,10437.16],[1976,10524.37],[1977,10922.66],[1978,10983.19],[1979,11008.51],[1980,11259.07],[1981,11160.97],[1982,11348.55],[1983,11492.08],[1984,11735.04],[1985,11802.32],[1986,11999.9],[1987,12037.27],[1988,12284.16],[1989,12367.44],[1990,12007.55],[1991,10215.84],[1992,9498.47],[1993,9636.52],[1994,10195.81],[1995,10759.84],[1996,11482.63],[1997,12126.23],[1998,12564.34],[1999,12600.77],[2000,12689.76],[2001,13098.91],[2002,13638.78],[2003,14207.56],[2004,14977.87],[2005,15881],[2006,17217.17],[2007,19012.69],[2008,20143.88],[2009,19186.01]],"population":[[1800,2140651],[1820,2140651],[1950,3463446],[1951,3508698],[1952,3558137],[1953,3598761],[1954,3661437],[1955,3726601],[1956,3787111],[1957,3844277],[1958,3899751],[1959,3946039],[1960,3994270],[1961,4191642],[1962,4237384],[1963,4281858],[1964,4326174],[1965,4369939],[1966,4408988],[1967,4442238],[1968,4471590],[1969,4477625],[1970,4523873],[1971,4556627],[1972,4593433],[1973,4637193],[1974,4682100],[1975,4729718],[1976,4778540],[1977,4827803],[1978,4876017],[1979,4922558],[1980,4965958],[1981,5013692],[1982,5048043],[1983,5081376],[1984,5114080],[1985,5144632],[1986,5172084],[1987,5199318],[1988,5223222],[1989,5244662],[1990,5262616],[1991,5281610],[1992,5302888],[1993,5323577],[1994,5345264],[1995,5361594],[1996,5373190],[1997,5383010],[1998,5390236],[1999,5395739],[2000,5400320],[2001,5404681],[2002,5410052],[2003,5416406],[2004,5423567],[2005,5431363],[2006,5439448],[2007,5447502],[2008,5455407]],"lifeExpectancy":[[1800,36.4],[1895,36.4],[1921,44.2],[1930,49.9],[1937,53.2],[1950,60.89],[1951,61.31],[1952,64.36],[1953,65.66],[1954,66.71],[1955,67.84],[1956,68.37],[1957,67.45],[1958,69.35],[1959,69.03],[1960,70.35],[1961,70.79],[1962,70.33],[1963,70.71],[1964,71.09],[1965,70.3],[1966,70.44],[1967,70.98],[1968,70.5],[1969,69.81],[1970,69.74],[1971,69.88],[1972,70.35],[1973,70.05],[1974,70.21],[1975,70.33],[1976,70.5],[1977,70.45],[1978,70.46],[1979,70.79],[1980,70.44],[1981,70.68],[1982,70.8],[1983,70.49],[1984,70.73],[1985,70.74],[1986,70.91],[1987,71.08],[1988,71.16],[1989,70.95],[1990,70.83],[1991,70.9],[1992,71.38],[1993,71.9],[1994,72.36],[1995,72.29],[1996,72.77],[1997,72.71],[1998,72.62],[1999,72.99],[2000,73.19],[2001,73.62],[2002,73.81],[2003,73.85],[2004,74.26],[2005,74.2],[2006,74.46],[2007,74.52],[2008,74.88],[2009,74.94]]},{"name":"Slovenia","region":"Europe & Central Asia","income":[[1800,1357.95],[1820,1386.44],[1870,1743.21],[1890,2453.37],[1900,2624.99],[1910,3075.84],[1913,3075.92],[1920,3001.07],[1921,3030.67],[1922,3075.28],[1923,3189.6],[1924,3370.32],[1925,3485.98],[1926,3676.61],[1927,3565.7],[1928,3824.67],[1929,3969.96],[1930,3836.93],[1931,3669.07],[1932,3281.92],[1933,3337.53],[1934,3414.31],[1935,3316.75],[1936,3696.15],[1937,3705.97],[1938,3947.48],[1939,4108.51],[1947,3828.23],[1948,4506.28],[1949,4884.33],[1950,4513.62],[1951,4630.53],[1952,4215.04],[1953,4780.67],[1954,4982.08],[1955,5230.53],[1956,5068.95],[1957,5862.28],[1958,6052.97],[1959,6733.39],[1960,7092.19],[1961,7338.11],[1962,7402.3],[1963,8093.9],[1964,8786.4],[1965,8935.92],[1966,9327.26],[1967,9405.49],[1968,9523.35],[1969,10505.21],[1970,10926.29],[1971,12079.69],[1972,12383.49],[1973,12689.91],[1974,14199.74],[1975,14074.92],[1976,14373.88],[1977,15277.03],[1978,15980.4],[1979,16933.07],[1980,17645.22],[1981,17851.52],[1982,17866.72],[1983,17919.36],[1984,18272.76],[1985,18324.04],[1986,18979.17],[1987,18678.53],[1988,18334.58],[1989,18023.13],[1990,16645.76],[1991,15100.59],[1992,14214.72],[1993,14560.02],[1994,15279.58],[1995,15857.28],[1996,16392.55],[1997,17161.11],[1998,17747.88],[1999,18663.4],[2000,19399.69],[2001,19966.89],[2002,20660.02],[2003,21203.46],[2004,22113.22],[2005,23004],[2006,24255.45],[2007,25914.73],[2008,26779.28],[2009,24778.21]],"population":[[1800,469664],[1820,469664],[1950,1467759],[1951,1483131],[1952,1489518],[1953,1497875],[1954,1509187],[1955,1517499],[1956,1524799],[1957,1533070],[1958,1540332],[1959,1548561],[1960,1557756],[1961,1571851],[1962,1582962],[1963,1595028],[1964,1606083],[1965,1620052],[1966,1632029],[1967,1646912],[1968,1657849],[1969,1666805],[1970,1675739],[1971,1685624],[1972,1694510],[1973,1703373],[1974,1713184],[1975,1722000],[1976,1734454],[1977,1746919],[1978,1759395],[1979,1772854],[1980,1833000],[1981,1839256],[1982,1861252],[1983,1878555],[1984,1896413],[1985,1914220],[1986,1932129],[1987,1945870],[1988,1961775],[1989,1976217],[1990,1991210],[1991,1999480],[1992,1999210],[1993,1999926],[1994,2001036],[1995,2002827],[1996,2007429],[1997,2011612],[1998,2010807],[1999,2009653],[2000,2010557],[2001,2011179],[2002,2011497],[2003,2011604],[2004,2011473],[2005,2011070],[2006,2010347],[2007,2009245],[2008,2007711]],"lifeExpectancy":[[1800,36.6],[1920,36.6],[1950,64.45],[1951,64.75],[1952,65.32],[1953,65.87],[1954,66.38],[1955,66.86],[1956,67.3],[1957,67.71],[1958,68.08],[1959,68.4],[1960,68.68],[1961,68.89],[1962,69.05],[1963,69.15],[1964,69.2],[1965,69.22],[1966,69.22],[1967,69.23],[1968,69.26],[1969,69.32],[1970,69.42],[1971,69.57],[1972,69.76],[1973,69.97],[1974,70.2],[1975,70.43],[1976,70.63],[1977,70.78],[1978,70.89],[1979,70.97],[1980,71.02],[1981,71.07],[1982,71.16],[1983,70.88],[1984,71.34],[1985,71.77],[1986,72.32],[1987,72.25],[1988,72.9],[1989,73.35],[1990,73.86],[1991,73.5],[1992,73.64],[1993,73.52],[1994,73.96],[1995,74.67],[1996,75.11],[1997,75.13],[1998,75.26],[1999,75.64],[2000,76.11],[2001,76.38],[2002,76.66],[2003,76.55],[2004,77.28],[2005,77.6],[2006,78.24],[2007,78.15],[2008,78.41],[2009,78.63]]},{"name":"Spain","region":"Europe & Central Asia","income":[[1800,1443.02],[1820,1510.35],[1821,1513.78],[1822,1517.21],[1823,1520.65],[1824,1524.09],[1825,1527.55],[1826,1531.01],[1827,1534.48],[1828,1537.96],[1829,1541.44],[1830,1544.93],[1831,1548.44],[1832,1551.94],[1833,1555.46],[1834,1558.99],[1835,1562.52],[1836,1566.06],[1837,1569.61],[1838,1573.17],[1839,1576.73],[1840,1580.31],[1841,1583.89],[1842,1587.48],[1843,1591.07],[1844,1594.68],[1845,1598.29],[1846,1601.92],[1847,1605.55],[1848,1609.18],[1849,1612.83],[1850,1616.49],[1851,1632.37],[1852,1697.44],[1853,1702.12],[1854,1723.99],[1855,1801.43],[1856,1743.21],[1857,1695.79],[1858,1727.9],[1859,1798.2],[1860,1852.46],[1861,1870.46],[1862,1876.68],[1863,1913.85],[1864,1908.72],[1865,1843.65],[1866,1933.43],[1867,1922.37],[1868,1722.31],[1869,1770.45],[1870,1808.9],[1871,1945.24],[1872,2207.57],[1873,2394.12],[1874,2186.23],[1875,2242.35],[1876,2276.7],[1877,2500.26],[1878,2424.55],[1879,2278.23],[1880,2466.65],[1881,2516.2],[1882,2535.07],[1883,2578.06],[1884,2571.04],[1885,2489.16],[1886,2422.5],[1887,2375.82],[1888,2459.86],[1889,2443.33],[1890,2433.81],[1891,2478.14],[1892,2652.1],[1893,2547.88],[1894,2564.95],[1895,2531.14],[1896,2319.09],[1897,2426.09],[1898,2601.44],[1899,2631.41],[1900,2676.85],[1901,2848.79],[1902,2747],[1903,2740.65],[1904,2712.76],[1905,2663.39],[1906,2774.32],[1907,2841.88],[1908,2932.93],[1909,2963.39],[1910,2839.94],[1911,3022.91],[1912,2980.16],[1913,3080.48],[1914,3017.63],[1915,3046.46],[1916,3166.83],[1917,3107.16],[1918,3064.66],[1919,3063.21],[1920,3262.65],[1921,3315.45],[1922,3422.14],[1923,3431.6],[1924,3493.17],[1925,3672.26],[1926,3621.9],[1927,3896.12],[1928,3872.19],[1929,4104.43],[1930,3926.82],[1931,3789.68],[1932,3835.49],[1933,3725.35],[1934,3830.02],[1935,3870.45],[1936,2980.4],[1937,2709.06],[1938,2682.76],[1939,2869.22],[1940,3117.62],[1941,3041.43],[1942,3186.35],[1943,3278.25],[1944,3403.92],[1945,3149.32],[1946,3265.09],[1947,3293.12],[1948,3275.47],[1949,3229.14],[1950,3280.32],[1951,3576.32],[1952,3834.03],[1953,3787.81],[1954,4039.52],[1955,4163.5],[1956,4462.54],[1957,4564.8],[1958,4720.21],[1959,4571.3],[1960,4603.07],[1961,5149.13],[1962,5693.84],[1963,6221.1],[1964,6765.93],[1965,7136.52],[1966,7582.37],[1967,7993.51],[1968,8374.24],[1969,9039.41],[1970,9469.63],[1971,9918.21],[1972,10638.75],[1973,11481.02],[1974,12212.46],[1975,12507.48],[1976,12886.57],[1977,13236.92],[1978,13521.55],[1979,13589.12],[1980,13790.56],[1981,13765.39],[1982,13926.17],[1983,14203.11],[1984,14342.73],[1985,14568.71],[1986,14982.65],[1987,15764.98],[1988,16553.14],[1989,17355.75],[1990,18064.92],[1991,18472.91],[1992,18603.06],[1993,18374.87],[1994,18782.73],[1995,19272.14],[1996,19709.87],[1997,20445.3],[1998,21333.94],[1999,22286.36],[2000,23410.16],[2001,24221.8],[2002,24835.47],[2003,25564.29],[2004,26357.05],[2005,27270],[2006,27898.65],[2007,28427.37],[2008,28159.21],[2009,26811.93]],"population":[[1820,12203000],[1821,12284000],[1822,12366000],[1823,12449000],[1824,12532000],[1825,12615000],[1826,12699000],[1827,12784000],[1828,12869000],[1829,12955000],[1830,13041000],[1831,13128000],[1832,13216000],[1833,13304000],[1834,13392000],[1835,13482000],[1836,13571000],[1837,13662000],[1838,13753000],[1839,13845000],[1840,13937000],[1841,14030000],[1842,14123000],[1843,14217000],[1844,14312000],[1845,14407000],[1846,14503000],[1847,14600000],[1848,14697000],[1849,14795000],[1850,14894000],[1851,14974000],[1852,15055000],[1853,15136000],[1854,15217000],[1855,15299000],[1856,15381000],[1857,15455000],[1858,15526000],[1859,15584000],[1860,15642000],[1861,15699000],[1862,15754000],[1863,15809000],[1864,15864000],[1865,15920000],[1866,15976000],[1867,16032000],[1868,16088000],[1869,16144000],[1870,16201000],[1871,16258000],[1872,16315000],[1873,16372000],[1874,16429000],[1875,16487000],[1876,16545000],[1877,16603000],[1878,16677000],[1879,16768000],[1880,16859000],[1881,16951000],[1882,17043000],[1883,17136000],[1884,17230000],[1885,17323000],[1886,17418000],[1887,17513000],[1888,17600000],[1889,17678000],[1890,17757000],[1891,17836000],[1892,17916000],[1893,17996000],[1894,18076000],[1895,18157000],[1896,18238000],[1897,18320000],[1898,18402000],[1899,18484000],[1900,18566000],[1901,18659000],[1902,18788000],[1903,18919000],[1904,19050000],[1905,19133000],[1906,19316000],[1907,19450000],[1908,19585000],[1909,19721000],[1910,19858000],[1911,19994000],[1912,20128000],[1913,20263000],[1914,20398000],[1915,20535000],[1916,20673000],[1917,20811000],[1918,20950000],[1919,21091000],[1920,21232000],[1921,21411000],[1922,21628000],[1923,21847000],[1924,22069000],[1925,22292000],[1926,22518000],[1927,22747000],[1928,22977000],[1929,23210000],[1930,23445000],[1931,23675000],[1932,23897000],[1933,24122000],[1934,24349000],[1935,24579000],[1936,24810000],[1937,25043000],[1938,25279000],[1939,25517000],[1940,25757000],[1941,25979000],[1942,26182000],[1943,26387000],[1944,26594000],[1945,26802000],[1946,27012000],[1947,27223000],[1948,27437000],[1949,27651000],[1950,28062963],[1951,28298010],[1952,28549870],[1953,28804128],[1954,29060413],[1955,29318745],[1956,29579142],[1957,29841614],[1958,30106188],[1959,30372877],[1960,30641187],[1961,30903894],[1962,31158061],[1963,31429834],[1964,31740862],[1965,32084511],[1966,32451975],[1967,32850275],[1968,33239301],[1969,33566084],[1970,33876479],[1971,34195056],[1972,34513161],[1973,34836716],[1974,35184287],[1975,35563535],[1976,35996780],[1977,36439000],[1978,36861034],[1979,37200014],[1980,37488360],[1981,37750800],[1982,37983310],[1983,38184166],[1984,38362861],[1985,38534853],[1986,38707556],[1987,38880702],[1988,39053881],[1989,39214523],[1990,39350769],[1991,39461418],[1992,39549438],[1993,39627587],[1994,39690971],[1995,39749715],[1996,39803829],[1997,39855442],[1998,39906235],[1999,39953263],[2000,40016081],[2001,40087104],[2002,40152517],[2003,40217413],[2004,40280780],[2005,40341462],[2006,40397842],[2007,40448191],[2008,40491051]],"lifeExpectancy":[[1800,29.5],[1882,29.5],[1892,32.1],[1900,34.8],[1908,41.45],[1909,41.06],[1910,40.92],[1911,39.8],[1912,43.53],[1913,42.56],[1914,42.84],[1915,43.05],[1916,43.98],[1917,42.63],[1918,30.29],[1919,41.12],[1920,39.31],[1921,42.03],[1922,44.21],[1923,44.75],[1924,46.3],[1925,46.95],[1926,47.76],[1927,48.49],[1928,48.67],[1929,49.49],[1930,49.34],[1931,49.25],[1932,51.2],[1933,51.6],[1934,52.24],[1935,52.72],[1936,50.9],[1937,47.22],[1938,47.53],[1939,47.09],[1940,48.39],[1941,47.16],[1942,52.48],[1943,54.85],[1944,56.25],[1945,57.84],[1946,57.57],[1947,59.33],[1948,61.27],[1949,61.02],[1950,61.87],[1951,61.52],[1952,64.94],[1953,65.81],[1954,67.01],[1955,66.78],[1956,66.82],[1957,66.66],[1958,68.85],[1959,68.77],[1960,69.27],[1961,69.66],[1962,69.69],[1963,69.85],[1964,70.58],[1965,70.99],[1966,71.25],[1967,71.44],[1968,71.73],[1969,71.26],[1970,72.24],[1971,71.85],[1972,73.06],[1973,72.84],[1974,73.22],[1975,73.55],[1976,73.87],[1977,74.39],[1978,74.58],[1979,75.12],[1980,75.6],[1981,75.74],[1982,76.3],[1983,76.08],[1984,76.46],[1985,76.42],[1986,76.67],[1987,76.9],[1988,76.91],[1989,76.98],[1990,76.99],[1991,77.12],[1992,77.57],[1993,77.7],[1994,78.05],[1995,78.12],[1996,78.26],[1997,78.77],[1998,78.85],[1999,78.86],[2000,79.34],[2001,79.69],[2002,79.78],[2003,79.72],[2004,80.28],[2005,80.28],[2006,80.94],[2007,80.75],[2008,80.94],[2009,81.11]]},{"name":"Sweden","region":"Europe & Central Asia","income":[[1800,1100],[1801,1105],[1802,1159],[1803,1141],[1804,1081],[1805,1140],[1806,1152],[1807,1117],[1808,1035],[1809,1037],[1810,1131],[1811,1209],[1812,1136],[1813,1168],[1814,1192],[1815,1216],[1816,1217],[1817,1176],[1818,1170],[1819,1157],[1820,1173],[1821,1196],[1822,1209],[1823,1211],[1824,1230],[1825,1253],[1826,1230],[1827,1204],[1828,1221],[1829,1231],[1830,1214],[1831,1246],[1832,1214],[1833,1259],[1834,1273],[1835,1276],[1836,1311],[1837,1293],[1838,1270],[1839,1295],[1840,1306],[1841,1296],[1842,1232],[1843,1271],[1844,1334],[1845,1341],[1846,1306],[1847,1343],[1848,1355],[1849,1388],[1850,1423],[1851,1412],[1852,1393],[1853,1410],[1854,1434],[1855,1537],[1856,1554],[1857,1596],[1858,1576],[1859,1631],[1860,1652],[1861,1597],[1862,1574],[1863,1642],[1864,1636],[1865,1674],[1866,1636],[1867,1672],[1868,1517],[1869,1621],[1870,1866],[1871,1921],[1872,1985],[1873,2043],[1874,2105],[1875,2016],[1876,2160],[1877,2107],[1878,1992],[1879,2084],[1880,2064],[1881,2100],[1882,2015],[1883,2193],[1884,2143],[1885,2167],[1886,2178],[1887,2090],[1888,2160],[1889,2176],[1890,2224],[1891,2346],[1892,2309],[1893,2377],[1894,2386],[1895,2498],[1896,2554],[1897,2675],[1898,2788],[1899,2903],[1900,2897],[1901,2930],[1902,2916],[1903,3097],[1904,3133],[1905,3100],[1906,3330],[1907,3588],[1908,3423],[1909,3474],[1910,3563],[1911,3667],[1912,3838],[1913,3994],[1914,4097],[1915,4185],[1916,4468],[1917,4154],[1918,3988],[1919,4111],[1920,4217],[1921,3854],[1922,4206],[1923,4352],[1924,4628],[1925,4639],[1926,4858],[1927,5046],[1928,5167],[1929,5457],[1930,5517],[1931,5416],[1932,5132],[1933,5329],[1934,5685],[1935,5976],[1936,6207],[1937,6359],[1938,6483],[1939,7001],[1940,6742],[1941,6729],[1942,6648],[1943,6851],[1944,7033],[1945,7196],[1946,7905],[1947,8415],[1948,8496],[1949,8643],[1950,9073],[1951,9255],[1952,9223],[1953,9518],[1954,9947],[1955,10143],[1956,10407],[1957,10640],[1958,10944],[1959,11384],[1960,11952],[1961,12476],[1962,13138],[1963,13733],[1964,14703],[1965,15287],[1966,15782],[1967,16140],[1968,16732],[1969,17523],[1970,18303],[1971,18205],[1972,18723],[1973,19399],[1974,19745],[1975,20049],[1976,20036],[1977,19652],[1978,20000],[1979,20715],[1980,21179],[1981,21266],[1982,21382],[1983,21910],[1984,22839],[1985,23321],[1986,23615],[1987,24223],[1988,24572],[1989,24941],[1990,25295],[1991,25001],[1992,24343],[1993,23670],[1994,24141],[1995,24724],[1996,24959],[1997,25567],[1998,26445],[1999,27572],[2000,28659],[2001,28866],[2002,29472],[2003,29941],[2004,31074],[2005,31995],[2006,33200],[2007,33800],[2008,33634],[2009,32021]],"population":[[1820,2585000],[1821,2611000],[1822,2646000],[1823,2689000],[1824,2727000],[1825,2771000],[1826,2805000],[1827,2828000],[1828,2847000],[1829,2863000],[1830,2888000],[1831,2901000],[1832,2923000],[1833,2959000],[1834,2983000],[1835,3025000],[1836,3059000],[1837,3076000],[1838,3090000],[1839,3106000],[1840,3139000],[1841,3173000],[1842,3207000],[1843,3237000],[1844,3275000],[1845,3317000],[1846,3343000],[1847,3362000],[1848,3397000],[1849,3441000],[1850,3483000],[1851,3517000],[1852,3540000],[1853,3563000],[1854,3608000],[1855,3641000],[1856,3673000],[1857,3688000],[1858,3734000],[1859,3788000],[1860,3860000],[1861,3917000],[1862,3966000],[1863,4023000],[1864,4070000],[1865,4114000],[1866,4161000],[1867,4196000],[1868,4173000],[1869,4159000],[1870,4169000],[1871,4186000],[1872,4227000],[1873,4274000],[1874,4320000],[1875,4362000],[1876,4407000],[1877,4457000],[1878,4508000],[1879,4555000],[1880,4572000],[1881,4569000],[1882,4576000],[1883,4591000],[1884,4624000],[1885,4664000],[1886,4700000],[1887,4726000],[1888,4742000],[1889,4761000],[1890,4780000],[1891,4794000],[1892,4805000],[1893,4816000],[1894,4849000],[1895,4896000],[1896,4941000],[1897,4986000],[1898,5036000],[1899,5080000],[1900,5117000],[1901,5156000],[1902,5187000],[1903,5210000],[1904,5241000],[1905,5278000],[1906,5316000],[1907,5357000],[1908,5404000],[1909,5453000],[1910,5449000],[1911,5542000],[1912,5583000],[1913,5621000],[1914,5659000],[1915,5696000],[1916,5735000],[1917,5779000],[1918,5807000],[1919,5830000],[1920,5876000],[1921,5929000],[1922,5971000],[1923,5997000],[1924,6021000],[1925,6045000],[1926,6064000],[1927,6081000],[1928,6097000],[1929,6113000],[1930,6131000],[1931,6152000],[1932,6176000],[1933,6201000],[1934,6222000],[1935,6242000],[1936,6259000],[1937,6276000],[1938,6298000],[1939,6326000],[1940,6356000],[1941,6389000],[1942,6432000],[1943,6491000],[1944,6560000],[1945,6636000],[1946,6719000],[1947,6803000],[1948,6884000],[1949,6956000],[1950,7014005],[1951,7072830],[1952,7124673],[1953,7171461],[1954,7213490],[1955,7262388],[1956,7314552],[1957,7363802],[1958,7409144],[1959,7446249],[1960,7480395],[1961,7519998],[1962,7561588],[1963,7604328],[1964,7661354],[1965,7733853],[1966,7807797],[1967,7867931],[1968,7912217],[1969,7968018],[1970,8042803],[1971,8098328],[1972,8122293],[1973,8136774],[1974,8160560],[1975,8192566],[1976,8222310],[1977,8251648],[1978,8275778],[1979,8293723],[1980,8310473],[1981,8320485],[1982,8325260],[1983,8329028],[1984,8342621],[1985,8356337],[1986,8384069],[1987,8421403],[1988,8469339],[1989,8526276],[1990,8600815],[1991,8668112],[1992,8718867],[1993,8769284],[1994,8831493],[1995,8877890],[1996,8892234],[1997,8897619],[1998,8902684],[1999,8909790],[2000,8923569],[2001,8939915],[2002,8954175],[2003,8970306],[2004,8986400],[2005,9001774],[2006,9016596],[2007,9031088],[2008,9045389]],"lifeExpectancy":[[1800,32.16],[1801,36.9],[1802,40.2],[1803,40.28],[1804,39.7],[1805,41.05],[1806,36.17],[1807,38.76],[1808,30.15],[1809,26.9],[1810,31.99],[1811,34.58],[1812,35.07],[1813,36.49],[1814,38.57],[1815,40.42],[1816,41.74],[1817,40.29],[1818,40.02],[1819,36.97],[1820,40.23],[1821,38.14],[1822,42.76],[1823,45.19],[1824,44.97],[1825,45.24],[1826,43.08],[1827,42.64],[1828,37.74],[1829,36.18],[1830,40.97],[1831,38.98],[1832,40.84],[1833,42.5],[1834,38.53],[1835,47.14],[1836,45.13],[1837,39.57],[1838,39.98],[1839,39.88],[1840,43.98],[1841,45.17],[1842,42.8],[1843,42.82],[1844,44.03],[1845,45.99],[1846,42.04],[1847,40.12],[1848,45.13],[1849,44.5],[1850,44.69],[1851,43.62],[1852,41.35],[1853,39.99],[1854,44.55],[1855,43.08],[1856,42.14],[1857,34.64],[1858,42],[1859,44.27],[1860,48.47],[1861,47.12],[1862,42.55],[1863,45.38],[1864,44.77],[1865,45.4],[1866,44.73],[1867,46.18],[1868,43.23],[1869,40.96],[1870,45.01],[1871,48.98],[1872,50.08],[1873,48.68],[1874,44.28],[1875,44.61],[1876,44.82],[1877,46.05],[1878,46.73],[1879,48.92],[1880,47.62],[1881,48.5],[1882,48.59],[1883,49.05],[1884,49.17],[1885,48.94],[1886,50.6],[1887,51.46],[1888,52.35],[1889,52.3],[1890,50.48],[1891,51.09],[1892,50.61],[1893,51.36],[1894,52.1],[1895,54.16],[1896,53.49],[1897,54.14],[1898,54.69],[1899,50.95],[1900,52.27],[1901,52.92],[1902,54.76],[1903,55.09],[1904,55.4],[1905,54.55],[1906,56.7],[1907,56.98],[1908,56.42],[1909,58.42],[1910,57.8],[1911,58.03],[1912,57.79],[1913,58.68],[1914,58.26],[1915,57.2],[1916,58.22],[1917,58.9],[1918,49.81],[1919,56.57],[1920,58.81],[1921,61.03],[1922,61.05],[1923,63],[1924,62],[1925,62.56],[1926,62.79],[1927,61.59],[1928,62.27],[1929,62.32],[1930,63.19],[1931,62.69],[1932,63.95],[1933,64.83],[1934,64.98],[1935,64.86],[1936,64.61],[1937,64.63],[1938,65.57],[1939,66.4],[1940,66.74],[1941,67.03],[1942,68.97],[1943,68.72],[1944,67.74],[1945,68.34],[1946,69.51],[1947,69.47],[1948,70.73],[1949,70.8],[1950,71.14],[1951,71.37],[1952,71.86],[1953,71.9],[1954,72.36],[1955,72.6],[1956,72.66],[1957,72.49],[1958,73.14],[1959,73.37],[1960,73.04],[1961,73.5],[1962,73.37],[1963,73.56],[1964,73.73],[1965,73.88],[1966,74.13],[1967,74.16],[1968,74.03],[1969,74.15],[1970,74.7],[1971,74.62],[1972,74.72],[1973,74.88],[1974,74.99],[1975,75],[1976,75.01],[1977,75.44],[1978,75.53],[1979,75.57],[1980,75.8],[1981,76.1],[1982,76.42],[1983,76.66],[1984,76.92],[1985,76.78],[1986,77.04],[1987,77.19],[1988,77.08],[1989,77.74],[1990,77.67],[1991,77.81],[1992,78.16],[1993,78.24],[1994,78.86],[1995,78.94],[1996,79.15],[1997,79.39],[1998,79.53],[1999,79.61],[2000,79.84],[2001,79.93],[2002,80.04],[2003,80.33],[2004,80.67],[2005,80.75],[2006,80.95],[2007,81.08],[2008,80.97],[2009,81.12]]},{"name":"Switzerland","region":"Europe & Central Asia","income":[[1800,1612.48],[1801,1615.2],[1802,1617.94],[1803,1620.67],[1804,1623.42],[1805,1626.16],[1806,1628.91],[1807,1631.67],[1808,1634.43],[1809,1637.19],[1810,1639.96],[1811,1642.74],[1812,1645.52],[1813,1648.3],[1814,1651.09],[1815,1653.88],[1816,1656.68],[1817,1659.48],[1818,1662.29],[1819,1665.1],[1820,1667.92],[1821,1685.32],[1822,1702.91],[1823,1720.68],[1824,1738.64],[1825,1756.78],[1826,1775.11],[1827,1793.63],[1828,1812.35],[1829,1831.26],[1830,1850.37],[1831,1869.68],[1832,1889.19],[1833,1908.9],[1834,1928.82],[1835,1948.95],[1836,1969.29],[1837,1989.84],[1838,2010.6],[1839,2031.58],[1840,2052.78],[1841,2074.21],[1842,2095.85],[1843,2117.72],[1844,2139.82],[1845,2162.15],[1846,2184.71],[1847,2207.51],[1848,2230.54],[1849,2253.82],[1850,2277.34],[1851,2317.03],[1852,2456.55],[1853,2365.44],[1854,2089.19],[1855,2426.6],[1856,2409.29],[1857,2600.59],[1858,3263.3],[1859,3085.16],[1860,2669.3],[1861,2843.62],[1862,3043.76],[1863,3025.86],[1864,2848.95],[1865,3074.86],[1866,3029.94],[1867,2649.21],[1868,3110.78],[1869,3383.55],[1870,3216.2],[1871,3404.86],[1872,3224.55],[1873,3293.34],[1874,3666.89],[1875,4047.59],[1876,3929.51],[1877,3523.54],[1878,3567.13],[1879,3534.6],[1880,3748.24],[1881,3795.81],[1882,3671.4],[1883,3666.4],[1884,4065.55],[1885,4368.15],[1886,4522.68],[1887,4485.18],[1888,4574.38],[1889,4561.95],[1890,4867.95],[1891,4569.92],[1892,4906.55],[1893,5039.99],[1894,4864.53],[1895,5336.39],[1896,5410.17],[1897,5622.86],[1898,5656.7],[1899,5867.33],[1900,5864.6],[1901,5729.43],[1902,5787.75],[1903,5603.22],[1904,5827.02],[1905,5987],[1906,6434.66],[1907,6414.69],[1908,6239.63],[1909,6486.51],[1910,6626.79],[1911,6697.87],[1912,6690.97],[1913,6526.72],[1914,6476.75],[1915,6563.87],[1916,6543.2],[1917,5820.1],[1918,5811.42],[1919,6211.34],[1920,6600.64],[1921,6438.49],[1922,7065.58],[1923,7457.2],[1924,7709.48],[1925,8243.02],[1926,8607.39],[1927,9014.16],[1928,9441.41],[1929,9687.66],[1930,9556.05],[1931,9092.53],[1932,8736.36],[1933,9128.37],[1934,9106.96],[1935,9037.66],[1936,9039.73],[1937,9442.14],[1938,9776.07],[1939,9731.54],[1940,9786.93],[1941,9657.3],[1942,9343.95],[1943,9182.31],[1944,9315.64],[1945,11860.83],[1946,12516.48],[1947,13847.18],[1948,13947.1],[1949,13397.73],[1950,13867.61],[1951,14816.9],[1952,14734.23],[1953,15055.83],[1954,15739.4],[1955,16626.49],[1956,17501.93],[1957,17909.49],[1958,17284.27],[1959,18161.49],[1960,19059.01],[1961,20041.22],[1962,20431.09],[1963,20977.27],[1964,21712.09],[1965,22190.77],[1966,22533.04],[1967,22966.14],[1968,23522.13],[1969,24527.55],[1970,25862.82],[1971,26593.27],[1972,27195.11],[1973,27851.76],[1974,28174.33],[1975,26353.03],[1976,26270.87],[1977,26982.29],[1978,27023.44],[1979,27617.12],[1980,28732.37],[1981,29003.27],[1982,28397.72],[1983,28396.89],[1984,29128.19],[1985,29967.6],[1986,30273.42],[1987,30281.7],[1988,30971.59],[1989,32031.33],[1990,32875.78],[1991,32207.74],[1992,31871.53],[1993,31515.65],[1994,31599.62],[1995,31530.77],[1996,31589.72],[1997,32135.32],[1998,33039.5],[1999,33349.65],[2000,34386.9],[2001,34569.38],[2002,34480.96],[2003,34183.28],[2004,34864.09],[2005,35520],[2006,36745.13],[2007,38007.34],[2008,38623.13],[2009,38003.92]],"population":[[1820,1986000],[1821,1998000],[1822,2008000],[1823,2020000],[1824,2031000],[1825,2042000],[1826,2054000],[1827,2065000],[1828,2077000],[1829,2088000],[1830,2100000],[1831,2112000],[1832,2123000],[1833,2135000],[1834,2147000],[1835,2159000],[1836,2171000],[1837,2183000],[1838,2195000],[1839,2208000],[1840,2220000],[1841,2235000],[1842,2251000],[1843,2266000],[1844,2282000],[1845,2298000],[1846,2314000],[1847,2330000],[1848,2346000],[1849,2363000],[1850,2379000],[1851,2399000],[1852,2406000],[1853,2412000],[1854,2427000],[1855,2442000],[1856,2457000],[1857,2471000],[1858,2484000],[1859,2497000],[1860,2510000],[1861,2524000],[1862,2538000],[1863,2552000],[1864,2566000],[1865,2579000],[1866,2593000],[1867,2607000],[1868,2623000],[1869,2639000],[1870,2655000],[1871,2680000],[1872,2697000],[1873,2715000],[1874,2733000],[1875,2750000],[1876,2768000],[1877,2786000],[1878,2803000],[1879,2821000],[1880,2839000],[1881,2853000],[1882,2863000],[1883,2874000],[1884,2885000],[1885,2896000],[1886,2907000],[1887,2918000],[1888,2929000],[1889,2940000],[1890,2951000],[1891,2965000],[1892,3002000],[1893,3040000],[1894,3077000],[1895,3114000],[1896,3151000],[1897,3188000],[1898,3226000],[1899,3263000],[1900,3300000],[1901,3341000],[1902,3384000],[1903,3428000],[1904,3472000],[1905,3461000],[1906,3560000],[1907,3604000],[1908,3647000],[1909,3691000],[1910,3735000],[1911,3776000],[1912,3819000],[1913,3864000],[1914,3897000],[1915,3883000],[1916,3883000],[1917,3888000],[1918,3880000],[1919,3869000],[1920,3877000],[1921,3876000],[1922,3874000],[1923,3883000],[1924,3896000],[1925,3910000],[1926,3932000],[1927,3956000],[1928,3988000],[1929,4022000],[1930,4051000],[1931,4080000],[1932,4102000],[1933,4122000],[1934,4140000],[1935,4155000],[1936,4168000],[1937,4180000],[1938,4192000],[1939,4206000],[1940,4226000],[1941,4254000],[1942,4286000],[1943,4323000],[1944,4364000],[1945,4412000],[1946,4467000],[1947,4524000],[1948,4582000],[1949,4640000],[1950,4694000],[1951,4749000],[1952,4815000],[1953,4878000],[1954,4929000],[1955,4980000],[1956,5045000],[1957,5126000],[1958,5199000],[1959,5259000],[1960,5362000],[1961,5512000],[1962,5666000],[1963,5789000],[1964,5887000],[1965,5943000],[1966,5996000],[1967,6063000],[1968,6132000],[1969,6212000],[1970,6267000],[1971,6343293],[1972,6401400],[1973,6441100],[1974,6460000],[1975,6403500],[1976,6333313],[1977,6316424],[1978,6332568],[1979,6350840],[1980,6385229],[1981,6425450],[1982,6468126],[1983,6501073],[1984,6529684],[1985,6563770],[1986,6603192],[1987,6649942],[1988,6704112],[1989,6763653],[1990,6836626],[1991,6920562],[1992,6995447],[1993,7058211],[1994,7114530],[1995,7157106],[1996,7181024],[1997,7193761],[1998,7207995],[1999,7232809],[2000,7266920],[2001,7311237],[2002,7361757],[2003,7408319],[2004,7450867],[2005,7489370],[2006,7523934],[2007,7554661],[2008,7581520]],"lifeExpectancy":[[1800,38],[1875,38],[1876,40.1],[1877,40.01],[1878,40.47],[1879,41.81],[1880,42.41],[1881,41.87],[1882,42.98],[1883,44.94],[1884,45],[1885,43.83],[1886,44.68],[1887,45.44],[1888,45.97],[1889,45.14],[1890,44.95],[1891,44.71],[1892,47.23],[1893,46.07],[1894,45.79],[1895,46.84],[1896,48.88],[1897,49.1],[1898,48.2],[1899,49.29],[1900,47.48],[1901,48.94],[1902,50.41],[1903,50.03],[1904,49.16],[1905,49.67],[1906,50.72],[1907,51.19],[1908,52.26],[1909,51.61],[1910,52.91],[1911,51.72],[1912,54.42],[1913,54.21],[1914,55.13],[1915,55.95],[1916,56.59],[1917,55.81],[1918,46.3],[1919,54.97],[1920,54.38],[1921,57.87],[1922,58.5],[1923,60.04],[1924,59.49],[1925,59.95],[1926,60.64],[1927,60.1],[1928,60.47],[1929,60.17],[1930,61.43],[1931,61.24],[1932,61.23],[1933,62.41],[1934,62.89],[1935,62.13],[1936,63.18],[1937,63.51],[1938,63.85],[1939,64.01],[1940,63.58],[1941,64.98],[1942,65.65],[1943,65.84],[1944,64.88],[1945,65.42],[1946,66.07],[1947,66.26],[1948,67.34],[1949,67.97],[1950,68.94],[1951,68.71],[1952,69.62],[1953,69.53],[1954,70],[1955,70.08],[1956,70.21],[1957,70.56],[1958,71.3],[1959,71.46],[1960,71.44],[1961,71.76],[1962,71.32],[1963,71.31],[1964,72.2],[1965,72.33],[1966,72.47],[1967,72.77],[1968,72.72],[1969,72.73],[1970,73.14],[1971,73.26],[1972,73.78],[1973,74.08],[1974,74.43],[1975,74.82],[1976,74.94],[1977,75.39],[1978,75.34],[1979,75.64],[1980,75.64],[1981,75.87],[1982,76.21],[1983,76.22],[1984,76.82],[1985,76.94],[1986,77.11],[1987,77.41],[1988,77.43],[1989,77.62],[1990,77.44],[1991,77.72],[1992,78.02],[1993,78.31],[1994,78.6],[1995,78.68],[1996,79.17],[1997,79.37],[1998,79.62],[1999,79.88],[2000,79.99],[2001,80.41],[2002,80.62],[2003,80.72],[2004,81.28],[2005,81.45],[2006,81.75],[2007,81.94],[2008,81.9],[2009,82.06]]},{"name":"Tajikistan","region":"Europe & Central Asia","income":[[1800,428.48],[1820,437.5],[1913,975.22],[1950,1910.98],[1973,4643.65],[1990,3377.86],[1991,3006.97],[1992,1992.23],[1993,1643.5],[1994,1273.6],[1995,1097.88],[1996,899.28],[1997,898.48],[1998,928.55],[1999,944.1],[2000,1001.5],[2001,1080.51],[2002,1158.35],[2003,1249.69],[2004,1353.05],[2005,1413],[2006,1502.86],[2007,1610.49],[2008,1727.33],[2009,1775.38]],"population":[[1800,466629],[1820,466629],[1950,1530047],[1951,1584833],[1952,1640949],[1953,1684446],[1954,1729862],[1955,1780850],[1956,1836703],[1957,1898639],[1958,1953527],[1959,2009483],[1960,2080556],[1961,2163433],[1962,2253472],[1963,2339558],[1964,2424081],[1965,2510619],[1966,2592754],[1967,2672279],[1968,2759277],[1969,2850066],[1970,2938516],[1971,3039443],[1972,3145141],[1973,3242778],[1974,3344985],[1975,3448869],[1976,3553782],[1977,3659375],[1978,3760973],[1979,3862932],[1980,3969126],[1981,4078516],[1982,4193811],[1983,4315817],[1984,4445727],[1985,4587499],[1986,4738036],[1987,4891199],[1988,5036494],[1989,5183469],[1990,5332472],[1991,5481045],[1992,5600694],[1993,5682454],[1994,5770963],[1995,5864473],[1996,5963936],[1997,6070759],[1998,6185515],[1999,6308673],[2000,6440732],[2001,6578681],[2002,6719567],[2003,6863752],[2004,7011556],[2005,7163506],[2006,7320815],[2007,7484274],[2008,7653394]],"lifeExpectancy":[[1950,52.31],[1951,52.52],[1952,52.94],[1953,53.35],[1954,53.77],[1955,54.18],[1956,54.59],[1957,55],[1958,55.4],[1959,55.81],[1960,56.23],[1961,56.64],[1962,57.06],[1963,57.48],[1964,57.9],[1965,58.31],[1966,58.72],[1967,59.11],[1968,59.48],[1969,59.83],[1970,60.16],[1971,60.46],[1972,60.73],[1973,60.98],[1974,61.21],[1975,61.43],[1976,61.63],[1977,61.82],[1978,62],[1979,62.18],[1980,62.36],[1981,62.56],[1982,62.78],[1983,62.99],[1984,63.2],[1985,63.37],[1986,63.46],[1987,63.45],[1988,63.34],[1989,63.15],[1990,62.9],[1991,62.64],[1992,62.42],[1993,62.28],[1994,62.24],[1995,62.3],[1996,62.46],[1997,62.68],[1998,62.94],[1999,63.22],[2000,63.54],[2001,63.89],[2002,64.28],[2003,64.71],[2004,65.16],[2005,65.61],[2006,66.04],[2007,66.43],[2008,66.78],[2009,67.07]]},{"name":"Turkey","region":"Europe & Central Asia","income":[[1800,869.92],[1820,901.21],[1821,905.71],[1822,910.24],[1823,914.79],[1824,919.36],[1825,923.95],[1826,928.56],[1827,933.2],[1828,937.86],[1829,942.55],[1830,947.26],[1831,951.99],[1832,956.75],[1833,961.52],[1834,966.33],[1835,971.16],[1836,976.01],[1837,980.88],[1838,985.78],[1839,990.71],[1840,995.66],[1841,1000.63],[1842,1005.63],[1843,1010.65],[1844,1015.7],[1845,1020.77],[1846,1025.87],[1847,1031],[1848,1036.15],[1849,1041.32],[1850,1046.53],[1851,1051.75],[1852,1057.01],[1853,1062.29],[1854,1067.59],[1855,1072.93],[1856,1078.29],[1857,1083.67],[1858,1089.09],[1859,1094.53],[1860,1100],[1861,1105.49],[1862,1111.01],[1863,1116.56],[1864,1122.14],[1865,1127.75],[1866,1133.38],[1867,1139.04],[1868,1144.73],[1869,1150.45],[1870,1156.2],[1871,1166.61],[1872,1177.11],[1873,1165.78],[1874,1154.56],[1875,1143.44],[1876,1132.44],[1877,1121.53],[1878,1110.74],[1879,1100.04],[1880,1109.95],[1881,1124.38],[1882,1139],[1883,1153.81],[1884,1168.81],[1885,1184.01],[1886,1199.41],[1887,1215],[1888,1230.8],[1889,1246.8],[1890,1263.01],[1891,1279.44],[1892,1296.07],[1893,1312.92],[1894,1329.99],[1895,1347.29],[1896,1364.81],[1897,1382.55],[1898,1400.53],[1899,1418.74],[1900,1437.19],[1901,1455.87],[1902,1474.8],[1903,1493.98],[1904,1513.4],[1905,1533.08],[1906,1553.01],[1907,1573.21],[1908,1593.66],[1909,1614.38],[1910,1635.38],[1911,1656.64],[1912,1678.18],[1913,1700],[1914,1606.12],[1915,1517.42],[1916,1433.62],[1917,1354.45],[1918,1279.65],[1919,1208.98],[1920,1142.22],[1921,1079.14],[1922,1019.54],[1923,963.24],[1924,1140.49],[1925,1257.11],[1926,1444.64],[1927,1299.53],[1928,1412.59],[1929,1606.65],[1930,1648.38],[1931,1712.44],[1932,1578.24],[1933,1751.5],[1934,1757.67],[1935,1759.11],[1936,2050.89],[1937,2075.18],[1938,2211.33],[1939,2318.35],[1940,2133.46],[1941,1913.46],[1942,1968.48],[1943,1761.75],[1944,1662.85],[1945,1418.05],[1946,1783.28],[1947,1833.7],[1948,2026.87],[1949,1873.5],[1950,1994.79],[1951,2185.5],[1952,2376.31],[1953,2563.65],[1954,2414.81],[1955,2527.02],[1956,2523.46],[1957,2630.53],[1958,2654.56],[1959,2680.81],[1960,2666.17],[1961,2625.62],[1962,2705.56],[1963,2880.23],[1964,2919.57],[1965,2918.4],[1966,3175.94],[1967,3234.14],[1968,3363.34],[1969,3449.46],[1970,3524.41],[1971,3744.17],[1972,3879.15],[1973,3938.36],[1974,4137.58],[1975,4381],[1976,4636.35],[1977,4714.84],[1978,4730.4],[1979,4577.55],[1980,4436.96],[1981,4502.89],[1982,4601.84],[1983,4645.47],[1984,4784.95],[1985,4901.1],[1986,5113.39],[1987,5424.52],[1988,5502.7],[1989,5438.47],[1990,5807.69],[1991,5733.32],[1992,5946.29],[1993,6290.02],[1994,5826.6],[1995,6125],[1996,6432.18],[1997,6791.42],[1998,6877],[1999,6442.52],[2000,6803.29],[2001,6192.75],[2002,6577.7],[2003,6856.14],[2004,7357.12],[2005,7786],[2006,8294.63],[2007,8585.97],[2008,8547.69],[2009,8040.78]],"population":[[1820,10074000],[1870,11793000],[1913,15000000],[1923,13877000],[1924,13968000],[1925,14059000],[1926,14151000],[1927,14250000],[1928,14476000],[1929,14705000],[1930,14928000],[1931,15174000],[1932,15414000],[1933,15658000],[1934,15906000],[1935,16158000],[1936,16434000],[1937,16725000],[1938,17016000],[1939,17517000],[1940,17821000],[1941,18011000],[1942,18203000],[1943,18396000],[1944,18592000],[1945,18790000],[1946,19235000],[1947,19690000],[1948,20156000],[1949,20634000],[1950,21121639],[1951,21669334],[1952,22235677],[1953,22830516],[1954,23463817],[1955,24144571],[1956,24877395],[1957,25670939],[1958,26505694],[1959,27355811],[1960,28217122],[1961,29029976],[1962,29788695],[1963,30509221],[1964,31227361],[1965,31950718],[1966,32677758],[1967,33411317],[1968,34164759],[1969,34952315],[1970,35758382],[1971,36579964],[1972,37492953],[1973,38503442],[1974,39512945],[1975,40529798],[1976,41485146],[1977,42404033],[1978,43316697],[1979,44222576],[1980,45120802],[1981,46222187],[1982,47328791],[1983,48440170],[1984,49554400],[1985,50669003],[1986,51780211],[1987,52881328],[1988,53966237],[1989,55031033],[1990,56084632],[1991,57135435],[1992,58179144],[1993,59212510],[1994,60220670],[1995,61188984],[1996,62127894],[1997,63047647],[1998,63945635],[1999,64819580],[2000,65666677],[2001,66493970],[2002,67308928],[2003,68109469],[2004,68893918],[2005,69660559],[2006,70413958],[2007,71158647],[2008,71892807]],"lifeExpectancy":[[1800,35],[1930,35],[1937,35.43],[1942,31.34],[1947,38.1],[1950,41.73],[1951,42.2],[1952,43.12],[1953,44.05],[1954,44.97],[1955,45.89],[1956,46.81],[1957,47.71],[1958,48.6],[1959,49.45],[1960,50.26],[1961,51.02],[1962,51.7],[1963,52.3],[1964,52.84],[1965,53.32],[1966,53.77],[1967,54.22],[1968,54.67],[1969,55.15],[1970,55.66],[1971,56.2],[1972,56.75],[1973,57.29],[1974,57.83],[1975,58.34],[1976,58.81],[1977,59.24],[1978,59.63],[1979,59.98],[1980,60.3],[1981,60.6],[1982,60.91],[1983,61.23],[1984,61.59],[1985,61.98],[1986,62.43],[1987,62.93],[1988,63.46],[1989,64.03],[1990,64.63],[1991,65.24],[1992,65.85],[1993,66.45],[1994,67.03],[1995,67.59],[1996,68.11],[1997,68.62],[1998,69.1],[1999,69.55],[2000,69.97],[2001,70.34],[2002,70.67],[2003,70.95],[2004,71.19],[2005,71.4],[2006,71.57],[2007,71.74],[2008,71.9],[2009,72.06]]},{"name":"Turkmenistan","region":"Europe & Central Asia","income":[[1800,513.35],[1820,524.16],[1913,1168.39],[1950,2289.5],[1973,6829.32],[1990,5132.08],[1991,4769.85],[1992,3961.89],[1993,3934.1],[1994,3184.62],[1995,2895.41],[1996,3028.61],[1997,2631.32],[1998,2764.27],[1999,3159.59],[2000,3289.74],[2001,3361.4],[2002,3359.35],[2003,3522.74],[2004,3967.58],[2005,4247],[2006,4656.65],[2007,5114.98],[2008,5563.05],[2009,5702.66]],"population":[[1800,367215],[1820,367215],[1950,1204075],[1951,1226498],[1952,1252749],[1953,1282640],[1954,1313402],[1955,1347774],[1956,1381525],[1957,1425659],[1958,1478072],[1959,1530083],[1960,1584820],[1961,1644416],[1962,1704534],[1963,1765175],[1964,1825383],[1965,1882148],[1966,1935923],[1967,1994131],[1968,2054487],[1969,2116408],[1970,2181272],[1971,2246710],[1972,2313102],[1973,2379578],[1974,2450654],[1975,2523906],[1976,2594288],[1977,2663744],[1978,2733933],[1979,2804142],[1980,2875133],[1981,2946676],[1982,3018436],[1983,3091431],[1984,3164611],[1985,3240472],[1986,3323673],[1987,3410704],[1988,3492186],[1989,3573704],[1990,3667588],[1991,3760644],[1992,3848424],[1993,3933744],[1994,4018832],[1995,4101998],[1996,4184336],[1997,4267070],[1998,4350224],[1999,4433925],[2000,4518268],[2001,4603244],[2002,4688963],[2003,4775544],[2004,4863169],[2005,4952081],[2006,5042920],[2007,5136262],[2008,5232077]],"lifeExpectancy":[[1950,50.5],[1951,50.71],[1952,51.13],[1953,51.55],[1954,51.97],[1955,52.39],[1956,52.81],[1957,53.22],[1958,53.63],[1959,54.05],[1960,54.47],[1961,54.89],[1962,55.31],[1963,55.74],[1964,56.16],[1965,56.58],[1966,56.99],[1967,57.38],[1968,57.76],[1969,58.11],[1970,58.43],[1971,58.73],[1972,58.99],[1973,59.23],[1974,59.45],[1975,59.66],[1976,59.89],[1977,60.12],[1978,60.38],[1979,60.66],[1980,60.96],[1981,61.27],[1982,61.57],[1983,61.87],[1984,62.14],[1985,62.37],[1986,62.55],[1987,62.67],[1988,62.73],[1989,62.76],[1990,62.76],[1991,62.75],[1992,62.78],[1993,62.83],[1994,62.94],[1995,63.08],[1996,63.25],[1997,63.44],[1998,63.61],[1999,63.78],[2000,63.92],[2001,64.03],[2002,64.13],[2003,64.21],[2004,64.28],[2005,64.37],[2006,64.49],[2007,64.63],[2008,64.83],[2009,65.06]]},{"name":"Ukraine","region":"Europe & Central Asia","income":[[1800,807.51],[1820,824.52],[1913,1837.91],[1950,3601.45],[1973,6636.82],[1990,8123.2],[1991,7400.99],[1992,6650.45],[1993,5704.11],[1994,4419.12],[1995,3909.54],[1996,3548.69],[1997,3472.48],[1998,3435.91],[1999,3460.32],[2000,3700.35],[2001,4082.19],[2002,4334.82],[2003,4781.15],[2004,5400.28],[2005,5583],[2006,6027.07],[2007,6541.78],[2008,6716.38],[2009,5730.86]],"population":[[1800,11215490],[1820,11215490],[1950,36774854],[1951,37435785],[1952,38006180],[1953,38541349],[1954,38993798],[1955,39368099],[1956,39940180],[1957,40655779],[1958,41359132],[1959,42006030],[1960,42644035],[1961,43195765],[1962,43697245],[1963,44255938],[1964,44785626],[1965,45234869],[1966,45673640],[1967,46111262],[1968,46510301],[1969,46871405],[1970,47235697],[1971,47637239],[1972,48026627],[1973,48367002],[1974,48676939],[1975,48973428],[1976,49233524],[1977,49453675],[1978,49642987],[1979,49835012],[1980,50046649],[1981,50235677],[1982,50397455],[1983,50573066],[1984,50769375],[1985,50944248],[1986,51095072],[1987,51218101],[1988,51422963],[1989,51501478],[1990,51622275],[1991,51730355],[1992,51869109],[1993,51887112],[1994,51637611],[1995,51247259],[1996,50812520],[1997,50369926],[1998,49938798],[1999,49487245],[2000,49007559],[2001,48510505],[2002,48058877],[2003,47668303],[2004,47309706],[2005,46996765],[2006,46710816],[2007,46435909],[2008,46170273]],"lifeExpectancy":[[1800,36.6],[1900,36.6],[1920,36.6],[1926,46.95],[1939,50],[1940,49.8],[1941,24.7],[1942,19.4],[1943,18.2],[1944,28.7],[1945,35.3],[1946,55.2],[1947,45.1],[1948,57.8],[1949,60.6],[1950,64.28],[1951,64.72],[1952,65.58],[1953,66.39],[1954,67.14],[1955,67.83],[1956,68.47],[1957,69.06],[1958,69.58],[1959,69.43],[1960,71.06],[1961,71.34],[1962,70.76],[1963,71.39],[1964,72.19],[1965,71.63],[1966,71.9],[1967,71.5],[1968,71.59],[1969,70.97],[1970,70.87],[1971,71.1],[1972,70.86],[1973,71.05],[1974,70.94],[1975,70.28],[1976,70.34],[1977,70.02],[1978,69.98],[1979,69.72],[1980,69.7],[1981,69.74],[1982,69.9],[1983,69.88],[1984,69.57],[1985,69.88],[1986,71.24],[1987,71.04],[1988,70.93],[1989,70.88],[1990,70.46],[1991,69.64],[1992,69],[1993,68.31],[1994,67.7],[1995,66.79],[1996,67.11],[1997,67.69],[1998,68.57],[1999,68.15],[2000,67.79],[2001,67.93],[2002,67.81],[2003,67.87],[2004,67.73],[2005,67.31],[2006,67.96],[2007,68.17],[2008,68.31],[2009,68.45]]},{"name":"United Kingdom","region":"Europe & Central Asia","income":[[1800,2716.87],[1801,2736.98],[1802,2740.53],[1803,2744.1],[1804,2747.66],[1805,2751.24],[1806,2754.81],[1807,2758.39],[1808,2761.98],[1809,2765.57],[1810,2769.16],[1811,2772.76],[1812,2776.37],[1813,2779.98],[1814,2783.59],[1815,2787.21],[1816,2790.83],[1817,2794.46],[1818,2798.1],[1819,2801.73],[1820,2805.38],[1821,2809.02],[1822,2812.67],[1823,2816.33],[1824,2819.99],[1825,2823.66],[1826,2827.33],[1827,2831],[1828,2834.68],[1829,2838.37],[1830,2842.06],[1831,2931.7],[1832,2862.16],[1833,2851.91],[1834,2926.94],[1835,3041.81],[1836,3111.03],[1837,3028.56],[1838,3150.67],[1839,3255.28],[1840,3119.72],[1841,3013.78],[1842,2908.86],[1843,2924.4],[1844,3060.08],[1845,3181.7],[1846,3351.5],[1847,3382.2],[1848,3460.12],[1849,3541.79],[1850,3523.8],[1851,3692.63],[1852,3723.87],[1853,3822.77],[1854,3879.19],[1855,3818.21],[1856,4039.63],[1857,4065.93],[1858,4029.36],[1859,4084.87],[1860,4128.82],[1861,4192.26],[1862,4171.61],[1863,4157.38],[1864,4221.29],[1865,4300.03],[1866,4316.17],[1867,4222.72],[1868,4304.55],[1869,4280.86],[1870,4490.23],[1871,4689.29],[1872,4671.41],[1873,4735.49],[1874,4766.1],[1875,4832.56],[1876,4827.62],[1877,4820.64],[1878,4788.69],[1879,4718.33],[1880,4893.99],[1881,5022.22],[1882,5127.23],[1883,5127.61],[1884,5097.13],[1885,5029.61],[1886,5066.69],[1887,5225.9],[1888,5417.24],[1889,5663.07],[1890,5641.99],[1891,5594.67],[1892,5413.33],[1893,5363.26],[1894,5670.28],[1895,5795.27],[1896,5979.45],[1897,6000.48],[1898,6231.6],[1899,6427.55],[1900,6321.8],[1901,6263.51],[1902,6368.9],[1903,6248.33],[1904,6231.91],[1905,6362.14],[1906,6517.81],[1907,6584.65],[1908,6261.81],[1909,6348.13],[1910,6489.23],[1911,6627.33],[1912,6701.7],[1913,6925.2],[1914,6933.69],[1915,7442.73],[1916,7578],[1917,7629.56],[1918,7683.46],[1919,6854.63],[1920,6400.75],[1921,6247.68],[1922,6526.04],[1923,6698.84],[1924,6925.75],[1925,7240.38],[1926,6947.11],[1927,7480.27],[1928,7539.42],[1929,7745.39],[1930,7657.49],[1931,7231.83],[1932,7245.67],[1933,7427.52],[1934,7892.03],[1935,8161.54],[1936,8493.92],[1937,8750.7],[1938,8819.43],[1939,8813.73],[1940,9649.17],[1941,10529.74],[1942,10750.98],[1943,10898.52],[1944,10422.38],[1945,9930.83],[1946,9493.42],[1947,9295.07],[1948,9493.84],[1949,9789.47],[1950,9766.5],[1951,10025.45],[1952,9979.51],[1953,10338.51],[1954,10723.3],[1955,11073.65],[1956,11158.95],[1957,11283.18],[1958,11211.11],[1959,11596.73],[1960,12167.33],[1961,12464.91],[1962,12477.18],[1963,12876.6],[1964,13465.99],[1965,13724.35],[1966,13912.63],[1967,14142.85],[1968,14651.01],[1969,14850.49],[1970,15154.18],[1971,15399.08],[1972,15895.12],[1973,16924.43],[1974,16690.27],[1975,16673.64],[1976,17050.63],[1977,17428.75],[1978,18053.95],[1979,18531.69],[1980,18199.83],[1981,17940.78],[1982,18232.42],[1983,18865.5],[1984,19309.67],[1985,19935.24],[1986,20747.69],[1987,21664.79],[1988,22673.28],[1989,23100.74],[1990,23123.53],[1991,22739.73],[1992,22705.09],[1993,23170.28],[1994,24118.67],[1995,24716.01],[1996,25328.77],[1997,26074.53],[1998,26773.33],[1999,27467.51],[2000,28644.71],[2001,28978.41],[2002,29479],[2003,30204.15],[2004,31097.52],[2005,31580],[2006,32293.8],[2007,32909.5],[2008,32875.34],[2009,31042.47]],"population":[[1820,16186397],[1821,16427955],[1822,16661282],[1823,16897898],[1824,17139513],[1825,17381418],[1826,17629610],[1827,17858803],[1828,18093284],[1829,18329053],[1830,18569823],[1831,18811881],[1832,19028016],[1833,19246151],[1834,19468285],[1835,19691420],[1836,19918844],[1837,20136267],[1838,20354979],[1839,20578690],[1840,20804402],[1841,21027114],[1842,21284460],[1843,21504941],[1844,21751903],[1845,21994095],[1846,22231076],[1847,22279863],[1848,22246880],[1849,22266109],[1850,22287069],[1851,22310067],[1852,22567009],[1853,22837200],[1854,23117738],[1855,23417123],[1856,23728007],[1857,23974430],[1858,24230353],[1859,24488987],[1860,24746160],[1861,25009641],[1862,25291179],[1863,25561448],[1864,25828236],[1865,26107967],[1866,26385197],[1867,26667813],[1868,26955755],[1869,27249851],[1870,27544197],[1871,27844139],[1872,28050928],[1873,28385947],[1874,28730581],[1875,29082812],[1876,29444523],[1877,29814831],[1878,30173677],[1879,30557062],[1880,30920888],[1881,31273446],[1882,31576465],[1883,31875253],[1884,32184118],[1885,32500733],[1886,32822214],[1887,33142079],[1888,33464925],[1889,33793233],[1890,34127982],[1891,34472021],[1892,34836751],[1893,35211963],[1894,35593770],[1895,35976405],[1896,36367212],[1897,36763751],[1898,37166289],[1899,37569674],[1900,37975154],[1901,38373808],[1902,38737346],[1903,39102443],[1904,39474558],[1905,39850962],[1906,40231673],[1907,40614789],[1908,41003923],[1909,41398500],[1910,41795923],[1911,42150769],[1912,42318019],[1913,42556673],[1914,42965211],[1915,43296057],[1916,43473615],[1917,43573615],[1918,43529634],[1919,43437404],[1920,43718000],[1921,44072000],[1922,44372000],[1923,44596000],[1924,44915000],[1925,45059000],[1926,45232000],[1927,45389000],[1928,45578000],[1929,45672000],[1930,45866000],[1931,46074000],[1932,46335000],[1933,46520000],[1934,46666000],[1935,46868000],[1936,47081000],[1937,47289000],[1938,47494000],[1939,47991000],[1940,48226000],[1941,48216000],[1942,48400000],[1943,48789000],[1944,49016000],[1945,49182000],[1946,49217000],[1947,49519000],[1948,50014000],[1949,50312000],[1950,50127000],[1951,50290000],[1952,50430000],[1953,50593000],[1954,50765000],[1955,50946000],[1956,51184000],[1957,51430000],[1958,51652000],[1959,51956000],[1960,52372000],[1961,52807000],[1962,53292000],[1963,53625000],[1964,53991000],[1965,54350000],[1966,54643000],[1967,54959000],[1968,55214000],[1969,55461000],[1970,55632000],[1971,55907000],[1972,56079000],[1973,56210000],[1974,56224000],[1975,56215000],[1976,56206000],[1977,56179000],[1978,56167000],[1979,56228000],[1980,56314000],[1981,56382597],[1982,56339704],[1983,56382623],[1984,56462228],[1985,56620240],[1986,56796260],[1987,56981620],[1988,57159603],[1989,57324472],[1990,57493307],[1991,57665646],[1992,57866349],[1993,58026920],[1994,58212518],[1995,58426014],[1996,58618663],[1997,58808266],[1998,59035652],[1999,59293320],[2000,59522468],[2001,59723243],[2002,59912431],[2003,60094648],[2004,60270708],[2005,60441457],[2006,60609153],[2007,60776238],[2008,60943912]],"lifeExpectancy":[[1800,40.02],[1803,40.02],[1808,40.58],[1813,41.25],[1818,40.84],[1823,40.47],[1828,41.43],[1833,40.89],[1838,40.56],[1841,41.7],[1842,41.35],[1843,41.86],[1844,41.55],[1845,42.56],[1846,39.96],[1847,38.33],[1848,39.5],[1849,37.38],[1850,42.8],[1851,41.42],[1852,40.93],[1853,40.56],[1854,39.34],[1855,41.03],[1856,43.25],[1857,41.88],[1858,40.04],[1859,40.84],[1860,43.01],[1861,42.38],[1862,42.52],[1863,40.4],[1864,39.97],[1865,40.65],[1866,40.41],[1867,42.62],[1868,42],[1869,41.67],[1870,40.95],[1871,41.31],[1872,42.9],[1873,43.78],[1874,42.13],[1875,41.85],[1876,43.69],[1877,44.7],[1878,43.01],[1879,44.27],[1880,43.78],[1881,46.11],[1882,44.87],[1883,45.09],[1884,44.79],[1885,45.76],[1886,45.33],[1887,45.65],[1888,46.81],[1889,46.34],[1890,44.75],[1891,44.29],[1892,45.51],[1893,44.87],[1894,48.34],[1895,45.73],[1896,47.41],[1897,47.23],[1898,46.98],[1899,46.13],[1900,46.32],[1901,47.91],[1902,49.08],[1903,50.43],[1904,49.11],[1905,50.86],[1906,50.58],[1907,51.44],[1908,51.84],[1909,52.52],[1910,53.99],[1911,51.54],[1912,54.55],[1913,53.83],[1914,51.99],[1915,48.2],[1916,47.73],[1917,45.57],[1918,40.43],[1919,54.12],[1920,56.6],[1921,58.35],[1922,57.13],[1923,59.4],[1924,58.17],[1925,58.51],[1926,59.66],[1927,59.04],[1928,59.99],[1929,57.71],[1930,60.89],[1931,60.11],[1932,60.63],[1933,60.67],[1934,61.4],[1935,62.05],[1936,61.85],[1937,61.88],[1938,63.3],[1939,63.69],[1940,60.97],[1941,61.37],[1942,63.99],[1943,64.01],[1944,64.85],[1945,65.85],[1946,66.47],[1947,66.44],[1948,68.5],[1949,68.19],[1950,68.7],[1951,68.3],[1952,69.6],[1953,69.87],[1954,70.24],[1955,70.21],[1956,70.48],[1957,70.6],[1958,70.78],[1959,70.88],[1960,71.1],[1961,70.85],[1962,70.92],[1963,70.83],[1964,71.62],[1965,71.61],[1966,71.53],[1967,72.16],[1968,71.79],[1969,71.75],[1970,72],[1971,72.32],[1972,72.1],[1973,72.31],[1974,72.51],[1975,72.78],[1976,72.76],[1977,73.25],[1978,73.18],[1979,73.29],[1980,73.72],[1981,74.06],[1982,74.19],[1983,74.44],[1984,74.83],[1985,74.68],[1986,74.95],[1987,75.3],[1988,75.41],[1989,75.55],[1990,75.89],[1991,76.06],[1992,76.46],[1993,76.32],[1994,76.88],[1995,76.78],[1996,77.05],[1997,77.31],[1998,77.45],[1999,77.56],[2000,78.04],[2001,78.31],[2002,78.43],[2003,78.52],[2004,79.1],[2005,79.3],[2006,79.53],[2007,79.34],[2008,79.5],[2009,79.64]]},{"name":"Uzbekistan","region":"Europe & Central Asia","income":[[1800,346.43],[1820,353.72],[1913,788.48],[1950,1545.05],[1973,2395.67],[1990,1993.43],[1991,1935.31],[1992,1682.5],[1993,1611.38],[1994,1499.51],[1995,1460.98],[1996,1461.98],[1997,1513.43],[1998,1554.93],[1999,1597.63],[2000,1635.22],[2001,1681.66],[2002,1724.3],[2003,1771.19],[2004,1876.6],[2005,1975],[2006,2091.38],[2007,2255.67],[2008,2424.23],[2009,2586.96]],"population":[[1800,1919159],[1820,1919159],[1950,6292797],[1951,6489850],[1952,6681196],[1953,6886387],[1954,7061494],[1955,7232067],[1956,7440744],[1957,7694366],[1958,7951857],[1959,8223106],[1960,8531032],[1961,8867714],[1962,9209650],[1963,9546588],[1964,9877755],[1965,10205805],[1966,10529599],[1967,10864030],[1968,11232040],[1969,11591490],[1970,11940155],[1971,12334057],[1972,12741848],[1973,13147733],[1974,13568700],[1975,13987696],[1976,14404009],[1977,14808950],[1978,15207113],[1979,15605490],[1980,16000074],[1981,16413399],[1982,16849973],[1983,17298283],[1984,17764159],[1985,18258445],[1986,18769226],[1987,19279732],[1988,19694266],[1989,20112207],[1990,20624073],[1991,21137143],[1992,21614451],[1993,22049313],[1994,22462266],[1995,22847085],[1996,23219707],[1997,23596577],[1998,23977448],[1999,24363320],[2000,24755519],[2001,25155064],[2002,25563441],[2003,25981647],[2004,26410416],[2005,26851195],[2006,27307134],[2007,27780059],[2008,28268440]],"lifeExpectancy":[[1950,54.96],[1951,55.17],[1952,55.59],[1953,56.01],[1954,56.43],[1955,56.85],[1956,57.27],[1957,57.68],[1958,58.1],[1959,58.51],[1960,58.93],[1961,59.35],[1962,59.78],[1963,60.21],[1964,60.63],[1965,61.06],[1966,61.47],[1967,61.86],[1968,62.24],[1969,62.6],[1970,62.92],[1971,63.22],[1972,63.48],[1973,63.72],[1974,63.94],[1975,64.16],[1976,64.38],[1977,64.62],[1978,64.87],[1979,65.15],[1980,65.45],[1981,65.77],[1982,66.1],[1983,66.42],[1984,66.72],[1985,66.96],[1986,67.11],[1987,67.17],[1988,67.13],[1989,67],[1990,66.82],[1991,66.63],[1992,66.47],[1993,66.37],[1994,66.35],[1995,66.4],[1996,66.51],[1997,66.64],[1998,66.77],[1999,66.89],[2000,66.99],[2001,67.07],[2002,67.15],[2003,67.22],[2004,67.3],[2005,67.39],[2006,67.5],[2007,67.63],[2008,67.79],[2009,67.97]]},{"name":"Australia","region":"East Asia & Pacific","income":[[1800,671.48],[1820,701.03],[1821,707.39],[1822,728.14],[1823,752.83],[1824,794.94],[1825,833.2],[1826,848.98],[1827,874.78],[1828,896.76],[1829,946.58],[1830,1148.37],[1831,1186.8],[1832,1213.29],[1833,1217.71],[1834,1280.8],[1835,1550.03],[1836,1523.08],[1837,1596.55],[1838,1576.69],[1839,1470.98],[1840,1859.37],[1841,1586.06],[1842,1446.58],[1843,1677.46],[1844,1906.61],[1845,1961.67],[1846,2168.18],[1847,2508.31],[1848,2870.4],[1849,2836.11],[1850,2673.32],[1851,3172.92],[1852,3721.01],[1853,4073.94],[1854,3567.47],[1855,3385.66],[1856,4131.49],[1857,3645.86],[1858,3109.08],[1859,4013.76],[1860,3917.42],[1861,3858.21],[1862,3707.76],[1863,3695.5],[1864,3919.09],[1865,3738.03],[1866,3848.34],[1867,4207.41],[1868,4272.09],[1869,4187.16],[1870,4430.13],[1871,4464.33],[1872,4809.35],[1873,5175.05],[1874,5190.17],[1875,5600.81],[1876,5423.58],[1877,5462.6],[1878,5789.2],[1879,5691.19],[1880,5800.02],[1881,6029.34],[1882,5498.49],[1883,6057.02],[1884,5824.66],[1885,5985.27],[1886,5859.64],[1887,6268.79],[1888,6095.56],[1889,6424.58],[1890,6033.2],[1891,6315.77],[1892,5407.56],[1893,5018.36],[1894,5096.43],[1895,4719.83],[1896,4987.33],[1897,4628.72],[1898,5266.6],[1899,5196.68],[1900,5431.85],[1901,5195.5],[1902,5173.65],[1903,5516.93],[1904,5812.66],[1905,5795.39],[1906,6100.47],[1907,6248.06],[1908,6351.85],[1909,6740.94],[1910,7051.19],[1911,6907.66],[1912,6900.48],[1913,6979.44],[1914,6803.41],[1915,6627.25],[1916,6602.49],[1917,6484.48],[1918,6227.92],[1919,6382.25],[1920,6449.93],[1921,6646.5],[1922,6853.4],[1923,7027.1],[1924,7332.16],[1925,7515.77],[1926,7542.12],[1927,7503.19],[1928,7378.65],[1929,7123.12],[1930,6372.4],[1931,5892.35],[1932,6176.78],[1933,6553.91],[1934,6848.22],[1935,7197.03],[1936,7465.37],[1937,7776.39],[1938,7966.79],[1939,7911.61],[1940,8345.5],[1941,9187.46],[1942,10158.18],[1943,10425.32],[1944,9964.06],[1945,9361.6],[1946,8925.84],[1947,9019.86],[1948,9430.04],[1949,9794.56],[1950,10031.12],[1951,10160.74],[1952,10039.6],[1953,10157.91],[1954,10544.09],[1955,10864.62],[1956,10974.13],[1957,10949.65],[1958,11240.96],[1959,11678.07],[1960,11897.96],[1961,11711.5],[1962,12217.23],[1963,12722.22],[1964,13329.9],[1965,13739.93],[1966,13860.96],[1967,14526.12],[1968,15088.56],[1969,15647.11],[1970,16273.14],[1971,16633.13],[1972,16788.63],[1973,17429.72],[1974,17574.58],[1975,17824.57],[1976,18351.07],[1977,18334.2],[1978,18635.04],[1979,19380.64],[1980,19505.55],[1981,19841.88],[1982,19477.01],[1983,19214.56],[1984,20295.25],[1985,21040.49],[1986,21168.81],[1987,21888.89],[1988,22508.19],[1989,23133.98],[1990,23151.89],[1991,22893.86],[1992,23424.77],[1993,24053.1],[1994,24780.17],[1995,25518.72],[1996,26151.13],[1997,26997.94],[1998,28169.15],[1999,28983.27],[2000,29241.51],[2001,30043.24],[2002,30687.75],[2003,31634.24],[2004,32098.51],[2005,32798],[2006,33119],[2007,34084.07],[2008,34239.63],[2009,34327.26]],"population":[[1820,334000],[1821,331000],[1822,329000],[1823,329000],[1824,332000],[1825,333000],[1826,330000],[1827,328000],[1828,326000],[1829,326000],[1830,330000],[1831,333000],[1832,338000],[1833,349000],[1834,354000],[1835,358000],[1836,367000],[1837,373000],[1838,388000],[1839,403000],[1840,420000],[1841,448000],[1842,465000],[1843,472000],[1844,482000],[1845,494000],[1846,505000],[1847,518000],[1848,538000],[1849,576000],[1850,605000],[1851,636000],[1852,710000],[1853,795000],[1854,887000],[1855,983000],[1856,1065000],[1857,1156000],[1858,1235000],[1859,1279000],[1860,1326000],[1861,1346000],[1862,1382000],[1863,1432000],[1864,1495000],[1865,1558000],[1866,1609000],[1867,1647000],[1868,1700000],[1869,1750000],[1870,1775000],[1871,1675000],[1872,1722000],[1873,1769000],[1874,1822000],[1875,1874000],[1876,1929000],[1877,1995000],[1878,2062000],[1879,2127000],[1880,2197000],[1881,2269000],[1882,2348000],[1883,2447000],[1884,2556000],[1885,2650000],[1886,2741000],[1887,2835000],[1888,2932000],[1889,3022000],[1890,3107000],[1891,3196000],[1892,3274000],[1893,3334000],[1894,3395000],[1895,3460000],[1896,3523000],[1897,3586000],[1898,3642000],[1899,3691000],[1900,3741000],[1901,3795000],[1902,3850000],[1903,3896000],[1904,3946000],[1905,4004000],[1906,4062000],[1907,4127000],[1908,4197000],[1909,4278000],[1910,4375000],[1911,4500000],[1912,4661000],[1913,4821000],[1914,4933000],[1915,4971000],[1916,4955000],[1917,4950000],[1918,5032000],[1919,5193000],[1920,5358000],[1921,5461000],[1922,5574000],[1923,5697000],[1924,5819000],[1925,5943000],[1926,6064000],[1927,6188000],[1928,6304000],[1929,6396000],[1930,6469000],[1931,6527000],[1932,6579000],[1933,6631000],[1934,6682000],[1935,6732000],[1936,6783000],[1937,6841000],[1938,6904000],[1939,6971000],[1940,7042000],[1941,7111000],[1942,7173000],[1943,7236000],[1944,7309000],[1945,7389000],[1946,7474000],[1947,7578000],[1948,7715000],[1949,7919000],[1950,8267337],[1951,8510600],[1952,8691212],[1953,8857924],[1954,9064017],[1955,9277087],[1956,9500606],[1957,9712569],[1958,9915267],[1959,10131729],[1960,10361273],[1961,10598814],[1962,10794968],[1963,11001483],[1964,11218304],[1965,11439384],[1966,11655083],[1967,11872264],[1968,12101660],[1969,12379384],[1970,12660160],[1971,12937200],[1972,13177000],[1973,13380400],[1974,13599100],[1975,13771400],[1976,13915500],[1977,14074100],[1978,14248600],[1979,14421900],[1980,14615900],[1981,14923260],[1982,15184200],[1983,15393500],[1984,15579400],[1985,15788300],[1986,16018350],[1987,16257249],[1988,16520206],[1989,16780235],[1990,17022133],[1991,17257526],[1992,17481977],[1993,17688687],[1994,17892557],[1995,18116171],[1996,18348078],[1997,18565243],[1998,18768789],[1999,18968247],[2000,19164620],[2001,19357594],[2002,19546792],[2003,19731984],[2004,19913144],[2005,20090437],[2006,20264082],[2007,20434176],[2008,20600856]],"lifeExpectancy":[[1800,34.05],[1870,34.05],[1921,61.04],[1922,62.89],[1923,61.73],[1924,62.53],[1925,63.22],[1926,62.94],[1927,62.91],[1928,62.96],[1929,63.15],[1930,64.96],[1931,65.39],[1932,65.69],[1933,65.52],[1934,64.88],[1935,65.15],[1936,65.27],[1937,65.83],[1938,65.87],[1939,65.82],[1940,66.26],[1941,66.14],[1942,65.88],[1943,66.4],[1944,68.03],[1945,68.46],[1946,67.98],[1947,68.59],[1948,68.51],[1949,69.13],[1950,69.02],[1951,68.72],[1952,69.12],[1953,69.7],[1954,69.85],[1955,70.17],[1956,70.05],[1957,70.33],[1958,70.88],[1959,70.45],[1960,70.89],[1961,71.16],[1962,70.93],[1963,70.99],[1964,70.65],[1965,70.98],[1966,70.82],[1967,71.1],[1968,70.73],[1969,71.14],[1970,70.81],[1971,71.41],[1972,71.93],[1973,72.14],[1974,71.89],[1975,72.84],[1976,72.88],[1977,73.49],[1978,73.88],[1979,74.44],[1980,74.6],[1981,74.96],[1982,74.74],[1983,75.55],[1984,76.02],[1985,75.45],[1986,76.13],[1987,76.32],[1988,76.35],[1989,76.45],[1990,77.05],[1991,77.54],[1992,77.54],[1993,78.07],[1994,78.07],[1995,78.45],[1996,78.53],[1997,78.79],[1998,79.28],[1999,79.53],[2000,79.93],[2001,80.27],[2002,80.29],[2003,80.69],[2004,81.04],[2005,81.44],[2006,81.63],[2007,81.67],[2008,81.57],[2009,81.71]]},{"name":"Brunei","region":"East Asia & Pacific","income":[[1800,1011.68],[1820,1011.68],[1913,1367.71],[1929,1440.53],[1950,35554.36],[1970,48558.11],[1971,51244.66],[1972,54117.16],[1973,56943.9],[1974,61078.94],[1975,58861.78],[1976,67973.72],[1977,72555.23],[1978,74695.43],[1979,88381.11],[1980,79534.57],[1981,61817.06],[1982,62407.21],[1983,60976.16],[1984,59654.85],[1985,57144.31],[1986,54048.44],[1987,53585.9],[1988,52649.8],[1989,50628.31],[1990,50563.57],[1991,51141.01],[1992,49174.41],[1993,48067.97],[1994,47618.1],[1995,47786.78],[1996,48234.28],[1997,48967.31],[1998,47521.2],[1999,47811.18],[2000,48020.35],[2001,48192.76],[2002,48906.35],[2003,49184.09],[2004,48333.67],[2005,47465],[2006,48580.7],[2007,47701.82],[2008,45859.75],[2009,44738.99]],"population":[[1800,2128],[1820,2128],[1870,5931],[1911,22000],[1921,26000],[1931,30000],[1947,41000],[1950,44983],[1951,47632],[1952,50634],[1953,53678],[1954,57070],[1955,60983],[1956,65347],[1957,69342],[1958,73521],[1959,78540],[1960,83037],[1961,87067],[1962,90822],[1963,94351],[1964,98171],[1965,102414],[1966,106629],[1967,110971],[1968,115921],[1969,121434],[1970,127554],[1971,136621],[1972,141500],[1973,145170],[1974,151000],[1975,156223],[1976,161626],[1977,167216],[1978,173000],[1979,178899],[1980,185220],[1981,192831],[1982,199468],[1983,206154],[1984,213018],[1985,220215],[1986,227691],[1987,235357],[1988,242997],[1989,250553],[1990,258172],[1991,265877],[1992,273701],[1993,281594],[1994,289516],[1995,297508],[1996,305565],[1997,313563],[1998,321371],[1999,328979],[2000,336376],[2001,343653],[2002,350898],[2003,358098],[2004,365251],[2005,372361],[2006,379444],[2007,386511],[2008,393551]],"lifeExpectancy":[[1800,29.2],[1911,29.2],[1950,60],[1951,60.08],[1952,60.26],[1953,60.44],[1954,60.65],[1955,60.86],[1956,61.1],[1957,61.34],[1958,61.61],[1959,61.88],[1960,62.16],[1961,62.45],[1962,62.76],[1963,63.08],[1964,63.43],[1965,63.81],[1966,64.27],[1967,64.79],[1968,65.38],[1969,66.03],[1970,66.69],[1971,67.32],[1972,67.89],[1973,68.38],[1974,68.78],[1975,69.11],[1976,69.39],[1977,69.66],[1978,69.95],[1979,70.27],[1980,70.63],[1981,71.01],[1982,71.4],[1983,71.77],[1984,72.13],[1985,72.47],[1986,72.78],[1987,73.07],[1988,73.34],[1989,73.6],[1990,73.85],[1991,74.09],[1992,74.33],[1993,74.55],[1994,74.77],[1995,74.99],[1996,75.19],[1997,75.39],[1998,75.58],[1999,75.76],[2000,75.93],[2001,76.09],[2002,76.26],[2003,76.42],[2004,76.58],[2005,76.74],[2006,76.9],[2007,77.05],[2008,77.19],[2009,77.32]]},{"name":"Cambodia","region":"East Asia & Pacific","income":[[1800,809.23],[1820,809.23],[1950,352.03],[1951,355.21],[1952,368.47],[1953,363.27],[1954,395.75],[1955,378.15],[1956,417.47],[1957,434.04],[1958,443.98],[1959,474.59],[1960,489.73],[1961,472.2],[1962,496.91],[1963,519.81],[1964,492.19],[1965,502.02],[1966,511.05],[1967,523.43],[1968,533.17],[1969,527.47],[1970,472.62],[1971,449.47],[1972,421.62],[1973,567.93],[1974,480.68],[1975,423.41],[1976,470.18],[1977,524.97],[1978,593.45],[1979,608.24],[1980,606.6],[1981,597.38],[1982,624.48],[1983,648.64],[1984,677.86],[1985,706.88],[1986,724.21],[1987,683.9],[1988,675.38],[1989,666.82],[1990,642.9],[1991,666.82],[1992,682.3],[1993,677.3],[1994,680.57],[1995,708.19],[1996,730.42],[1997,734.29],[1998,729.51],[1999,793.34],[2000,833.36],[2001,864.97],[2002,896.23],[2003,926.11],[2004,1305.44],[2005,1453],[2006,1571.44],[2007,1830.56],[2008,1914.75],[2009,1830.97]],"population":[[1800,2090000],[1820,2090000],[1870,2340000],[1913,3070000],[1950,4471170],[1951,4581150],[1952,4693836],[1953,4809293],[1954,4927590],[1955,5048797],[1956,5183860],[1957,5322536],[1958,5464922],[1959,5611117],[1960,5761223],[1961,5919487],[1962,6083619],[1963,6253991],[1964,6426908],[1965,6602232],[1966,6779979],[1967,6960067],[1968,7142547],[1969,7327791],[1970,7394644],[1971,7387057],[1972,7450606],[1973,7533628],[1974,7607940],[1975,7489990],[1976,7223359],[1977,6978607],[1978,6749278],[1979,6716111],[1980,6869171],[1981,7059498],[1982,7272485],[1983,7499259],[1984,7656585],[1985,7805090],[1986,8066070],[1987,8371791],[1988,8689250],[1989,9017752],[1990,9355479],[1991,9704523],[1992,10150094],[1993,10643513],[1994,11008712],[1995,11282730],[1996,11542269],[1997,11782962],[1998,12012231],[1999,12239016],[2000,12466262],[2001,12695476],[2002,12926707],[2003,13160169],[2004,13396361],[2005,13636398],[2006,13881427],[2007,14131858],[2008,14387642]],"lifeExpectancy":[[1800,35],[1945,35],[1950,38.59],[1951,38.8],[1952,39.22],[1953,39.63],[1954,40.03],[1955,40.41],[1956,40.79],[1957,41.17],[1958,41.55],[1959,41.96],[1960,42.4],[1961,42.9],[1962,43.43],[1963,43.99],[1964,44.53],[1965,44.98],[1966,45.26],[1967,45.31],[1968,45.08],[1969,44.56],[1970,43.63],[1971,42.17],[1972,40.27],[1973,38.09],[1974,35.84],[1975,33.96],[1976,32.93],[1977,33.02],[1978,34.32],[1979,36.75],[1980,40.02],[1981,43.67],[1982,47.16],[1983,50.08],[1984,52.23],[1985,53.57],[1986,54.2],[1987,54.47],[1988,54.62],[1989,54.77],[1990,54.96],[1991,55.21],[1992,55.45],[1993,55.65],[1994,55.82],[1995,55.99],[1996,56.15],[1997,56.33],[1998,56.54],[1999,56.78],[2000,57.08],[2001,57.44],[2002,57.87],[2003,58.35],[2004,58.88],[2005,59.44],[2006,60.01],[2007,60.58],[2008,61.14],[2009,61.67]]},{"name":"China","region":"East Asia & Pacific","income":[[1800,985.89],[1820,863.05],[1821,859.02],[1822,855.01],[1823,851.02],[1824,847.04],[1825,843.09],[1826,839.15],[1827,835.23],[1828,831.33],[1829,827.45],[1830,823.59],[1831,819.74],[1832,815.92],[1833,812.11],[1834,808.32],[1835,804.54],[1836,800.78],[1837,797.05],[1838,793.32],[1839,789.62],[1840,785.93],[1841,782.26],[1842,778.61],[1843,774.98],[1844,771.36],[1845,767.76],[1846,764.17],[1847,760.6],[1848,757.05],[1849,753.52],[1850,750],[1851,675.4],[1852,608.22],[1853,547.72],[1854,493.24],[1855,444.18],[1856,400],[1857,420.8],[1858,442.67],[1859,465.69],[1860,489.9],[1861,515.37],[1862,542.16],[1863,570.35],[1864,600],[1865,626.77],[1866,654.74],[1867,683.95],[1868,714.47],[1869,746.35],[1870,779.65],[1871,780.42],[1872,781.18],[1873,781.94],[1874,782.71],[1875,783.47],[1876,784.24],[1877,785.01],[1878,785.78],[1879,786.55],[1880,787.32],[1881,788.09],[1882,788.86],[1883,789.63],[1884,790.4],[1885,791.18],[1886,791.95],[1887,792.73],[1888,793.5],[1889,794.28],[1890,795.06],[1891,795.78],[1892,796.5],[1893,797.22],[1894,797.94],[1895,798.66],[1896,799.38],[1897,800.11],[1898,800.83],[1899,801.56],[1900,802.28],[1901,803.06],[1902,803.84],[1903,804.62],[1904,805.4],[1905,806.18],[1906,806.96],[1907,807.74],[1908,808.53],[1909,809.31],[1910,810.09],[1911,810.88],[1912,811.66],[1913,812.45],[1914,823.4],[1915,834.5],[1916,845.75],[1917,857.15],[1918,868.7],[1919,880.41],[1920,892.28],[1921,904.31],[1922,916.5],[1923,928.85],[1924,941.37],[1925,954.06],[1926,966.92],[1927,979.96],[1928,993.16],[1929,1006.55],[1930,1015.72],[1931,1018.48],[1932,1043.08],[1933,1035.38],[1934,940.18],[1935,1010.72],[1936,1068.93],[1937,1037.42],[1938,1006.21],[1939,930.68],[1940,860.82],[1941,796.21],[1942,736.44],[1943,681.16],[1944,630.03],[1945,582.74],[1946,539],[1947,498.54],[1948,461.12],[1949,426.5],[1950,394.49],[1951,432.35],[1952,473.38],[1953,486.2],[1954,490.39],[1955,507.64],[1956,542.5],[1957,560],[1958,607.89],[1959,604.38],[1960,583.02],[1961,486.83],[1962,484.67],[1963,519.76],[1964,567.77],[1965,617.76],[1966,657.14],[1967,622.45],[1968,594.27],[1969,627.78],[1970,685.35],[1971,699.98],[1972,702.94],[1973,738.22],[1974,735.36],[1975,767.09],[1976,750.79],[1977,786.85],[1978,861.1],[1979,915.22],[1980,934.27],[1981,977.54],[1982,1044.34],[1983,1107.46],[1984,1229.08],[1985,1337.64],[1986,1406.19],[1987,1529.5],[1988,1611.38],[1989,1615.03],[1990,1647.38],[1991,1732.13],[1992,1877.41],[1993,2035.59],[1994,2214.2],[1995,2521.34],[1996,2546.44],[1997,2653.3],[1998,2635.55],[1999,2784.39],[2000,3012.12],[2001,3309.8],[2002,3695.65],[2003,4228.98],[2004,4551.13],[2005,4909.2],[2006,5450.12],[2007,6127.78],[2008,6679.2],[2009,7226.07]],"population":[[1820,381000000],[1821,383711494],[1822,386442286],[1823,389192512],[1824,391962310],[1825,394751821],[1826,397561184],[1827,400390540],[1828,403240033],[1829,406109805],[1830,409000000],[1831,409299014],[1832,409598247],[1833,409897699],[1834,410197370],[1835,410497259],[1836,410797368],[1837,411097697],[1838,411398245],[1839,411699012],[1840,412000000],[1841,412000000],[1842,412000000],[1843,412000000],[1844,412000000],[1845,412000000],[1846,412000000],[1847,412000000],[1848,412000000],[1849,412000000],[1850,412000000],[1851,408358528],[1852,404749241],[1853,401171855],[1854,397626087],[1855,394111659],[1856,390628294],[1857,387175716],[1858,383753654],[1859,380361838],[1860,377000000],[1861,375055482],[1862,373120994],[1863,371196483],[1864,369281899],[1865,367377190],[1866,365482306],[1867,363597195],[1868,361721807],[1869,359856092],[1870,358000000],[1871,358988000],[1872,359978000],[1873,360971000],[1874,361967000],[1875,362966000],[1876,363967000],[1877,364971000],[1878,365978000],[1879,366988000],[1880,368000000],[1881,369183000],[1882,370369000],[1883,371560000],[1884,372754000],[1885,373952000],[1886,375154000],[1887,376359000],[1888,377569000],[1889,378783000],[1890,380000000],[1891,381979000],[1892,383969000],[1893,385969000],[1894,387979000],[1895,390000000],[1896,391980000],[1897,393970000],[1898,395970000],[1899,397980000],[1900,400000000],[1901,402243000],[1902,404498000],[1903,406766000],[1904,409047000],[1905,411340000],[1906,413646000],[1907,415965000],[1908,418297000],[1909,420642000],[1910,423000000],[1911,427662000],[1912,432375000],[1913,437140000],[1914,441958000],[1915,446829000],[1916,451753000],[1917,456732000],[1918,461766000],[1919,466855000],[1920,472000000],[1921,473673000],[1922,475352000],[1923,477037000],[1924,478728000],[1925,480425000],[1926,482128000],[1927,483837000],[1928,485552000],[1929,487273000],[1930,489000000],[1931,492640000],[1932,496307000],[1933,500000000],[1934,502639000],[1935,505292000],[1936,507959000],[1937,510640000],[1938,513336000],[1939,516046000],[1940,518770000],[1941,521508000],[1942,524261000],[1943,527028000],[1944,529810000],[1945,532607000],[1946,535418000],[1947,538244000],[1948,541085000],[1949,543941000],[1950,546815000],[1951,557480000],[1952,568910000],[1953,581390000],[1954,595310000],[1955,608655000],[1956,621465000],[1957,637408000],[1958,653235000],[1959,666005000],[1960,667070000],[1961,660330000],[1962,665770000],[1963,682335000],[1964,698355000],[1965,715185000],[1966,735400000],[1967,754550000],[1968,774510000],[1969,796025000],[1970,818315000],[1971,841105000],[1972,862030000],[1973,881940000],[1974,900350000],[1975,916395000],[1976,930685000],[1977,943455000],[1978,956165000],[1979,969005000],[1980,981235000],[1981,993861000],[1982,1000281000],[1983,1023288000],[1984,1036825000],[1985,1051040000],[1986,1066790000],[1987,1084035000],[1988,1101630000],[1989,1118650000],[1990,1135185000],[1991,1150780000],[1992,1164970000],[1993,1178440000],[1994,1191835000],[1995,1204855000],[1996,1217550000],[1997,1230075000],[1998,1241935000],[1999,1252735000],[2000,1262645000],[2001,1271850000],[2002,1280400000],[2003,1288400000],[2004,1295733978],[2005,1303182268],[2006,1310823807],[2007,1318683096],[2008,1326856173]],"lifeExpectancy":[[1800,32],[1850,32],[1856,26],[1864,31],[1871,32],[1924,32],[1930,32],[1934,34],[1936,35],[1942,37],[1949,41],[1950,39.25],[1951,39.64],[1952,40.41],[1953,44.56],[1954,46.47],[1955,48.02],[1956,50.45],[1957,50.55],[1958,50.16],[1959,38.4],[1960,31.63],[1961,34.1],[1962,44.5],[1963,51.9],[1964,53.32],[1965,55.65],[1966,56.8],[1967,58.38],[1968,59.41],[1969,60.97],[1970,62.65],[1971,63.74],[1972,63.12],[1973,62.78],[1974,62.5],[1975,62.7],[1976,62.44],[1977,63.97],[1978,64.24],[1979,65.09],[1980,66.12],[1981,66.45],[1982,66.37],[1983,66.54],[1984,66.71],[1985,66.89],[1986,67.08],[1987,67.29],[1988,67.52],[1989,67.77],[1990,68.04],[1991,68.33],[1992,68.64],[1993,68.95],[1994,69.27],[1995,69.6],[1996,69.94],[1997,70.28],[1998,70.62],[1999,70.96],[2000,71.29],[2001,71.59],[2002,71.87],[2003,72.13],[2004,72.35],[2005,72.56],[2006,72.74],[2007,72.92],[2008,73.1],[2009,73.28]]},{"name":"Fiji","region":"East Asia & Pacific","income":[[1800,472.12],[1820,472.12],[1913,638.26],[1960,2036.45],[1961,2037.5],[1962,2039.39],[1963,2096.9],[1964,2130.13],[1965,2013.01],[1966,1960.75],[1967,2170.07],[1968,2290.59],[1969,2300.62],[1970,2538.96],[1971,2657.58],[1972,2797.76],[1973,3059.32],[1974,3076.71],[1975,3033.46],[1976,3059.19],[1977,3182.57],[1978,3183.86],[1979,3504.12],[1980,3374.56],[1981,3502.68],[1982,3209.26],[1983,3005.77],[1984,3189.48],[1985,2995.25],[1986,3197.96],[1987,2974.85],[1988,3000.08],[1989,3217.64],[1992,3410.29],[1993,3451.92],[1994,3579.65],[1995,3625.41],[1996,3760.19],[1997,3643.63],[1998,3660.5],[1999,3952.06],[2000,3856.32],[2001,3905.93],[2002,4004.48],[2003,4019.14],[2004,4205.96],[2005,4209],[2006,4249.35],[2007,4192.43],[2008,4153.29],[2009,4016.2]],"population":[[1800,130533],[1843,140000],[1850,137000],[1881,127000],[1891,121000],[1900,120000],[1901,120000],[1911,140000],[1921,157000],[1936,198000],[1946,260000],[1950,287348],[1951,295212],[1952,303594],[1953,312528],[1954,322045],[1955,332185],[1956,342987],[1957,354495],[1958,366755],[1959,379819],[1960,393348],[1961,407359],[1962,421869],[1963,436455],[1964,450647],[1965,463444],[1966,474000],[1967,485000],[1968,495000],[1969,506000],[1970,521000],[1971,533000],[1972,544000],[1973,556000],[1974,565000],[1975,576000],[1976,585000],[1977,599339],[1978,610845],[1979,622328],[1980,634506],[1981,646772],[1982,658906],[1983,671914],[1984,685572],[1985,698942],[1986,712989],[1987,719574],[1988,725994],[1989,732181],[1990,738090],[1991,743876],[1992,750242],[1993,757711],[1994,766268],[1995,775901],[1996,786603],[1997,797890],[1998,809292],[1999,820823],[2000,832494],[2001,844330],[2002,856346],[2003,868531],[2004,880874],[2005,893354],[2006,905949],[2007,918675],[2008,931545]],"lifeExpectancy":[[1800,26.1],[1925,26.1],[1950,51.57],[1951,51.8],[1952,52.25],[1953,52.69],[1954,53.12],[1955,53.54],[1956,53.95],[1957,54.35],[1958,54.74],[1959,55.13],[1960,55.52],[1961,55.92],[1962,56.31],[1963,56.72],[1964,57.13],[1965,57.54],[1966,57.97],[1967,58.39],[1968,58.81],[1969,59.22],[1970,59.63],[1971,60.04],[1972,60.44],[1973,60.85],[1974,61.25],[1975,61.66],[1976,62.06],[1977,62.47],[1978,62.87],[1979,63.28],[1980,63.69],[1981,64.11],[1982,64.55],[1983,64.98],[1984,65.41],[1985,65.81],[1986,66.15],[1987,66.42],[1988,66.6],[1989,66.7],[1990,66.73],[1991,66.71],[1992,66.67],[1993,66.63],[1994,66.61],[1995,66.63],[1996,66.7],[1997,66.8],[1998,66.93],[1999,67.1],[2000,67.28],[2001,67.48],[2002,67.69],[2003,67.91],[2004,68.11],[2005,68.31],[2006,68.5],[2007,68.68],[2008,68.87],[2009,69.05]]},{"name":"French Polynesia","region":"East Asia & Pacific","income":[[1800,809.34],[1820,809.34],[1913,1094.17],[1938,3809.11],[1950,6931.99],[1965,14652.18],[1966,15501.46],[1967,14244.02],[1968,15788.21],[1969,14827.48],[1970,14559.83],[1971,15778.51],[1972,14567.16],[1973,15221.11],[1974,17414.38],[1975,16058.06],[1976,16850.77],[1977,16682.11],[1978,17781.65],[1979,17930.54],[1980,17487.1],[1981,18420.35],[1982,19673.49],[1983,20154.29],[1984,20668.02],[1985,21218.42],[1986,22429.06],[1987,23454.41],[1988,23470.77],[1989,23644.36],[1990,23649.59],[1991,24294.36],[1992,24021.2],[1993,23573.74],[1994,23307.75],[1995,22982.73],[1996,22624.68],[1997,22634.06],[1998,23607.7],[1999,24121.45],[2000,24659.01],[2001,24575.06],[2002,25224.33],[2003,25627.58],[2004,25652.81],[2005,26016.11],[2006,26151.76],[2007,26379.1],[2008,26733.88]],"population":[[1800,62530],[1843,66000],[1850,62000],[1900,30000],[1926,36000],[1931,40000],[1936,44000],[1946,55000],[1950,62100],[1951,63000],[1952,64500],[1953,66800],[1954,69200],[1955,71900],[1956,75200],[1957,76600],[1958,78100],[1959,79600],[1960,81100],[1961,82600],[1962,83471],[1963,87046],[1964,90793],[1965,94717],[1966,98562],[1967,102756],[1968,107309],[1969,108700],[1970,114000],[1971,121100],[1972,124000],[1973,127000],[1974,130100],[1975,133100],[1976,136300],[1977,138156],[1978,142083],[1979,146463],[1980,150896],[1981,155686],[1982,160416],[1983,165319],[1984,170279],[1985,175416],[1986,180644],[1987,185839],[1988,191173],[1989,196542],[1990,201826],[1991,207085],[1992,212174],[1993,217191],[1994,222078],[1995,226766],[1996,231305],[1997,235770],[1998,240230],[1999,244679],[2000,249110],[2001,253506],[2002,257847],[2003,262125],[2004,266339],[2005,270485],[2006,274578],[2007,278633],[2008,282645]],"lifeExpectancy":[[1950,45.51],[1951,46.44],[1952,48.21],[1953,49.79],[1954,51.2],[1955,52.42],[1956,53.47],[1957,54.35],[1958,55.08],[1959,55.68],[1960,56.17],[1961,56.59],[1962,56.97],[1963,57.35],[1964,57.73],[1965,58.14],[1966,58.56],[1967,58.98],[1968,59.38],[1969,59.75],[1970,60.11],[1971,60.42],[1972,60.7],[1973,60.97],[1974,61.23],[1975,61.53],[1976,61.9],[1977,62.36],[1978,62.93],[1979,63.58],[1980,64.3],[1981,65.02],[1982,65.72],[1983,66.35],[1984,66.89],[1985,67.36],[1986,67.76],[1987,68.14],[1988,68.51],[1989,68.88],[1990,69.26],[1991,69.63],[1992,69.97],[1993,70.28],[1994,70.56],[1995,70.82],[1996,71.07],[1997,71.33],[1998,71.62],[1999,71.92],[2000,72.24],[2001,72.56],[2002,72.88],[2003,73.18],[2004,73.46],[2005,73.72],[2006,73.96],[2007,74.18],[2008,74.39],[2009,74.59]]},{"name":"Hong Kong, China","region":"East Asia & Pacific","income":[[1800,790.15],[1820,790.15],[1870,877.43],[1913,1643.6],[1950,2849.88],[1951,2949.19],[1952,3054.42],[1953,3160.15],[1954,3271.09],[1955,3386.38],[1956,3506.6],[1957,3629.08],[1958,3756.59],[1959,3888.53],[1960,4026.16],[1961,4167.37],[1962,4692.65],[1963,5246.03],[1964,5559.56],[1965,6199.22],[1966,6250.4],[1967,6197.96],[1968,6269.78],[1969,6867.09],[1970,7317.44],[1971,7668.23],[1972,8315.93],[1973,9128.67],[1974,9110.16],[1975,8981.46],[1976,10157.28],[1977,11186.14],[1978,11919.01],[1979,12585.32],[1980,13494.1],[1981,14392.75],[1982,14560.53],[1983,15156.55],[1984,16504.24],[1985,16398.3],[1986,17935.52],[1987,20038.47],[1988,21476.43],[1989,21897.43],[1990,22536.17],[1991,23541.78],[1992,24757.6],[1993,25864.07],[1994,26685.04],[1995,27018.05],[1996,27448.74],[1997,28377.63],[1998,26767.13],[1999,27452.02],[2000,29972.38],[2001,29866.07],[2002,30209.02],[2003,30961.45],[2004,33401.64],[2005,35680],[2006,37788.38],[2007,39949.68],[2008,40480.28],[2009,39086.39]],"population":[[1800,20000],[1820,20000],[1850,33000],[1870,123000],[1890,214000],[1900,306000],[1913,487000],[1914,507000],[1915,528000],[1916,550000],[1917,573000],[1918,597000],[1919,622000],[1920,648000],[1921,625000],[1922,638000],[1923,668000],[1924,696000],[1925,725000],[1926,710000],[1927,725000],[1928,753000],[1929,785000],[1930,821000],[1931,840000],[1932,901000],[1933,923000],[1934,944000],[1935,966000],[1936,988000],[1937,1282000],[1938,1479000],[1939,1750000],[1940,1786000],[1941,1639000],[1946,1550000],[1947,1750000],[1948,1800000],[1949,1857000],[1950,2237000],[1951,2015300],[1952,2125900],[1953,2242200],[1954,2364900],[1955,2490400],[1956,2614600],[1957,2736300],[1958,2854100],[1959,2967400],[1960,3075300],[1961,3168100],[1962,3305200],[1963,3420900],[1964,3504600],[1965,3597900],[1966,3629900],[1967,3722800],[1968,3802700],[1969,3863900],[1970,3959000],[1971,4045300],[1972,4115700],[1973,4212600],[1974,4319600],[1975,4395800],[1976,4518000],[1977,4583700],[1978,4667500],[1979,4929700],[1980,5063100],[1981,5183400],[1982,5264500],[1983,5345100],[1984,5397900],[1985,5456200],[1986,5524600],[1987,5584510],[1988,5628407],[1989,5660721],[1990,5687959],[1991,5752000],[1992,5829696],[1993,5934511],[1994,6067288],[1995,6225347],[1996,6391564],[1997,6495918],[1998,6544564],[1999,6599307],[2000,6658720],[2001,6713376],[2002,6762476],[2003,6809738],[2004,6855125],[2005,6898686],[2006,6940432],[2007,6980412],[2008,7018636]],"lifeExpectancy":[[1950,59.22],[1951,59.68],[1952,60.56],[1953,61.41],[1954,62.22],[1955,63],[1956,63.73],[1957,64.43],[1958,65.09],[1959,65.72],[1960,66.32],[1961,66.88],[1962,67.42],[1963,67.93],[1964,68.42],[1965,68.9],[1966,69.36],[1967,69.81],[1968,70.24],[1969,70.66],[1970,71.06],[1971,71.44],[1972,71.81],[1973,72.16],[1974,72.49],[1975,72.82],[1976,73.15],[1977,73.5],[1978,73.86],[1979,74.23],[1980,74.59],[1981,74.92],[1982,75.21],[1983,75.45],[1984,75.64],[1985,75.82],[1986,75.99],[1987,76.19],[1988,76.44],[1989,76.74],[1990,77.1],[1991,77.49],[1992,77.9],[1993,78.31],[1994,78.72],[1995,79.11],[1996,79.48],[1997,79.84],[1998,80.19],[1999,80.52],[2000,80.83],[2001,81.11],[2002,81.36],[2003,81.58],[2004,81.77],[2005,81.92],[2006,82.06],[2007,82.18],[2008,82.29],[2009,82.4]]},{"name":"Indonesia","region":"East Asia & Pacific","income":[[1800,514.12],[1820,518.73],[1850,539.86],[1870,554.8],[1871,547.26],[1872,540.26],[1873,545.43],[1874,552.01],[1875,556.52],[1876,567.79],[1877,568.92],[1878,556.43],[1879,562.78],[1880,561.02],[1881,589.05],[1882,567.29],[1883,554.72],[1884,594.98],[1885,594.45],[1886,584.96],[1887,585.6],[1888,580.55],[1889,574.95],[1890,554.2],[1891,563.86],[1892,580.08],[1893,591.63],[1894,593.51],[1895,588.5],[1896,586.03],[1897,586.17],[1898,581.95],[1899,604.2],[1900,615.87],[1901,600.79],[1902,583.07],[1903,608.33],[1904,609.52],[1905,610.21],[1906,619.6],[1907,627.93],[1908,621.19],[1909,643.39],[1910,673.94],[1911,697.39],[1912,700.78],[1913,723.93],[1914,715.9],[1915,717.23],[1916,715.29],[1917,709.19],[1918,722.53],[1919,779.14],[1920,748.45],[1921,741.55],[1922,752.97],[1923,758.93],[1924,788.01],[1925,793.81],[1926,829.87],[1927,870.85],[1928,891.62],[1929,903.85],[1930,904.26],[1931,823.28],[1932,808.18],[1933,801.5],[1934,804.93],[1935,830.79],[1936,881.13],[1937,936.18],[1938,949.68],[1939,949.53],[1940,1017.53],[1941,1013.45],[1942,743.61],[1943,659.2],[1944,525.24],[1945,462.55],[1946,477.15],[1947,526.99],[1948,611.54],[1949,666.09],[1950,704.35],[1951,744.28],[1952,749.68],[1953,770.93],[1954,807.6],[1955,823.68],[1956,804.83],[1957,858.9],[1958,792.47],[1959,816.55],[1960,834.99],[1961,859.77],[1962,849.29],[1963,798.21],[1964,809.58],[1965,802.64],[1966,794.06],[1967,762.43],[1968,827.29],[1969,911.09],[1970,986.73],[1971,1023.36],[1972,1111.11],[1973,1244.57],[1974,1262.42],[1975,1229.41],[1976,1314.63],[1977,1382.7],[1978,1418.14],[1979,1455.9],[1980,1549.1],[1981,1608.11],[1982,1516.87],[1983,1533.45],[1984,1609.27],[1985,1619.87],[1986,1690.43],[1987,1748.36],[1988,1821.98],[1989,1955.78],[1990,2097.7],[1991,2176.65],[1992,2383.14],[1993,2519.34],[1994,2674.28],[1995,2851.72],[1996,3026.82],[1997,3119.34],[1998,2656.41],[1999,2627.02],[2000,2714.94],[2001,2787.53],[2002,2873.91],[2003,2984.31],[2004,3095.79],[2005,3234],[2006,3367.56],[2007,3535.28],[2008,3699.54],[2009,3818.08]],"population":[[1820,17927000],[1821,18075923],[1822,18226083],[1823,18377490],[1824,18530155],[1825,18684088],[1826,18839300],[1827,18995801],[1828,19153603],[1829,19312715],[1830,19473149],[1831,19634916],[1832,19798026],[1833,19962492],[1834,20128324],[1835,20295533],[1836,20464132],[1837,20634131],[1838,20805542],[1839,20978378],[1840,21152649],[1841,21328367],[1842,21505546],[1843,21684196],[1844,21864330],[1845,22045961],[1846,22229101],[1847,22413762],[1848,22599957],[1849,22787699],[1850,22977000],[1851,23242887],[1852,23511851],[1853,23783928],[1854,24059152],[1855,24337562],[1856,24619194],[1857,24904084],[1858,25192271],[1859,25483793],[1860,25778689],[1861,26076997],[1862,26378757],[1863,26684009],[1864,26992793],[1865,27305150],[1866,27621122],[1867,27940751],[1868,28264078],[1869,28591147],[1870,28922000],[1871,29463000],[1872,30060000],[1873,30555000],[1874,30962000],[1875,31197000],[1876,31394000],[1877,31740000],[1878,32035000],[1879,32293000],[1880,32876000],[1881,33213000],[1882,33394000],[1883,33816000],[1884,34162000],[1885,34790000],[1886,35402000],[1887,35898000],[1888,36345000],[1889,36662000],[1890,37579000],[1891,37792000],[1892,38288000],[1893,38263000],[1894,38782000],[1895,39476000],[1896,39936000],[1897,40620000],[1898,41316000],[1899,42025000],[1900,42746000],[1901,43275000],[1902,43810000],[1903,44352000],[1904,44901000],[1905,45457000],[1906,45993000],[1907,46535000],[1908,47085000],[1909,47642000],[1910,48206000],[1911,48778000],[1912,49358000],[1913,49934000],[1914,50517000],[1915,51108000],[1916,51705000],[1917,52083000],[1918,52334000],[1919,53027000],[1920,53723000],[1921,54367000],[1922,55020000],[1923,55683000],[1924,56354000],[1925,57036000],[1926,57727000],[1927,58429000],[1928,59140000],[1929,59863000],[1930,60596000],[1931,61496000],[1932,62400000],[1933,63314000],[1934,64246000],[1935,65192000],[1936,66154000],[1937,67136000],[1938,68131000],[1939,69145000],[1940,70175000],[1941,71316000],[1942,72475000],[1943,73314000],[1944,73565000],[1945,73332000],[1946,74132000],[1947,75146000],[1948,76289000],[1949,77654000],[1950,79043000],[1951,80525000],[1952,82052000],[1953,83611000],[1954,85196000],[1955,86807000],[1956,88456000],[1957,90124000],[1958,91821000],[1959,93565000],[1960,95254000],[1961,97085000],[1962,99028000],[1963,101009000],[1964,103031000],[1965,105093000],[1966,107197000],[1967,109343000],[1968,111532000],[1969,113765000],[1970,116044000],[1971,118368000],[1972,121282000],[1973,124271000],[1974,127201000],[1975,130297000],[1976,133297000],[1977,136725000],[1978,140062000],[1979,143485000],[1980,146995000],[1981,150134000],[1982,153343000],[1983,156623000],[1984,159975000],[1985,163403000],[1986,166312000],[1987,169276000],[1988,172294000],[1989,175369000],[1990,178500000],[1991,181628000],[1992,184816000],[1993,188066000],[1994,191378000],[1995,194755000],[1996,197003000],[1997,199278000],[1998,201580000],[1999,203909000],[2000,206265000],[2001,208648000],[2002,211060000],[2003,214497000],[2004,215967000],[2005,218465000],[2006,220991000],[2007,223547000],[2008,226134000]],"lifeExpectancy":[[1800,30],[1927,30],[1932,32.5],[1937,35],[1942,27.5],[1947,27.5],[1950,36.5],[1951,36.74],[1952,37.23],[1953,37.72],[1954,38.2],[1955,38.68],[1956,39.16],[1957,39.64],[1958,40.13],[1959,40.63],[1960,41.15],[1961,41.69],[1962,42.27],[1963,42.88],[1964,43.53],[1965,44.2],[1966,44.89],[1967,45.58],[1968,46.26],[1969,46.93],[1970,47.59],[1971,48.25],[1972,48.91],[1973,49.58],[1974,50.27],[1975,50.96],[1976,51.65],[1977,52.35],[1978,53.04],[1979,53.73],[1980,54.44],[1981,55.16],[1982,55.92],[1983,56.7],[1984,57.49],[1985,58.29],[1986,59.05],[1987,59.76],[1988,60.42],[1989,61.01],[1990,61.56],[1991,62.09],[1992,62.63],[1993,63.19],[1994,63.79],[1995,64.42],[1996,65.06],[1997,65.69],[1998,66.3],[1999,66.87],[2000,67.41],[2001,67.91],[2002,68.39],[2003,68.84],[2004,69.28],[2005,69.7],[2006,70.1],[2007,70.47],[2008,70.83],[2009,71.17]]},{"name":"Japan","region":"East Asia & Pacific","income":[[1800,1055.06],[1820,1083.6],[1821,1084.14],[1822,1084.69],[1823,1085.23],[1824,1085.77],[1825,1086.32],[1826,1086.86],[1827,1087.4],[1828,1087.95],[1829,1088.49],[1830,1089.04],[1831,1089.58],[1832,1090.13],[1833,1090.68],[1834,1091.22],[1835,1091.77],[1836,1092.32],[1837,1092.86],[1838,1093.41],[1839,1093.96],[1840,1094.51],[1841,1095.05],[1842,1095.6],[1843,1096.15],[1844,1096.7],[1845,1097.25],[1846,1097.8],[1847,1098.35],[1848,1098.9],[1849,1099.45],[1850,1100],[1851,1102.43],[1852,1104.86],[1853,1107.3],[1854,1109.74],[1855,1112.19],[1856,1114.64],[1857,1117.1],[1858,1119.56],[1859,1122.03],[1860,1124.51],[1861,1126.99],[1862,1129.47],[1863,1131.97],[1864,1134.46],[1865,1136.96],[1866,1139.47],[1867,1141.99],[1868,1144.51],[1869,1147.03],[1870,1149.56],[1871,1154.57],[1872,1158.58],[1873,1164.13],[1874,1169.9],[1875,1250.55],[1876,1209.18],[1877,1234.7],[1878,1218.67],[1879,1280.18],[1880,1320.54],[1881,1265.97],[1882,1286.22],[1883,1273.17],[1884,1268.45],[1885,1303.03],[1886,1385.7],[1887,1436],[1888,1355.03],[1889,1402.18],[1890,1518.44],[1891,1432.42],[1892,1513.78],[1893,1504.42],[1894,1666.92],[1895,1669.75],[1896,1559.25],[1897,1572.31],[1898,1845.55],[1899,1686.05],[1900,1736.39],[1901,1772.67],[1902,1655.54],[1903,1745.65],[1904,1735.69],[1905,1686.69],[1906,1887.88],[1907,1924.86],[1908,1911.45],[1909,1881.91],[1910,1882.95],[1911,1954.06],[1912,1991.34],[1913,1991.28],[1914,1901.22],[1915,2045.23],[1916,2326.89],[1917,2372.82],[1918,2373.05],[1919,2593.96],[1920,2402.74],[1921,2629.72],[1922,2584.64],[1923,2549.04],[1924,2582.09],[1925,2645.71],[1926,2621.63],[1927,2614.09],[1928,2780.19],[1929,2821.34],[1930,2572.21],[1931,2549.2],[1932,2716.38],[1933,2933.51],[1934,2894.67],[1935,2919.61],[1936,3090.28],[1937,3187.62],[1938,3372.34],[1939,3877.35],[1940,3957.53],[1941,3955.34],[1942,3880.32],[1943,3885.01],[1944,3661.06],[1945,1853.44],[1946,1988.5],[1947,2121.68],[1948,2375.5],[1949,2478.13],[1950,2644.59],[1951,2926.69],[1952,3216.96],[1953,3406.85],[1954,3554.9],[1955,3814.97],[1956,4058.84],[1957,4317.69],[1958,4528.39],[1959,4893.31],[1960,5488.81],[1961,6094.42],[1962,6576.65],[1963,7061.48],[1964,7803.68],[1965,8170.01],[1966,8957.28],[1967,9847.79],[1968,10992],[1969,12218.48],[1970,13374.86],[1971,13824.24],[1972,14778.79],[1973,15742.88],[1974,15344.57],[1975,15618.93],[1976,16066.67],[1977,16610.38],[1978,17327.76],[1979,18123.89],[1980,18488.26],[1981,18938.11],[1982,19384.11],[1983,19698.72],[1984,20339.95],[1985,21109.16],[1986,21588.49],[1987,22375.94],[1988,23661.04],[1989,24704.53],[1990,25870.14],[1991,26648.77],[1992,26824.9],[1993,26818.24],[1994,27037.83],[1995,27509.08],[1996,28385.16],[1997,28816.58],[1998,27904.68],[1999,27809.6],[2000,28559.6],[2001,28569.05],[2002,28604.59],[2003,29073.61],[2004,29742.05],[2005,30290],[2006,30909.15],[2007,31636.71],[2008,31275.13],[2009,29680.68]],"population":[[1820,31000000],[1821,31032824],[1822,31065683],[1823,31098577],[1824,31131506],[1825,31164470],[1826,31197468],[1827,31230502],[1828,31263570],[1829,31296674],[1830,31329812],[1831,31362986],[1832,31396194],[1833,31429438],[1834,31462717],[1835,31496031],[1836,31529381],[1837,31562766],[1838,31596186],[1839,31629642],[1840,31663133],[1841,31696659],[1842,31730221],[1843,31763819],[1844,31797452],[1845,31831121],[1846,31864825],[1847,31898565],[1848,31932341],[1849,31966153],[1850,32000000],[1851,32117649],[1852,32235730],[1853,32354246],[1854,32473197],[1855,32592585],[1856,32712413],[1857,32832681],[1858,32953391],[1859,33074545],[1860,33196144],[1861,33318191],[1862,33440686],[1863,33563632],[1864,33687029],[1865,33810880],[1866,33935187],[1867,34059950],[1868,34185173],[1869,34310855],[1870,34437000],[1871,34648000],[1872,34859000],[1873,35070000],[1874,35235000],[1875,35436000],[1876,35713000],[1877,36018000],[1878,36315000],[1879,36557000],[1880,36807000],[1881,37112000],[1882,37414000],[1883,37766000],[1884,38138000],[1885,38427000],[1886,38622000],[1887,38866000],[1888,39251000],[1889,39688000],[1890,40077000],[1891,40380000],[1892,40684000],[1893,41001000],[1894,41350000],[1895,41775000],[1896,42196000],[1897,42643000],[1898,43145000],[1899,43626000],[1900,44103000],[1901,44662000],[1902,45255000],[1903,45841000],[1904,46378000],[1905,46829000],[1906,47227000],[1907,47691000],[1908,48260000],[1909,48869000],[1910,49518000],[1911,50215000],[1912,50941000],[1913,51672000],[1914,52396000],[1915,53124000],[1916,53815000],[1917,54437000],[1918,54886000],[1919,55253000],[1920,55818000],[1921,56490000],[1922,57209000],[1923,57937000],[1924,58686000],[1925,59522000],[1926,60490000],[1927,61430000],[1928,62361000],[1929,63244000],[1930,64203000],[1931,65205000],[1932,66189000],[1933,67182000],[1934,68090000],[1935,69238000],[1936,70171000],[1937,71278000],[1938,71879000],[1939,72364000],[1940,72967000],[1941,74005000],[1942,75029000],[1943,76005000],[1944,77178000],[1945,76224000],[1946,77199000],[1947,78119000],[1948,80155000],[1949,81971000],[1950,83805000],[1951,85163848],[1952,86459025],[1953,87655163],[1954,88753892],[1955,89815060],[1956,90766211],[1957,91563009],[1958,92388772],[1959,93296566],[1960,94091638],[1961,94943293],[1962,95831757],[1963,96811940],[1964,97826267],[1965,98882534],[1966,99790308],[1967,100825279],[1968,101960672],[1969,103171831],[1970,104344973],[1971,105696786],[1972,107188273],[1973,108706797],[1974,110162302],[1975,111573116],[1976,112774841],[1977,113872473],[1978,114912911],[1979,115890431],[1980,116807309],[1981,117648092],[1982,118454974],[1983,119269949],[1984,120034697],[1985,120754335],[1986,121491913],[1987,122091325],[1988,122613000],[1989,123107500],[1990,123537399],[1991,123946268],[1992,124329269],[1993,124668019],[1994,125014050],[1995,125341354],[1996,125645311],[1997,125956499],[1998,126246096],[1999,126494403],[2000,126699784],[2001,126891645],[2002,127065841],[2003,127214499],[2004,127333002],[2005,127417244],[2006,127463611],[2007,127467972],[2008,127425722]],"lifeExpectancy":[[1800,36.4],[1865,36.43],[1870,36.59],[1875,36.8],[1880,37.04],[1885,37.33],[1890,37.68],[1895,38.1],[1900,38.6],[1905,39.22],[1910,39.97],[1915,40.9],[1920,42.04],[1922,42.62],[1927,45.66],[1935,48.24],[1937,49],[1940,49],[1942,48.5],[1943,46],[1944,40],[1945,30.54],[1946,46.5],[1947,51.75],[1948,56.89],[1949,57.76],[1950,59.3],[1951,60.99],[1952,63.03],[1953,63.37],[1954,64.61],[1955,65.77],[1956,65.63],[1957,65.5],[1958,67.12],[1959,67.51],[1960,67.8],[1961,68.45],[1962,68.73],[1963,69.81],[1964,70.28],[1965,70.33],[1966,71.14],[1967,71.43],[1968,71.75],[1969,71.98],[1970,72.07],[1971,72.89],[1972,73.42],[1973,73.48],[1974,73.91],[1975,74.41],[1976,74.81],[1977,75.38],[1978,75.7],[1979,76.21],[1980,76.19],[1981,76.6],[1982,77.11],[1983,77.14],[1984,77.54],[1985,77.84],[1986,78.26],[1987,78.67],[1988,78.58],[1989,79.01],[1990,79.04],[1991,79.31],[1992,79.36],[1993,79.5],[1994,79.91],[1995,79.76],[1996,80.46],[1997,80.69],[1998,80.77],[1999,80.75],[2000,81.35],[2001,81.7],[2002,82],[2003,82.07],[2004,82.36],[2005,82.27],[2006,82.68],[2007,82.87],[2008,82.81],[2009,82.98]]},{"name":"Korea, Dem. Rep.","region":"East Asia & Pacific","income":[[1800,698],[1820,698],[1821,698],[1822,698],[1823,698],[1824,699],[1825,699],[1826,699],[1827,699],[1828,699],[1829,699],[1830,699],[1831,699],[1832,699],[1833,699],[1834,699],[1835,700],[1836,700],[1837,700],[1838,700],[1839,700],[1840,700],[1841,700],[1842,700],[1843,700],[1844,700],[1845,701],[1846,701],[1847,701],[1848,701],[1849,701],[1850,701],[1851,701],[1852,701],[1853,701],[1854,701],[1855,701],[1856,702],[1857,702],[1858,702],[1859,702],[1860,702],[1861,702],[1862,702],[1863,702],[1864,702],[1865,702],[1866,702],[1867,703],[1868,703],[1869,703],[1870,703],[1871,706],[1872,708],[1873,711],[1874,714],[1875,716],[1876,719],[1877,722],[1878,725],[1879,727],[1880,730],[1881,733],[1882,736],[1883,739],[1884,741],[1885,744],[1886,747],[1887,750],[1888,753],[1889,756],[1890,758],[1891,761],[1892,764],[1893,767],[1894,770],[1895,773],[1896,776],[1897,779],[1898,782],[1899,785],[1900,788],[1901,791],[1902,794],[1903,797],[1904,800],[1905,803],[1906,806],[1907,809],[1908,812],[1909,815],[1910,819],[1911,822],[1912,847],[1913,870],[1914,900],[1915,1042],[1916,1008],[1917,1104],[1918,1177],[1919,1240],[1920,1067],[1921,1137],[1922,1033],[1923,1093],[1924,1087],[1925,1074],[1926,1102],[1927,1136],[1928,1130],[1929,1058],[1930,990],[1931,983],[1932,973],[1933,1164],[1934,1149],[1935,1239],[1936,1340],[1937,1466],[1938,1529],[1939,1368],[1940,1531],[1941,1539],[1942,1517],[1943,1527],[1944,1448],[1945,674],[1946,682],[1947,719],[1948,773],[1949,830],[1950,870],[1951,727],[1952,777],[1953,1004],[1954,1059],[1955,1109],[1956,1097],[1957,1158],[1958,1193],[1959,1209],[1960,1200],[1961,1229],[1962,1234],[1963,1313],[1964,1396],[1965,1452],[1966,1597],[1967,1684],[1968,1866],[1969,2115],[1970,2262],[1971,2938],[1972,3002],[1973,3332],[1974,3373],[1975,3373],[1976,3373],[1977,3373],[1978,3373],[1979,3373],[1980,3373],[1981,3373],[1982,3373],[1983,3373],[1984,3373],[1985,3373],[1986,3373],[1987,3373],[1988,3373],[1989,3373],[1990,3373],[1991,3373],[1992,3061],[1993,3018],[1994,2300],[1995,2000],[1996,1809],[1997,1691],[1998,1693],[1999,1706],[2000,1690],[2001,1667],[2002,1647],[2003,1628],[2004,1612],[2005,1597],[2006,1572],[2007,1531],[2008,1582],[2009,1635]],"population":[[1800,4345000],[1820,4345000],[1870,4511000],[1913,4897000],[1950,9471140],[1951,9162410],[1952,8865488],[1953,8579873],[1954,8571805],[1955,8839427],[1956,9115740],[1957,9411381],[1958,9727435],[1959,10054154],[1960,10391909],[1961,10651332],[1962,10917494],[1963,11209506],[1964,11527887],[1965,11868751],[1966,12231860],[1967,12617009],[1968,13024159],[1969,13454771],[1970,13911902],[1971,14364579],[1972,14781241],[1973,15160867],[1974,15501464],[1975,15801308],[1976,16069433],[1977,16325320],[1978,16579905],[1979,16840290],[1980,17113626],[1981,17384008],[1982,17647518],[1983,17917990],[1984,18196000],[1985,18481420],[1986,18772457],[1987,19067554],[1988,19371141],[1989,19687910],[1990,20018546],[1991,20361086],[1992,20711375],[1993,21064115],[1994,21339904],[1995,21561856],[1996,21648743],[1997,21585105],[1998,21454900],[1999,21444989],[2000,21647682],[2001,21940326],[2002,22215365],[2003,22466481],[2004,22697553],[2005,22912177],[2006,23113019],[2007,23301725],[2008,23479089]],"lifeExpectancy":[[1800,26],[1903,26],[1908,23.51],[1913,24.98],[1918,26.98],[1923,29.53],[1928,33.61],[1933,37.39],[1938,42.57],[1942,44.89],[1950,48.04],[1951,48.58],[1952,49.63],[1953,50.6],[1954,51.49],[1955,52.31],[1956,53.05],[1957,53.72],[1958,54.34],[1959,54.9],[1960,55.43],[1961,55.94],[1962,56.46],[1963,56.99],[1964,57.57],[1965,58.19],[1966,58.88],[1967,59.61],[1968,60.38],[1969,61.17],[1970,61.98],[1971,62.78],[1972,63.58],[1973,64.34],[1974,65.07],[1975,65.74],[1976,66.35],[1977,66.9],[1978,67.4],[1979,67.85],[1980,68.27],[1981,68.66],[1982,69.04],[1983,69.4],[1984,69.75],[1985,70.07],[1986,70.35],[1987,70.57],[1988,70.71],[1989,70.77],[1990,70.73],[1991,70.56],[1992,70.29],[1993,69.92],[1994,69.49],[1995,69.01],[1996,68.51],[1997,68.03],[1998,67.6],[1999,67.24],[2000,66.96],[2001,66.78],[2002,66.69],[2003,66.67],[2004,66.72],[2005,66.82],[2006,66.97],[2007,67.14],[2008,67.33],[2009,67.53]]},{"name":"Korea, Rep.","region":"East Asia & Pacific","income":[[1800,596],[1820,596],[1821,596],[1822,596],[1823,596],[1824,596],[1825,596],[1826,596],[1827,597],[1828,597],[1829,597],[1830,597],[1831,597],[1832,597],[1833,597],[1834,597],[1835,597],[1836,597],[1837,597],[1838,597],[1839,598],[1840,598],[1841,598],[1842,598],[1843,598],[1844,598],[1845,598],[1846,598],[1847,598],[1848,598],[1849,598],[1850,598],[1851,598],[1852,599],[1853,599],[1854,599],[1855,599],[1856,599],[1857,599],[1858,599],[1859,599],[1860,599],[1861,599],[1862,599],[1863,599],[1864,600],[1865,600],[1866,600],[1867,600],[1868,600],[1869,600],[1870,600],[1871,602],[1872,605],[1873,607],[1874,609],[1875,612],[1876,614],[1877,616],[1878,619],[1879,621],[1880,623],[1881,626],[1882,628],[1883,630],[1884,633],[1885,635],[1886,638],[1887,640],[1888,643],[1889,645],[1890,647],[1891,650],[1892,652],[1893,655],[1894,657],[1895,660],[1896,662],[1897,665],[1898,668],[1899,670],[1900,673],[1901,675],[1902,678],[1903,680],[1904,683],[1905,686],[1906,688],[1907,691],[1908,693],[1909,696],[1910,699],[1911,701],[1912,723],[1913,743],[1914,768],[1915,889],[1916,861],[1917,942],[1918,1005],[1919,1058],[1920,910],[1921,971],[1922,882],[1923,933],[1924,928],[1925,917],[1926,940],[1927,969],[1928,965],[1929,903],[1930,845],[1931,839],[1932,831],[1933,993],[1934,981],[1935,1058],[1936,1144],[1937,1251],[1938,1305],[1939,1168],[1940,1307],[1941,1314],[1942,1295],[1943,1303],[1944,1236],[1945,576],[1946,582],[1947,614],[1948,660],[1949,708],[1950,743],[1951,689],[1952,736],[1953,951],[1954,1003],[1955,1050],[1956,1039],[1957,1097],[1958,1130],[1959,1145],[1960,1137],[1961,1163],[1962,1169],[1963,1243],[1964,1322],[1965,1375],[1966,1512],[1967,1594],[1968,1768],[1969,2003],[1970,2141],[1971,2319],[1972,2458],[1973,2844],[1974,3056],[1975,3225],[1976,3568],[1977,3899],[1978,4224],[1979,4492],[1980,4331],[1981,4558],[1982,4859],[1983,5373],[1984,5804],[1985,6162],[1986,6849],[1987,7612],[1988,8441],[1989,8948],[1990,9764],[1991,10622],[1992,11146],[1993,11701],[1994,12609],[1995,13674],[1996,14574],[1997,15202],[1998,14359],[1999,15692],[2000,16996],[2001,17784],[2002,18871],[2003,19485],[2004,20443],[2005,21342],[2006,22373],[2007,23438],[2008,23903],[2009,23875]],"population":[[1800,9395000],[1820,9395000],[1850,9545000],[1870,9753000],[1890,9848000],[1900,9896000],[1910,10096000],[1911,10258000],[1912,10422000],[1913,10589000],[1914,10764000],[1915,10911000],[1916,11086000],[1917,11263000],[1918,11443000],[1919,11627000],[1920,11804000],[1921,12040000],[1922,12281000],[1923,12526000],[1924,12777000],[1925,13005000],[1926,13179000],[1927,13356000],[1928,13535000],[1929,13716000],[1930,13900000],[1931,14117000],[1932,14338000],[1933,14562000],[1934,14789000],[1935,15020000],[1936,15139000],[1937,15260000],[1938,15381000],[1939,15504000],[1940,15627000],[1941,15859000],[1942,16094000],[1943,16332000],[1944,16574000],[1945,17917000],[1946,19369000],[1947,19886000],[1948,20027000],[1949,20208000],[1950,20845771],[1951,20876189],[1952,20947571],[1953,21060464],[1954,21258836],[1955,21551834],[1956,22031228],[1957,22611552],[1958,23253622],[1959,23981313],[1960,24784140],[1961,25613842],[1962,26420307],[1963,27211316],[1964,27984000],[1965,28705000],[1966,29436000],[1967,30131000],[1968,30838000],[1969,31544000],[1970,32241000],[1971,32883000],[1972,33505000],[1973,34073000],[1974,34692000],[1975,35281000],[1976,35860000],[1977,36436000],[1978,37019000],[1979,37534000],[1980,38124000],[1981,38723000],[1982,39326000],[1983,39910000],[1984,40406000],[1985,40806000],[1986,41214000],[1987,41622000],[1988,42031000],[1989,42449000],[1990,42869000],[1991,43318030],[1992,43805450],[1993,44295873],[1994,44780886],[1995,45264146],[1996,45730245],[1997,46173816],[1998,46589612],[1999,46972817],[2000,47351083],[2001,47697738],[2002,47969150],[2003,48202264],[2004,48426325],[2005,48640671],[2006,48846823],[2007,49044790],[2008,49232844]],"lifeExpectancy":[[1800,25.8],[1903,25.8],[1908,23.51],[1913,24.98],[1918,26.98],[1923,29.53],[1928,33.61],[1933,37.39],[1938,42.57],[1942,44.89],[1950,45.52],[1951,46.17],[1952,47.42],[1953,48.57],[1954,49.62],[1955,50.58],[1956,51.45],[1957,52.22],[1958,52.9],[1959,53.51],[1960,54.05],[1961,54.54],[1962,54.99],[1963,55.42],[1964,55.86],[1965,56.31],[1966,56.8],[1967,57.33],[1968,57.9],[1969,58.51],[1970,59.16],[1971,59.86],[1972,60.6],[1973,61.35],[1974,62.11],[1975,62.85],[1976,63.54],[1977,64.18],[1978,64.75],[1979,65.27],[1980,65.74],[1981,66.19],[1982,66.66],[1983,67.15],[1984,67.68],[1985,68.25],[1986,68.85],[1987,69.48],[1988,70.11],[1989,70.73],[1990,71.32],[1991,71.86],[1992,72.34],[1993,72.77],[1994,73.16],[1995,73.53],[1996,73.91],[1997,74.34],[1998,74.81],[1999,75.35],[2000,75.92],[2001,76.52],[2002,77.11],[2003,77.66],[2004,78.16],[2005,78.58],[2006,78.94],[2007,79.22],[2008,79.46],[2009,79.65]]},{"name":"Macao, China","region":"East Asia & Pacific","income":[[1800,607.01],[1820,607.01],[1913,820.62],[1950,2170.05],[1970,8453.49],[1971,8844.09],[1972,9344.18],[1973,9940.47],[1974,10611.51],[1975,11341.46],[1976,12106.57],[1977,12941.19],[1978,13807.82],[1979,14512.26],[1980,15216.44],[1981,15839.15],[1982,15856.62],[1983,16720.55],[1984,17365.77],[1985,16718.13],[1986,17058.98],[1987,18701.78],[1988,19353.91],[1989,19597.07],[1990,20495.49],[1991,20688.02],[1992,22917.23],[1993,23654.92],[1994,24247.09],[1995,24653.08],[1996,24188.5],[1997,23790.49],[1998,22404.65],[1999,21586.35],[2000,22512.56],[2001,22826.54],[2002,24755.47],[2003,27842.69],[2004,35260.87],[2005,37256],[2006,42523.57],[2007,52028.35],[2008,57436.68]],"population":[[1835,35000],[1839,13000],[1860,85000],[1900,64000],[1910,76000],[1920,84000],[1927,157000],[1937,170000],[1940,375000],[1950,205442],[1951,202367],[1952,199489],[1953,196948],[1954,194893],[1955,192684],[1956,190465],[1957,189390],[1958,188751],[1959,187499],[1960,186053],[1961,189831],[1962,198464],[1963,206989],[1964,215496],[1965,223820],[1966,231905],[1967,239773],[1968,247282],[1969,254436],[1970,261369],[1971,263565],[1972,261202],[1973,258929],[1974,256653],[1975,254331],[1976,251775],[1977,249116],[1978,248564],[1979,251368],[1980,255773],[1981,260929],[1982,270811],[1983,285451],[1984,298982],[1985,305843],[1986,312196],[1987,322983],[1988,332136],[1989,341237],[1990,351756],[1991,363858],[1992,375382],[1993,384495],[1994,393064],[1995,401452],[1996,410597],[1997,417129],[1998,421602],[1999,427618],[2000,431338],[2001,434044],[2002,437794],[2003,441487],[2004,445286],[2005,449198],[2006,453125],[2007,456989],[2008,460823]],"lifeExpectancy":[[1950,52.98],[1951,53.2],[1952,53.66],[1953,54.17],[1954,54.72],[1955,55.32],[1956,55.96],[1957,56.64],[1958,57.37],[1959,58.13],[1960,58.94],[1961,59.79],[1962,60.65],[1963,61.53],[1964,62.4],[1965,63.21],[1966,63.93],[1967,64.54],[1968,65.05],[1969,65.45],[1970,65.78],[1971,66.07],[1972,66.37],[1973,66.73],[1974,67.16],[1975,67.7],[1976,68.36],[1977,69.14],[1978,69.99],[1979,70.89],[1980,71.8],[1981,72.68],[1982,73.49],[1983,74.19],[1984,74.78],[1985,75.26],[1986,75.65],[1987,75.99],[1988,76.3],[1989,76.6],[1990,76.9],[1991,77.2],[1992,77.5],[1993,77.78],[1994,78.04],[1995,78.28],[1996,78.49],[1997,78.66],[1998,78.81],[1999,78.92],[2000,79.04],[2001,79.16],[2002,79.32],[2003,79.51],[2004,79.74],[2005,79.99],[2006,80.26],[2007,80.52],[2008,80.75],[2009,80.95]]},{"name":"Malaysia","region":"East Asia & Pacific","income":[[1800,750.13],[1820,750.13],[1870,824.43],[1911,996.55],[1912,1022.69],[1913,1120.15],[1914,1145.08],[1915,1166.82],[1916,1239.48],[1917,1286.2],[1918,1206.41],[1919,1440.43],[1920,1381.68],[1921,1337.64],[1922,1433.21],[1923,1381.09],[1924,1319.17],[1925,1494.64],[1926,1638.28],[1927,1557.04],[1928,1729.11],[1929,2093.56],[1930,2035.7],[1931,1926.89],[1932,1738.25],[1933,1791.53],[1934,1916.1],[1935,1697.92],[1936,1839.35],[1937,1628.32],[1938,1694.21],[1939,2002.74],[1940,1590.46],[1941,1541.08],[1942,2081.61],[1947,1330.46],[1948,1474.53],[1949,1904.73],[1950,1940.39],[1951,1792.01],[1952,1831.13],[1953,1791.86],[1954,1854.52],[1955,1817.19],[1956,1873.35],[1957,1810.07],[1958,1758.4],[1959,1826.02],[1960,1904.48],[1961,1981.4],[1962,2036.88],[1963,2077.26],[1964,2149.87],[1965,2245.03],[1966,2297.59],[1967,2277.74],[1968,2416.93],[1969,2495.56],[1970,2587.36],[1971,2713.47],[1972,2849.09],[1973,3185.7],[1974,3345.33],[1975,3295.77],[1976,3621.68],[1977,3827.92],[1978,4069.95],[1979,4301.4],[1980,4550.58],[1981,4758.29],[1982,4920.36],[1983,5096.8],[1984,5360.36],[1985,5172.8],[1986,5108.03],[1987,5249.8],[1988,5577.66],[1989,5960.93],[1990,6386.02],[1991,6838.2],[1992,7277.91],[1993,7815.3],[1994,8342.82],[1995,8961.56],[1996,9644.79],[1997,10132.91],[1998,9191.52],[1999,9553.52],[2000,10161.49],[2001,9994.62],[2002,10206.98],[2003,10597.64],[2004,11119.9],[2005,11466],[2006,11933.76],[2007,12459.59],[2008,12818.9],[2009,12387.67]],"population":[[1800,287000],[1820,287000],[1850,530000],[1870,800000],[1890,1585000],[1900,2232000],[1901,2288000],[1902,2345000],[1903,2404000],[1904,2467000],[1905,2532000],[1906,2601000],[1907,2672000],[1908,2745000],[1909,2821000],[1910,2893000],[1911,2967000],[1912,3025000],[1913,3084000],[1914,3144000],[1915,3207000],[1916,3271000],[1917,3337000],[1918,3404000],[1919,3473000],[1920,3545000],[1921,3618000],[1922,3698000],[1923,3779000],[1924,3863000],[1925,3949000],[1926,4038000],[1927,4128000],[1928,4221000],[1929,4316000],[1930,4413000],[1931,4513000],[1932,4604000],[1933,4697000],[1934,4793000],[1935,4890000],[1936,4993000],[1937,5099000],[1938,5207000],[1939,5317000],[1940,5434000],[1941,5554000],[1942,5592000],[1943,5630000],[1944,5668000],[1945,5707000],[1946,5746000],[1947,5786000],[1948,5922000],[1949,6061000],[1950,6433799],[1951,6581839],[1952,6748378],[1953,6928942],[1954,7117564],[1955,7311720],[1956,7519663],[1957,7739235],[1958,7965930],[1959,8195711],[1960,8428493],[1961,8663401],[1962,8906385],[1963,9148451],[1964,9397464],[1965,9647654],[1966,9899803],[1967,10154878],[1968,10409339],[1969,10662303],[1970,10910216],[1971,11171333],[1972,11441462],[1973,11711866],[1974,11986260],[1975,12267303],[1976,12553963],[1977,12845381],[1978,13138530],[1979,13443844],[1980,13764352],[1981,14096663],[1982,14441916],[1983,14793099],[1984,15157328],[1985,15545028],[1986,15941178],[1987,16331785],[1988,16729187],[1989,17117834],[1990,17503607],[1991,17906485],[1992,18319502],[1993,18747901],[1994,19180324],[1995,19611116],[1996,20044560],[1997,20476091],[1998,20911977],[1999,21354459],[2000,21793293],[2001,22229040],[2002,22662365],[2003,23092940],[2004,23522482],[2005,23953136],[2006,24385858],[2007,24821286],[2008,25259428]],"lifeExpectancy":[[1800,30.6],[1930,30.6],[1950,47.01],[1951,47.37],[1952,48.1],[1953,48.83],[1954,49.56],[1955,50.28],[1956,51.01],[1957,51.74],[1958,52.47],[1959,53.19],[1960,53.92],[1961,54.65],[1962,55.37],[1963,56.1],[1964,56.83],[1965,57.56],[1966,58.3],[1967,59.05],[1968,59.81],[1969,60.56],[1970,61.3],[1971,61.99],[1972,62.62],[1973,63.2],[1974,63.72],[1975,64.21],[1976,64.67],[1977,65.15],[1978,65.64],[1979,66.16],[1980,66.69],[1981,67.21],[1982,67.7],[1983,68.14],[1984,68.53],[1985,68.87],[1986,69.16],[1987,69.41],[1988,69.66],[1989,69.89],[1990,70.12],[1991,70.36],[1992,70.6],[1993,70.83],[1994,71.08],[1995,71.32],[1996,71.57],[1997,71.81],[1998,72.04],[1999,72.27],[2000,72.5],[2001,72.72],[2002,72.95],[2003,73.18],[2004,73.42],[2005,73.66],[2006,73.89],[2007,74.12],[2008,74.33],[2009,74.54]]},{"name":"Micronesia, Fed. Sts.","region":"East Asia & Pacific","income":[[1800,553.05],[1820,553.05],[1913,747.68],[1970,3428.19],[1971,3469.53],[1972,3495.18],[1973,4682.78],[1974,5384.38],[1975,5331.31],[1976,5247.19],[1977,5234.55],[1978,5358.55],[1979,5291],[1980,4748.19],[1981,5037.39],[1982,4745.83],[1983,4692.94],[1984,4372.64],[1985,4958.08],[1986,5220.78],[1987,5205.1],[1988,5399.42],[1989,5316.17],[1990,5408.71],[1991,5603.02],[1992,5659.93],[1993,5899.17],[1994,5898.48],[1995,5918.56],[1996,5582.74],[1997,5238.14],[1998,5217.37],[1999,5053.2],[2000,5530.16],[2001,5543.41],[2002,5565.15],[2003,5534.02],[2004,5458.99],[2005,5508],[2006,5399.22],[2007,5189.39],[2008,4994.56]],"population":[[1800,16416],[1820,16416],[1950,30715],[1951,31674],[1952,32664],[1953,33684],[1954,34736],[1955,35821],[1956,36940],[1957,38094],[1958,39284],[1959,40511],[1960,41777],[1961,43081],[1962,44427],[1963,45815],[1964,47246],[1965,48722],[1966,50244],[1967,51813],[1968,53432],[1969,55101],[1970,56822],[1971,58597],[1972,60427],[1973,62731],[1974,64241],[1975,66222],[1976,68263],[1977,70368],[1978,72538],[1979,74774],[1980,77080],[1981,79581],[1982,82188],[1983,84942],[1984,87784],[1985,90631],[1986,94151],[1987,97727],[1988,101343],[1989,104976],[1990,108600],[1991,111689],[1992,114694],[1993,117588],[1994,105444],[1995,105988],[1996,106479],[1997,106911],[1998,107264],[1999,107534],[2000,107754],[2001,107940],[2002,108071],[2003,108143],[2004,108155],[2005,108105],[2006,108004],[2007,107862],[2008,107673]],"lifeExpectancy":[[1950,53.78],[1951,53.98],[1952,54.38],[1953,54.78],[1954,55.18],[1955,55.58],[1956,55.98],[1957,56.38],[1958,56.78],[1959,57.18],[1960,57.58],[1961,57.98],[1962,58.38],[1963,58.78],[1964,59.18],[1965,59.58],[1966,59.98],[1967,60.39],[1968,60.8],[1969,61.21],[1970,61.63],[1971,62.07],[1972,62.52],[1973,62.97],[1974,63.42],[1975,63.84],[1976,64.22],[1977,64.55],[1978,64.82],[1979,65.02],[1980,65.17],[1981,65.28],[1982,65.37],[1983,65.45],[1984,65.54],[1985,65.64],[1986,65.75],[1987,65.87],[1988,65.98],[1989,66.1],[1990,66.21],[1991,66.33],[1992,66.44],[1993,66.55],[1994,66.67],[1995,66.78],[1996,66.88],[1997,66.99],[1998,67.08],[1999,67.18],[2000,67.29],[2001,67.4],[2002,67.53],[2003,67.68],[2004,67.85],[2005,68.03],[2006,68.22],[2007,68.42],[2008,68.61],[2009,68.81]]},{"name":"Mongolia","region":"East Asia & Pacific","income":[[1800,606.93],[1820,606.93],[1950,741.13],[1951,761.58],[1952,786.57],[1953,809.5],[1954,834.53],[1955,859.07],[1956,884.55],[1957,912.66],[1958,939.23],[1959,967.77],[1960,996.67],[1961,1026.27],[1962,1056.35],[1963,1089.39],[1964,1121.78],[1965,1155.34],[1966,1189.06],[1967,1226.04],[1968,1262.52],[1969,1299.6],[1970,1339.74],[1971,1380.61],[1972,1421.74],[1973,1464.19],[1974,1508.42],[1975,1553.03],[1976,1597.77],[1977,1647.51],[1978,1697],[1979,1748.19],[1980,1800],[1981,1897.49],[1982,2000.6],[1983,2059.48],[1984,2122.47],[1985,2182.38],[1986,2322.07],[1987,2338.01],[1988,2391.14],[1989,2389.38],[1990,2268.6],[1991,2011.76],[1992,1785.4],[1993,1705.62],[1994,1723.84],[1995,1814.11],[1996,1841.2],[1997,1902.25],[1998,1958.2],[1999,2009.38],[2000,2017.51],[2001,2061.51],[2002,2140.74],[2003,2269.92],[2004,2487.43],[2005,2643],[2006,2834.89],[2007,3081.2],[2008,3306.55],[2009,3205.17]],"population":[[1800,619000],[1820,619000],[1870,668000],[1913,725000],[1950,778555],[1951,788937],[1952,800663],[1953,813728],[1954,828075],[1955,844046],[1956,862063],[1957,882134],[1958,904296],[1959,928632],[1960,954652],[1961,981849],[1962,1010280],[1963,1031200],[1964,1060600],[1965,1090200],[1966,1119400],[1967,1149500],[1968,1181000],[1969,1214100],[1970,1247600],[1971,1283400],[1972,1320500],[1973,1360100],[1974,1402600],[1975,1445600],[1976,1487150],[1977,1528000],[1978,1571700],[1979,1617200],[1980,1662380],[1981,1708832],[1982,1756032],[1983,1805004],[1984,1855693],[1985,1907701],[1986,1960796],[1987,2015133],[1988,2070723],[1989,2159157],[1990,2216340],[1991,2268325],[1992,2312802],[1993,2349132],[1994,2383109],[1995,2420663],[1996,2458561],[1997,2494803],[1998,2530501],[1999,2565596],[2000,2600835],[2001,2637069],[2002,2674234],[2003,2712315],[2004,2751314],[2005,2791272],[2006,2832224],[2007,2874127],[2008,2916865]],"lifeExpectancy":[[1800,31.8],[1945,31.8],[1950,41.04],[1951,41.34],[1952,41.94],[1953,42.55],[1954,43.15],[1955,43.75],[1956,44.35],[1957,44.95],[1958,45.55],[1959,46.15],[1960,46.75],[1961,47.36],[1962,47.97],[1963,48.58],[1964,49.19],[1965,49.79],[1966,50.39],[1967,50.98],[1968,51.54],[1969,52.09],[1970,52.6],[1971,53.08],[1972,53.52],[1973,53.93],[1974,54.31],[1975,54.66],[1976,55],[1977,55.34],[1978,55.68],[1979,56.04],[1980,56.42],[1981,56.86],[1982,57.34],[1983,57.85],[1984,58.39],[1985,58.93],[1986,59.43],[1987,59.86],[1988,60.23],[1989,60.53],[1990,60.78],[1991,61.03],[1992,61.31],[1993,61.64],[1994,62.03],[1995,62.45],[1996,62.89],[1997,63.29],[1998,63.64],[1999,63.94],[2000,64.19],[2001,64.41],[2002,64.64],[2003,64.89],[2004,65.18],[2005,65.5],[2006,65.85],[2007,66.21],[2008,66.58],[2009,66.93]]},{"name":"Myanmar","region":"East Asia & Pacific","income":[[1800,569.07],[1820,569.07],[1821,569.07],[1822,569.07],[1823,569.07],[1824,569.07],[1825,569.07],[1826,569.07],[1827,569.07],[1828,569.07],[1829,569.07],[1830,569.07],[1831,569.07],[1832,569.07],[1833,569.07],[1834,569.07],[1835,569.07],[1836,569.07],[1837,569.07],[1838,569.07],[1839,569.07],[1840,569.07],[1841,569.07],[1842,569.07],[1843,569.07],[1844,569.07],[1845,569.07],[1846,569.07],[1847,569.07],[1848,569.07],[1849,569.07],[1850,569.07],[1851,569.07],[1852,569.07],[1853,569.07],[1854,569.07],[1855,569.07],[1856,569.07],[1857,569.07],[1858,569.07],[1859,569.07],[1860,569.07],[1861,569.07],[1862,569.07],[1863,569.07],[1864,569.07],[1865,569.07],[1866,569.07],[1867,569.07],[1868,569.07],[1869,569.07],[1870,569.07],[1871,575.11],[1872,581.21],[1873,587.37],[1874,593.6],[1875,599.9],[1876,606.26],[1877,612.69],[1878,619.18],[1879,625.75],[1880,632.39],[1881,639.09],[1882,645.87],[1883,652.72],[1884,659.64],[1885,666.64],[1886,673.71],[1887,680.85],[1888,688.07],[1889,695.37],[1890,702.74],[1891,710.2],[1892,717.73],[1893,725.34],[1894,733.03],[1895,740.8],[1896,748.66],[1897,756.6],[1898,764.62],[1899,772.73],[1900,780.93],[1901,789.21],[1902,756.71],[1903,725.54],[1904,695.66],[1905,667.01],[1906,639.54],[1907,648.35],[1908,657.29],[1909,666.35],[1910,675.53],[1911,684.84],[1912,729.23],[1913,773.61],[1914,822.21],[1915,873.85],[1916,928.74],[1917,902.04],[1918,876.1],[1919,850.9],[1920,826.43],[1921,802.67],[1922,824.63],[1923,847.19],[1924,870.37],[1925,894.19],[1926,918.65],[1927,937.88],[1928,957.51],[1929,977.55],[1930,998],[1931,1018.89],[1932,1003.98],[1933,989.28],[1934,974.8],[1935,960.54],[1936,946.48],[1937,889.09],[1938,835.19],[1939,792.94],[1940,752.82],[1941,714.74],[1942,602.94],[1943,508.63],[1944,429.07],[1945,430.2],[1946,433.47],[1947,436.76],[1948,440.07],[1949,443.42],[1950,446.78],[1951,504.07],[1952,507.32],[1953,512.73],[1954,473.51],[1955,526.86],[1956,552.87],[1957,576.11],[1958,551.27],[1959,626.29],[1960,636.33],[1961,640.73],[1962,684.61],[1963,691.68],[1964,691.54],[1965,696.34],[1966,655.15],[1967,661.14],[1968,691.49],[1969,706.5],[1970,724.44],[1971,733.81],[1972,725.05],[1973,708.8],[1974,732.19],[1975,749.09],[1976,780.88],[1977,813.38],[1978,853.53],[1979,878.84],[1980,935.13],[1981,970.19],[1982,1003.82],[1983,1027.35],[1984,1057.16],[1985,1067.1],[1986,1037.22],[1987,979.04],[1988,854.94],[1989,874.49],[1990,887.18],[1991,870.36],[1992,891.72],[1993,904.21],[1994,919.55],[1995,933.8],[1996,947.26],[1997,959.32],[1998,971.75],[1999,998.69],[2000,1034.45],[2001,1064.53],[2002,1097.67],[2003,1137.58],[2004,1175.12],[2005,1169.24],[2006,1154.04],[2007,1214.05],[2008,1255.33],[2009,1269.14]],"population":[[1800,3506000],[1820,3506000],[1850,3932000],[1870,4245000],[1890,7489000],[1900,10174000],[1901,10490000],[1902,10642000],[1903,10796000],[1904,10953000],[1905,11112000],[1906,11273000],[1907,11437000],[1908,11603000],[1909,11771000],[1910,11942000],[1911,12115000],[1912,12220000],[1913,12326000],[1914,12433000],[1915,12541000],[1916,12650000],[1917,12760000],[1918,12871000],[1919,12893000],[1920,13096000],[1921,13212000],[1922,13351000],[1923,13491000],[1924,13633000],[1925,13776000],[1926,13921000],[1927,14067000],[1928,14215000],[1929,14364000],[1930,14515000],[1931,14667000],[1932,14870000],[1933,15075000],[1934,15283000],[1935,15494000],[1936,15708000],[1937,15925000],[1938,16145000],[1939,16368000],[1940,16594000],[1941,16824000],[1942,16727000],[1943,16908000],[1944,17090000],[1945,17272000],[1946,17454000],[1947,17636000],[1948,17818000],[1949,18000000],[1950,19487657],[1951,19788012],[1952,20092996],[1953,20402681],[1954,20721139],[1955,21048631],[1956,21385445],[1957,21731844],[1958,22088118],[1959,22456123],[1960,22836232],[1961,23228868],[1962,23634436],[1963,24053395],[1964,24485982],[1965,24932663],[1966,25393924],[1967,25870271],[1968,26362230],[1969,26867423],[1970,27386228],[1971,27919082],[1972,28466390],[1973,29226657],[1974,29799458],[1975,30360478],[1976,30936848],[1977,31528087],[1978,32053297],[1979,32664235],[1980,33373316],[1981,34019441],[1982,34680442],[1983,35364794],[1984,36060228],[1985,36740515],[1986,37397074],[1987,38028578],[1988,38603755],[1989,39132189],[1990,39655394],[1991,40155099],[1992,40546538],[1993,40983821],[1994,41577366],[1995,42173781],[1996,42728314],[1997,43247867],[1998,43749992],[1999,44234615],[2000,44702243],[2001,45152531],[2002,45598081],[2003,46030343],[2004,46520134],[2005,46996558],[2006,47382633],[2007,47761980],[2008,48133102]],"lifeExpectancy":[[1800,30.8],[1926,30.8],[1941,30.8],[1942,28],[1943,28.5],[1944,28.1],[1945,28],[1948,30.8],[1950,33.43],[1951,34.23],[1952,35.76],[1953,37.16],[1954,38.43],[1955,39.57],[1956,40.59],[1957,41.49],[1958,42.29],[1959,43.02],[1960,43.69],[1961,44.35],[1962,45.03],[1963,45.74],[1964,46.5],[1965,47.32],[1966,48.17],[1967,49.03],[1968,49.87],[1969,50.69],[1970,51.46],[1971,52.2],[1972,52.91],[1973,53.6],[1974,54.26],[1975,54.88],[1976,55.48],[1977,56.04],[1978,56.57],[1979,57.05],[1980,57.48],[1981,57.84],[1982,58.12],[1983,58.32],[1984,58.46],[1985,58.55],[1986,58.61],[1987,58.65],[1988,58.71],[1989,58.79],[1990,58.88],[1991,58.99],[1992,59.1],[1993,59.19],[1994,59.28],[1995,59.37],[1996,59.46],[1997,59.56],[1998,59.67],[1999,59.8],[2000,59.94],[2001,60.08],[2002,60.2],[2003,60.31],[2004,60.43],[2005,60.59],[2006,60.83],[2007,61.16],[2008,61.6],[2009,62.14]]},{"name":"New Caledonia","region":"East Asia & Pacific","income":[[1800,944.24],[1820,944.24],[1913,1276.53],[1938,4910.2],[1950,9374.16],[1965,21036.53],[1966,19726.05],[1967,20213.73],[1968,22370.06],[1969,24974.42],[1970,31456.12],[1971,32333.81],[1972,32001.31],[1973,27196.04],[1974,29441.36],[1975,30307.07],[1976,30164.32],[1977,30062.78],[1978,32409.54],[1979,27531.77],[1980,26965.06],[1981,24658.06],[1982,24831.15],[1983,23929.05],[1984,23947.91],[1985,24596.34],[1986,23927.7],[1987,24837.87],[1988,32806.33],[1989,35684.01],[1990,36179.11],[1991,37085.95],[1992,36383.17],[1993,35674.86],[1994,35704.58],[1995,36928.13],[1996,36242.51],[1997,36147.49],[1998,34242.72],[1999,33846.34],[2000,33884.5],[2001,33412.18],[2002,32977.87],[2003,32475.12],[2004,32205.65],[2005,31942.83],[2006,31596.57],[2007,31268.19],[2008,30959.74]],"population":[[1800,29432],[1820,29432],[1950,55069],[1951,56780],[1952,58615],[1953,60581],[1954,62689],[1955,64948],[1956,67369],[1957,69963],[1958,72745],[1959,75790],[1960,78804],[1961,81774],[1962,84518],[1963,86978],[1964,88066],[1965,90360],[1966,93462],[1967,96094],[1968,99500],[1969,104000],[1970,112000],[1971,120000],[1972,125500],[1973,128500],[1974,131000],[1975,133000],[1976,134500],[1977,136000],[1978,137500],[1979,138800],[1980,139400],[1981,142500],[1982,145000],[1983,146584],[1984,149659],[1985,152591],[1986,155582],[1987,158737],[1988,161885],[1989,165003],[1990,168361],[1991,171988],[1992,175612],[1993,179152],[1994,182543],[1995,185833],[1996,189104],[1997,192347],[1998,195554],[1999,198714],[2000,201816],[2001,204863],[2002,207858],[2003,210798],[2004,213679],[2005,216494],[2006,219246],[2007,221943],[2008,224585]],"lifeExpectancy":[[1950,51.93],[1951,51.67],[1952,51.27],[1953,51.09],[1954,51.14],[1955,51.41],[1956,51.9],[1957,52.58],[1958,53.43],[1959,54.41],[1960,55.44],[1961,56.48],[1962,57.45],[1963,58.29],[1964,58.98],[1965,59.49],[1966,59.83],[1967,60.04],[1968,60.2],[1969,60.33],[1970,60.51],[1971,60.8],[1972,61.23],[1973,61.81],[1974,62.53],[1975,63.36],[1976,64.25],[1977,65.13],[1978,65.94],[1979,66.66],[1980,67.26],[1981,67.77],[1982,68.19],[1983,68.58],[1984,68.93],[1985,69.26],[1986,69.57],[1987,69.88],[1988,70.17],[1989,70.47],[1990,70.76],[1991,71.04],[1992,71.3],[1993,71.55],[1994,71.79],[1995,72.04],[1996,72.33],[1997,72.66],[1998,73.05],[1999,73.47],[2000,73.92],[2001,74.37],[2002,74.78],[2003,75.14],[2004,75.44],[2005,75.68],[2006,75.87],[2007,76.04],[2008,76.2],[2009,76.36]]},{"name":"New Zealand","region":"East Asia & Pacific","income":[[1800,541.62],[1820,541.62],[1830,541.62],[1840,541.62],[1850,1549.64],[1860,2995.32],[1870,4197.09],[1871,4272.02],[1872,4770.04],[1873,5187.36],[1874,5204.29],[1875,4993.57],[1876,4905.88],[1877,5392.46],[1878,5782.83],[1879,4832.93],[1880,5072.99],[1881,5097.49],[1882,4936.43],[1883,4732.12],[1884,5013.44],[1885,4857.29],[1886,4876.72],[1887,4880.12],[1888,4812.45],[1889,5011.68],[1890,5085.11],[1891,5052.04],[1892,5146.24],[1893,5129.69],[1894,4846.28],[1895,4930.96],[1896,5399.9],[1897,5348.29],[1898,5396.03],[1899,5471.55],[1900,5819.9],[1901,5718.83],[1902,6009.94],[1903,6401.25],[1904,6188.58],[1905,6567.15],[1906,6983.76],[1907,7229.98],[1908,6546.72],[1909,6459.44],[1910,7198.55],[1911,7438.95],[1912,7053.59],[1913,6976.62],[1914,7026.5],[1915,7005.58],[1916,6933.16],[1917,6781.35],[1918,6649.54],[1919,7153.07],[1920,7638.54],[1921,6943.69],[1922,6555.15],[1923,6965.89],[1924,6963.81],[1925,7165.07],[1926,6641.4],[1927,6340.65],[1928,6961.01],[1929,7125.34],[1930,6716.25],[1931,6059.54],[1932,5859.29],[1933,6196.13],[1934,6455.89],[1935,6715.24],[1936,7907.39],[1937,8261.82],[1938,8750.12],[1939,8746.7],[1940,8531.12],[1941,8298.68],[1942,9155.48],[1943,9380.86],[1944,9299.61],[1945,9381.26],[1946,9696.82],[1947,10624.33],[1948,9382.22],[1949,10183.21],[1950,11449.38],[1951,10362.99],[1952,10556.58],[1953,10637.22],[1954,11839],[1955,11814.68],[1956,12186.7],[1957,12247.4],[1958,12437.62],[1959,13039.68],[1960,12816.33],[1961,13195.1],[1962,13175.68],[1963,13719.26],[1964,14107.05],[1965,14730.25],[1966,15384.75],[1967,14463.92],[1968,14279.12],[1969,15586.76],[1970,15150.93],[1971,15674.74],[1972,16046.04],[1973,16823.02],[1974,17439.2],[1975,16910.21],[1976,17126.42],[1977,16233.72],[1978,16294.54],[1979,16633.44],[1980,16718.1],[1981,17445.44],[1982,17632.41],[1983,17919.54],[1984,18612.88],[1985,18647.68],[1986,18979.55],[1987,19007.19],[1988,18874.65],[1989,18983.92],[1990,18833.6],[1991,18380.78],[1992,18363.32],[1993,19337.19],[1994,20116.23],[1995,20661.48],[1996,21064.07],[1997,21050.41],[1998,20876.11],[1999,21689.01],[2000,21895.16],[2001,22426.59],[2002,23189.8],[2003,23728.48],[2004,24339.44],[2005,24554],[2006,24504.21],[2007,24926.5],[2008,24656.53],[2009,24009.46]],"population":[[1820,100000],[1830,100000],[1840,70000],[1850,90000],[1860,132000],[1870,291000],[1871,306000],[1872,320000],[1873,335000],[1874,367000],[1875,406000],[1876,434000],[1877,450000],[1878,467000],[1879,494000],[1880,520000],[1881,539000],[1882,555000],[1883,574000],[1884,598000],[1885,614000],[1886,626000],[1887,640000],[1888,649000],[1889,656000],[1890,665000],[1891,674000],[1892,686000],[1893,705000],[1894,722000],[1895,735000],[1896,748000],[1897,764000],[1898,779000],[1899,794000],[1900,807000],[1901,824000],[1902,844000],[1903,867000],[1904,893000],[1905,919000],[1906,946000],[1907,969000],[1908,996000],[1909,1024000],[1910,1045000],[1911,1067000],[1912,1092000],[1913,1122000],[1914,1143000],[1915,1152000],[1916,1155000],[1917,1152000],[1918,1156000],[1919,1195000],[1920,1241000],[1921,1275000],[1922,1304000],[1923,1326000],[1924,1350000],[1925,1382000],[1926,1412000],[1927,1437000],[1928,1454000],[1929,1471000],[1930,1493000],[1931,1514000],[1932,1527000],[1933,1540000],[1934,1552000],[1935,1562000],[1936,1573000],[1937,1587000],[1938,1604000],[1939,1627000],[1940,1636000],[1941,1629000],[1942,1639000],[1943,1633000],[1944,1654000],[1945,1688000],[1946,1759000],[1947,1797000],[1948,1833000],[1949,1871000],[1950,1908310],[1951,1947389],[1952,1994794],[1953,2047391],[1954,2092779],[1955,2136168],[1956,2178289],[1957,2229407],[1958,2281533],[1959,2331122],[1960,2371746],[1961,2432450],[1962,2488550],[1963,2541350],[1964,2591950],[1965,2640400],[1966,2687550],[1967,2728150],[1968,2759000],[1969,2788500],[1970,2828050],[1971,2875300],[1972,2929100],[1973,2992300],[1974,3058400],[1975,3117800],[1976,3153550],[1977,3164900],[1978,3165800],[1979,3164550],[1980,3170150],[1981,3185450],[1982,3210650],[1983,3245800],[1984,3278900],[1985,3298050],[1986,3308300],[1987,3317166],[1988,3331205],[1989,3341632],[1990,3359604],[1991,3396964],[1992,3437674],[1993,3475061],[1994,3517261],[1995,3565990],[1996,3621200],[1997,3676187],[1998,3726214],[1999,3774096],[2000,3819762],[2001,3864129],[2002,3908037],[2003,3951307],[2004,3993817],[2005,4035461],[2006,4076140],[2007,4115771],[2008,4154311]],"lifeExpectancy":[[1800,34.05],[1870,34.05],[1948,68.86],[1949,68.98],[1950,69.29],[1951,69.16],[1952,69.39],[1953,70.24],[1954,70.35],[1955,70.48],[1956,70.74],[1957,70.26],[1958,70.89],[1959,70.8],[1960,71.26],[1961,70.98],[1962,71.24],[1963,71.31],[1964,71.35],[1965,71.28],[1966,71.14],[1967,71.52],[1968,71.18],[1969,71.55],[1970,71.33],[1971,71.78],[1972,71.89],[1973,71.75],[1974,72],[1975,72.27],[1976,72.47],[1977,72.22],[1978,73.11],[1979,73.15],[1980,72.95],[1981,73.74],[1982,73.84],[1983,73.94],[1984,74.49],[1985,73.99],[1986,74.24],[1987,74.32],[1988,74.6],[1989,75.01],[1990,75.56],[1991,76.2],[1992,76.33],[1993,76.62],[1994,77.07],[1995,76.94],[1996,76.98],[1997,77.55],[1998,78.37],[1999,78.14],[2000,78.9],[2001,78.91],[2002,79.11],[2003,79.41],[2004,79.59],[2005,79.8],[2006,79.98],[2007,80.15],[2008,80.3],[2009,80.45]]},{"name":"Papua New Guinea","region":"East Asia & Pacific","income":[[1800,573.29],[1820,573.29],[1913,775.03],[1950,969.62],[1960,1120.04],[1961,1168.28],[1962,1220],[1963,1245.62],[1964,1325.88],[1965,1432.52],[1966,1484.36],[1967,1511.98],[1968,1543.68],[1969,1634.49],[1970,1771.1],[1971,1839.66],[1972,1898.54],[1973,1975.71],[1974,1981.1],[1975,1919.99],[1976,1814.91],[1977,1791.43],[1978,1903.45],[1979,1895.94],[1980,1809.71],[1981,1761.06],[1982,1722.78],[1983,1732.49],[1984,1681.73],[1985,1704.24],[1986,1739.11],[1987,1742.45],[1988,1748.27],[1989,1680.15],[1990,1588.26],[1991,1695.54],[1992,1880.96],[1993,2166.06],[1994,2235.06],[1995,2104.19],[1996,2206.73],[1997,2064.01],[1998,1933.43],[1999,1917.62],[2000,1821.68],[2001,1773.67],[2002,1727.29],[2003,1722.49],[2004,1728.51],[2005,1747],[2006,1745.9],[2007,1828.01],[2008,1905.5],[2009,1947.16]],"population":[[1800,754894],[1820,754894],[1950,1412466],[1951,1438163],[1952,1465469],[1953,1494506],[1954,1525366],[1955,1557902],[1956,1591955],[1957,1627752],[1958,1665511],[1959,1705225],[1960,1746986],[1961,1791048],[1962,1837378],[1963,1885929],[1964,1936607],[1965,1989516],[1966,2045085],[1967,2102625],[1968,2161618],[1969,2223233],[1970,2288056],[1971,2353081],[1972,2416549],[1973,2476980],[1974,2540118],[1975,2609796],[1976,2680390],[1977,2753462],[1978,2830006],[1979,2908571],[1980,2991217],[1981,3064312],[1982,3139596],[1983,3216925],[1984,3296419],[1985,3378233],[1986,3462394],[1987,3548932],[1988,3638032],[1989,3729905],[1990,3824787],[1991,3922925],[1992,4024135],[1993,4128174],[1994,4235157],[1995,4344820],[1996,4456781],[1997,4571004],[1998,4687521],[1999,4806270],[2000,4926984],[2001,5049055],[2002,5172033],[2003,5295816],[2004,5420280],[2005,5545268],[2006,5670544],[2007,5795887],[2008,5921144]],"lifeExpectancy":[[1800,31.5],[1946,31.5],[1950,33.67],[1951,33.92],[1952,34.42],[1953,34.93],[1954,35.43],[1955,35.93],[1956,36.44],[1957,36.94],[1958,37.44],[1959,37.94],[1960,38.44],[1961,38.94],[1962,39.44],[1963,39.94],[1964,40.44],[1965,40.94],[1966,41.41],[1967,41.87],[1968,42.33],[1969,42.79],[1970,43.29],[1971,43.85],[1972,44.5],[1973,45.23],[1974,46.05],[1975,46.92],[1976,47.84],[1977,48.75],[1978,49.63],[1979,50.43],[1980,51.13],[1981,51.71],[1982,52.18],[1983,52.55],[1984,52.82],[1985,53.05],[1986,53.24],[1987,53.45],[1988,53.69],[1989,53.97],[1990,54.3],[1991,54.64],[1992,54.97],[1993,55.28],[1994,55.57],[1995,55.85],[1996,56.15],[1997,56.48],[1998,56.85],[1999,57.28],[2000,57.74],[2001,58.23],[2002,58.71],[2003,59.16],[2004,59.59],[2005,59.98],[2006,60.33],[2007,60.66],[2008,60.98],[2009,61.29]]},{"name":"Philippines","region":"East Asia & Pacific","income":[[1800,626.97],[1820,626.97],[1870,669.73],[1902,722.13],[1903,862.59],[1904,728.86],[1905,760.94],[1906,775.46],[1907,801.87],[1908,831.78],[1909,831.4],[1910,938.44],[1911,979.62],[1912,978.25],[1913,1060.58],[1914,1021.54],[1915,939.39],[1916,1076.52],[1917,1231.94],[1918,1380.03],[1919,1301.39],[1920,1383.74],[1921,1326.03],[1922,1456.87],[1923,1341.59],[1924,1436.65],[1925,1420.6],[1926,1463.7],[1927,1466.19],[1928,1494],[1929,1516.23],[1930,1483.09],[1931,1460],[1932,1489.42],[1933,1468.54],[1934,1447.15],[1935,1317.45],[1936,1463.72],[1937,1532.46],[1938,1545.88],[1939,1619.02],[1940,1617.56],[1946,693.54],[1947,939.28],[1948,1065.52],[1949,1099.86],[1950,1148.81],[1951,1235.02],[1952,1272.88],[1953,1345.68],[1954,1404.09],[1955,1457.13],[1956,1513.28],[1957,1547.94],[1958,1554.15],[1959,1610.86],[1960,1584.52],[1961,1623.38],[1962,1649.55],[1963,1712.47],[1964,1717.62],[1965,1753.01],[1966,1775.28],[1967,1814.13],[1968,1848.05],[1969,1878.29],[1970,1893.6],[1971,1940.38],[1972,1989.37],[1973,2107.62],[1974,2123.74],[1975,2182.52],[1976,2310.26],[1977,2373.2],[1978,2427.5],[1979,2493.71],[1980,2549.91],[1981,2573.77],[1982,2603.27],[1983,2592.63],[1984,2348.4],[1985,2126.48],[1986,2148.12],[1987,2189.63],[1988,2285.43],[1989,2372],[1990,2386.91],[1991,2319.94],[1992,2279.32],[1993,2279.47],[1994,2328.83],[1995,2383.69],[1996,2464.68],[1997,2536.53],[1998,2469.84],[1999,2502.92],[2000,2598.89],[2001,2591.32],[2002,2650.92],[2003,2727.42],[2004,2847.41],[2005,2932],[2006,3027.82],[2007,3178.78],[2008,3236.92],[2009,3203.97]],"population":[[1800,2176000],[1820,2176000],[1850,3612000],[1870,5063000],[1890,6476000],[1900,7324000],[1901,7465000],[1902,7609000],[1903,7755000],[1904,7904000],[1905,8056000],[1906,8211000],[1907,8369000],[1908,8530000],[1909,8694000],[1910,8861000],[1911,9032000],[1912,9206000],[1913,9384000],[1914,9565000],[1915,9749000],[1916,9937000],[1917,10128000],[1918,10323000],[1919,10522000],[1920,10725000],[1921,10932000],[1922,11143000],[1923,11358000],[1924,11577000],[1925,11800000],[1926,12026000],[1927,12305000],[1928,12543000],[1929,12890000],[1930,13194000],[1931,13507000],[1932,13829000],[1933,14158000],[1934,14497000],[1935,14843000],[1936,15199000],[1937,15563000],[1938,15934000],[1939,16275000],[1940,16585000],[1941,16902000],[1942,17169000],[1943,17552000],[1944,17887000],[1945,18228000],[1946,18775000],[1947,19338000],[1948,19918000],[1949,20516000],[1950,21131264],[1951,21775167],[1952,22438691],[1953,23122432],[1954,23827009],[1955,24553055],[1956,25301226],[1957,26072194],[1958,26866654],[1959,27685324],[1960,28528939],[1961,29410457],[1962,30325264],[1963,31273198],[1964,32254350],[1965,33267569],[1966,34304274],[1967,35356600],[1968,36424438],[1969,37506719],[1970,38603696],[1971,39718094],[1972,40850141],[1973,41998117],[1974,43162098],[1975,44336842],[1976,45574350],[1977,46850962],[1978,48171780],[1979,49537371],[1980,50940182],[1981,52195262],[1982,53456774],[1983,54697515],[1984,55963794],[1985,57288037],[1986,58648857],[1987,60017788],[1988,61384736],[1989,62814469],[1990,64318120],[1991,65788832],[1992,67185766],[1993,68610958],[1994,70111842],[1995,71717437],[1996,73386057],[1997,75012988],[1998,76576177],[1999,78133918],[2000,79739825],[2001,81369751],[2002,82995088],[2003,84619974],[2004,86241697],[2005,87857473],[2006,89468677],[2007,91077287],[2008,92681453]],"lifeExpectancy":[[1800,30.9],[1901,30.9],[1902,12.7],[1903,30.9],[1917,30.9],[1918,25.6],[1919,30.9],[1930,30.9],[1938,40],[1941,42],[1942,41.9],[1943,42],[1944,41.9],[1945,40.5],[1946,41],[1950,46.36],[1951,46.71],[1952,47.41],[1953,48.12],[1954,48.84],[1955,49.58],[1956,50.32],[1957,51.07],[1958,51.81],[1959,52.54],[1960,53.23],[1961,53.87],[1962,54.45],[1963,54.95],[1964,55.38],[1965,55.74],[1966,56.06],[1967,56.35],[1968,56.64],[1969,56.93],[1970,57.24],[1971,57.58],[1972,57.94],[1973,58.31],[1974,58.69],[1975,59.08],[1976,59.49],[1977,59.9],[1978,60.31],[1979,60.72],[1980,61.13],[1981,61.54],[1982,61.95],[1983,62.36],[1984,62.77],[1985,63.19],[1986,63.62],[1987,64.06],[1988,64.51],[1989,64.96],[1990,65.43],[1991,65.88],[1992,66.34],[1993,66.78],[1994,67.2],[1995,67.61],[1996,68],[1997,68.39],[1998,68.77],[1999,69.14],[2000,69.49],[2001,69.84],[2002,70.17],[2003,70.48],[2004,70.78],[2005,71.07],[2006,71.34],[2007,71.6],[2008,71.85],[2009,72.1]]},{"name":"Samoa","region":"East Asia & Pacific","income":[[1800,1308.44],[1820,1308.44],[1913,1768.9],[1973,3667.7],[1974,3247.05],[1975,3098.02],[1976,3360.96],[1977,3311.52],[1978,3496.44],[1979,3938.62],[1980,3684.4],[1981,3343.02],[1982,3301.91],[1983,3310.12],[1984,3345.52],[1985,3466.03],[1986,3642.49],[1987,3642.57],[1988,3569.52],[1989,3678.48],[1990,3491.92],[1991,3387.06],[1992,3354.37],[1993,3463.17],[1994,3344.81],[1995,3529.46],[1996,3746.22],[1997,3734.02],[1998,3780.31],[1999,3854.83],[2000,4090.83],[2001,4386.17],[2002,4435.87],[2003,4545.09],[2004,4667.13],[2005,4872],[2006,4963.4],[2007,5052.76],[2008,5281.41],[2009,5003.61]],"population":[[1800,47300],[1850,46899],[1900,33000],[1906,37000],[1911,38000],[1921,36000],[1926,40000],[1936,56000],[1945,68000],[1950,81858],[1951,84351],[1952,86746],[1953,89031],[1954,91357],[1955,93857],[1956,96619],[1957,99661],[1958,102902],[1959,106412],[1960,110043],[1961,113621],[1962,117081],[1963,120526],[1964,123874],[1965,127151],[1966,130240],[1967,133162],[1968,136151],[1969,139206],[1970,142331],[1971,145356],[1972,148489],[1973,149436],[1974,149966],[1975,150839],[1976,151200],[1977,152748],[1978,153529],[1979,154339],[1980,155177],[1981,156046],[1982,158084],[1983,160155],[1984,162265],[1985,164417],[1986,165746],[1987,166575],[1988,166509],[1989,167389],[1990,170477],[1991,172553],[1992,174011],[1993,177551],[1994,181436],[1995,181623],[1996,180516],[1997,180418],[1998,180177],[1999,179843],[2000,179466],[2001,179058],[2002,178631],[2003,178173],[2004,177714],[2005,177287],[2006,176908],[2007,176615],[2008,176418]],"lifeExpectancy":[[1950,44.9],[1951,45.15],[1952,45.67],[1953,46.18],[1954,46.7],[1955,47.21],[1956,47.73],[1957,48.24],[1958,48.75],[1959,49.27],[1960,49.78],[1961,50.29],[1962,50.8],[1963,51.31],[1964,51.83],[1965,52.34],[1966,52.84],[1967,53.35],[1968,53.86],[1969,54.37],[1970,54.88],[1971,55.38],[1972,55.89],[1973,56.4],[1974,56.9],[1975,57.4],[1976,57.91],[1977,58.41],[1978,58.91],[1979,59.41],[1980,59.92],[1981,60.42],[1982,60.92],[1983,61.42],[1984,61.92],[1985,62.42],[1986,62.92],[1987,63.41],[1988,63.91],[1989,64.4],[1990,64.89],[1991,65.38],[1992,65.86],[1993,66.35],[1994,66.83],[1995,67.3],[1996,67.74],[1997,68.17],[1998,68.56],[1999,68.93],[2000,69.28],[2001,69.6],[2002,69.91],[2003,70.21],[2004,70.51],[2005,70.81],[2006,71.1],[2007,71.38],[2008,71.65],[2009,71.92]]},{"name":"Singapore","region":"East Asia & Pacific","income":[[1800,861.82],[1820,861.82],[1870,955.91],[1900,2181.19],[1901,2402.4],[1902,2270.96],[1903,1953.69],[1904,1888.04],[1905,2090],[1906,2349.06],[1907,2141.77],[1908,2460.38],[1909,2487.7],[1910,2702.41],[1911,2420.61],[1912,2070.75],[1913,1791.8],[1914,2141.85],[1915,2184.41],[1916,1805.95],[1917,2502.44],[1918,1956.12],[1919,2219.48],[1920,1911.46],[1921,2158.63],[1922,2851.87],[1923,2920.33],[1924,2856.89],[1925,3218.95],[1926,2656.8],[1927,1964.79],[1928,2334.94],[1929,3287.13],[1930,3016.41],[1931,2221.66],[1932,1933.51],[1933,2735.08],[1934,3226.93],[1935,3635.38],[1936,3611.6],[1937,3923.18],[1938,3326.45],[1939,3869.21],[1950,3533.04],[1951,3331.42],[1952,2315.14],[1953,2762.9],[1954,3166.36],[1955,2912.65],[1956,3204.49],[1957,2843.1],[1958,2849.15],[1959,3202.78],[1960,3426.03],[1961,3782.96],[1962,3674.74],[1963,3907.52],[1964,3827.09],[1965,4181.25],[1966,4527.16],[1967,4977.42],[1968,5566.63],[1969,6236.47],[1970,6993.76],[1971,7704.6],[1972,8597.76],[1973,9392.46],[1974,9803.18],[1975,9965.82],[1976,10537.03],[1977,11210.09],[1978,12025.08],[1979,13004.71],[1980,14103.68],[1981,14781.26],[1982,15169.16],[1983,16265.91],[1984,17312.22],[1985,17037.04],[1986,17417.21],[1987,18861.53],[1988,20542.93],[1989,21986.22],[1990,23142.8],[1991,23983.76],[1992,24769.89],[1993,27040.11],[1994,29303.24],[1995,30793.47],[1996,31934.8],[1997,33519.48],[1998,31918.24],[1999,33981.15],[2000,36834.85],[2001,34910.71],[2002,36023.11],[2003,37024.32],[2004,39796.67],[2005,41479],[2006,43689.11],[2007,45351.51],[2008,45196.46],[2009,43526.04]],"population":[[1800,30000],[1820,30000],[1850,56000],[1870,84000],[1890,157000],[1900,215000],[1913,323000],[1914,331000],[1915,341000],[1916,351000],[1917,360000],[1918,370000],[1919,380000],[1920,391000],[1921,418000],[1922,436000],[1923,458000],[1924,469000],[1925,492000],[1926,511000],[1927,532000],[1928,553000],[1929,575000],[1930,596000],[1931,563000],[1932,580000],[1933,515000],[1934,525000],[1935,572000],[1936,603000],[1937,651000],[1938,710000],[1939,728000],[1940,751000],[1941,769000],[1947,938000],[1948,961000],[1949,979000],[1950,1022100],[1951,1068100],[1952,1127000],[1953,1191800],[1954,1248200],[1955,1305500],[1956,1371600],[1957,1445929],[1958,1518800],[1959,1587200],[1960,1646400],[1961,1702400],[1962,1750200],[1963,1795000],[1964,1841600],[1965,1886900],[1966,1934400],[1967,1977600],[1968,2012000],[1969,2042500],[1970,2074507],[1971,2112900],[1972,2152400],[1973,2193000],[1974,2229800],[1975,2262600],[1976,2293300],[1977,2325300],[1978,2353600],[1979,2383500],[1980,2413900],[1981,2535368],[1982,2651869],[1983,2689263],[1984,2743297],[1985,2749897],[1986,2750069],[1987,2794552],[1988,2869266],[1989,2957752],[1990,3047100],[1991,3144576],[1992,3235865],[1993,3328154],[1994,3427979],[1995,3542866],[1996,3672284],[1997,3802309],[1998,3904528],[1999,3967753],[2000,4036753],[2001,4120228],[2002,4197776],[2003,4276788],[2004,4353893],[2005,4425720],[2006,4492150],[2007,4553009],[2008,4608167]],"lifeExpectancy":[[1800,29.1],[1819,29.1],[1824,34],[1920,34],[1950,59.25],[1951,59.54],[1952,60.11],[1953,60.69],[1954,61.25],[1955,61.81],[1956,62.37],[1957,62.92],[1958,63.47],[1959,64.01],[1960,64.54],[1961,65.06],[1962,65.56],[1963,66.05],[1964,66.51],[1965,66.95],[1966,67.37],[1967,67.76],[1968,68.13],[1969,68.48],[1970,68.8],[1971,69.11],[1972,69.4],[1973,69.68],[1974,69.95],[1975,70.2],[1976,70.44],[1977,70.66],[1978,70.86],[1979,71.05],[1980,71.24],[1981,71.44],[1982,71.66],[1983,71.92],[1984,72.21],[1985,72.55],[1986,72.94],[1987,73.39],[1988,73.87],[1989,74.37],[1990,74.87],[1991,75.34],[1992,75.77],[1993,76.13],[1994,76.43],[1995,76.69],[1996,76.91],[1997,77.13],[1998,77.37],[1999,77.64],[2000,77.93],[2001,78.26],[2002,78.61],[2003,78.96],[2004,79.3],[2005,79.63],[2006,79.92],[2007,80.18],[2008,80.4],[2009,80.58]]},{"name":"Solomon Islands","region":"East Asia & Pacific","income":[[1800,387.81],[1820,387.81],[1913,530.57],[1967,1304.6],[1968,1324.79],[1969,1245.96],[1970,1266.6],[1971,1251.52],[1972,864.97],[1973,929.95],[1974,1132.36],[1975,962.54],[1976,1057.78],[1977,1169.54],[1978,1231.07],[1979,1485.47],[1980,1348.15],[1981,1477.18],[1982,1467.4],[1983,1613.28],[1984,1579.09],[1985,1542.15],[1986,1792.38],[1987,1783.65],[1988,1797.15],[1989,1889.78],[1990,1870.13],[1991,1926.76],[1992,2109.89],[1993,2131.6],[1994,2261.81],[1995,2379.19],[1996,2350.19],[1997,2252.49],[1998,2230.07],[1999,2159.41],[2000,1802.02],[2001,1597.23],[2002,1530.5],[2003,1587.57],[2004,1671.75],[2005,1712],[2006,1780.28],[2007,1917.09],[2008,2001.01],[2009,1903.69]],"population":[[1800,56998],[1820,56998],[1931,94000],[1950,106647],[1951,107978],[1952,109424],[1953,110989],[1954,112677],[1955,114495],[1956,116446],[1957,118537],[1958,120775],[1959,123166],[1960,126363],[1961,129642],[1962,133007],[1963,136459],[1964,140000],[1965,143000],[1966,147000],[1967,151000],[1968,154000],[1969,158000],[1970,163000],[1971,168500],[1972,174500],[1973,180500],[1974,186500],[1975,193000],[1976,199500],[1977,207339],[1978,215444],[1979,223814],[1980,232452],[1981,241354],[1982,250516],[1983,259953],[1984,269681],[1985,279720],[1986,290061],[1987,300694],[1988,311637],[1989,322908],[1990,334524],[1991,346469],[1992,358713],[1993,371256],[1994,384099],[1995,397238],[1996,410641],[1997,424265],[1998,438082],[1999,452067],[2000,466194],[2001,480442],[2002,494786],[2003,509190],[2004,523617],[2005,538032],[2006,552438],[2007,566842],[2008,581208]],"lifeExpectancy":[[1800,25.7],[1944,25.7],[1950,44.37],[1951,44.62],[1952,45.13],[1953,45.64],[1954,46.15],[1955,46.65],[1956,47.16],[1957,47.66],[1958,48.17],[1959,48.67],[1960,49.17],[1961,49.68],[1962,50.18],[1963,50.68],[1964,51.19],[1965,51.7],[1966,52.2],[1967,52.71],[1968,53.22],[1969,53.73],[1970,54.24],[1971,54.77],[1972,55.31],[1973,55.85],[1974,56.39],[1975,56.91],[1976,57.41],[1977,57.87],[1978,58.27],[1979,58.58],[1980,58.77],[1981,58.77],[1982,58.56],[1983,58.19],[1984,57.69],[1985,57.15],[1986,56.66],[1987,56.33],[1988,56.21],[1989,56.32],[1990,56.66],[1991,57.16],[1992,57.76],[1993,58.38],[1994,58.97],[1995,59.53],[1996,60.06],[1997,60.57],[1998,61.09],[1999,61.62],[2000,62.15],[2001,62.69],[2002,63.23],[2003,63.77],[2004,64.3],[2005,64.81],[2006,65.31],[2007,65.79],[2008,66.24],[2009,66.66]]},{"name":"Taiwan","region":"East Asia & Pacific","income":[[1800,871],[1820,871],[1821,871],[1822,871],[1823,871],[1824,871],[1825,871],[1826,871],[1827,871],[1828,871],[1829,871],[1830,871],[1831,871],[1832,871],[1833,871],[1834,871],[1835,871],[1836,871],[1837,871],[1838,871],[1839,871],[1840,871],[1841,871],[1842,871],[1843,871],[1844,871],[1845,871],[1846,871],[1847,871],[1848,871],[1849,871],[1850,871],[1851,871],[1852,871],[1853,871],[1854,871],[1855,871],[1856,871],[1857,871],[1858,871],[1859,871],[1860,871],[1861,871],[1862,871],[1863,871],[1864,871],[1865,871],[1866,871],[1867,871],[1868,871],[1869,871],[1870,871],[1871,874],[1872,877],[1873,880],[1874,883],[1875,886],[1876,889],[1877,892],[1878,895],[1879,897],[1880,900],[1881,903],[1882,906],[1883,909],[1884,912],[1885,915],[1886,918],[1887,921],[1888,924],[1889,927],[1890,930],[1891,933],[1892,936],[1893,940],[1894,943],[1895,946],[1896,949],[1897,952],[1898,955],[1899,958],[1900,961],[1901,964],[1902,974],[1903,1151],[1904,1099],[1905,905],[1906,938],[1907,1066],[1908,1080],[1909,1218],[1910,1277],[1911,1131],[1912,1144],[1913,1177],[1914,1161],[1915,1176],[1916,1267],[1917,1400],[1918,1364],[1919,1356],[1920,1378],[1921,1442],[1922,1551],[1923,1611],[1924,1689],[1925,1753],[1926,1783],[1927,1732],[1928,1720],[1929,1807],[1930,1827],[1931,1821],[1932,1830],[1933,1783],[1934,1799],[1935,1944],[1936,1982],[1937,1931],[1938,1949],[1939,1849],[1940,1722],[1941,1598],[1942,1624],[1943,1456],[1944,1220],[1945,647],[1946,680],[1947,851],[1948,1052],[1949,1172],[1950,1304],[1951,1359],[1952,1468],[1953,1550],[1954,1638],[1955,1708],[1956,1737],[1957,1801],[1958,1859],[1959,1932],[1960,1984],[1961,2048],[1962,2137],[1963,2265],[1964,2465],[1965,2664],[1966,2821],[1967,3043],[1968,3244],[1969,3453],[1970,3757],[1971,4141],[1972,4590],[1973,5072],[1974,5025],[1975,5160],[1976,5754],[1977,6207],[1978,6909],[1979,7328],[1980,7672],[1981,7980],[1982,8086],[1983,8594],[1984,9353],[1985,9662],[1986,10624],[1987,11815],[1988,12588],[1989,13457],[1990,14123],[1991,14990],[1992,15965],[1993,16852],[1994,17866],[1995,18791],[1996,19754],[1997,20813],[1998,21493],[1999,22478],[2000,23525],[2001,22768],[2002,23495],[2003,24056],[2004,25332],[2005,26069],[2006,27359],[2007,28892],[2008,29004],[2009,28361]],"population":[[1800,2000000],[1820,2000000],[1850,2200000],[1870,2345000],[1890,2500000],[1900,2864000],[1901,2903000],[1902,2942000],[1903,2982000],[1904,3022000],[1905,3085000],[1906,3140000],[1907,3172000],[1908,3200000],[1909,3232000],[1910,3275000],[1911,3334000],[1912,3402000],[1913,3469000],[1914,3528000],[1915,3562000],[1916,3583000],[1917,3621000],[1918,3658000],[1919,3692000],[1920,3736000],[1921,3797000],[1922,3870000],[1923,3940000],[1924,4009000],[1925,4095000],[1926,4195000],[1927,4289000],[1928,4388000],[1929,4493000],[1930,4614000],[1931,4742000],[1932,4867000],[1933,4995000],[1934,5128000],[1935,5255000],[1936,5384000],[1937,5530000],[1938,5678000],[1939,5821000],[1940,5987000],[1941,6163000],[1942,6339000],[1943,6507000],[1944,6520000],[1945,6533000],[1946,6546000],[1947,6346000],[1948,6697000],[1949,7280000],[1950,7981454],[1951,8251326],[1952,8550362],[1953,8849962],[1954,9159966],[1955,9485858],[1956,9825346],[1957,10164215],[1958,10500314],[1959,10852996],[1960,11209160],[1961,11563348],[1962,11918938],[1963,12276610],[1964,12631480],[1965,12977635],[1966,13321002],[1967,13648692],[1968,13962358],[1969,14282297],[1970,14598316],[1971,14918496],[1972,15226039],[1973,15525588],[1974,15824103],[1975,16122188],[1976,16450056],[1977,16785196],[1978,17111535],[1979,17450136],[1980,17848320],[1981,18177430],[1982,18501390],[1983,18803390],[1984,19083348],[1985,19337363],[1986,19555581],[1987,19757799],[1988,19976096],[1989,20207541],[1990,20278957],[1991,20492997],[1992,20686918],[1993,20883467],[1994,21087873],[1995,21282829],[1996,21448723],[1997,21628605],[1998,21823024],[1999,21993460],[2000,22151237],[2001,22303700],[2002,22454239],[2003,22603000],[2004,22749838],[2005,22894384],[2006,23036087],[2007,23174294],[2008,23308370]],"lifeExpectancy":[[1800,28.3],[1906,28.3],[1907,29.5],[1908,30.9],[1909,31.8],[1910,33.9],[1911,33.9],[1912,34],[1913,33.3],[1914,31.9],[1915,28.5],[1916,30],[1917,31.4],[1918,26.1],[1919,31.2],[1920,27.6],[1921,30],[1922,36.6],[1923,35.3],[1924,37.1],[1925,34.2],[1926,37],[1927,39.6],[1928,40.3],[1929,40.9],[1930,41.5],[1931,41.2],[1932,41.3],[1933,42],[1934,42.6],[1935,42.8],[1936,42],[1937,42.5],[1938,43.7],[1939,43.6],[1940,43.8],[1950,54.6],[1951,55.1],[1952,58.5],[1953,60.3],[1954,62],[1955,62.4],[1956,62.5],[1957,62.4],[1958,64.2],[1959,64.2],[1960,64.4],[1961,64.9],[1962,65.2],[1963,66],[1964,66.7],[1965,67.4],[1966,67.4],[1967,67.5],[1968,67.6],[1969,68.6],[1970,68.69],[1971,69.1],[1972,69.39],[1973,69.45],[1974,69.81],[1975,70.07],[1976,70.43],[1977,70.59],[1978,71.16],[1979,71.31],[1980,71.54],[1981,71.65],[1982,72.16],[1983,72.15],[1984,72.81],[1985,72.99],[1986,73.12],[1987,73.39],[1988,73.21],[1989,73.52],[1990,73.8],[1991,74.27],[1992,74.25],[1993,74.53],[1994,74.7],[1995,74.51],[1996,74.69],[1997,75.21],[1998,75.4],[1999,75.51],[2000,76.07],[2001,76.45],[2002,76.93],[2003,77.13],[2004,77.25],[2005,77.25],[2006,77.99],[2007,78.16],[2008,78.36],[2009,78.6]]},{"name":"Thailand","region":"East Asia & Pacific","income":[[1800,496.98],[1820,496.98],[1870,530.09],[1890,683.55],[1913,732.93],[1929,691.86],[1938,720.58],[1950,712.4],[1951,740.14],[1952,757.8],[1953,815.46],[1954,783.36],[1955,823.98],[1956,810.62],[1957,793.58],[1958,796.7],[1959,865.04],[1960,940.12],[1961,958.99],[1962,1002.2],[1963,1050.68],[1964,1088.71],[1965,1140.35],[1966,1231.34],[1967,1295.46],[1968,1361.45],[1969,1426.51],[1970,1477.26],[1971,1503.77],[1972,1524.36],[1973,1633.64],[1974,1665.36],[1975,1707.84],[1976,1823.5],[1977,1961.22],[1978,2111.47],[1979,2176.35],[1980,2227.1],[1981,2313.84],[1982,2393.22],[1983,2482.77],[1984,2581.97],[1985,2659.44],[1986,2764.2],[1987,2982.65],[1988,3330.33],[1989,3684],[1990,4039.67],[1991,4327.9],[1992,4616.9],[1993,4940.01],[1994,5317.17],[1995,5734.62],[1996,6001.24],[1997,5852.63],[1998,5183.91],[1999,5366.1],[2000,5578.4],[2001,5656.2],[2002,5913.19],[2003,6273.01],[2004,6620.03],[2005,6869],[2006,7203.68],[2007,7505.99],[2008,7623.6],[2009,7376.17]],"population":[[1800,4665000],[1820,4665000],[1850,5230000],[1870,5775000],[1890,6670000],[1900,7320000],[1901,7413000],[1902,7507000],[1903,7602000],[1904,7699000],[1905,7797000],[1906,7896000],[1907,7996000],[1908,8098000],[1909,8201000],[1910,8305000],[1911,8431000],[1912,8559000],[1913,8689000],[1914,8822000],[1915,8957000],[1916,9094000],[1917,9232000],[1918,9418000],[1919,9608000],[1920,9802000],[1921,10000000],[1922,10202000],[1923,10435000],[1924,10673000],[1925,10916000],[1926,11165000],[1927,11419000],[1928,11734000],[1929,12058000],[1930,12392000],[1931,12735000],[1932,13087000],[1933,13399000],[1934,13718000],[1935,14045000],[1936,14379000],[1937,14721000],[1938,14980000],[1939,15244000],[1940,15513000],[1941,15787000],[1942,16060000],[1943,16462000],[1944,16868000],[1945,17284000],[1946,17710000],[1947,18148000],[1948,18569000],[1949,19000000],[1950,20041628],[1951,20653334],[1952,21289402],[1953,21964158],[1954,22684974],[1955,23451316],[1956,24244475],[1957,25041917],[1958,25845443],[1959,26667243],[1960,27512750],[1961,28376096],[1962,29263397],[1963,30173764],[1964,31106615],[1965,32061978],[1966,33035794],[1967,34024249],[1968,35028438],[1969,36049959],[1970,37090871],[1971,38201901],[1972,39276153],[1973,40302225],[1974,41305651],[1975,42272000],[1976,43221022],[1977,44148285],[1978,45056957],[1979,46003776],[1980,47025764],[1981,47936504],[1982,48827160],[1983,49694245],[1984,50533778],[1985,51341809],[1986,52129476],[1987,52910342],[1988,53683427],[1989,54445689],[1990,55196722],[1991,55930062],[1992,56667095],[1993,57400686],[1994,58128738],[1995,58855798],[1996,59559308],[1997,60216677],[1998,60846042],[1999,61394684],[2000,61862928],[2001,62334375],[2002,62806748],[2003,63271021],[2004,63731437],[2005,64185502],[2006,64631595],[2007,65068149],[2008,65493298]],"lifeExpectancy":[[1800,30.4],[1930,30.4],[1937,40.3],[1939,40.3],[1941,38.3],[1943,38.3],[1944,38.1],[1947,41.8],[1948,49.9],[1950,51],[1951,51.14],[1952,51.44],[1953,51.75],[1954,52.09],[1955,52.44],[1956,52.81],[1957,53.21],[1958,53.62],[1959,54.04],[1960,54.48],[1961,54.93],[1962,55.39],[1963,55.86],[1964,56.34],[1965,56.82],[1966,57.31],[1967,57.81],[1968,58.33],[1969,58.85],[1970,59.39],[1971,59.93],[1972,60.48],[1973,61.04],[1974,61.6],[1975,62.2],[1976,62.85],[1977,63.56],[1978,64.32],[1979,65.12],[1980,65.93],[1981,66.71],[1982,67.44],[1983,68.07],[1984,68.59],[1985,68.97],[1986,69.22],[1987,69.33],[1988,69.35],[1989,69.28],[1990,69.15],[1991,68.98],[1992,68.79],[1993,68.6],[1994,68.44],[1995,68.3],[1996,68.21],[1997,68.14],[1998,68.1],[1999,68.08],[2000,68.09],[2001,68.12],[2002,68.17],[2003,68.23],[2004,68.32],[2005,68.42],[2006,68.55],[2007,68.7],[2008,68.88],[2009,69.08]]},{"name":"Timor-Leste","region":"East Asia & Pacific","income":[[1800,514.12],[1820,518.73],[1850,539.86],[1870,554.8],[1913,723.93],[1950,704.35],[1973,1244.57],[1990,2257.73],[1991,2419.65],[1992,2577.99],[1993,2746.85],[1994,2945.92],[1995,3188.04],[1996,3547.23],[1997,3756.34],[1998,3749.92],[1999,2442.67],[2000,2743.19],[2001,3082.86],[2002,2726.03],[2003,2400.73],[2004,2268.32],[2005,2203],[2006,2018.5],[2007,2133.7],[2008,2352.74],[2009,2475.68]],"population":[[1800,137262],[1820,137262],[1926,442000],[1935,461000],[1950,435529],[1951,442862],[1952,450195],[1953,457529],[1954,464862],[1955,472195],[1956,479528],[1957,486861],[1958,494194],[1959,501527],[1960,508860],[1961,517732],[1962,526603],[1963,535474],[1964,544346],[1965,553217],[1966,562088],[1967,570960],[1968,579831],[1969,588702],[1970,597574],[1971,613767],[1972,629961],[1973,646155],[1974,661194],[1975,676582],[1976,652698],[1977,628814],[1978,604930],[1979,581046],[1980,557162],[1981,576054],[1982,594947],[1983,613839],[1984,632731],[1985,651624],[1986,670516],[1987,689409],[1988,708301],[1989,727194],[1990,746086],[1991,771238],[1992,796343],[1993,821171],[1994,845714],[1995,870147],[1996,894488],[1997,918738],[1998,942909],[1999,967073],[2000,846599],[2001,899109],[2002,952618],[2003,997853],[2004,1019252],[2005,1040880],[2006,1062777],[2007,1084971],[2008,1107432],[2009,1130120]],"lifeExpectancy":[[1950,28.97],[1951,29.22],[1952,29.73],[1953,30.23],[1954,30.73],[1955,31.24],[1956,31.74],[1957,32.24],[1958,32.74],[1959,33.24],[1960,33.74],[1961,34.24],[1962,34.74],[1963,35.24],[1964,35.74],[1965,36.28],[1966,36.9],[1967,37.6],[1968,38.34],[1969,39.05],[1970,39.53],[1971,39.58],[1972,39.09],[1973,38.09],[1974,36.67],[1975,35.11],[1976,33.77],[1977,32.94],[1978,32.81],[1979,33.41],[1980,34.65],[1981,36.3],[1982,38.02],[1983,39.56],[1984,40.82],[1985,41.79],[1986,42.54],[1987,43.23],[1988,43.98],[1989,44.83],[1990,45.79],[1991,46.86],[1992,47.97],[1993,49.08],[1994,50.19],[1995,51.27],[1996,52.33],[1997,53.36],[1998,54.36],[1999,55.32],[2000,56.23],[2001,57.06],[2002,57.83],[2003,58.51],[2004,59.13],[2005,59.69],[2006,60.2],[2007,60.68],[2008,61.14],[2009,61.6]]},{"name":"Tokelau","region":"East Asia & Pacific","income":[[2005,889.43]],"population":[[1800,1009],[1843,1000],[1850,1000],[1900,350],[1950,1570],[1955,1599],[1960,1862],[1965,1853],[1970,1581],[1975,1569],[1980,1556],[1985,1593],[1990,1602],[1995,1478],[2000,1517],[2005,1401]],"lifeExpectancy":[[2006,69]]},{"name":"Tonga","region":"East Asia & Pacific","income":[[1800,667.71],[1820,667.71],[1913,902.69],[1973,1874.54],[1974,1955.67],[1975,2022.32],[1976,2036.5],[1977,2116.11],[1978,2129.73],[1979,2148.21],[1980,2479.03],[1981,2836.58],[1982,3287.05],[1983,3523.52],[1984,3626.13],[1985,3891.13],[1986,3979.68],[1987,4088.36],[1988,3988.06],[1989,3975.5],[1990,3867.01],[1991,4087.24],[1992,4070.07],[1993,4195.1],[1994,4378.54],[1995,4490.38],[1996,4540.02],[1997,4432.97],[1998,4539.39],[1999,4718.65],[2000,4886.27],[2001,5026],[2002,5084.22],[2003,5228.76],[2004,5270.86],[2005,5135],[2006,5106.83],[2007,5114.47],[2008,5142.53],[2009,5104.06]],"population":[[1800,18658],[1843,18500],[1850,18500],[1900,20000],[1901,21000],[1911,23000],[1921,25000],[1931,29000],[1939,34000],[1950,45744],[1951,47378],[1952,49066],[1953,50808],[1954,52607],[1955,54465],[1956,56428],[1957,58168],[1958,59962],[1959,61811],[1960,63718],[1961,65683],[1962,67709],[1963,69797],[1964,71949],[1965,74168],[1966,76456],[1967,78816],[1968,81249],[1969,81900],[1970,83100],[1971,84300],[1972,85600],[1973,86800],[1974,87700],[1975,89200],[1976,90200],[1977,90593],[1978,90977],[1979,91352],[1980,91361],[1981,91769],[1982,92201],[1983,92628],[1984,92883],[1985,93352],[1986,93744],[1987,93982],[1988,93290],[1989,92744],[1990,92073],[1991,91218],[1992,92094],[1993,93734],[1994,94398],[1995,95158],[1996,96165],[1997,97399],[1998,98835],[1999,100475],[2000,102321],[2001,104227],[2002,106137],[2003,108141],[2004,110237],[2005,112422],[2006,114689],[2007,116921],[2008,118993]],"lifeExpectancy":[[1950,57.91],[1951,58.1],[1952,58.47],[1953,58.84],[1954,59.2],[1955,59.58],[1956,59.95],[1957,60.32],[1958,60.69],[1959,61.06],[1960,61.43],[1961,61.8],[1962,62.16],[1963,62.52],[1964,62.88],[1965,63.23],[1966,63.58],[1967,63.93],[1968,64.27],[1969,64.61],[1970,64.94],[1971,65.26],[1972,65.56],[1973,65.83],[1974,66.09],[1975,66.33],[1976,66.56],[1977,66.79],[1978,67.02],[1979,67.26],[1980,67.5],[1981,67.75],[1982,68],[1983,68.24],[1984,68.48],[1985,68.7],[1986,68.91],[1987,69.1],[1988,69.27],[1989,69.42],[1990,69.55],[1991,69.67],[1992,69.78],[1993,69.89],[1994,70],[1995,70.11],[1996,70.22],[1997,70.35],[1998,70.47],[1999,70.61],[2000,70.75],[2001,70.88],[2002,71.02],[2003,71.16],[2004,71.3],[2005,71.43],[2006,71.56],[2007,71.69],[2008,71.83],[2009,71.96]]},{"name":"Vietnam","region":"East Asia & Pacific","income":[[1800,459.71],[1820,459.71],[1870,440.8],[1913,634.17],[1950,573.94],[1951,589.87],[1952,605.07],[1953,621.19],[1954,638.49],[1955,654.19],[1956,665.99],[1957,676.29],[1958,684.6],[1959,690.41],[1960,696.95],[1961,708.2],[1962,772.05],[1963,769.51],[1964,780.9],[1965,764.66],[1966,749.36],[1967,637.12],[1968,609.88],[1969,644.57],[1970,641.06],[1971,657.68],[1972,699.5],[1973,729.17],[1974,683.26],[1975,619.17],[1976,705.88],[1977,713.54],[1978,702.65],[1979,693.39],[1980,660.36],[1981,668.83],[1982,707.24],[1983,729.51],[1984,777.06],[1985,805.22],[1986,809.93],[1987,820.8],[1988,851.42],[1989,868.8],[1990,893.88],[1991,927.11],[1992,989.02],[1993,1049.36],[1994,1121.67],[1995,1208.14],[1996,1300.38],[1997,1385.9],[1998,1445.95],[1999,1495.63],[2000,1577.53],[2001,1666.51],[2002,1764.46],[2003,1872.13],[2004,1996.87],[2005,2142],[2006,2289.34],[2007,2453.8],[2008,2574.44],[2009,2679.34]],"population":[[1800,6551000],[1820,6551000],[1870,10528000],[1913,19339000],[1950,25348144],[1951,25793577],[1952,26246839],[1953,26724094],[1954,27210027],[1955,27738063],[1956,28327287],[1957,28998543],[1958,29775192],[1959,30682902],[1960,31656282],[1961,32701357],[1962,33796140],[1963,34932464],[1964,36099052],[1965,37258369],[1966,38378468],[1967,39463910],[1968,40511528],[1969,41542068],[1970,42576676],[1971,43614366],[1972,44655014],[1973,45736496],[1974,46902295],[1975,48075207],[1976,49273016],[1977,50533506],[1978,51662728],[1979,52668447],[1980,53715202],[1981,54902677],[1982,56142181],[1983,57436347],[1984,58762040],[1985,60093068],[1986,61439826],[1987,62826491],[1988,64211347],[1989,65868481],[1990,67282704],[1991,68639527],[1992,69940728],[1993,71243961],[1994,72538927],[1995,73772337],[1996,74941175],[1997,76048996],[1998,77092383],[1999,78089676],[2000,79060410],[2001,79999453],[2002,80908147],[2003,81790803],[2004,82662800],[2005,83535576],[2006,84402966],[2007,85262356],[2008,86116559]],"lifeExpectancy":[[1800,32],[1930,32],[1936,33],[1950,39.42],[1951,39.67],[1952,40.17],[1953,40.66],[1954,41.16],[1955,41.65],[1956,42.15],[1957,42.64],[1958,43.13],[1959,43.63],[1960,44.13],[1961,44.62],[1962,45.12],[1963,45.61],[1964,46.11],[1965,46.6],[1966,47.06],[1967,47.49],[1968,47.91],[1969,48.34],[1970,48.82],[1971,49.4],[1972,50.11],[1973,50.95],[1974,51.92],[1975,52.96],[1976,54.01],[1977,55.02],[1978,55.93],[1979,56.74],[1980,57.45],[1981,58.09],[1982,58.71],[1983,59.35],[1984,60.04],[1985,60.8],[1986,61.63],[1987,62.53],[1988,63.47],[1989,64.44],[1990,65.41],[1991,66.35],[1992,67.24],[1993,68.05],[1994,68.79],[1995,69.45],[1996,70.04],[1997,70.59],[1998,71.11],[1999,71.61],[2000,72.08],[2001,72.51],[2002,72.91],[2003,73.26],[2004,73.56],[2005,73.83],[2006,74.07],[2007,74.29],[2008,74.5],[2009,74.7]]},{"name":"Vanuatu","region":"East Asia & Pacific","income":[[1800,829.58],[1820,829.58],[1913,1121.52],[1973,2282.11],[1974,2972.51],[1975,2746.96],[1976,2713.85],[1977,2605.69],[1978,2972.59],[1979,2999.82],[1980,2584.81],[1981,2624.32],[1982,2834.89],[1983,3359.3],[1984,3507.64],[1985,3464.31],[1986,3314.97],[1987,3251.27],[1988,3191.44],[1989,3217.72],[1990,3281.56],[1991,3574.86],[1992,3443.42],[1993,3492.04],[1994,3482.08],[1995,3555.62],[1996,3729.75],[1997,3840.47],[1998,3936.02],[1999,3741.1],[2000,3762.19],[2001,3575.45],[2002,3234.46],[2003,3251.04],[2004,3340.51],[2005,3477],[2006,3632.57],[2007,3779.08],[2008,3916.57],[2009,3943.3]],"population":[[1800,27791],[1820,27791],[1950,52000],[1951,53262],[1952,54554],[1953,55878],[1954,57233],[1955,58622],[1956,60044],[1957,61501],[1958,62993],[1959,64522],[1960,66087],[1961,67691],[1962,69333],[1963,71015],[1964,72577],[1965,74195],[1966,76132],[1967,78219],[1968,80571],[1969,82905],[1970,85400],[1971,88100],[1972,90800],[1973,93700],[1974,96600],[1975,99700],[1976,102800],[1977,106000],[1978,109400],[1979,113399],[1980,116771],[1981,120223],[1982,123745],[1983,127335],[1984,130982],[1985,134677],[1986,138418],[1987,142207],[1988,146040],[1989,149913],[1990,153785],[1991,157616],[1992,161399],[1993,165127],[1994,168793],[1995,172387],[1996,175927],[1997,179428],[1998,182882],[1999,186282],[2000,189618],[2001,192910],[2002,196178],[2003,199414],[2004,202609],[2005,205754],[2006,208869],[2007,211971],[2008,215053]],"lifeExpectancy":[[1950,40.8],[1951,41.1],[1952,41.7],[1953,42.3],[1954,42.9],[1955,43.5],[1956,44.1],[1957,44.7],[1958,45.3],[1959,45.9],[1960,46.5],[1961,47.1],[1962,47.7],[1963,48.3],[1964,48.9],[1965,49.5],[1966,50.1],[1967,50.7],[1968,51.3],[1969,51.9],[1970,52.5],[1971,53.1],[1972,53.7],[1973,54.3],[1974,54.9],[1975,55.5],[1976,56.12],[1977,56.74],[1978,57.36],[1979,57.98],[1980,58.58],[1981,59.14],[1982,59.65],[1983,60.11],[1984,60.52],[1985,60.92],[1986,61.34],[1987,61.8],[1988,62.32],[1989,62.9],[1990,63.51],[1991,64.11],[1992,64.66],[1993,65.14],[1994,65.53],[1995,65.87],[1996,66.15],[1997,66.44],[1998,66.73],[1999,67.06],[2000,67.42],[2001,67.8],[2002,68.18],[2003,68.56],[2004,68.92],[2005,69.26],[2006,69.58],[2007,69.89],[2008,70.2],[2009,70.5]]}] \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html
deleted file mode 100755
index 8dace04b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html
+++ /dev/null
@@ -1,4125 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<html>
-<head>
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y: scroll;
-}
-
-.chart {
- padding: 0;
-}
-
-svg {
- position: relative;
- overflow: hidden;
- width: 960px;
- height: 500px;
- font: 10px sans-serif;
-}
-
-</style>
-</head>
-<body>
-
-<div id="chart1" class="chart">
- <svg></svg>
-</div>
-
-<script type="text/javascript" src="../lib/d3.v3.js"></script>
-<script type="text/javascript" src="../nv.d3.js"></script>
-<script type="text/javascript" src="../src/utils.js"></script>
-<script type="text/javascript" src="../src/models/parallelCoordinates.js"></script>
-
-<script>
- var chart;
- nv.addGraph(function() {
-
- chart = nv.models.parallelCoordinates()
- .dimensions(["economy (mpg)", "cylinders", "displacement (cc)", "power (hp)", "weight (lb)", "0-60 mph (s)", "year"]);
-
- d3.select('#chart1 svg')
- .datum(data)
- .call(chart);
-
- // chart.dispatch.on('brush', function(e) {
- // nv.log(e);
- // });
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-
- });
-
-function data() {
- return [
- {
- "name": "AMC Ambassador Brougham",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "360",
- "power (hp)": "175",
- "weight (lb)": "3821",
- "0-60 mph (s)": "11",
- "year": "73"
- },
- {
- "name": "AMC Ambassador DPL",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "390",
- "power (hp)": "190",
- "weight (lb)": "3850",
- "0-60 mph (s)": "8.5",
- "year": "70"
- },
- {
- "name": "AMC Ambassador SST",
- "economy (mpg)": "17",
- "cylinders": "8",
- "displacement (cc)": "304",
- "power (hp)": "150",
- "weight (lb)": "3672",
- "0-60 mph (s)": "11.5",
- "year": "72"
- },
- {
- "name": "AMC Concord DL 6",
- "economy (mpg)": "20.2",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "90",
- "weight (lb)": "3265",
- "0-60 mph (s)": "18.2",
- "year": "79"
- },
- {
- "name": "AMC Concord DL",
- "economy (mpg)": "18.1",
- "cylinders": "6",
- "displacement (cc)": "258",
- "power (hp)": "120",
- "weight (lb)": "3410",
- "0-60 mph (s)": "15.1",
- "year": "78"
- },
- {
- "name": "AMC Concord DL",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "",
- "weight (lb)": "3035",
- "0-60 mph (s)": "20.5",
- "year": "82"
- },
- {
- "name": "AMC Concord",
- "economy (mpg)": "19.4",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "90",
- "weight (lb)": "3210",
- "0-60 mph (s)": "17.2",
- "year": "78"
- },
- {
- "name": "AMC Concord",
- "economy (mpg)": "24.3",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "90",
- "weight (lb)": "3003",
- "0-60 mph (s)": "20.1",
- "year": "80"
- },
- {
- "name": "AMC Gremlin",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "100",
- "weight (lb)": "2789",
- "0-60 mph (s)": "15",
- "year": "73"
- },
- {
- "name": "AMC Gremlin",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "100",
- "weight (lb)": "2634",
- "0-60 mph (s)": "13",
- "year": "71"
- },
- {
- "name": "AMC Gremlin",
- "economy (mpg)": "20",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "100",
- "weight (lb)": "2914",
- "0-60 mph (s)": "16",
- "year": "75"
- },
- {
- "name": "AMC Gremlin",
- "economy (mpg)": "21",
- "cylinders": "6",
- "displacement (cc)": "199",
- "power (hp)": "90",
- "weight (lb)": "2648",
- "0-60 mph (s)": "15",
- "year": "70"
- },
- {
- "name": "AMC Hornet Sportabout (Wagon)",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "258",
- "power (hp)": "110",
- "weight (lb)": "2962",
- "0-60 mph (s)": "13.5",
- "year": "71"
- },
- {
- "name": "AMC Hornet",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "199",
- "power (hp)": "97",
- "weight (lb)": "2774",
- "0-60 mph (s)": "15.5",
- "year": "70"
- },
- {
- "name": "AMC Hornet",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "100",
- "weight (lb)": "2945",
- "0-60 mph (s)": "16",
- "year": "73"
- },
- {
- "name": "AMC Hornet",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "100",
- "weight (lb)": "2901",
- "0-60 mph (s)": "16",
- "year": "74"
- },
- {
- "name": "AMC Hornet",
- "economy (mpg)": "22.5",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "90",
- "weight (lb)": "3085",
- "0-60 mph (s)": "17.6",
- "year": "76"
- },
- {
- "name": "AMC Matador (Wagon)",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "304",
- "power (hp)": "150",
- "weight (lb)": "4257",
- "0-60 mph (s)": "15.5",
- "year": "74"
- },
- {
- "name": "AMC Matador (Wagon)",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "304",
- "power (hp)": "150",
- "weight (lb)": "3892",
- "0-60 mph (s)": "12.5",
- "year": "72"
- },
- {
- "name": "AMC Matador",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "304",
- "power (hp)": "150",
- "weight (lb)": "3672",
- "0-60 mph (s)": "11.5",
- "year": "73"
- },
- {
- "name": "AMC Matador",
- "economy (mpg)": "15",
- "cylinders": "6",
- "displacement (cc)": "258",
- "power (hp)": "110",
- "weight (lb)": "3730",
- "0-60 mph (s)": "19",
- "year": "75"
- },
- {
- "name": "AMC Matador",
- "economy (mpg)": "15.5",
- "cylinders": "8",
- "displacement (cc)": "304",
- "power (hp)": "120",
- "weight (lb)": "3962",
- "0-60 mph (s)": "13.9",
- "year": "76"
- },
- {
- "name": "AMC Matador",
- "economy (mpg)": "16",
- "cylinders": "6",
- "displacement (cc)": "258",
- "power (hp)": "110",
- "weight (lb)": "3632",
- "0-60 mph (s)": "18",
- "year": "74"
- },
- {
- "name": "AMC Matador",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "100",
- "weight (lb)": "3288",
- "0-60 mph (s)": "15.5",
- "year": "71"
- },
- {
- "name": "AMC Pacer D/L",
- "economy (mpg)": "17.5",
- "cylinders": "6",
- "displacement (cc)": "258",
- "power (hp)": "95",
- "weight (lb)": "3193",
- "0-60 mph (s)": "17.8",
- "year": "76"
- },
- {
- "name": "AMC Pacer",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "90",
- "weight (lb)": "3211",
- "0-60 mph (s)": "17",
- "year": "75"
- },
- {
- "name": "AMC Rebel SST (Wagon)",
- "economy (mpg)": "",
- "cylinders": "8",
- "displacement (cc)": "360",
- "power (hp)": "175",
- "weight (lb)": "3850",
- "0-60 mph (s)": "11",
- "year": "70"
- },
- {
- "name": "AMC Rebel SST",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "304",
- "power (hp)": "150",
- "weight (lb)": "3433",
- "0-60 mph (s)": "12",
- "year": "70"
- },
- {
- "name": "AMC Spirit DL",
- "economy (mpg)": "27.4",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "80",
- "weight (lb)": "2670",
- "0-60 mph (s)": "15",
- "year": "79"
- },
- {
- "name": "Audi 100 LS",
- "economy (mpg)": "20",
- "cylinders": "4",
- "displacement (cc)": "114",
- "power (hp)": "91",
- "weight (lb)": "2582",
- "0-60 mph (s)": "14",
- "year": "73"
- },
- {
- "name": "Audi 100 LS",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "115",
- "power (hp)": "95",
- "weight (lb)": "2694",
- "0-60 mph (s)": "15",
- "year": "75"
- },
- {
- "name": "Audi 100 LS",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "107",
- "power (hp)": "90",
- "weight (lb)": "2430",
- "0-60 mph (s)": "14.5",
- "year": "70"
- },
- {
- "name": "Audi 4000",
- "economy (mpg)": "34.3",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "78",
- "weight (lb)": "2188",
- "0-60 mph (s)": "15.8",
- "year": "80"
- },
- {
- "name": "Audi 5000",
- "economy (mpg)": "20.3",
- "cylinders": "5",
- "displacement (cc)": "131",
- "power (hp)": "103",
- "weight (lb)": "2830",
- "0-60 mph (s)": "15.9",
- "year": "78"
- },
- {
- "name": "Audi 5000S (Diesel)",
- "economy (mpg)": "36.4",
- "cylinders": "5",
- "displacement (cc)": "121",
- "power (hp)": "67",
- "weight (lb)": "2950",
- "0-60 mph (s)": "19.9",
- "year": "80"
- },
- {
- "name": "Audi Fox",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "83",
- "weight (lb)": "2219",
- "0-60 mph (s)": "16.5",
- "year": "74"
- },
- {
- "name": "BMW 2002",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "113",
- "weight (lb)": "2234",
- "0-60 mph (s)": "12.5",
- "year": "70"
- },
- {
- "name": "BMW 320i",
- "economy (mpg)": "21.5",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "110",
- "weight (lb)": "2600",
- "0-60 mph (s)": "12.8",
- "year": "77"
- },
- {
- "name": "Buick Century 350",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "175",
- "weight (lb)": "4100",
- "0-60 mph (s)": "13",
- "year": "73"
- },
- {
- "name": "Buick Century Limited",
- "economy (mpg)": "25",
- "cylinders": "6",
- "displacement (cc)": "181",
- "power (hp)": "110",
- "weight (lb)": "2945",
- "0-60 mph (s)": "16.4",
- "year": "82"
- },
- {
- "name": "Buick Century Luxus (Wagon)",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "150",
- "weight (lb)": "4699",
- "0-60 mph (s)": "14.5",
- "year": "74"
- },
- {
- "name": "Buick Century Special",
- "economy (mpg)": "20.6",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "105",
- "weight (lb)": "3380",
- "0-60 mph (s)": "15.8",
- "year": "78"
- },
- {
- "name": "Buick Century",
- "economy (mpg)": "17",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "110",
- "weight (lb)": "3907",
- "0-60 mph (s)": "21",
- "year": "75"
- },
- {
- "name": "Buick Century",
- "economy (mpg)": "22.4",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "110",
- "weight (lb)": "3415",
- "0-60 mph (s)": "15.8",
- "year": "81"
- },
- {
- "name": "Buick Electra 225 Custom",
- "economy (mpg)": "12",
- "cylinders": "8",
- "displacement (cc)": "455",
- "power (hp)": "225",
- "weight (lb)": "4951",
- "0-60 mph (s)": "11",
- "year": "73"
- },
- {
- "name": "Buick Estate Wagon (Wagon)",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "455",
- "power (hp)": "225",
- "weight (lb)": "3086",
- "0-60 mph (s)": "10",
- "year": "70"
- },
- {
- "name": "Buick Estate Wagon (Wagon)",
- "economy (mpg)": "16.9",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "155",
- "weight (lb)": "4360",
- "0-60 mph (s)": "14.9",
- "year": "79"
- },
- {
- "name": "Buick Lesabre Custom",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "155",
- "weight (lb)": "4502",
- "0-60 mph (s)": "13.5",
- "year": "72"
- },
- {
- "name": "Buick Opel Isuzu Deluxe",
- "economy (mpg)": "30",
- "cylinders": "4",
- "displacement (cc)": "111",
- "power (hp)": "80",
- "weight (lb)": "2155",
- "0-60 mph (s)": "14.8",
- "year": "77"
- },
- {
- "name": "Buick Regal Sport Coupe (Turbo)",
- "economy (mpg)": "17.7",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "165",
- "weight (lb)": "3445",
- "0-60 mph (s)": "13.4",
- "year": "78"
- },
- {
- "name": "Buick Skyhawk",
- "economy (mpg)": "21",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "110",
- "weight (lb)": "3039",
- "0-60 mph (s)": "15",
- "year": "75"
- },
- {
- "name": "Buick Skylark 320",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "165",
- "weight (lb)": "3693",
- "0-60 mph (s)": "11.5",
- "year": "70"
- },
- {
- "name": "Buick Skylark Limited",
- "economy (mpg)": "28.4",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "90",
- "weight (lb)": "2670",
- "0-60 mph (s)": "16",
- "year": "79"
- },
- {
- "name": "Buick Skylark",
- "economy (mpg)": "20.5",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "105",
- "weight (lb)": "3425",
- "0-60 mph (s)": "16.9",
- "year": "77"
- },
- {
- "name": "Buick Skylark",
- "economy (mpg)": "26.6",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "84",
- "weight (lb)": "2635",
- "0-60 mph (s)": "16.4",
- "year": "81"
- },
- {
- "name": "Cadillac Eldorado",
- "economy (mpg)": "23",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "125",
- "weight (lb)": "3900",
- "0-60 mph (s)": "17.4",
- "year": "79"
- },
- {
- "name": "Cadillac Seville",
- "economy (mpg)": "16.5",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "180",
- "weight (lb)": "4380",
- "0-60 mph (s)": "12.1",
- "year": "76"
- },
- {
- "name": "Chevroelt Chevelle Malibu",
- "economy (mpg)": "16",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "105",
- "weight (lb)": "3897",
- "0-60 mph (s)": "18.5",
- "year": "75"
- },
- {
- "name": "Chevrolet Bel Air",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "145",
- "weight (lb)": "4440",
- "0-60 mph (s)": "14",
- "year": "75"
- },
- {
- "name": "Chevrolet Camaro",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "90",
- "weight (lb)": "2950",
- "0-60 mph (s)": "17.3",
- "year": "82"
- },
- {
- "name": "Chevrolet Caprice Classic",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "150",
- "weight (lb)": "4464",
- "0-60 mph (s)": "12",
- "year": "73"
- },
- {
- "name": "Chevrolet Caprice Classic",
- "economy (mpg)": "17",
- "cylinders": "8",
- "displacement (cc)": "305",
- "power (hp)": "130",
- "weight (lb)": "3840",
- "0-60 mph (s)": "15.4",
- "year": "79"
- },
- {
- "name": "Chevrolet Caprice Classic",
- "economy (mpg)": "17.5",
- "cylinders": "8",
- "displacement (cc)": "305",
- "power (hp)": "145",
- "weight (lb)": "3880",
- "0-60 mph (s)": "12.5",
- "year": "77"
- },
- {
- "name": "Chevrolet Cavalier 2-Door",
- "economy (mpg)": "34",
- "cylinders": "4",
- "displacement (cc)": "112",
- "power (hp)": "88",
- "weight (lb)": "2395",
- "0-60 mph (s)": "18",
- "year": "82"
- },
- {
- "name": "Chevrolet Cavalier Wagon",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "112",
- "power (hp)": "88",
- "weight (lb)": "2640",
- "0-60 mph (s)": "18.6",
- "year": "82"
- },
- {
- "name": "Chevrolet Cavalier",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "112",
- "power (hp)": "88",
- "weight (lb)": "2605",
- "0-60 mph (s)": "19.6",
- "year": "82"
- },
- {
- "name": "Chevrolet Chevelle Concours (Wagon)",
- "economy (mpg)": "",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "165",
- "weight (lb)": "4142",
- "0-60 mph (s)": "11.5",
- "year": "70"
- },
- {
- "name": "Chevrolet Chevelle Concours (Wagon)",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "307",
- "power (hp)": "130",
- "weight (lb)": "4098",
- "0-60 mph (s)": "14",
- "year": "72"
- },
- {
- "name": "Chevrolet Chevelle Malibu Classic",
- "economy (mpg)": "16",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "100",
- "weight (lb)": "3781",
- "0-60 mph (s)": "17",
- "year": "74"
- },
- {
- "name": "Chevrolet Chevelle Malibu Classic",
- "economy (mpg)": "17.5",
- "cylinders": "8",
- "displacement (cc)": "305",
- "power (hp)": "140",
- "weight (lb)": "4215",
- "0-60 mph (s)": "13",
- "year": "76"
- },
- {
- "name": "Chevrolet Chevelle Malibu",
- "economy (mpg)": "17",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "100",
- "weight (lb)": "3329",
- "0-60 mph (s)": "15.5",
- "year": "71"
- },
- {
- "name": "Chevrolet Chevelle Malibu",
- "economy (mpg)": "18",
- "cylinders": "8",
- "displacement (cc)": "307",
- "power (hp)": "130",
- "weight (lb)": "3504",
- "0-60 mph (s)": "12",
- "year": "70"
- },
- {
- "name": "Chevrolet Chevette",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "52",
- "weight (lb)": "2035",
- "0-60 mph (s)": "22.2",
- "year": "76"
- },
- {
- "name": "Chevrolet Chevette",
- "economy (mpg)": "30",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "68",
- "weight (lb)": "2155",
- "0-60 mph (s)": "16.5",
- "year": "78"
- },
- {
- "name": "Chevrolet Chevette",
- "economy (mpg)": "30.5",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "63",
- "weight (lb)": "2051",
- "0-60 mph (s)": "17",
- "year": "77"
- },
- {
- "name": "Chevrolet Chevette",
- "economy (mpg)": "32.1",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "70",
- "weight (lb)": "2120",
- "0-60 mph (s)": "15.5",
- "year": "80"
- },
- {
- "name": "Chevrolet Citation",
- "economy (mpg)": "23.5",
- "cylinders": "6",
- "displacement (cc)": "173",
- "power (hp)": "110",
- "weight (lb)": "2725",
- "0-60 mph (s)": "12.6",
- "year": "81"
- },
- {
- "name": "Chevrolet Citation",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "90",
- "weight (lb)": "2678",
- "0-60 mph (s)": "16.5",
- "year": "80"
- },
- {
- "name": "Chevrolet Citation",
- "economy (mpg)": "28.8",
- "cylinders": "6",
- "displacement (cc)": "173",
- "power (hp)": "115",
- "weight (lb)": "2595",
- "0-60 mph (s)": "11.3",
- "year": "79"
- },
- {
- "name": "Chevrolet Concours",
- "economy (mpg)": "17.5",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "110",
- "weight (lb)": "3520",
- "0-60 mph (s)": "16.4",
- "year": "77"
- },
- {
- "name": "Chevrolet Impala",
- "economy (mpg)": "11",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "150",
- "weight (lb)": "4997",
- "0-60 mph (s)": "14",
- "year": "73"
- },
- {
- "name": "Chevrolet Impala",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "165",
- "weight (lb)": "4274",
- "0-60 mph (s)": "12",
- "year": "72"
- },
- {
- "name": "Chevrolet Impala",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "165",
- "weight (lb)": "4209",
- "0-60 mph (s)": "12",
- "year": "71"
- },
- {
- "name": "Chevrolet Impala",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "454",
- "power (hp)": "220",
- "weight (lb)": "4354",
- "0-60 mph (s)": "9",
- "year": "70"
- },
- {
- "name": "Chevrolet Malibu Classic (Wagon)",
- "economy (mpg)": "19.2",
- "cylinders": "8",
- "displacement (cc)": "267",
- "power (hp)": "125",
- "weight (lb)": "3605",
- "0-60 mph (s)": "15",
- "year": "79"
- },
- {
- "name": "Chevrolet Malibu",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "145",
- "weight (lb)": "3988",
- "0-60 mph (s)": "13",
- "year": "73"
- },
- {
- "name": "Chevrolet Malibu",
- "economy (mpg)": "20.5",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "95",
- "weight (lb)": "3155",
- "0-60 mph (s)": "18.2",
- "year": "78"
- },
- {
- "name": "Chevrolet Monte Carlo Landau",
- "economy (mpg)": "15.5",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "170",
- "weight (lb)": "4165",
- "0-60 mph (s)": "11.4",
- "year": "77"
- },
- {
- "name": "Chevrolet Monte Carlo Landau",
- "economy (mpg)": "19.2",
- "cylinders": "8",
- "displacement (cc)": "305",
- "power (hp)": "145",
- "weight (lb)": "3425",
- "0-60 mph (s)": "13.2",
- "year": "78"
- },
- {
- "name": "Chevrolet Monte Carlo S",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "145",
- "weight (lb)": "4082",
- "0-60 mph (s)": "13",
- "year": "73"
- },
- {
- "name": "Chevrolet Monte Carlo",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "150",
- "weight (lb)": "3761",
- "0-60 mph (s)": "9.5",
- "year": "70"
- },
- {
- "name": "Chevrolet Monza 2+2",
- "economy (mpg)": "20",
- "cylinders": "8",
- "displacement (cc)": "262",
- "power (hp)": "110",
- "weight (lb)": "3221",
- "0-60 mph (s)": "13.5",
- "year": "75"
- },
- {
- "name": "Chevrolet Nova Custom",
- "economy (mpg)": "16",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "100",
- "weight (lb)": "3278",
- "0-60 mph (s)": "18",
- "year": "73"
- },
- {
- "name": "Chevrolet Nova",
- "economy (mpg)": "15",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "100",
- "weight (lb)": "3336",
- "0-60 mph (s)": "17",
- "year": "74"
- },
- {
- "name": "Chevrolet Nova",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "105",
- "weight (lb)": "3459",
- "0-60 mph (s)": "16",
- "year": "75"
- },
- {
- "name": "Chevrolet Nova",
- "economy (mpg)": "22",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "105",
- "weight (lb)": "3353",
- "0-60 mph (s)": "14.5",
- "year": "76"
- },
- {
- "name": "Chevrolet Vega (Wagon)",
- "economy (mpg)": "22",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "72",
- "weight (lb)": "2408",
- "0-60 mph (s)": "19",
- "year": "71"
- },
- {
- "name": "Chevrolet Vega 2300",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "90",
- "weight (lb)": "2264",
- "0-60 mph (s)": "15.5",
- "year": "71"
- },
- {
- "name": "Chevrolet Vega",
- "economy (mpg)": "20",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "90",
- "weight (lb)": "2408",
- "0-60 mph (s)": "19.5",
- "year": "72"
- },
- {
- "name": "Chevrolet Vega",
- "economy (mpg)": "21",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "72",
- "weight (lb)": "2401",
- "0-60 mph (s)": "19.5",
- "year": "73"
- },
- {
- "name": "Chevrolet Vega",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "75",
- "weight (lb)": "2542",
- "0-60 mph (s)": "17",
- "year": "74"
- },
- {
- "name": "Chevrolet Woody",
- "economy (mpg)": "24.5",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "60",
- "weight (lb)": "2164",
- "0-60 mph (s)": "22.1",
- "year": "76"
- },
- {
- "name": "Chevy C10",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "145",
- "weight (lb)": "4055",
- "0-60 mph (s)": "12",
- "year": "76"
- },
- {
- "name": "Chevy C20",
- "economy (mpg)": "10",
- "cylinders": "8",
- "displacement (cc)": "307",
- "power (hp)": "200",
- "weight (lb)": "4376",
- "0-60 mph (s)": "15",
- "year": "70"
- },
- {
- "name": "Chevy S-10",
- "economy (mpg)": "31",
- "cylinders": "4",
- "displacement (cc)": "119",
- "power (hp)": "82",
- "weight (lb)": "2720",
- "0-60 mph (s)": "19.4",
- "year": "82"
- },
- {
- "name": "Chrysler Cordoba",
- "economy (mpg)": "15.5",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "190",
- "weight (lb)": "4325",
- "0-60 mph (s)": "12.2",
- "year": "77"
- },
- {
- "name": "Chrysler Lebaron Medallion",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "156",
- "power (hp)": "92",
- "weight (lb)": "2585",
- "0-60 mph (s)": "14.5",
- "year": "82"
- },
- {
- "name": "Chrysler Lebaron Salon",
- "economy (mpg)": "17.6",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "85",
- "weight (lb)": "3465",
- "0-60 mph (s)": "16.6",
- "year": "81"
- },
- {
- "name": "Chrysler Lebaron Town & Country (Wagon)",
- "economy (mpg)": "18.5",
- "cylinders": "8",
- "displacement (cc)": "360",
- "power (hp)": "150",
- "weight (lb)": "3940",
- "0-60 mph (s)": "13",
- "year": "79"
- },
- {
- "name": "Chrysler New Yorker Brougham",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "440",
- "power (hp)": "215",
- "weight (lb)": "4735",
- "0-60 mph (s)": "11",
- "year": "73"
- },
- {
- "name": "Chrysler Newport Royal",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "190",
- "weight (lb)": "4422",
- "0-60 mph (s)": "12.5",
- "year": "72"
- },
- {
- "name": "Citroen DS-21 Pallas",
- "economy (mpg)": "",
- "cylinders": "4",
- "displacement (cc)": "133",
- "power (hp)": "115",
- "weight (lb)": "3090",
- "0-60 mph (s)": "17.5",
- "year": "70"
- },
- {
- "name": "Datsun 1200",
- "economy (mpg)": "35",
- "cylinders": "4",
- "displacement (cc)": "72",
- "power (hp)": "69",
- "weight (lb)": "1613",
- "0-60 mph (s)": "18",
- "year": "71"
- },
- {
- "name": "Datsun 200SX",
- "economy (mpg)": "23.9",
- "cylinders": "4",
- "displacement (cc)": "119",
- "power (hp)": "97",
- "weight (lb)": "2405",
- "0-60 mph (s)": "14.9",
- "year": "78"
- },
- {
- "name": "Datsun 200SX",
- "economy (mpg)": "32.9",
- "cylinders": "4",
- "displacement (cc)": "119",
- "power (hp)": "100",
- "weight (lb)": "2615",
- "0-60 mph (s)": "14.8",
- "year": "81"
- },
- {
- "name": "Datsun 210",
- "economy (mpg)": "31.8",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "65",
- "weight (lb)": "2020",
- "0-60 mph (s)": "19.2",
- "year": "79"
- },
- {
- "name": "Datsun 210",
- "economy (mpg)": "37",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "65",
- "weight (lb)": "1975",
- "0-60 mph (s)": "19.4",
- "year": "81"
- },
- {
- "name": "Datsun 210",
- "economy (mpg)": "40.8",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "65",
- "weight (lb)": "2110",
- "0-60 mph (s)": "19.2",
- "year": "80"
- },
- {
- "name": "Datsun 280ZX",
- "economy (mpg)": "32.7",
- "cylinders": "6",
- "displacement (cc)": "168",
- "power (hp)": "132",
- "weight (lb)": "2910",
- "0-60 mph (s)": "11.4",
- "year": "80"
- },
- {
- "name": "Datsun 310 GX",
- "economy (mpg)": "38",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "67",
- "weight (lb)": "1995",
- "0-60 mph (s)": "16.2",
- "year": "82"
- },
- {
- "name": "Datsun 310",
- "economy (mpg)": "37.2",
- "cylinders": "4",
- "displacement (cc)": "86",
- "power (hp)": "65",
- "weight (lb)": "2019",
- "0-60 mph (s)": "16.4",
- "year": "80"
- },
- {
- "name": "Datsun 510 (Wagon)",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "92",
- "weight (lb)": "2288",
- "0-60 mph (s)": "17",
- "year": "72"
- },
- {
- "name": "Datsun 510 Hatchback",
- "economy (mpg)": "37",
- "cylinders": "4",
- "displacement (cc)": "119",
- "power (hp)": "92",
- "weight (lb)": "2434",
- "0-60 mph (s)": "15",
- "year": "80"
- },
- {
- "name": "Datsun 510",
- "economy (mpg)": "27.2",
- "cylinders": "4",
- "displacement (cc)": "119",
- "power (hp)": "97",
- "weight (lb)": "2300",
- "0-60 mph (s)": "14.7",
- "year": "78"
- },
- {
- "name": "Datsun 610",
- "economy (mpg)": "22",
- "cylinders": "4",
- "displacement (cc)": "108",
- "power (hp)": "94",
- "weight (lb)": "2379",
- "0-60 mph (s)": "16.5",
- "year": "73"
- },
- {
- "name": "Datsun 710",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "119",
- "power (hp)": "97",
- "weight (lb)": "2545",
- "0-60 mph (s)": "17",
- "year": "75"
- },
- {
- "name": "Datsun 710",
- "economy (mpg)": "32",
- "cylinders": "4",
- "displacement (cc)": "83",
- "power (hp)": "61",
- "weight (lb)": "2003",
- "0-60 mph (s)": "19",
- "year": "74"
- },
- {
- "name": "Datsun 810 Maxima",
- "economy (mpg)": "24.2",
- "cylinders": "6",
- "displacement (cc)": "146",
- "power (hp)": "120",
- "weight (lb)": "2930",
- "0-60 mph (s)": "13.8",
- "year": "81"
- },
- {
- "name": "Datsun 810",
- "economy (mpg)": "22",
- "cylinders": "6",
- "displacement (cc)": "146",
- "power (hp)": "97",
- "weight (lb)": "2815",
- "0-60 mph (s)": "14.5",
- "year": "77"
- },
- {
- "name": "Datsun B-210",
- "economy (mpg)": "32",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "70",
- "weight (lb)": "1990",
- "0-60 mph (s)": "17",
- "year": "76"
- },
- {
- "name": "Datsun B210 GX",
- "economy (mpg)": "39.4",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "70",
- "weight (lb)": "2070",
- "0-60 mph (s)": "18.6",
- "year": "78"
- },
- {
- "name": "Datsun B210",
- "economy (mpg)": "31",
- "cylinders": "4",
- "displacement (cc)": "79",
- "power (hp)": "67",
- "weight (lb)": "1950",
- "0-60 mph (s)": "19",
- "year": "74"
- },
- {
- "name": "Datsun F-10 Hatchback",
- "economy (mpg)": "33.5",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "70",
- "weight (lb)": "1945",
- "0-60 mph (s)": "16.8",
- "year": "77"
- },
- {
- "name": "Datsun PL510",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "88",
- "weight (lb)": "2130",
- "0-60 mph (s)": "14.5",
- "year": "70"
- },
- {
- "name": "Datsun PL510",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "88",
- "weight (lb)": "2130",
- "0-60 mph (s)": "14.5",
- "year": "71"
- },
- {
- "name": "Dodge Aries SE",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "135",
- "power (hp)": "84",
- "weight (lb)": "2525",
- "0-60 mph (s)": "16",
- "year": "82"
- },
- {
- "name": "Dodge Aries Wagon (Wagon)",
- "economy (mpg)": "25.8",
- "cylinders": "4",
- "displacement (cc)": "156",
- "power (hp)": "92",
- "weight (lb)": "2620",
- "0-60 mph (s)": "14.4",
- "year": "81"
- },
- {
- "name": "Dodge Aspen 6",
- "economy (mpg)": "20.6",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "110",
- "weight (lb)": "3360",
- "0-60 mph (s)": "16.6",
- "year": "79"
- },
- {
- "name": "Dodge Aspen SE",
- "economy (mpg)": "20",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "100",
- "weight (lb)": "3651",
- "0-60 mph (s)": "17.7",
- "year": "76"
- },
- {
- "name": "Dodge Aspen",
- "economy (mpg)": "18.6",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "110",
- "weight (lb)": "3620",
- "0-60 mph (s)": "18.7",
- "year": "78"
- },
- {
- "name": "Dodge Aspen",
- "economy (mpg)": "19.1",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "90",
- "weight (lb)": "3381",
- "0-60 mph (s)": "18.7",
- "year": "80"
- },
- {
- "name": "Dodge Challenger SE",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "383",
- "power (hp)": "170",
- "weight (lb)": "3563",
- "0-60 mph (s)": "10",
- "year": "70"
- },
- {
- "name": "Dodge Charger 2.2",
- "economy (mpg)": "36",
- "cylinders": "4",
- "displacement (cc)": "135",
- "power (hp)": "84",
- "weight (lb)": "2370",
- "0-60 mph (s)": "13",
- "year": "82"
- },
- {
- "name": "Dodge Colt (Wagon)",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "80",
- "weight (lb)": "2164",
- "0-60 mph (s)": "15",
- "year": "72"
- },
- {
- "name": "Dodge Colt Hardtop",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "97.5",
- "power (hp)": "80",
- "weight (lb)": "2126",
- "0-60 mph (s)": "17",
- "year": "72"
- },
- {
- "name": "Dodge Colt Hatchback Custom",
- "economy (mpg)": "35.7",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "80",
- "weight (lb)": "1915",
- "0-60 mph (s)": "14.4",
- "year": "79"
- },
- {
- "name": "Dodge Colt M/M",
- "economy (mpg)": "33.5",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "83",
- "weight (lb)": "2075",
- "0-60 mph (s)": "15.9",
- "year": "77"
- },
- {
- "name": "Dodge Colt",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "79",
- "weight (lb)": "2255",
- "0-60 mph (s)": "17.7",
- "year": "76"
- },
- {
- "name": "Dodge Colt",
- "economy (mpg)": "27.9",
- "cylinders": "4",
- "displacement (cc)": "156",
- "power (hp)": "105",
- "weight (lb)": "2800",
- "0-60 mph (s)": "14.4",
- "year": "80"
- },
- {
- "name": "Dodge Colt",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "75",
- "weight (lb)": "2125",
- "0-60 mph (s)": "14.5",
- "year": "74"
- },
- {
- "name": "Dodge Coronet Brougham",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "4190",
- "0-60 mph (s)": "13",
- "year": "76"
- },
- {
- "name": "Dodge Coronet Custom (Wagon)",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "4457",
- "0-60 mph (s)": "13.5",
- "year": "74"
- },
- {
- "name": "Dodge Coronet Custom",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "3777",
- "0-60 mph (s)": "12.5",
- "year": "73"
- },
- {
- "name": "Dodge D100",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "3755",
- "0-60 mph (s)": "14",
- "year": "76"
- },
- {
- "name": "Dodge D200",
- "economy (mpg)": "11",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "210",
- "weight (lb)": "4382",
- "0-60 mph (s)": "13.5",
- "year": "70"
- },
- {
- "name": "Dodge Dart Custom",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "3399",
- "0-60 mph (s)": "11",
- "year": "73"
- },
- {
- "name": "Dodge Diplomat",
- "economy (mpg)": "19.4",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "140",
- "weight (lb)": "3735",
- "0-60 mph (s)": "13.2",
- "year": "78"
- },
- {
- "name": "Dodge Magnum XE",
- "economy (mpg)": "17.5",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "140",
- "weight (lb)": "4080",
- "0-60 mph (s)": "13.7",
- "year": "78"
- },
- {
- "name": "Dodge Monaco (Wagon)",
- "economy (mpg)": "12",
- "cylinders": "8",
- "displacement (cc)": "383",
- "power (hp)": "180",
- "weight (lb)": "4955",
- "0-60 mph (s)": "11.5",
- "year": "71"
- },
- {
- "name": "Dodge Monaco Brougham",
- "economy (mpg)": "15.5",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "145",
- "weight (lb)": "4140",
- "0-60 mph (s)": "13.7",
- "year": "77"
- },
- {
- "name": "Dodge Omni",
- "economy (mpg)": "30.9",
- "cylinders": "4",
- "displacement (cc)": "105",
- "power (hp)": "75",
- "weight (lb)": "2230",
- "0-60 mph (s)": "14.5",
- "year": "78"
- },
- {
- "name": "Dodge Rampage",
- "economy (mpg)": "32",
- "cylinders": "4",
- "displacement (cc)": "135",
- "power (hp)": "84",
- "weight (lb)": "2295",
- "0-60 mph (s)": "11.6",
- "year": "82"
- },
- {
- "name": "Dodge St. Regis",
- "economy (mpg)": "18.2",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "135",
- "weight (lb)": "3830",
- "0-60 mph (s)": "15.2",
- "year": "79"
- },
- {
- "name": "Fiat 124 Sport Coupe",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "90",
- "weight (lb)": "2265",
- "0-60 mph (s)": "15.5",
- "year": "73"
- },
- {
- "name": "Fiat 124 TC",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "116",
- "power (hp)": "75",
- "weight (lb)": "2246",
- "0-60 mph (s)": "14",
- "year": "74"
- },
- {
- "name": "Fiat 124B",
- "economy (mpg)": "30",
- "cylinders": "4",
- "displacement (cc)": "88",
- "power (hp)": "76",
- "weight (lb)": "2065",
- "0-60 mph (s)": "14.5",
- "year": "71"
- },
- {
- "name": "Fiat 128",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "75",
- "weight (lb)": "2108",
- "0-60 mph (s)": "15.5",
- "year": "74"
- },
- {
- "name": "Fiat 128",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "68",
- "power (hp)": "49",
- "weight (lb)": "1867",
- "0-60 mph (s)": "19.5",
- "year": "73"
- },
- {
- "name": "Fiat 131",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "107",
- "power (hp)": "86",
- "weight (lb)": "2464",
- "0-60 mph (s)": "15.5",
- "year": "76"
- },
- {
- "name": "Fiat Strada Custom",
- "economy (mpg)": "37.3",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "69",
- "weight (lb)": "2130",
- "0-60 mph (s)": "14.7",
- "year": "79"
- },
- {
- "name": "Fiat X1.9",
- "economy (mpg)": "31",
- "cylinders": "4",
- "displacement (cc)": "79",
- "power (hp)": "67",
- "weight (lb)": "2000",
- "0-60 mph (s)": "16",
- "year": "74"
- },
- {
- "name": "Ford Capri II",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "92",
- "weight (lb)": "2572",
- "0-60 mph (s)": "14.9",
- "year": "76"
- },
- {
- "name": "Ford Country Squire (Wagon)",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "170",
- "weight (lb)": "4746",
- "0-60 mph (s)": "12",
- "year": "71"
- },
- {
- "name": "Ford Country Squire (Wagon)",
- "economy (mpg)": "15.5",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "142",
- "weight (lb)": "4054",
- "0-60 mph (s)": "14.3",
- "year": "79"
- },
- {
- "name": "Ford Country",
- "economy (mpg)": "12",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "167",
- "weight (lb)": "4906",
- "0-60 mph (s)": "12.5",
- "year": "73"
- },
- {
- "name": "Ford Escort 2H",
- "economy (mpg)": "29.9",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "65",
- "weight (lb)": "2380",
- "0-60 mph (s)": "20.7",
- "year": "81"
- },
- {
- "name": "Ford Escort 4W",
- "economy (mpg)": "34.4",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "65",
- "weight (lb)": "2045",
- "0-60 mph (s)": "16.2",
- "year": "81"
- },
- {
- "name": "Ford F108",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "130",
- "weight (lb)": "3870",
- "0-60 mph (s)": "15",
- "year": "76"
- },
- {
- "name": "Ford F250",
- "economy (mpg)": "10",
- "cylinders": "8",
- "displacement (cc)": "360",
- "power (hp)": "215",
- "weight (lb)": "4615",
- "0-60 mph (s)": "14",
- "year": "70"
- },
- {
- "name": "Ford Fairmont (Auto)",
- "economy (mpg)": "20.2",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "85",
- "weight (lb)": "2965",
- "0-60 mph (s)": "15.8",
- "year": "78"
- },
- {
- "name": "Ford Fairmont (Man)",
- "economy (mpg)": "25.1",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "88",
- "weight (lb)": "2720",
- "0-60 mph (s)": "15.4",
- "year": "78"
- },
- {
- "name": "Ford Fairmont 4",
- "economy (mpg)": "22.3",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "88",
- "weight (lb)": "2890",
- "0-60 mph (s)": "17.3",
- "year": "79"
- },
- {
- "name": "Ford Fairmont Futura",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "92",
- "weight (lb)": "2865",
- "0-60 mph (s)": "16.4",
- "year": "82"
- },
- {
- "name": "Ford Fairmont",
- "economy (mpg)": "26.4",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "88",
- "weight (lb)": "2870",
- "0-60 mph (s)": "18.1",
- "year": "80"
- },
- {
- "name": "Ford Fiesta",
- "economy (mpg)": "36.1",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "66",
- "weight (lb)": "1800",
- "0-60 mph (s)": "14.4",
- "year": "78"
- },
- {
- "name": "Ford Futura",
- "economy (mpg)": "18.1",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "139",
- "weight (lb)": "3205",
- "0-60 mph (s)": "11.2",
- "year": "78"
- },
- {
- "name": "Ford Galaxie 500",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "153",
- "weight (lb)": "4129",
- "0-60 mph (s)": "13",
- "year": "72"
- },
- {
- "name": "Ford Galaxie 500",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "153",
- "weight (lb)": "4154",
- "0-60 mph (s)": "13.5",
- "year": "71"
- },
- {
- "name": "Ford Galaxie 500",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "429",
- "power (hp)": "198",
- "weight (lb)": "4341",
- "0-60 mph (s)": "10",
- "year": "70"
- },
- {
- "name": "Ford Gran Torino (Wagon)",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "140",
- "weight (lb)": "4294",
- "0-60 mph (s)": "16",
- "year": "72"
- },
- {
- "name": "Ford Gran Torino (Wagon)",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "140",
- "weight (lb)": "4638",
- "0-60 mph (s)": "16",
- "year": "74"
- },
- {
- "name": "Ford Gran Torino",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "137",
- "weight (lb)": "4042",
- "0-60 mph (s)": "14.5",
- "year": "73"
- },
- {
- "name": "Ford Gran Torino",
- "economy (mpg)": "14.5",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "152",
- "weight (lb)": "4215",
- "0-60 mph (s)": "12.8",
- "year": "76"
- },
- {
- "name": "Ford Gran Torino",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "140",
- "weight (lb)": "4141",
- "0-60 mph (s)": "14",
- "year": "74"
- },
- {
- "name": "Ford Granada Ghia",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "78",
- "weight (lb)": "3574",
- "0-60 mph (s)": "21",
- "year": "76"
- },
- {
- "name": "Ford Granada GL",
- "economy (mpg)": "20.2",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "88",
- "weight (lb)": "3060",
- "0-60 mph (s)": "17.1",
- "year": "81"
- },
- {
- "name": "Ford Granada L",
- "economy (mpg)": "22",
- "cylinders": "6",
- "displacement (cc)": "232",
- "power (hp)": "112",
- "weight (lb)": "2835",
- "0-60 mph (s)": "14.7",
- "year": "82"
- },
- {
- "name": "Ford Granada",
- "economy (mpg)": "18.5",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "98",
- "weight (lb)": "3525",
- "0-60 mph (s)": "19",
- "year": "77"
- },
- {
- "name": "Ford LTD Landau",
- "economy (mpg)": "17.6",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "129",
- "weight (lb)": "3725",
- "0-60 mph (s)": "13.4",
- "year": "79"
- },
- {
- "name": "Ford LTD",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "158",
- "weight (lb)": "4363",
- "0-60 mph (s)": "13",
- "year": "73"
- },
- {
- "name": "Ford LTD",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "148",
- "weight (lb)": "4657",
- "0-60 mph (s)": "13.5",
- "year": "75"
- },
- {
- "name": "Ford Maverick",
- "economy (mpg)": "15",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "72",
- "weight (lb)": "3158",
- "0-60 mph (s)": "19.5",
- "year": "75"
- },
- {
- "name": "Ford Maverick",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "88",
- "weight (lb)": "3021",
- "0-60 mph (s)": "16.5",
- "year": "73"
- },
- {
- "name": "Ford Maverick",
- "economy (mpg)": "21",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "",
- "weight (lb)": "2875",
- "0-60 mph (s)": "17",
- "year": "74"
- },
- {
- "name": "Ford Maverick",
- "economy (mpg)": "21",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "85",
- "weight (lb)": "2587",
- "0-60 mph (s)": "16",
- "year": "70"
- },
- {
- "name": "Ford Maverick",
- "economy (mpg)": "24",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "81",
- "weight (lb)": "3012",
- "0-60 mph (s)": "17.6",
- "year": "76"
- },
- {
- "name": "Ford Mustang Boss 302",
- "economy (mpg)": "",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "140",
- "weight (lb)": "3353",
- "0-60 mph (s)": "8",
- "year": "70"
- },
- {
- "name": "Ford Mustang Cobra",
- "economy (mpg)": "23.6",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "",
- "weight (lb)": "2905",
- "0-60 mph (s)": "14.3",
- "year": "80"
- },
- {
- "name": "Ford Mustang GL",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "86",
- "weight (lb)": "2790",
- "0-60 mph (s)": "15.6",
- "year": "82"
- },
- {
- "name": "Ford Mustang II 2+2",
- "economy (mpg)": "25.5",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "89",
- "weight (lb)": "2755",
- "0-60 mph (s)": "15.8",
- "year": "77"
- },
- {
- "name": "Ford Mustang II",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "129",
- "weight (lb)": "3169",
- "0-60 mph (s)": "12",
- "year": "75"
- },
- {
- "name": "Ford Mustang",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "88",
- "weight (lb)": "3139",
- "0-60 mph (s)": "14.5",
- "year": "71"
- },
- {
- "name": "Ford Pinto (Wagon)",
- "economy (mpg)": "22",
- "cylinders": "4",
- "displacement (cc)": "122",
- "power (hp)": "86",
- "weight (lb)": "2395",
- "0-60 mph (s)": "16",
- "year": "72"
- },
- {
- "name": "Ford Pinto Runabout",
- "economy (mpg)": "21",
- "cylinders": "4",
- "displacement (cc)": "122",
- "power (hp)": "86",
- "weight (lb)": "2226",
- "0-60 mph (s)": "16.5",
- "year": "72"
- },
- {
- "name": "Ford Pinto",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "171",
- "power (hp)": "97",
- "weight (lb)": "2984",
- "0-60 mph (s)": "14.5",
- "year": "75"
- },
- {
- "name": "Ford Pinto",
- "economy (mpg)": "19",
- "cylinders": "4",
- "displacement (cc)": "122",
- "power (hp)": "85",
- "weight (lb)": "2310",
- "0-60 mph (s)": "18.5",
- "year": "73"
- },
- {
- "name": "Ford Pinto",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "83",
- "weight (lb)": "2639",
- "0-60 mph (s)": "17",
- "year": "75"
- },
- {
- "name": "Ford Pinto",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "",
- "weight (lb)": "2046",
- "0-60 mph (s)": "19",
- "year": "71"
- },
- {
- "name": "Ford Pinto",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "122",
- "power (hp)": "80",
- "weight (lb)": "2451",
- "0-60 mph (s)": "16.5",
- "year": "74"
- },
- {
- "name": "Ford Pinto",
- "economy (mpg)": "26.5",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "72",
- "weight (lb)": "2565",
- "0-60 mph (s)": "13.6",
- "year": "76"
- },
- {
- "name": "Ford Ranger",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "79",
- "weight (lb)": "2625",
- "0-60 mph (s)": "18.6",
- "year": "82"
- },
- {
- "name": "Ford Thunderbird",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "149",
- "weight (lb)": "4335",
- "0-60 mph (s)": "14.5",
- "year": "77"
- },
- {
- "name": "Ford Torino (Wagon)",
- "economy (mpg)": "",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "153",
- "weight (lb)": "4034",
- "0-60 mph (s)": "11",
- "year": "70"
- },
- {
- "name": "Ford Torino 500",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "88",
- "weight (lb)": "3302",
- "0-60 mph (s)": "15.5",
- "year": "71"
- },
- {
- "name": "Ford Torino",
- "economy (mpg)": "17",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "140",
- "weight (lb)": "3449",
- "0-60 mph (s)": "10.5",
- "year": "70"
- },
- {
- "name": "Hi 1200D",
- "economy (mpg)": "9",
- "cylinders": "8",
- "displacement (cc)": "304",
- "power (hp)": "193",
- "weight (lb)": "4732",
- "0-60 mph (s)": "18.5",
- "year": "70"
- },
- {
- "name": "Honda Accord CVCC",
- "economy (mpg)": "31.5",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "68",
- "weight (lb)": "2045",
- "0-60 mph (s)": "18.5",
- "year": "77"
- },
- {
- "name": "Honda Accord LX",
- "economy (mpg)": "29.5",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "68",
- "weight (lb)": "2135",
- "0-60 mph (s)": "16.6",
- "year": "78"
- },
- {
- "name": "Honda Accord",
- "economy (mpg)": "32.4",
- "cylinders": "4",
- "displacement (cc)": "107",
- "power (hp)": "72",
- "weight (lb)": "2290",
- "0-60 mph (s)": "17",
- "year": "80"
- },
- {
- "name": "Honda Accord",
- "economy (mpg)": "36",
- "cylinders": "4",
- "displacement (cc)": "107",
- "power (hp)": "75",
- "weight (lb)": "2205",
- "0-60 mph (s)": "14.5",
- "year": "82"
- },
- {
- "name": "Honda Civic (Auto)",
- "economy (mpg)": "32",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "67",
- "weight (lb)": "1965",
- "0-60 mph (s)": "15.7",
- "year": "82"
- },
- {
- "name": "Honda Civic 1300",
- "economy (mpg)": "35.1",
- "cylinders": "4",
- "displacement (cc)": "81",
- "power (hp)": "60",
- "weight (lb)": "1760",
- "0-60 mph (s)": "16.1",
- "year": "81"
- },
- {
- "name": "Honda Civic 1500 GL",
- "economy (mpg)": "44.6",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "67",
- "weight (lb)": "1850",
- "0-60 mph (s)": "13.8",
- "year": "80"
- },
- {
- "name": "Honda Civic CVCC",
- "economy (mpg)": "33",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "53",
- "weight (lb)": "1795",
- "0-60 mph (s)": "17.5",
- "year": "75"
- },
- {
- "name": "Honda Civic CVCC",
- "economy (mpg)": "36.1",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "60",
- "weight (lb)": "1800",
- "0-60 mph (s)": "16.4",
- "year": "78"
- },
- {
- "name": "Honda Civic",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "97",
- "weight (lb)": "2489",
- "0-60 mph (s)": "15",
- "year": "74"
- },
- {
- "name": "Honda Civic",
- "economy (mpg)": "33",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "53",
- "weight (lb)": "1795",
- "0-60 mph (s)": "17.4",
- "year": "76"
- },
- {
- "name": "Honda Civic",
- "economy (mpg)": "38",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "67",
- "weight (lb)": "1965",
- "0-60 mph (s)": "15",
- "year": "82"
- },
- {
- "name": "Honda Prelude",
- "economy (mpg)": "33.7",
- "cylinders": "4",
- "displacement (cc)": "107",
- "power (hp)": "75",
- "weight (lb)": "2210",
- "0-60 mph (s)": "14.4",
- "year": "81"
- },
- {
- "name": "Maxda GLC Deluxe",
- "economy (mpg)": "34.1",
- "cylinders": "4",
- "displacement (cc)": "86",
- "power (hp)": "65",
- "weight (lb)": "1975",
- "0-60 mph (s)": "15.2",
- "year": "79"
- },
- {
- "name": "Maxda RX-3",
- "economy (mpg)": "18",
- "cylinders": "3",
- "displacement (cc)": "70",
- "power (hp)": "90",
- "weight (lb)": "2124",
- "0-60 mph (s)": "13.5",
- "year": "73"
- },
- {
- "name": "Mazda 626",
- "economy (mpg)": "31.3",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "75",
- "weight (lb)": "2542",
- "0-60 mph (s)": "17.5",
- "year": "80"
- },
- {
- "name": "Mazda 626",
- "economy (mpg)": "31.6",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "74",
- "weight (lb)": "2635",
- "0-60 mph (s)": "18.3",
- "year": "81"
- },
- {
- "name": "Mazda GLC 4",
- "economy (mpg)": "34.1",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "68",
- "weight (lb)": "1985",
- "0-60 mph (s)": "16",
- "year": "81"
- },
- {
- "name": "Mazda GLC Custom L",
- "economy (mpg)": "37",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "68",
- "weight (lb)": "2025",
- "0-60 mph (s)": "18.2",
- "year": "82"
- },
- {
- "name": "Mazda GLC Custom",
- "economy (mpg)": "31",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "68",
- "weight (lb)": "1970",
- "0-60 mph (s)": "17.6",
- "year": "82"
- },
- {
- "name": "Mazda GLC Deluxe",
- "economy (mpg)": "32.8",
- "cylinders": "4",
- "displacement (cc)": "78",
- "power (hp)": "52",
- "weight (lb)": "1985",
- "0-60 mph (s)": "19.4",
- "year": "78"
- },
- {
- "name": "Mazda GLC",
- "economy (mpg)": "46.6",
- "cylinders": "4",
- "displacement (cc)": "86",
- "power (hp)": "65",
- "weight (lb)": "2110",
- "0-60 mph (s)": "17.9",
- "year": "80"
- },
- {
- "name": "Mazda RX-2 Coupe",
- "economy (mpg)": "19",
- "cylinders": "3",
- "displacement (cc)": "70",
- "power (hp)": "97",
- "weight (lb)": "2330",
- "0-60 mph (s)": "13.5",
- "year": "72"
- },
- {
- "name": "Mazda RX-4",
- "economy (mpg)": "21.5",
- "cylinders": "3",
- "displacement (cc)": "80",
- "power (hp)": "110",
- "weight (lb)": "2720",
- "0-60 mph (s)": "13.5",
- "year": "77"
- },
- {
- "name": "Mazda RX-7 Gs",
- "economy (mpg)": "23.7",
- "cylinders": "3",
- "displacement (cc)": "70",
- "power (hp)": "100",
- "weight (lb)": "2420",
- "0-60 mph (s)": "12.5",
- "year": "80"
- },
- {
- "name": "Mercedes-Benz 240D",
- "economy (mpg)": "30",
- "cylinders": "4",
- "displacement (cc)": "146",
- "power (hp)": "67",
- "weight (lb)": "3250",
- "0-60 mph (s)": "21.8",
- "year": "80"
- },
- {
- "name": "Mercedes-Benz 280S",
- "economy (mpg)": "16.5",
- "cylinders": "6",
- "displacement (cc)": "168",
- "power (hp)": "120",
- "weight (lb)": "3820",
- "0-60 mph (s)": "16.7",
- "year": "76"
- },
- {
- "name": "Mercedes-Benz 300D",
- "economy (mpg)": "25.4",
- "cylinders": "5",
- "displacement (cc)": "183",
- "power (hp)": "77",
- "weight (lb)": "3530",
- "0-60 mph (s)": "20.1",
- "year": "79"
- },
- {
- "name": "Mercury Capri 2000",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "122",
- "power (hp)": "86",
- "weight (lb)": "2220",
- "0-60 mph (s)": "14",
- "year": "71"
- },
- {
- "name": "Mercury Capri V6",
- "economy (mpg)": "21",
- "cylinders": "6",
- "displacement (cc)": "155",
- "power (hp)": "107",
- "weight (lb)": "2472",
- "0-60 mph (s)": "14",
- "year": "73"
- },
- {
- "name": "Mercury Cougar Brougham",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "130",
- "weight (lb)": "4295",
- "0-60 mph (s)": "14.9",
- "year": "77"
- },
- {
- "name": "Mercury Grand Marquis",
- "economy (mpg)": "16.5",
- "cylinders": "8",
- "displacement (cc)": "351",
- "power (hp)": "138",
- "weight (lb)": "3955",
- "0-60 mph (s)": "13.2",
- "year": "79"
- },
- {
- "name": "Mercury Lynx L",
- "economy (mpg)": "36",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "70",
- "weight (lb)": "2125",
- "0-60 mph (s)": "17.3",
- "year": "82"
- },
- {
- "name": "Mercury Marquis Brougham",
- "economy (mpg)": "12",
- "cylinders": "8",
- "displacement (cc)": "429",
- "power (hp)": "198",
- "weight (lb)": "4952",
- "0-60 mph (s)": "11.5",
- "year": "73"
- },
- {
- "name": "Mercury Marquis",
- "economy (mpg)": "11",
- "cylinders": "8",
- "displacement (cc)": "429",
- "power (hp)": "208",
- "weight (lb)": "4633",
- "0-60 mph (s)": "11",
- "year": "72"
- },
- {
- "name": "Mercury Monarch Ghia",
- "economy (mpg)": "20.2",
- "cylinders": "8",
- "displacement (cc)": "302",
- "power (hp)": "139",
- "weight (lb)": "3570",
- "0-60 mph (s)": "12.8",
- "year": "78"
- },
- {
- "name": "Mercury Monarch",
- "economy (mpg)": "15",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "72",
- "weight (lb)": "3432",
- "0-60 mph (s)": "21",
- "year": "75"
- },
- {
- "name": "Mercury Zephyr 6",
- "economy (mpg)": "19.8",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "85",
- "weight (lb)": "2990",
- "0-60 mph (s)": "18.2",
- "year": "79"
- },
- {
- "name": "Mercury Zephyr",
- "economy (mpg)": "20.8",
- "cylinders": "6",
- "displacement (cc)": "200",
- "power (hp)": "85",
- "weight (lb)": "3070",
- "0-60 mph (s)": "16.7",
- "year": "78"
- },
- {
- "name": "Nissan Stanza XE",
- "economy (mpg)": "36",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "88",
- "weight (lb)": "2160",
- "0-60 mph (s)": "14.5",
- "year": "82"
- },
- {
- "name": "Oldsmobile Cutlass Ciera (Diesel)",
- "economy (mpg)": "38",
- "cylinders": "6",
- "displacement (cc)": "262",
- "power (hp)": "85",
- "weight (lb)": "3015",
- "0-60 mph (s)": "17",
- "year": "82"
- },
- {
- "name": "Oldsmobile Cutlass LS",
- "economy (mpg)": "26.6",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "105",
- "weight (lb)": "3725",
- "0-60 mph (s)": "19",
- "year": "81"
- },
- {
- "name": "Oldsmobile Cutlass Salon Brougham",
- "economy (mpg)": "19.9",
- "cylinders": "8",
- "displacement (cc)": "260",
- "power (hp)": "110",
- "weight (lb)": "3365",
- "0-60 mph (s)": "15.5",
- "year": "78"
- },
- {
- "name": "Oldsmobile Cutlass Salon Brougham",
- "economy (mpg)": "23.9",
- "cylinders": "8",
- "displacement (cc)": "260",
- "power (hp)": "90",
- "weight (lb)": "3420",
- "0-60 mph (s)": "22.2",
- "year": "79"
- },
- {
- "name": "Oldsmobile Cutlass Supreme",
- "economy (mpg)": "17",
- "cylinders": "8",
- "displacement (cc)": "260",
- "power (hp)": "110",
- "weight (lb)": "4060",
- "0-60 mph (s)": "19",
- "year": "77"
- },
- {
- "name": "Oldsmobile Delta 88 Royale",
- "economy (mpg)": "12",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "160",
- "weight (lb)": "4456",
- "0-60 mph (s)": "13.5",
- "year": "72"
- },
- {
- "name": "Oldsmobile Omega Brougham",
- "economy (mpg)": "26.8",
- "cylinders": "6",
- "displacement (cc)": "173",
- "power (hp)": "115",
- "weight (lb)": "2700",
- "0-60 mph (s)": "12.9",
- "year": "79"
- },
- {
- "name": "Oldsmobile Omega",
- "economy (mpg)": "11",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "180",
- "weight (lb)": "3664",
- "0-60 mph (s)": "11",
- "year": "73"
- },
- {
- "name": "Oldsmobile Starfire SX",
- "economy (mpg)": "23.8",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "85",
- "weight (lb)": "2855",
- "0-60 mph (s)": "17.6",
- "year": "78"
- },
- {
- "name": "Oldsmobile Vista Cruiser",
- "economy (mpg)": "12",
- "cylinders": "8",
- "displacement (cc)": "350",
- "power (hp)": "180",
- "weight (lb)": "4499",
- "0-60 mph (s)": "12.5",
- "year": "73"
- },
- {
- "name": "Opel 1900",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "116",
- "power (hp)": "81",
- "weight (lb)": "2220",
- "0-60 mph (s)": "16.9",
- "year": "76"
- },
- {
- "name": "Opel 1900",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "116",
- "power (hp)": "90",
- "weight (lb)": "2123",
- "0-60 mph (s)": "14",
- "year": "71"
- },
- {
- "name": "Opel Manta",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "116",
- "power (hp)": "75",
- "weight (lb)": "2158",
- "0-60 mph (s)": "15.5",
- "year": "73"
- },
- {
- "name": "Opel Manta",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "78",
- "weight (lb)": "2300",
- "0-60 mph (s)": "14.5",
- "year": "74"
- },
- {
- "name": "Peugeot 304",
- "economy (mpg)": "30",
- "cylinders": "4",
- "displacement (cc)": "79",
- "power (hp)": "70",
- "weight (lb)": "2074",
- "0-60 mph (s)": "19.5",
- "year": "71"
- },
- {
- "name": "Peugeot 504 (Wagon)",
- "economy (mpg)": "21",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "87",
- "weight (lb)": "2979",
- "0-60 mph (s)": "19.5",
- "year": "72"
- },
- {
- "name": "Peugeot 504",
- "economy (mpg)": "19",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "88",
- "weight (lb)": "3270",
- "0-60 mph (s)": "21.9",
- "year": "76"
- },
- {
- "name": "Peugeot 504",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "88",
- "weight (lb)": "2957",
- "0-60 mph (s)": "17",
- "year": "75"
- },
- {
- "name": "Peugeot 504",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "110",
- "power (hp)": "87",
- "weight (lb)": "2672",
- "0-60 mph (s)": "17.5",
- "year": "70"
- },
- {
- "name": "Peugeot 504",
- "economy (mpg)": "27.2",
- "cylinders": "4",
- "displacement (cc)": "141",
- "power (hp)": "71",
- "weight (lb)": "3190",
- "0-60 mph (s)": "24.8",
- "year": "79"
- },
- {
- "name": "Peugeot 505S Turbo Diesel",
- "economy (mpg)": "28.1",
- "cylinders": "4",
- "displacement (cc)": "141",
- "power (hp)": "80",
- "weight (lb)": "3230",
- "0-60 mph (s)": "20.4",
- "year": "81"
- },
- {
- "name": "Peugeot 604SL",
- "economy (mpg)": "16.2",
- "cylinders": "6",
- "displacement (cc)": "163",
- "power (hp)": "133",
- "weight (lb)": "3410",
- "0-60 mph (s)": "15.8",
- "year": "78"
- },
- {
- "name": "Plymouth Arrow GS",
- "economy (mpg)": "25.5",
- "cylinders": "4",
- "displacement (cc)": "122",
- "power (hp)": "96",
- "weight (lb)": "2300",
- "0-60 mph (s)": "15.5",
- "year": "77"
- },
- {
- "name": "Plymouth Barracuda 340",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "340",
- "power (hp)": "160",
- "weight (lb)": "3609",
- "0-60 mph (s)": "8",
- "year": "70"
- },
- {
- "name": "Plymouth Champ",
- "economy (mpg)": "39",
- "cylinders": "4",
- "displacement (cc)": "86",
- "power (hp)": "64",
- "weight (lb)": "1875",
- "0-60 mph (s)": "16.4",
- "year": "81"
- },
- {
- "name": "Plymouth Cricket",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "91",
- "power (hp)": "70",
- "weight (lb)": "1955",
- "0-60 mph (s)": "20.5",
- "year": "71"
- },
- {
- "name": "Plymouth Custom Suburb",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "360",
- "power (hp)": "170",
- "weight (lb)": "4654",
- "0-60 mph (s)": "13",
- "year": "73"
- },
- {
- "name": "Plymouth Duster",
- "economy (mpg)": "20",
- "cylinders": "6",
- "displacement (cc)": "198",
- "power (hp)": "95",
- "weight (lb)": "3102",
- "0-60 mph (s)": "16.5",
- "year": "74"
- },
- {
- "name": "Plymouth Duster",
- "economy (mpg)": "22",
- "cylinders": "6",
- "displacement (cc)": "198",
- "power (hp)": "95",
- "weight (lb)": "2833",
- "0-60 mph (s)": "15.5",
- "year": "70"
- },
- {
- "name": "Plymouth Duster",
- "economy (mpg)": "23",
- "cylinders": "6",
- "displacement (cc)": "198",
- "power (hp)": "95",
- "weight (lb)": "2904",
- "0-60 mph (s)": "16",
- "year": "73"
- },
- {
- "name": "Plymouth Fury Gran Sedan",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "4237",
- "0-60 mph (s)": "14.5",
- "year": "73"
- },
- {
- "name": "Plymouth Fury III",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "4096",
- "0-60 mph (s)": "13",
- "year": "71"
- },
- {
- "name": "Plymouth Fury III",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "440",
- "power (hp)": "215",
- "weight (lb)": "4312",
- "0-60 mph (s)": "8.5",
- "year": "70"
- },
- {
- "name": "Plymouth Fury III",
- "economy (mpg)": "15",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "4135",
- "0-60 mph (s)": "13.5",
- "year": "72"
- },
- {
- "name": "Plymouth Fury",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "95",
- "weight (lb)": "3785",
- "0-60 mph (s)": "19",
- "year": "75"
- },
- {
- "name": "Plymouth Grand Fury",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "4498",
- "0-60 mph (s)": "14.5",
- "year": "75"
- },
- {
- "name": "Plymouth Horizon 4",
- "economy (mpg)": "34.7",
- "cylinders": "4",
- "displacement (cc)": "105",
- "power (hp)": "63",
- "weight (lb)": "2215",
- "0-60 mph (s)": "14.9",
- "year": "81"
- },
- {
- "name": "Plymouth Horizon Miser",
- "economy (mpg)": "38",
- "cylinders": "4",
- "displacement (cc)": "105",
- "power (hp)": "63",
- "weight (lb)": "2125",
- "0-60 mph (s)": "14.7",
- "year": "82"
- },
- {
- "name": "Plymouth Horizon TC3",
- "economy (mpg)": "34.5",
- "cylinders": "4",
- "displacement (cc)": "105",
- "power (hp)": "70",
- "weight (lb)": "2150",
- "0-60 mph (s)": "14.9",
- "year": "79"
- },
- {
- "name": "Plymouth Horizon",
- "economy (mpg)": "34.2",
- "cylinders": "4",
- "displacement (cc)": "105",
- "power (hp)": "70",
- "weight (lb)": "2200",
- "0-60 mph (s)": "13.2",
- "year": "79"
- },
- {
- "name": "Plymouth Reliant",
- "economy (mpg)": "27.2",
- "cylinders": "4",
- "displacement (cc)": "135",
- "power (hp)": "84",
- "weight (lb)": "2490",
- "0-60 mph (s)": "15.7",
- "year": "81"
- },
- {
- "name": "Plymouth Reliant",
- "economy (mpg)": "30",
- "cylinders": "4",
- "displacement (cc)": "135",
- "power (hp)": "84",
- "weight (lb)": "2385",
- "0-60 mph (s)": "12.9",
- "year": "81"
- },
- {
- "name": "Plymouth Sapporo",
- "economy (mpg)": "23.2",
- "cylinders": "4",
- "displacement (cc)": "156",
- "power (hp)": "105",
- "weight (lb)": "2745",
- "0-60 mph (s)": "16.7",
- "year": "78"
- },
- {
- "name": "Plymouth Satellite (Wagon)",
- "economy (mpg)": "",
- "cylinders": "8",
- "displacement (cc)": "383",
- "power (hp)": "175",
- "weight (lb)": "4166",
- "0-60 mph (s)": "10.5",
- "year": "70"
- },
- {
- "name": "Plymouth Satellite Custom (Wagon)",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "4077",
- "0-60 mph (s)": "14",
- "year": "72"
- },
- {
- "name": "Plymouth Satellite Custom",
- "economy (mpg)": "16",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "105",
- "weight (lb)": "3439",
- "0-60 mph (s)": "15.5",
- "year": "71"
- },
- {
- "name": "Plymouth Satellite Sebring",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "105",
- "weight (lb)": "3613",
- "0-60 mph (s)": "16.5",
- "year": "74"
- },
- {
- "name": "Plymouth Satellite",
- "economy (mpg)": "18",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "3436",
- "0-60 mph (s)": "11",
- "year": "70"
- },
- {
- "name": "Plymouth Valiant Custom",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "95",
- "weight (lb)": "3264",
- "0-60 mph (s)": "16",
- "year": "75"
- },
- {
- "name": "Plymouth Valiant",
- "economy (mpg)": "18",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "105",
- "weight (lb)": "3121",
- "0-60 mph (s)": "16.5",
- "year": "73"
- },
- {
- "name": "Plymouth Valiant",
- "economy (mpg)": "22",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "100",
- "weight (lb)": "3233",
- "0-60 mph (s)": "15.4",
- "year": "76"
- },
- {
- "name": "Plymouth Volare Custom",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "100",
- "weight (lb)": "3630",
- "0-60 mph (s)": "17.7",
- "year": "77"
- },
- {
- "name": "Plymouth Volare Premier V8",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "318",
- "power (hp)": "150",
- "weight (lb)": "3940",
- "0-60 mph (s)": "13.2",
- "year": "76"
- },
- {
- "name": "Plymouth Volare",
- "economy (mpg)": "20.5",
- "cylinders": "6",
- "displacement (cc)": "225",
- "power (hp)": "100",
- "weight (lb)": "3430",
- "0-60 mph (s)": "17.2",
- "year": "78"
- },
- {
- "name": "Pontiac Astro",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "140",
- "power (hp)": "78",
- "weight (lb)": "2592",
- "0-60 mph (s)": "18.5",
- "year": "75"
- },
- {
- "name": "Pontiac Catalina Brougham",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "175",
- "weight (lb)": "4464",
- "0-60 mph (s)": "11.5",
- "year": "71"
- },
- {
- "name": "Pontiac Catalina",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "175",
- "weight (lb)": "4385",
- "0-60 mph (s)": "12",
- "year": "72"
- },
- {
- "name": "Pontiac Catalina",
- "economy (mpg)": "14",
- "cylinders": "8",
- "displacement (cc)": "455",
- "power (hp)": "225",
- "weight (lb)": "4425",
- "0-60 mph (s)": "10",
- "year": "70"
- },
- {
- "name": "Pontiac Catalina",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "170",
- "weight (lb)": "4668",
- "0-60 mph (s)": "11.5",
- "year": "75"
- },
- {
- "name": "Pontiac Firebird",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "100",
- "weight (lb)": "3282",
- "0-60 mph (s)": "15",
- "year": "71"
- },
- {
- "name": "Pontiac Grand Prix Lj",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "180",
- "weight (lb)": "4220",
- "0-60 mph (s)": "11.1",
- "year": "77"
- },
- {
- "name": "Pontiac Grand Prix",
- "economy (mpg)": "16",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "230",
- "weight (lb)": "4278",
- "0-60 mph (s)": "9.5",
- "year": "73"
- },
- {
- "name": "Pontiac J2000 Se Hatchback",
- "economy (mpg)": "31",
- "cylinders": "4",
- "displacement (cc)": "112",
- "power (hp)": "85",
- "weight (lb)": "2575",
- "0-60 mph (s)": "16.2",
- "year": "82"
- },
- {
- "name": "Pontiac Lemans V6",
- "economy (mpg)": "21.5",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "115",
- "weight (lb)": "3245",
- "0-60 mph (s)": "15.4",
- "year": "79"
- },
- {
- "name": "Pontiac Phoenix LJ",
- "economy (mpg)": "19.2",
- "cylinders": "6",
- "displacement (cc)": "231",
- "power (hp)": "105",
- "weight (lb)": "3535",
- "0-60 mph (s)": "19.2",
- "year": "78"
- },
- {
- "name": "Pontiac Phoenix",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "90",
- "weight (lb)": "2735",
- "0-60 mph (s)": "18",
- "year": "82"
- },
- {
- "name": "Pontiac Phoenix",
- "economy (mpg)": "33.5",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "90",
- "weight (lb)": "2556",
- "0-60 mph (s)": "13.2",
- "year": "79"
- },
- {
- "name": "Pontiac Safari (Wagon)",
- "economy (mpg)": "13",
- "cylinders": "8",
- "displacement (cc)": "400",
- "power (hp)": "175",
- "weight (lb)": "5140",
- "0-60 mph (s)": "12",
- "year": "71"
- },
- {
- "name": "Pontiac Sunbird Coupe",
- "economy (mpg)": "24.5",
- "cylinders": "4",
- "displacement (cc)": "151",
- "power (hp)": "88",
- "weight (lb)": "2740",
- "0-60 mph (s)": "16",
- "year": "77"
- },
- {
- "name": "Pontiac Ventura Sj",
- "economy (mpg)": "18.5",
- "cylinders": "6",
- "displacement (cc)": "250",
- "power (hp)": "110",
- "weight (lb)": "3645",
- "0-60 mph (s)": "16.2",
- "year": "76"
- },
- {
- "name": "Renault 12 (Wagon)",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "96",
- "power (hp)": "69",
- "weight (lb)": "2189",
- "0-60 mph (s)": "18",
- "year": "72"
- },
- {
- "name": "Renault 12TL",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "101",
- "power (hp)": "83",
- "weight (lb)": "2202",
- "0-60 mph (s)": "15.3",
- "year": "76"
- },
- {
- "name": "Renault 18I",
- "economy (mpg)": "34.5",
- "cylinders": "4",
- "displacement (cc)": "100",
- "power (hp)": "",
- "weight (lb)": "2320",
- "0-60 mph (s)": "15.8",
- "year": "81"
- },
- {
- "name": "Renault 5 Gtl",
- "economy (mpg)": "36",
- "cylinders": "4",
- "displacement (cc)": "79",
- "power (hp)": "58",
- "weight (lb)": "1825",
- "0-60 mph (s)": "18.6",
- "year": "77"
- },
- {
- "name": "Renault Lecar Deluxe",
- "economy (mpg)": "40.9",
- "cylinders": "4",
- "displacement (cc)": "85",
- "power (hp)": "",
- "weight (lb)": "1835",
- "0-60 mph (s)": "17.3",
- "year": "80"
- },
- {
- "name": "Saab 900S",
- "economy (mpg)": "",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "110",
- "weight (lb)": "2800",
- "0-60 mph (s)": "15.4",
- "year": "81"
- },
- {
- "name": "Saab 99E",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "104",
- "power (hp)": "95",
- "weight (lb)": "2375",
- "0-60 mph (s)": "17.5",
- "year": "70"
- },
- {
- "name": "Saab 99GLE",
- "economy (mpg)": "21.6",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "115",
- "weight (lb)": "2795",
- "0-60 mph (s)": "15.7",
- "year": "78"
- },
- {
- "name": "Saab 99LE",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "110",
- "weight (lb)": "2660",
- "0-60 mph (s)": "14",
- "year": "73"
- },
- {
- "name": "Saab 99LE",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "115",
- "weight (lb)": "2671",
- "0-60 mph (s)": "13.5",
- "year": "75"
- },
- {
- "name": "Subaru DL",
- "economy (mpg)": "30",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "67",
- "weight (lb)": "1985",
- "0-60 mph (s)": "16.4",
- "year": "77"
- },
- {
- "name": "Subaru DL",
- "economy (mpg)": "33.8",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "67",
- "weight (lb)": "2145",
- "0-60 mph (s)": "18",
- "year": "80"
- },
- {
- "name": "Subaru",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "108",
- "power (hp)": "93",
- "weight (lb)": "2391",
- "0-60 mph (s)": "15.5",
- "year": "74"
- },
- {
- "name": "Subaru",
- "economy (mpg)": "32.3",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "67",
- "weight (lb)": "2065",
- "0-60 mph (s)": "17.8",
- "year": "81"
- },
- {
- "name": "Toyota Carina",
- "economy (mpg)": "20",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "88",
- "weight (lb)": "2279",
- "0-60 mph (s)": "19",
- "year": "73"
- },
- {
- "name": "Toyota Celica GT Liftback",
- "economy (mpg)": "21.1",
- "cylinders": "4",
- "displacement (cc)": "134",
- "power (hp)": "95",
- "weight (lb)": "2515",
- "0-60 mph (s)": "14.8",
- "year": "78"
- },
- {
- "name": "Toyota Celica GT",
- "economy (mpg)": "32",
- "cylinders": "4",
- "displacement (cc)": "144",
- "power (hp)": "96",
- "weight (lb)": "2665",
- "0-60 mph (s)": "13.9",
- "year": "82"
- },
- {
- "name": "Toyota Corolla 1200",
- "economy (mpg)": "31",
- "cylinders": "4",
- "displacement (cc)": "71",
- "power (hp)": "65",
- "weight (lb)": "1773",
- "0-60 mph (s)": "19",
- "year": "71"
- },
- {
- "name": "Toyota Corolla 1200",
- "economy (mpg)": "32",
- "cylinders": "4",
- "displacement (cc)": "71",
- "power (hp)": "65",
- "weight (lb)": "1836",
- "0-60 mph (s)": "21",
- "year": "74"
- },
- {
- "name": "Toyota Corolla 1600 (Wagon)",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "88",
- "weight (lb)": "2100",
- "0-60 mph (s)": "16.5",
- "year": "72"
- },
- {
- "name": "Toyota Corolla Liftback",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "75",
- "weight (lb)": "2265",
- "0-60 mph (s)": "18.2",
- "year": "77"
- },
- {
- "name": "Toyota Corolla Tercel",
- "economy (mpg)": "38.1",
- "cylinders": "4",
- "displacement (cc)": "89",
- "power (hp)": "60",
- "weight (lb)": "1968",
- "0-60 mph (s)": "18.8",
- "year": "80"
- },
- {
- "name": "Toyota Corolla",
- "economy (mpg)": "28",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "75",
- "weight (lb)": "2155",
- "0-60 mph (s)": "16.4",
- "year": "76"
- },
- {
- "name": "Toyota Corolla",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "75",
- "weight (lb)": "2171",
- "0-60 mph (s)": "16",
- "year": "75"
- },
- {
- "name": "Toyota Corolla",
- "economy (mpg)": "32.2",
- "cylinders": "4",
- "displacement (cc)": "108",
- "power (hp)": "75",
- "weight (lb)": "2265",
- "0-60 mph (s)": "15.2",
- "year": "80"
- },
- {
- "name": "Toyota Corolla",
- "economy (mpg)": "32.4",
- "cylinders": "4",
- "displacement (cc)": "108",
- "power (hp)": "75",
- "weight (lb)": "2350",
- "0-60 mph (s)": "16.8",
- "year": "81"
- },
- {
- "name": "Toyota Corolla",
- "economy (mpg)": "34",
- "cylinders": "4",
- "displacement (cc)": "108",
- "power (hp)": "70",
- "weight (lb)": "2245",
- "0-60 mph (s)": "16.9",
- "year": "82"
- },
- {
- "name": "Toyota Corona Hardtop",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "113",
- "power (hp)": "95",
- "weight (lb)": "2278",
- "0-60 mph (s)": "15.5",
- "year": "72"
- },
- {
- "name": "Toyota Corona Liftback",
- "economy (mpg)": "29.8",
- "cylinders": "4",
- "displacement (cc)": "134",
- "power (hp)": "90",
- "weight (lb)": "2711",
- "0-60 mph (s)": "15.5",
- "year": "80"
- },
- {
- "name": "Toyota Corona Mark II",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "113",
- "power (hp)": "95",
- "weight (lb)": "2372",
- "0-60 mph (s)": "15",
- "year": "70"
- },
- {
- "name": "Toyota Corona",
- "economy (mpg)": "24",
- "cylinders": "4",
- "displacement (cc)": "134",
- "power (hp)": "96",
- "weight (lb)": "2702",
- "0-60 mph (s)": "13.5",
- "year": "75"
- },
- {
- "name": "Toyota Corona",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "113",
- "power (hp)": "95",
- "weight (lb)": "2228",
- "0-60 mph (s)": "14",
- "year": "71"
- },
- {
- "name": "Toyota Corona",
- "economy (mpg)": "27.5",
- "cylinders": "4",
- "displacement (cc)": "134",
- "power (hp)": "95",
- "weight (lb)": "2560",
- "0-60 mph (s)": "14.2",
- "year": "78"
- },
- {
- "name": "Toyota Corona",
- "economy (mpg)": "31",
- "cylinders": "4",
- "displacement (cc)": "76",
- "power (hp)": "52",
- "weight (lb)": "1649",
- "0-60 mph (s)": "16.5",
- "year": "74"
- },
- {
- "name": "Toyota Cressida",
- "economy (mpg)": "25.4",
- "cylinders": "6",
- "displacement (cc)": "168",
- "power (hp)": "116",
- "weight (lb)": "2900",
- "0-60 mph (s)": "12.6",
- "year": "81"
- },
- {
- "name": "Toyota Mark II",
- "economy (mpg)": "19",
- "cylinders": "6",
- "displacement (cc)": "156",
- "power (hp)": "108",
- "weight (lb)": "2930",
- "0-60 mph (s)": "15.5",
- "year": "76"
- },
- {
- "name": "Toyota Mark II",
- "economy (mpg)": "20",
- "cylinders": "6",
- "displacement (cc)": "156",
- "power (hp)": "122",
- "weight (lb)": "2807",
- "0-60 mph (s)": "13.5",
- "year": "73"
- },
- {
- "name": "Toyota Starlet",
- "economy (mpg)": "39.1",
- "cylinders": "4",
- "displacement (cc)": "79",
- "power (hp)": "58",
- "weight (lb)": "1755",
- "0-60 mph (s)": "16.9",
- "year": "81"
- },
- {
- "name": "Toyota Tercel",
- "economy (mpg)": "37.7",
- "cylinders": "4",
- "displacement (cc)": "89",
- "power (hp)": "62",
- "weight (lb)": "2050",
- "0-60 mph (s)": "17.3",
- "year": "81"
- },
- {
- "name": "Toyouta Corona Mark II (Wagon)",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "120",
- "power (hp)": "97",
- "weight (lb)": "2506",
- "0-60 mph (s)": "14.5",
- "year": "72"
- },
- {
- "name": "Triumph TR7 Coupe",
- "economy (mpg)": "35",
- "cylinders": "4",
- "displacement (cc)": "122",
- "power (hp)": "88",
- "weight (lb)": "2500",
- "0-60 mph (s)": "15.1",
- "year": "80"
- },
- {
- "name": "Vokswagen Rabbit",
- "economy (mpg)": "29.8",
- "cylinders": "4",
- "displacement (cc)": "89",
- "power (hp)": "62",
- "weight (lb)": "1845",
- "0-60 mph (s)": "15.3",
- "year": "80"
- },
- {
- "name": "Volkswagen 1131 Deluxe Sedan",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "46",
- "weight (lb)": "1835",
- "0-60 mph (s)": "20.5",
- "year": "70"
- },
- {
- "name": "Volkswagen 411 (Wagon)",
- "economy (mpg)": "22",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "76",
- "weight (lb)": "2511",
- "0-60 mph (s)": "18",
- "year": "72"
- },
- {
- "name": "Volkswagen Dasher (Diesel)",
- "economy (mpg)": "43.4",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "48",
- "weight (lb)": "2335",
- "0-60 mph (s)": "23.7",
- "year": "80"
- },
- {
- "name": "Volkswagen Dasher",
- "economy (mpg)": "25",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "71",
- "weight (lb)": "2223",
- "0-60 mph (s)": "16.5",
- "year": "75"
- },
- {
- "name": "Volkswagen Dasher",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "79",
- "power (hp)": "67",
- "weight (lb)": "1963",
- "0-60 mph (s)": "15.5",
- "year": "74"
- },
- {
- "name": "Volkswagen Dasher",
- "economy (mpg)": "30.5",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "78",
- "weight (lb)": "2190",
- "0-60 mph (s)": "14.1",
- "year": "77"
- },
- {
- "name": "Volkswagen Jetta",
- "economy (mpg)": "33",
- "cylinders": "4",
- "displacement (cc)": "105",
- "power (hp)": "74",
- "weight (lb)": "2190",
- "0-60 mph (s)": "14.2",
- "year": "81"
- },
- {
- "name": "Volkswagen Model 111",
- "economy (mpg)": "27",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "60",
- "weight (lb)": "1834",
- "0-60 mph (s)": "19",
- "year": "71"
- },
- {
- "name": "Volkswagen Pickup",
- "economy (mpg)": "44",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "52",
- "weight (lb)": "2130",
- "0-60 mph (s)": "24.6",
- "year": "82"
- },
- {
- "name": "Volkswagen Rabbit C (Diesel)",
- "economy (mpg)": "44.3",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "48",
- "weight (lb)": "2085",
- "0-60 mph (s)": "21.7",
- "year": "80"
- },
- {
- "name": "Volkswagen Rabbit Custom Diesel",
- "economy (mpg)": "43.1",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "48",
- "weight (lb)": "1985",
- "0-60 mph (s)": "21.5",
- "year": "78"
- },
- {
- "name": "Volkswagen Rabbit Custom",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "78",
- "weight (lb)": "1940",
- "0-60 mph (s)": "14.5",
- "year": "77"
- },
- {
- "name": "Volkswagen Rabbit Custom",
- "economy (mpg)": "31.9",
- "cylinders": "4",
- "displacement (cc)": "89",
- "power (hp)": "71",
- "weight (lb)": "1925",
- "0-60 mph (s)": "14",
- "year": "79"
- },
- {
- "name": "Volkswagen Rabbit L",
- "economy (mpg)": "36",
- "cylinders": "4",
- "displacement (cc)": "105",
- "power (hp)": "74",
- "weight (lb)": "1980",
- "0-60 mph (s)": "15.3",
- "year": "82"
- },
- {
- "name": "Volkswagen Rabbit",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "70",
- "weight (lb)": "1937",
- "0-60 mph (s)": "14",
- "year": "75"
- },
- {
- "name": "Volkswagen Rabbit",
- "economy (mpg)": "29",
- "cylinders": "4",
- "displacement (cc)": "90",
- "power (hp)": "70",
- "weight (lb)": "1937",
- "0-60 mph (s)": "14.2",
- "year": "76"
- },
- {
- "name": "Volkswagen Rabbit",
- "economy (mpg)": "29.5",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "71",
- "weight (lb)": "1825",
- "0-60 mph (s)": "12.2",
- "year": "76"
- },
- {
- "name": "Volkswagen Rabbit",
- "economy (mpg)": "41.5",
- "cylinders": "4",
- "displacement (cc)": "98",
- "power (hp)": "76",
- "weight (lb)": "2144",
- "0-60 mph (s)": "14.7",
- "year": "80"
- },
- {
- "name": "Volkswagen Scirocco",
- "economy (mpg)": "31.5",
- "cylinders": "4",
- "displacement (cc)": "89",
- "power (hp)": "71",
- "weight (lb)": "1990",
- "0-60 mph (s)": "14.9",
- "year": "78"
- },
- {
- "name": "Volkswagen Super Beetle 117",
- "economy (mpg)": "",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "48",
- "weight (lb)": "1978",
- "0-60 mph (s)": "20",
- "year": "71"
- },
- {
- "name": "Volkswagen Super Beetle",
- "economy (mpg)": "26",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "46",
- "weight (lb)": "1950",
- "0-60 mph (s)": "21",
- "year": "73"
- },
- {
- "name": "Volkswagen Type 3",
- "economy (mpg)": "23",
- "cylinders": "4",
- "displacement (cc)": "97",
- "power (hp)": "54",
- "weight (lb)": "2254",
- "0-60 mph (s)": "23.5",
- "year": "72"
- },
- {
- "name": "Volvo 144EA",
- "economy (mpg)": "19",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "112",
- "weight (lb)": "2868",
- "0-60 mph (s)": "15.5",
- "year": "73"
- },
- {
- "name": "Volvo 145E (Wagon)",
- "economy (mpg)": "18",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "112",
- "weight (lb)": "2933",
- "0-60 mph (s)": "14.5",
- "year": "72"
- },
- {
- "name": "Volvo 244DL",
- "economy (mpg)": "22",
- "cylinders": "4",
- "displacement (cc)": "121",
- "power (hp)": "98",
- "weight (lb)": "2945",
- "0-60 mph (s)": "14.5",
- "year": "75"
- },
- {
- "name": "Volvo 245",
- "economy (mpg)": "20",
- "cylinders": "4",
- "displacement (cc)": "130",
- "power (hp)": "102",
- "weight (lb)": "3150",
- "0-60 mph (s)": "15.7",
- "year": "76"
- },
- {
- "name": "Volvo 264GL",
- "economy (mpg)": "17",
- "cylinders": "6",
- "displacement (cc)": "163",
- "power (hp)": "125",
- "weight (lb)": "3140",
- "0-60 mph (s)": "13.6",
- "year": "78"
- },
- {
- "name": "Volvo Diesel",
- "economy (mpg)": "30.7",
- "cylinders": "6",
- "displacement (cc)": "145",
- "power (hp)": "76",
- "weight (lb)": "3160",
- "0-60 mph (s)": "19.6",
- "year": "81"
- }
-]
-}
-
- </script>
- </body>
-</html>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html
deleted file mode 100755
index 3ba3f2bb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<svg id="test2"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/pie.js"></script>
-<script>
-
- var testdata = [
- {
- key: "One",
- y: 5
- },
- {
- key: "Two",
- y: 2
- },
- {
- key: "Three",
- y: 9
- },
- {
- key: "Four",
- y: 7
- },
- {
- key: "Five",
- y: 4
- },
- {
- key: "Six",
- y: 3
- }
- ];
-
-
-nv.addGraph(function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height / 2 - 40;
-
- var chart = nv.models.pie()
- .values(function(d) { return d })
- .width(width)
- .height(height);
-
- d3.select("#test1")
- .datum([testdata])
- .transition().duration(1200)
- .attr('width', width)
- .attr('height', height)
- .call(chart);
-
- return chart;
-});
-
-nv.addGraph(function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height / 2 - 40;
-
- var chart = nv.models.pie()
- .values(function(d) { return d })
- .width(width)
- .height(height)
- .donut(true);
-
- d3.select("#test2")
- .datum([testdata])
- .transition().duration(1200)
- .attr('width', width)
- .attr('height', height)
- .call(chart);
-
- return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html
deleted file mode 100755
index bdb3de96..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-.mypiechart {
- width: 500px;
- border: 2px;
-}
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<h2>Test1</h2>
-<svg id="test1" class="mypiechart"></svg>
-
-<h2>Test2</h2>
-<svg id="test2" class="mypiechart"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/pie.js"></script>
-<script src="../src/models/pieChart.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
- var testdata = [
- {
- key: "One",
- y: 5
- },
- {
- key: "Two",
- y: 2
- },
- {
- key: "Three",
- y: 9
- },
- {
- key: "Four",
- y: 7
- },
- {
- key: "Five",
- y: 4
- },
- {
- key: "Six",
- y: 3
- },
- {
- key: "Seven",
- y: .5
- }
- ];
-
-
-nv.addGraph(function() {
- var width = 500,
- height = 500;
-
- var chart = nv.models.pieChart()
- .x(function(d) { return d.key })
- .y(function(d) { return d.y })
- .color(d3.scale.category10().range())
- .width(width)
- .height(height);
-
- d3.select("#test1")
- .datum(testdata)
- .transition().duration(1200)
- .attr('width', width)
- .attr('height', height)
- .call(chart);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-nv.addGraph(function() {
-
- var width = 500,
- height = 500;
-
- var chart = nv.models.pieChart()
- .x(function(d) { return d.key })
- //.y(function(d) { return d.value })
- //.labelThreshold(.08)
- //.showLabels(false)
- .color(d3.scale.category10().range())
- .width(width)
- .height(height)
- .donut(true);
-
- chart.pie
- .startAngle(function(d) { return d.startAngle/2 -Math.PI/2 })
- .endAngle(function(d) { return d.endAngle/2 -Math.PI/2 });
-
- //chart.pie.donutLabelsOutside(true).donut(true);
-
- d3.select("#test2")
- //.datum(historicalBarChart)
- .datum(testdata)
- .transition().duration(1200)
- .attr('width', width)
- .attr('height', height)
- .call(chart);
-
- return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html
deleted file mode 100755
index 2c277670..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script>
-
-
-//Format A
-nv.addGraph({
- generate: function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40;
-
- var chart = nv.models.scatter()
- .width(width)
- .height(height)
- .margin({top: 20, right: 20, bottom: 20, left: 20})
- .size(function(d) { return d.z })
- .useVoronoi(false)
- //.interactive(false)
-
-
- d3.select('#test1')
- .attr('width', width)
- .attr('height', height)
- .datum(randomData())
- .transition().duration(500)
- .call(chart);
-
- return chart;
- },
- callback: function(graph) {
- window.onresize = function() {
- var width = nv.utils.windowSize().width - 40,
- height = nv.utils.windowSize().height - 40,
- margin = graph.margin();
-
-
- if (width < margin.left + margin.right + 20)
- width = margin.left + margin.right + 20;
-
- if (height < margin.top + margin.bottom + 20)
- height = margin.top + margin.bottom + 20;
-
-
- graph
- .width(width)
- .height(height);
-
- d3.select('#test1')
- .attr('width', width)
- .attr('height', height)
- .call(graph);
-
- };
- }
-});
-
-
-
-
-function randomData() {
- var data = [];
-
- for (i = 0; i < 2; i++) {
- data.push({
- key: 'Group ' + i,
- values: []
- });
-
- for (j = 0; j < 100; j++) {
- data[i].values.push({x: Math.random(), y: Math.random(), z: Math.random()});
- }
- }
-
- return data;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html
deleted file mode 100755
index 57a8b91d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
- margin: 0;
- padding: 0;
-}
-
-svg {
- overflow: hidden;
-}
-
-div {
- border: 0;
- margin: 0;
-}
-
-/*
-#offsetDiv {
- margin-left: 100px;
- margin-top: 100px;
-}
-*/
-
-
-#test1 {
- margin: 0;
-}
-
-#test1 svg {
- height: 500px;
-}
-
-</style>
-
-<body>
-
-<div id="offsetDiv">
- <div id="test1" class='with-3d-shadow with-transitions'>
- <svg></svg>
- </div>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<!--<script src="../lib/fisheye.js"></script>-->
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterChart.js"></script>
-<script>
-
-
-
-//Format A
-var chart;
-nv.addGraph(function() {
- chart = nv.models.scatterChart()
- .showDistX(true)
- .showDistY(true)
- .useVoronoi(true)
- .color(d3.scale.category10().range())
- .transitionDuration(300)
- ;
-
- chart.xAxis.tickFormat(d3.format('.02f'));
- chart.yAxis.tickFormat(d3.format('.02f'));
- chart.tooltipContent(function(key) {
- return '<h2>' + key + '</h2>';
- });
-
- d3.select('#test1 svg')
- .datum(randomData(4,40))
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { ('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-
-function randomData(groups, points) { //# groups,# points per group
- var data = [],
- shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
- random = d3.random.normal();
-
- for (i = 0; i < groups; i++) {
- data.push({
- key: 'Group ' + i,
- values: []
- });
-
- for (j = 0; j < points; j++) {
- data[i].values.push({
- x: random(),
- y: random(),
- size: Math.random(),
- shape: shapes[j % 6]
- });
- }
- }
-
- return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html
deleted file mode 100755
index d09cc9a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
- margin: 0;
- padding: 0;
-}
-
-svg {
- overflow: hidden;
-}
-
-div {
- border: 0;
- margin: 0;
-}
-
-/*
-#offsetDiv {
- margin-left: 100px;
- margin-top: 100px;
-}
-*/
-
-
-#test1 {
- margin: 0;
-}
-
-#test1 svg {
- height: 500px;
-}
-
-</style>
-
-<body class='with-3d-shadow with-transitions'>
-
-<div id="offsetDiv">
- <div id="test1" class="chartWrap">
- <svg></svg>
- </div>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterPlusLineChart.js"></script>
-<script>
-
-
-
-//Format A
-var chart;
-nv.addGraph(function() {
- chart = nv.models.scatterPlusLineChart()
- .showDistX(true)
- .showDistY(true)
- .transitionDuration(300)
- .color(d3.scale.category10().range());
-
- chart.xAxis.tickFormat(d3.format('.02f'))
- chart.yAxis.tickFormat(d3.format('.02f'))
-
- d3.select('#test1 svg')
- .datum(nv.log(randomData(4,40)))
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-
-function randomData(groups, points) { //# groups,# points per group
- var data = [],
- shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
- random = d3.random.normal();
-
- for (i = 0; i < groups; i++) {
- data.push({
- key: 'Group ' + i,
- values: [],
- slope: Math.random() - .01,
- intercept: Math.random() - .5
- });
-
- for (j = 0; j < points; j++) {
- data[i].values.push({
- x: random(),
- y: random(),
- size: Math.random(),
- shape: shapes[j % 6]
- });
- }
- }
-
- return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html
deleted file mode 100755
index b7412ec9..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-.sparkline path {
- fill: none;
- stroke: #444;
-}
-
-text {
- font: 10px sans-serif;
-}
-
-#chart1 {
- width: 300px;
- height: 32px;
-}
-
-</style>
-<body>
-
- <h2>Sparkline: <svg id="chart1" class="sparkline"></svg></h2>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/sparkline.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-//Format A
-nv.addGraph({
- generate: function() {
- var chart = nv.models.sparkline()
- .width(400)
- .height(30)
-
- d3.select("#chart1")
- .datum(sine())
- .call(chart);
-
- return chart;
- },
- callback: function(graph) {
- //log("Sparkline rendered");
- }
-});
-
-
-
-function sine() {
- var sin = [];
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.sin(i/10)});
- }
-
- return sin;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html
deleted file mode 100755
index f04e6e9b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-svg.sparkline {
- width: 500px;
- height: 70px;
- font-size: 14px;
- margin-top: -6px;
-}
-
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<h2>SparklinePlus:</h2>
-<p><svg id="chart1" class="sparkline"></svg></p>
-<br/>
-<p>APPL:<svg id="chart2" class="sparkline"></svg></p>
-
-<p>GOOG:<svg id="chart3" class="sparkline"></svg></p>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/sparkline.js"></script>
-<script src="../src/models/sparklinePlus.js"></script>
-<script>
-
-function defaultChartConfig(containerId, data) {
- nv.addGraph(function() {
-
- var chart = nv.models.sparklinePlus()
-
- chart
- .margin({left:70})
- .x(function(d,i) { return i })
- .xTickFormat(function(d) {
- return d3.time.format('%x')(new Date(data[d].x))
- })
-
- d3.select(containerId)
- .datum(data)
- .transition().duration(250)
- .call(chart);
-
-
- return chart;
- });
-}
-
-defaultChartConfig("#chart1",sine());
-defaultChartConfig("#chart2", volatileChart(130.0, 0.02));
-defaultChartConfig("#chart3", volatileChart(25.0, 0.09,30));
-
-
-function sine() {
- var sin = [];
- var now =+new Date();
-
- for (var i = 0; i < 100; i++) {
- sin.push({x: now + i * 1000 * 60 * 60 * 24, y: Math.sin(i/10)});
- }
-
- return sin;
-}
-
-function volatileChart(startPrice, volatility, numPoints) {
- var rval = [];
- var now =+new Date();
- numPoints = numPoints || 100;
- for(var i = 1; i < numPoints; i++) {
-
- rval.push({x: now + i * 1000 * 60 * 60 * 24, y: startPrice});
- var rnd = Math.random();
- var changePct = 2 * volatility * rnd;
- if ( changePct > volatility) {
- changePct -= (2*volatility);
- }
- startPrice = startPrice + startPrice * changePct;
- }
- return rval;
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html
deleted file mode 100755
index 43a959b0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body>
-
- <div id="chart">
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script>
-
-
-//Format A
-nv.addGraph({
- generate: function() {
- var n = 10, // number of layers
- m = 200; // number of samples per layer
- //color = d3.interpolateRgb("#aad", "#556");
-
- var data = stream_layers(n,m).map(function(data, i) {
- return {
- key: 'Stream' + i,
- values: data
- };
- });
-
-
- var width = nv.utils.windowSize().width - 20,
- height = nv.utils.windowSize().height - 20;
-
- var chart = nv.models.stackedArea()
- .width(width)
- .height(height)
- //.offset('wiggle')
- //.order('default')
-
-
- var svg = d3.select('#chart svg')
- .attr('width', width)
- .attr('height', height)
- .datum(data)
-
- svg.transition().duration(500).call(chart);
-
- return chart;
- },
- callback: function(graph) {
-
-
-
- graph.dispatch.on('tooltipShow', function(e) {
- var offsetElement = document.getElementById("chart"),
- left = e.pos[0] + offsetElement.offsetLeft,
- top = e.pos[1] + offsetElement.offsetTop,
- formatterY = d3.format(",.2%"),
- formatterX = function(d) {
- return d3.time.format('%x')(new Date(d))
- };
-
- var content = '<h3>' + e.series.key + '</h3>' +
- '<p>' +
- formatterY(graph.y()(e.point)) + ' at ' + formatterX(graph.x()(e.point)) +
- '</p>';
-
- nv.tooltip.show([left, top], content);
- });
-
- graph.dispatch.on('tooltipHide', function(e) {
- nv.tooltip.cleanup();
- });
-
-
-
- window.onResize = function() {
- var width = nv.utils.windowSize().width - 20,
- height = nv.utils.windowSize().height - 20,
- margin = graph.margin();
-
-
- if (width < margin.left + margin.right + 20)
- width = margin.left + margin.right + 20;
-
- if (height < margin.top + margin.bottom + 20)
- height = margin.top + margin.bottom + 20;
-
-
- graph
- .width(width)
- .height(height);
-
- d3.select('#chart svg')
- .attr('width', width)
- .attr('height', height)
- .call(graph);
-
- }
- }
-});
-
-
-
-
-/* Inspired by Lee Byron's test data generator. */
-function stream_layers(n, m, o) {
- if (arguments.length < 3) o = 0;
- function bump(a) {
- var x = 1 / (.1 + Math.random()),
- y = 2 * Math.random() - .5,
- z = 10 / (.1 + Math.random());
- for (var i = 0; i < m; i++) {
- var w = (i / m - y) * z;
- a[i] += x * Math.exp(-w * w);
- }
- }
- return d3.range(n).map(function() {
- var a = [], i;
- for (i = 0; i < m; i++) a[i] = o + o * Math.random();
- for (i = 0; i < 5; i++) bump(a);
- return a.map(stream_index);
- });
-}
-
-/* Another layer generator using gamma distributions. */
-function stream_waves(n, m) {
- return d3.range(n).map(function(i) {
- return d3.range(m).map(function(j) {
- var x = 20 * j / m - i / 3;
- return 2 * x * Math.exp(-.5 * x);
- }).map(stream_index);
- });
-}
-
-function stream_index(d, i) {
- return {x: i, y: Math.max(0, d)};
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html
deleted file mode 100755
index e1dd1926..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html
+++ /dev/null
@@ -1,250 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
- overflow-y:scroll;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-#chart1, #chart2 {
- height: 500px;
-}
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
- <div>
- <svg id="chart1"></svg>
- </div>
-
- <div>
- <!--<svg id="chart2"></svg>-->
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaChart.js"></script>
-<script>
-
-
-var histcatexplong = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025298] , [ 1201755600000 , 17.286592443521] , [ 1204261200000 , 16.323141626569] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 29.46138169384] , [ 1283227200000 , 27.357322961862] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0.39001201038526] , [ 1335758400000 , 0.30945472725559] , [ 1338436800000 , 0.31062439305591]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , 13.356778764352] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.895903006119] , [ 1146369600000 , 6.9939633271352] , [ 1149048000000 , 6.7241510257675] , [ 1151640000000 , 5.5611293669516] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169279] , [ 1162270800000 , 7.0016334389777] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.968954653301] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.519182132226] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422456] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234549] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361713] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675084] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.637740867211] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362182] , [ 1314763200000 , 24.778452182432] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.2531374291] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741105] , [ 1333166400000 , 7.1424929577921] , [ 1335758400000 , 7.8076213051482] , [ 1338436800000 , 7.2462684949232]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 14.212410956029] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920665] , [ 1146369600000 , 14.38210972745] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090032] , [ 1154318400000 , 16.244839695188] , [ 1156996800000 , 16.017088850646] , [ 1159588800000 , 14.183951830055] , [ 1162270800000 , 14.148523245697] , [ 1164862800000 , 13.424326059972] , [ 1167541200000 , 12.974450435753] , [ 1170219600000 , 13.23247041802] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.246590583889] , [ 1183176000000 , 17.564505594809] , [ 1185854400000 , 17.872725373165] , [ 1188532800000 , 18.018998508757] , [ 1191124800000 , 15.584518016603] , [ 1193803200000 , 15.480850647181] , [ 1196398800000 , 15.699120036984] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605207] , [ 1204261200000 , 18.982314051295] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929761] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003979] , [ 1217476800000 , 18.929464156258] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.63289219025] , [ 1228021200000 , 14.667835024478] , [ 1230699600000 , 13.946993947308] , [ 1233378000000 , 14.394304684397] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035806] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438287] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670276] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800017] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560787] , [ 1288497600000 , 14.04516285753] , [ 1291093200000 , 13.697412447288] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.961511864531] , [ 1298869200000 , 21.049198298158] , [ 1301544000000 , 22.687631094008] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.883799437121] , [ 1309406400000 , 24.203843814248] , [ 1312084800000 , 22.138760964038] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944556] , [ 1320033600000 , 12.625642461969] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.786018336149] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650734] , [ 1333166400000 , 18.994731295388] , [ 1335758400000 , 18.450055817702] , [ 1338436800000 , 17.863719889669]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , 7.1590087090398] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.136053947247] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925082] , [ 1177905600000 , 5.5191481293345] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474575] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458946] , [ 1243742400000 , 4.7458462454774] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254155] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838003] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 5.1293714074325] , [ 1335758400000 , 5.2586794619016] , [ 1338436800000 , 5.1100853569977]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342042] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618803] , [ 1149048000000 , 21.142678863691] , [ 1151640000000 , 26.568489677529] , [ 1154318400000 , 24.839144939905] , [ 1156996800000 , 25.456187462167] , [ 1159588800000 , 26.350164502826] , [ 1162270800000 , 26.47833320519] , [ 1164862800000 , 26.425979547847] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625832] , [ 1180584000000 , 27.490862424829] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.060480671449] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194127] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664833] , [ 1199077200000 , 30.629727432728] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227842] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288523] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093843] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832098] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618401] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.246007102281] , [ 1241064000000 , 24.530543998509] , [ 1243742400000 , 25.084184918242] , [ 1246334400000 , 16.606166527358] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475753] , [ 1256961600000 , 23.017152085245] , [ 1259557200000 , 25.617745423683] , [ 1262235600000 , 24.061133998642] , [ 1264914000000 , 23.223933318644] , [ 1267333200000 , 24.425887263937] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878676] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450371] , [ 1285819200000 , 30.498967232092] , [ 1288497600000 , 32.403696817912] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.846330510051] , [ 1306814400000 , 39.857316881857] , [ 1309406400000 , 37.675127768208] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702577] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769976] , [ 1333166400000 , 26.434568573937] , [ 1335758400000 , 25.305617871002] , [ 1338436800000 , 24.520919418236]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.1989783050309] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- }
-];
-
-/*
-// for testing single data point
-var histcatexplong = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , 27.38478809681]]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 7.2800122043237]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , 1.544303464167]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , 13.356778764352]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 14.212410956029]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , 7.1590087090398]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , 13.242301508051]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , 5.5806167415681]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 3.7056975170243]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0]]
- }
-];
-*/
-
-
-
-var histcatexpshort = [
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , -0.24102139376003] , [ 1170219600000 , -0.69960584365035] , [ 1172638800000 , -0.67365051426185] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.31429312464988] , [ 1185854400000 , -0.90018700397153] , [ 1188532800000 , -0.96926214328714] , [ 1191124800000 , -1.1343386468131] , [ 1193803200000 , -1.1335426595455] , [ 1196398800000 , -1.2327663032424] , [ 1199077200000 , -0.41027135492155] , [ 1201755600000 , -0.41779167524802] , [ 1204261200000 , -0.38133883625885] , [ 1206936000000 , 0] , [ 1209528000000 , -0.32550520320253] , [ 1212206400000 , -0.33185144615505] , [ 1214798400000 , -0.68609668877894] , [ 1217476800000 , -0.70001207744308] , [ 1220155200000 , -0.68378680840919] , [ 1222747200000 , -0.40908783182034] , [ 1225425600000 , -0.39074266525646] , [ 1228021200000 , -0.40358490474562] , [ 1230699600000 , -0.85752207262267] , [ 1233378000000 , -0.74395750438805] , [ 1235797200000 , -0.70718832429489] , [ 1238472000000 , -0.76244465406965] , [ 1241064000000 , -0.67618572591984] , [ 1243742400000 , -0.67649596761402] , [ 1246334400000 , -0.94618002703247] , [ 1249012800000 , -0.95408485581014] , [ 1251691200000 , -0.96272139504276] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , -0.25516420149471] , [ 1272600000000 , -0.24106264576017] , [ 1275278400000 , -0.22802547751448] , [ 1277870400000 , -0.62187524046697] , [ 1280548800000 , -0.72155608677106] , [ 1283227200000 , -0.70221659944774] , [ 1285819200000 , -1.1117002584543] , [ 1288497600000 , -1.190911001336] , [ 1291093200000 , -1.1781082003972] , [ 1293771600000 , -1.2125860264875] , [ 1296450000000 , -1.7748010365657] , [ 1298869200000 , -1.8919594178596] , [ 1301544000000 , -1.7077946421533] , [ 1304136000000 , -2.024238803094] , [ 1306814400000 , -1.9769844081819] , [ 1309406400000 , -2.0730275464065] , [ 1312084800000 , -1.9690128240888] , [ 1314763200000 , -5.5557852269348] , [ 1317355200000 , -7.2527933190641] , [ 1320033600000 , -5.7367677053109] , [ 1322629200000 , -6.0409316206662] , [ 1325307600000 , -4.6511525539195] , [ 1327986000000 , -4.526116059083] , [ 1330491600000 , -4.846292325197] , [ 1333166400000 , -2.2663198779425] , [ 1335758400000 , -2.4172072568564] , [ 1338436800000 , -2.3204729601189]]
- } ,
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , -0.62238434102863] , [ 1141102800000 , -0.61484565039024] , [ 1143781200000 , -1.0769367918668] , [ 1146369600000 , -1.2221156604129] , [ 1149048000000 , -1.2434858263377] , [ 1151640000000 , -0.58606435489597] , [ 1154318400000 , -0.61478911495141] , [ 1156996800000 , -0.61429362688591] , [ 1159588800000 , -1.1168614112788] , [ 1162270800000 , -1.1510268716612] , [ 1164862800000 , -1.1104724164222] , [ 1167541200000 , -1.2298338563471] , [ 1170219600000 , -1.5053664389104] , [ 1172638800000 , -1.5535266372193] , [ 1175313600000 , -3.1690472535854] , [ 1177905600000 , -3.1273013967041] , [ 1180584000000 , -3.155466271777] , [ 1183176000000 , -3.7158562579437] , [ 1185854400000 , -3.8244546635586] , [ 1188532800000 , -3.5524464859972] , [ 1191124800000 , -3.0472339109128] , [ 1193803200000 , -3.064978140815] , [ 1196398800000 , -3.0818130124986] , [ 1199077200000 , -2.9806791138312] , [ 1201755600000 , -3.7360958775824] , [ 1204261200000 , -3.4687841733263] , [ 1206936000000 , -3.3702018615806] , [ 1209528000000 , -3.1982756208679] , [ 1212206400000 , -3.0489433155104] , [ 1214798400000 , -3.7008275605963] , [ 1217476800000 , -3.8980507260892] , [ 1220155200000 , -3.7680083260241] , [ 1222747200000 , -3.2061890012391] , [ 1225425600000 , -2.6727551440484] , [ 1228021200000 , -2.4469327462935] , [ 1230699600000 , -3.0192419668784] , [ 1233378000000 , -2.892958553476] , [ 1235797200000 , -3.1153570053479] , [ 1238472000000 , -2.9927580570711] , [ 1241064000000 , -3.5061796706294] , [ 1243742400000 , -3.2944159516725] , [ 1246334400000 , -3.4154213240617] , [ 1249012800000 , -3.6492125438171] , [ 1251691200000 , -3.6674164998394] , [ 1254283200000 , -4.6271484977727] , [ 1256961600000 , -4.2433407292676] , [ 1259557200000 , -4.4742625247274] , [ 1262235600000 , -5.2078214612359] , [ 1264914000000 , -5.2209579214469] , [ 1267333200000 , -5.4596395756061] , [ 1270008000000 , -5.6906459276584] , [ 1272600000000 , -6.4981737808665] , [ 1275278400000 , -6.2563044048578] , [ 1277870400000 , -6.175479487959] , [ 1280548800000 , -6.6641002427295] , [ 1283227200000 , -6.3648667745556] , [ 1285819200000 , -5.0270168607884] , [ 1288497600000 , -5.1186072976233] , [ 1291093200000 , -5.1127601587872] , [ 1293771600000 , -5.3015262972641] , [ 1296450000000 , -4.4295728671596] , [ 1298869200000 , -4.5488139745696] , [ 1301544000000 , -2.9021260315957] , [ 1304136000000 , -3.1482096241139] , [ 1306814400000 , -2.8648831814763] , [ 1309406400000 , -2.8149423433441] , [ 1312084800000 , -2.6350669145713] , [ 1314763200000 , -5.9871754759038] , [ 1317355200000 , -8.6127555816399] , [ 1320033600000 , -7.0712887348892] , [ 1322629200000 , -7.3930257999857] , [ 1325307600000 , -6.5183071556304] , [ 1327986000000 , -7.4388913793503] , [ 1330491600000 , -8.2134465182649] , [ 1333166400000 , -7.7836036697105] , [ 1335758400000 , -8.0955053683936] , [ 1338436800000 , -8.0981845818893]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , -0.95707527558303] , [ 1141102800000 , -0.78324346694487] , [ 1143781200000 , -1.2905241058019] , [ 1146369600000 , -1.3880880486779] , [ 1149048000000 , -1.3337247185993] , [ 1151640000000 , -1.0342112071924] , [ 1154318400000 , -1.1264764100183] , [ 1156996800000 , -1.0001002640852] , [ 1159588800000 , -0.85341153093953] , [ 1162270800000 , -0.88452017844596] , [ 1164862800000 , -0.84305725300642] , [ 1167541200000 , -1.0874455682301] , [ 1170219600000 , -1.1714969043168] , [ 1172638800000 , -1.1445856467934] , [ 1175313600000 , -1.1928513334073] , [ 1177905600000 , -1.2365691634265] , [ 1180584000000 , -1.2690940962478] , [ 1183176000000 , -1.662233774695] , [ 1185854400000 , -1.745760538781] , [ 1188532800000 , -1.5209200931271] , [ 1191124800000 , -1.7874791820886] , [ 1193803200000 , -1.7755668105117] , [ 1196398800000 , -1.5456069064618] , [ 1199077200000 , -1.7077541586335] , [ 1201755600000 , -1.6462081650757] , [ 1204261200000 , -1.8624735339628] , [ 1206936000000 , -0.71073453533048] , [ 1209528000000 , -0.75380709640219] , [ 1212206400000 , -0.71020554911716] , [ 1214798400000 , -1.2077850914504] , [ 1217476800000 , -1.0505576787644] , [ 1220155200000 , -0.97804595164878] , [ 1222747200000 , -0.34591294663671] , [ 1225425600000 , -0.19958331514025] , [ 1228021200000 , -0.17599782216296] , [ 1230699600000 , -0.49577714121027] , [ 1233378000000 , -0.51644059173978] , [ 1235797200000 , -0.48576859637083] , [ 1238472000000 , -0.75596531126452] , [ 1241064000000 , -0.72073358315801] , [ 1243742400000 , -0.82125996732294] , [ 1246334400000 , -1.4933216860121] , [ 1249012800000 , -1.5003760525933] , [ 1251691200000 , -1.4744921420596] , [ 1254283200000 , -1.8197844060652] , [ 1256961600000 , -1.6558574419626] , [ 1259557200000 , -1.7256149254159] , [ 1262235600000 , -2.7667194124217] , [ 1264914000000 , -2.9113351806903] , [ 1267333200000 , -3.0172806042796] , [ 1270008000000 , -2.8607175559701] , [ 1272600000000 , -2.629226972169] , [ 1275278400000 , -2.1855196883832] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -1.3788733828844] , [ 1288497600000 , -1.4136792139765] , [ 1291093200000 , -1.5176522942901] , [ 1293771600000 , -1.5776651933208] , [ 1296450000000 , -1.7171675182182] , [ 1298869200000 , -1.8121885250566] , [ 1301544000000 , -1.2221934283206] , [ 1304136000000 , -1.2910715239439] , [ 1306814400000 , -1.1492301612576] , [ 1309406400000 , -1.0613891302841] , [ 1312084800000 , -0.99605193205308] , [ 1314763200000 , -1.7324212072278] , [ 1317355200000 , -1.5226856867477] , [ 1320033600000 , -1.3159138896549] , [ 1322629200000 , -1.3925952659299] , [ 1325307600000 , -1.59624913621] , [ 1327986000000 , -1.5235879880296] , [ 1330491600000 , -1.7315573519279] , [ 1333166400000 , -0.86883431220926] , [ 1335758400000 , -0.90144871282829] , [ 1338436800000 , -0.7010492182517]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , -0.56797103580254] , [ 1141102800000 , -0.57324319174933] , [ 1143781200000 , -1.1014818753272] , [ 1146369600000 , -1.1480256918118] , [ 1149048000000 , -1.0709335336775] , [ 1151640000000 , -0.84876993929658] , [ 1154318400000 , -0.88122638919979] , [ 1156996800000 , -0.86421146074279] , [ 1159588800000 , -0.95093689377974] , [ 1162270800000 , -0.96646862382248] , [ 1164862800000 , -0.96726919442167] , [ 1167541200000 , -0.99874655234936] , [ 1170219600000 , -1.0004843898938] , [ 1172638800000 , -0.9925349676815] , [ 1175313600000 , -1.1888941931287] , [ 1177905600000 , -1.9402228220929] , [ 1180584000000 , -2.03915987194] , [ 1183176000000 , -2.4620526931074] , [ 1185854400000 , -2.2423544651877] , [ 1188532800000 , -1.8790998536037] , [ 1191124800000 , -0.43246873489492] , [ 1193803200000 , -0.40142684216371] , [ 1196398800000 , -0.35646635110466] , [ 1199077200000 , -0.90385702817642] , [ 1201755600000 , -0.86997575249605] , [ 1204261200000 , -0.80101406775415] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.31816167663298] , [ 1217476800000 , -0.309250081849] , [ 1220155200000 , -0.27723698582762] , [ 1222747200000 , -0.32001379372079] , [ 1225425600000 , -0.1940212908561] , [ 1228021200000 , -0.051964569203423] , [ 1230699600000 , -0.68342686502452] , [ 1233378000000 , -0.57645644730726] , [ 1235797200000 , -0.50860972184555] , [ 1238472000000 , -0.44405217759605] , [ 1241064000000 , -0.45224333626901] , [ 1243742400000 , -0.41691818252313] , [ 1246334400000 , -2.4654561579904] , [ 1249012800000 , -2.5473566378551] , [ 1251691200000 , -2.8340604021307] , [ 1254283200000 , -1.8452445924041] , [ 1256961600000 , -1.5626544265386] , [ 1259557200000 , -1.707842764916] , [ 1262235600000 , -1.2237258567344] , [ 1264914000000 , -1.9756896168227] , [ 1267333200000 , -2.0920321696833] , [ 1270008000000 , -1.9782327706952] , [ 1272600000000 , -2.0416328165753] , [ 1275278400000 , -1.7816736134798] , [ 1277870400000 , -0.66092275437689] , [ 1280548800000 , -0.73608099025756] , [ 1283227200000 , -0.63686713461189] , [ 1285819200000 , -0.0024159482973197] , [ 1288497600000 , -0.0023052643588188] , [ 1291093200000 , -0.0023008251965446] , [ 1293771600000 , -0.002247807834351] , [ 1296450000000 , -0.62004345920743] , [ 1298869200000 , -0.69634926653235] , [ 1301544000000 , -0.76013525555354] , [ 1304136000000 , -1.505368495849] , [ 1306814400000 , -1.3456949237707] , [ 1309406400000 , -1.3013934898695] , [ 1312084800000 , -1.183199519395] , [ 1314763200000 , -0.0074317809719494] , [ 1317355200000 , -0.019430458325379] , [ 1320033600000 , -0.015777413509084] , [ 1322629200000 , -0.016463879837718] , [ 1325307600000 , -0.0031338919976225] , [ 1327986000000 , -0.0029770278967514] , [ 1330491600000 , -0.003048902987439] , [ 1333166400000 , -0.71171545945298] , [ 1335758400000 , -0.72003299240508] , [ 1338436800000 , -0.72961974845039]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16816074963595] , [ 1185854400000 , -0.19318598121302] , [ 1188532800000 , -0.20130864403797] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.30476443991021] , [ 1217476800000 , -0.31836730824777] , [ 1220155200000 , -0.30797427879366] , [ 1222747200000 , -0.48318623977865] , [ 1225425600000 , -0.50834562674351] , [ 1228021200000 , -0.47936068182503] , [ 1230699600000 , -0.61753010081956] , [ 1233378000000 , -0.59493587396819] , [ 1235797200000 , -0.62664324339064] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -1.3076157801726] , [ 1256961600000 , -1.2306204787628] , [ 1259557200000 , -1.4728435992801] , [ 1262235600000 , -1.7729831226837] , [ 1264914000000 , -1.7711733839842] , [ 1267333200000 , -1.8233584472099] , [ 1270008000000 , -1.8505979461969] , [ 1272600000000 , -1.5989071613823] , [ 1275278400000 , -1.6636770720413] , [ 1277870400000 , -1.4523909758725] , [ 1280548800000 , -1.503771584105] , [ 1283227200000 , -1.5458561450475] , [ 1285819200000 , -1.457331837483] , [ 1288497600000 , -1.4217332434071] , [ 1291093200000 , -1.4687927303394] , [ 1293771600000 , -1.437223057967] , [ 1296450000000 , -0.72221871524334] , [ 1298869200000 , -0.7399575414588] , [ 1301544000000 , -1.9712239746745] , [ 1304136000000 , -2.2360949351942] , [ 1306814400000 , -2.2147572530541] , [ 1309406400000 , -2.0440932285023] , [ 1312084800000 , -1.9438209561938] , [ 1314763200000 , -4.9035620630386] , [ 1317355200000 , -4.9036674804213] , [ 1320033600000 , -4.1900706458801] , [ 1322629200000 , -4.5602615827955] , [ 1325307600000 , -1.9194421885814] , [ 1327986000000 , -1.8854470816382] , [ 1330491600000 , -1.9514785018245] , [ 1333166400000 , -0.65282205870454] , [ 1335758400000 , -0.57068368199209] , [ 1338436800000 , -0.55902563384907]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , -0.390983707093] , [ 1141102800000 , -0.38471122730537] , [ 1143781200000 , -0.22897173467143] , [ 1146369600000 , -0.23798946472286] , [ 1149048000000 , -0.20721233428173] , [ 1151640000000 , -0.54577697700394] , [ 1154318400000 , -0.50300252995937] , [ 1156996800000 , -0.49609518628103] , [ 1159588800000 , -0.19582276889273] , [ 1162270800000 , -0.60399139945108] , [ 1164862800000 , -0.61477368082886] , [ 1167541200000 , -0.13665869881705] , [ 1170219600000 , -0.13147565243332] , [ 1172638800000 , -0.11819441593356] , [ 1175313600000 , -0.41610825689528] , [ 1177905600000 , -0.38815419659358] , [ 1180584000000 , -0.3703838943035] , [ 1183176000000 , -1.6193903804534] , [ 1185854400000 , -1.6502660417328] , [ 1188532800000 , -1.481875010149] , [ 1191124800000 , -0.96180099322536] , [ 1193803200000 , -0.97017301394967] , [ 1196398800000 , -0.97432971260093] , [ 1199077200000 , -0.36071934518387] , [ 1201755600000 , -0.42150070991777] , [ 1204261200000 , -0.41784042793202] , [ 1206936000000 , -0.70494708349169] , [ 1209528000000 , -0.73449590911984] , [ 1212206400000 , -0.7400163600788] , [ 1214798400000 , -0.52584502195668] , [ 1217476800000 , -0.56224806965368] , [ 1220155200000 , -0.50830855192741] , [ 1222747200000 , -0.79494637898049] , [ 1225425600000 , -0.70391433947286] , [ 1228021200000 , -0.61420660317009] , [ 1230699600000 , -0.41699636242004] , [ 1233378000000 , -0.3779041158185] , [ 1235797200000 , -0.34282498854047] , [ 1238472000000 , -0.83845630450592] , [ 1241064000000 , -0.85937944918912] , [ 1243742400000 , -0.85530287999615] , [ 1246334400000 , -1.2819866264007] , [ 1249012800000 , -1.4598491663715] , [ 1251691200000 , -1.5261472177779] , [ 1254283200000 , -1.2503948993549] , [ 1256961600000 , -1.1767079775724] , [ 1259557200000 , -1.2585538260386] , [ 1262235600000 , -3.420972598165] , [ 1264914000000 , -3.3381337072954] , [ 1267333200000 , -3.7043129330694] , [ 1270008000000 , -4.6924500756609] , [ 1272600000000 , -4.6880683704908] , [ 1275278400000 , -4.3335249071719] , [ 1277870400000 , -3.6545810416445] , [ 1280548800000 , -4.1639787701262] , [ 1283227200000 , -3.8249597612047] , [ 1285819200000 , -0.33221815335641] , [ 1288497600000 , -0.33346468179047] , [ 1291093200000 , -0.34546911228789] , [ 1293771600000 , -0.36609971997147] , [ 1296450000000 , -0.42502545672607] , [ 1298869200000 , -0.38192733348507] , [ 1301544000000 , -0.01991033447621] , [ 1304136000000 , -0.020319195299659] , [ 1306814400000 , -0.018147820835144] , [ 1309406400000 , -0.017923186209383] , [ 1312084800000 , -0.016133999253684] , [ 1314763200000 , -0.72058656278977] , [ 1317355200000 , -0.42812646564889] , [ 1320033600000 , -0.35896134792589] , [ 1322629200000 , -0.38637896444549] , [ 1325307600000 , -0.31794663984021] , [ 1327986000000 , -0.32220831831888] , [ 1330491600000 , -0.37107872672214] , [ 1333166400000 , -0.81968633933695] , [ 1335758400000 , -0.77148300885994] , [ 1338436800000 , -0.77392261735539]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , -0.86346955704548] , [ 1141102800000 , -0.88352373534584] , [ 1143781200000 , -1.2630802711685] , [ 1146369600000 , -1.2352593999242] , [ 1149048000000 , -1.2086379045093] , [ 1151640000000 , -1.0416778473647] , [ 1154318400000 , -0.99326278105154] , [ 1156996800000 , -1.0095045907007] , [ 1159588800000 , -2.0762515478576] , [ 1162270800000 , -2.13066829429] , [ 1164862800000 , -2.2458400474235] , [ 1167541200000 , -2.1315262677135] , [ 1170219600000 , -2.4063108252146] , [ 1172638800000 , -2.3753290631454] , [ 1175313600000 , -2.1119577565913] , [ 1177905600000 , -2.1546804750397] , [ 1180584000000 , -2.3768374034303] , [ 1183176000000 , -1.244878330098] , [ 1185854400000 , -1.2233210265236] , [ 1188532800000 , -1.1715073644317] , [ 1191124800000 , -1.0036136395928] , [ 1193803200000 , -0.9510676777939] , [ 1196398800000 , -0.97553526602196] , [ 1199077200000 , -1.9083849411912] , [ 1201755600000 , -1.855965027796] , [ 1204261200000 , -1.7343633512402] , [ 1206936000000 , -2.1847032903649] , [ 1209528000000 , -2.2095446284368] , [ 1212206400000 , -2.2060678671735] , [ 1214798400000 , -1.0941627910924] , [ 1217476800000 , -1.0004352405294] , [ 1220155200000 , -0.93563501378075] , [ 1222747200000 , 0] , [ 1225425600000 , -0.65155092645953] , [ 1228021200000 , -0.66021585164047] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -0.29297573068109] , [ 1256961600000 , -0.75043756379084] , [ 1259557200000 , -0.85690846482745] , [ 1262235600000 , -0.21937480770873] , [ 1264914000000 , -0.93232569935343] , [ 1267333200000 , -0.94180327525084] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -0.21253553193891] , [ 1288497600000 , -0.23178244747722] , [ 1291093200000 , -0.21481706129968] , [ 1293771600000 , -0.23306463011242] , [ 1296450000000 , -0.90244048159158] , [ 1298869200000 , -1.0410052083529] , [ 1301544000000 , -2.209350937089] , [ 1304136000000 , -2.6540796712932] , [ 1306814400000 , -3.2481210590957] , [ 1309406400000 , -3.0717986354635] , [ 1312084800000 , -2.7493296528921] , [ 1314763200000 , -2.1973991293256] , [ 1317355200000 , -0.86403111842659] , [ 1320033600000 , -0.87824756160219] , [ 1322629200000 , -0.80812571482871] , [ 1325307600000 , -1.6419820357151] , [ 1327986000000 , -1.6893790342619] , [ 1330491600000 , -1.8614499455474] , [ 1333166400000 , -1.814727017516] , [ 1335758400000 , -1.8744942128618] , [ 1338436800000 , -1.7880124850882]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , -0.26079769654951] , [ 1141102800000 , -0.23368425410881] , [ 1143781200000 , -0.46285283466193] , [ 1146369600000 , -0.4588429059205] , [ 1149048000000 , -0.43055120080853] , [ 1151640000000 , -0.26428963363642] , [ 1154318400000 , -0.26203611963364] , [ 1156996800000 , -0.26706156717825] , [ 1159588800000 , -0.024613610779192] , [ 1162270800000 , -0.024351047945929] , [ 1164862800000 , -0.031497065480344] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , -0.83875613435932] , [ 1209528000000 , -0.84367445572656] , [ 1212206400000 , -0.78928126005463] , [ 1214798400000 , -1.1075954825404] , [ 1217476800000 , -1.2704836497926] , [ 1220155200000 , -1.307504052056] , [ 1222747200000 , -0.70440409992826] , [ 1225425600000 , -0.74122140007729] , [ 1228021200000 , -0.82224393045109] , [ 1230699600000 , -1.8719055314571] , [ 1233378000000 , -1.5200311233975] , [ 1235797200000 , -1.5552386899059] , [ 1238472000000 , -1.1576593040773] , [ 1241064000000 , -1.0757811060575] , [ 1243742400000 , -1.0250125722511] , [ 1246334400000 , -2.2747597224127] , [ 1249012800000 , -2.3125499227974] , [ 1251691200000 , -2.2784386530745] , [ 1254283200000 , -1.1518806233757] , [ 1256961600000 , -1.0075503399018] , [ 1259557200000 , -1.1400577929481] , [ 1262235600000 , -0.50677891891165] , [ 1264914000000 , -0.54332908490051] , [ 1267333200000 , -0.55473181189807] , [ 1270008000000 , -0.3633796157757] , [ 1272600000000 , -0.30361861470847] , [ 1275278400000 , -0.24614951229153] , [ 1277870400000 , -1.0959443687647] , [ 1280548800000 , -1.1881529264637] , [ 1283227200000 , -1.1835349242596] , [ 1285819200000 , -0.92507477884561] , [ 1288497600000 , -0.94531016133473] , [ 1291093200000 , -0.93519433603434] , [ 1293771600000 , -1.009221344252] , [ 1296450000000 , -2.3640716285835] , [ 1298869200000 , -2.4914494188556] , [ 1301544000000 , -1.7979456141716] , [ 1304136000000 , -2.1389760840247] , [ 1306814400000 , -1.9721362241269] , [ 1309406400000 , -1.9170229522382] , [ 1312084800000 , -1.8076246545605] , [ 1314763200000 , -2.1010686108381] , [ 1317355200000 , -2.2396373791195] , [ 1320033600000 , -1.8469012813015] , [ 1322629200000 , -2.0079125997321] , [ 1325307600000 , -1.9170007806182] , [ 1327986000000 , -1.9239118384243] , [ 1330491600000 , -2.0649464738798] , [ 1333166400000 , -0.88385747789351] , [ 1335758400000 , -0.91438087144161] , [ 1338436800000 , -0.96513752020965]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.077395192503573] , [ 1146369600000 , -0.079342784160835] , [ 1149048000000 , -0.07376956808809] , [ 1151640000000 , -0.041850521681201] , [ 1154318400000 , -0.037598545052499] , [ 1156996800000 , -0.040984079427717] , [ 1159588800000 , -0.19335817797448] , [ 1162270800000 , -0.18578493919925] , [ 1164862800000 , -0.1769473933101] , [ 1167541200000 , -0.57245352054975] , [ 1170219600000 , -0.61554187332911] , [ 1172638800000 , -0.63016714701151] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.12118014109021] , [ 1185854400000 , -0.11085831487208] , [ 1188532800000 , -0.10901265358445] , [ 1191124800000 , -0.17205583275088] , [ 1193803200000 , -0.16573676303991] , [ 1196398800000 , -0.17954841680392] , [ 1199077200000 , -0.82703336198161] , [ 1201755600000 , -0.76741763304227] , [ 1204261200000 , -0.79430844816827] , [ 1206936000000 , -1.0279404050708] , [ 1209528000000 , -1.0342425093761] , [ 1212206400000 , -1.0903083860383] , [ 1214798400000 , -1.0895432841007] , [ 1217476800000 , -1.1392703218146] , [ 1220155200000 , -0.98872086340391] , [ 1222747200000 , -1.227654651568] , [ 1225425600000 , -1.0527419580394] , [ 1228021200000 , -0.84338280322309] , [ 1230699600000 , -0.5982617279246] , [ 1233378000000 , -0.74123723862634] , [ 1235797200000 , -0.81665712408277] , [ 1238472000000 , -0.89868760705228] , [ 1241064000000 , -0.86338472153689] , [ 1243742400000 , -0.85040889603889] , [ 1246334400000 , -0.82872733882926] , [ 1249012800000 , -1.2797824676355] , [ 1251691200000 , -1.152043882336] , [ 1254283200000 , -0.70125890680538] , [ 1256961600000 , -0.69496338525418] , [ 1259557200000 , -0.81982038022784] , [ 1262235600000 , -0.42841700219624] , [ 1264914000000 , -0.43298861575253] , [ 1267333200000 , -0.46951194437705] , [ 1270008000000 , -0.46723980191721] , [ 1272600000000 , -0.43139262322841] , [ 1275278400000 , -0.4052075794202] , [ 1277870400000 , -0.45399431179247] , [ 1280548800000 , -0.50492374473014] , [ 1283227200000 , -0.49032976375464] , [ 1285819200000 , -0.95769381063728] , [ 1288497600000 , -0.92968381683254] , [ 1291093200000 , -0.90984207437415] , [ 1293771600000 , -0.91448295661871] , [ 1296450000000 , -1.3204103334172] , [ 1298869200000 , -1.3896989018] , [ 1301544000000 , -1.8536993972883] , [ 1304136000000 , -1.9901582471947] , [ 1306814400000 , -1.8731097808809] , [ 1309406400000 , -1.8109819859122] , [ 1312084800000 , -1.7946593386661] , [ 1314763200000 , -1.6002716669781] , [ 1317355200000 , -0.056479286204019] , [ 1320033600000 , -0.046232413998891] , [ 1322629200000 , -0.051182355563531] , [ 1325307600000 , -0.032858749040145] , [ 1327986000000 , -0.032326418106178] , [ 1330491600000 , -0.033980477379241] , [ 1333166400000 , -0.053069550536519] , [ 1335758400000 , -0.055741850564434] , [ 1338436800000 , -0.055851808568252]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.073769471773675] , [ 1146369600000 , -0.077824496315782] , [ 1149048000000 , -0.080696288096361] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16073291656515] , [ 1185854400000 , -0.1646253606633] , [ 1188532800000 , -0.1655815581449] , [ 1191124800000 , -0.74417496631713] , [ 1193803200000 , -0.76230340423681] , [ 1196398800000 , -0.73882938190048] , [ 1199077200000 , -0.3820573391806] , [ 1201755600000 , -0.360757285179] , [ 1204261200000 , -0.38081058463615] , [ 1206936000000 , -0.92767439811083] , [ 1209528000000 , -0.92774728028789] , [ 1212206400000 , -0.85273481694714] , [ 1214798400000 , -1.69407085613] , [ 1217476800000 , -1.5179726219101] , [ 1220155200000 , -1.3576700600738] , [ 1222747200000 , -1.0404839864076] , [ 1225425600000 , -0.95251478838915] , [ 1228021200000 , -1.0610509118017] , [ 1230699600000 , -0.3316792294278] , [ 1233378000000 , -0.33745002288524] , [ 1235797200000 , -0.28806366796683] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , -0.6338555382785] , [ 1249012800000 , -0.62797265130959] , [ 1251691200000 , -0.60264057253794] , [ 1254283200000 , -0.28687231077181] , [ 1256961600000 , -0.22215649778327] , [ 1259557200000 , -0.24027664555676] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- }
-];
-
-/*
-.map(function(series) {
- series.values = series.values.map(function(d) {
- return { x: d[0], y: d[1] }
- });
- return series;
-});
-*/
-
-//an example of harmonizing colors between visualizations
-//observe that Consumer Discretionary and Consumer Staples have
-//been flipped in the second chart
-var colors = d3.scale.category20();
-keyColor = function(d, i) {return colors(d.key)};
-
-var chart;
-nv.addGraph(function() {
- chart = nv.models.stackedAreaChart()
- // .width(600).height(500)
- .useInteractiveGuideline(true)
- .x(function(d) { return d[0] })
- .y(function(d) { return d[1] })
- .color(keyColor)
- .transitionDuration(300);
- //.clipEdge(true);
-
-// chart.stacked.scatter.clipVoronoi(false);
-
- chart.xAxis
- .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart1')
- .datum(histcatexplong)
- .transition().duration(0)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
-});
-
-nv.addGraph(function() {
- var chart = nv.models.stackedAreaChart()
- .x(function(d) { return d[0] })
- .y(function(d) { return d[1] })
- .color(keyColor)
- ;
- //.clipEdge(true);
-
- chart.xAxis
- .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart2')
- .datum(histcatexpshort)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js
deleted file mode 100755
index 43d7cfe0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/* Inspired by Lee Byron's test data generator. */
-function stream_layers(n, m, o) {
- if (arguments.length < 3) o = 0;
- function bump(a) {
- var x = 1 / (.1 + Math.random()),
- y = 2 * Math.random() - .5,
- z = 10 / (.1 + Math.random());
- for (var i = 0; i < m; i++) {
- var w = (i / m - y) * z;
- a[i] += x * Math.exp(-w * w);
- }
- }
- return d3.range(n).map(function() {
- var a = [], i;
- for (i = 0; i < m; i++) a[i] = o + o * Math.random();
- for (i = 0; i < 5; i++) bump(a);
- return a.map(stream_index);
- });
-}
-
-/* Another layer generator using gamma distributions. */
-function stream_waves(n, m) {
- return d3.range(n).map(function(i) {
- return d3.range(m).map(function(j) {
- var x = 20 * j / m - i / 3;
- return 2 * x * Math.exp(-.5 * x);
- }).map(stream_index);
- });
-}
-
-function stream_index(d, i) {
- return {x: i, y: Math.max(0, d)};
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js
deleted file mode 100755
index 45f01329..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js
+++ /dev/null
@@ -1,155 +0,0 @@
-(function(d3) {
- var cie = d3.cie = {};
-
- cie.lab = function(l, a, b) {
- return arguments.length === 1
- ? (l instanceof Lab ? lab(l.l, l.a, l.b)
- : (l instanceof Lch ? lch_lab(l.l, l.c, l.h)
- : rgb_lab((l = d3.rgb(l)).r, l.g, l.b)))
- : lab(+l, +a, +b);
- };
-
- cie.lch = function(l, c, h) {
- return arguments.length === 1
- ? (l instanceof Lch ? lch(l.l, l.c, l.h)
- : (l instanceof Lab ? lab_lch(l.l, l.a, l.b)
- : lab_lch((l = rgb_lab((l = d3.rgb(l)).r, l.g, l.b)).l, l.a, l.b)))
- : lch(+l, +c, +h);
- };
-
- cie.interpolateLab = function(a, b) {
- a = cie.lab(a);
- b = cie.lab(b);
- var al = a.l,
- aa = a.a,
- ab = a.b,
- bl = b.l - al,
- ba = b.a - aa,
- bb = b.b - ab;
- return function(t) {
- return lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
- };
- };
-
- cie.interpolateLch = function(a, b) {
- a = cie.lch(a);
- b = cie.lch(b);
- var al = a.l,
- ac = a.c,
- ah = a.h,
- bl = b.l - al,
- bc = b.c - ac,
- bh = b.h - ah;
- if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; // shortest path
- return function(t) {
- return lch_lab(al + bl * t, ac + bc * t, ah + bh * t) + "";
- };
- };
-
- function lab(l, a, b) {
- return new Lab(l, a, b);
- }
-
- function Lab(l, a, b) {
- this.l = l;
- this.a = a;
- this.b = b;
- }
-
- Lab.prototype.brighter = function(k) {
- return lab(Math.min(100, this.l + K * (arguments.length ? k : 1)), this.a, this.b);
- };
-
- Lab.prototype.darker = function(k) {
- return lab(Math.max(0, this.l - K * (arguments.length ? k : 1)), this.a, this.b);
- };
-
- Lab.prototype.rgb = function() {
- return lab_rgb(this.l, this.a, this.b);
- };
-
- Lab.prototype.toString = function() {
- return this.rgb() + "";
- };
-
- function lch(l, c, h) {
- return new Lch(l, c, h);
- }
-
- function Lch(l, c, h) {
- this.l = l;
- this.c = c;
- this.h = h;
- }
-
- Lch.prototype.brighter = function(k) {
- return lch(Math.min(100, this.l + K * (arguments.length ? k : 1)), this.c, this.h);
- };
-
- Lch.prototype.darker = function(k) {
- return lch(Math.max(0, this.l - K * (arguments.length ? k : 1)), this.c, this.h);
- };
-
- Lch.prototype.rgb = function() {
- return lch_lab(this.l, this.c, this.h).rgb();
- };
-
- Lch.prototype.toString = function() {
- return this.rgb() + "";
- };
-
- // Corresponds roughly to RGB brighter/darker
- var K = 18;
-
- // D65 standard referent
- var X = 0.950470, Y = 1, Z = 1.088830;
-
- function lab_rgb(l, a, b) {
- var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
- x = lab_xyz(x) * X;
- y = lab_xyz(y) * Y;
- z = lab_xyz(z) * Z;
- return d3.rgb(
- xyz_rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z),
- xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),
- xyz_rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z)
- );
- }
-
- function rgb_lab(r, g, b) {
- r = rgb_xyz(r);
- g = rgb_xyz(g);
- b = rgb_xyz(b);
- var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / X),
- y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / Y),
- z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / Z);
- return lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
- }
-
- function lab_lch(l, a, b) {
- var c = Math.sqrt(a * a + b * b),
- h = Math.atan2(b, a) / Math.PI * 180;
- return lch(l, c, h);
- }
-
- function lch_lab(l, c, h) {
- h = h * Math.PI / 180;
- return lab(l, Math.cos(h) * c, Math.sin(h) * c);
- }
-
- function lab_xyz(x) {
- return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
- }
-
- function xyz_lab(x) {
- return x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
- }
-
- function xyz_rgb(r) {
- return Math.round(255 * (r <= 0.00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055));
- }
-
- function rgb_xyz(r) {
- return (r /= 255) <= 0.04045 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);
- }
-})(d3);
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js
deleted file mode 100755
index 2295527b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js
+++ /dev/null
@@ -1,302 +0,0 @@
-// This product includes color specifications and designs developed by Cynthia Brewer (http://colorbrewer.org/).
-var colorbrewer = {YlGn: {
-3: ["#f7fcb9","#addd8e","#31a354"],
-4: ["#ffffcc","#c2e699","#78c679","#238443"],
-5: ["#ffffcc","#c2e699","#78c679","#31a354","#006837"],
-6: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],
-7: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
-8: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
-9: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]
-},YlGnBu: {
-3: ["#edf8b1","#7fcdbb","#2c7fb8"],
-4: ["#ffffcc","#a1dab4","#41b6c4","#225ea8"],
-5: ["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],
-6: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],
-7: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
-8: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
-9: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]
-},GnBu: {
-3: ["#e0f3db","#a8ddb5","#43a2ca"],
-4: ["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],
-5: ["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],
-6: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],
-7: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
-8: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
-9: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]
-},BuGn: {
-3: ["#e5f5f9","#99d8c9","#2ca25f"],
-4: ["#edf8fb","#b2e2e2","#66c2a4","#238b45"],
-5: ["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],
-6: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],
-7: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
-8: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
-9: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]
-},PuBuGn: {
-3: ["#ece2f0","#a6bddb","#1c9099"],
-4: ["#f6eff7","#bdc9e1","#67a9cf","#02818a"],
-5: ["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],
-6: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],
-7: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
-8: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
-9: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]
-},PuBu: {
-3: ["#ece7f2","#a6bddb","#2b8cbe"],
-4: ["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],
-5: ["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],
-6: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],
-7: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
-8: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
-9: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]
-},BuPu: {
-3: ["#e0ecf4","#9ebcda","#8856a7"],
-4: ["#edf8fb","#b3cde3","#8c96c6","#88419d"],
-5: ["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],
-6: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],
-7: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
-8: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
-9: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]
-},RdPu: {
-3: ["#fde0dd","#fa9fb5","#c51b8a"],
-4: ["#feebe2","#fbb4b9","#f768a1","#ae017e"],
-5: ["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],
-6: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],
-7: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
-8: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
-9: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]
-},PuRd: {
-3: ["#e7e1ef","#c994c7","#dd1c77"],
-4: ["#f1eef6","#d7b5d8","#df65b0","#ce1256"],
-5: ["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],
-6: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],
-7: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
-8: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
-9: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]
-},OrRd: {
-3: ["#fee8c8","#fdbb84","#e34a33"],
-4: ["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],
-5: ["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],
-6: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],
-7: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
-8: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
-9: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]
-},YlOrRd: {
-3: ["#ffeda0","#feb24c","#f03b20"],
-4: ["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],
-5: ["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],
-6: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],
-7: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
-8: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
-9: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]
-},YlOrBr: {
-3: ["#fff7bc","#fec44f","#d95f0e"],
-4: ["#ffffd4","#fed98e","#fe9929","#cc4c02"],
-5: ["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],
-6: ["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],
-7: ["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
-8: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
-9: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]
-},Purples: {
-3: ["#efedf5","#bcbddc","#756bb1"],
-4: ["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],
-5: ["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],
-6: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],
-7: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
-8: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
-9: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]
-},Blues: {
-3: ["#deebf7","#9ecae1","#3182bd"],
-4: ["#eff3ff","#bdd7e7","#6baed6","#2171b5"],
-5: ["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],
-6: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],
-7: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
-8: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
-9: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]
-},Greens: {
-3: ["#e5f5e0","#a1d99b","#31a354"],
-4: ["#edf8e9","#bae4b3","#74c476","#238b45"],
-5: ["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],
-6: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],
-7: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
-8: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
-9: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]
-},Oranges: {
-3: ["#fee6ce","#fdae6b","#e6550d"],
-4: ["#feedde","#fdbe85","#fd8d3c","#d94701"],
-5: ["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],
-6: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],
-7: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
-8: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
-9: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]
-},Reds: {
-3: ["#fee0d2","#fc9272","#de2d26"],
-4: ["#fee5d9","#fcae91","#fb6a4a","#cb181d"],
-5: ["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],
-6: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],
-7: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
-8: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
-9: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]
-},Greys: {
-3: ["#f0f0f0","#bdbdbd","#636363"],
-4: ["#f7f7f7","#cccccc","#969696","#525252"],
-5: ["#f7f7f7","#cccccc","#969696","#636363","#252525"],
-6: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],
-7: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
-8: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
-9: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]
-},PuOr: {
-3: ["#f1a340","#f7f7f7","#998ec3"],
-4: ["#e66101","#fdb863","#b2abd2","#5e3c99"],
-5: ["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],
-6: ["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],
-7: ["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],
-8: ["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],
-9: ["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],
-10: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],
-11: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]
-},BrBG: {
-3: ["#d8b365","#f5f5f5","#5ab4ac"],
-4: ["#a6611a","#dfc27d","#80cdc1","#018571"],
-5: ["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],
-6: ["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],
-7: ["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],
-8: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],
-9: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],
-10: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],
-11: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]
-},PRGn: {
-3: ["#af8dc3","#f7f7f7","#7fbf7b"],
-4: ["#7b3294","#c2a5cf","#a6dba0","#008837"],
-5: ["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],
-6: ["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],
-7: ["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],
-8: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
-9: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
-10: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],
-11: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]
-},PiYG: {
-3: ["#e9a3c9","#f7f7f7","#a1d76a"],
-4: ["#d01c8b","#f1b6da","#b8e186","#4dac26"],
-5: ["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],
-6: ["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],
-7: ["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],
-8: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
-9: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
-10: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],
-11: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]
-},RdBu: {
-3: ["#ef8a62","#f7f7f7","#67a9cf"],
-4: ["#ca0020","#f4a582","#92c5de","#0571b0"],
-5: ["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],
-6: ["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],
-7: ["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],
-8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
-9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
-10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],
-11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]
-},RdGy: {
-3: ["#ef8a62","#ffffff","#999999"],
-4: ["#ca0020","#f4a582","#bababa","#404040"],
-5: ["#ca0020","#f4a582","#ffffff","#bababa","#404040"],
-6: ["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],
-7: ["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],
-8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],
-9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],
-10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],
-11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]
-},RdYlBu: {
-3: ["#fc8d59","#ffffbf","#91bfdb"],
-4: ["#d7191c","#fdae61","#abd9e9","#2c7bb6"],
-5: ["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],
-6: ["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],
-7: ["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],
-8: ["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],
-9: ["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],
-10: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],
-11: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]
-},Spectral: {
-3: ["#fc8d59","#ffffbf","#99d594"],
-4: ["#d7191c","#fdae61","#abdda4","#2b83ba"],
-5: ["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],
-6: ["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],
-7: ["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],
-8: ["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],
-9: ["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],
-10: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],
-11: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]
-},RdYlGn: {
-3: ["#fc8d59","#ffffbf","#91cf60"],
-4: ["#d7191c","#fdae61","#a6d96a","#1a9641"],
-5: ["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],
-6: ["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],
-7: ["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],
-8: ["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
-9: ["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
-10: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],
-11: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]
-},Accent: {
-3: ["#7fc97f","#beaed4","#fdc086"],
-4: ["#7fc97f","#beaed4","#fdc086","#ffff99"],
-5: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],
-6: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],
-7: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],
-8: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]
-},Dark2: {
-3: ["#1b9e77","#d95f02","#7570b3"],
-4: ["#1b9e77","#d95f02","#7570b3","#e7298a"],
-5: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],
-6: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],
-7: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],
-8: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]
-},Paired: {
-3: ["#a6cee3","#1f78b4","#b2df8a"],
-4: ["#a6cee3","#1f78b4","#b2df8a","#33a02c"],
-5: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],
-6: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],
-7: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],
-8: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],
-9: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],
-10: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],
-11: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],
-12: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]
-},Pastel1: {
-3: ["#fbb4ae","#b3cde3","#ccebc5"],
-4: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],
-5: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],
-6: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],
-7: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],
-8: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],
-9: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]
-},Pastel2: {
-3: ["#b3e2cd","#fdcdac","#cbd5e8"],
-4: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],
-5: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],
-6: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],
-7: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],
-8: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]
-},Set1: {
-3: ["#e41a1c","#377eb8","#4daf4a"],
-4: ["#e41a1c","#377eb8","#4daf4a","#984ea3"],
-5: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],
-6: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],
-7: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],
-8: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],
-9: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]
-},Set2: {
-3: ["#66c2a5","#fc8d62","#8da0cb"],
-4: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],
-5: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],
-6: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],
-7: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],
-8: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]
-},Set3: {
-3: ["#8dd3c7","#ffffb3","#bebada"],
-4: ["#8dd3c7","#ffffb3","#bebada","#fb8072"],
-5: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],
-6: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],
-7: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],
-8: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],
-9: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],
-10: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],
-11: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],
-12: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]
-}};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js
deleted file mode 100755
index 1aaabca2..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js
+++ /dev/null
@@ -1,1180 +0,0 @@
-(function(exports){
-crossfilter.version = "1.0.3";
-function crossfilter_identity(d) {
- return d;
-}
-crossfilter.permute = permute;
-
-function permute(array, index) {
- for (var i = 0, n = index.length, copy = new Array(n); i < n; ++i) {
- copy[i] = array[index[i]];
- }
- return copy;
-}
-var bisect = crossfilter.bisect = bisect_by(crossfilter_identity);
-
-bisect.by = bisect_by;
-
-function bisect_by(f) {
-
- // Locate the insertion point for x in a to maintain sorted order. The
- // arguments lo and hi may be used to specify a subset of the array which
- // should be considered; by default the entire array is used. If x is already
- // present in a, the insertion point will be before (to the left of) any
- // existing entries. The return value is suitable for use as the first
- // argument to `array.splice` assuming that a is already sorted.
- //
- // The returned insertion point i partitions the array a into two halves so
- // that all v < x for v in a[lo:i] for the left side and all v >= x for v in
- // a[i:hi] for the right side.
- function bisectLeft(a, x, lo, hi) {
- while (lo < hi) {
- var mid = lo + hi >> 1;
- if (f(a[mid]) < x) lo = mid + 1;
- else hi = mid;
- }
- return lo;
- }
-
- // Similar to bisectLeft, but returns an insertion point which comes after (to
- // the right of) any existing entries of x in a.
- //
- // The returned insertion point i partitions the array into two halves so that
- // all v <= x for v in a[lo:i] for the left side and all v > x for v in
- // a[i:hi] for the right side.
- function bisectRight(a, x, lo, hi) {
- while (lo < hi) {
- var mid = lo + hi >> 1;
- if (x < f(a[mid])) hi = mid;
- else lo = mid + 1;
- }
- return lo;
- }
-
- bisectRight.right = bisectRight;
- bisectRight.left = bisectLeft;
- return bisectRight;
-}
-var heap = crossfilter.heap = heap_by(crossfilter_identity);
-
-heap.by = heap_by;
-
-function heap_by(f) {
-
- // Builds a binary heap within the specified array a[lo:hi]. The heap has the
- // property such that the parent a[lo+i] is always less than or equal to its
- // two children: a[lo+2*i+1] and a[lo+2*i+2].
- function heap(a, lo, hi) {
- var n = hi - lo,
- i = (n >>> 1) + 1;
- while (--i > 0) sift(a, i, n, lo);
- return a;
- }
-
- // Sorts the specified array a[lo:hi] in descending order, assuming it is
- // already a heap.
- function sort(a, lo, hi) {
- var n = hi - lo,
- t;
- while (--n > 0) t = a[lo], a[lo] = a[lo + n], a[lo + n] = t, sift(a, 1, n, lo);
- return a;
- }
-
- // Sifts the element a[lo+i-1] down the heap, where the heap is the contiguous
- // slice of array a[lo:lo+n]. This method can also be used to update the heap
- // incrementally, without incurring the full cost of reconstructing the heap.
- function sift(a, i, n, lo) {
- var d = a[--lo + i],
- x = f(d),
- child;
- while ((child = i << 1) <= n) {
- if (child < n && f(a[lo + child]) > f(a[lo + child + 1])) child++;
- if (x <= f(a[lo + child])) break;
- a[lo + i] = a[lo + child];
- i = child;
- }
- a[lo + i] = d;
- }
-
- heap.sort = sort;
- return heap;
-}
-var heapselect = crossfilter.heapselect = heapselect_by(crossfilter_identity);
-
-heapselect.by = heapselect_by;
-
-function heapselect_by(f) {
- var heap = heap_by(f);
-
- // Returns a new array containing the top k elements in the array a[lo:hi].
- // The returned array is not sorted, but maintains the heap property. If k is
- // greater than hi - lo, then fewer than k elements will be returned. The
- // order of elements in a is unchanged by this operation.
- function heapselect(a, lo, hi, k) {
- var queue = new Array(k = Math.min(hi - lo, k)),
- min,
- i,
- x,
- d;
-
- for (i = 0; i < k; ++i) queue[i] = a[lo++];
- heap(queue, 0, k);
-
- if (lo < hi) {
- min = f(queue[0]);
- do {
- if (x = f(d = a[lo]) > min) {
- queue[0] = d;
- min = f(heap(queue, 0, k)[0]);
- }
- } while (++lo < hi);
- }
-
- return queue;
- }
-
- return heapselect;
-}
-var insertionsort = crossfilter.insertionsort = insertionsort_by(crossfilter_identity);
-
-insertionsort.by = insertionsort_by;
-
-function insertionsort_by(f) {
-
- function insertionsort(a, lo, hi) {
- for (var i = lo + 1; i < hi; ++i) {
- for (var j = i, t = a[i], x = f(t); j > lo && f(a[j - 1]) > x; --j) {
- a[j] = a[j - 1];
- }
- a[j] = t;
- }
- return a;
- }
-
- return insertionsort;
-}
-// Algorithm designed by Vladimir Yaroslavskiy.
-// Implementation based on the Dart project; see lib/dart/LICENSE for details.
-
-var quicksort = crossfilter.quicksort = quicksort_by(crossfilter_identity);
-
-quicksort.by = quicksort_by;
-
-function quicksort_by(f) {
- var insertionsort = insertionsort_by(f);
-
- function sort(a, lo, hi) {
- return (hi - lo < quicksort_sizeThreshold
- ? insertionsort
- : quicksort)(a, lo, hi);
- }
-
- function quicksort(a, lo, hi) {
-
- // Compute the two pivots by looking at 5 elements.
- var sixth = (hi - lo) / 6 | 0,
- i1 = lo + sixth,
- i5 = hi - 1 - sixth,
- i3 = lo + hi - 1 >> 1, // The midpoint.
- i2 = i3 - sixth,
- i4 = i3 + sixth;
-
- var e1 = a[i1], x1 = f(e1),
- e2 = a[i2], x2 = f(e2),
- e3 = a[i3], x3 = f(e3),
- e4 = a[i4], x4 = f(e4),
- e5 = a[i5], x5 = f(e5);
-
- var t;
-
- // Sort the selected 5 elements using a sorting network.
- if (x1 > x2) t = e1, e1 = e2, e2 = t, t = x1, x1 = x2, x2 = t;
- if (x4 > x5) t = e4, e4 = e5, e5 = t, t = x4, x4 = x5, x5 = t;
- if (x1 > x3) t = e1, e1 = e3, e3 = t, t = x1, x1 = x3, x3 = t;
- if (x2 > x3) t = e2, e2 = e3, e3 = t, t = x2, x2 = x3, x3 = t;
- if (x1 > x4) t = e1, e1 = e4, e4 = t, t = x1, x1 = x4, x4 = t;
- if (x3 > x4) t = e3, e3 = e4, e4 = t, t = x3, x3 = x4, x4 = t;
- if (x2 > x5) t = e2, e2 = e5, e5 = t, t = x2, x2 = x5, x5 = t;
- if (x2 > x3) t = e2, e2 = e3, e3 = t, t = x2, x2 = x3, x3 = t;
- if (x4 > x5) t = e4, e4 = e5, e5 = t, t = x4, x4 = x5, x5 = t;
-
- var pivot1 = e2, pivotValue1 = x2,
- pivot2 = e4, pivotValue2 = x4;
-
- // e2 and e4 have been saved in the pivot variables. They will be written
- // back, once the partitioning is finished.
- a[i1] = e1;
- a[i2] = a[lo];
- a[i3] = e3;
- a[i4] = a[hi - 1];
- a[i5] = e5;
-
- var less = lo + 1, // First element in the middle partition.
- great = hi - 2; // Last element in the middle partition.
-
- // Note that for value comparison, <, <=, >= and > coerce to a primitive via
- // Object.prototype.valueOf; == and === do not, so in order to be consistent
- // with natural order (such as for Date objects), we must do two compares.
- var pivotsEqual = pivotValue1 <= pivotValue2 && pivotValue1 >= pivotValue2;
- if (pivotsEqual) {
-
- // Degenerated case where the partitioning becomes a dutch national flag
- // problem.
- //
- // [ | < pivot | == pivot | unpartitioned | > pivot | ]
- // ^ ^ ^ ^ ^
- // left less k great right
- //
- // a[left] and a[right] are undefined and are filled after the
- // partitioning.
- //
- // Invariants:
- // 1) for x in ]left, less[ : x < pivot.
- // 2) for x in [less, k[ : x == pivot.
- // 3) for x in ]great, right[ : x > pivot.
- for (var k = less; k <= great; ++k) {
- var ek = a[k], xk = f(ek);
- if (xk < pivotValue1) {
- if (k !== less) {
- a[k] = a[less];
- a[less] = ek;
- }
- ++less;
- } else if (xk > pivotValue1) {
-
- // Find the first element <= pivot in the range [k - 1, great] and
- // put [:ek:] there. We know that such an element must exist:
- // When k == less, then el3 (which is equal to pivot) lies in the
- // interval. Otherwise a[k - 1] == pivot and the search stops at k-1.
- // Note that in the latter case invariant 2 will be violated for a
- // short amount of time. The invariant will be restored when the
- // pivots are put into their final positions.
- while (true) {
- var greatValue = f(a[great]);
- if (greatValue > pivotValue1) {
- great--;
- // This is the only location in the while-loop where a new
- // iteration is started.
- continue;
- } else if (greatValue < pivotValue1) {
- // Triple exchange.
- a[k] = a[less];
- a[less++] = a[great];
- a[great--] = ek;
- break;
- } else {
- a[k] = a[great];
- a[great--] = ek;
- // Note: if great < k then we will exit the outer loop and fix
- // invariant 2 (which we just violated).
- break;
- }
- }
- }
- }
- } else {
-
- // We partition the list into three parts:
- // 1. < pivot1
- // 2. >= pivot1 && <= pivot2
- // 3. > pivot2
- //
- // During the loop we have:
- // [ | < pivot1 | >= pivot1 && <= pivot2 | unpartitioned | > pivot2 | ]
- // ^ ^ ^ ^ ^
- // left less k great right
- //
- // a[left] and a[right] are undefined and are filled after the
- // partitioning.
- //
- // Invariants:
- // 1. for x in ]left, less[ : x < pivot1
- // 2. for x in [less, k[ : pivot1 <= x && x <= pivot2
- // 3. for x in ]great, right[ : x > pivot2
- for (var k = less; k <= great; k++) {
- var ek = a[k], xk = f(ek);
- if (xk < pivotValue1) {
- if (k !== less) {
- a[k] = a[less];
- a[less] = ek;
- }
- ++less;
- } else {
- if (xk > pivotValue2) {
- while (true) {
- var greatValue = f(a[great]);
- if (greatValue > pivotValue2) {
- great--;
- if (great < k) break;
- // This is the only location inside the loop where a new
- // iteration is started.
- continue;
- } else {
- // a[great] <= pivot2.
- if (greatValue < pivotValue1) {
- // Triple exchange.
- a[k] = a[less];
- a[less++] = a[great];
- a[great--] = ek;
- } else {
- // a[great] >= pivot1.
- a[k] = a[great];
- a[great--] = ek;
- }
- break;
- }
- }
- }
- }
- }
- }
-
- // Move pivots into their final positions.
- // We shrunk the list from both sides (a[left] and a[right] have
- // meaningless values in them) and now we move elements from the first
- // and third partition into these locations so that we can store the
- // pivots.
- a[lo] = a[less - 1];
- a[less - 1] = pivot1;
- a[hi - 1] = a[great + 1];
- a[great + 1] = pivot2;
-
- // The list is now partitioned into three partitions:
- // [ < pivot1 | >= pivot1 && <= pivot2 | > pivot2 ]
- // ^ ^ ^ ^
- // left less great right
-
- // Recursive descent. (Don't include the pivot values.)
- sort(a, lo, less - 1);
- sort(a, great + 2, hi);
-
- if (pivotsEqual) {
- // All elements in the second partition are equal to the pivot. No
- // need to sort them.
- return a;
- }
-
- // In theory it should be enough to call _doSort recursively on the second
- // partition.
- // The Android source however removes the pivot elements from the recursive
- // call if the second partition is too large (more than 2/3 of the list).
- if (less < i1 && great > i5) {
- var lessValue, greatValue;
- while ((lessValue = f(a[less])) <= pivotValue1 && lessValue >= pivotValue1) ++less;
- while ((greatValue = f(a[great])) <= pivotValue2 && greatValue >= pivotValue2) --great;
-
- // Copy paste of the previous 3-way partitioning with adaptions.
- //
- // We partition the list into three parts:
- // 1. == pivot1
- // 2. > pivot1 && < pivot2
- // 3. == pivot2
- //
- // During the loop we have:
- // [ == pivot1 | > pivot1 && < pivot2 | unpartitioned | == pivot2 ]
- // ^ ^ ^
- // less k great
- //
- // Invariants:
- // 1. for x in [ *, less[ : x == pivot1
- // 2. for x in [less, k[ : pivot1 < x && x < pivot2
- // 3. for x in ]great, * ] : x == pivot2
- for (var k = less; k <= great; k++) {
- var ek = a[k], xk = f(ek);
- if (xk <= pivotValue1 && xk >= pivotValue1) {
- if (k !== less) {
- a[k] = a[less];
- a[less] = ek;
- }
- less++;
- } else {
- if (xk <= pivotValue2 && xk >= pivotValue2) {
- while (true) {
- var greatValue = f(a[great]);
- if (greatValue <= pivotValue2 && greatValue >= pivotValue2) {
- great--;
- if (great < k) break;
- // This is the only location inside the loop where a new
- // iteration is started.
- continue;
- } else {
- // a[great] < pivot2.
- if (greatValue < pivotValue1) {
- // Triple exchange.
- a[k] = a[less];
- a[less++] = a[great];
- a[great--] = ek;
- } else {
- // a[great] == pivot1.
- a[k] = a[great];
- a[great--] = ek;
- }
- break;
- }
- }
- }
- }
- }
- }
-
- // The second partition has now been cleared of pivot elements and looks
- // as follows:
- // [ * | > pivot1 && < pivot2 | * ]
- // ^ ^
- // less great
- // Sort the second partition using recursive descent.
-
- // The second partition looks as follows:
- // [ * | >= pivot1 && <= pivot2 | * ]
- // ^ ^
- // less great
- // Simply sort it by recursive descent.
-
- return sort(a, less, great + 1);
- }
-
- return sort;
-}
-
-var quicksort_sizeThreshold = 32;
-var crossfilter_array8 = crossfilter_arrayUntyped,
- crossfilter_array16 = crossfilter_arrayUntyped,
- crossfilter_array32 = crossfilter_arrayUntyped,
- crossfilter_arrayLengthen = crossfilter_identity,
- crossfilter_arrayWiden = crossfilter_identity;
-
-if (typeof Uint8Array !== "undefined") {
- crossfilter_array8 = function(n) { return new Uint8Array(n); };
- crossfilter_array16 = function(n) { return new Uint16Array(n); };
- crossfilter_array32 = function(n) { return new Uint32Array(n); };
-
- crossfilter_arrayLengthen = function(array, length) {
- var copy = new array.constructor(length);
- copy.set(array);
- return copy;
- };
-
- crossfilter_arrayWiden = function(array, width) {
- var copy;
- switch (width) {
- case 16: copy = crossfilter_array16(array.length); break;
- case 32: copy = crossfilter_array32(array.length); break;
- default: throw new Error("invalid array width!");
- }
- copy.set(array);
- return copy;
- };
-}
-
-function crossfilter_arrayUntyped(n) {
- return new Array(n);
-}
-function crossfilter_filterExact(bisect, value) {
- return function(values) {
- var n = values.length;
- return [bisect.left(values, value, 0, n), bisect.right(values, value, 0, n)];
- };
-}
-
-function crossfilter_filterRange(bisect, range) {
- var min = range[0],
- max = range[1];
- return function(values) {
- var n = values.length;
- return [bisect.left(values, min, 0, n), bisect.left(values, max, 0, n)];
- };
-}
-
-function crossfilter_filterAll(values) {
- return [0, values.length];
-}
-function crossfilter_null() {
- return null;
-}
-function crossfilter_zero() {
- return 0;
-}
-function crossfilter_reduceIncrement(p) {
- return p + 1;
-}
-
-function crossfilter_reduceDecrement(p) {
- return p - 1;
-}
-
-function crossfilter_reduceAdd(f) {
- return function(p, v) {
- return p + +f(v);
- };
-}
-
-function crossfilter_reduceSubtract(f) {
- return function(p, v) {
- return p - f(v);
- };
-}
-exports.crossfilter = crossfilter;
-
-function crossfilter() {
- var crossfilter = {
- add: add,
- dimension: dimension,
- groupAll: groupAll,
- size: size
- };
-
- var data = [], // the records
- n = 0, // the number of records; data.length
- m = 0, // number of dimensions in use
- M = 8, // number of dimensions that can fit in `filters`
- filters = crossfilter_array8(0), // M bits per record; 1 is filtered out
- filterListeners = [], // when the filters change
- dataListeners = []; // when data is added
-
- // Adds the specified new records to this crossfilter.
- function add(newData) {
- var n0 = n,
- n1 = newData.length;
-
- // If there's actually new data to add…
- // Merge the new data into the existing data.
- // Lengthen the filter bitset to handle the new records.
- // Notify listeners (dimensions and groups) that new data is available.
- if (n1) {
- data = data.concat(newData);
- filters = crossfilter_arrayLengthen(filters, n += n1);
- dataListeners.forEach(function(l) { l(newData, n0, n1); });
- }
-
- return crossfilter;
- }
-
- // Adds a new dimension with the specified value accessor function.
- function dimension(value) {
- var dimension = {
- filter: filter,
- filterExact: filterExact,
- filterRange: filterRange,
- filterAll: filterAll,
- top: top,
- group: group,
- groupAll: groupAll
- };
-
- var one = 1 << m++, // bit mask, e.g., 00001000
- zero = ~one, // inverted one, e.g., 11110111
- values, // sorted, cached array
- index, // value rank ↦ object id
- newValues, // temporary array storing newly-added values
- newIndex, // temporary array storing newly-added index
- sort = quicksort_by(function(i) { return newValues[i]; }),
- refilter = crossfilter_filterAll, // for recomputing filter
- indexListeners = [], // when data is added
- lo0 = 0,
- hi0 = 0;
-
- // Updating a dimension is a two-stage process. First, we must update the
- // associated filters for the newly-added records. Once all dimensions have
- // updated their filters, the groups are notified to update.
- dataListeners.unshift(preAdd);
- dataListeners.push(postAdd);
-
- // Incorporate any existing data into this dimension, and make sure that the
- // filter bitset is wide enough to handle the new dimension.
- if (m > M) filters = crossfilter_arrayWiden(filters, M <<= 1);
- preAdd(data, 0, n);
- postAdd(data, 0, n);
-
- // Incorporates the specified new records into this dimension.
- // This function is responsible for updating filters, values, and index.
- function preAdd(newData, n0, n1) {
-
- // Permute new values into natural order using a sorted index.
- newValues = newData.map(value);
- newIndex = sort(crossfilter_range(n1), 0, n1);
- newValues = permute(newValues, newIndex);
-
- // Bisect newValues to determine which new records are selected.
- var bounds = refilter(newValues), lo1 = bounds[0], hi1 = bounds[1], i;
- for (i = 0; i < lo1; ++i) filters[newIndex[i] + n0] |= one;
- for (i = hi1; i < n1; ++i) filters[newIndex[i] + n0] |= one;
-
- // If this dimension previously had no data, then we don't need to do the
- // more expensive merge operation; use the new values and index as-is.
- if (!n0) {
- values = newValues;
- index = newIndex;
- lo0 = lo1;
- hi0 = hi1;
- return;
- }
-
- var oldValues = values,
- oldIndex = index,
- i0 = 0,
- i1 = 0;
-
- // Otherwise, create new arrays into which to merge new and old.
- values = new Array(n);
- index = crossfilter_index(n, n);
-
- // Merge the old and new sorted values, and old and new index.
- for (i = 0; i0 < n0 && i1 < n1; ++i) {
- if (oldValues[i0] < newValues[i1]) {
- values[i] = oldValues[i0];
- index[i] = oldIndex[i0++];
- } else {
- values[i] = newValues[i1];
- index[i] = newIndex[i1++] + n0;
- }
- }
-
- // Add any remaining old values.
- for (; i0 < n0; ++i0, ++i) {
- values[i] = oldValues[i0];
- index[i] = oldIndex[i0];
- }
-
- // Add any remaining new values.
- for (; i1 < n1; ++i1, ++i) {
- values[i] = newValues[i1];
- index[i] = newIndex[i1] + n0;
- }
-
- // Bisect again to recompute lo0 and hi0.
- bounds = refilter(values), lo0 = bounds[0], hi0 = bounds[1];
- }
-
- // When all filters have updated, notify index listeners of the new values.
- function postAdd(newData, n0, n1) {
- indexListeners.forEach(function(l) { l(newValues, newIndex, n0, n1); });
- newValues = newIndex = null;
- }
-
- // Updates the selected values based on the specified bounds [lo, hi].
- // This implementation is used by all the public filter methods.
- function filterIndex(bounds) {
- var i,
- j,
- k,
- lo1 = bounds[0],
- hi1 = bounds[1],
- added = [],
- removed = [];
-
- // Fast incremental update based on previous lo index.
- if (lo1 < lo0) {
- for (i = lo1, j = Math.min(lo0, hi1); i < j; ++i) {
- filters[k = index[i]] ^= one;
- added.push(k);
- }
- } else if (lo1 > lo0) {
- for (i = lo0, j = Math.min(lo1, hi0); i < j; ++i) {
- filters[k = index[i]] ^= one;
- removed.push(k);
- }
- }
-
- // Fast incremental update based on previous hi index.
- if (hi1 > hi0) {
- for (i = Math.max(lo1, hi0), j = hi1; i < j; ++i) {
- filters[k = index[i]] ^= one;
- added.push(k);
- }
- } else if (hi1 < hi0) {
- for (i = Math.max(lo0, hi1), j = hi0; i < j; ++i) {
- filters[k = index[i]] ^= one;
- removed.push(k);
- }
- }
-
- lo0 = lo1;
- hi0 = hi1;
- filterListeners.forEach(function(l) { l(one, added, removed); });
- return dimension;
- }
-
- // Filters this dimension using the specified range, value, or null.
- // If the range is null, this is equivalent to filterAll.
- // If the range is an array, this is equivalent to filterRange.
- // Otherwise, this is equivalent to filterExact.
- function filter(range) {
- return range == null
- ? filterAll() : Array.isArray(range)
- ? filterRange(range)
- : filterExact(range);
- }
-
- // Filters this dimension to select the exact value.
- function filterExact(value) {
- return filterIndex((refilter = crossfilter_filterExact(bisect, value))(values));
- }
-
- // Filters this dimension to select the specified range [lo, hi].
- // The lower bound is inclusive, and the upper bound is exclusive.
- function filterRange(range) {
- return filterIndex((refilter = crossfilter_filterRange(bisect, range))(values));
- }
-
- // Clears any filters on this dimension.
- function filterAll() {
- return filterIndex((refilter = crossfilter_filterAll)(values));
- }
-
- // Returns the top K selected records, based on this dimension's order.
- // Note: observes this dimension's filter, unlike group and groupAll.
- function top(k) {
- var array = [],
- i = hi0,
- j;
-
- while (--i >= lo0 && k > 0) {
- if (!filters[j = index[i]]) {
- array.push(data[j]);
- --k;
- }
- }
-
- return array;
- }
-
- // Adds a new group to this dimension, using the specified key function.
- function group(key) {
- var group = {
- top: top,
- all: all,
- reduce: reduce,
- reduceCount: reduceCount,
- reduceSum: reduceSum,
- order: order,
- orderNatural: orderNatural,
- size: size
- };
-
- var groups, // array of {key, value}
- groupIndex, // object id ↦ group id
- groupWidth = 8,
- groupCapacity = crossfilter_capacity(groupWidth),
- k = 0, // cardinality
- select,
- heap,
- reduceAdd,
- reduceRemove,
- reduceInitial,
- update = crossfilter_null,
- reset = crossfilter_null,
- resetNeeded = true;
-
- if (arguments.length < 1) key = crossfilter_identity;
-
- // The group listens to the crossfilter for when any dimension changes, so
- // that it can update the associated reduce values. It must also listen to
- // the parent dimension for when data is added, and compute new keys.
- filterListeners.push(update);
- indexListeners.push(add);
-
- // Incorporate any existing data into the grouping.
- add(values, index, 0, n);
-
- // Incorporates the specified new values into this group.
- // This function is responsible for updating groups and groupIndex.
- function add(newValues, newIndex, n0, n1) {
- var oldGroups = groups,
- reIndex = crossfilter_index(k, groupCapacity),
- add = reduceAdd,
- initial = reduceInitial,
- k0 = k, // old cardinality
- i0 = 0, // index of old group
- i1 = 0, // index of new record
- j, // object id
- g0, // old group
- x0, // old key
- x1, // new key
- g, // group to add
- x; // key of group to add
-
- // If a reset is needed, we don't need to update the reduce values.
- if (resetNeeded) add = initial = crossfilter_null;
-
- // Reset the new groups (k is a lower bound).
- // Also, make sure that groupIndex exists and is long enough.
- groups = new Array(k), k = 0;
- groupIndex = k0 > 1 ? crossfilter_arrayLengthen(groupIndex, n) : crossfilter_index(n, groupCapacity);
-
- // Get the first old key (x0 of g0), if it exists.
- if (k0) x0 = (g0 = oldGroups[0]).key;
-
- // Find the first new key (x1), skipping NaN keys.
- while (i1 < n1 && !((x1 = key(newValues[i1])) >= x1)) ++i1;
-
- // While new keys remain…
- while (i1 < n1) {
-
- // Determine the lesser of the two current keys; new and old.
- // If there are no old keys remaining, then always add the new key.
- if (g0 && x0 <= x1) {
- g = g0, x = x0;
-
- // Record the new index of the old group.
- reIndex[i0] = k;
-
- // Retrieve the next old key.
- if (g0 = oldGroups[++i0]) x0 = g0.key;
- } else {
- g = {key: x1, value: initial()}, x = x1;
- }
-
- // Add the lesser group.
- groups[k] = g;
-
- // Add any selected records belonging to the added group, while
- // advancing the new key and populating the associated group index.
- while (!(x1 > x)) {
- groupIndex[j = newIndex[i1] + n0] = k;
- if (!(filters[j] & zero)) g.value = add(g.value, data[j]);
- if (++i1 >= n1) break;
- x1 = key(newValues[i1]);
- }
-
- groupIncrement();
- }
-
- // Add any remaining old groups that were greater than all new keys.
- // No incremental reduce is needed; these groups have no new records.
- // Also record the new index of the old group.
- while (i0 < k0) {
- groups[reIndex[i0] = k] = oldGroups[i0++];
- groupIncrement();
- }
-
- // If we added any new groups before any old groups,
- // update the group index of all the old records.
- if (k > i0) for (i0 = 0; i0 < n0; ++i0) {
- groupIndex[i0] = reIndex[groupIndex[i0]];
- }
-
- // Modify the update and reset behavior based on the cardinality.
- // If the cardinality is less than or equal to one, then the groupIndex
- // is not needed. If the cardinality is zero, then there are no records
- // and therefore no groups to update or reset. Note that we also must
- // change the registered listener to point to the new method.
- j = filterListeners.indexOf(update);
- if (k > 1) {
- update = updateMany;
- reset = resetMany;
- } else {
- if (k === 1) {
- update = updateOne;
- reset = resetOne;
- } else {
- update = crossfilter_null;
- reset = crossfilter_null;
- }
- groupIndex = null;
- }
- filterListeners[j] = update;
-
- // Count the number of added groups,
- // and widen the group index as needed.
- function groupIncrement() {
- if (++k === groupCapacity) {
- reIndex = crossfilter_arrayWiden(reIndex, groupWidth <<= 1);
- groupIndex = crossfilter_arrayWiden(groupIndex, groupWidth);
- groupCapacity = crossfilter_capacity(groupWidth);
- }
- }
- }
-
- // Reduces the specified selected or deselected records.
- // This function is only used when the cardinality is greater than 1.
- function updateMany(filterOne, added, removed) {
- if (filterOne === one || resetNeeded) return;
-
- var i,
- k,
- n,
- g;
-
- // Add the added values.
- for (i = 0, n = added.length; i < n; ++i) {
- if (!(filters[k = added[i]] & zero)) {
- g = groups[groupIndex[k]];
- g.value = reduceAdd(g.value, data[k]);
- }
- }
-
- // Remove the removed values.
- for (i = 0, n = removed.length; i < n; ++i) {
- if ((filters[k = removed[i]] & zero) === filterOne) {
- g = groups[groupIndex[k]];
- g.value = reduceRemove(g.value, data[k]);
- }
- }
- }
-
- // Reduces the specified selected or deselected records.
- // This function is only used when the cardinality is 1.
- function updateOne(filterOne, added, removed) {
- if (filterOne === one || resetNeeded) return;
-
- var i,
- k,
- n,
- g = groups[0];
-
- // Add the added values.
- for (i = 0, n = added.length; i < n; ++i) {
- if (!(filters[k = added[i]] & zero)) {
- g.value = reduceAdd(g.value, data[k]);
- }
- }
-
- // Remove the removed values.
- for (i = 0, n = removed.length; i < n; ++i) {
- if ((filters[k = removed[i]] & zero) === filterOne) {
- g.value = reduceRemove(g.value, data[k]);
- }
- }
- }
-
- // Recomputes the group reduce values from scratch.
- // This function is only used when the cardinality is greater than 1.
- function resetMany() {
- var i,
- g;
-
- // Reset all group values.
- for (i = 0; i < k; ++i) {
- groups[i].value = reduceInitial();
- }
-
- // Add any selected records.
- for (i = 0; i < n; ++i) {
- if (!(filters[i] & zero)) {
- g = groups[groupIndex[i]];
- g.value = reduceAdd(g.value, data[i]);
- }
- }
- }
-
- // Recomputes the group reduce values from scratch.
- // This function is only used when the cardinality is 1.
- function resetOne() {
- var i,
- g = groups[0];
-
- // Reset the singleton group values.
- g.value = reduceInitial();
-
- // Add any selected records.
- for (i = 0; i < n; ++i) {
- if (!(filters[i] & zero)) {
- g.value = reduceAdd(g.value, data[i]);
- }
- }
- }
-
- // Returns the array of group values, in the dimension's natural order.
- function all() {
- if (resetNeeded) reset(), resetNeeded = false;
- return groups;
- }
-
- // Returns a new array containing the top K group values, in reduce order.
- function top(k) {
- var top = select(all(), 0, groups.length, k);
- return heap.sort(top, 0, top.length);
- }
-
- // Sets the reduce behavior for this group to use the specified functions.
- // This method lazily recomputes the reduce values, waiting until needed.
- function reduce(add, remove, initial) {
- reduceAdd = add;
- reduceRemove = remove;
- reduceInitial = initial;
- resetNeeded = true;
- return group;
- }
-
- // A convenience method for reducing by count.
- function reduceCount() {
- return reduce(crossfilter_reduceIncrement, crossfilter_reduceDecrement, crossfilter_zero);
- }
-
- // A convenience method for reducing by sum(value).
- function reduceSum(value) {
- return reduce(crossfilter_reduceAdd(value), crossfilter_reduceSubtract(value), crossfilter_zero);
- }
-
- // Sets the reduce order, using the specified accessor.
- function order(value) {
- select = heapselect_by(valueOf);
- heap = heap_by(valueOf);
- function valueOf(d) { return value(d.value); }
- return group;
- }
-
- // A convenience method for natural ordering by reduce value.
- function orderNatural() {
- return order(crossfilter_identity);
- }
-
- // Returns the cardinality of this group, irrespective of any filters.
- function size() {
- return k;
- }
-
- return reduceCount().orderNatural();
- }
-
- // A convenience function for generating a singleton group.
- function groupAll() {
- var g = group(crossfilter_null), all = g.all;
- delete g.all;
- delete g.top;
- delete g.order;
- delete g.orderNatural;
- delete g.size;
- g.value = function() { return all()[0].value; };
- return g;
- }
-
- return dimension;
- }
-
- // A convenience method for groupAll on a dummy dimension.
- // This implementation can be optimized since it is always cardinality 1.
- function groupAll() {
- var group = {
- reduce: reduce,
- reduceCount: reduceCount,
- reduceSum: reduceSum,
- value: value
- };
-
- var reduceValue,
- reduceAdd,
- reduceRemove,
- reduceInitial,
- resetNeeded = true;
-
- // The group listens to the crossfilter for when any dimension changes, so
- // that it can update the reduce value. It must also listen to the parent
- // dimension for when data is added.
- filterListeners.push(update);
- dataListeners.push(add);
-
- // For consistency; actually a no-op since resetNeeded is true.
- add(data, 0, n);
-
- // Incorporates the specified new values into this group.
- function add(newData, n0, n1) {
- var i;
-
- if (resetNeeded) return;
-
- // Add the added values.
- for (i = n0; i < n; ++i) {
- if (!filters[i]) {
- reduceValue = reduceAdd(reduceValue, data[i]);
- }
- }
- }
-
- // Reduces the specified selected or deselected records.
- function update(filterOne, added, removed) {
- var i,
- k,
- n;
-
- if (resetNeeded) return;
-
- // Add the added values.
- for (i = 0, n = added.length; i < n; ++i) {
- if (!filters[k = added[i]]) {
- reduceValue = reduceAdd(reduceValue, data[k]);
- }
- }
-
- // Remove the removed values.
- for (i = 0, n = removed.length; i < n; ++i) {
- if (filters[k = removed[i]] === filterOne) {
- reduceValue = reduceRemove(reduceValue, data[k]);
- }
- }
- }
-
- // Recomputes the group reduce value from scratch.
- function reset() {
- var i;
-
- reduceValue = reduceInitial();
-
- for (i = 0; i < n; ++i) {
- if (!filters[i]) {
- reduceValue = reduceAdd(reduceValue, data[i]);
- }
- }
- }
-
- // Sets the reduce behavior for this group to use the specified functions.
- // This method lazily recomputes the reduce value, waiting until needed.
- function reduce(add, remove, initial) {
- reduceAdd = add;
- reduceRemove = remove;
- reduceInitial = initial;
- resetNeeded = true;
- return group;
- }
-
- // A convenience method for reducing by count.
- function reduceCount() {
- return reduce(crossfilter_reduceIncrement, crossfilter_reduceDecrement, crossfilter_zero);
- }
-
- // A convenience method for reducing by sum(value).
- function reduceSum(value) {
- return reduce(crossfilter_reduceAdd(value), crossfilter_reduceSubtract(value), crossfilter_zero);
- }
-
- // Returns the computed reduce value.
- function value() {
- if (resetNeeded) reset(), resetNeeded = false;
- return reduceValue;
- }
-
- return reduceCount();
- }
-
- // Returns the number of records in this crossfilter, irrespective of any filters.
- function size() {
- return n;
- }
-
- return arguments.length
- ? add(arguments[0])
- : crossfilter;
-}
-
-// Returns an array of size n, big enough to store ids up to m.
-function crossfilter_index(n, m) {
- return (m < 0x101
- ? crossfilter_array8 : m < 0x10001
- ? crossfilter_array16
- : crossfilter_array32)(n);
-}
-
-// Constructs a new array of size n, with sequential values from 0 to n - 1.
-function crossfilter_range(n) {
- var range = crossfilter_index(n, n);
- for (var i = -1; ++i < n;) range[i] = i;
- return range;
-}
-
-function crossfilter_capacity(w) {
- return w === 8
- ? 0x100 : w === 16
- ? 0x10000
- : 0x100000000;
-}
-})(this);
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js
deleted file mode 100755
index 981f0d64..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(a){function b(a){return a}function c(a,b){for(var c=0,d=b.length,e=new Array(d);c<d;++c)e[c]=a[b[c]];return e}function e(a){function b(b,c,d,e){while(d<e){var f=d+e>>1;a(b[f])<c?d=f+1:e=f}return d}function c(b,c,d,e){while(d<e){var f=d+e>>1;c<a(b[f])?e=f:d=f+1}return d}return c.right=c,c.left=b,c}function g(a){function b(a,b,c){var e=c-b,f=(e>>>1)+1;while(--f>0)d(a,f,e,b);return a}function c(a,b,c){var e=c-b,f;while(--e>0)f=a[b],a[b]=a[b+e],a[b+e]=f,d(a,1,e,b);return a}function d(b,c,d,e){var f=b[--e+c],g=a(f),h;while((h=c<<1)<=d){h<d&&a(b[e+h])>a(b[e+h+1])&&h++;if(g<=a(b[e+h]))break;b[e+c]=b[e+h],c=h}b[e+c]=f}return b.sort=c,b}function i(a){function c(c,d,e,f){var g=new Array(f=Math.min(e-d,f)),h,i,j,k;for(i=0;i<f;++i)g[i]=c[d++];b(g,0,f);if(d<e){h=a(g[0]);do if(j=a(k=c[d])>h)g[0]=k,h=a(b(g,0,f)[0]);while(++d<e)}return g}var b=g(a);return c}function k(a){function b(b,c,d){for(var e=c+1;e<d;++e){for(var f=e,g=b[e],h=a(g);f>c&&a(b[f-1])>h;--f)b[f]=b[f-1];b[f]=g}return b}return b}function m(a){function c(a,c,e){return(e-c<n?b:d)(a,c,e)}function d(b,d,e){var f=(e-d)/6|0,g=d+f,h=e-1-f,i=d+e-1>>1,j=i-f,k=i+f,l=b[g],m=a(l),n=b[j],o=a(n),p=b[i],q=a(p),r=b[k],s=a(r),t=b[h],u=a(t),v;m>o&&(v=l,l=n,n=v,v=m,m=o,o=v),s>u&&(v=r,r=t,t=v,v=s,s=u,u=v),m>q&&(v=l,l=p,p=v,v=m,m=q,q=v),o>q&&(v=n,n=p,p=v,v=o,o=q,q=v),m>s&&(v=l,l=r,r=v,v=m,m=s,s=v),q>s&&(v=p,p=r,r=v,v=q,q=s,s=v),o>u&&(v=n,n=t,t=v,v=o,o=u,u=v),o>q&&(v=n,n=p,p=v,v=o,o=q,q=v),s>u&&(v=r,r=t,t=v,v=s,s=u,u=v);var w=n,x=o,y=r,z=s;b[g]=l,b[j]=b[d],b[i]=p,b[k]=b[e-1],b[h]=t;var A=d+1,B=e-2,C=x<=z&&x>=z;if(C)for(var D=A;D<=B;++D){var E=b[D],F=a(E);if(F<x)D!==A&&(b[D]=b[A],b[A]=E),++A;else if(F>x)for(;;){var G=a(b[B]);if(G>x){B--;continue}if(G<x){b[D]=b[A],b[A++]=b[B],b[B--]=E;break}b[D]=b[B],b[B--]=E;break}}else for(var D=A;D<=B;D++){var E=b[D],F=a(E);if(F<x)D!==A&&(b[D]=b[A],b[A]=E),++A;else if(F>z)for(;;){var G=a(b[B]);if(G>z){B--;if(B<D)break;continue}G<x?(b[D]=b[A],b[A++]=b[B],b[B--]=E):(b[D]=b[B],b[B--]=E);break}}b[d]=b[A-1],b[A-1]=w,b[e-1]=b[B+1],b[B+1]=y,c(b,d,A-1),c(b,B+2,e);if(C)return b;if(A<g&&B>h){var H,G;while((H=a(b[A]))<=x&&H>=x)++A;while((G=a(b[B]))<=z&&G>=z)--B;for(var D=A;D<=B;D++){var E=b[D],F=a(E);if(F<=x&&F>=x)D!==A&&(b[D]=b[A],b[A]=E),A++;else if(F<=z&&F>=z)for(;;){var G=a(b[B]);if(G<=z&&G>=z){B--;if(B<D)break;continue}G<x?(b[D]=b[A],b[A++]=b[B],b[B--]=E):(b[D]=b[B],b[B--]=E);break}}}return c(b,A,B+1)}var b=k(a);return c}function t(a){return new Array(a)}function u(a,b){return function(c){var d=c.length;return[a.left(c,b,0,d),a.right(c,b,0,d)]}}function v(a,b){var c=b[0],d=b[1];return function(b){var e=b.length;return[a.left(b,c,0,e),a.left(b,d,0,e)]}}function w(a){return[0,a.length]}function x(){return null}function y(){return 0}function z(a){return a+1}function A(a){return a-1}function B(a){return function(b,c){return b+ +a(c)}}function C(a){return function(b,c){return b-a(c)}}function D(){function p(b){var c=f,d=b.length;return d&&(e=e.concat(b),k=r(k,f+=d),n.forEach(function(a){a(b,c,d)})),a}function q(a){function P(b,d,e){H=b.map(a),I=J(F(e),0,e),H=c(H,I);var g=K(H),h=g[0],i=g[1],j;for(j=0;j<h;++j)k[I[j]+d]|=p;for(j=i;j<e;++j)k[I[j]+d]|=p;if(!d){t=H,D=I,N=h,O=i;return}var l=t,m=D,n=0,o=0;t=new Array(f),D=E(f,f);for(j=0;n<d&&o<e;++j)l[n]<H[o]?(t[j]=l[n],D[j]=m[n++]):(t[j]=H[o],D[j]=I[o++]+d);for(;n<d;++n,++j)t[j]=l[n],D[j]=m[n];for(;o<e;++o,++j)t[j]=H[o],D[j]=I[o]+d;g=K(t),N=g[0],O=g[1]}function Q(a,b,c){L.forEach(function(a){a(H,I,b,c)}),H=I=null}function R(a){var b,c,d,e=a[0],f=a[1],g=[],h=[];if(e<N)for(b=e,c=Math.min(N,f);b<c;++b)k[d=D[b]]^=p,g.push(d);else if(e>N)for(b=N,c=Math.min(e,O);b<c;++b)k[d=D[b]]^=p,h.push(d);if(f>O)for(b=Math.max(e,O),c=f;b<c;++b)k[d=D[b]]^=p,g.push(d);else if(f<O)for(b=Math.max(N,f),c=O;b<c;++b)k[d=D[b]]^=p,h.push(d);return N=e,O=f,l.forEach(function(a){a(p,g,h)}),o}function S(a){return a==null?V():Array.isArray(a)?U(a):T(a)}function T(a){return R((K=u(d,a))(t))}function U(a){return R((K=v(d,a))(t))}function V(){return R((K=w)(t))}function W(a){var b=[],c=O,d;while(--c>=N&&a>0)k[d=D[c]]||(b.push(e[d]),--a);return b}function X(a){function K(b,c,g,i){function Q(){++n===m&&(p=s(p,j<<=1),h=s(h,j),m=G(j))}var o=d,p=E(n,m),t=v,u=F,w=n,y=0,z=0,A,B,C,D,K,L;J&&(t=u=x),d=new Array(n),n=0,h=w>1?r(h,f):E(f,m),w&&(C=(B=o[0]).key);while(z<i&&!((D=a(b[z]))>=D))++z;while(z<i){if(B&&C<=D){K=B,L=C,p[y]=n;if(B=o[++y])C=B.key}else K={key:D,value:u()},L=D;d[n]=K;while(!(D>L)){h[A=c[z]+g]=n,k[A]&q||(K.value=t(K.value,e[A]));if(++z>=i)break;D=a(b[z])}Q()}while(y<w)d[p[y]=n]=o[y++],Q();if(n>y)for(y=0;y<g;++y)h[y]=p[h[y]];A=l.indexOf(H),n>1?(H=M,I=O):(n===1?(H=N,I=P):(H=x,I=x),h=null),l[A]=H}function M(a,b,c){if(a===p||J)return;var f,g,i,j;for(f=0,i=b.length;f<i;++f)k[g=b[f]]&q||(j=d[h[g]],j.value=v(j.value,e[g]));for(f=0,i=c.length;f<i;++f)(k[g=c[f]]&q)===a&&(j=d[h[g]],j.value=w(j.value,e[g]))}function N(a,b,c){if(a===p||J)return;var f,g,h,i=d[0];for(f=0,h=b.length;f<h;++f)k[g=b[f]]&q||(i.value=v(i.value,e[g]));for(f=0,h=c.length;f<h;++f)(k[g=c[f]]&q)===a&&(i.value=w(i.value,e[g]))}function O(){var a,b;for(a=0;a<n;++a)d[a].value=F();for(a=0;a<f;++a)k[a]&q||(b=d[h[a]],b.value=v(b.value,e[a]))}function P(){var a,b=d[0];b.value=F();for(a=0;a<f;++a)k[a]&q||(b.value=v(b.value,e[a]))}function Q(){return J&&(I(),J=!1),d}function R(a){var b=o(Q(),0,d.length,a);return u.sort(b,0,b.length)}function S(a,b,d){return v=a,w=b,F=d,J=!0,c}function T(){return S(z,A,y)}function U(a){return S(B(a),C(a),y)}function V(a){function b(b){return a(b.value)}return o=i(b),u=g(b),c}function W(){return V(b)}function X(){return n}var c={top:R,all:Q,reduce:S,reduceCount:T,reduceSum:U,order:V,orderNatural:W,size:X},d,h,j=8,m=G(j),n=0,o,u,v,w,F,H=x,I=x,J=!0;return arguments.length<1&&(a=b),l.push(H),L.push(K),K(t,D,0,f),T().orderNatural()}function Y(){var a=X(x),b=a.all;return delete a.all,delete a.top,delete a.order,delete a.orderNatural,delete a.size,a.value=function(){return b()[0].value},a}var o={filter:S,filterExact:T,filterRange:U,filterAll:V,top:W,group:X,groupAll:Y},p=1<<h++,q=~p,t,D,H,I,J=m(function(a){return H[a]}),K=w,L=[],N=0,O=0;return n.unshift(P),n.push(Q),h>j&&(k=s(k,j<<=1)),P(e,0,f),Q(e,0,f),o}function t(){function i(a,d,g){var i;if(h)return;for(i=d;i<f;++i)k[i]||(b=c(b,e[i]))}function j(a,f,g){var i,j,l;if(h)return;for(i=0,l=f.length;i<l;++i)k[j=f[i]]||(b=c(b,e[j]));for(i=0,l=g.length;i<l;++i)k[j=g[i]]===a&&(b=d(b,e[j]))}function m(){var a;b=g();for(a=0;a<f;++a)k[a]||(b=c(b,e[a]))}function o(b,e,f){return c=b,d=e,g=f,h=!0,a}function p(){return o(z,A,y)}function q(a){return o(B(a),C(a),y)}function r(){return h&&(m(),h=!1),b}var a={reduce:o,reduceCount:p,reduceSum:q,value:r},b,c,d,g,h=!0;return l.push(j),n.push(i),i(e,0,f),p()}function D(){return f}var a={add:p,dimension:q,groupAll:t,size:D},e=[],f=0,h=0,j=8,k=o(0),l=[],n=[];return arguments.length?p(arguments[0]):a}function E(a,b){return(b<257?o:b<65537?p:q)(a)}function F(a){var b=E(a,a);for(var c=-1;++c<a;)b[c]=c;return b}function G(a){return a===8?256:a===16?65536:4294967296}D.version="1.0.3",D.permute=c;var d=D.bisect=e(b);d.by=e;var f=D.heap=g(b);f.by=g;var h=D.heapselect=i(b);h.by=i;var j=D.insertionsort=k(b);j.by=k;var l=D.quicksort=m(b);l.by=m;var n=32,o=t,p=t,q=t,r=b,s=b;typeof Uint8Array!="undefined"&&(o=function(a){return new Uint8Array(a)},p=function(a){return new Uint16Array(a)},q=function(a){return new Uint32Array(a)},r=function(a,b){var c=new a.constructor(b);return c.set(a),c},s=function(a,b){var c;switch(b){case 16:c=p(a.length);break;case 32:c=q(a.length);break;default:throw new Error("invalid array width!")}return c.set(a),c}),a.crossfilter=D})(this); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js
deleted file mode 100755
index 714656b3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js
+++ /dev/null
@@ -1,7033 +0,0 @@
-(function() {
- function d3_class(ctor, properties) {
- try {
- for (var key in properties) {
- Object.defineProperty(ctor.prototype, key, {
- value: properties[key],
- enumerable: false
- });
- }
- } catch (e) {
- ctor.prototype = properties;
- }
- }
- function d3_arrayCopy(pseudoarray) {
- var i = -1, n = pseudoarray.length, array = [];
- while (++i < n) array.push(pseudoarray[i]);
- return array;
- }
- function d3_arraySlice(pseudoarray) {
- return Array.prototype.slice.call(pseudoarray);
- }
- function d3_Map() {}
- function d3_identity(d) {
- return d;
- }
- function d3_this() {
- return this;
- }
- function d3_true() {
- return true;
- }
- function d3_functor(v) {
- return typeof v === "function" ? v : function() {
- return v;
- };
- }
- function d3_rebind(target, source, method) {
- return function() {
- var value = method.apply(source, arguments);
- return arguments.length ? target : value;
- };
- }
- function d3_number(x) {
- return x != null && !isNaN(x);
- }
- function d3_zipLength(d) {
- return d.length;
- }
- function d3_splitter(d) {
- return d == null;
- }
- function d3_collapse(s) {
- return s.trim().replace(/\s+/g, " ");
- }
- function d3_range_integerScale(x) {
- var k = 1;
- while (x * k % 1) k *= 10;
- return k;
- }
- function d3_dispatch() {}
- function d3_dispatch_event(dispatch) {
- function event() {
- var z = listeners, i = -1, n = z.length, l;
- while (++i < n) if (l = z[i].on) l.apply(this, arguments);
- return dispatch;
- }
- var listeners = [], listenerByName = new d3_Map;
- event.on = function(name, listener) {
- var l = listenerByName.get(name), i;
- if (arguments.length < 2) return l && l.on;
- if (l) {
- l.on = null;
- listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
- listenerByName.remove(name);
- }
- if (listener) listeners.push(listenerByName.set(name, {
- on: listener
- }));
- return dispatch;
- };
- return event;
- }
- function d3_format_precision(x, p) {
- return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
- }
- function d3_format_typeDefault(x) {
- return x + "";
- }
- function d3_format_group(value) {
- var i = value.lastIndexOf("."), f = i >= 0 ? value.substring(i) : (i = value.length, ""), t = [];
- while (i > 0) t.push(value.substring(i -= 3, i + 3));
- return t.reverse().join(",") + f;
- }
- function d3_formatPrefix(d, i) {
- var k = Math.pow(10, Math.abs(8 - i) * 3);
- return {
- scale: i > 8 ? function(d) {
- return d / k;
- } : function(d) {
- return d * k;
- },
- symbol: d
- };
- }
- function d3_ease_clamp(f) {
- return function(t) {
- return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
- };
- }
- function d3_ease_reverse(f) {
- return function(t) {
- return 1 - f(1 - t);
- };
- }
- function d3_ease_reflect(f) {
- return function(t) {
- return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
- };
- }
- function d3_ease_identity(t) {
- return t;
- }
- function d3_ease_poly(e) {
- return function(t) {
- return Math.pow(t, e);
- };
- }
- function d3_ease_sin(t) {
- return 1 - Math.cos(t * Math.PI / 2);
- }
- function d3_ease_exp(t) {
- return Math.pow(2, 10 * (t - 1));
- }
- function d3_ease_circle(t) {
- return 1 - Math.sqrt(1 - t * t);
- }
- function d3_ease_elastic(a, p) {
- var s;
- if (arguments.length < 2) p = .45;
- if (arguments.length < 1) {
- a = 1;
- s = p / 4;
- } else s = p / (2 * Math.PI) * Math.asin(1 / a);
- return function(t) {
- return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
- };
- }
- function d3_ease_back(s) {
- if (!s) s = 1.70158;
- return function(t) {
- return t * t * ((s + 1) * t - s);
- };
- }
- function d3_ease_bounce(t) {
- return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
- }
- function d3_eventCancel() {
- d3.event.stopPropagation();
- d3.event.preventDefault();
- }
- function d3_eventSource() {
- var e = d3.event, s;
- while (s = e.sourceEvent) e = s;
- return e;
- }
- function d3_eventDispatch(target) {
- var dispatch = new d3_dispatch, i = 0, n = arguments.length;
- while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
- dispatch.of = function(thiz, argumentz) {
- return function(e1) {
- try {
- var e0 = e1.sourceEvent = d3.event;
- e1.target = target;
- d3.event = e1;
- dispatch[e1.type].apply(thiz, argumentz);
- } finally {
- d3.event = e0;
- }
- };
- };
- return dispatch;
- }
- function d3_transform(m) {
- var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
- if (r0[0] * r1[1] < r1[0] * r0[1]) {
- r0[0] *= -1;
- r0[1] *= -1;
- kx *= -1;
- kz *= -1;
- }
- this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_transformDegrees;
- this.translate = [ m.e, m.f ];
- this.scale = [ kx, ky ];
- this.skew = ky ? Math.atan2(kz, ky) * d3_transformDegrees : 0;
- }
- function d3_transformDot(a, b) {
- return a[0] * b[0] + a[1] * b[1];
- }
- function d3_transformNormalize(a) {
- var k = Math.sqrt(d3_transformDot(a, a));
- if (k) {
- a[0] /= k;
- a[1] /= k;
- }
- return k;
- }
- function d3_transformCombine(a, b, k) {
- a[0] += k * b[0];
- a[1] += k * b[1];
- return a;
- }
- function d3_interpolateByName(name) {
- return name == "transform" ? d3.interpolateTransform : d3.interpolate;
- }
- function d3_uninterpolateNumber(a, b) {
- b = b - (a = +a) ? 1 / (b - a) : 0;
- return function(x) {
- return (x - a) * b;
- };
- }
- function d3_uninterpolateClamp(a, b) {
- b = b - (a = +a) ? 1 / (b - a) : 0;
- return function(x) {
- return Math.max(0, Math.min(1, (x - a) * b));
- };
- }
- function d3_rgb(r, g, b) {
- return new d3_Rgb(r, g, b);
- }
- function d3_Rgb(r, g, b) {
- this.r = r;
- this.g = g;
- this.b = b;
- }
- function d3_rgb_hex(v) {
- return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
- }
- function d3_rgb_parse(format, rgb, hsl) {
- var r = 0, g = 0, b = 0, m1, m2, name;
- m1 = /([a-z]+)\((.*)\)/i.exec(format);
- if (m1) {
- m2 = m1[2].split(",");
- switch (m1[1]) {
- case "hsl":
- {
- return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
- }
- case "rgb":
- {
- return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
- }
- }
- }
- if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
- if (format != null && format.charAt(0) === "#") {
- if (format.length === 4) {
- r = format.charAt(1);
- r += r;
- g = format.charAt(2);
- g += g;
- b = format.charAt(3);
- b += b;
- } else if (format.length === 7) {
- r = format.substring(1, 3);
- g = format.substring(3, 5);
- b = format.substring(5, 7);
- }
- r = parseInt(r, 16);
- g = parseInt(g, 16);
- b = parseInt(b, 16);
- }
- return rgb(r, g, b);
- }
- function d3_rgb_hsl(r, g, b) {
- var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
- if (d) {
- s = l < .5 ? d / (max + min) : d / (2 - max - min);
- if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
- h *= 60;
- } else {
- s = h = 0;
- }
- return d3_hsl(h, s, l);
- }
- function d3_rgb_lab(r, g, b) {
- r = d3_rgb_xyz(r);
- g = d3_rgb_xyz(g);
- b = d3_rgb_xyz(b);
- var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
- return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
- }
- function d3_rgb_xyz(r) {
- return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
- }
- function d3_rgb_parseNumber(c) {
- var f = parseFloat(c);
- return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
- }
- function d3_hsl(h, s, l) {
- return new d3_Hsl(h, s, l);
- }
- function d3_Hsl(h, s, l) {
- this.h = h;
- this.s = s;
- this.l = l;
- }
- function d3_hsl_rgb(h, s, l) {
- function v(h) {
- if (h > 360) h -= 360; else if (h < 0) h += 360;
- if (h < 60) return m1 + (m2 - m1) * h / 60;
- if (h < 180) return m2;
- if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
- return m1;
- }
- function vv(h) {
- return Math.round(v(h) * 255);
- }
- var m1, m2;
- h = h % 360;
- if (h < 0) h += 360;
- s = s < 0 ? 0 : s > 1 ? 1 : s;
- l = l < 0 ? 0 : l > 1 ? 1 : l;
- m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
- m1 = 2 * l - m2;
- return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
- }
- function d3_hcl(h, c, l) {
- return new d3_Hcl(h, c, l);
- }
- function d3_Hcl(h, c, l) {
- this.h = h;
- this.c = c;
- this.l = l;
- }
- function d3_hcl_lab(h, c, l) {
- return d3_lab(l, Math.cos(h *= Math.PI / 180) * c, Math.sin(h) * c);
- }
- function d3_lab(l, a, b) {
- return new d3_Lab(l, a, b);
- }
- function d3_Lab(l, a, b) {
- this.l = l;
- this.a = a;
- this.b = b;
- }
- function d3_lab_rgb(l, a, b) {
- var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
- x = d3_lab_xyz(x) * d3_lab_X;
- y = d3_lab_xyz(y) * d3_lab_Y;
- z = d3_lab_xyz(z) * d3_lab_Z;
- return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
- }
- function d3_lab_hcl(l, a, b) {
- return d3_hcl(Math.atan2(b, a) / Math.PI * 180, Math.sqrt(a * a + b * b), l);
- }
- function d3_lab_xyz(x) {
- return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
- }
- function d3_xyz_lab(x) {
- return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
- }
- function d3_xyz_rgb(r) {
- return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
- }
- function d3_selection(groups) {
- d3_arraySubclass(groups, d3_selectionPrototype);
- return groups;
- }
- function d3_selection_selector(selector) {
- return function() {
- return d3_select(selector, this);
- };
- }
- function d3_selection_selectorAll(selector) {
- return function() {
- return d3_selectAll(selector, this);
- };
- }
- function d3_selection_attr(name, value) {
- function attrNull() {
- this.removeAttribute(name);
- }
- function attrNullNS() {
- this.removeAttributeNS(name.space, name.local);
- }
- function attrConstant() {
- this.setAttribute(name, value);
- }
- function attrConstantNS() {
- this.setAttributeNS(name.space, name.local, value);
- }
- function attrFunction() {
- var x = value.apply(this, arguments);
- if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
- }
- function attrFunctionNS() {
- var x = value.apply(this, arguments);
- if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
- }
- name = d3.ns.qualify(name);
- return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
- }
- function d3_selection_classedRe(name) {
- return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
- }
- function d3_selection_classed(name, value) {
- function classedConstant() {
- var i = -1;
- while (++i < n) name[i](this, value);
- }
- function classedFunction() {
- var i = -1, x = value.apply(this, arguments);
- while (++i < n) name[i](this, x);
- }
- name = name.trim().split(/\s+/).map(d3_selection_classedName);
- var n = name.length;
- return typeof value === "function" ? classedFunction : classedConstant;
- }
- function d3_selection_classedName(name) {
- var re = d3_selection_classedRe(name);
- return function(node, value) {
- if (c = node.classList) return value ? c.add(name) : c.remove(name);
- var c = node.className, cb = c.baseVal != null, cv = cb ? c.baseVal : c;
- if (value) {
- re.lastIndex = 0;
- if (!re.test(cv)) {
- cv = d3_collapse(cv + " " + name);
- if (cb) c.baseVal = cv; else node.className = cv;
- }
- } else if (cv) {
- cv = d3_collapse(cv.replace(re, " "));
- if (cb) c.baseVal = cv; else node.className = cv;
- }
- };
- }
- function d3_selection_style(name, value, priority) {
- function styleNull() {
- this.style.removeProperty(name);
- }
- function styleConstant() {
- this.style.setProperty(name, value, priority);
- }
- function styleFunction() {
- var x = value.apply(this, arguments);
- if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
- }
- return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
- }
- function d3_selection_property(name, value) {
- function propertyNull() {
- delete this[name];
- }
- function propertyConstant() {
- this[name] = value;
- }
- function propertyFunction() {
- var x = value.apply(this, arguments);
- if (x == null) delete this[name]; else this[name] = x;
- }
- return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
- }
- function d3_selection_dataNode(data) {
- return {
- __data__: data
- };
- }
- function d3_selection_filter(selector) {
- return function() {
- return d3_selectMatches(this, selector);
- };
- }
- function d3_selection_sortComparator(comparator) {
- if (!arguments.length) comparator = d3.ascending;
- return function(a, b) {
- return comparator(a && a.__data__, b && b.__data__);
- };
- }
- function d3_selection_on(type, listener, capture) {
- function onRemove() {
- var wrapper = this[name];
- if (wrapper) {
- this.removeEventListener(type, wrapper, wrapper.$);
- delete this[name];
- }
- }
- function onAdd() {
- function wrapper(e) {
- var o = d3.event;
- d3.event = e;
- args[0] = node.__data__;
- try {
- listener.apply(node, args);
- } finally {
- d3.event = o;
- }
- }
- var node = this, args = arguments;
- onRemove.call(this);
- this.addEventListener(type, this[name] = wrapper, wrapper.$ = capture);
- wrapper._ = listener;
- }
- var name = "__on" + type, i = type.indexOf(".");
- if (i > 0) type = type.substring(0, i);
- return listener ? onAdd : onRemove;
- }
- function d3_selection_each(groups, callback) {
- for (var j = 0, m = groups.length; j < m; j++) {
- for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
- if (node = group[i]) callback(node, i, j);
- }
- }
- return groups;
- }
- function d3_selection_enter(selection) {
- d3_arraySubclass(selection, d3_selection_enterPrototype);
- return selection;
- }
- function d3_transition(groups, id, time) {
- d3_arraySubclass(groups, d3_transitionPrototype);
- var tweens = new d3_Map, event = d3.dispatch("start", "end"), ease = d3_transitionEase;
- groups.id = id;
- groups.time = time;
- groups.tween = function(name, tween) {
- if (arguments.length < 2) return tweens.get(name);
- if (tween == null) tweens.remove(name); else tweens.set(name, tween);
- return groups;
- };
- groups.ease = function(value) {
- if (!arguments.length) return ease;
- ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments);
- return groups;
- };
- groups.each = function(type, listener) {
- if (arguments.length < 2) return d3_transition_each.call(groups, type);
- event.on(type, listener);
- return groups;
- };
- d3.timer(function(elapsed) {
- return d3_selection_each(groups, function(node, i, j) {
- function start(elapsed) {
- if (lock.active > id) return stop();
- lock.active = id;
- tweens.forEach(function(key, value) {
- if (value = value.call(node, d, i)) {
- tweened.push(value);
- }
- });
- event.start.call(node, d, i);
- if (!tick(elapsed)) d3.timer(tick, 0, time);
- return 1;
- }
- function tick(elapsed) {
- if (lock.active !== id) return stop();
- var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
- while (n > 0) {
- tweened[--n].call(node, e);
- }
- if (t >= 1) {
- stop();
- d3_transitionId = id;
- event.end.call(node, d, i);
- d3_transitionId = 0;
- return 1;
- }
- }
- function stop() {
- if (!--lock.count) delete node.__transition__;
- return 1;
- }
- var tweened = [], delay = node.delay, duration = node.duration, lock = (node = node.node).__transition__ || (node.__transition__ = {
- active: 0,
- count: 0
- }), d = node.__data__;
- ++lock.count;
- delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time);
- });
- }, 0, time);
- return groups;
- }
- function d3_transition_each(callback) {
- var id = d3_transitionId, ease = d3_transitionEase, delay = d3_transitionDelay, duration = d3_transitionDuration;
- d3_transitionId = this.id;
- d3_transitionEase = this.ease();
- d3_selection_each(this, function(node, i, j) {
- d3_transitionDelay = node.delay;
- d3_transitionDuration = node.duration;
- callback.call(node = node.node, node.__data__, i, j);
- });
- d3_transitionId = id;
- d3_transitionEase = ease;
- d3_transitionDelay = delay;
- d3_transitionDuration = duration;
- return this;
- }
- function d3_tweenNull(d, i, a) {
- return a != "" && d3_tweenRemove;
- }
- function d3_tweenByName(b, name) {
- return d3.tween(b, d3_interpolateByName(name));
- }
- function d3_timer_step() {
- var elapsed, now = Date.now(), t1 = d3_timer_queue;
- while (t1) {
- elapsed = now - t1.then;
- if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
- t1 = t1.next;
- }
- var delay = d3_timer_flush() - now;
- if (delay > 24) {
- if (isFinite(delay)) {
- clearTimeout(d3_timer_timeout);
- d3_timer_timeout = setTimeout(d3_timer_step, delay);
- }
- d3_timer_interval = 0;
- } else {
- d3_timer_interval = 1;
- d3_timer_frame(d3_timer_step);
- }
- }
- function d3_timer_flush() {
- var t0 = null, t1 = d3_timer_queue, then = Infinity;
- while (t1) {
- if (t1.flush) {
- t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
- } else {
- then = Math.min(then, t1.then + t1.delay);
- t1 = (t0 = t1).next;
- }
- }
- return then;
- }
- function d3_mousePoint(container, e) {
- var svg = container.ownerSVGElement || container;
- if (svg.createSVGPoint) {
- var point = svg.createSVGPoint();
- if (d3_mouse_bug44083 < 0 && (window.scrollX || window.scrollY)) {
- svg = d3.select(document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
- var ctm = svg[0][0].getScreenCTM();
- d3_mouse_bug44083 = !(ctm.f || ctm.e);
- svg.remove();
- }
- if (d3_mouse_bug44083) {
- point.x = e.pageX;
- point.y = e.pageY;
- } else {
- point.x = e.clientX;
- point.y = e.clientY;
- }
- point = point.matrixTransform(container.getScreenCTM().inverse());
- return [ point.x, point.y ];
- }
- var rect = container.getBoundingClientRect();
- return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
- }
- function d3_noop() {}
- function d3_scaleExtent(domain) {
- var start = domain[0], stop = domain[domain.length - 1];
- return start < stop ? [ start, stop ] : [ stop, start ];
- }
- function d3_scaleRange(scale) {
- return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
- }
- function d3_scale_nice(domain, nice) {
- var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
- if (x1 < x0) {
- dx = i0, i0 = i1, i1 = dx;
- dx = x0, x0 = x1, x1 = dx;
- }
- if (nice = nice(x1 - x0)) {
- domain[i0] = nice.floor(x0);
- domain[i1] = nice.ceil(x1);
- }
- return domain;
- }
- function d3_scale_niceDefault() {
- return Math;
- }
- function d3_scale_linear(domain, range, interpolate, clamp) {
- function rescale() {
- var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
- output = linear(domain, range, uninterpolate, interpolate);
- input = linear(range, domain, uninterpolate, d3.interpolate);
- return scale;
- }
- function scale(x) {
- return output(x);
- }
- var output, input;
- scale.invert = function(y) {
- return input(y);
- };
- scale.domain = function(x) {
- if (!arguments.length) return domain;
- domain = x.map(Number);
- return rescale();
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- return rescale();
- };
- scale.rangeRound = function(x) {
- return scale.range(x).interpolate(d3.interpolateRound);
- };
- scale.clamp = function(x) {
- if (!arguments.length) return clamp;
- clamp = x;
- return rescale();
- };
- scale.interpolate = function(x) {
- if (!arguments.length) return interpolate;
- interpolate = x;
- return rescale();
- };
- scale.ticks = function(m) {
- return d3_scale_linearTicks(domain, m);
- };
- scale.tickFormat = function(m) {
- return d3_scale_linearTickFormat(domain, m);
- };
- scale.nice = function() {
- d3_scale_nice(domain, d3_scale_linearNice);
- return rescale();
- };
- scale.copy = function() {
- return d3_scale_linear(domain, range, interpolate, clamp);
- };
- return rescale();
- }
- function d3_scale_linearRebind(scale, linear) {
- return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
- }
- function d3_scale_linearNice(dx) {
- dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
- return dx && {
- floor: function(x) {
- return Math.floor(x / dx) * dx;
- },
- ceil: function(x) {
- return Math.ceil(x / dx) * dx;
- }
- };
- }
- function d3_scale_linearTickRange(domain, m) {
- var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
- extent[0] = Math.ceil(extent[0] / step) * step;
- extent[1] = Math.floor(extent[1] / step) * step + step * .5;
- extent[2] = step;
- return extent;
- }
- function d3_scale_linearTicks(domain, m) {
- return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
- }
- function d3_scale_linearTickFormat(domain, m) {
- return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
- }
- function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
- var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
- return function(x) {
- return i(u(x));
- };
- }
- function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
- var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
- if (domain[k] < domain[0]) {
- domain = domain.slice().reverse();
- range = range.slice().reverse();
- }
- while (++j <= k) {
- u.push(uninterpolate(domain[j - 1], domain[j]));
- i.push(interpolate(range[j - 1], range[j]));
- }
- return function(x) {
- var j = d3.bisect(domain, x, 1, k) - 1;
- return i[j](u[j](x));
- };
- }
- function d3_scale_log(linear, log) {
- function scale(x) {
- return linear(log(x));
- }
- var pow = log.pow;
- scale.invert = function(x) {
- return pow(linear.invert(x));
- };
- scale.domain = function(x) {
- if (!arguments.length) return linear.domain().map(pow);
- log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
- pow = log.pow;
- linear.domain(x.map(log));
- return scale;
- };
- scale.nice = function() {
- linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
- return scale;
- };
- scale.ticks = function() {
- var extent = d3_scaleExtent(linear.domain()), ticks = [];
- if (extent.every(isFinite)) {
- var i = Math.floor(extent[0]), j = Math.ceil(extent[1]), u = pow(extent[0]), v = pow(extent[1]);
- if (log === d3_scale_logn) {
- ticks.push(pow(i));
- for (; i++ < j; ) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
- } else {
- for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
- ticks.push(pow(i));
- }
- for (i = 0; ticks[i] < u; i++) {}
- for (j = ticks.length; ticks[j - 1] > v; j--) {}
- ticks = ticks.slice(i, j);
- }
- return ticks;
- };
- scale.tickFormat = function(n, format) {
- if (arguments.length < 2) format = d3_scale_logFormat;
- if (arguments.length < 1) return format;
- var k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12, Math.floor) : (e = 1e-12, Math.ceil), e;
- return function(d) {
- return d / pow(f(log(d) + e)) <= k ? format(d) : "";
- };
- };
- scale.copy = function() {
- return d3_scale_log(linear.copy(), log);
- };
- return d3_scale_linearRebind(scale, linear);
- }
- function d3_scale_logp(x) {
- return Math.log(x < 0 ? 0 : x) / Math.LN10;
- }
- function d3_scale_logn(x) {
- return -Math.log(x > 0 ? 0 : -x) / Math.LN10;
- }
- function d3_scale_pow(linear, exponent) {
- function scale(x) {
- return linear(powp(x));
- }
- var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
- scale.invert = function(x) {
- return powb(linear.invert(x));
- };
- scale.domain = function(x) {
- if (!arguments.length) return linear.domain().map(powb);
- linear.domain(x.map(powp));
- return scale;
- };
- scale.ticks = function(m) {
- return d3_scale_linearTicks(scale.domain(), m);
- };
- scale.tickFormat = function(m) {
- return d3_scale_linearTickFormat(scale.domain(), m);
- };
- scale.nice = function() {
- return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
- };
- scale.exponent = function(x) {
- if (!arguments.length) return exponent;
- var domain = scale.domain();
- powp = d3_scale_powPow(exponent = x);
- powb = d3_scale_powPow(1 / exponent);
- return scale.domain(domain);
- };
- scale.copy = function() {
- return d3_scale_pow(linear.copy(), exponent);
- };
- return d3_scale_linearRebind(scale, linear);
- }
- function d3_scale_powPow(e) {
- return function(x) {
- return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
- };
- }
- function d3_scale_ordinal(domain, ranger) {
- function scale(x) {
- return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
- }
- function steps(start, step) {
- return d3.range(domain.length).map(function(i) {
- return start + step * i;
- });
- }
- var index, range, rangeBand;
- scale.domain = function(x) {
- if (!arguments.length) return domain;
- domain = [];
- index = new d3_Map;
- var i = -1, n = x.length, xi;
- while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
- return scale[ranger.t].apply(scale, ranger.a);
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- rangeBand = 0;
- ranger = {
- t: "range",
- a: arguments
- };
- return scale;
- };
- scale.rangePoints = function(x, padding) {
- if (arguments.length < 2) padding = 0;
- var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
- range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
- rangeBand = 0;
- ranger = {
- t: "rangePoints",
- a: arguments
- };
- return scale;
- };
- scale.rangeBands = function(x, padding, outerPadding) {
- if (arguments.length < 2) padding = 0;
- if (arguments.length < 3) outerPadding = padding;
- var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
- range = steps(start + step * outerPadding, step);
- if (reverse) range.reverse();
- rangeBand = step * (1 - padding);
- ranger = {
- t: "rangeBands",
- a: arguments
- };
- return scale;
- };
- scale.rangeRoundBands = function(x, padding, outerPadding) {
- if (arguments.length < 2) padding = 0;
- if (arguments.length < 3) outerPadding = padding;
- var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
- range = steps(start + Math.round(error / 2), step);
- if (reverse) range.reverse();
- rangeBand = Math.round(step * (1 - padding));
- ranger = {
- t: "rangeRoundBands",
- a: arguments
- };
- return scale;
- };
- scale.rangeBand = function() {
- return rangeBand;
- };
- scale.rangeExtent = function() {
- return d3_scaleExtent(ranger.a[0]);
- };
- scale.copy = function() {
- return d3_scale_ordinal(domain, ranger);
- };
- return scale.domain(domain);
- }
- function d3_scale_quantile(domain, range) {
- function rescale() {
- var k = 0, n = domain.length, q = range.length;
- thresholds = [];
- while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
- return scale;
- }
- function scale(x) {
- if (isNaN(x = +x)) return NaN;
- return range[d3.bisect(thresholds, x)];
- }
- var thresholds;
- scale.domain = function(x) {
- if (!arguments.length) return domain;
- domain = x.filter(function(d) {
- return !isNaN(d);
- }).sort(d3.ascending);
- return rescale();
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- return rescale();
- };
- scale.quantiles = function() {
- return thresholds;
- };
- scale.copy = function() {
- return d3_scale_quantile(domain, range);
- };
- return rescale();
- }
- function d3_scale_quantize(x0, x1, range) {
- function scale(x) {
- return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
- }
- function rescale() {
- kx = range.length / (x1 - x0);
- i = range.length - 1;
- return scale;
- }
- var kx, i;
- scale.domain = function(x) {
- if (!arguments.length) return [ x0, x1 ];
- x0 = +x[0];
- x1 = +x[x.length - 1];
- return rescale();
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- return rescale();
- };
- scale.copy = function() {
- return d3_scale_quantize(x0, x1, range);
- };
- return rescale();
- }
- function d3_scale_threshold(domain, range) {
- function scale(x) {
- return range[d3.bisect(domain, x)];
- }
- scale.domain = function(_) {
- if (!arguments.length) return domain;
- domain = _;
- return scale;
- };
- scale.range = function(_) {
- if (!arguments.length) return range;
- range = _;
- return scale;
- };
- scale.copy = function() {
- return d3_scale_threshold(domain, range);
- };
- return scale;
- }
- function d3_scale_identity(domain) {
- function identity(x) {
- return +x;
- }
- identity.invert = identity;
- identity.domain = identity.range = function(x) {
- if (!arguments.length) return domain;
- domain = x.map(identity);
- return identity;
- };
- identity.ticks = function(m) {
- return d3_scale_linearTicks(domain, m);
- };
- identity.tickFormat = function(m) {
- return d3_scale_linearTickFormat(domain, m);
- };
- identity.copy = function() {
- return d3_scale_identity(domain);
- };
- return identity;
- }
- function d3_svg_arcInnerRadius(d) {
- return d.innerRadius;
- }
- function d3_svg_arcOuterRadius(d) {
- return d.outerRadius;
- }
- function d3_svg_arcStartAngle(d) {
- return d.startAngle;
- }
- function d3_svg_arcEndAngle(d) {
- return d.endAngle;
- }
- function d3_svg_line(projection) {
- function line(data) {
- function segment() {
- segments.push("M", interpolate(projection(points), tension));
- }
- var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
- while (++i < n) {
- if (defined.call(this, d = data[i], i)) {
- points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
- } else if (points.length) {
- segment();
- points = [];
- }
- }
- if (points.length) segment();
- return segments.length ? segments.join("") : null;
- }
- var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
- line.x = function(_) {
- if (!arguments.length) return x;
- x = _;
- return line;
- };
- line.y = function(_) {
- if (!arguments.length) return y;
- y = _;
- return line;
- };
- line.defined = function(_) {
- if (!arguments.length) return defined;
- defined = _;
- return line;
- };
- line.interpolate = function(_) {
- if (!arguments.length) return interpolateKey;
- if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
- return line;
- };
- line.tension = function(_) {
- if (!arguments.length) return tension;
- tension = _;
- return line;
- };
- return line;
- }
- function d3_svg_lineX(d) {
- return d[0];
- }
- function d3_svg_lineY(d) {
- return d[1];
- }
- function d3_svg_lineLinear(points) {
- return points.join("L");
- }
- function d3_svg_lineLinearClosed(points) {
- return d3_svg_lineLinear(points) + "Z";
- }
- function d3_svg_lineStepBefore(points) {
- var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
- while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
- return path.join("");
- }
- function d3_svg_lineStepAfter(points) {
- var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
- while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
- return path.join("");
- }
- function d3_svg_lineCardinalOpen(points, tension) {
- return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
- }
- function d3_svg_lineCardinalClosed(points, tension) {
- return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
- }
- function d3_svg_lineCardinal(points, tension, closed) {
- return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
- }
- function d3_svg_lineHermite(points, tangents) {
- if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
- return d3_svg_lineLinear(points);
- }
- var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
- if (quad) {
- path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
- p0 = points[1];
- pi = 2;
- }
- if (tangents.length > 1) {
- t = tangents[1];
- p = points[pi];
- pi++;
- path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
- for (var i = 2; i < tangents.length; i++, pi++) {
- p = points[pi];
- t = tangents[i];
- path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
- }
- }
- if (quad) {
- var lp = points[pi];
- path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
- }
- return path;
- }
- function d3_svg_lineCardinalTangents(points, tension) {
- var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
- while (++i < n) {
- p0 = p1;
- p1 = p2;
- p2 = points[i];
- tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
- }
- return tangents;
- }
- function d3_svg_lineBasis(points) {
- if (points.length < 3) return d3_svg_lineLinear(points);
- var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
- d3_svg_lineBasisBezier(path, px, py);
- while (++i < n) {
- pi = points[i];
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- i = -1;
- while (++i < 2) {
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- return path.join("");
- }
- function d3_svg_lineBasisOpen(points) {
- if (points.length < 4) return d3_svg_lineLinear(points);
- var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
- while (++i < 3) {
- pi = points[i];
- px.push(pi[0]);
- py.push(pi[1]);
- }
- path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
- --i;
- while (++i < n) {
- pi = points[i];
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- return path.join("");
- }
- function d3_svg_lineBasisClosed(points) {
- var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
- while (++i < 4) {
- pi = points[i % n];
- px.push(pi[0]);
- py.push(pi[1]);
- }
- path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
- --i;
- while (++i < m) {
- pi = points[i % n];
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- return path.join("");
- }
- function d3_svg_lineBundle(points, tension) {
- var n = points.length - 1;
- if (n) {
- var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
- while (++i <= n) {
- p = points[i];
- t = i / n;
- p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
- p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
- }
- }
- return d3_svg_lineBasis(points);
- }
- function d3_svg_lineDot4(a, b) {
- return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
- }
- function d3_svg_lineBasisBezier(path, x, y) {
- path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
- }
- function d3_svg_lineSlope(p0, p1) {
- return (p1[1] - p0[1]) / (p1[0] - p0[0]);
- }
- function d3_svg_lineFiniteDifferences(points) {
- var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
- while (++i < j) {
- m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
- }
- m[i] = d;
- return m;
- }
- function d3_svg_lineMonotoneTangents(points) {
- var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
- while (++i < j) {
- d = d3_svg_lineSlope(points[i], points[i + 1]);
- if (Math.abs(d) < 1e-6) {
- m[i] = m[i + 1] = 0;
- } else {
- a = m[i] / d;
- b = m[i + 1] / d;
- s = a * a + b * b;
- if (s > 9) {
- s = d * 3 / Math.sqrt(s);
- m[i] = s * a;
- m[i + 1] = s * b;
- }
- }
- }
- i = -1;
- while (++i <= j) {
- s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
- tangents.push([ s || 0, m[i] * s || 0 ]);
- }
- return tangents;
- }
- function d3_svg_lineMonotone(points) {
- return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
- }
- function d3_svg_lineRadial(points) {
- var point, i = -1, n = points.length, r, a;
- while (++i < n) {
- point = points[i];
- r = point[0];
- a = point[1] + d3_svg_arcOffset;
- point[0] = r * Math.cos(a);
- point[1] = r * Math.sin(a);
- }
- return points;
- }
- function d3_svg_area(projection) {
- function area(data) {
- function segment() {
- segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
- }
- var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
- return x;
- } : d3_functor(x1), fy1 = y0 === y1 ? function() {
- return y;
- } : d3_functor(y1), x, y;
- while (++i < n) {
- if (defined.call(this, d = data[i], i)) {
- points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
- points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
- } else if (points0.length) {
- segment();
- points0 = [];
- points1 = [];
- }
- }
- if (points0.length) segment();
- return segments.length ? segments.join("") : null;
- }
- var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
- area.x = function(_) {
- if (!arguments.length) return x1;
- x0 = x1 = _;
- return area;
- };
- area.x0 = function(_) {
- if (!arguments.length) return x0;
- x0 = _;
- return area;
- };
- area.x1 = function(_) {
- if (!arguments.length) return x1;
- x1 = _;
- return area;
- };
- area.y = function(_) {
- if (!arguments.length) return y1;
- y0 = y1 = _;
- return area;
- };
- area.y0 = function(_) {
- if (!arguments.length) return y0;
- y0 = _;
- return area;
- };
- area.y1 = function(_) {
- if (!arguments.length) return y1;
- y1 = _;
- return area;
- };
- area.defined = function(_) {
- if (!arguments.length) return defined;
- defined = _;
- return area;
- };
- area.interpolate = function(_) {
- if (!arguments.length) return interpolateKey;
- if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
- interpolateReverse = interpolate.reverse || interpolate;
- L = interpolate.closed ? "M" : "L";
- return area;
- };
- area.tension = function(_) {
- if (!arguments.length) return tension;
- tension = _;
- return area;
- };
- return area;
- }
- function d3_svg_chordSource(d) {
- return d.source;
- }
- function d3_svg_chordTarget(d) {
- return d.target;
- }
- function d3_svg_chordRadius(d) {
- return d.radius;
- }
- function d3_svg_chordStartAngle(d) {
- return d.startAngle;
- }
- function d3_svg_chordEndAngle(d) {
- return d.endAngle;
- }
- function d3_svg_diagonalProjection(d) {
- return [ d.x, d.y ];
- }
- function d3_svg_diagonalRadialProjection(projection) {
- return function() {
- var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
- return [ r * Math.cos(a), r * Math.sin(a) ];
- };
- }
- function d3_svg_symbolSize() {
- return 64;
- }
- function d3_svg_symbolType() {
- return "circle";
- }
- function d3_svg_symbolCircle(size) {
- var r = Math.sqrt(size / Math.PI);
- return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
- }
- function d3_svg_axisX(selection, x) {
- selection.attr("transform", function(d) {
- return "translate(" + x(d) + ",0)";
- });
- }
- function d3_svg_axisY(selection, y) {
- selection.attr("transform", function(d) {
- return "translate(0," + y(d) + ")";
- });
- }
- function d3_svg_axisSubdivide(scale, ticks, m) {
- subticks = [];
- if (m && ticks.length > 1) {
- var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
- while (++i < n) {
- for (j = m; --j > 0; ) {
- if ((v = +ticks[i] - j * d) >= extent[0]) {
- subticks.push(v);
- }
- }
- }
- for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
- subticks.push(v);
- }
- }
- return subticks;
- }
- function d3_behavior_zoomDelta() {
- if (!d3_behavior_zoomDiv) {
- d3_behavior_zoomDiv = d3.select("body").append("div").style("visibility", "hidden").style("top", 0).style("height", 0).style("width", 0).style("overflow-y", "scroll").append("div").style("height", "2000px").node().parentNode;
- }
- var e = d3.event, delta;
- try {
- d3_behavior_zoomDiv.scrollTop = 1e3;
- d3_behavior_zoomDiv.dispatchEvent(e);
- delta = 1e3 - d3_behavior_zoomDiv.scrollTop;
- } catch (error) {
- delta = e.wheelDelta || -e.detail * 5;
- }
- return delta;
- }
- function d3_layout_bundlePath(link) {
- var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
- while (start !== lca) {
- start = start.parent;
- points.push(start);
- }
- var k = points.length;
- while (end !== lca) {
- points.splice(k, 0, end);
- end = end.parent;
- }
- return points;
- }
- function d3_layout_bundleAncestors(node) {
- var ancestors = [], parent = node.parent;
- while (parent != null) {
- ancestors.push(node);
- node = parent;
- parent = parent.parent;
- }
- ancestors.push(node);
- return ancestors;
- }
- function d3_layout_bundleLeastCommonAncestor(a, b) {
- if (a === b) return a;
- var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
- while (aNode === bNode) {
- sharedNode = aNode;
- aNode = aNodes.pop();
- bNode = bNodes.pop();
- }
- return sharedNode;
- }
- function d3_layout_forceDragstart(d) {
- d.fixed |= 2;
- }
- function d3_layout_forceDragend(d) {
- d.fixed &= 1;
- }
- function d3_layout_forceMouseover(d) {
- d.fixed |= 4;
- }
- function d3_layout_forceMouseout(d) {
- d.fixed &= 3;
- }
- function d3_layout_forceAccumulate(quad, alpha, charges) {
- var cx = 0, cy = 0;
- quad.charge = 0;
- if (!quad.leaf) {
- var nodes = quad.nodes, n = nodes.length, i = -1, c;
- while (++i < n) {
- c = nodes[i];
- if (c == null) continue;
- d3_layout_forceAccumulate(c, alpha, charges);
- quad.charge += c.charge;
- cx += c.charge * c.cx;
- cy += c.charge * c.cy;
- }
- }
- if (quad.point) {
- if (!quad.leaf) {
- quad.point.x += Math.random() - .5;
- quad.point.y += Math.random() - .5;
- }
- var k = alpha * charges[quad.point.index];
- quad.charge += quad.pointCharge = k;
- cx += k * quad.point.x;
- cy += k * quad.point.y;
- }
- quad.cx = cx / quad.charge;
- quad.cy = cy / quad.charge;
- }
- function d3_layout_forceLinkDistance(link) {
- return 20;
- }
- function d3_layout_forceLinkStrength(link) {
- return 1;
- }
- function d3_layout_stackX(d) {
- return d.x;
- }
- function d3_layout_stackY(d) {
- return d.y;
- }
- function d3_layout_stackOut(d, y0, y) {
- d.y0 = y0;
- d.y = y;
- }
- function d3_layout_stackOrderDefault(data) {
- return d3.range(data.length);
- }
- function d3_layout_stackOffsetZero(data) {
- var j = -1, m = data[0].length, y0 = [];
- while (++j < m) y0[j] = 0;
- return y0;
- }
- function d3_layout_stackMaxIndex(array) {
- var i = 1, j = 0, v = array[0][1], k, n = array.length;
- for (; i < n; ++i) {
- if ((k = array[i][1]) > v) {
- j = i;
- v = k;
- }
- }
- return j;
- }
- function d3_layout_stackReduceSum(d) {
- return d.reduce(d3_layout_stackSum, 0);
- }
- function d3_layout_stackSum(p, d) {
- return p + d[1];
- }
- function d3_layout_histogramBinSturges(range, values) {
- return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
- }
- function d3_layout_histogramBinFixed(range, n) {
- var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
- while (++x <= n) f[x] = m * x + b;
- return f;
- }
- function d3_layout_histogramRange(values) {
- return [ d3.min(values), d3.max(values) ];
- }
- function d3_layout_hierarchyRebind(object, hierarchy) {
- d3.rebind(object, hierarchy, "sort", "children", "value");
- object.links = d3_layout_hierarchyLinks;
- object.nodes = function(d) {
- d3_layout_hierarchyInline = true;
- return (object.nodes = object)(d);
- };
- return object;
- }
- function d3_layout_hierarchyChildren(d) {
- return d.children;
- }
- function d3_layout_hierarchyValue(d) {
- return d.value;
- }
- function d3_layout_hierarchySort(a, b) {
- return b.value - a.value;
- }
- function d3_layout_hierarchyLinks(nodes) {
- return d3.merge(nodes.map(function(parent) {
- return (parent.children || []).map(function(child) {
- return {
- source: parent,
- target: child
- };
- });
- }));
- }
- function d3_layout_packSort(a, b) {
- return a.value - b.value;
- }
- function d3_layout_packInsert(a, b) {
- var c = a._pack_next;
- a._pack_next = b;
- b._pack_prev = a;
- b._pack_next = c;
- c._pack_prev = b;
- }
- function d3_layout_packSplice(a, b) {
- a._pack_next = b;
- b._pack_prev = a;
- }
- function d3_layout_packIntersects(a, b) {
- var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
- return dr * dr - dx * dx - dy * dy > .001;
- }
- function d3_layout_packSiblings(node) {
- function bound(node) {
- xMin = Math.min(node.x - node.r, xMin);
- xMax = Math.max(node.x + node.r, xMax);
- yMin = Math.min(node.y - node.r, yMin);
- yMax = Math.max(node.y + node.r, yMax);
- }
- if (!(nodes = node.children) || !(n = nodes.length)) return;
- var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
- nodes.forEach(d3_layout_packLink);
- a = nodes[0];
- a.x = -a.r;
- a.y = 0;
- bound(a);
- if (n > 1) {
- b = nodes[1];
- b.x = b.r;
- b.y = 0;
- bound(b);
- if (n > 2) {
- c = nodes[2];
- d3_layout_packPlace(a, b, c);
- bound(c);
- d3_layout_packInsert(a, c);
- a._pack_prev = c;
- d3_layout_packInsert(c, b);
- b = a._pack_next;
- for (i = 3; i < n; i++) {
- d3_layout_packPlace(a, b, c = nodes[i]);
- var isect = 0, s1 = 1, s2 = 1;
- for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
- if (d3_layout_packIntersects(j, c)) {
- isect = 1;
- break;
- }
- }
- if (isect == 1) {
- for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
- if (d3_layout_packIntersects(k, c)) {
- break;
- }
- }
- }
- if (isect) {
- if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
- i--;
- } else {
- d3_layout_packInsert(a, c);
- b = c;
- bound(c);
- }
- }
- }
- }
- var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
- for (i = 0; i < n; i++) {
- c = nodes[i];
- c.x -= cx;
- c.y -= cy;
- cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
- }
- node.r = cr;
- nodes.forEach(d3_layout_packUnlink);
- }
- function d3_layout_packLink(node) {
- node._pack_next = node._pack_prev = node;
- }
- function d3_layout_packUnlink(node) {
- delete node._pack_next;
- delete node._pack_prev;
- }
- function d3_layout_packTransform(node, x, y, k) {
- var children = node.children;
- node.x = x += k * node.x;
- node.y = y += k * node.y;
- node.r *= k;
- if (children) {
- var i = -1, n = children.length;
- while (++i < n) d3_layout_packTransform(children[i], x, y, k);
- }
- }
- function d3_layout_packPlace(a, b, c) {
- var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
- if (db && (dx || dy)) {
- var da = b.r + c.r, dc = dx * dx + dy * dy;
- da *= da;
- db *= db;
- var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
- c.x = a.x + x * dx + y * dy;
- c.y = a.y + x * dy - y * dx;
- } else {
- c.x = a.x + db;
- c.y = a.y;
- }
- }
- function d3_layout_clusterY(children) {
- return 1 + d3.max(children, function(child) {
- return child.y;
- });
- }
- function d3_layout_clusterX(children) {
- return children.reduce(function(x, child) {
- return x + child.x;
- }, 0) / children.length;
- }
- function d3_layout_clusterLeft(node) {
- var children = node.children;
- return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
- }
- function d3_layout_clusterRight(node) {
- var children = node.children, n;
- return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
- }
- function d3_layout_treeSeparation(a, b) {
- return a.parent == b.parent ? 1 : 2;
- }
- function d3_layout_treeLeft(node) {
- var children = node.children;
- return children && children.length ? children[0] : node._tree.thread;
- }
- function d3_layout_treeRight(node) {
- var children = node.children, n;
- return children && (n = children.length) ? children[n - 1] : node._tree.thread;
- }
- function d3_layout_treeSearch(node, compare) {
- var children = node.children;
- if (children && (n = children.length)) {
- var child, n, i = -1;
- while (++i < n) {
- if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
- node = child;
- }
- }
- }
- return node;
- }
- function d3_layout_treeRightmost(a, b) {
- return a.x - b.x;
- }
- function d3_layout_treeLeftmost(a, b) {
- return b.x - a.x;
- }
- function d3_layout_treeDeepest(a, b) {
- return a.depth - b.depth;
- }
- function d3_layout_treeVisitAfter(node, callback) {
- function visit(node, previousSibling) {
- var children = node.children;
- if (children && (n = children.length)) {
- var child, previousChild = null, i = -1, n;
- while (++i < n) {
- child = children[i];
- visit(child, previousChild);
- previousChild = child;
- }
- }
- callback(node, previousSibling);
- }
- visit(node, null);
- }
- function d3_layout_treeShift(node) {
- var shift = 0, change = 0, children = node.children, i = children.length, child;
- while (--i >= 0) {
- child = children[i]._tree;
- child.prelim += shift;
- child.mod += shift;
- shift += child.shift + (change += child.change);
- }
- }
- function d3_layout_treeMove(ancestor, node, shift) {
- ancestor = ancestor._tree;
- node = node._tree;
- var change = shift / (node.number - ancestor.number);
- ancestor.change += change;
- node.change -= change;
- node.shift += shift;
- node.prelim += shift;
- node.mod += shift;
- }
- function d3_layout_treeAncestor(vim, node, ancestor) {
- return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
- }
- function d3_layout_treemapPadNull(node) {
- return {
- x: node.x,
- y: node.y,
- dx: node.dx,
- dy: node.dy
- };
- }
- function d3_layout_treemapPad(node, padding) {
- var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
- if (dx < 0) {
- x += dx / 2;
- dx = 0;
- }
- if (dy < 0) {
- y += dy / 2;
- dy = 0;
- }
- return {
- x: x,
- y: y,
- dx: dx,
- dy: dy
- };
- }
- function d3_dsv(delimiter, mimeType) {
- function dsv(url, callback) {
- d3.text(url, mimeType, function(text) {
- callback(text && dsv.parse(text));
- });
- }
- function formatRow(row) {
- return row.map(formatValue).join(delimiter);
- }
- function formatValue(text) {
- return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
- }
- var reParse = new RegExp("\r\n|[" + delimiter + "\r\n]", "g"), reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
- dsv.parse = function(text) {
- var header;
- return dsv.parseRows(text, function(row, i) {
- if (i) {
- var o = {}, j = -1, m = header.length;
- while (++j < m) o[header[j]] = row[j];
- return o;
- } else {
- header = row;
- return null;
- }
- });
- };
- dsv.parseRows = function(text, f) {
- function token() {
- if (reParse.lastIndex >= text.length) return EOF;
- if (eol) {
- eol = false;
- return EOL;
- }
- var j = reParse.lastIndex;
- if (text.charCodeAt(j) === 34) {
- var i = j;
- while (i++ < text.length) {
- if (text.charCodeAt(i) === 34) {
- if (text.charCodeAt(i + 1) !== 34) break;
- i++;
- }
- }
- reParse.lastIndex = i + 2;
- var c = text.charCodeAt(i + 1);
- if (c === 13) {
- eol = true;
- if (text.charCodeAt(i + 2) === 10) reParse.lastIndex++;
- } else if (c === 10) {
- eol = true;
- }
- return text.substring(j + 1, i).replace(/""/g, '"');
- }
- var m = reParse.exec(text);
- if (m) {
- eol = m[0].charCodeAt(0) !== delimiterCode;
- return text.substring(j, m.index);
- }
- reParse.lastIndex = text.length;
- return text.substring(j);
- }
- var EOL = {}, EOF = {}, rows = [], n = 0, t, eol;
- reParse.lastIndex = 0;
- while ((t = token()) !== EOF) {
- var a = [];
- while (t !== EOL && t !== EOF) {
- a.push(t);
- t = token();
- }
- if (f && !(a = f(a, n++))) continue;
- rows.push(a);
- }
- return rows;
- };
- dsv.format = function(rows) {
- return rows.map(formatRow).join("\n");
- };
- return dsv;
- }
- function d3_geo_type(types, defaultValue) {
- return function(object) {
- return object && types.hasOwnProperty(object.type) ? types[object.type](object) : defaultValue;
- };
- }
- function d3_path_circle(radius) {
- return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z";
- }
- function d3_geo_bounds(o, f) {
- if (d3_geo_boundsTypes.hasOwnProperty(o.type)) d3_geo_boundsTypes[o.type](o, f);
- }
- function d3_geo_boundsFeature(o, f) {
- d3_geo_bounds(o.geometry, f);
- }
- function d3_geo_boundsFeatureCollection(o, f) {
- for (var a = o.features, i = 0, n = a.length; i < n; i++) {
- d3_geo_bounds(a[i].geometry, f);
- }
- }
- function d3_geo_boundsGeometryCollection(o, f) {
- for (var a = o.geometries, i = 0, n = a.length; i < n; i++) {
- d3_geo_bounds(a[i], f);
- }
- }
- function d3_geo_boundsLineString(o, f) {
- for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
- f.apply(null, a[i]);
- }
- }
- function d3_geo_boundsMultiLineString(o, f) {
- for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
- for (var b = a[i], j = 0, m = b.length; j < m; j++) {
- f.apply(null, b[j]);
- }
- }
- }
- function d3_geo_boundsMultiPolygon(o, f) {
- for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
- for (var b = a[i][0], j = 0, m = b.length; j < m; j++) {
- f.apply(null, b[j]);
- }
- }
- }
- function d3_geo_boundsPoint(o, f) {
- f.apply(null, o.coordinates);
- }
- function d3_geo_boundsPolygon(o, f) {
- for (var a = o.coordinates[0], i = 0, n = a.length; i < n; i++) {
- f.apply(null, a[i]);
- }
- }
- function d3_geo_greatArcSource(d) {
- return d.source;
- }
- function d3_geo_greatArcTarget(d) {
- return d.target;
- }
- function d3_geo_greatArcInterpolator() {
- function interpolate(t) {
- var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
- return [ Math.atan2(y, x) / d3_geo_radians, Math.atan2(z, Math.sqrt(x * x + y * y)) / d3_geo_radians ];
- }
- var x0, y0, cy0, sy0, kx0, ky0, x1, y1, cy1, sy1, kx1, ky1, d, k;
- interpolate.distance = function() {
- if (d == null) k = 1 / Math.sin(d = Math.acos(Math.max(-1, Math.min(1, sy0 * sy1 + cy0 * cy1 * Math.cos(x1 - x0)))));
- return d;
- };
- interpolate.source = function(_) {
- var cx0 = Math.cos(x0 = _[0] * d3_geo_radians), sx0 = Math.sin(x0);
- cy0 = Math.cos(y0 = _[1] * d3_geo_radians);
- sy0 = Math.sin(y0);
- kx0 = cy0 * cx0;
- ky0 = cy0 * sx0;
- d = null;
- return interpolate;
- };
- interpolate.target = function(_) {
- var cx1 = Math.cos(x1 = _[0] * d3_geo_radians), sx1 = Math.sin(x1);
- cy1 = Math.cos(y1 = _[1] * d3_geo_radians);
- sy1 = Math.sin(y1);
- kx1 = cy1 * cx1;
- ky1 = cy1 * sx1;
- d = null;
- return interpolate;
- };
- return interpolate;
- }
- function d3_geo_greatArcInterpolate(a, b) {
- var i = d3_geo_greatArcInterpolator().source(a).target(b);
- i.distance();
- return i;
- }
- function d3_geom_contourStart(grid) {
- var x = 0, y = 0;
- while (true) {
- if (grid(x, y)) {
- return [ x, y ];
- }
- if (x === 0) {
- x = y + 1;
- y = 0;
- } else {
- x = x - 1;
- y = y + 1;
- }
- }
- }
- function d3_geom_hullCCW(i1, i2, i3, v) {
- var t, a, b, c, d, e, f;
- t = v[i1];
- a = t[0];
- b = t[1];
- t = v[i2];
- c = t[0];
- d = t[1];
- t = v[i3];
- e = t[0];
- f = t[1];
- return (f - b) * (c - a) - (d - b) * (e - a) > 0;
- }
- function d3_geom_polygonInside(p, a, b) {
- return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
- }
- function d3_geom_polygonIntersect(c, d, a, b) {
- var x1 = c[0], x2 = d[0], x3 = a[0], x4 = b[0], y1 = c[1], y2 = d[1], y3 = a[1], y4 = b[1], x13 = x1 - x3, x21 = x2 - x1, x43 = x4 - x3, y13 = y1 - y3, y21 = y2 - y1, y43 = y4 - y3, ua = (x43 * y13 - y43 * x13) / (y43 * x21 - x43 * y21);
- return [ x1 + ua * x21, y1 + ua * y21 ];
- }
- function d3_voronoi_tessellate(vertices, callback) {
- var Sites = {
- list: vertices.map(function(v, i) {
- return {
- index: i,
- x: v[0],
- y: v[1]
- };
- }).sort(function(a, b) {
- return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
- }),
- bottomSite: null
- };
- var EdgeList = {
- list: [],
- leftEnd: null,
- rightEnd: null,
- init: function() {
- EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
- EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
- EdgeList.leftEnd.r = EdgeList.rightEnd;
- EdgeList.rightEnd.l = EdgeList.leftEnd;
- EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
- },
- createHalfEdge: function(edge, side) {
- return {
- edge: edge,
- side: side,
- vertex: null,
- l: null,
- r: null
- };
- },
- insert: function(lb, he) {
- he.l = lb;
- he.r = lb.r;
- lb.r.l = he;
- lb.r = he;
- },
- leftBound: function(p) {
- var he = EdgeList.leftEnd;
- do {
- he = he.r;
- } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
- he = he.l;
- return he;
- },
- del: function(he) {
- he.l.r = he.r;
- he.r.l = he.l;
- he.edge = null;
- },
- right: function(he) {
- return he.r;
- },
- left: function(he) {
- return he.l;
- },
- leftRegion: function(he) {
- return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
- },
- rightRegion: function(he) {
- return he.edge == null ? Sites.bottomSite : he.edge.region[d3_voronoi_opposite[he.side]];
- }
- };
- var Geom = {
- bisect: function(s1, s2) {
- var newEdge = {
- region: {
- l: s1,
- r: s2
- },
- ep: {
- l: null,
- r: null
- }
- };
- var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
- newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
- if (adx > ady) {
- newEdge.a = 1;
- newEdge.b = dy / dx;
- newEdge.c /= dx;
- } else {
- newEdge.b = 1;
- newEdge.a = dx / dy;
- newEdge.c /= dy;
- }
- return newEdge;
- },
- intersect: function(el1, el2) {
- var e1 = el1.edge, e2 = el2.edge;
- if (!e1 || !e2 || e1.region.r == e2.region.r) {
- return null;
- }
- var d = e1.a * e2.b - e1.b * e2.a;
- if (Math.abs(d) < 1e-10) {
- return null;
- }
- var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
- if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
- el = el1;
- e = e1;
- } else {
- el = el2;
- e = e2;
- }
- var rightOfSite = xint >= e.region.r.x;
- if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
- return null;
- }
- return {
- x: xint,
- y: yint
- };
- },
- rightOf: function(he, p) {
- var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
- if (rightOfSite && he.side === "l") {
- return 1;
- }
- if (!rightOfSite && he.side === "r") {
- return 0;
- }
- if (e.a === 1) {
- var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
- if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
- above = fast = dyp >= e.b * dxp;
- } else {
- above = p.x + p.y * e.b > e.c;
- if (e.b < 0) {
- above = !above;
- }
- if (!above) {
- fast = 1;
- }
- }
- if (!fast) {
- var dxs = topsite.x - e.region.l.x;
- above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
- if (e.b < 0) {
- above = !above;
- }
- }
- } else {
- var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
- above = t1 * t1 > t2 * t2 + t3 * t3;
- }
- return he.side === "l" ? above : !above;
- },
- endPoint: function(edge, side, site) {
- edge.ep[side] = site;
- if (!edge.ep[d3_voronoi_opposite[side]]) return;
- callback(edge);
- },
- distance: function(s, t) {
- var dx = s.x - t.x, dy = s.y - t.y;
- return Math.sqrt(dx * dx + dy * dy);
- }
- };
- var EventQueue = {
- list: [],
- insert: function(he, site, offset) {
- he.vertex = site;
- he.ystar = site.y + offset;
- for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
- var next = list[i];
- if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
- continue;
- } else {
- break;
- }
- }
- list.splice(i, 0, he);
- },
- del: function(he) {
- for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
- ls.splice(i, 1);
- },
- empty: function() {
- return EventQueue.list.length === 0;
- },
- nextEvent: function(he) {
- for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
- if (ls[i] == he) return ls[i + 1];
- }
- return null;
- },
- min: function() {
- var elem = EventQueue.list[0];
- return {
- x: elem.vertex.x,
- y: elem.ystar
- };
- },
- extractMin: function() {
- return EventQueue.list.shift();
- }
- };
- EdgeList.init();
- Sites.bottomSite = Sites.list.shift();
- var newSite = Sites.list.shift(), newIntStar;
- var lbnd, rbnd, llbnd, rrbnd, bisector;
- var bot, top, temp, p, v;
- var e, pm;
- while (true) {
- if (!EventQueue.empty()) {
- newIntStar = EventQueue.min();
- }
- if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
- lbnd = EdgeList.leftBound(newSite);
- rbnd = EdgeList.right(lbnd);
- bot = EdgeList.rightRegion(lbnd);
- e = Geom.bisect(bot, newSite);
- bisector = EdgeList.createHalfEdge(e, "l");
- EdgeList.insert(lbnd, bisector);
- p = Geom.intersect(lbnd, bisector);
- if (p) {
- EventQueue.del(lbnd);
- EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
- }
- lbnd = bisector;
- bisector = EdgeList.createHalfEdge(e, "r");
- EdgeList.insert(lbnd, bisector);
- p = Geom.intersect(bisector, rbnd);
- if (p) {
- EventQueue.insert(bisector, p, Geom.distance(p, newSite));
- }
- newSite = Sites.list.shift();
- } else if (!EventQueue.empty()) {
- lbnd = EventQueue.extractMin();
- llbnd = EdgeList.left(lbnd);
- rbnd = EdgeList.right(lbnd);
- rrbnd = EdgeList.right(rbnd);
- bot = EdgeList.leftRegion(lbnd);
- top = EdgeList.rightRegion(rbnd);
- v = lbnd.vertex;
- Geom.endPoint(lbnd.edge, lbnd.side, v);
- Geom.endPoint(rbnd.edge, rbnd.side, v);
- EdgeList.del(lbnd);
- EventQueue.del(rbnd);
- EdgeList.del(rbnd);
- pm = "l";
- if (bot.y > top.y) {
- temp = bot;
- bot = top;
- top = temp;
- pm = "r";
- }
- e = Geom.bisect(bot, top);
- bisector = EdgeList.createHalfEdge(e, pm);
- EdgeList.insert(llbnd, bisector);
- Geom.endPoint(e, d3_voronoi_opposite[pm], v);
- p = Geom.intersect(llbnd, bisector);
- if (p) {
- EventQueue.del(llbnd);
- EventQueue.insert(llbnd, p, Geom.distance(p, bot));
- }
- p = Geom.intersect(bisector, rrbnd);
- if (p) {
- EventQueue.insert(bisector, p, Geom.distance(p, bot));
- }
- } else {
- break;
- }
- }
- for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
- callback(lbnd.edge);
- }
- }
- function d3_geom_quadtreeNode() {
- return {
- leaf: true,
- nodes: [],
- point: null
- };
- }
- function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
- if (!f(node, x1, y1, x2, y2)) {
- var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
- if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
- if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
- if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
- if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
- }
- }
- function d3_geom_quadtreePoint(p) {
- return {
- x: p[0],
- y: p[1]
- };
- }
- function d3_time_utc() {
- this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
- }
- function d3_time_formatAbbreviate(name) {
- return name.substring(0, 3);
- }
- function d3_time_parse(date, template, string, j) {
- var c, p, i = 0, n = template.length, m = string.length;
- while (i < n) {
- if (j >= m) return -1;
- c = template.charCodeAt(i++);
- if (c == 37) {
- p = d3_time_parsers[template.charAt(i++)];
- if (!p || (j = p(date, string, j)) < 0) return -1;
- } else if (c != string.charCodeAt(j++)) {
- return -1;
- }
- }
- return j;
- }
- function d3_time_formatRe(names) {
- return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
- }
- function d3_time_formatLookup(names) {
- var map = new d3_Map, i = -1, n = names.length;
- while (++i < n) map.set(names[i].toLowerCase(), i);
- return map;
- }
- function d3_time_parseWeekdayAbbrev(date, string, i) {
- d3_time_dayAbbrevRe.lastIndex = 0;
- var n = d3_time_dayAbbrevRe.exec(string.substring(i));
- return n ? i += n[0].length : -1;
- }
- function d3_time_parseWeekday(date, string, i) {
- d3_time_dayRe.lastIndex = 0;
- var n = d3_time_dayRe.exec(string.substring(i));
- return n ? i += n[0].length : -1;
- }
- function d3_time_parseMonthAbbrev(date, string, i) {
- d3_time_monthAbbrevRe.lastIndex = 0;
- var n = d3_time_monthAbbrevRe.exec(string.substring(i));
- return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
- }
- function d3_time_parseMonth(date, string, i) {
- d3_time_monthRe.lastIndex = 0;
- var n = d3_time_monthRe.exec(string.substring(i));
- return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
- }
- function d3_time_parseLocaleFull(date, string, i) {
- return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
- }
- function d3_time_parseLocaleDate(date, string, i) {
- return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
- }
- function d3_time_parseLocaleTime(date, string, i) {
- return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
- }
- function d3_time_parseFullYear(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 4));
- return n ? (date.y = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseYear(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
- }
- function d3_time_expandYear(d) {
- return d + (d > 68 ? 1900 : 2e3);
- }
- function d3_time_parseMonthNumber(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
- }
- function d3_time_parseDay(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.d = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseHour24(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.H = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseMinutes(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.M = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseSeconds(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.S = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseMilliseconds(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 3));
- return n ? (date.L = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseAmPm(date, string, i) {
- var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
- return n == null ? -1 : (date.p = n, i);
- }
- function d3_time_zone(d) {
- var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
- return zs + d3_time_zfill2(zh) + d3_time_zfill2(zm);
- }
- function d3_time_formatIsoNative(date) {
- return date.toISOString();
- }
- function d3_time_interval(local, step, number) {
- function round(date) {
- var d0 = local(date), d1 = offset(d0, 1);
- return date - d0 < d1 - date ? d0 : d1;
- }
- function ceil(date) {
- step(date = local(new d3_time(date - 1)), 1);
- return date;
- }
- function offset(date, k) {
- step(date = new d3_time(+date), k);
- return date;
- }
- function range(t0, t1, dt) {
- var time = ceil(t0), times = [];
- if (dt > 1) {
- while (time < t1) {
- if (!(number(time) % dt)) times.push(new Date(+time));
- step(time, 1);
- }
- } else {
- while (time < t1) times.push(new Date(+time)), step(time, 1);
- }
- return times;
- }
- function range_utc(t0, t1, dt) {
- try {
- d3_time = d3_time_utc;
- var utc = new d3_time_utc;
- utc._ = t0;
- return range(utc, t1, dt);
- } finally {
- d3_time = Date;
- }
- }
- local.floor = local;
- local.round = round;
- local.ceil = ceil;
- local.offset = offset;
- local.range = range;
- var utc = local.utc = d3_time_interval_utc(local);
- utc.floor = utc;
- utc.round = d3_time_interval_utc(round);
- utc.ceil = d3_time_interval_utc(ceil);
- utc.offset = d3_time_interval_utc(offset);
- utc.range = range_utc;
- return local;
- }
- function d3_time_interval_utc(method) {
- return function(date, k) {
- try {
- d3_time = d3_time_utc;
- var utc = new d3_time_utc;
- utc._ = date;
- return method(utc, k)._;
- } finally {
- d3_time = Date;
- }
- };
- }
- function d3_time_scale(linear, methods, format) {
- function scale(x) {
- return linear(x);
- }
- scale.invert = function(x) {
- return d3_time_scaleDate(linear.invert(x));
- };
- scale.domain = function(x) {
- if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
- linear.domain(x);
- return scale;
- };
- scale.nice = function(m) {
- return scale.domain(d3_scale_nice(scale.domain(), function() {
- return m;
- }));
- };
- scale.ticks = function(m, k) {
- var extent = d3_time_scaleExtent(scale.domain());
- if (typeof m !== "function") {
- var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
- if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
- if (!i) return linear.ticks(m).map(d3_time_scaleDate);
- if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
- m = methods[i];
- k = m[1];
- m = m[0].range;
- }
- return m(extent[0], new Date(+extent[1] + 1), k);
- };
- scale.tickFormat = function() {
- return format;
- };
- scale.copy = function() {
- return d3_time_scale(linear.copy(), methods, format);
- };
- return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
- }
- function d3_time_scaleExtent(domain) {
- var start = domain[0], stop = domain[domain.length - 1];
- return start < stop ? [ start, stop ] : [ stop, start ];
- }
- function d3_time_scaleDate(t) {
- return new Date(t);
- }
- function d3_time_scaleFormat(formats) {
- return function(date) {
- var i = formats.length - 1, f = formats[i];
- while (!f[1](date)) f = formats[--i];
- return f[0](date);
- };
- }
- function d3_time_scaleSetYear(y) {
- var d = new Date(y, 0, 1);
- d.setFullYear(y);
- return d;
- }
- function d3_time_scaleGetYear(d) {
- var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
- return y + (d - d0) / (d1 - d0);
- }
- function d3_time_scaleUTCSetYear(y) {
- var d = new Date(Date.UTC(y, 0, 1));
- d.setUTCFullYear(y);
- return d;
- }
- function d3_time_scaleUTCGetYear(d) {
- var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
- return y + (d - d0) / (d1 - d0);
- }
- if (!Date.now) Date.now = function() {
- return +(new Date);
- };
- try {
- document.createElement("div").style.setProperty("opacity", 0, "");
- } catch (error) {
- var d3_style_prototype = CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
- d3_style_prototype.setProperty = function(name, value, priority) {
- d3_style_setProperty.call(this, name, value + "", priority);
- };
- }
- d3 = {
- version: "2.10.2"
- };
- var d3_array = d3_arraySlice;
- try {
- d3_array(document.documentElement.childNodes)[0].nodeType;
- } catch (e) {
- d3_array = d3_arrayCopy;
- }
- var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
- array.__proto__ = prototype;
- } : function(array, prototype) {
- for (var property in prototype) array[property] = prototype[property];
- };
- d3.map = function(object) {
- var map = new d3_Map;
- for (var key in object) map.set(key, object[key]);
- return map;
- };
- d3_class(d3_Map, {
- has: function(key) {
- return d3_map_prefix + key in this;
- },
- get: function(key) {
- return this[d3_map_prefix + key];
- },
- set: function(key, value) {
- return this[d3_map_prefix + key] = value;
- },
- remove: function(key) {
- key = d3_map_prefix + key;
- return key in this && delete this[key];
- },
- keys: function() {
- var keys = [];
- this.forEach(function(key) {
- keys.push(key);
- });
- return keys;
- },
- values: function() {
- var values = [];
- this.forEach(function(key, value) {
- values.push(value);
- });
- return values;
- },
- entries: function() {
- var entries = [];
- this.forEach(function(key, value) {
- entries.push({
- key: key,
- value: value
- });
- });
- return entries;
- },
- forEach: function(f) {
- for (var key in this) {
- if (key.charCodeAt(0) === d3_map_prefixCode) {
- f.call(this, key.substring(1), this[key]);
- }
- }
- }
- });
- var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
- d3.functor = d3_functor;
- d3.rebind = function(target, source) {
- var i = 1, n = arguments.length, method;
- while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
- return target;
- };
- d3.ascending = function(a, b) {
- return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
- };
- d3.descending = function(a, b) {
- return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
- };
- d3.mean = function(array, f) {
- var n = array.length, a, m = 0, i = -1, j = 0;
- if (arguments.length === 1) {
- while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
- } else {
- while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
- }
- return j ? m : undefined;
- };
- d3.median = function(array, f) {
- if (arguments.length > 1) array = array.map(f);
- array = array.filter(d3_number);
- return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
- };
- d3.min = function(array, f) {
- var i = -1, n = array.length, a, b;
- if (arguments.length === 1) {
- while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
- while (++i < n) if ((b = array[i]) != null && a > b) a = b;
- } else {
- while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
- while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
- }
- return a;
- };
- d3.max = function(array, f) {
- var i = -1, n = array.length, a, b;
- if (arguments.length === 1) {
- while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
- while (++i < n) if ((b = array[i]) != null && b > a) a = b;
- } else {
- while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
- while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
- }
- return a;
- };
- d3.extent = function(array, f) {
- var i = -1, n = array.length, a, b, c;
- if (arguments.length === 1) {
- while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
- while (++i < n) if ((b = array[i]) != null) {
- if (a > b) a = b;
- if (c < b) c = b;
- }
- } else {
- while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
- while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
- if (a > b) a = b;
- if (c < b) c = b;
- }
- }
- return [ a, c ];
- };
- d3.random = {
- normal: function(µ, σ) {
- var n = arguments.length;
- if (n < 2) σ = 1;
- if (n < 1) µ = 0;
- return function() {
- var x, y, r;
- do {
- x = Math.random() * 2 - 1;
- y = Math.random() * 2 - 1;
- r = x * x + y * y;
- } while (!r || r > 1);
- return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
- };
- },
- logNormal: function(µ, σ) {
- var n = arguments.length;
- if (n < 2) σ = 1;
- if (n < 1) µ = 0;
- var random = d3.random.normal();
- return function() {
- return Math.exp(µ + σ * random());
- };
- },
- irwinHall: function(m) {
- return function() {
- for (var s = 0, j = 0; j < m; j++) s += Math.random();
- return s / m;
- };
- }
- };
- d3.sum = function(array, f) {
- var s = 0, n = array.length, a, i = -1;
- if (arguments.length === 1) {
- while (++i < n) if (!isNaN(a = +array[i])) s += a;
- } else {
- while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
- }
- return s;
- };
- d3.quantile = function(values, p) {
- var H = (values.length - 1) * p + 1, h = Math.floor(H), v = values[h - 1], e = H - h;
- return e ? v + e * (values[h] - v) : v;
- };
- d3.transpose = function(matrix) {
- return d3.zip.apply(d3, matrix);
- };
- d3.zip = function() {
- if (!(n = arguments.length)) return [];
- for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
- for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
- zip[j] = arguments[j][i];
- }
- }
- return zips;
- };
- d3.bisector = function(f) {
- return {
- left: function(a, x, lo, hi) {
- if (arguments.length < 3) lo = 0;
- if (arguments.length < 4) hi = a.length;
- while (lo < hi) {
- var mid = lo + hi >>> 1;
- if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
- }
- return lo;
- },
- right: function(a, x, lo, hi) {
- if (arguments.length < 3) lo = 0;
- if (arguments.length < 4) hi = a.length;
- while (lo < hi) {
- var mid = lo + hi >>> 1;
- if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
- }
- return lo;
- }
- };
- };
- var d3_bisector = d3.bisector(function(d) {
- return d;
- });
- d3.bisectLeft = d3_bisector.left;
- d3.bisect = d3.bisectRight = d3_bisector.right;
- d3.first = function(array, f) {
- var i = 0, n = array.length, a = array[0], b;
- if (arguments.length === 1) f = d3.ascending;
- while (++i < n) {
- if (f.call(array, a, b = array[i]) > 0) {
- a = b;
- }
- }
- return a;
- };
- d3.last = function(array, f) {
- var i = 0, n = array.length, a = array[0], b;
- if (arguments.length === 1) f = d3.ascending;
- while (++i < n) {
- if (f.call(array, a, b = array[i]) <= 0) {
- a = b;
- }
- }
- return a;
- };
- d3.nest = function() {
- function map(array, depth) {
- if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
- var i = -1, n = array.length, key = keys[depth++], keyValue, object, valuesByKey = new d3_Map, values, o = {};
- while (++i < n) {
- if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
- values.push(object);
- } else {
- valuesByKey.set(keyValue, [ object ]);
- }
- }
- valuesByKey.forEach(function(keyValue, values) {
- o[keyValue] = map(values, depth);
- });
- return o;
- }
- function entries(map, depth) {
- if (depth >= keys.length) return map;
- var a = [], sortKey = sortKeys[depth++], key;
- for (key in map) {
- a.push({
- key: key,
- values: entries(map[key], depth)
- });
- }
- if (sortKey) a.sort(function(a, b) {
- return sortKey(a.key, b.key);
- });
- return a;
- }
- var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
- nest.map = function(array) {
- return map(array, 0);
- };
- nest.entries = function(array) {
- return entries(map(array, 0), 0);
- };
- nest.key = function(d) {
- keys.push(d);
- return nest;
- };
- nest.sortKeys = function(order) {
- sortKeys[keys.length - 1] = order;
- return nest;
- };
- nest.sortValues = function(order) {
- sortValues = order;
- return nest;
- };
- nest.rollup = function(f) {
- rollup = f;
- return nest;
- };
- return nest;
- };
- d3.keys = function(map) {
- var keys = [];
- for (var key in map) keys.push(key);
- return keys;
- };
- d3.values = function(map) {
- var values = [];
- for (var key in map) values.push(map[key]);
- return values;
- };
- d3.entries = function(map) {
- var entries = [];
- for (var key in map) entries.push({
- key: key,
- value: map[key]
- });
- return entries;
- };
- d3.permute = function(array, indexes) {
- var permutes = [], i = -1, n = indexes.length;
- while (++i < n) permutes[i] = array[indexes[i]];
- return permutes;
- };
- d3.merge = function(arrays) {
- return Array.prototype.concat.apply([], arrays);
- };
- d3.split = function(array, f) {
- var arrays = [], values = [], value, i = -1, n = array.length;
- if (arguments.length < 2) f = d3_splitter;
- while (++i < n) {
- if (f.call(values, value = array[i], i)) {
- values = [];
- } else {
- if (!values.length) arrays.push(values);
- values.push(value);
- }
- }
- return arrays;
- };
- d3.range = function(start, stop, step) {
- if (arguments.length < 3) {
- step = 1;
- if (arguments.length < 2) {
- stop = start;
- start = 0;
- }
- }
- if ((stop - start) / step === Infinity) throw new Error("infinite range");
- var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
- start *= k, stop *= k, step *= k;
- if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
- return range;
- };
- d3.requote = function(s) {
- return s.replace(d3_requote_re, "\\$&");
- };
- var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
- d3.round = function(x, n) {
- return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
- };
- d3.xhr = function(url, mime, callback) {
- var req = new XMLHttpRequest;
- if (arguments.length < 3) callback = mime, mime = null; else if (mime && req.overrideMimeType) req.overrideMimeType(mime);
- req.open("GET", url, true);
- if (mime) req.setRequestHeader("Accept", mime);
- req.onreadystatechange = function() {
- if (req.readyState === 4) {
- var s = req.status;
- callback(!s && req.response || s >= 200 && s < 300 || s === 304 ? req : null);
- }
- };
- req.send(null);
- };
- d3.text = function(url, mime, callback) {
- function ready(req) {
- callback(req && req.responseText);
- }
- if (arguments.length < 3) {
- callback = mime;
- mime = null;
- }
- d3.xhr(url, mime, ready);
- };
- d3.json = function(url, callback) {
- d3.text(url, "application/json", function(text) {
- callback(text ? JSON.parse(text) : null);
- });
- };
- d3.html = function(url, callback) {
- d3.text(url, "text/html", function(text) {
- if (text != null) {
- var range = document.createRange();
- range.selectNode(document.body);
- text = range.createContextualFragment(text);
- }
- callback(text);
- });
- };
- d3.xml = function(url, mime, callback) {
- function ready(req) {
- callback(req && req.responseXML);
- }
- if (arguments.length < 3) {
- callback = mime;
- mime = null;
- }
- d3.xhr(url, mime, ready);
- };
- var d3_nsPrefix = {
- svg: "http://www.w3.org/2000/svg",
- xhtml: "http://www.w3.org/1999/xhtml",
- xlink: "http://www.w3.org/1999/xlink",
- xml: "http://www.w3.org/XML/1998/namespace",
- xmlns: "http://www.w3.org/2000/xmlns/"
- };
- d3.ns = {
- prefix: d3_nsPrefix,
- qualify: function(name) {
- var i = name.indexOf(":"), prefix = name;
- if (i >= 0) {
- prefix = name.substring(0, i);
- name = name.substring(i + 1);
- }
- return d3_nsPrefix.hasOwnProperty(prefix) ? {
- space: d3_nsPrefix[prefix],
- local: name
- } : name;
- }
- };
- d3.dispatch = function() {
- var dispatch = new d3_dispatch, i = -1, n = arguments.length;
- while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
- return dispatch;
- };
- d3_dispatch.prototype.on = function(type, listener) {
- var i = type.indexOf("."), name = "";
- if (i > 0) {
- name = type.substring(i + 1);
- type = type.substring(0, i);
- }
- return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
- };
- d3.format = function(specifier) {
- var match = d3_format_re.exec(specifier), fill = match[1] || " ", sign = match[3] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
- if (precision) precision = +precision.substring(1);
- if (zfill) {
- fill = "0";
- if (comma) width -= Math.floor((width - 1) / 4);
- }
- switch (type) {
- case "n":
- comma = true;
- type = "g";
- break;
- case "%":
- scale = 100;
- suffix = "%";
- type = "f";
- break;
- case "p":
- scale = 100;
- suffix = "%";
- type = "r";
- break;
- case "d":
- integer = true;
- precision = 0;
- break;
- case "s":
- scale = -1;
- type = "r";
- break;
- }
- if (type == "r" && !precision) type = "g";
- type = d3_format_types.get(type) || d3_format_typeDefault;
- return function(value) {
- if (integer && value % 1) return "";
- var negative = value < 0 && (value = -value) ? "-" : sign;
- if (scale < 0) {
- var prefix = d3.formatPrefix(value, precision);
- value = prefix.scale(value);
- suffix = prefix.symbol;
- } else {
- value *= scale;
- }
- value = type(value, precision);
- if (zfill) {
- var length = value.length + negative.length;
- if (length < width) value = (new Array(width - length + 1)).join(fill) + value;
- if (comma) value = d3_format_group(value);
- value = negative + value;
- } else {
- if (comma) value = d3_format_group(value);
- value = negative + value;
- var length = value.length;
- if (length < width) value = (new Array(width - length + 1)).join(fill) + value;
- }
- return value + suffix;
- };
- };
- var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
- var d3_format_types = d3.map({
- g: function(x, p) {
- return x.toPrecision(p);
- },
- e: function(x, p) {
- return x.toExponential(p);
- },
- f: function(x, p) {
- return x.toFixed(p);
- },
- r: function(x, p) {
- return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p)));
- }
- });
- var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "μ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
- d3.formatPrefix = function(value, precision) {
- var i = 0;
- if (value) {
- if (value < 0) value *= -1;
- if (precision) value = d3.round(value, d3_format_precision(value, precision));
- i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
- i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
- }
- return d3_formatPrefixes[8 + i / 3];
- };
- var d3_ease_quad = d3_ease_poly(2), d3_ease_cubic = d3_ease_poly(3), d3_ease_default = function() {
- return d3_ease_identity;
- };
- var d3_ease = d3.map({
- linear: d3_ease_default,
- poly: d3_ease_poly,
- quad: function() {
- return d3_ease_quad;
- },
- cubic: function() {
- return d3_ease_cubic;
- },
- sin: function() {
- return d3_ease_sin;
- },
- exp: function() {
- return d3_ease_exp;
- },
- circle: function() {
- return d3_ease_circle;
- },
- elastic: d3_ease_elastic,
- back: d3_ease_back,
- bounce: function() {
- return d3_ease_bounce;
- }
- });
- var d3_ease_mode = d3.map({
- "in": d3_ease_identity,
- out: d3_ease_reverse,
- "in-out": d3_ease_reflect,
- "out-in": function(f) {
- return d3_ease_reflect(d3_ease_reverse(f));
- }
- });
- d3.ease = function(name) {
- var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
- t = d3_ease.get(t) || d3_ease_default;
- m = d3_ease_mode.get(m) || d3_ease_identity;
- return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
- };
- d3.event = null;
- d3.transform = function(string) {
- var g = document.createElementNS(d3.ns.prefix.svg, "g");
- return (d3.transform = function(string) {
- g.setAttribute("transform", string);
- var t = g.transform.baseVal.consolidate();
- return new d3_transform(t ? t.matrix : d3_transformIdentity);
- })(string);
- };
- d3_transform.prototype.toString = function() {
- return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
- };
- var d3_transformDegrees = 180 / Math.PI, d3_transformIdentity = {
- a: 1,
- b: 0,
- c: 0,
- d: 1,
- e: 0,
- f: 0
- };
- d3.interpolate = function(a, b) {
- var i = d3.interpolators.length, f;
- while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
- return f;
- };
- d3.interpolateNumber = function(a, b) {
- b -= a;
- return function(t) {
- return a + b * t;
- };
- };
- d3.interpolateRound = function(a, b) {
- b -= a;
- return function(t) {
- return Math.round(a + b * t);
- };
- };
- d3.interpolateString = function(a, b) {
- var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
- d3_interpolate_number.lastIndex = 0;
- for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
- if (m.index) s.push(b.substring(s0, s1 = m.index));
- q.push({
- i: s.length,
- x: m[0]
- });
- s.push(null);
- s0 = d3_interpolate_number.lastIndex;
- }
- if (s0 < b.length) s.push(b.substring(s0));
- for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
- o = q[i];
- if (o.x == m[0]) {
- if (o.i) {
- if (s[o.i + 1] == null) {
- s[o.i - 1] += o.x;
- s.splice(o.i, 1);
- for (j = i + 1; j < n; ++j) q[j].i--;
- } else {
- s[o.i - 1] += o.x + s[o.i + 1];
- s.splice(o.i, 2);
- for (j = i + 1; j < n; ++j) q[j].i -= 2;
- }
- } else {
- if (s[o.i + 1] == null) {
- s[o.i] = o.x;
- } else {
- s[o.i] = o.x + s[o.i + 1];
- s.splice(o.i + 1, 1);
- for (j = i + 1; j < n; ++j) q[j].i--;
- }
- }
- q.splice(i, 1);
- n--;
- i--;
- } else {
- o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
- }
- }
- while (i < n) {
- o = q.pop();
- if (s[o.i + 1] == null) {
- s[o.i] = o.x;
- } else {
- s[o.i] = o.x + s[o.i + 1];
- s.splice(o.i + 1, 1);
- }
- n--;
- }
- if (s.length === 1) {
- return s[0] == null ? q[0].x : function() {
- return b;
- };
- }
- return function(t) {
- for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
- return s.join("");
- };
- };
- d3.interpolateTransform = function(a, b) {
- var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
- if (ta[0] != tb[0] || ta[1] != tb[1]) {
- s.push("translate(", null, ",", null, ")");
- q.push({
- i: 1,
- x: d3.interpolateNumber(ta[0], tb[0])
- }, {
- i: 3,
- x: d3.interpolateNumber(ta[1], tb[1])
- });
- } else if (tb[0] || tb[1]) {
- s.push("translate(" + tb + ")");
- } else {
- s.push("");
- }
- if (ra != rb) {
- if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
- q.push({
- i: s.push(s.pop() + "rotate(", null, ")") - 2,
- x: d3.interpolateNumber(ra, rb)
- });
- } else if (rb) {
- s.push(s.pop() + "rotate(" + rb + ")");
- }
- if (wa != wb) {
- q.push({
- i: s.push(s.pop() + "skewX(", null, ")") - 2,
- x: d3.interpolateNumber(wa, wb)
- });
- } else if (wb) {
- s.push(s.pop() + "skewX(" + wb + ")");
- }
- if (ka[0] != kb[0] || ka[1] != kb[1]) {
- n = s.push(s.pop() + "scale(", null, ",", null, ")");
- q.push({
- i: n - 4,
- x: d3.interpolateNumber(ka[0], kb[0])
- }, {
- i: n - 2,
- x: d3.interpolateNumber(ka[1], kb[1])
- });
- } else if (kb[0] != 1 || kb[1] != 1) {
- s.push(s.pop() + "scale(" + kb + ")");
- }
- n = q.length;
- return function(t) {
- var i = -1, o;
- while (++i < n) s[(o = q[i]).i] = o.x(t);
- return s.join("");
- };
- };
- d3.interpolateRgb = function(a, b) {
- a = d3.rgb(a);
- b = d3.rgb(b);
- var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
- return function(t) {
- return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
- };
- };
- d3.interpolateHsl = function(a, b) {
- a = d3.hsl(a);
- b = d3.hsl(b);
- var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0;
- if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360;
- return function(t) {
- return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + "";
- };
- };
- d3.interpolateLab = function(a, b) {
- a = d3.lab(a);
- b = d3.lab(b);
- var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
- return function(t) {
- return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
- };
- };
- d3.interpolateHcl = function(a, b) {
- a = d3.hcl(a);
- b = d3.hcl(b);
- var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
- if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
- return function(t) {
- return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
- };
- };
- d3.interpolateArray = function(a, b) {
- var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
- for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
- for (; i < na; ++i) c[i] = a[i];
- for (; i < nb; ++i) c[i] = b[i];
- return function(t) {
- for (i = 0; i < n0; ++i) c[i] = x[i](t);
- return c;
- };
- };
- d3.interpolateObject = function(a, b) {
- var i = {}, c = {}, k;
- for (k in a) {
- if (k in b) {
- i[k] = d3_interpolateByName(k)(a[k], b[k]);
- } else {
- c[k] = a[k];
- }
- }
- for (k in b) {
- if (!(k in a)) {
- c[k] = b[k];
- }
- }
- return function(t) {
- for (k in i) c[k] = i[k](t);
- return c;
- };
- };
- var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
- d3.interpolators = [ d3.interpolateObject, function(a, b) {
- return b instanceof Array && d3.interpolateArray(a, b);
- }, function(a, b) {
- return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + "");
- }, function(a, b) {
- return (typeof b === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(a, b);
- }, function(a, b) {
- return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b);
- } ];
- d3.rgb = function(r, g, b) {
- return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
- };
- d3_Rgb.prototype.brighter = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- var r = this.r, g = this.g, b = this.b, i = 30;
- if (!r && !g && !b) return d3_rgb(i, i, i);
- if (r && r < i) r = i;
- if (g && g < i) g = i;
- if (b && b < i) b = i;
- return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
- };
- d3_Rgb.prototype.darker = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
- };
- d3_Rgb.prototype.hsl = function() {
- return d3_rgb_hsl(this.r, this.g, this.b);
- };
- d3_Rgb.prototype.toString = function() {
- return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
- };
- var d3_rgb_names = d3.map({
- aliceblue: "#f0f8ff",
- antiquewhite: "#faebd7",
- aqua: "#00ffff",
- aquamarine: "#7fffd4",
- azure: "#f0ffff",
- beige: "#f5f5dc",
- bisque: "#ffe4c4",
- black: "#000000",
- blanchedalmond: "#ffebcd",
- blue: "#0000ff",
- blueviolet: "#8a2be2",
- brown: "#a52a2a",
- burlywood: "#deb887",
- cadetblue: "#5f9ea0",
- chartreuse: "#7fff00",
- chocolate: "#d2691e",
- coral: "#ff7f50",
- cornflowerblue: "#6495ed",
- cornsilk: "#fff8dc",
- crimson: "#dc143c",
- cyan: "#00ffff",
- darkblue: "#00008b",
- darkcyan: "#008b8b",
- darkgoldenrod: "#b8860b",
- darkgray: "#a9a9a9",
- darkgreen: "#006400",
- darkgrey: "#a9a9a9",
- darkkhaki: "#bdb76b",
- darkmagenta: "#8b008b",
- darkolivegreen: "#556b2f",
- darkorange: "#ff8c00",
- darkorchid: "#9932cc",
- darkred: "#8b0000",
- darksalmon: "#e9967a",
- darkseagreen: "#8fbc8f",
- darkslateblue: "#483d8b",
- darkslategray: "#2f4f4f",
- darkslategrey: "#2f4f4f",
- darkturquoise: "#00ced1",
- darkviolet: "#9400d3",
- deeppink: "#ff1493",
- deepskyblue: "#00bfff",
- dimgray: "#696969",
- dimgrey: "#696969",
- dodgerblue: "#1e90ff",
- firebrick: "#b22222",
- floralwhite: "#fffaf0",
- forestgreen: "#228b22",
- fuchsia: "#ff00ff",
- gainsboro: "#dcdcdc",
- ghostwhite: "#f8f8ff",
- gold: "#ffd700",
- goldenrod: "#daa520",
- gray: "#808080",
- green: "#008000",
- greenyellow: "#adff2f",
- grey: "#808080",
- honeydew: "#f0fff0",
- hotpink: "#ff69b4",
- indianred: "#cd5c5c",
- indigo: "#4b0082",
- ivory: "#fffff0",
- khaki: "#f0e68c",
- lavender: "#e6e6fa",
- lavenderblush: "#fff0f5",
- lawngreen: "#7cfc00",
- lemonchiffon: "#fffacd",
- lightblue: "#add8e6",
- lightcoral: "#f08080",
- lightcyan: "#e0ffff",
- lightgoldenrodyellow: "#fafad2",
- lightgray: "#d3d3d3",
- lightgreen: "#90ee90",
- lightgrey: "#d3d3d3",
- lightpink: "#ffb6c1",
- lightsalmon: "#ffa07a",
- lightseagreen: "#20b2aa",
- lightskyblue: "#87cefa",
- lightslategray: "#778899",
- lightslategrey: "#778899",
- lightsteelblue: "#b0c4de",
- lightyellow: "#ffffe0",
- lime: "#00ff00",
- limegreen: "#32cd32",
- linen: "#faf0e6",
- magenta: "#ff00ff",
- maroon: "#800000",
- mediumaquamarine: "#66cdaa",
- mediumblue: "#0000cd",
- mediumorchid: "#ba55d3",
- mediumpurple: "#9370db",
- mediumseagreen: "#3cb371",
- mediumslateblue: "#7b68ee",
- mediumspringgreen: "#00fa9a",
- mediumturquoise: "#48d1cc",
- mediumvioletred: "#c71585",
- midnightblue: "#191970",
- mintcream: "#f5fffa",
- mistyrose: "#ffe4e1",
- moccasin: "#ffe4b5",
- navajowhite: "#ffdead",
- navy: "#000080",
- oldlace: "#fdf5e6",
- olive: "#808000",
- olivedrab: "#6b8e23",
- orange: "#ffa500",
- orangered: "#ff4500",
- orchid: "#da70d6",
- palegoldenrod: "#eee8aa",
- palegreen: "#98fb98",
- paleturquoise: "#afeeee",
- palevioletred: "#db7093",
- papayawhip: "#ffefd5",
- peachpuff: "#ffdab9",
- peru: "#cd853f",
- pink: "#ffc0cb",
- plum: "#dda0dd",
- powderblue: "#b0e0e6",
- purple: "#800080",
- red: "#ff0000",
- rosybrown: "#bc8f8f",
- royalblue: "#4169e1",
- saddlebrown: "#8b4513",
- salmon: "#fa8072",
- sandybrown: "#f4a460",
- seagreen: "#2e8b57",
- seashell: "#fff5ee",
- sienna: "#a0522d",
- silver: "#c0c0c0",
- skyblue: "#87ceeb",
- slateblue: "#6a5acd",
- slategray: "#708090",
- slategrey: "#708090",
- snow: "#fffafa",
- springgreen: "#00ff7f",
- steelblue: "#4682b4",
- tan: "#d2b48c",
- teal: "#008080",
- thistle: "#d8bfd8",
- tomato: "#ff6347",
- turquoise: "#40e0d0",
- violet: "#ee82ee",
- wheat: "#f5deb3",
- white: "#ffffff",
- whitesmoke: "#f5f5f5",
- yellow: "#ffff00",
- yellowgreen: "#9acd32"
- });
- d3_rgb_names.forEach(function(key, value) {
- d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
- });
- d3.hsl = function(h, s, l) {
- return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
- };
- d3_Hsl.prototype.brighter = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- return d3_hsl(this.h, this.s, this.l / k);
- };
- d3_Hsl.prototype.darker = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- return d3_hsl(this.h, this.s, k * this.l);
- };
- d3_Hsl.prototype.rgb = function() {
- return d3_hsl_rgb(this.h, this.s, this.l);
- };
- d3_Hsl.prototype.toString = function() {
- return this.rgb().toString();
- };
- d3.hcl = function(h, c, l) {
- return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
- };
- d3_Hcl.prototype.brighter = function(k) {
- return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
- };
- d3_Hcl.prototype.darker = function(k) {
- return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
- };
- d3_Hcl.prototype.rgb = function() {
- return d3_hcl_lab(this.h, this.c, this.l).rgb();
- };
- d3_Hcl.prototype.toString = function() {
- return this.rgb() + "";
- };
- d3.lab = function(l, a, b) {
- return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
- };
- var d3_lab_K = 18;
- var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
- d3_Lab.prototype.brighter = function(k) {
- return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
- };
- d3_Lab.prototype.darker = function(k) {
- return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
- };
- d3_Lab.prototype.rgb = function() {
- return d3_lab_rgb(this.l, this.a, this.b);
- };
- d3_Lab.prototype.toString = function() {
- return this.rgb() + "";
- };
- var d3_select = function(s, n) {
- return n.querySelector(s);
- }, d3_selectAll = function(s, n) {
- return n.querySelectorAll(s);
- }, d3_selectRoot = document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
- return d3_selectMatcher.call(n, s);
- };
- if (typeof Sizzle === "function") {
- d3_select = function(s, n) {
- return Sizzle(s, n)[0] || null;
- };
- d3_selectAll = function(s, n) {
- return Sizzle.uniqueSort(Sizzle(s, n));
- };
- d3_selectMatches = Sizzle.matchesSelector;
- }
- var d3_selectionPrototype = [];
- d3.selection = function() {
- return d3_selectionRoot;
- };
- d3.selection.prototype = d3_selectionPrototype;
- d3_selectionPrototype.select = function(selector) {
- var subgroups = [], subgroup, subnode, group, node;
- if (typeof selector !== "function") selector = d3_selection_selector(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- subgroups.push(subgroup = []);
- subgroup.parentNode = (group = this[j]).parentNode;
- for (var i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- subgroup.push(subnode = selector.call(node, node.__data__, i));
- if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
- } else {
- subgroup.push(null);
- }
- }
- }
- return d3_selection(subgroups);
- };
- d3_selectionPrototype.selectAll = function(selector) {
- var subgroups = [], subgroup, node;
- if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
- subgroup.parentNode = node;
- }
- }
- }
- return d3_selection(subgroups);
- };
- d3_selectionPrototype.attr = function(name, value) {
- if (arguments.length < 2) {
- if (typeof name === "string") {
- var node = this.node();
- name = d3.ns.qualify(name);
- return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
- }
- for (value in name) this.each(d3_selection_attr(value, name[value]));
- return this;
- }
- return this.each(d3_selection_attr(name, value));
- };
- d3_selectionPrototype.classed = function(name, value) {
- if (arguments.length < 2) {
- if (typeof name === "string") {
- var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
- if (value = node.classList) {
- while (++i < n) if (!value.contains(name[i])) return false;
- } else {
- value = node.className;
- if (value.baseVal != null) value = value.baseVal;
- while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
- }
- return true;
- }
- for (value in name) this.each(d3_selection_classed(value, name[value]));
- return this;
- }
- return this.each(d3_selection_classed(name, value));
- };
- d3_selectionPrototype.style = function(name, value, priority) {
- var n = arguments.length;
- if (n < 3) {
- if (typeof name !== "string") {
- if (n < 2) value = "";
- for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
- return this;
- }
- if (n < 2) return window.getComputedStyle(this.node(), null).getPropertyValue(name);
- priority = "";
- }
- return this.each(d3_selection_style(name, value, priority));
- };
- d3_selectionPrototype.property = function(name, value) {
- if (arguments.length < 2) {
- if (typeof name === "string") return this.node()[name];
- for (value in name) this.each(d3_selection_property(value, name[value]));
- return this;
- }
- return this.each(d3_selection_property(name, value));
- };
- d3_selectionPrototype.text = function(value) {
- return arguments.length < 1 ? this.node().textContent : this.each(typeof value === "function" ? function() {
- var v = value.apply(this, arguments);
- this.textContent = v == null ? "" : v;
- } : value == null ? function() {
- this.textContent = "";
- } : function() {
- this.textContent = value;
- });
- };
- d3_selectionPrototype.html = function(value) {
- return arguments.length < 1 ? this.node().innerHTML : this.each(typeof value === "function" ? function() {
- var v = value.apply(this, arguments);
- this.innerHTML = v == null ? "" : v;
- } : value == null ? function() {
- this.innerHTML = "";
- } : function() {
- this.innerHTML = value;
- });
- };
- d3_selectionPrototype.append = function(name) {
- function append() {
- return this.appendChild(document.createElementNS(this.namespaceURI, name));
- }
- function appendNS() {
- return this.appendChild(document.createElementNS(name.space, name.local));
- }
- name = d3.ns.qualify(name);
- return this.select(name.local ? appendNS : append);
- };
- d3_selectionPrototype.insert = function(name, before) {
- function insert() {
- return this.insertBefore(document.createElementNS(this.namespaceURI, name), d3_select(before, this));
- }
- function insertNS() {
- return this.insertBefore(document.createElementNS(name.space, name.local), d3_select(before, this));
- }
- name = d3.ns.qualify(name);
- return this.select(name.local ? insertNS : insert);
- };
- d3_selectionPrototype.remove = function() {
- return this.each(function() {
- var parent = this.parentNode;
- if (parent) parent.removeChild(this);
- });
- };
- d3_selectionPrototype.data = function(value, key) {
- function bind(group, groupData) {
- var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), n1 = Math.max(n, m), updateNodes = [], enterNodes = [], exitNodes = [], node, nodeData;
- if (key) {
- var nodeByKeyValue = new d3_Map, keyValues = [], keyValue, j = groupData.length;
- for (i = -1; ++i < n; ) {
- keyValue = key.call(node = group[i], node.__data__, i);
- if (nodeByKeyValue.has(keyValue)) {
- exitNodes[j++] = node;
- } else {
- nodeByKeyValue.set(keyValue, node);
- }
- keyValues.push(keyValue);
- }
- for (i = -1; ++i < m; ) {
- keyValue = key.call(groupData, nodeData = groupData[i], i);
- if (nodeByKeyValue.has(keyValue)) {
- updateNodes[i] = node = nodeByKeyValue.get(keyValue);
- node.__data__ = nodeData;
- enterNodes[i] = exitNodes[i] = null;
- } else {
- enterNodes[i] = d3_selection_dataNode(nodeData);
- updateNodes[i] = exitNodes[i] = null;
- }
- nodeByKeyValue.remove(keyValue);
- }
- for (i = -1; ++i < n; ) {
- if (nodeByKeyValue.has(keyValues[i])) {
- exitNodes[i] = group[i];
- }
- }
- } else {
- for (i = -1; ++i < n0; ) {
- node = group[i];
- nodeData = groupData[i];
- if (node) {
- node.__data__ = nodeData;
- updateNodes[i] = node;
- enterNodes[i] = exitNodes[i] = null;
- } else {
- enterNodes[i] = d3_selection_dataNode(nodeData);
- updateNodes[i] = exitNodes[i] = null;
- }
- }
- for (; i < m; ++i) {
- enterNodes[i] = d3_selection_dataNode(groupData[i]);
- updateNodes[i] = exitNodes[i] = null;
- }
- for (; i < n1; ++i) {
- exitNodes[i] = group[i];
- enterNodes[i] = updateNodes[i] = null;
- }
- }
- enterNodes.update = updateNodes;
- enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
- enter.push(enterNodes);
- update.push(updateNodes);
- exit.push(exitNodes);
- }
- var i = -1, n = this.length, group, node;
- if (!arguments.length) {
- value = new Array(n = (group = this[0]).length);
- while (++i < n) {
- if (node = group[i]) {
- value[i] = node.__data__;
- }
- }
- return value;
- }
- var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
- if (typeof value === "function") {
- while (++i < n) {
- bind(group = this[i], value.call(group, group.parentNode.__data__, i));
- }
- } else {
- while (++i < n) {
- bind(group = this[i], value);
- }
- }
- update.enter = function() {
- return enter;
- };
- update.exit = function() {
- return exit;
- };
- return update;
- };
- d3_selectionPrototype.datum = d3_selectionPrototype.map = function(value) {
- return arguments.length < 1 ? this.property("__data__") : this.property("__data__", value);
- };
- d3_selectionPrototype.filter = function(filter) {
- var subgroups = [], subgroup, group, node;
- if (typeof filter !== "function") filter = d3_selection_filter(filter);
- for (var j = 0, m = this.length; j < m; j++) {
- subgroups.push(subgroup = []);
- subgroup.parentNode = (group = this[j]).parentNode;
- for (var i = 0, n = group.length; i < n; i++) {
- if ((node = group[i]) && filter.call(node, node.__data__, i)) {
- subgroup.push(node);
- }
- }
- }
- return d3_selection(subgroups);
- };
- d3_selectionPrototype.order = function() {
- for (var j = -1, m = this.length; ++j < m; ) {
- for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
- if (node = group[i]) {
- if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
- next = node;
- }
- }
- }
- return this;
- };
- d3_selectionPrototype.sort = function(comparator) {
- comparator = d3_selection_sortComparator.apply(this, arguments);
- for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
- return this.order();
- };
- d3_selectionPrototype.on = function(type, listener, capture) {
- var n = arguments.length;
- if (n < 3) {
- if (typeof type !== "string") {
- if (n < 2) listener = false;
- for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
- return this;
- }
- if (n < 2) return (n = this.node()["__on" + type]) && n._;
- capture = false;
- }
- return this.each(d3_selection_on(type, listener, capture));
- };
- d3_selectionPrototype.each = function(callback) {
- return d3_selection_each(this, function(node, i, j) {
- callback.call(node, node.__data__, i, j);
- });
- };
- d3_selectionPrototype.call = function(callback) {
- callback.apply(this, (arguments[0] = this, arguments));
- return this;
- };
- d3_selectionPrototype.empty = function() {
- return !this.node();
- };
- d3_selectionPrototype.node = function(callback) {
- for (var j = 0, m = this.length; j < m; j++) {
- for (var group = this[j], i = 0, n = group.length; i < n; i++) {
- var node = group[i];
- if (node) return node;
- }
- }
- return null;
- };
- d3_selectionPrototype.transition = function() {
- var subgroups = [], subgroup, node;
- for (var j = -1, m = this.length; ++j < m; ) {
- subgroups.push(subgroup = []);
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- subgroup.push((node = group[i]) ? {
- node: node,
- delay: d3_transitionDelay,
- duration: d3_transitionDuration
- } : null);
- }
- }
- return d3_transition(subgroups, d3_transitionId || ++d3_transitionNextId, Date.now());
- };
- var d3_selectionRoot = d3_selection([ [ document ] ]);
- d3_selectionRoot[0].parentNode = d3_selectRoot;
- d3.select = function(selector) {
- return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]);
- };
- d3.selectAll = function(selector) {
- return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]);
- };
- var d3_selection_enterPrototype = [];
- d3.selection.enter = d3_selection_enter;
- d3.selection.enter.prototype = d3_selection_enterPrototype;
- d3_selection_enterPrototype.append = d3_selectionPrototype.append;
- d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
- d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
- d3_selection_enterPrototype.node = d3_selectionPrototype.node;
- d3_selection_enterPrototype.select = function(selector) {
- var subgroups = [], subgroup, subnode, upgroup, group, node;
- for (var j = -1, m = this.length; ++j < m; ) {
- upgroup = (group = this[j]).update;
- subgroups.push(subgroup = []);
- subgroup.parentNode = group.parentNode;
- for (var i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
- subnode.__data__ = node.__data__;
- } else {
- subgroup.push(null);
- }
- }
- }
- return d3_selection(subgroups);
- };
- var d3_transitionPrototype = [], d3_transitionNextId = 0, d3_transitionId = 0, d3_transitionDefaultDelay = 0, d3_transitionDefaultDuration = 250, d3_transitionDefaultEase = d3.ease("cubic-in-out"), d3_transitionDelay = d3_transitionDefaultDelay, d3_transitionDuration = d3_transitionDefaultDuration, d3_transitionEase = d3_transitionDefaultEase;
- d3_transitionPrototype.call = d3_selectionPrototype.call;
- d3.transition = function(selection) {
- return arguments.length ? d3_transitionId ? selection.transition() : selection : d3_selectionRoot.transition();
- };
- d3.transition.prototype = d3_transitionPrototype;
- d3_transitionPrototype.select = function(selector) {
- var subgroups = [], subgroup, subnode, node;
- if (typeof selector !== "function") selector = d3_selection_selector(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- subgroups.push(subgroup = []);
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
- if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
- subgroup.push({
- node: subnode,
- delay: node.delay,
- duration: node.duration
- });
- } else {
- subgroup.push(null);
- }
- }
- }
- return d3_transition(subgroups, this.id, this.time).ease(this.ease());
- };
- d3_transitionPrototype.selectAll = function(selector) {
- var subgroups = [], subgroup, subnodes, node;
- if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- subnodes = selector.call(node.node, node.node.__data__, i);
- subgroups.push(subgroup = []);
- for (var k = -1, o = subnodes.length; ++k < o; ) {
- subgroup.push({
- node: subnodes[k],
- delay: node.delay,
- duration: node.duration
- });
- }
- }
- }
- }
- return d3_transition(subgroups, this.id, this.time).ease(this.ease());
- };
- d3_transitionPrototype.filter = function(filter) {
- var subgroups = [], subgroup, group, node;
- if (typeof filter !== "function") filter = d3_selection_filter(filter);
- for (var j = 0, m = this.length; j < m; j++) {
- subgroups.push(subgroup = []);
- for (var group = this[j], i = 0, n = group.length; i < n; i++) {
- if ((node = group[i]) && filter.call(node.node, node.node.__data__, i)) {
- subgroup.push(node);
- }
- }
- }
- return d3_transition(subgroups, this.id, this.time).ease(this.ease());
- };
- d3_transitionPrototype.attr = function(name, value) {
- if (arguments.length < 2) {
- for (value in name) this.attrTween(value, d3_tweenByName(name[value], value));
- return this;
- }
- return this.attrTween(name, d3_tweenByName(value, name));
- };
- d3_transitionPrototype.attrTween = function(nameNS, tween) {
- function attrTween(d, i) {
- var f = tween.call(this, d, i, this.getAttribute(name));
- return f === d3_tweenRemove ? (this.removeAttribute(name), null) : f && function(t) {
- this.setAttribute(name, f(t));
- };
- }
- function attrTweenNS(d, i) {
- var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
- return f === d3_tweenRemove ? (this.removeAttributeNS(name.space, name.local), null) : f && function(t) {
- this.setAttributeNS(name.space, name.local, f(t));
- };
- }
- var name = d3.ns.qualify(nameNS);
- return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
- };
- d3_transitionPrototype.style = function(name, value, priority) {
- var n = arguments.length;
- if (n < 3) {
- if (typeof name !== "string") {
- if (n < 2) value = "";
- for (priority in name) this.styleTween(priority, d3_tweenByName(name[priority], priority), value);
- return this;
- }
- priority = "";
- }
- return this.styleTween(name, d3_tweenByName(value, name), priority);
- };
- d3_transitionPrototype.styleTween = function(name, tween, priority) {
- if (arguments.length < 3) priority = "";
- return this.tween("style." + name, function(d, i) {
- var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
- return f === d3_tweenRemove ? (this.style.removeProperty(name), null) : f && function(t) {
- this.style.setProperty(name, f(t), priority);
- };
- });
- };
- d3_transitionPrototype.text = function(value) {
- return this.tween("text", function(d, i) {
- this.textContent = typeof value === "function" ? value.call(this, d, i) : value;
- });
- };
- d3_transitionPrototype.remove = function() {
- return this.each("end.transition", function() {
- var p;
- if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
- });
- };
- d3_transitionPrototype.delay = function(value) {
- return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
- node.delay = value.call(node = node.node, node.__data__, i, j) | 0;
- } : (value = value | 0, function(node) {
- node.delay = value;
- }));
- };
- d3_transitionPrototype.duration = function(value) {
- return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
- node.duration = Math.max(1, value.call(node = node.node, node.__data__, i, j) | 0);
- } : (value = Math.max(1, value | 0), function(node) {
- node.duration = value;
- }));
- };
- d3_transitionPrototype.transition = function() {
- return this.select(d3_this);
- };
- d3.tween = function(b, interpolate) {
- function tweenFunction(d, i, a) {
- var v = b.call(this, d, i);
- return v == null ? a != "" && d3_tweenRemove : a != v && interpolate(a, v);
- }
- function tweenString(d, i, a) {
- return a != b && interpolate(a, b);
- }
- return typeof b === "function" ? tweenFunction : b == null ? d3_tweenNull : (b += "", tweenString);
- };
- var d3_tweenRemove = {};
- var d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
- d3.timer = function(callback, delay, then) {
- var found = false, t0, t1 = d3_timer_queue;
- if (arguments.length < 3) {
- if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
- then = Date.now();
- }
- while (t1) {
- if (t1.callback === callback) {
- t1.then = then;
- t1.delay = delay;
- found = true;
- break;
- }
- t0 = t1;
- t1 = t1.next;
- }
- if (!found) d3_timer_queue = {
- callback: callback,
- then: then,
- delay: delay,
- next: d3_timer_queue
- };
- if (!d3_timer_interval) {
- d3_timer_timeout = clearTimeout(d3_timer_timeout);
- d3_timer_interval = 1;
- d3_timer_frame(d3_timer_step);
- }
- };
- d3.timer.flush = function() {
- var elapsed, now = Date.now(), t1 = d3_timer_queue;
- while (t1) {
- elapsed = now - t1.then;
- if (!t1.delay) t1.flush = t1.callback(elapsed);
- t1 = t1.next;
- }
- d3_timer_flush();
- };
- var d3_timer_frame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) {
- setTimeout(callback, 17);
- };
- d3.mouse = function(container) {
- return d3_mousePoint(container, d3_eventSource());
- };
- var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;
- d3.touches = function(container, touches) {
- if (arguments.length < 2) touches = d3_eventSource().touches;
- return touches ? d3_array(touches).map(function(touch) {
- var point = d3_mousePoint(container, touch);
- point.identifier = touch.identifier;
- return point;
- }) : [];
- };
- d3.scale = {};
- d3.scale.linear = function() {
- return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3.interpolate, false);
- };
- d3.scale.log = function() {
- return d3_scale_log(d3.scale.linear(), d3_scale_logp);
- };
- var d3_scale_logFormat = d3.format(".0e");
- d3_scale_logp.pow = function(x) {
- return Math.pow(10, x);
- };
- d3_scale_logn.pow = function(x) {
- return -Math.pow(10, -x);
- };
- d3.scale.pow = function() {
- return d3_scale_pow(d3.scale.linear(), 1);
- };
- d3.scale.sqrt = function() {
- return d3.scale.pow().exponent(.5);
- };
- d3.scale.ordinal = function() {
- return d3_scale_ordinal([], {
- t: "range",
- a: [ [] ]
- });
- };
- d3.scale.category10 = function() {
- return d3.scale.ordinal().range(d3_category10);
- };
- d3.scale.category20 = function() {
- return d3.scale.ordinal().range(d3_category20);
- };
- d3.scale.category20b = function() {
- return d3.scale.ordinal().range(d3_category20b);
- };
- d3.scale.category20c = function() {
- return d3.scale.ordinal().range(d3_category20c);
- };
- var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
- var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
- var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
- var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
- d3.scale.quantile = function() {
- return d3_scale_quantile([], []);
- };
- d3.scale.quantize = function() {
- return d3_scale_quantize(0, 1, [ 0, 1 ]);
- };
- d3.scale.threshold = function() {
- return d3_scale_threshold([ .5 ], [ 0, 1 ]);
- };
- d3.scale.identity = function() {
- return d3_scale_identity([ 0, 1 ]);
- };
- d3.svg = {};
- d3.svg.arc = function() {
- function arc() {
- var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0), df = da < Math.PI ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
- return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
- }
- var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
- arc.innerRadius = function(v) {
- if (!arguments.length) return innerRadius;
- innerRadius = d3_functor(v);
- return arc;
- };
- arc.outerRadius = function(v) {
- if (!arguments.length) return outerRadius;
- outerRadius = d3_functor(v);
- return arc;
- };
- arc.startAngle = function(v) {
- if (!arguments.length) return startAngle;
- startAngle = d3_functor(v);
- return arc;
- };
- arc.endAngle = function(v) {
- if (!arguments.length) return endAngle;
- endAngle = d3_functor(v);
- return arc;
- };
- arc.centroid = function() {
- var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
- return [ Math.cos(a) * r, Math.sin(a) * r ];
- };
- return arc;
- };
- var d3_svg_arcOffset = -Math.PI / 2, d3_svg_arcMax = 2 * Math.PI - 1e-6;
- d3.svg.line = function() {
- return d3_svg_line(d3_identity);
- };
- var d3_svg_lineInterpolators = d3.map({
- linear: d3_svg_lineLinear,
- "linear-closed": d3_svg_lineLinearClosed,
- "step-before": d3_svg_lineStepBefore,
- "step-after": d3_svg_lineStepAfter,
- basis: d3_svg_lineBasis,
- "basis-open": d3_svg_lineBasisOpen,
- "basis-closed": d3_svg_lineBasisClosed,
- bundle: d3_svg_lineBundle,
- cardinal: d3_svg_lineCardinal,
- "cardinal-open": d3_svg_lineCardinalOpen,
- "cardinal-closed": d3_svg_lineCardinalClosed,
- monotone: d3_svg_lineMonotone
- });
- d3_svg_lineInterpolators.forEach(function(key, value) {
- value.key = key;
- value.closed = /-closed$/.test(key);
- });
- var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
- d3.svg.line.radial = function() {
- var line = d3_svg_line(d3_svg_lineRadial);
- line.radius = line.x, delete line.x;
- line.angle = line.y, delete line.y;
- return line;
- };
- d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
- d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
- d3.svg.area = function() {
- return d3_svg_area(d3_identity);
- };
- d3.svg.area.radial = function() {
- var area = d3_svg_area(d3_svg_lineRadial);
- area.radius = area.x, delete area.x;
- area.innerRadius = area.x0, delete area.x0;
- area.outerRadius = area.x1, delete area.x1;
- area.angle = area.y, delete area.y;
- area.startAngle = area.y0, delete area.y0;
- area.endAngle = area.y1, delete area.y1;
- return area;
- };
- d3.svg.chord = function() {
- function chord(d, i) {
- var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
- return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
- }
- function subgroup(self, f, d, i) {
- var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
- return {
- r: r,
- a0: a0,
- a1: a1,
- p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
- p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
- };
- }
- function equals(a, b) {
- return a.a0 == b.a0 && a.a1 == b.a1;
- }
- function arc(r, p, a) {
- return "A" + r + "," + r + " 0 " + +(a > Math.PI) + ",1 " + p;
- }
- function curve(r0, p0, r1, p1) {
- return "Q 0,0 " + p1;
- }
- var source = d3_svg_chordSource, target = d3_svg_chordTarget, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
- chord.radius = function(v) {
- if (!arguments.length) return radius;
- radius = d3_functor(v);
- return chord;
- };
- chord.source = function(v) {
- if (!arguments.length) return source;
- source = d3_functor(v);
- return chord;
- };
- chord.target = function(v) {
- if (!arguments.length) return target;
- target = d3_functor(v);
- return chord;
- };
- chord.startAngle = function(v) {
- if (!arguments.length) return startAngle;
- startAngle = d3_functor(v);
- return chord;
- };
- chord.endAngle = function(v) {
- if (!arguments.length) return endAngle;
- endAngle = d3_functor(v);
- return chord;
- };
- return chord;
- };
- d3.svg.diagonal = function() {
- function diagonal(d, i) {
- var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
- x: p0.x,
- y: m
- }, {
- x: p3.x,
- y: m
- }, p3 ];
- p = p.map(projection);
- return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
- }
- var source = d3_svg_chordSource, target = d3_svg_chordTarget, projection = d3_svg_diagonalProjection;
- diagonal.source = function(x) {
- if (!arguments.length) return source;
- source = d3_functor(x);
- return diagonal;
- };
- diagonal.target = function(x) {
- if (!arguments.length) return target;
- target = d3_functor(x);
- return diagonal;
- };
- diagonal.projection = function(x) {
- if (!arguments.length) return projection;
- projection = x;
- return diagonal;
- };
- return diagonal;
- };
- d3.svg.diagonal.radial = function() {
- var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
- diagonal.projection = function(x) {
- return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
- };
- return diagonal;
- };
- d3.svg.mouse = d3.mouse;
- d3.svg.touches = d3.touches;
- d3.svg.symbol = function() {
- function symbol(d, i) {
- return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
- }
- var type = d3_svg_symbolType, size = d3_svg_symbolSize;
- symbol.type = function(x) {
- if (!arguments.length) return type;
- type = d3_functor(x);
- return symbol;
- };
- symbol.size = function(x) {
- if (!arguments.length) return size;
- size = d3_functor(x);
- return symbol;
- };
- return symbol;
- };
- var d3_svg_symbols = d3.map({
- circle: d3_svg_symbolCircle,
- cross: function(size) {
- var r = Math.sqrt(size / 5) / 2;
- return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
- },
- diamond: function(size) {
- var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
- return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
- },
- square: function(size) {
- var r = Math.sqrt(size) / 2;
- return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
- },
- "triangle-down": function(size) {
- var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
- return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
- },
- "triangle-up": function(size) {
- var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
- return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
- }
- });
- d3.svg.symbolTypes = d3_svg_symbols.keys();
- var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180);
- d3.svg.axis = function() {
- function axis(g) {
- g.each(function() {
- var g = d3.select(this);
- var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
- var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", "g").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
- var tick = g.selectAll("g").data(ticks, String), tickEnter = tick.enter().insert("g", "path").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
- var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathEnter = path.enter().append("path").attr("class", "domain"), pathUpdate = d3.transition(path);
- var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
- this.__chart__ = scale1;
- tickEnter.append("line").attr("class", "tick");
- tickEnter.append("text");
- var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
- switch (orient) {
- case "bottom":
- {
- tickTransform = d3_svg_axisX;
- subtickEnter.attr("y2", tickMinorSize);
- subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
- lineEnter.attr("y2", tickMajorSize);
- textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
- lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
- textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
- text.attr("dy", ".71em").attr("text-anchor", "middle");
- pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
- break;
- }
- case "top":
- {
- tickTransform = d3_svg_axisX;
- subtickEnter.attr("y2", -tickMinorSize);
- subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
- lineEnter.attr("y2", -tickMajorSize);
- textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
- lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
- textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
- text.attr("dy", "0em").attr("text-anchor", "middle");
- pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
- break;
- }
- case "left":
- {
- tickTransform = d3_svg_axisY;
- subtickEnter.attr("x2", -tickMinorSize);
- subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
- lineEnter.attr("x2", -tickMajorSize);
- textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
- lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
- textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
- text.attr("dy", ".32em").attr("text-anchor", "end");
- pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
- break;
- }
- case "right":
- {
- tickTransform = d3_svg_axisY;
- subtickEnter.attr("x2", tickMinorSize);
- subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
- lineEnter.attr("x2", tickMajorSize);
- textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
- lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
- textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
- text.attr("dy", ".32em").attr("text-anchor", "start");
- pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
- break;
- }
- }
- if (scale.ticks) {
- tickEnter.call(tickTransform, scale0);
- tickUpdate.call(tickTransform, scale1);
- tickExit.call(tickTransform, scale1);
- subtickEnter.call(tickTransform, scale0);
- subtickUpdate.call(tickTransform, scale1);
- subtickExit.call(tickTransform, scale1);
- } else {
- var dx = scale1.rangeBand() / 2, x = function(d) {
- return scale1(d) + dx;
- };
- tickEnter.call(tickTransform, x);
- tickUpdate.call(tickTransform, x);
- }
- });
- }
- var scale = d3.scale.linear(), orient = "bottom", tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
- axis.scale = function(x) {
- if (!arguments.length) return scale;
- scale = x;
- return axis;
- };
- axis.orient = function(x) {
- if (!arguments.length) return orient;
- orient = x;
- return axis;
- };
- axis.ticks = function() {
- if (!arguments.length) return tickArguments_;
- tickArguments_ = arguments;
- return axis;
- };
- axis.tickValues = function(x) {
- if (!arguments.length) return tickValues;
- tickValues = x;
- return axis;
- };
- axis.tickFormat = function(x) {
- if (!arguments.length) return tickFormat_;
- tickFormat_ = x;
- return axis;
- };
- axis.tickSize = function(x, y, z) {
- if (!arguments.length) return tickMajorSize;
- var n = arguments.length - 1;
- tickMajorSize = +x;
- tickMinorSize = n > 1 ? +y : tickMajorSize;
- tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
- return axis;
- };
- axis.tickPadding = function(x) {
- if (!arguments.length) return tickPadding;
- tickPadding = +x;
- return axis;
- };
- axis.tickSubdivide = function(x) {
- if (!arguments.length) return tickSubdivide;
- tickSubdivide = +x;
- return axis;
- };
- return axis;
- };
- d3.svg.brush = function() {
- function brush(g) {
- g.each(function() {
- var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
- g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
- bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
- fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
- tz.enter().append("g").attr("class", function(d) {
- return "resize " + d;
- }).style("cursor", function(d) {
- return d3_svg_brushCursor[d];
- }).append("rect").attr("x", function(d) {
- return /[ew]$/.test(d) ? -3 : null;
- }).attr("y", function(d) {
- return /^[ns]/.test(d) ? -3 : null;
- }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
- tz.style("display", brush.empty() ? "none" : null);
- tz.exit().remove();
- if (x) {
- e = d3_scaleRange(x);
- bg.attr("x", e[0]).attr("width", e[1] - e[0]);
- redrawX(g);
- }
- if (y) {
- e = d3_scaleRange(y);
- bg.attr("y", e[0]).attr("height", e[1] - e[0]);
- redrawY(g);
- }
- redraw(g);
- });
- }
- function redraw(g) {
- g.selectAll(".resize").attr("transform", function(d) {
- return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
- });
- }
- function redrawX(g) {
- g.select(".extent").attr("x", extent[0][0]);
- g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
- }
- function redrawY(g) {
- g.select(".extent").attr("y", extent[0][1]);
- g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
- }
- function brushstart() {
- function mouse() {
- var touches = d3.event.changedTouches;
- return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
- }
- function keydown() {
- if (d3.event.keyCode == 32) {
- if (!dragging) {
- center = null;
- origin[0] -= extent[1][0];
- origin[1] -= extent[1][1];
- dragging = 2;
- }
- d3_eventCancel();
- }
- }
- function keyup() {
- if (d3.event.keyCode == 32 && dragging == 2) {
- origin[0] += extent[1][0];
- origin[1] += extent[1][1];
- dragging = 0;
- d3_eventCancel();
- }
- }
- function brushmove() {
- var point = mouse(), moved = false;
- if (offset) {
- point[0] += offset[0];
- point[1] += offset[1];
- }
- if (!dragging) {
- if (d3.event.altKey) {
- if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
- origin[0] = extent[+(point[0] < center[0])][0];
- origin[1] = extent[+(point[1] < center[1])][1];
- } else center = null;
- }
- if (resizingX && move1(point, x, 0)) {
- redrawX(g);
- moved = true;
- }
- if (resizingY && move1(point, y, 1)) {
- redrawY(g);
- moved = true;
- }
- if (moved) {
- redraw(g);
- event_({
- type: "brush",
- mode: dragging ? "move" : "resize"
- });
- }
- }
- function move1(point, scale, i) {
- var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
- if (dragging) {
- r0 -= position;
- r1 -= size + position;
- }
- min = Math.max(r0, Math.min(r1, point[i]));
- if (dragging) {
- max = (min += position) + size;
- } else {
- if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
- if (position < min) {
- max = min;
- min = position;
- } else {
- max = position;
- }
- }
- if (extent[0][i] !== min || extent[1][i] !== max) {
- extentDomain = null;
- extent[0][i] = min;
- extent[1][i] = max;
- return true;
- }
- }
- function brushend() {
- brushmove();
- g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
- d3.select("body").style("cursor", null);
- w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
- event_({
- type: "brushend"
- });
- d3_eventCancel();
- }
- var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
- var w = d3.select(window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
- if (dragging) {
- origin[0] = extent[0][0] - origin[0];
- origin[1] = extent[0][1] - origin[1];
- } else if (resizing) {
- var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
- offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
- origin[0] = extent[ex][0];
- origin[1] = extent[ey][1];
- } else if (d3.event.altKey) center = origin.slice();
- g.style("pointer-events", "none").selectAll(".resize").style("display", null);
- d3.select("body").style("cursor", eventTarget.style("cursor"));
- event_({
- type: "brushstart"
- });
- brushmove();
- d3_eventCancel();
- }
- var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
- brush.x = function(z) {
- if (!arguments.length) return x;
- x = z;
- resizes = d3_svg_brushResizes[!x << 1 | !y];
- return brush;
- };
- brush.y = function(z) {
- if (!arguments.length) return y;
- y = z;
- resizes = d3_svg_brushResizes[!x << 1 | !y];
- return brush;
- };
- brush.extent = function(z) {
- var x0, x1, y0, y1, t;
- if (!arguments.length) {
- z = extentDomain || extent;
- if (x) {
- x0 = z[0][0], x1 = z[1][0];
- if (!extentDomain) {
- x0 = extent[0][0], x1 = extent[1][0];
- if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
- if (x1 < x0) t = x0, x0 = x1, x1 = t;
- }
- }
- if (y) {
- y0 = z[0][1], y1 = z[1][1];
- if (!extentDomain) {
- y0 = extent[0][1], y1 = extent[1][1];
- if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
- if (y1 < y0) t = y0, y0 = y1, y1 = t;
- }
- }
- return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
- }
- extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
- if (x) {
- x0 = z[0], x1 = z[1];
- if (y) x0 = x0[0], x1 = x1[0];
- extentDomain[0][0] = x0, extentDomain[1][0] = x1;
- if (x.invert) x0 = x(x0), x1 = x(x1);
- if (x1 < x0) t = x0, x0 = x1, x1 = t;
- extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
- }
- if (y) {
- y0 = z[0], y1 = z[1];
- if (x) y0 = y0[1], y1 = y1[1];
- extentDomain[0][1] = y0, extentDomain[1][1] = y1;
- if (y.invert) y0 = y(y0), y1 = y(y1);
- if (y1 < y0) t = y0, y0 = y1, y1 = t;
- extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
- }
- return brush;
- };
- brush.clear = function() {
- extentDomain = null;
- extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
- return brush;
- };
- brush.empty = function() {
- return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
- };
- return d3.rebind(brush, event, "on");
- };
- var d3_svg_brushCursor = {
- n: "ns-resize",
- e: "ew-resize",
- s: "ns-resize",
- w: "ew-resize",
- nw: "nwse-resize",
- ne: "nesw-resize",
- se: "nwse-resize",
- sw: "nesw-resize"
- };
- var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
- d3.behavior = {};
- d3.behavior.drag = function() {
- function drag() {
- this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
- }
- function mousedown() {
- function point() {
- var p = target.parentNode;
- return touchId ? d3.touches(p).filter(function(p) {
- return p.identifier === touchId;
- })[0] : d3.mouse(p);
- }
- function dragmove() {
- if (!target.parentNode) return dragend();
- var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
- moved |= dx | dy;
- origin_ = p;
- d3_eventCancel();
- event_({
- type: "drag",
- x: p[0] + offset[0],
- y: p[1] + offset[1],
- dx: dx,
- dy: dy
- });
- }
- function dragend() {
- event_({
- type: "dragend"
- });
- if (moved) {
- d3_eventCancel();
- if (d3.event.target === eventTarget) w.on("click.drag", click, true);
- }
- w.on(touchId ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId ? "touchend.drag-" + touchId : "mouseup.drag", null);
- }
- function click() {
- d3_eventCancel();
- w.on("click.drag", null);
- }
- var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches && d3.event.changedTouches[0].identifier, offset, origin_ = point(), moved = 0;
- var w = d3.select(window).on(touchId ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
- if (origin) {
- offset = origin.apply(target, arguments);
- offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
- } else {
- offset = [ 0, 0 ];
- }
- if (!touchId) d3_eventCancel();
- event_({
- type: "dragstart"
- });
- }
- var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
- drag.origin = function(x) {
- if (!arguments.length) return origin;
- origin = x;
- return drag;
- };
- return d3.rebind(drag, event, "on");
- };
- d3.behavior.zoom = function() {
- function zoom() {
- this.on("mousedown.zoom", mousedown).on("mousewheel.zoom", mousewheel).on("mousemove.zoom", mousemove).on("DOMMouseScroll.zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
- }
- function location(p) {
- return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
- }
- function point(l) {
- return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
- }
- function scaleTo(s) {
- scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
- }
- function translateTo(p, l) {
- l = point(l);
- translate[0] += p[0] - l[0];
- translate[1] += p[1] - l[1];
- }
- function dispatch(event) {
- if (x1) x1.domain(x0.range().map(function(x) {
- return (x - translate[0]) / scale;
- }).map(x0.invert));
- if (y1) y1.domain(y0.range().map(function(y) {
- return (y - translate[1]) / scale;
- }).map(y0.invert));
- d3.event.preventDefault();
- event({
- type: "zoom",
- scale: scale,
- translate: translate
- });
- }
- function mousedown() {
- function mousemove() {
- moved = 1;
- translateTo(d3.mouse(target), l);
- dispatch(event_);
- }
- function mouseup() {
- if (moved) d3_eventCancel();
- w.on("mousemove.zoom", null).on("mouseup.zoom", null);
- if (moved && d3.event.target === eventTarget) w.on("click.zoom", click, true);
- }
- function click() {
- d3_eventCancel();
- w.on("click.zoom", null);
- }
- var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
- window.focus();
- d3_eventCancel();
- }
- function mousewheel() {
- if (!translate0) translate0 = location(d3.mouse(this));
- scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
- translateTo(d3.mouse(this), translate0);
- dispatch(event.of(this, arguments));
- }
- function mousemove() {
- translate0 = null;
- }
- function dblclick() {
- var p = d3.mouse(this), l = location(p);
- scaleTo(d3.event.shiftKey ? scale / 2 : scale * 2);
- translateTo(p, l);
- dispatch(event.of(this, arguments));
- }
- function touchstart() {
- var touches = d3.touches(this), now = Date.now();
- scale0 = scale;
- translate0 = {};
- touches.forEach(function(t) {
- translate0[t.identifier] = location(t);
- });
- d3_eventCancel();
- if (touches.length === 1) {
- if (now - touchtime < 500) {
- var p = touches[0], l = location(touches[0]);
- scaleTo(scale * 2);
- translateTo(p, l);
- dispatch(event.of(this, arguments));
- }
- touchtime = now;
- }
- }
- function touchmove() {
- var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
- if (p1 = touches[1]) {
- var p1, l1 = translate0[p1.identifier];
- p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
- l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
- scaleTo(d3.event.scale * scale0);
- }
- translateTo(p0, l0);
- touchtime = null;
- dispatch(event.of(this, arguments));
- }
- var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
- zoom.translate = function(x) {
- if (!arguments.length) return translate;
- translate = x.map(Number);
- return zoom;
- };
- zoom.scale = function(x) {
- if (!arguments.length) return scale;
- scale = +x;
- return zoom;
- };
- zoom.scaleExtent = function(x) {
- if (!arguments.length) return scaleExtent;
- scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
- return zoom;
- };
- zoom.x = function(z) {
- if (!arguments.length) return x1;
- x1 = z;
- x0 = z.copy();
- return zoom;
- };
- zoom.y = function(z) {
- if (!arguments.length) return y1;
- y1 = z;
- y0 = z.copy();
- return zoom;
- };
- return d3.rebind(zoom, event, "on");
- };
- var d3_behavior_zoomDiv, d3_behavior_zoomInfinity = [ 0, Infinity ];
- d3.layout = {};
- d3.layout.bundle = function() {
- return function(links) {
- var paths = [], i = -1, n = links.length;
- while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
- return paths;
- };
- };
- d3.layout.chord = function() {
- function relayout() {
- var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
- chords = [];
- groups = [];
- k = 0, i = -1;
- while (++i < n) {
- x = 0, j = -1;
- while (++j < n) {
- x += matrix[i][j];
- }
- groupSums.push(x);
- subgroupIndex.push(d3.range(n));
- k += x;
- }
- if (sortGroups) {
- groupIndex.sort(function(a, b) {
- return sortGroups(groupSums[a], groupSums[b]);
- });
- }
- if (sortSubgroups) {
- subgroupIndex.forEach(function(d, i) {
- d.sort(function(a, b) {
- return sortSubgroups(matrix[i][a], matrix[i][b]);
- });
- });
- }
- k = (2 * Math.PI - padding * n) / k;
- x = 0, i = -1;
- while (++i < n) {
- x0 = x, j = -1;
- while (++j < n) {
- var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
- subgroups[di + "-" + dj] = {
- index: di,
- subindex: dj,
- startAngle: a0,
- endAngle: a1,
- value: v
- };
- }
- groups[di] = {
- index: di,
- startAngle: x0,
- endAngle: x,
- value: (x - x0) / k
- };
- x += padding;
- }
- i = -1;
- while (++i < n) {
- j = i - 1;
- while (++j < n) {
- var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
- if (source.value || target.value) {
- chords.push(source.value < target.value ? {
- source: target,
- target: source
- } : {
- source: source,
- target: target
- });
- }
- }
- }
- if (sortChords) resort();
- }
- function resort() {
- chords.sort(function(a, b) {
- return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
- });
- }
- var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
- chord.matrix = function(x) {
- if (!arguments.length) return matrix;
- n = (matrix = x) && matrix.length;
- chords = groups = null;
- return chord;
- };
- chord.padding = function(x) {
- if (!arguments.length) return padding;
- padding = x;
- chords = groups = null;
- return chord;
- };
- chord.sortGroups = function(x) {
- if (!arguments.length) return sortGroups;
- sortGroups = x;
- chords = groups = null;
- return chord;
- };
- chord.sortSubgroups = function(x) {
- if (!arguments.length) return sortSubgroups;
- sortSubgroups = x;
- chords = null;
- return chord;
- };
- chord.sortChords = function(x) {
- if (!arguments.length) return sortChords;
- sortChords = x;
- if (chords) resort();
- return chord;
- };
- chord.chords = function() {
- if (!chords) relayout();
- return chords;
- };
- chord.groups = function() {
- if (!groups) relayout();
- return groups;
- };
- return chord;
- };
- d3.layout.force = function() {
- function repulse(node) {
- return function(quad, x1, y1, x2, y2) {
- if (quad.point !== node) {
- var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
- if ((x2 - x1) * dn < theta) {
- var k = quad.charge * dn * dn;
- node.px -= dx * k;
- node.py -= dy * k;
- return true;
- }
- if (quad.point && isFinite(dn)) {
- var k = quad.pointCharge * dn * dn;
- node.px -= dx * k;
- node.py -= dy * k;
- }
- }
- return !quad.charge;
- };
- }
- function dragmove(d) {
- d.px = d3.event.x;
- d.py = d3.event.y;
- force.resume();
- }
- var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, interval, nodes = [], links = [], distances, strengths, charges;
- force.tick = function() {
- if ((alpha *= .99) < .005) {
- event.end({
- type: "end",
- alpha: alpha = 0
- });
- return true;
- }
- var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
- for (i = 0; i < m; ++i) {
- o = links[i];
- s = o.source;
- t = o.target;
- x = t.x - s.x;
- y = t.y - s.y;
- if (l = x * x + y * y) {
- l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
- x *= l;
- y *= l;
- t.x -= x * (k = s.weight / (t.weight + s.weight));
- t.y -= y * k;
- s.x += x * (k = 1 - k);
- s.y += y * k;
- }
- }
- if (k = alpha * gravity) {
- x = size[0] / 2;
- y = size[1] / 2;
- i = -1;
- if (k) while (++i < n) {
- o = nodes[i];
- o.x += (x - o.x) * k;
- o.y += (y - o.y) * k;
- }
- }
- if (charge) {
- d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
- i = -1;
- while (++i < n) {
- if (!(o = nodes[i]).fixed) {
- q.visit(repulse(o));
- }
- }
- }
- i = -1;
- while (++i < n) {
- o = nodes[i];
- if (o.fixed) {
- o.x = o.px;
- o.y = o.py;
- } else {
- o.x -= (o.px - (o.px = o.x)) * friction;
- o.y -= (o.py - (o.py = o.y)) * friction;
- }
- }
- event.tick({
- type: "tick",
- alpha: alpha
- });
- };
- force.nodes = function(x) {
- if (!arguments.length) return nodes;
- nodes = x;
- return force;
- };
- force.links = function(x) {
- if (!arguments.length) return links;
- links = x;
- return force;
- };
- force.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return force;
- };
- force.linkDistance = function(x) {
- if (!arguments.length) return linkDistance;
- linkDistance = d3_functor(x);
- return force;
- };
- force.distance = force.linkDistance;
- force.linkStrength = function(x) {
- if (!arguments.length) return linkStrength;
- linkStrength = d3_functor(x);
- return force;
- };
- force.friction = function(x) {
- if (!arguments.length) return friction;
- friction = x;
- return force;
- };
- force.charge = function(x) {
- if (!arguments.length) return charge;
- charge = typeof x === "function" ? x : +x;
- return force;
- };
- force.gravity = function(x) {
- if (!arguments.length) return gravity;
- gravity = x;
- return force;
- };
- force.theta = function(x) {
- if (!arguments.length) return theta;
- theta = x;
- return force;
- };
- force.alpha = function(x) {
- if (!arguments.length) return alpha;
- if (alpha) {
- if (x > 0) alpha = x; else alpha = 0;
- } else if (x > 0) {
- event.start({
- type: "start",
- alpha: alpha = x
- });
- d3.timer(force.tick);
- }
- return force;
- };
- force.start = function() {
- function position(dimension, size) {
- var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
- while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
- return Math.random() * size;
- }
- function neighbor() {
- if (!neighbors) {
- neighbors = [];
- for (j = 0; j < n; ++j) {
- neighbors[j] = [];
- }
- for (j = 0; j < m; ++j) {
- var o = links[j];
- neighbors[o.source.index].push(o.target);
- neighbors[o.target.index].push(o.source);
- }
- }
- return neighbors[i];
- }
- var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
- for (i = 0; i < n; ++i) {
- (o = nodes[i]).index = i;
- o.weight = 0;
- }
- distances = [];
- strengths = [];
- for (i = 0; i < m; ++i) {
- o = links[i];
- if (typeof o.source == "number") o.source = nodes[o.source];
- if (typeof o.target == "number") o.target = nodes[o.target];
- distances[i] = linkDistance.call(this, o, i);
- strengths[i] = linkStrength.call(this, o, i);
- ++o.source.weight;
- ++o.target.weight;
- }
- for (i = 0; i < n; ++i) {
- o = nodes[i];
- if (isNaN(o.x)) o.x = position("x", w);
- if (isNaN(o.y)) o.y = position("y", h);
- if (isNaN(o.px)) o.px = o.x;
- if (isNaN(o.py)) o.py = o.y;
- }
- charges = [];
- if (typeof charge === "function") {
- for (i = 0; i < n; ++i) {
- charges[i] = +charge.call(this, nodes[i], i);
- }
- } else {
- for (i = 0; i < n; ++i) {
- charges[i] = charge;
- }
- }
- return force.resume();
- };
- force.resume = function() {
- return force.alpha(.1);
- };
- force.stop = function() {
- return force.alpha(0);
- };
- force.drag = function() {
- if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart", d3_layout_forceDragstart).on("drag", dragmove).on("dragend", d3_layout_forceDragend);
- this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
- };
- return d3.rebind(force, event, "on");
- };
- d3.layout.partition = function() {
- function position(node, x, dx, dy) {
- var children = node.children;
- node.x = x;
- node.y = node.depth * dy;
- node.dx = dx;
- node.dy = dy;
- if (children && (n = children.length)) {
- var i = -1, n, c, d;
- dx = node.value ? dx / node.value : 0;
- while (++i < n) {
- position(c = children[i], x, d = c.value * dx, dy);
- x += d;
- }
- }
- }
- function depth(node) {
- var children = node.children, d = 0;
- if (children && (n = children.length)) {
- var i = -1, n;
- while (++i < n) d = Math.max(d, depth(children[i]));
- }
- return 1 + d;
- }
- function partition(d, i) {
- var nodes = hierarchy.call(this, d, i);
- position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
- return nodes;
- }
- var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
- partition.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return partition;
- };
- return d3_layout_hierarchyRebind(partition, hierarchy);
- };
- d3.layout.pie = function() {
- function pie(data, i) {
- var values = data.map(function(d, i) {
- return +value.call(pie, d, i);
- });
- var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
- var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - startAngle) / d3.sum(values);
- var index = d3.range(data.length);
- if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
- return values[j] - values[i];
- } : function(i, j) {
- return sort(data[i], data[j]);
- });
- var arcs = [];
- index.forEach(function(i) {
- var d;
- arcs[i] = {
- data: data[i],
- value: d = values[i],
- startAngle: a,
- endAngle: a += d * k
- };
- });
- return arcs;
- }
- var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * Math.PI;
- pie.value = function(x) {
- if (!arguments.length) return value;
- value = x;
- return pie;
- };
- pie.sort = function(x) {
- if (!arguments.length) return sort;
- sort = x;
- return pie;
- };
- pie.startAngle = function(x) {
- if (!arguments.length) return startAngle;
- startAngle = x;
- return pie;
- };
- pie.endAngle = function(x) {
- if (!arguments.length) return endAngle;
- endAngle = x;
- return pie;
- };
- return pie;
- };
- var d3_layout_pieSortByValue = {};
- d3.layout.stack = function() {
- function stack(data, index) {
- var series = data.map(function(d, i) {
- return values.call(stack, d, i);
- });
- var points = series.map(function(d, i) {
- return d.map(function(v, i) {
- return [ x.call(stack, v, i), y.call(stack, v, i) ];
- });
- });
- var orders = order.call(stack, points, index);
- series = d3.permute(series, orders);
- points = d3.permute(points, orders);
- var offsets = offset.call(stack, points, index);
- var n = series.length, m = series[0].length, i, j, o;
- for (j = 0; j < m; ++j) {
- out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
- for (i = 1; i < n; ++i) {
- out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
- }
- }
- return data;
- }
- var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
- stack.values = function(x) {
- if (!arguments.length) return values;
- values = x;
- return stack;
- };
- stack.order = function(x) {
- if (!arguments.length) return order;
- order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
- return stack;
- };
- stack.offset = function(x) {
- if (!arguments.length) return offset;
- offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
- return stack;
- };
- stack.x = function(z) {
- if (!arguments.length) return x;
- x = z;
- return stack;
- };
- stack.y = function(z) {
- if (!arguments.length) return y;
- y = z;
- return stack;
- };
- stack.out = function(z) {
- if (!arguments.length) return out;
- out = z;
- return stack;
- };
- return stack;
- };
- var d3_layout_stackOrders = d3.map({
- "inside-out": function(data) {
- var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
- return max[a] - max[b];
- }), top = 0, bottom = 0, tops = [], bottoms = [];
- for (i = 0; i < n; ++i) {
- j = index[i];
- if (top < bottom) {
- top += sums[j];
- tops.push(j);
- } else {
- bottom += sums[j];
- bottoms.push(j);
- }
- }
- return bottoms.reverse().concat(tops);
- },
- reverse: function(data) {
- return d3.range(data.length).reverse();
- },
- "default": d3_layout_stackOrderDefault
- });
- var d3_layout_stackOffsets = d3.map({
- silhouette: function(data) {
- var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
- for (j = 0; j < m; ++j) {
- for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
- if (o > max) max = o;
- sums.push(o);
- }
- for (j = 0; j < m; ++j) {
- y0[j] = (max - sums[j]) / 2;
- }
- return y0;
- },
- wiggle: function(data) {
- var n = data.length, x = data[0], m = x.length, max = 0, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
- y0[0] = o = o0 = 0;
- for (j = 1; j < m; ++j) {
- for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
- for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
- for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
- s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
- }
- s2 += s3 * data[i][j][1];
- }
- y0[j] = o -= s1 ? s2 / s1 * dx : 0;
- if (o < o0) o0 = o;
- }
- for (j = 0; j < m; ++j) y0[j] -= o0;
- return y0;
- },
- expand: function(data) {
- var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
- for (j = 0; j < m; ++j) {
- for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
- if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
- }
- for (j = 0; j < m; ++j) y0[j] = 0;
- return y0;
- },
- zero: d3_layout_stackOffsetZero
- });
- d3.layout.histogram = function() {
- function histogram(data, i) {
- var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
- while (++i < m) {
- bin = bins[i] = [];
- bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
- bin.y = 0;
- }
- if (m > 0) {
- i = -1;
- while (++i < n) {
- x = values[i];
- if (x >= range[0] && x <= range[1]) {
- bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
- bin.y += k;
- bin.push(data[i]);
- }
- }
- }
- return bins;
- }
- var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
- histogram.value = function(x) {
- if (!arguments.length) return valuer;
- valuer = x;
- return histogram;
- };
- histogram.range = function(x) {
- if (!arguments.length) return ranger;
- ranger = d3_functor(x);
- return histogram;
- };
- histogram.bins = function(x) {
- if (!arguments.length) return binner;
- binner = typeof x === "number" ? function(range) {
- return d3_layout_histogramBinFixed(range, x);
- } : d3_functor(x);
- return histogram;
- };
- histogram.frequency = function(x) {
- if (!arguments.length) return frequency;
- frequency = !!x;
- return histogram;
- };
- return histogram;
- };
- d3.layout.hierarchy = function() {
- function recurse(data, depth, nodes) {
- var childs = children.call(hierarchy, data, depth), node = d3_layout_hierarchyInline ? data : {
- data: data
- };
- node.depth = depth;
- nodes.push(node);
- if (childs && (n = childs.length)) {
- var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
- while (++i < n) {
- d = recurse(childs[i], j, nodes);
- d.parent = node;
- c.push(d);
- v += d.value;
- }
- if (sort) c.sort(sort);
- if (value) node.value = v;
- } else if (value) {
- node.value = +value.call(hierarchy, data, depth) || 0;
- }
- return node;
- }
- function revalue(node, depth) {
- var children = node.children, v = 0;
- if (children && (n = children.length)) {
- var i = -1, n, j = depth + 1;
- while (++i < n) v += revalue(children[i], j);
- } else if (value) {
- v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0;
- }
- if (value) node.value = v;
- return v;
- }
- function hierarchy(d) {
- var nodes = [];
- recurse(d, 0, nodes);
- return nodes;
- }
- var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
- hierarchy.sort = function(x) {
- if (!arguments.length) return sort;
- sort = x;
- return hierarchy;
- };
- hierarchy.children = function(x) {
- if (!arguments.length) return children;
- children = x;
- return hierarchy;
- };
- hierarchy.value = function(x) {
- if (!arguments.length) return value;
- value = x;
- return hierarchy;
- };
- hierarchy.revalue = function(root) {
- revalue(root, 0);
- return root;
- };
- return hierarchy;
- };
- var d3_layout_hierarchyInline = false;
- d3.layout.pack = function() {
- function pack(d, i) {
- var nodes = hierarchy.call(this, d, i), root = nodes[0];
- root.x = 0;
- root.y = 0;
- d3_layout_treeVisitAfter(root, function(d) {
- d.r = Math.sqrt(d.value);
- });
- d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
- var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
- if (padding > 0) {
- var dr = padding * k / 2;
- d3_layout_treeVisitAfter(root, function(d) {
- d.r += dr;
- });
- d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
- d3_layout_treeVisitAfter(root, function(d) {
- d.r -= dr;
- });
- k = Math.max(2 * root.r / w, 2 * root.r / h);
- }
- d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
- return nodes;
- }
- var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
- pack.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return pack;
- };
- pack.padding = function(_) {
- if (!arguments.length) return padding;
- padding = +_;
- return pack;
- };
- return d3_layout_hierarchyRebind(pack, hierarchy);
- };
- d3.layout.cluster = function() {
- function cluster(d, i) {
- var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0, kx, ky;
- d3_layout_treeVisitAfter(root, function(node) {
- var children = node.children;
- if (children && children.length) {
- node.x = d3_layout_clusterX(children);
- node.y = d3_layout_clusterY(children);
- } else {
- node.x = previousNode ? x += separation(node, previousNode) : 0;
- node.y = 0;
- previousNode = node;
- }
- });
- var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
- d3_layout_treeVisitAfter(root, function(node) {
- node.x = (node.x - x0) / (x1 - x0) * size[0];
- node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
- });
- return nodes;
- }
- var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
- cluster.separation = function(x) {
- if (!arguments.length) return separation;
- separation = x;
- return cluster;
- };
- cluster.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return cluster;
- };
- return d3_layout_hierarchyRebind(cluster, hierarchy);
- };
- d3.layout.tree = function() {
- function tree(d, i) {
- function firstWalk(node, previousSibling) {
- var children = node.children, layout = node._tree;
- if (children && (n = children.length)) {
- var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
- while (++i < n) {
- child = children[i];
- firstWalk(child, previousChild);
- ancestor = apportion(child, previousChild, ancestor);
- previousChild = child;
- }
- d3_layout_treeShift(node);
- var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
- if (previousSibling) {
- layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
- layout.mod = layout.prelim - midpoint;
- } else {
- layout.prelim = midpoint;
- }
- } else {
- if (previousSibling) {
- layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
- }
- }
- }
- function secondWalk(node, x) {
- node.x = node._tree.prelim + x;
- var children = node.children;
- if (children && (n = children.length)) {
- var i = -1, n;
- x += node._tree.mod;
- while (++i < n) {
- secondWalk(children[i], x);
- }
- }
- }
- function apportion(node, previousSibling, ancestor) {
- if (previousSibling) {
- var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
- while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
- vom = d3_layout_treeLeft(vom);
- vop = d3_layout_treeRight(vop);
- vop._tree.ancestor = node;
- shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
- if (shift > 0) {
- d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
- sip += shift;
- sop += shift;
- }
- sim += vim._tree.mod;
- sip += vip._tree.mod;
- som += vom._tree.mod;
- sop += vop._tree.mod;
- }
- if (vim && !d3_layout_treeRight(vop)) {
- vop._tree.thread = vim;
- vop._tree.mod += sim - sop;
- }
- if (vip && !d3_layout_treeLeft(vom)) {
- vom._tree.thread = vip;
- vom._tree.mod += sip - som;
- ancestor = node;
- }
- }
- return ancestor;
- }
- var nodes = hierarchy.call(this, d, i), root = nodes[0];
- d3_layout_treeVisitAfter(root, function(node, previousSibling) {
- node._tree = {
- ancestor: node,
- prelim: 0,
- mod: 0,
- change: 0,
- shift: 0,
- number: previousSibling ? previousSibling._tree.number + 1 : 0
- };
- });
- firstWalk(root);
- secondWalk(root, -root._tree.prelim);
- var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
- d3_layout_treeVisitAfter(root, function(node) {
- node.x = (node.x - x0) / (x1 - x0) * size[0];
- node.y = node.depth / y1 * size[1];
- delete node._tree;
- });
- return nodes;
- }
- var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
- tree.separation = function(x) {
- if (!arguments.length) return separation;
- separation = x;
- return tree;
- };
- tree.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return tree;
- };
- return d3_layout_hierarchyRebind(tree, hierarchy);
- };
- d3.layout.treemap = function() {
- function scale(children, k) {
- var i = -1, n = children.length, child, area;
- while (++i < n) {
- area = (child = children[i]).value * (k < 0 ? 0 : k);
- child.area = isNaN(area) || area <= 0 ? 0 : area;
- }
- }
- function squarify(node) {
- var children = node.children;
- if (children && children.length) {
- var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = Math.min(rect.dx, rect.dy), n;
- scale(remaining, rect.dx * rect.dy / node.value);
- row.area = 0;
- while ((n = remaining.length) > 0) {
- row.push(child = remaining[n - 1]);
- row.area += child.area;
- if ((score = worst(row, u)) <= best) {
- remaining.pop();
- best = score;
- } else {
- row.area -= row.pop().area;
- position(row, u, rect, false);
- u = Math.min(rect.dx, rect.dy);
- row.length = row.area = 0;
- best = Infinity;
- }
- }
- if (row.length) {
- position(row, u, rect, true);
- row.length = row.area = 0;
- }
- children.forEach(squarify);
- }
- }
- function stickify(node) {
- var children = node.children;
- if (children && children.length) {
- var rect = pad(node), remaining = children.slice(), child, row = [];
- scale(remaining, rect.dx * rect.dy / node.value);
- row.area = 0;
- while (child = remaining.pop()) {
- row.push(child);
- row.area += child.area;
- if (child.z != null) {
- position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
- row.length = row.area = 0;
- }
- }
- children.forEach(stickify);
- }
- }
- function worst(row, u) {
- var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
- while (++i < n) {
- if (!(r = row[i].area)) continue;
- if (r < rmin) rmin = r;
- if (r > rmax) rmax = r;
- }
- s *= s;
- u *= u;
- return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
- }
- function position(row, u, rect, flush) {
- var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
- if (u == rect.dx) {
- if (flush || v > rect.dy) v = rect.dy;
- while (++i < n) {
- o = row[i];
- o.x = x;
- o.y = y;
- o.dy = v;
- x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
- }
- o.z = true;
- o.dx += rect.x + rect.dx - x;
- rect.y += v;
- rect.dy -= v;
- } else {
- if (flush || v > rect.dx) v = rect.dx;
- while (++i < n) {
- o = row[i];
- o.x = x;
- o.y = y;
- o.dx = v;
- y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
- }
- o.z = false;
- o.dy += rect.y + rect.dy - y;
- rect.x += v;
- rect.dx -= v;
- }
- }
- function treemap(d) {
- var nodes = stickies || hierarchy(d), root = nodes[0];
- root.x = 0;
- root.y = 0;
- root.dx = size[0];
- root.dy = size[1];
- if (stickies) hierarchy.revalue(root);
- scale([ root ], root.dx * root.dy / root.value);
- (stickies ? stickify : squarify)(root);
- if (sticky) stickies = nodes;
- return nodes;
- }
- var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, ratio = .5 * (1 + Math.sqrt(5));
- treemap.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return treemap;
- };
- treemap.padding = function(x) {
- function padFunction(node) {
- var p = x.call(treemap, node, node.depth);
- return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
- }
- function padConstant(node) {
- return d3_layout_treemapPad(node, x);
- }
- if (!arguments.length) return padding;
- var type;
- pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], padConstant) : padConstant;
- return treemap;
- };
- treemap.round = function(x) {
- if (!arguments.length) return round != Number;
- round = x ? Math.round : Number;
- return treemap;
- };
- treemap.sticky = function(x) {
- if (!arguments.length) return sticky;
- sticky = x;
- stickies = null;
- return treemap;
- };
- treemap.ratio = function(x) {
- if (!arguments.length) return ratio;
- ratio = x;
- return treemap;
- };
- return d3_layout_hierarchyRebind(treemap, hierarchy);
- };
- d3.csv = d3_dsv(",", "text/csv");
- d3.tsv = d3_dsv(" ", "text/tab-separated-values");
- d3.geo = {};
- var d3_geo_radians = Math.PI / 180;
- d3.geo.azimuthal = function() {
- function azimuthal(coordinates) {
- var x1 = coordinates[0] * d3_geo_radians - x0, y1 = coordinates[1] * d3_geo_radians, cx1 = Math.cos(x1), sx1 = Math.sin(x1), cy1 = Math.cos(y1), sy1 = Math.sin(y1), cc = mode !== "orthographic" ? sy0 * sy1 + cy0 * cy1 * cx1 : null, c, k = mode === "stereographic" ? 1 / (1 + cc) : mode === "gnomonic" ? 1 / cc : mode === "equidistant" ? (c = Math.acos(cc), c ? c / Math.sin(c) : 0) : mode === "equalarea" ? Math.sqrt(2 / (1 + cc)) : 1, x = k * cy1 * sx1, y = k * (sy0 * cy1 * cx1 - cy0 * sy1);
- return [ scale * x + translate[0], scale * y + translate[1] ];
- }
- var mode = "orthographic", origin, scale = 200, translate = [ 480, 250 ], x0, y0, cy0, sy0;
- azimuthal.invert = function(coordinates) {
- var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale, p = Math.sqrt(x * x + y * y), c = mode === "stereographic" ? 2 * Math.atan(p) : mode === "gnomonic" ? Math.atan(p) : mode === "equidistant" ? p : mode === "equalarea" ? 2 * Math.asin(.5 * p) : Math.asin(p), sc = Math.sin(c), cc = Math.cos(c);
- return [ (x0 + Math.atan2(x * sc, p * cy0 * cc + y * sy0 * sc)) / d3_geo_radians, Math.asin(cc * sy0 - (p ? y * sc * cy0 / p : 0)) / d3_geo_radians ];
- };
- azimuthal.mode = function(x) {
- if (!arguments.length) return mode;
- mode = x + "";
- return azimuthal;
- };
- azimuthal.origin = function(x) {
- if (!arguments.length) return origin;
- origin = x;
- x0 = origin[0] * d3_geo_radians;
- y0 = origin[1] * d3_geo_radians;
- cy0 = Math.cos(y0);
- sy0 = Math.sin(y0);
- return azimuthal;
- };
- azimuthal.scale = function(x) {
- if (!arguments.length) return scale;
- scale = +x;
- return azimuthal;
- };
- azimuthal.translate = function(x) {
- if (!arguments.length) return translate;
- translate = [ +x[0], +x[1] ];
- return azimuthal;
- };
- return azimuthal.origin([ 0, 0 ]);
- };
- d3.geo.albers = function() {
- function albers(coordinates) {
- var t = n * (d3_geo_radians * coordinates[0] - lng0), p = Math.sqrt(C - 2 * n * Math.sin(d3_geo_radians * coordinates[1])) / n;
- return [ scale * p * Math.sin(t) + translate[0], scale * (p * Math.cos(t) - p0) + translate[1] ];
- }
- function reload() {
- var phi1 = d3_geo_radians * parallels[0], phi2 = d3_geo_radians * parallels[1], lat0 = d3_geo_radians * origin[1], s = Math.sin(phi1), c = Math.cos(phi1);
- lng0 = d3_geo_radians * origin[0];
- n = .5 * (s + Math.sin(phi2));
- C = c * c + 2 * n * s;
- p0 = Math.sqrt(C - 2 * n * Math.sin(lat0)) / n;
- return albers;
- }
- var origin = [ -98, 38 ], parallels = [ 29.5, 45.5 ], scale = 1e3, translate = [ 480, 250 ], lng0, n, C, p0;
- albers.invert = function(coordinates) {
- var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale, p0y = p0 + y, t = Math.atan2(x, p0y), p = Math.sqrt(x * x + p0y * p0y);
- return [ (lng0 + t / n) / d3_geo_radians, Math.asin((C - p * p * n * n) / (2 * n)) / d3_geo_radians ];
- };
- albers.origin = function(x) {
- if (!arguments.length) return origin;
- origin = [ +x[0], +x[1] ];
- return reload();
- };
- albers.parallels = function(x) {
- if (!arguments.length) return parallels;
- parallels = [ +x[0], +x[1] ];
- return reload();
- };
- albers.scale = function(x) {
- if (!arguments.length) return scale;
- scale = +x;
- return albers;
- };
- albers.translate = function(x) {
- if (!arguments.length) return translate;
- translate = [ +x[0], +x[1] ];
- return albers;
- };
- return reload();
- };
- d3.geo.albersUsa = function() {
- function albersUsa(coordinates) {
- var lon = coordinates[0], lat = coordinates[1];
- return (lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48)(coordinates);
- }
- var lower48 = d3.geo.albers();
- var alaska = d3.geo.albers().origin([ -160, 60 ]).parallels([ 55, 65 ]);
- var hawaii = d3.geo.albers().origin([ -160, 20 ]).parallels([ 8, 18 ]);
- var puertoRico = d3.geo.albers().origin([ -60, 10 ]).parallels([ 8, 18 ]);
- albersUsa.scale = function(x) {
- if (!arguments.length) return lower48.scale();
- lower48.scale(x);
- alaska.scale(x * .6);
- hawaii.scale(x);
- puertoRico.scale(x * 1.5);
- return albersUsa.translate(lower48.translate());
- };
- albersUsa.translate = function(x) {
- if (!arguments.length) return lower48.translate();
- var dz = lower48.scale() / 1e3, dx = x[0], dy = x[1];
- lower48.translate(x);
- alaska.translate([ dx - 400 * dz, dy + 170 * dz ]);
- hawaii.translate([ dx - 190 * dz, dy + 200 * dz ]);
- puertoRico.translate([ dx + 580 * dz, dy + 430 * dz ]);
- return albersUsa;
- };
- return albersUsa.scale(lower48.scale());
- };
- d3.geo.bonne = function() {
- function bonne(coordinates) {
- var x = coordinates[0] * d3_geo_radians - x0, y = coordinates[1] * d3_geo_radians - y0;
- if (y1) {
- var p = c1 + y1 - y, E = x * Math.cos(y) / p;
- x = p * Math.sin(E);
- y = p * Math.cos(E) - c1;
- } else {
- x *= Math.cos(y);
- y *= -1;
- }
- return [ scale * x + translate[0], scale * y + translate[1] ];
- }
- var scale = 200, translate = [ 480, 250 ], x0, y0, y1, c1;
- bonne.invert = function(coordinates) {
- var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale;
- if (y1) {
- var c = c1 + y, p = Math.sqrt(x * x + c * c);
- y = c1 + y1 - p;
- x = x0 + p * Math.atan2(x, c) / Math.cos(y);
- } else {
- y *= -1;
- x /= Math.cos(y);
- }
- return [ x / d3_geo_radians, y / d3_geo_radians ];
- };
- bonne.parallel = function(x) {
- if (!arguments.length) return y1 / d3_geo_radians;
- c1 = 1 / Math.tan(y1 = x * d3_geo_radians);
- return bonne;
- };
- bonne.origin = function(x) {
- if (!arguments.length) return [ x0 / d3_geo_radians, y0 / d3_geo_radians ];
- x0 = x[0] * d3_geo_radians;
- y0 = x[1] * d3_geo_radians;
- return bonne;
- };
- bonne.scale = function(x) {
- if (!arguments.length) return scale;
- scale = +x;
- return bonne;
- };
- bonne.translate = function(x) {
- if (!arguments.length) return translate;
- translate = [ +x[0], +x[1] ];
- return bonne;
- };
- return bonne.origin([ 0, 0 ]).parallel(45);
- };
- d3.geo.equirectangular = function() {
- function equirectangular(coordinates) {
- var x = coordinates[0] / 360, y = -coordinates[1] / 360;
- return [ scale * x + translate[0], scale * y + translate[1] ];
- }
- var scale = 500, translate = [ 480, 250 ];
- equirectangular.invert = function(coordinates) {
- var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale;
- return [ 360 * x, -360 * y ];
- };
- equirectangular.scale = function(x) {
- if (!arguments.length) return scale;
- scale = +x;
- return equirectangular;
- };
- equirectangular.translate = function(x) {
- if (!arguments.length) return translate;
- translate = [ +x[0], +x[1] ];
- return equirectangular;
- };
- return equirectangular;
- };
- d3.geo.mercator = function() {
- function mercator(coordinates) {
- var x = coordinates[0] / 360, y = -(Math.log(Math.tan(Math.PI / 4 + coordinates[1] * d3_geo_radians / 2)) / d3_geo_radians) / 360;
- return [ scale * x + translate[0], scale * Math.max(-.5, Math.min(.5, y)) + translate[1] ];
- }
- var scale = 500, translate = [ 480, 250 ];
- mercator.invert = function(coordinates) {
- var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale;
- return [ 360 * x, 2 * Math.atan(Math.exp(-360 * y * d3_geo_radians)) / d3_geo_radians - 90 ];
- };
- mercator.scale = function(x) {
- if (!arguments.length) return scale;
- scale = +x;
- return mercator;
- };
- mercator.translate = function(x) {
- if (!arguments.length) return translate;
- translate = [ +x[0], +x[1] ];
- return mercator;
- };
- return mercator;
- };
- d3.geo.path = function() {
- function path(d, i) {
- if (typeof pointRadius === "function") pointCircle = d3_path_circle(pointRadius.apply(this, arguments));
- pathType(d);
- var result = buffer.length ? buffer.join("") : null;
- buffer = [];
- return result;
- }
- function project(coordinates) {
- return projection(coordinates).join(",");
- }
- function polygonArea(coordinates) {
- var sum = area(coordinates[0]), i = 0, n = coordinates.length;
- while (++i < n) sum -= area(coordinates[i]);
- return sum;
- }
- function polygonCentroid(coordinates) {
- var polygon = d3.geom.polygon(coordinates[0].map(projection)), area = polygon.area(), centroid = polygon.centroid(area < 0 ? (area *= -1, 1) : -1), x = centroid[0], y = centroid[1], z = area, i = 0, n = coordinates.length;
- while (++i < n) {
- polygon = d3.geom.polygon(coordinates[i].map(projection));
- area = polygon.area();
- centroid = polygon.centroid(area < 0 ? (area *= -1, 1) : -1);
- x -= centroid[0];
- y -= centroid[1];
- z -= area;
- }
- return [ x, y, 6 * z ];
- }
- function area(coordinates) {
- return Math.abs(d3.geom.polygon(coordinates.map(projection)).area());
- }
- var pointRadius = 4.5, pointCircle = d3_path_circle(pointRadius), projection = d3.geo.albersUsa(), buffer = [];
- var pathType = d3_geo_type({
- FeatureCollection: function(o) {
- var features = o.features, i = -1, n = features.length;
- while (++i < n) buffer.push(pathType(features[i].geometry));
- },
- Feature: function(o) {
- pathType(o.geometry);
- },
- Point: function(o) {
- buffer.push("M", project(o.coordinates), pointCircle);
- },
- MultiPoint: function(o) {
- var coordinates = o.coordinates, i = -1, n = coordinates.length;
- while (++i < n) buffer.push("M", project(coordinates[i]), pointCircle);
- },
- LineString: function(o) {
- var coordinates = o.coordinates, i = -1, n = coordinates.length;
- buffer.push("M");
- while (++i < n) buffer.push(project(coordinates[i]), "L");
- buffer.pop();
- },
- MultiLineString: function(o) {
- var coordinates = o.coordinates, i = -1, n = coordinates.length, subcoordinates, j, m;
- while (++i < n) {
- subcoordinates = coordinates[i];
- j = -1;
- m = subcoordinates.length;
- buffer.push("M");
- while (++j < m) buffer.push(project(subcoordinates[j]), "L");
- buffer.pop();
- }
- },
- Polygon: function(o) {
- var coordinates = o.coordinates, i = -1, n = coordinates.length, subcoordinates, j, m;
- while (++i < n) {
- subcoordinates = coordinates[i];
- j = -1;
- if ((m = subcoordinates.length - 1) > 0) {
- buffer.push("M");
- while (++j < m) buffer.push(project(subcoordinates[j]), "L");
- buffer[buffer.length - 1] = "Z";
- }
- }
- },
- MultiPolygon: function(o) {
- var coordinates = o.coordinates, i = -1, n = coordinates.length, subcoordinates, j, m, subsubcoordinates, k, p;
- while (++i < n) {
- subcoordinates = coordinates[i];
- j = -1;
- m = subcoordinates.length;
- while (++j < m) {
- subsubcoordinates = subcoordinates[j];
- k = -1;
- if ((p = subsubcoordinates.length - 1) > 0) {
- buffer.push("M");
- while (++k < p) buffer.push(project(subsubcoordinates[k]), "L");
- buffer[buffer.length - 1] = "Z";
- }
- }
- }
- },
- GeometryCollection: function(o) {
- var geometries = o.geometries, i = -1, n = geometries.length;
- while (++i < n) buffer.push(pathType(geometries[i]));
- }
- });
- var areaType = path.area = d3_geo_type({
- FeatureCollection: function(o) {
- var area = 0, features = o.features, i = -1, n = features.length;
- while (++i < n) area += areaType(features[i]);
- return area;
- },
- Feature: function(o) {
- return areaType(o.geometry);
- },
- Polygon: function(o) {
- return polygonArea(o.coordinates);
- },
- MultiPolygon: function(o) {
- var sum = 0, coordinates = o.coordinates, i = -1, n = coordinates.length;
- while (++i < n) sum += polygonArea(coordinates[i]);
- return sum;
- },
- GeometryCollection: function(o) {
- var sum = 0, geometries = o.geometries, i = -1, n = geometries.length;
- while (++i < n) sum += areaType(geometries[i]);
- return sum;
- }
- }, 0);
- var centroidType = path.centroid = d3_geo_type({
- Feature: function(o) {
- return centroidType(o.geometry);
- },
- Polygon: function(o) {
- var centroid = polygonCentroid(o.coordinates);
- return [ centroid[0] / centroid[2], centroid[1] / centroid[2] ];
- },
- MultiPolygon: function(o) {
- var area = 0, coordinates = o.coordinates, centroid, x = 0, y = 0, z = 0, i = -1, n = coordinates.length;
- while (++i < n) {
- centroid = polygonCentroid(coordinates[i]);
- x += centroid[0];
- y += centroid[1];
- z += centroid[2];
- }
- return [ x / z, y / z ];
- }
- });
- path.projection = function(x) {
- projection = x;
- return path;
- };
- path.pointRadius = function(x) {
- if (typeof x === "function") pointRadius = x; else {
- pointRadius = +x;
- pointCircle = d3_path_circle(pointRadius);
- }
- return path;
- };
- return path;
- };
- d3.geo.bounds = function(feature) {
- var left = Infinity, bottom = Infinity, right = -Infinity, top = -Infinity;
- d3_geo_bounds(feature, function(x, y) {
- if (x < left) left = x;
- if (x > right) right = x;
- if (y < bottom) bottom = y;
- if (y > top) top = y;
- });
- return [ [ left, bottom ], [ right, top ] ];
- };
- var d3_geo_boundsTypes = {
- Feature: d3_geo_boundsFeature,
- FeatureCollection: d3_geo_boundsFeatureCollection,
- GeometryCollection: d3_geo_boundsGeometryCollection,
- LineString: d3_geo_boundsLineString,
- MultiLineString: d3_geo_boundsMultiLineString,
- MultiPoint: d3_geo_boundsLineString,
- MultiPolygon: d3_geo_boundsMultiPolygon,
- Point: d3_geo_boundsPoint,
- Polygon: d3_geo_boundsPolygon
- };
- d3.geo.circle = function() {
- function circle() {}
- function visible(point) {
- return arc.distance(point) < radians;
- }
- function clip(coordinates) {
- var i = -1, n = coordinates.length, clipped = [], p0, p1, p2, d0, d1;
- while (++i < n) {
- d1 = arc.distance(p2 = coordinates[i]);
- if (d1 < radians) {
- if (p1) clipped.push(d3_geo_greatArcInterpolate(p1, p2)((d0 - radians) / (d0 - d1)));
- clipped.push(p2);
- p0 = p1 = null;
- } else {
- p1 = p2;
- if (!p0 && clipped.length) {
- clipped.push(d3_geo_greatArcInterpolate(clipped[clipped.length - 1], p1)((radians - d0) / (d1 - d0)));
- p0 = p1;
- }
- }
- d0 = d1;
- }
- p0 = coordinates[0];
- p1 = clipped[0];
- if (p1 && p2[0] === p0[0] && p2[1] === p0[1] && !(p2[0] === p1[0] && p2[1] === p1[1])) {
- clipped.push(p1);
- }
- return resample(clipped);
- }
- function resample(coordinates) {
- var i = 0, n = coordinates.length, j, m, resampled = n ? [ coordinates[0] ] : coordinates, resamples, origin = arc.source();
- while (++i < n) {
- resamples = arc.source(coordinates[i - 1])(coordinates[i]).coordinates;
- for (j = 0, m = resamples.length; ++j < m; ) resampled.push(resamples[j]);
- }
- arc.source(origin);
- return resampled;
- }
- var origin = [ 0, 0 ], degrees = 90 - .01, radians = degrees * d3_geo_radians, arc = d3.geo.greatArc().source(origin).target(d3_identity);
- circle.clip = function(d) {
- if (typeof origin === "function") arc.source(origin.apply(this, arguments));
- return clipType(d) || null;
- };
- var clipType = d3_geo_type({
- FeatureCollection: function(o) {
- var features = o.features.map(clipType).filter(d3_identity);
- return features && (o = Object.create(o), o.features = features, o);
- },
- Feature: function(o) {
- var geometry = clipType(o.geometry);
- return geometry && (o = Object.create(o), o.geometry = geometry, o);
- },
- Point: function(o) {
- return visible(o.coordinates) && o;
- },
- MultiPoint: function(o) {
- var coordinates = o.coordinates.filter(visible);
- return coordinates.length && {
- type: o.type,
- coordinates: coordinates
- };
- },
- LineString: function(o) {
- var coordinates = clip(o.coordinates);
- return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
- },
- MultiLineString: function(o) {
- var coordinates = o.coordinates.map(clip).filter(function(d) {
- return d.length;
- });
- return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
- },
- Polygon: function(o) {
- var coordinates = o.coordinates.map(clip);
- return coordinates[0].length && (o = Object.create(o), o.coordinates = coordinates, o);
- },
- MultiPolygon: function(o) {
- var coordinates = o.coordinates.map(function(d) {
- return d.map(clip);
- }).filter(function(d) {
- return d[0].length;
- });
- return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
- },
- GeometryCollection: function(o) {
- var geometries = o.geometries.map(clipType).filter(d3_identity);
- return geometries.length && (o = Object.create(o), o.geometries = geometries, o);
- }
- });
- circle.origin = function(x) {
- if (!arguments.length) return origin;
- origin = x;
- if (typeof origin !== "function") arc.source(origin);
- return circle;
- };
- circle.angle = function(x) {
- if (!arguments.length) return degrees;
- radians = (degrees = +x) * d3_geo_radians;
- return circle;
- };
- return d3.rebind(circle, arc, "precision");
- };
- d3.geo.greatArc = function() {
- function greatArc() {
- var d = greatArc.distance.apply(this, arguments), t = 0, dt = precision / d, coordinates = [ p0 ];
- while ((t += dt) < 1) coordinates.push(interpolate(t));
- coordinates.push(p1);
- return {
- type: "LineString",
- coordinates: coordinates
- };
- }
- var source = d3_geo_greatArcSource, p0, target = d3_geo_greatArcTarget, p1, precision = 6 * d3_geo_radians, interpolate = d3_geo_greatArcInterpolator();
- greatArc.distance = function() {
- if (typeof source === "function") interpolate.source(p0 = source.apply(this, arguments));
- if (typeof target === "function") interpolate.target(p1 = target.apply(this, arguments));
- return interpolate.distance();
- };
- greatArc.source = function(_) {
- if (!arguments.length) return source;
- source = _;
- if (typeof source !== "function") interpolate.source(p0 = source);
- return greatArc;
- };
- greatArc.target = function(_) {
- if (!arguments.length) return target;
- target = _;
- if (typeof target !== "function") interpolate.target(p1 = target);
- return greatArc;
- };
- greatArc.precision = function(_) {
- if (!arguments.length) return precision / d3_geo_radians;
- precision = _ * d3_geo_radians;
- return greatArc;
- };
- return greatArc;
- };
- d3.geo.greatCircle = d3.geo.circle;
- d3.geom = {};
- d3.geom.contour = function(grid, start) {
- var s = start || d3_geom_contourStart(grid), c = [], x = s[0], y = s[1], dx = 0, dy = 0, pdx = NaN, pdy = NaN, i = 0;
- do {
- i = 0;
- if (grid(x - 1, y - 1)) i += 1;
- if (grid(x, y - 1)) i += 2;
- if (grid(x - 1, y)) i += 4;
- if (grid(x, y)) i += 8;
- if (i === 6) {
- dx = pdy === -1 ? -1 : 1;
- dy = 0;
- } else if (i === 9) {
- dx = 0;
- dy = pdx === 1 ? -1 : 1;
- } else {
- dx = d3_geom_contourDx[i];
- dy = d3_geom_contourDy[i];
- }
- if (dx != pdx && dy != pdy) {
- c.push([ x, y ]);
- pdx = dx;
- pdy = dy;
- }
- x += dx;
- y += dy;
- } while (s[0] != x || s[1] != y);
- return c;
- };
- var d3_geom_contourDx = [ 1, 0, 1, 1, -1, 0, -1, 1, 0, 0, 0, 0, -1, 0, -1, NaN ], d3_geom_contourDy = [ 0, -1, 0, 0, 0, -1, 0, 0, 1, -1, 1, 1, 0, -1, 0, NaN ];
- d3.geom.hull = function(vertices) {
- if (vertices.length < 3) return [];
- var len = vertices.length, plen = len - 1, points = [], stack = [], i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
- for (i = 1; i < len; ++i) {
- if (vertices[i][1] < vertices[h][1]) {
- h = i;
- } else if (vertices[i][1] == vertices[h][1]) {
- h = vertices[i][0] < vertices[h][0] ? i : h;
- }
- }
- for (i = 0; i < len; ++i) {
- if (i === h) continue;
- y1 = vertices[i][1] - vertices[h][1];
- x1 = vertices[i][0] - vertices[h][0];
- points.push({
- angle: Math.atan2(y1, x1),
- index: i
- });
- }
- points.sort(function(a, b) {
- return a.angle - b.angle;
- });
- a = points[0].angle;
- v = points[0].index;
- u = 0;
- for (i = 1; i < plen; ++i) {
- j = points[i].index;
- if (a == points[i].angle) {
- x1 = vertices[v][0] - vertices[h][0];
- y1 = vertices[v][1] - vertices[h][1];
- x2 = vertices[j][0] - vertices[h][0];
- y2 = vertices[j][1] - vertices[h][1];
- if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
- points[i].index = -1;
- } else {
- points[u].index = -1;
- a = points[i].angle;
- u = i;
- v = j;
- }
- } else {
- a = points[i].angle;
- u = i;
- v = j;
- }
- }
- stack.push(h);
- for (i = 0, j = 0; i < 2; ++j) {
- if (points[j].index !== -1) {
- stack.push(points[j].index);
- i++;
- }
- }
- sp = stack.length;
- for (; j < plen; ++j) {
- if (points[j].index === -1) continue;
- while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
- --sp;
- }
- stack[sp++] = points[j].index;
- }
- var poly = [];
- for (i = 0; i < sp; ++i) {
- poly.push(vertices[stack[i]]);
- }
- return poly;
- };
- d3.geom.polygon = function(coordinates) {
- coordinates.area = function() {
- var i = 0, n = coordinates.length, a = coordinates[n - 1][0] * coordinates[0][1], b = coordinates[n - 1][1] * coordinates[0][0];
- while (++i < n) {
- a += coordinates[i - 1][0] * coordinates[i][1];
- b += coordinates[i - 1][1] * coordinates[i][0];
- }
- return (b - a) * .5;
- };
- coordinates.centroid = function(k) {
- var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
- if (!arguments.length) k = -1 / (6 * coordinates.area());
- while (++i < n) {
- a = b;
- b = coordinates[i];
- c = a[0] * b[1] - b[0] * a[1];
- x += (a[0] + b[0]) * c;
- y += (a[1] + b[1]) * c;
- }
- return [ x * k, y * k ];
- };
- coordinates.clip = function(subject) {
- var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
- while (++i < n) {
- input = subject.slice();
- subject.length = 0;
- b = coordinates[i];
- c = input[(m = input.length) - 1];
- j = -1;
- while (++j < m) {
- d = input[j];
- if (d3_geom_polygonInside(d, a, b)) {
- if (!d3_geom_polygonInside(c, a, b)) {
- subject.push(d3_geom_polygonIntersect(c, d, a, b));
- }
- subject.push(d);
- } else if (d3_geom_polygonInside(c, a, b)) {
- subject.push(d3_geom_polygonIntersect(c, d, a, b));
- }
- c = d;
- }
- a = b;
- }
- return subject;
- };
- return coordinates;
- };
- d3.geom.voronoi = function(vertices) {
- var polygons = vertices.map(function() {
- return [];
- });
- d3_voronoi_tessellate(vertices, function(e) {
- var s1, s2, x1, x2, y1, y2;
- if (e.a === 1 && e.b >= 0) {
- s1 = e.ep.r;
- s2 = e.ep.l;
- } else {
- s1 = e.ep.l;
- s2 = e.ep.r;
- }
- if (e.a === 1) {
- y1 = s1 ? s1.y : -1e6;
- x1 = e.c - e.b * y1;
- y2 = s2 ? s2.y : 1e6;
- x2 = e.c - e.b * y2;
- } else {
- x1 = s1 ? s1.x : -1e6;
- y1 = e.c - e.a * x1;
- x2 = s2 ? s2.x : 1e6;
- y2 = e.c - e.a * x2;
- }
- var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
- polygons[e.region.l.index].push(v1, v2);
- polygons[e.region.r.index].push(v1, v2);
- });
- return polygons.map(function(polygon, i) {
- var cx = vertices[i][0], cy = vertices[i][1];
- polygon.forEach(function(v) {
- v.angle = Math.atan2(v[0] - cx, v[1] - cy);
- });
- return polygon.sort(function(a, b) {
- return a.angle - b.angle;
- }).filter(function(d, i) {
- return !i || d.angle - polygon[i - 1].angle > 1e-10;
- });
- });
- };
- var d3_voronoi_opposite = {
- l: "r",
- r: "l"
- };
- d3.geom.delaunay = function(vertices) {
- var edges = vertices.map(function() {
- return [];
- }), triangles = [];
- d3_voronoi_tessellate(vertices, function(e) {
- edges[e.region.l.index].push(vertices[e.region.r.index]);
- });
- edges.forEach(function(edge, i) {
- var v = vertices[i], cx = v[0], cy = v[1];
- edge.forEach(function(v) {
- v.angle = Math.atan2(v[0] - cx, v[1] - cy);
- });
- edge.sort(function(a, b) {
- return a.angle - b.angle;
- });
- for (var j = 0, m = edge.length - 1; j < m; j++) {
- triangles.push([ v, edge[j], edge[j + 1] ]);
- }
- });
- return triangles;
- };
- d3.geom.quadtree = function(points, x1, y1, x2, y2) {
- function insert(n, p, x1, y1, x2, y2) {
- if (isNaN(p.x) || isNaN(p.y)) return;
- if (n.leaf) {
- var v = n.point;
- if (v) {
- if (Math.abs(v.x - p.x) + Math.abs(v.y - p.y) < .01) {
- insertChild(n, p, x1, y1, x2, y2);
- } else {
- n.point = null;
- insertChild(n, v, x1, y1, x2, y2);
- insertChild(n, p, x1, y1, x2, y2);
- }
- } else {
- n.point = p;
- }
- } else {
- insertChild(n, p, x1, y1, x2, y2);
- }
- }
- function insertChild(n, p, x1, y1, x2, y2) {
- var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = p.x >= sx, bottom = p.y >= sy, i = (bottom << 1) + right;
- n.leaf = false;
- n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
- if (right) x1 = sx; else x2 = sx;
- if (bottom) y1 = sy; else y2 = sy;
- insert(n, p, x1, y1, x2, y2);
- }
- var p, i = -1, n = points.length;
- if (n && isNaN(points[0].x)) points = points.map(d3_geom_quadtreePoint);
- if (arguments.length < 5) {
- if (arguments.length === 3) {
- y2 = x2 = y1;
- y1 = x1;
- } else {
- x1 = y1 = Infinity;
- x2 = y2 = -Infinity;
- while (++i < n) {
- p = points[i];
- if (p.x < x1) x1 = p.x;
- if (p.y < y1) y1 = p.y;
- if (p.x > x2) x2 = p.x;
- if (p.y > y2) y2 = p.y;
- }
- var dx = x2 - x1, dy = y2 - y1;
- if (dx > dy) y2 = y1 + dx; else x2 = x1 + dy;
- }
- }
- var root = d3_geom_quadtreeNode();
- root.add = function(p) {
- insert(root, p, x1, y1, x2, y2);
- };
- root.visit = function(f) {
- d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
- };
- points.forEach(root.add);
- return root;
- };
- d3.time = {};
- var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
- d3_time_utc.prototype = {
- getDate: function() {
- return this._.getUTCDate();
- },
- getDay: function() {
- return this._.getUTCDay();
- },
- getFullYear: function() {
- return this._.getUTCFullYear();
- },
- getHours: function() {
- return this._.getUTCHours();
- },
- getMilliseconds: function() {
- return this._.getUTCMilliseconds();
- },
- getMinutes: function() {
- return this._.getUTCMinutes();
- },
- getMonth: function() {
- return this._.getUTCMonth();
- },
- getSeconds: function() {
- return this._.getUTCSeconds();
- },
- getTime: function() {
- return this._.getTime();
- },
- getTimezoneOffset: function() {
- return 0;
- },
- valueOf: function() {
- return this._.valueOf();
- },
- setDate: function() {
- d3_time_prototype.setUTCDate.apply(this._, arguments);
- },
- setDay: function() {
- d3_time_prototype.setUTCDay.apply(this._, arguments);
- },
- setFullYear: function() {
- d3_time_prototype.setUTCFullYear.apply(this._, arguments);
- },
- setHours: function() {
- d3_time_prototype.setUTCHours.apply(this._, arguments);
- },
- setMilliseconds: function() {
- d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
- },
- setMinutes: function() {
- d3_time_prototype.setUTCMinutes.apply(this._, arguments);
- },
- setMonth: function() {
- d3_time_prototype.setUTCMonth.apply(this._, arguments);
- },
- setSeconds: function() {
- d3_time_prototype.setUTCSeconds.apply(this._, arguments);
- },
- setTime: function() {
- d3_time_prototype.setTime.apply(this._, arguments);
- }
- };
- var d3_time_prototype = Date.prototype;
- var d3_time_formatDateTime = "%a %b %e %H:%M:%S %Y", d3_time_formatDate = "%m/%d/%y", d3_time_formatTime = "%H:%M:%S";
- var d3_time_days = d3_time_daySymbols, d3_time_dayAbbreviations = d3_time_days.map(d3_time_formatAbbreviate), d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = d3_time_months.map(d3_time_formatAbbreviate);
- d3.time.format = function(template) {
- function format(date) {
- var string = [], i = -1, j = 0, c, f;
- while (++i < n) {
- if (template.charCodeAt(i) == 37) {
- string.push(template.substring(j, i), (f = d3_time_formats[c = template.charAt(++i)]) ? f(date) : c);
- j = i + 1;
- }
- }
- string.push(template.substring(j, i));
- return string.join("");
- }
- var n = template.length;
- format.parse = function(string) {
- var d = {
- y: 1900,
- m: 0,
- d: 1,
- H: 0,
- M: 0,
- S: 0,
- L: 0
- }, i = d3_time_parse(d, template, string, 0);
- if (i != string.length) return null;
- if ("p" in d) d.H = d.H % 12 + d.p * 12;
- var date = new d3_time;
- date.setFullYear(d.y, d.m, d.d);
- date.setHours(d.H, d.M, d.S, d.L);
- return date;
- };
- format.toString = function() {
- return template;
- };
- return format;
- };
- var d3_time_zfill2 = d3.format("02d"), d3_time_zfill3 = d3.format("03d"), d3_time_zfill4 = d3.format("04d"), d3_time_sfill2 = d3.format("2d");
- var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
- var d3_time_formats = {
- a: function(d) {
- return d3_time_dayAbbreviations[d.getDay()];
- },
- A: function(d) {
- return d3_time_days[d.getDay()];
- },
- b: function(d) {
- return d3_time_monthAbbreviations[d.getMonth()];
- },
- B: function(d) {
- return d3_time_months[d.getMonth()];
- },
- c: d3.time.format(d3_time_formatDateTime),
- d: function(d) {
- return d3_time_zfill2(d.getDate());
- },
- e: function(d) {
- return d3_time_sfill2(d.getDate());
- },
- H: function(d) {
- return d3_time_zfill2(d.getHours());
- },
- I: function(d) {
- return d3_time_zfill2(d.getHours() % 12 || 12);
- },
- j: function(d) {
- return d3_time_zfill3(1 + d3.time.dayOfYear(d));
- },
- L: function(d) {
- return d3_time_zfill3(d.getMilliseconds());
- },
- m: function(d) {
- return d3_time_zfill2(d.getMonth() + 1);
- },
- M: function(d) {
- return d3_time_zfill2(d.getMinutes());
- },
- p: function(d) {
- return d.getHours() >= 12 ? "PM" : "AM";
- },
- S: function(d) {
- return d3_time_zfill2(d.getSeconds());
- },
- U: function(d) {
- return d3_time_zfill2(d3.time.sundayOfYear(d));
- },
- w: function(d) {
- return d.getDay();
- },
- W: function(d) {
- return d3_time_zfill2(d3.time.mondayOfYear(d));
- },
- x: d3.time.format(d3_time_formatDate),
- X: d3.time.format(d3_time_formatTime),
- y: function(d) {
- return d3_time_zfill2(d.getFullYear() % 100);
- },
- Y: function(d) {
- return d3_time_zfill4(d.getFullYear() % 1e4);
- },
- Z: d3_time_zone,
- "%": function(d) {
- return "%";
- }
- };
- var d3_time_parsers = {
- a: d3_time_parseWeekdayAbbrev,
- A: d3_time_parseWeekday,
- b: d3_time_parseMonthAbbrev,
- B: d3_time_parseMonth,
- c: d3_time_parseLocaleFull,
- d: d3_time_parseDay,
- e: d3_time_parseDay,
- H: d3_time_parseHour24,
- I: d3_time_parseHour24,
- L: d3_time_parseMilliseconds,
- m: d3_time_parseMonthNumber,
- M: d3_time_parseMinutes,
- p: d3_time_parseAmPm,
- S: d3_time_parseSeconds,
- x: d3_time_parseLocaleDate,
- X: d3_time_parseLocaleTime,
- y: d3_time_parseYear,
- Y: d3_time_parseFullYear
- };
- var d3_time_numberRe = /^\s*\d+/;
- var d3_time_amPmLookup = d3.map({
- am: 0,
- pm: 1
- });
- d3.time.format.utc = function(template) {
- function format(date) {
- try {
- d3_time = d3_time_utc;
- var utc = new d3_time;
- utc._ = date;
- return local(utc);
- } finally {
- d3_time = Date;
- }
- }
- var local = d3.time.format(template);
- format.parse = function(string) {
- try {
- d3_time = d3_time_utc;
- var date = local.parse(string);
- return date && date._;
- } finally {
- d3_time = Date;
- }
- };
- format.toString = local.toString;
- return format;
- };
- var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
- d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso;
- d3_time_formatIsoNative.parse = function(string) {
- var date = new Date(string);
- return isNaN(date) ? null : date;
- };
- d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
- d3.time.second = d3_time_interval(function(date) {
- return new d3_time(Math.floor(date / 1e3) * 1e3);
- }, function(date, offset) {
- date.setTime(date.getTime() + Math.floor(offset) * 1e3);
- }, function(date) {
- return date.getSeconds();
- });
- d3.time.seconds = d3.time.second.range;
- d3.time.seconds.utc = d3.time.second.utc.range;
- d3.time.minute = d3_time_interval(function(date) {
- return new d3_time(Math.floor(date / 6e4) * 6e4);
- }, function(date, offset) {
- date.setTime(date.getTime() + Math.floor(offset) * 6e4);
- }, function(date) {
- return date.getMinutes();
- });
- d3.time.minutes = d3.time.minute.range;
- d3.time.minutes.utc = d3.time.minute.utc.range;
- d3.time.hour = d3_time_interval(function(date) {
- var timezone = date.getTimezoneOffset() / 60;
- return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
- }, function(date, offset) {
- date.setTime(date.getTime() + Math.floor(offset) * 36e5);
- }, function(date) {
- return date.getHours();
- });
- d3.time.hours = d3.time.hour.range;
- d3.time.hours.utc = d3.time.hour.utc.range;
- d3.time.day = d3_time_interval(function(date) {
- var day = new d3_time(1970, 0);
- day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
- return day;
- }, function(date, offset) {
- date.setDate(date.getDate() + offset);
- }, function(date) {
- return date.getDate() - 1;
- });
- d3.time.days = d3.time.day.range;
- d3.time.days.utc = d3.time.day.utc.range;
- d3.time.dayOfYear = function(date) {
- var year = d3.time.year(date);
- return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
- };
- d3_time_daySymbols.forEach(function(day, i) {
- day = day.toLowerCase();
- i = 7 - i;
- var interval = d3.time[day] = d3_time_interval(function(date) {
- (date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
- return date;
- }, function(date, offset) {
- date.setDate(date.getDate() + Math.floor(offset) * 7);
- }, function(date) {
- var day = d3.time.year(date).getDay();
- return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
- });
- d3.time[day + "s"] = interval.range;
- d3.time[day + "s"].utc = interval.utc.range;
- d3.time[day + "OfYear"] = function(date) {
- var day = d3.time.year(date).getDay();
- return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
- };
- });
- d3.time.week = d3.time.sunday;
- d3.time.weeks = d3.time.sunday.range;
- d3.time.weeks.utc = d3.time.sunday.utc.range;
- d3.time.weekOfYear = d3.time.sundayOfYear;
- d3.time.month = d3_time_interval(function(date) {
- date = d3.time.day(date);
- date.setDate(1);
- return date;
- }, function(date, offset) {
- date.setMonth(date.getMonth() + offset);
- }, function(date) {
- return date.getMonth();
- });
- d3.time.months = d3.time.month.range;
- d3.time.months.utc = d3.time.month.utc.range;
- d3.time.year = d3_time_interval(function(date) {
- date = d3.time.day(date);
- date.setMonth(0, 1);
- return date;
- }, function(date, offset) {
- date.setFullYear(date.getFullYear() + offset);
- }, function(date) {
- return date.getFullYear();
- });
- d3.time.years = d3.time.year.range;
- d3.time.years.utc = d3.time.year.utc.range;
- var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
- var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
- var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), function(d) {
- return true;
- } ], [ d3.time.format("%B"), function(d) {
- return d.getMonth();
- } ], [ d3.time.format("%b %d"), function(d) {
- return d.getDate() != 1;
- } ], [ d3.time.format("%a %d"), function(d) {
- return d.getDay() && d.getDate() != 1;
- } ], [ d3.time.format("%I %p"), function(d) {
- return d.getHours();
- } ], [ d3.time.format("%I:%M"), function(d) {
- return d.getMinutes();
- } ], [ d3.time.format(":%S"), function(d) {
- return d.getSeconds();
- } ], [ d3.time.format(".%L"), function(d) {
- return d.getMilliseconds();
- } ] ];
- var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
- d3_time_scaleLocalMethods.year = function(extent, m) {
- return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
- };
- d3.time.scale = function() {
- return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
- };
- var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
- return [ m[0].utc, m[1] ];
- });
- var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), function(d) {
- return true;
- } ], [ d3.time.format.utc("%B"), function(d) {
- return d.getUTCMonth();
- } ], [ d3.time.format.utc("%b %d"), function(d) {
- return d.getUTCDate() != 1;
- } ], [ d3.time.format.utc("%a %d"), function(d) {
- return d.getUTCDay() && d.getUTCDate() != 1;
- } ], [ d3.time.format.utc("%I %p"), function(d) {
- return d.getUTCHours();
- } ], [ d3.time.format.utc("%I:%M"), function(d) {
- return d.getUTCMinutes();
- } ], [ d3.time.format.utc(":%S"), function(d) {
- return d.getUTCSeconds();
- } ], [ d3.time.format.utc(".%L"), function(d) {
- return d.getUTCMilliseconds();
- } ] ];
- var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
- d3_time_scaleUTCMethods.year = function(extent, m) {
- return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
- };
- d3.time.scale.utc = function() {
- return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
- };
-})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js
deleted file mode 100755
index cc47f1ea..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(){function e(e,t){try{for(var n in t)Object.defineProperty(e.prototype,n,{value:t[n],enumerable:!1})}catch(r){e.prototype=t}}function t(e){var t=-1,n=e.length,r=[];while(++t<n)r.push(e[t]);return r}function n(e){return Array.prototype.slice.call(e)}function r(){}function i(e){return e}function s(){return this}function o(){return!0}function u(e){return typeof e=="function"?e:function(){return e}}function a(e,t,n){return function(){var r=n.apply(t,arguments);return arguments.length?e:r}}function f(e){return e!=null&&!isNaN(e)}function l(e){return e.length}function c(e){return e==null}function h(e){return e.trim().replace(/\s+/g," ")}function p(e){var t=1;while(e*t%1)t*=10;return t}function d(){}function v(e){function t(){var t=n,r=-1,i=t.length,s;while(++r<i)(s=t[r].on)&&s.apply(this,arguments);return e}var n=[],i=new r;return t.on=function(t,r){var s=i.get(t),o;return arguments.length<2?s&&s.on:(s&&(s.on=null,n=n.slice(0,o=n.indexOf(s)).concat(n.slice(o+1)),i.remove(t)),r&&n.push(i.set(t,{on:r})),e)},t}function m(e,t){return t-(e?1+Math.floor(Math.log(e+Math.pow(10,1+Math.floor(Math.log(e)/Math.LN10)-t))/Math.LN10):1)}function g(e){return e+""}function y(e){var t=e.lastIndexOf("."),n=t>=0?e.substring(t):(t=e.length,""),r=[];while(t>0)r.push(e.substring(t-=3,t+3));return r.reverse().join(",")+n}function b(e,t){var n=Math.pow(10,Math.abs(8-t)*3);return{scale:t>8?function(e){return e/n}:function(e){return e*n},symbol:e}}function w(e){return function(t){return t<=0?0:t>=1?1:e(t)}}function E(e){return function(t){return 1-e(1-t)}}function S(e){return function(t){return.5*(t<.5?e(2*t):2-e(2-2*t))}}function x(e){return e}function T(e){return function(t){return Math.pow(t,e)}}function N(e){return 1-Math.cos(e*Math.PI/2)}function C(e){return Math.pow(2,10*(e-1))}function k(e){return 1-Math.sqrt(1-e*e)}function L(e,t){var n;return arguments.length<2&&(t=.45),arguments.length<1?(e=1,n=t/4):n=t/(2*Math.PI)*Math.asin(1/e),function(r){return 1+e*Math.pow(2,10*-r)*Math.sin((r-n)*2*Math.PI/t)}}function A(e){return e||(e=1.70158),function(t){return t*t*((e+1)*t-e)}}function O(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}function M(){d3.event.stopPropagation(),d3.event.preventDefault()}function _(){var e=d3.event,t;while(t=e.sourceEvent)e=t;return e}function D(e){var t=new d,n=0,r=arguments.length;while(++n<r)t[arguments[n]]=v(t);return t.of=function(n,r){return function(i){try{var s=i.sourceEvent=d3.event;i.target=e,d3.event=i,t[i.type].apply(n,r)}finally{d3.event=s}}},t}function P(e){var t=[e.a,e.b],n=[e.c,e.d],r=B(t),i=H(t,n),s=B(j(n,t,-i))||0;t[0]*n[1]<n[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-n[0],n[1]))*fs,this.translate=[e.e,e.f],this.scale=[r,s],this.skew=s?Math.atan2(i,s)*fs:0}function H(e,t){return e[0]*t[0]+e[1]*t[1]}function B(e){var t=Math.sqrt(H(e,e));return t&&(e[0]/=t,e[1]/=t),t}function j(e,t,n){return e[0]+=n*t[0],e[1]+=n*t[1],e}function F(e){return e=="transform"?d3.interpolateTransform:d3.interpolate}function I(e,t){return t=t-(e=+e)?1/(t-e):0,function(n){return(n-e)*t}}function q(e,t){return t=t-(e=+e)?1/(t-e):0,function(n){return Math.max(0,Math.min(1,(n-e)*t))}}function R(e,t,n){return new U(e,t,n)}function U(e,t,n){this.r=e,this.g=t,this.b=n}function z(e){return e<16?"0"+Math.max(0,e).toString(16):Math.min(255,e).toString(16)}function W(e,t,n){var r=0,i=0,s=0,o,u,a;o=/([a-z]+)\((.*)\)/i.exec(e);if(o){u=o[2].split(",");switch(o[1]){case"hsl":return n(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(J(u[0]),J(u[1]),J(u[2]))}}return(a=hs.get(e))?t(a.r,a.g,a.b):(e!=null&&e.charAt(0)==="#"&&(e.length===4?(r=e.charAt(1),r+=r,i=e.charAt(2),i+=i,s=e.charAt(3),s+=s):e.length===7&&(r=e.substring(1,3),i=e.substring(3,5),s=e.substring(5,7)),r=parseInt(r,16),i=parseInt(i,16),s=parseInt(s,16)),t(r,i,s))}function X(e,t,n){var r=Math.min(e/=255,t/=255,n/=255),i=Math.max(e,t,n),s=i-r,o,u,a=(i+r)/2;return s?(u=a<.5?s/(i+r):s/(2-i-r),e==i?o=(t-n)/s+(t<n?6:0):t==i?o=(n-e)/s+2:o=(e-t)/s+4,o*=60):u=o=0,K(o,u,a)}function V(e,t,n){e=$(e),t=$(t),n=$(n);var r=ot((.4124564*e+.3575761*t+.1804375*n)/ds),i=ot((.2126729*e+.7151522*t+.072175*n)/vs),s=ot((.0193339*e+.119192*t+.9503041*n)/ms);return tt(116*i-16,500*(r-i),200*(i-s))}function $(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function J(e){var t=parseFloat(e);return e.charAt(e.length-1)==="%"?Math.round(t*2.55):t}function K(e,t,n){return new Q(e,t,n)}function Q(e,t,n){this.h=e,this.s=t,this.l=n}function G(e,t,n){function r(e){return e>360?e-=360:e<0&&(e+=360),e<60?s+(o-s)*e/60:e<180?o:e<240?s+(o-s)*(240-e)/60:s}function i(e){return Math.round(r(e)*255)}var s,o;return e%=360,e<0&&(e+=360),t=t<0?0:t>1?1:t,n=n<0?0:n>1?1:n,o=n<=.5?n*(1+t):n+t-n*t,s=2*n-o,R(i(e+120),i(e),i(e-120))}function Y(e,t,n){return new Z(e,t,n)}function Z(e,t,n){this.h=e,this.c=t,this.l=n}function et(e,t,n){return tt(n,Math.cos(e*=Math.PI/180)*t,Math.sin(e)*t)}function tt(e,t,n){return new nt(e,t,n)}function nt(e,t,n){this.l=e,this.a=t,this.b=n}function rt(e,t,n){var r=(e+16)/116,i=r+t/500,s=r-n/200;return i=st(i)*ds,r=st(r)*vs,s=st(s)*ms,R(ut(3.2404542*i-1.5371385*r-.4985314*s),ut(-0.969266*i+1.8760108*r+.041556*s),ut(.0556434*i-.2040259*r+1.0572252*s))}function it(e,t,n){return Y(Math.atan2(n,t)/Math.PI*180,Math.sqrt(t*t+n*n),e)}function st(e){return e>.206893034?e*e*e:(e-4/29)/7.787037}function ot(e){return e>.008856?Math.pow(e,1/3):7.787037*e+4/29}function ut(e){return Math.round(255*(e<=.00304?12.92*e:1.055*Math.pow(e,1/2.4)-.055))}function at(e){return Ki(e,Ss),e}function ft(e){return function(){return gs(e,this)}}function lt(e){return function(){return ys(e,this)}}function ct(e,t){function n(){this.removeAttribute(e)}function r(){this.removeAttributeNS(e.space,e.local)}function i(){this.setAttribute(e,t)}function s(){this.setAttributeNS(e.space,e.local,t)}function o(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}function u(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}return e=d3.ns.qualify(e),t==null?e.local?r:n:typeof t=="function"?e.local?u:o:e.local?s:i}function ht(e){return new RegExp("(?:^|\\s+)"+d3.requote(e)+"(?:\\s+|$)","g")}function pt(e,t){function n(){var n=-1;while(++n<i)e[n](this,t)}function r(){var n=-1,r=t.apply(this,arguments);while(++n<i)e[n](this,r)}e=e.trim().split(/\s+/).map(dt);var i=e.length;return typeof t=="function"?r:n}function dt(e){var t=ht(e);return function(n,r){if(i=n.classList)return r?i.add(e):i.remove(e);var i=n.className,s=i.baseVal!=null,o=s?i.baseVal:i;r?(t.lastIndex=0,t.test(o)||(o=h(o+" "+e),s?i.baseVal=o:n.className=o)):o&&(o=h(o.replace(t," ")),s?i.baseVal=o:n.className=o)}}function vt(e,t,n){function r(){this.style.removeProperty(e)}function i(){this.style.setProperty(e,t,n)}function s(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}return t==null?r:typeof t=="function"?s:i}function mt(e,t){function n(){delete this[e]}function r(){this[e]=t}function i(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}return t==null?n:typeof t=="function"?i:r}function gt(e){return{__data__:e}}function yt(e){return function(){return Es(this,e)}}function bt(e){return arguments.length||(e=d3.ascending),function(t,n){return e(t&&t.__data__,n&&n.__data__)}}function wt(e,t,n){function r(){var t=this[s];t&&(this.removeEventListener(e,t,t.$),delete this[s])}function i(){function i(e){var n=d3.event;d3.event=e,u[0]=o.__data__;try{t.apply(o,u)}finally{d3.event=n}}var o=this,u=arguments;r.call(this),this.addEventListener(e,this[s]=i,i.$=n),i._=t}var s="__on"+e,o=e.indexOf(".");return o>0&&(e=e.substring(0,o)),t?i:r}function Et(e,t){for(var n=0,r=e.length;n<r;n++)for(var i=e[n],s=0,o=i.length,u;s<o;s++)(u=i[s])&&t(u,s,n);return e}function St(e){return Ki(e,Ts),e}function xt(e,t,n){Ki(e,Ns);var i=new r,s=d3.dispatch("start","end"),o=Ds;return e.id=t,e.time=n,e.tween=function(t,n){return arguments.length<2?i.get(t):(n==null?i.remove(t):i.set(t,n),e)},e.ease=function(t){return arguments.length?(o=typeof t=="function"?t:d3.ease.apply(d3,arguments),e):o},e.each=function(t,n){return arguments.length<2?Tt.call(e,t):(s.on(t,n),e)},d3.timer(function(r){return Et(e,function(e,u,a){function f(r){return v.active>t?c():(v.active=t,i.forEach(function(t,n){(n=n.call(e,m,u))&&h.push(n)}),s.start.call(e,m,u),l(r)||d3.timer(l,0,n),1)}function l(n){if(v.active!==t)return c();var r=(n-p)/d,i=o(r),a=h.length;while(a>0)h[--a].call(e,i);if(r>=1)return c(),ks=t,s.end.call(e,m,u),ks=0,1}function c(){return--v.count||delete e.__transition__,1}var h=[],p=e.delay,d=e.duration,v=(e=e.node).__transition__||(e.__transition__={active:0,count:0}),m=e.__data__;++v.count,p<=r?f(r):d3.timer(f,p,n)})},0,n),e}function Tt(e){var t=ks,n=Ds,r=Ms,i=_s;return ks=this.id,Ds=this.ease(),Et(this,function(t,n,r){Ms=t.delay,_s=t.duration,e.call(t=t.node,t.__data__,n,r)}),ks=t,Ds=n,Ms=r,_s=i,this}function Nt(e,t,n){return n!=""&&Ps}function Ct(e,t){return d3.tween(e,F(t))}function kt(){var e,t=Date.now(),n=Hs;while(n)e=t-n.then,e>=n.delay&&(n.flush=n.callback(e)),n=n.next;var r=Lt()-t;r>24?(isFinite(r)&&(clearTimeout(js),js=setTimeout(kt,r)),Bs=0):(Bs=1,Fs(kt))}function Lt(){var e=null,t=Hs,n=Infinity;while(t)t.flush?t=e?e.next=t.next:Hs=t.next:(n=Math.min(n,t.then+t.delay),t=(e=t).next);return n}function At(e,t){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();if(Is<0&&(window.scrollX||window.scrollY)){n=d3.select(document.body).append("svg").style("position","absolute").style("top",0).style("left",0);var i=n[0][0].getScreenCTM();Is=!i.f&&!i.e,n.remove()}return Is?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}var s=e.getBoundingClientRect();return[t.clientX-s.left-e.clientLeft,t.clientY-s.top-e.clientTop]}function Ot(){}function Mt(e){var t=e[0],n=e[e.length-1];return t<n?[t,n]:[n,t]}function _t(e){return e.rangeExtent?e.rangeExtent():Mt(e.range())}function Dt(e,t){var n=0,r=e.length-1,i=e[n],s=e[r],o;s<i&&(o=n,n=r,r=o,o=i,i=s,s=o);if(t=t(s-i))e[n]=t.floor(i),e[r]=t.ceil(s);return e}function Pt(){return Math}function Ht(e,t,n,r){function i(){var i=Math.min(e.length,t.length)>2?Ut:Rt,a=r?q:I;return o=i(e,t,a,n),u=i(t,e,a,d3.interpolate),s}function s(e){return o(e)}var o,u;return s.invert=function(e){return u(e)},s.domain=function(t){return arguments.length?(e=t.map(Number),i()):e},s.range=function(e){return arguments.length?(t=e,i()):t},s.rangeRound=function(e){return s.range(e).interpolate(d3.interpolateRound)},s.clamp=function(e){return arguments.length?(r=e,i()):r},s.interpolate=function(e){return arguments.length?(n=e,i()):n},s.ticks=function(t){return It(e,t)},s.tickFormat=function(t){return qt(e,t)},s.nice=function(){return Dt(e,jt),i()},s.copy=function(){return Ht(e,t,n,r)},i()}function Bt(e,t){return d3.rebind(e,t,"range","rangeRound","interpolate","clamp")}function jt(e){return e=Math.pow(10,Math.round(Math.log(e)/Math.LN10)-1),e&&{floor:function(t){return Math.floor(t/e)*e},ceil:function(t){return Math.ceil(t/e)*e}}}function Ft(e,t){var n=Mt(e),r=n[1]-n[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),s=t/r*i;return s<=.15?i*=10:s<=.35?i*=5:s<=.75&&(i*=2),n[0]=Math.ceil(n[0]/i)*i,n[1]=Math.floor(n[1]/i)*i+i*.5,n[2]=i,n}function It(e,t){return d3.range.apply(d3,Ft(e,t))}function qt(e,t){return d3.format(",."+Math.max(0,-Math.floor(Math.log(Ft(e,t)[2])/Math.LN10+.01))+"f")}function Rt(e,t,n,r){var i=n(e[0],e[1]),s=r(t[0],t[1]);return function(e){return s(i(e))}}function Ut(e,t,n,r){var i=[],s=[],o=0,u=Math.min(e.length,t.length)-1;e[u]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());while(++o<=u)i.push(n(e[o-1],e[o])),s.push(r(t[o-1],t[o]));return function(t){var n=d3.bisect(e,t,1,u)-1;return s[n](i[n](t))}}function zt(e,t){function n(n){return e(t(n))}var r=t.pow;return n.invert=function(t){return r(e.invert(t))},n.domain=function(i){return arguments.length?(t=i[0]<0?Xt:Wt,r=t.pow,e.domain(i.map(t)),n):e.domain().map(r)},n.nice=function(){return e.domain(Dt(e.domain(),Pt)),n},n.ticks=function(){var n=Mt(e.domain()),i=[];if(n.every(isFinite)){var s=Math.floor(n[0]),o=Math.ceil(n[1]),u=r(n[0]),a=r(n[1]);if(t===Xt){i.push(r(s));for(;s++<o;)for(var f=9;f>0;f--)i.push(r(s)*f)}else{for(;s<o;s++)for(var f=1;f<10;f++)i.push(r(s)*f);i.push(r(s))}for(s=0;i[s]<u;s++);for(o=i.length;i[o-1]>a;o--);i=i.slice(s,o)}return i},n.tickFormat=function(e,i){arguments.length<2&&(i=qs);if(arguments.length<1)return i;var s=Math.max(.1,e/n.ticks().length),o=t===Xt?(u=-1e-12,Math.floor):(u=1e-12,Math.ceil),u;return function(e){return e/r(o(t(e)+u))<=s?i(e):""}},n.copy=function(){return zt(e.copy(),t)},Bt(n,e)}function Wt(e){return Math.log(e<0?0:e)/Math.LN10}function Xt(e){return-Math.log(e>0?0:-e)/Math.LN10}function Vt(e,t){function n(t){return e(r(t))}var r=$t(t),i=$t(1/t);return n.invert=function(t){return i(e.invert(t))},n.domain=function(t){return arguments.length?(e.domain(t.map(r)),n):e.domain().map(i)},n.ticks=function(e){return It(n.domain(),e)},n.tickFormat=function(e){return qt(n.domain(),e)},n.nice=function(){return n.domain(Dt(n.domain(),jt))},n.exponent=function(e){if(!arguments.length)return t;var s=n.domain();return r=$t(t=e),i=$t(1/t),n.domain(s)},n.copy=function(){return Vt(e.copy(),t)},Bt(n,e)}function $t(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Jt(e,t){function n(t){return o[((s.get(t)||s.set(t,e.push(t)))-1)%o.length]}function i(t,n){return d3.range(e.length).map(function(e){return t+n*e})}var s,o,u;return n.domain=function(i){if(!arguments.length)return e;e=[],s=new r;var o=-1,u=i.length,a;while(++o<u)s.has(a=i[o])||s.set(a,e.push(a));return n[t.t].apply(n,t.a)},n.range=function(e){return arguments.length?(o=e,u=0,t={t:"range",a:arguments},n):o},n.rangePoints=function(r,s){arguments.length<2&&(s=0);var a=r[0],f=r[1],l=(f-a)/(Math.max(1,e.length-1)+s);return o=i(e.length<2?(a+f)/2:a+l*s/2,l),u=0,t={t:"rangePoints",a:arguments},n},n.rangeBands=function(r,s,a){arguments.length<2&&(s=0),arguments.length<3&&(a=s);var f=r[1]<r[0],l=r[f-0],c=r[1-f],h=(c-l)/(e.length-s+2*a);return o=i(l+h*a,h),f&&o.reverse(),u=h*(1-s),t={t:"rangeBands",a:arguments},n},n.rangeRoundBands=function(r,s,a){arguments.length<2&&(s=0),arguments.length<3&&(a=s);var f=r[1]<r[0],l=r[f-0],c=r[1-f],h=Math.floor((c-l)/(e.length-s+2*a)),p=c-l-(e.length-s)*h;return o=i(l+Math.round(p/2),h),f&&o.reverse(),u=Math.round(h*(1-s)),t={t:"rangeRoundBands",a:arguments},n},n.rangeBand=function(){return u},n.rangeExtent=function(){return Mt(t.a[0])},n.copy=function(){return Jt(e,t)},n.domain(e)}function Kt(e,t){function n(){var n=0,s=e.length,o=t.length;i=[];while(++n<o)i[n-1]=d3.quantile(e,n/o);return r}function r(e){return isNaN(e=+e)?NaN:t[d3.bisect(i,e)]}var i;return r.domain=function(t){return arguments.length?(e=t.filter(function(e){return!isNaN(e)}).sort(d3.ascending),n()):e},r.range=function(e){return arguments.length?(t=e,n()):t},r.quantiles=function(){return i},r.copy=function(){return Kt(e,t)},n()}function Qt(e,t,n){function r(t){return n[Math.max(0,Math.min(o,Math.floor(s*(t-e))))]}function i(){return s=n.length/(t-e),o=n.length-1,r}var s,o;return r.domain=function(n){return arguments.length?(e=+n[0],t=+n[n.length-1],i()):[e,t]},r.range=function(e){return arguments.length?(n=e,i()):n},r.copy=function(){return Qt(e,t,n)},i()}function Gt(e,t){function n(n){return t[d3.bisect(e,n)]}return n.domain=function(t){return arguments.length?(e=t,n):e},n.range=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return Gt(e,t)},n}function Yt(e){function t(e){return+e}return t.invert=t,t.domain=t.range=function(n){return arguments.length?(e=n.map(t),t):e},t.ticks=function(t){return It(e,t)},t.tickFormat=function(t){return qt(e,t)},t.copy=function(){return Yt(e)},t}function Zt(e){return e.innerRadius}function en(e){return e.outerRadius}function tn(e){return e.startAngle}function nn(e){return e.endAngle}function rn(e){function t(t){function o(){a.push("M",s(e(l),f))}var a=[],l=[],c=-1,h=t.length,p,d=u(n),v=u(r);while(++c<h)i.call(this,p=t[c],c)?l.push([+d.call(this,p,c),+v.call(this,p,c)]):l.length&&(o(),l=[]);return l.length&&o(),a.length?a.join(""):null}var n=sn,r=on,i=o,s=un,a=s.key,f=.7;return t.x=function(e){return arguments.length?(n=e,t):n},t.y=function(e){return arguments.length?(r=e,t):r},t.defined=function(e){return arguments.length?(i=e,t):i},t.interpolate=function(e){return arguments.length?(typeof e=="function"?a=s=e:a=(s=$s.get(e)||un).key,t):a},t.tension=function(e){return arguments.length?(f=e,t):f},t}function sn(e){return e[0]}function on(e){return e[1]}function un(e){return e.join("L")}function an(e){return un(e)+"Z"}function fn(e){var t=0,n=e.length,r=e[0],i=[r[0],",",r[1]];while(++t<n)i.push("V",(r=e[t])[1],"H",r[0]);return i.join("")}function ln(e){var t=0,n=e.length,r=e[0],i=[r[0],",",r[1]];while(++t<n)i.push("H",(r=e[t])[0],"V",r[1]);return i.join("")}function cn(e,t){return e.length<4?un(e):e[1]+dn(e.slice(1,e.length-1),vn(e,t))}function hn(e,t){return e.length<3?un(e):e[0]+dn((e.push(e[0]),e),vn([e[e.length-2]].concat(e,[e[1]]),t))}function pn(e,t,n){return e.length<3?un(e):e[0]+dn(e,vn(e,t))}function dn(e,t){if(t.length<1||e.length!=t.length&&e.length!=t.length+2)return un(e);var n=e.length!=t.length,r="",i=e[0],s=e[1],o=t[0],u=o,a=1;n&&(r+="Q"+(s[0]-o[0]*2/3)+","+(s[1]-o[1]*2/3)+","+s[0]+","+s[1],i=e[1],a=2);if(t.length>1){u=t[1],s=e[a],a++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(s[0]-u[0])+","+(s[1]-u[1])+","+s[0]+","+s[1];for(var f=2;f<t.length;f++,a++)s=e[a],u=t[f],r+="S"+(s[0]-u[0])+","+(s[1]-u[1])+","+s[0]+","+s[1]}if(n){var l=e[a];r+="Q"+(s[0]+u[0]*2/3)+","+(s[1]+u[1]*2/3)+","+l[0]+","+l[1]}return r}function vn(e,t){var n=[],r=(1-t)/2,i,s=e[0],o=e[1],u=1,a=e.length;while(++u<a)i=s,s=o,o=e[u],n.push([r*(o[0]-i[0]),r*(o[1]-i[1])]);return n}function mn(e){if(e.length<3)return un(e);var t=1,n=e.length,r=e[0],i=r[0],s=r[1],o=[i,i,i,(r=e[1])[0]],u=[s,s,s,r[1]],a=[i,",",s];En(a,o,u);while(++t<n)r=e[t],o.shift(),o.push(r[0]),u.shift(),u.push(r[1]),En(a,o,u);t=-1;while(++t<2)o.shift(),o.push(r[0]),u.shift(),u.push(r[1]),En(a,o,u);return a.join("")}function gn(e){if(e.length<4)return un(e);var t=[],n=-1,r=e.length,i,s=[0],o=[0];while(++n<3)i=e[n],s.push(i[0]),o.push(i[1]);t.push(wn(Qs,s)+","+wn(Qs,o)),--n;while(++n<r)i=e[n],s.shift(),s.push(i[0]),o.shift(),o.push(i[1]),En(t,s,o);return t.join("")}function yn(e){var t,n=-1,r=e.length,i=r+4,s,o=[],u=[];while(++n<4)s=e[n%r],o.push(s[0]),u.push(s[1]);t=[wn(Qs,o),",",wn(Qs,u)],--n;while(++n<i)s=e[n%r],o.shift(),o.push(s[0]),u.shift(),u.push(s[1]),En(t,o,u);return t.join("")}function bn(e,t){var n=e.length-1;if(n){var r=e[0][0],i=e[0][1],s=e[n][0]-r,o=e[n][1]-i,u=-1,a,f;while(++u<=n)a=e[u],f=u/n,a[0]=t*a[0]+(1-t)*(r+f*s),a[1]=t*a[1]+(1-t)*(i+f*o)}return mn(e)}function wn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function En(e,t,n){e.push("C",wn(Js,t),",",wn(Js,n),",",wn(Ks,t),",",wn(Ks,n),",",wn(Qs,t),",",wn(Qs,n))}function Sn(e,t){return(t[1]-e[1])/(t[0]-e[0])}function xn(e){var t=0,n=e.length-1,r=[],i=e[0],s=e[1],o=r[0]=Sn(i,s);while(++t<n)r[t]=(o+(o=Sn(i=s,s=e[t+1])))/2;return r[t]=o,r}function Tn(e){var t=[],n,r,i,s,o=xn(e),u=-1,a=e.length-1;while(++u<a)n=Sn(e[u],e[u+1]),Math.abs(n)<1e-6?o[u]=o[u+1]=0:(r=o[u]/n,i=o[u+1]/n,s=r*r+i*i,s>9&&(s=n*3/Math.sqrt(s),o[u]=s*r,o[u+1]=s*i));u=-1;while(++u<=a)s=(e[Math.min(a,u+1)][0]-e[Math.max(0,u-1)][0])/(6*(1+o[u]*o[u])),t.push([s||0,o[u]*s||0]);return t}function Nn(e){return e.length<3?un(e):e[0]+dn(e,Tn(e))}function Cn(e){var t,n=-1,r=e.length,i,s;while(++n<r)t=e[n],i=t[0],s=t[1]+Xs,t[0]=i*Math.cos(s),t[1]=i*Math.sin(s);return e}function kn(e){function t(t){function o(){l.push("M",f(e(v),p),h,c(e(d.reverse()),p),"Z")}var l=[],d=[],v=[],m=-1,g=t.length,y,b=u(n),w=u(i),E=n===r?function(){return x}:u(r),S=i===s?function(){return T}:u(s),x,T;while(++m<g)a.call(this,y=t[m],m)?(d.push([x=+b.call(this,y,m),T=+w.call(this,y,m)]),v.push([+E.call(this,y,m),+S.call(this,y,m)])):d.length&&(o(),d=[],v=[]);return d.length&&o(),l.length?l.join(""):null}var n=sn,r=sn,i=0,s=on,a=o,f=un,l=f.key,c=f,h="L",p=.7;return t.x=function(e){return arguments.length?(n=r=e,t):r},t.x0=function(e){return arguments.length?(n=e,t):n},t.x1=function(e){return arguments.length?(r=e,t):r},t.y=function(e){return arguments.length?(i=s=e,t):s},t.y0=function(e){return arguments.length?(i=e,t):i},t.y1=function(e){return arguments.length?(s=e,t):s},t.defined=function(e){return arguments.length?(a=e,t):a},t.interpolate=function(e){return arguments.length?(typeof e=="function"?l=f=e:l=(f=$s.get(e)||un).key,c=f.reverse||f,h=f.closed?"M":"L",t):l},t.tension=function(e){return arguments.length?(p=e,t):p},t}function Ln(e){return e.source}function An(e){return e.target}function On(e){return e.radius}function Mn(e){return e.startAngle}function _n(e){return e.endAngle}function Dn(e){return[e.x,e.y]}function Pn(e){return function(){var t=e.apply(this,arguments),n=t[0],r=t[1]+Xs;return[n*Math.cos(r),n*Math.sin(r)]}}function Hn(){return 64}function Bn(){return"circle"}function jn(e){var t=Math.sqrt(e/Math.PI);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+ -t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Fn(e,t){e.attr("transform",function(e){return"translate("+t(e)+",0)"})}function In(e,t){e.attr("transform",function(e){return"translate(0,"+t(e)+")"})}function qn(e,t,n){i=[];if(n&&t.length>1){var r=Mt(e.domain()),i,s=-1,o=t.length,u=(t[1]-t[0])/++n,a,f;while(++s<o)for(a=n;--a>0;)(f=+t[s]-a*u)>=r[0]&&i.push(f);for(--s,a=0;++a<n&&(f=+t[s]+a*u)<r[1];)i.push(f)}return i}function Rn(){no||(no=d3.select("body").append("div").style("visibility","hidden").style("top",0).style("height",0).style("width",0).style("overflow-y","scroll").append("div").style("height","2000px").node().parentNode);var e=d3.event,t;try{no.scrollTop=1e3,no.dispatchEvent(e),t=1e3-no.scrollTop}catch(n){t=e.wheelDelta||-e.detail*5}return t}function Un(e){var t=e.source,n=e.target,r=Wn(t,n),i=[t];while(t!==r)t=t.parent,i.push(t);var s=i.length;while(n!==r)i.splice(s,0,n),n=n.parent;return i}function zn(e){var t=[],n=e.parent;while(n!=null)t.push(e),e=n,n=n.parent;return t.push(e),t}function Wn(e,t){if(e===t)return e;var n=zn(e),r=zn(t),i=n.pop(),s=r.pop(),o=null;while(i===s)o=i,i=n.pop(),s=r.pop();return o}function Xn(e){e.fixed|=2}function Vn(e){e.fixed&=1}function $n(e){e.fixed|=4}function Jn(e){e.fixed&=3}function Kn(e,t,n){var r=0,i=0;e.charge=0;if(!e.leaf){var s=e.nodes,o=s.length,u=-1,a;while(++u<o){a=s[u];if(a==null)continue;Kn(a,t,n),e.charge+=a.charge,r+=a.charge*a.cx,i+=a.charge*a.cy}}if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var f=t*n[e.point.index];e.charge+=e.pointCharge=f,r+=f*e.point.x,i+=f*e.point.y}e.cx=r/e.charge,e.cy=i/e.charge}function Qn(e){return 20}function Gn(e){return 1}function Yn(e){return e.x}function Zn(e){return e.y}function er(e,t,n){e.y0=t,e.y=n}function tr(e){return d3.range(e.length)}function nr(e){var t=-1,n=e[0].length,r=[];while(++t<n)r[t]=0;return r}function rr(e){var t=1,n=0,r=e[0][1],i,s=e.length;for(;t<s;++t)(i=e[t][1])>r&&(n=t,r=i);return n}function ir(e){return e.reduce(sr,0)}function sr(e,t){return e+t[1]}function or(e,t){return ur(e,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ur(e,t){var n=-1,r=+e[0],i=(e[1]-r)/t,s=[];while(++n<=t)s[n]=i*n+r;return s}function ar(e){return[d3.min(e),d3.max(e)]}function fr(e,t){return d3.rebind(e,t,"sort","children","value"),e.links=pr,e.nodes=function(t){return uo=!0,(e.nodes=e)(t)},e}function lr(e){return e.children}function cr(e){return e.value}function hr(e,t){return t.value-e.value}function pr(e){return d3.merge(e.map(function(e){return(e.children||[]).map(function(t){return{source:e,target:t}})}))}function dr(e,t){return e.value-t.value}function vr(e,t){var n=e._pack_next;e._pack_next=t,t._pack_prev=e,t._pack_next=n,n._pack_prev=t}function mr(e,t){e._pack_next=t,t._pack_prev=e}function gr(e,t){var n=t.x-e.x,r=t.y-e.y,i=e.r+t.r;return i*i-n*n-r*r>.001}function yr(e){function t(e){r=Math.min(e.x-e.r,r),i=Math.max(e.x+e.r,i),s=Math.min(e.y-e.r,s),o=Math.max(e.y+e.r,o)}if(!(n=e.children)||!(p=n.length))return;var n,r=Infinity,i=-Infinity,s=Infinity,o=-Infinity,u,a,f,l,c,h,p;n.forEach(br),u=n[0],u.x=-u.r,u.y=0,t(u);if(p>1){a=n[1],a.x=a.r,a.y=0,t(a);if(p>2){f=n[2],Sr(u,a,f),t(f),vr(u,f),u._pack_prev=f,vr(f,a),a=u._pack_next;for(l=3;l<p;l++){Sr(u,a,f=n[l]);var d=0,v=1,m=1;for(c=a._pack_next;c!==a;c=c._pack_next,v++)if(gr(c,f)){d=1;break}if(d==1)for(h=u._pack_prev;h!==c._pack_prev;h=h._pack_prev,m++)if(gr(h,f))break;d?(v<m||v==m&&a.r<u.r?mr(u,a=c):mr(u=h,a),l--):(vr(u,f),a=f,t(f))}}}var g=(r+i)/2,y=(s+o)/2,b=0;for(l=0;l<p;l++)f=n[l],f.x-=g,f.y-=y,b=Math.max(b,f.r+Math.sqrt(f.x*f.x+f.y*f.y));e.r=b,n.forEach(wr)}function br(e){e._pack_next=e._pack_prev=e}function wr(e){delete e._pack_next,delete e._pack_prev}function Er(e,t,n,r){var i=e.children;e.x=t+=r*e.x,e.y=n+=r*e.y,e.r*=r;if(i){var s=-1,o=i.length;while(++s<o)Er(i[s],t,n,r)}}function Sr(e,t,n){var r=e.r+n.r,i=t.x-e.x,s=t.y-e.y;if(r&&(i||s)){var o=t.r+n.r,u=i*i+s*s;o*=o,r*=r;var a=.5+(r-o)/(2*u),f=Math.sqrt(Math.max(0,2*o*(r+u)-(r-=u)*r-o*o))/(2*u);n.x=e.x+a*i+f*s,n.y=e.y+a*s-f*i}else n.x=e.x+r,n.y=e.y}function xr(e){return 1+d3.max(e,function(e){return e.y})}function Tr(e){return e.reduce(function(e,t){return e+t.x},0)/e.length}function Nr(e){var t=e.children;return t&&t.length?Nr(t[0]):e}function Cr(e){var t=e.children,n;return t&&(n=t.length)?Cr(t[n-1]):e}function kr(e,t){return e.parent==t.parent?1:2}function Lr(e){var t=e.children;return t&&t.length?t[0]:e._tree.thread}function Ar(e){var t=e.children,n;return t&&(n=t.length)?t[n-1]:e._tree.thread}function Or(e,t){var n=e.children;if(n&&(i=n.length)){var r,i,s=-1;while(++s<i)t(r=Or(n[s],t),e)>0&&(e=r)}return e}function Mr(e,t){return e.x-t.x}function _r(e,t){return t.x-e.x}function Dr(e,t){return e.depth-t.depth}function Pr(e,t){function n(e,r){var i=e.children;if(i&&(a=i.length)){var s,o=null,u=-1,a;while(++u<a)s=i[u],n(s,o),o=s}t(e,r)}n(e,null)}function Hr(e){var t=0,n=0,r=e.children,i=r.length,s;while(--i>=0)s=r[i]._tree,s.prelim+=t,s.mod+=t,t+=s.shift+(n+=s.change)}function Br(e,t,n){e=e._tree,t=t._tree;var r=n/(t.number-e.number);e.change+=r,t.change-=r,t.shift+=n,t.prelim+=n,t.mod+=n}function jr(e,t,n){return e._tree.ancestor.parent==t.parent?e._tree.ancestor:n}function Fr(e){return{x:e.x,y:e.y,dx:e.dx,dy:e.dy}}function Ir(e,t){var n=e.x+t[3],r=e.y+t[0],i=e.dx-t[1]-t[3],s=e.dy-t[0]-t[2];return i<0&&(n+=i/2,i=0),s<0&&(r+=s/2,s=0),{x:n,y:r,dx:i,dy:s}}function qr(e,t){function n(e,r){d3.text(e,t,function(e){r(e&&n.parse(e))})}function r(t){return t.map(i).join(e)}function i(e){return o.test(e)?'"'+e.replace(/\"/g,'""')+'"':e}var s=new RegExp("\r\n|["+e+"\r\n]","g"),o=new RegExp('["'+e+"\n]"),u=e.charCodeAt(0);return n.parse=function(e){var t;return n.parseRows(e,function(e,n){if(n){var r={},i=-1,s=t.length;while(++i<s)r[t[i]]=e[i];return r}return t=e,null})},n.parseRows=function(e,t){function n(){if(s.lastIndex>=e.length)return i;if(l)return l=!1,r;var t=s.lastIndex;if(e.charCodeAt(t)===34){var n=t;while(n++<e.length)if(e.charCodeAt(n)===34){if(e.charCodeAt(n+1)!==34)break;n++}s.lastIndex=n+2;var o=e.charCodeAt(n+1);return o===13?(l=!0,e.charCodeAt(n+2)===10&&s.lastIndex++):o===10&&(l=!0),e.substring(t+1,n).replace(/""/g,'"')}var a=s.exec(e);return a?(l=a[0].charCodeAt(0)!==u,e.substring(t,a.index)):(s.lastIndex=e.length,e.substring(t))}var r={},i={},o=[],a=0,f,l;s.lastIndex=0;while((f=n())!==i){var c=[];while(f!==r&&f!==i)c.push(f),f=n();if(t&&!(c=t(c,a++)))continue;o.push(c)}return o},n.format=function(e){return e.map(r).join("\n")},n}function Rr(e,t){return function(n){return n&&e.hasOwnProperty(n.type)?e[n.type](n):t}}function Ur(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+ -2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}function zr(e,t){fo.hasOwnProperty(e.type)&&fo[e.type](e,t)}function Wr(e,t){zr(e.geometry,t)}function Xr(e,t){for(var n=e.features,r=0,i=n.length;r<i;r++)zr(n[r].geometry,t)}function Vr(e,t){for(var n=e.geometries,r=0,i=n.length;r<i;r++)zr(n[r],t)}function $r(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)t.apply(null,n[r])}function Jr(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)for(var s=n[r],o=0,u=s.length;o<u;o++)t.apply(null,s[o])}function Kr(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)for(var s=n[r][0],o=0,u=s.length;o<u;o++)t.apply(null,s[o])}function Qr(e,t){t.apply(null,e.coordinates)}function Gr(e,t){for(var n=e.coordinates[0],r=0,i=n.length;r<i;r++)t.apply(null,n[r])}function Yr(e){return e.source}function Zr(e){return e.target}function ei(){function e(e){var t=Math.sin(e*=p)*d,n=Math.sin(p-e)*d,r=n*s+t*c,u=n*o+t*h,a=n*i+t*l;return[Math.atan2(u,r)/ao,Math.atan2(a,Math.sqrt(r*r+u*u))/ao]}var t,n,r,i,s,o,u,a,f,l,c,h,p,d;return e.distance=function(){return p==null&&(d=1/Math.sin(p=Math.acos(Math.max(-1,Math.min(1,i*l+r*f*Math.cos(u-t)))))),p},e.source=function(u){var a=Math.cos(t=u[0]*ao),f=Math.sin(t);return r=Math.cos(n=u[1]*ao),i=Math.sin(n),s=r*a,o=r*f,p=null,e},e.target=function(t){var n=Math.cos(u=t[0]*ao),r=Math.sin(u);return f=Math.cos(a=t[1]*ao),l=Math.sin(a),c=f*n,h=f*r,p=null,e},e}function ti(e,t){var n=ei().source(e).target(t);return n.distance(),n}function ni(e){var t=0,n=0;for(;;){if(e(t,n))return[t,n];t===0?(t=n+1,n=0):(t-=1,n+=1)}}function ri(e,t,n,r){var i,s,o,u,a,f,l;return i=r[e],s=i[0],o=i[1],i=r[t],u=i[0],a=i[1],i=r[n],f=i[0],l=i[1],(l-o)*(u-s)-(a-o)*(f-s)>0}function ii(e,t,n){return(n[0]-t[0])*(e[1]-t[1])<(n[1]-t[1])*(e[0]-t[0])}function si(e,t,n,r){var i=e[0],s=t[0],o=n[0],u=r[0],a=e[1],f=t[1],l=n[1],c=r[1],h=i-o,p=s-i,d=u-o,v=a-l,m=f-a,g=c-l,y=(d*v-g*h)/(g*p-d*m);return[i+y*p,a+y*m]}function oi(e,t){var n={list:e.map(function(e,t){return{index:t,x:e[0],y:e[1]}}).sort(function(e,t){return e.y<t.y?-1:e.y>t.y?1:e.x<t.x?-1:e.x>t.x?1:0}),bottomSite:null},r={list:[],leftEnd:null,rightEnd:null,init:function(){r.leftEnd=r.createHalfEdge(null,"l"),r.rightEnd=r.createHalfEdge(null,"l"),r.leftEnd.r=r.rightEnd,r.rightEnd.l=r.leftEnd,r.list.unshift(r.leftEnd,r.rightEnd)},createHalfEdge:function(e,t){return{edge:e,side:t,vertex:null,l:null,r:null}},insert:function(e,t){t.l=e,t.r=e.r,e.r.l=t,e.r=t},leftBound:function(e){var t=r.leftEnd;do t=t.r;while(t!=r.rightEnd&&i.rightOf(t,e));return t=t.l,t},del:function(e){e.l.r=e.r,e.r.l=e.l,e.edge=null},right:function(e){return e.r},left:function(e){return e.l},leftRegion:function(e){return e.edge==null?n.bottomSite:e.edge.region[e.side]},rightRegion:function(e){return e.edge==null?n.bottomSite:e.edge.region[ho[e.side]]}},i={bisect:function(e,t){var n={region:{l:e,r:t},ep:{l:null,r:null}},r=t.x-e.x,i=t.y-e.y,s=r>0?r:-r,o=i>0?i:-i;return n.c=e.x*r+e.y*i+(r*r+i*i)*.5,s>o?(n.a=1,n.b=i/r,n.c/=r):(n.b=1,n.a=r/i,n.c/=i),n},intersect:function(e,t){var n=e.edge,r=t.edge;if(!n||!r||n.region.r==r.region.r)return null;var i=n.a*r.b-n.b*r.a;if(Math.abs(i)<1e-10)return null;var s=(n.c*r.b-r.c*n.b)/i,o=(r.c*n.a-n.c*r.a)/i,u=n.region.r,a=r.region.r,f,l;u.y<a.y||u.y==a.y&&u.x<a.x?(f=e,l=n):(f=t,l=r);var c=s>=l.region.r.x;return c&&f.side==="l"||!c&&f.side==="r"?null:{x:s,y:o}},rightOf:function(e,t){var n=e.edge,r=n.region.r,i=t.x>r.x;if(i&&e.side==="l")return 1;if(!i&&e.side==="r")return 0;if(n.a===1){var s=t.y-r.y,o=t.x-r.x,u=0,a=0;!i&&n.b<0||i&&n.b>=0?a=u=s>=n.b*o:(a=t.x+t.y*n.b>n.c,n.b<0&&(a=!a),a||(u=1));if(!u){var f=r.x-n.region.l.x;a=n.b*(o*o-s*s)<f*s*(1+2*o/f+n.b*n.b),n.b<0&&(a=!a)}}else{var l=n.c-n.a*t.x,c=t.y-l,h=t.x-r.x,p=l-r.y;a=c*c>h*h+p*p}return e.side==="l"?a:!a},endPoint:function(e,n,r){e.ep[n]=r;if(!e.ep[ho[n]])return;t(e)},distance:function(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}},s={list:[],insert:function(e,t,n){e.vertex=t,e.ystar=t.y+n;for(var r=0,i=s.list,o=i.length;r<o;r++){var u=i[r];if(e.ystar>u.ystar||e.ystar==u.ystar&&t.x>u.vertex.x)continue;break}i.splice(r,0,e)},del:function(e){for(var t=0,n=s.list,r=n.length;t<r&&n[t]!=e;++t);n.splice(t,1)},empty:function(){return s.list.length===0},nextEvent:function(e){for(var t=0,n=s.list,r=n.length;t<r;++t)if(n[t]==e)return n[t+1];return null},min:function(){var e=s.list[0];return{x:e.vertex.x,y:e.ystar}},extractMin:function(){return s.list.shift()}};r.init(),n.bottomSite=n.list.shift();var o=n.list.shift(),u,a,f,l,c,h,p,d,v,m,g,y,b;for(;;){s.empty()||(u=s.min());if(o&&(s.empty()||o.y<u.y||o.y==u.y&&o.x<u.x))a=r.leftBound(o),f=r.right(a),p=r.rightRegion(a),y=i.bisect(p,o),h=r.createHalfEdge(y,"l"),r.insert(a,h),m=i.intersect(a,h),m&&(s.del(a),s.insert(a,m,i.distance(m,o))),a=h,h=r.createHalfEdge(y,"r"
-),r.insert(a,h),m=i.intersect(h,f),m&&s.insert(h,m,i.distance(m,o)),o=n.list.shift();else{if(!!s.empty())break;a=s.extractMin(),l=r.left(a),f=r.right(a),c=r.right(f),p=r.leftRegion(a),d=r.rightRegion(f),g=a.vertex,i.endPoint(a.edge,a.side,g),i.endPoint(f.edge,f.side,g),r.del(a),s.del(f),r.del(f),b="l",p.y>d.y&&(v=p,p=d,d=v,b="r"),y=i.bisect(p,d),h=r.createHalfEdge(y,b),r.insert(l,h),i.endPoint(y,ho[b],g),m=i.intersect(l,h),m&&(s.del(l),s.insert(l,m,i.distance(m,p))),m=i.intersect(h,c),m&&s.insert(h,m,i.distance(m,p))}}for(a=r.right(r.leftEnd);a!=r.rightEnd;a=r.right(a))t(a.edge)}function ui(){return{leaf:!0,nodes:[],point:null}}function ai(e,t,n,r,i,s){if(!e(t,n,r,i,s)){var o=(n+i)*.5,u=(r+s)*.5,a=t.nodes;a[0]&&ai(e,a[0],n,r,o,u),a[1]&&ai(e,a[1],o,r,i,u),a[2]&&ai(e,a[2],n,u,o,s),a[3]&&ai(e,a[3],o,u,i,s)}}function fi(e){return{x:e[0],y:e[1]}}function li(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function ci(e){return e.substring(0,3)}function hi(e,t,n,r){var i,s,o=0,u=t.length,a=n.length;while(o<u){if(r>=a)return-1;i=t.charCodeAt(o++);if(i==37){s=Ho[t.charAt(o++)];if(!s||(r=s(e,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}function pi(e){return new RegExp("^(?:"+e.map(d3.requote).join("|")+")","i")}function di(e){var t=new r,n=-1,i=e.length;while(++n<i)t.set(e[n].toLowerCase(),n);return t}function vi(e,t,n){Ao.lastIndex=0;var r=Ao.exec(t.substring(n));return r?n+=r[0].length:-1}function mi(e,t,n){Lo.lastIndex=0;var r=Lo.exec(t.substring(n));return r?n+=r[0].length:-1}function gi(e,t,n){_o.lastIndex=0;var r=_o.exec(t.substring(n));return r?(e.m=Do.get(r[0].toLowerCase()),n+=r[0].length):-1}function yi(e,t,n){Oo.lastIndex=0;var r=Oo.exec(t.substring(n));return r?(e.m=Mo.get(r[0].toLowerCase()),n+=r[0].length):-1}function bi(e,t,n){return hi(e,Po.c.toString(),t,n)}function wi(e,t,n){return hi(e,Po.x.toString(),t,n)}function Ei(e,t,n){return hi(e,Po.X.toString(),t,n)}function Si(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+4));return r?(e.y=+r[0],n+=r[0].length):-1}function xi(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.y=Ti(+r[0]),n+=r[0].length):-1}function Ti(e){return e+(e>68?1900:2e3)}function Ni(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.m=r[0]-1,n+=r[0].length):-1}function Ci(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.d=+r[0],n+=r[0].length):-1}function ki(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.H=+r[0],n+=r[0].length):-1}function Li(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.M=+r[0],n+=r[0].length):-1}function Ai(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.S=+r[0],n+=r[0].length):-1}function Oi(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+3));return r?(e.L=+r[0],n+=r[0].length):-1}function Mi(e,t,n){var r=jo.get(t.substring(n,n+=2).toLowerCase());return r==null?-1:(e.p=r,n)}function _i(e){var t=e.getTimezoneOffset(),n=t>0?"-":"+",r=~~(Math.abs(t)/60),i=Math.abs(t)%60;return n+To(r)+To(i)}function Di(e){return e.toISOString()}function Pi(e,t,n){function r(t){var n=e(t),r=s(n,1);return t-n<r-t?n:r}function i(n){return t(n=e(new po(n-1)),1),n}function s(e,n){return t(e=new po(+e),n),e}function o(e,r,s){var o=i(e),u=[];if(s>1)while(o<r)n(o)%s||u.push(new Date(+o)),t(o,1);else while(o<r)u.push(new Date(+o)),t(o,1);return u}function u(e,t,n){try{po=li;var r=new li;return r._=e,o(r,t,n)}finally{po=Date}}e.floor=e,e.round=r,e.ceil=i,e.offset=s,e.range=o;var a=e.utc=Hi(e);return a.floor=a,a.round=Hi(r),a.ceil=Hi(i),a.offset=Hi(s),a.range=u,e}function Hi(e){return function(t,n){try{po=li;var r=new li;return r._=t,e(r,n)._}finally{po=Date}}}function Bi(e,t,n){function r(t){return e(t)}return r.invert=function(t){return Fi(e.invert(t))},r.domain=function(t){return arguments.length?(e.domain(t),r):e.domain().map(Fi)},r.nice=function(e){return r.domain(Dt(r.domain(),function(){return e}))},r.ticks=function(n,i){var s=ji(r.domain());if(typeof n!="function"){var o=s[1]-s[0],u=o/n,a=d3.bisect(Io,u);if(a==Io.length)return t.year(s,n);if(!a)return e.ticks(n).map(Fi);Math.log(u/Io[a-1])<Math.log(Io[a]/u)&&--a,n=t[a],i=n[1],n=n[0].range}return n(s[0],new Date(+s[1]+1),i)},r.tickFormat=function(){return n},r.copy=function(){return Bi(e.copy(),t,n)},d3.rebind(r,e,"range","rangeRound","interpolate","clamp")}function ji(e){var t=e[0],n=e[e.length-1];return t<n?[t,n]:[n,t]}function Fi(e){return new Date(e)}function Ii(e){return function(t){var n=e.length-1,r=e[n];while(!r[1](t))r=e[--n];return r[0](t)}}function qi(e){var t=new Date(e,0,1);return t.setFullYear(e),t}function Ri(e){var t=e.getFullYear(),n=qi(t),r=qi(t+1);return t+(e-n)/(r-n)}function Ui(e){var t=new Date(Date.UTC(e,0,1));return t.setUTCFullYear(e),t}function zi(e){var t=e.getUTCFullYear(),n=Ui(t),r=Ui(t+1);return t+(e-n)/(r-n)}Date.now||(Date.now=function(){return+(new Date)});try{document.createElement("div").style.setProperty("opacity",0,"")}catch(Wi){var Xi=CSSStyleDeclaration.prototype,Vi=Xi.setProperty;Xi.setProperty=function(e,t,n){Vi.call(this,e,t+"",n)}}d3={version:"2.10.2"};var $i=n;try{$i(document.documentElement.childNodes)[0].nodeType}catch(Ji){$i=t}var Ki=[].__proto__?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)e[n]=t[n]};d3.map=function(e){var t=new r;for(var n in e)t.set(n,e[n]);return t},e(r,{has:function(e){return Qi+e in this},get:function(e){return this[Qi+e]},set:function(e,t){return this[Qi+e]=t},remove:function(e){return e=Qi+e,e in this&&delete this[e]},keys:function(){var e=[];return this.forEach(function(t){e.push(t)}),e},values:function(){var e=[];return this.forEach(function(t,n){e.push(n)}),e},entries:function(){var e=[];return this.forEach(function(t,n){e.push({key:t,value:n})}),e},forEach:function(e){for(var t in this)t.charCodeAt(0)===Gi&&e.call(this,t.substring(1),this[t])}});var Qi="\0",Gi=Qi.charCodeAt(0);d3.functor=u,d3.rebind=function(e,t){var n=1,r=arguments.length,i;while(++n<r)e[i=arguments[n]]=a(e,t,t[i]);return e},d3.ascending=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN},d3.descending=function(e,t){return t<e?-1:t>e?1:t>=e?0:NaN},d3.mean=function(e,t){var n=e.length,r,i=0,s=-1,o=0;if(arguments.length===1)while(++s<n)f(r=e[s])&&(i+=(r-i)/++o);else while(++s<n)f(r=t.call(e,e[s],s))&&(i+=(r-i)/++o);return o?i:undefined},d3.median=function(e,t){return arguments.length>1&&(e=e.map(t)),e=e.filter(f),e.length?d3.quantile(e.sort(d3.ascending),.5):undefined},d3.min=function(e,t){var n=-1,r=e.length,i,s;if(arguments.length===1){while(++n<r&&((i=e[n])==null||i!=i))i=undefined;while(++n<r)(s=e[n])!=null&&i>s&&(i=s)}else{while(++n<r&&((i=t.call(e,e[n],n))==null||i!=i))i=undefined;while(++n<r)(s=t.call(e,e[n],n))!=null&&i>s&&(i=s)}return i},d3.max=function(e,t){var n=-1,r=e.length,i,s;if(arguments.length===1){while(++n<r&&((i=e[n])==null||i!=i))i=undefined;while(++n<r)(s=e[n])!=null&&s>i&&(i=s)}else{while(++n<r&&((i=t.call(e,e[n],n))==null||i!=i))i=undefined;while(++n<r)(s=t.call(e,e[n],n))!=null&&s>i&&(i=s)}return i},d3.extent=function(e,t){var n=-1,r=e.length,i,s,o;if(arguments.length===1){while(++n<r&&((i=o=e[n])==null||i!=i))i=o=undefined;while(++n<r)(s=e[n])!=null&&(i>s&&(i=s),o<s&&(o=s))}else{while(++n<r&&((i=o=t.call(e,e[n],n))==null||i!=i))i=undefined;while(++n<r)(s=t.call(e,e[n],n))!=null&&(i>s&&(i=s),o<s&&(o=s))}return[i,o]},d3.random={normal:function(e,t){var n=arguments.length;return n<2&&(t=1),n<1&&(e=0),function(){var n,r,i;do n=Math.random()*2-1,r=Math.random()*2-1,i=n*n+r*r;while(!i||i>1);return e+t*n*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(e,t){var n=arguments.length;n<2&&(t=1),n<1&&(e=0);var r=d3.random.normal();return function(){return Math.exp(e+t*r())}},irwinHall:function(e){return function(){for(var t=0,n=0;n<e;n++)t+=Math.random();return t/e}}},d3.sum=function(e,t){var n=0,r=e.length,i,s=-1;if(arguments.length===1)while(++s<r)isNaN(i=+e[s])||(n+=i);else while(++s<r)isNaN(i=+t.call(e,e[s],s))||(n+=i);return n},d3.quantile=function(e,t){var n=(e.length-1)*t+1,r=Math.floor(n),i=e[r-1],s=n-r;return s?i+s*(e[r]-i):i},d3.transpose=function(e){return d3.zip.apply(d3,e)},d3.zip=function(){if(!(i=arguments.length))return[];for(var e=-1,t=d3.min(arguments,l),n=new Array(t);++e<t;)for(var r=-1,i,s=n[e]=new Array(i);++r<i;)s[r]=arguments[r][e];return n},d3.bisector=function(e){return{left:function(t,n,r,i){arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);while(r<i){var s=r+i>>>1;e.call(t,t[s],s)<n?r=s+1:i=s}return r},right:function(t,n,r,i){arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);while(r<i){var s=r+i>>>1;n<e.call(t,t[s],s)?i=s:r=s+1}return r}}};var Yi=d3.bisector(function(e){return e});d3.bisectLeft=Yi.left,d3.bisect=d3.bisectRight=Yi.right,d3.first=function(e,t){var n=0,r=e.length,i=e[0],s;arguments.length===1&&(t=d3.ascending);while(++n<r)t.call(e,i,s=e[n])>0&&(i=s);return i},d3.last=function(e,t){var n=0,r=e.length,i=e[0],s;arguments.length===1&&(t=d3.ascending);while(++n<r)t.call(e,i,s=e[n])<=0&&(i=s);return i},d3.nest=function(){function e(t,s){if(s>=i.length)return u?u.call(n,t):o?t.sort(o):t;var a=-1,f=t.length,l=i[s++],c,h,p=new r,d,v={};while(++a<f)(d=p.get(c=l(h=t[a])))?d.push(h):p.set(c,[h]);return p.forEach(function(t,n){v[t]=e(n,s)}),v}function t(e,n){if(n>=i.length)return e;var r=[],o=s[n++],u;for(u in e)r.push({key:u,values:t(e[u],n)});return o&&r.sort(function(e,t){return o(e.key,t.key)}),r}var n={},i=[],s=[],o,u;return n.map=function(t){return e(t,0)},n.entries=function(n){return t(e(n,0),0)},n.key=function(e){return i.push(e),n},n.sortKeys=function(e){return s[i.length-1]=e,n},n.sortValues=function(e){return o=e,n},n.rollup=function(e){return u=e,n},n},d3.keys=function(e){var t=[];for(var n in e)t.push(n);return t},d3.values=function(e){var t=[];for(var n in e)t.push(e[n]);return t},d3.entries=function(e){var t=[];for(var n in e)t.push({key:n,value:e[n]});return t},d3.permute=function(e,t){var n=[],r=-1,i=t.length;while(++r<i)n[r]=e[t[r]];return n},d3.merge=function(e){return Array.prototype.concat.apply([],e)},d3.split=function(e,t){var n=[],r=[],i,s=-1,o=e.length;arguments.length<2&&(t=c);while(++s<o)t.call(r,i=e[s],s)?r=[]:(r.length||n.push(r),r.push(i));return n},d3.range=function(e,t,n){arguments.length<3&&(n=1,arguments.length<2&&(t=e,e=0));if((t-e)/n===Infinity)throw new Error("infinite range");var r=[],i=p(Math.abs(n)),s=-1,o;e*=i,t*=i,n*=i;if(n<0)while((o=e+n*++s)>t)r.push(o/i);else while((o=e+n*++s)<t)r.push(o/i);return r},d3.requote=function(e){return e.replace(Zi,"\\$&")};var Zi=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;d3.round=function(e,t){return t?Math.round(e*(t=Math.pow(10,t)))/t:Math.round(e)},d3.xhr=function(e,t,n){var r=new XMLHttpRequest;arguments.length<3?(n=t,t=null):t&&r.overrideMimeType&&r.overrideMimeType(t),r.open("GET",e,!0),t&&r.setRequestHeader("Accept",t),r.onreadystatechange=function(){if(r.readyState===4){var e=r.status;n(!e&&r.response||e>=200&&e<300||e===304?r:null)}},r.send(null)},d3.text=function(e,t,n){function r(e){n(e&&e.responseText)}arguments.length<3&&(n=t,t=null),d3.xhr(e,t,r)},d3.json=function(e,t){d3.text(e,"application/json",function(e){t(e?JSON.parse(e):null)})},d3.html=function(e,t){d3.text(e,"text/html",function(e){if(e!=null){var n=document.createRange();n.selectNode(document.body),e=n.createContextualFragment(e)}t(e)})},d3.xml=function(e,t,n){function r(e){n(e&&e.responseXML)}arguments.length<3&&(n=t,t=null),d3.xhr(e,t,r)};var es={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};d3.ns={prefix:es,qualify:function(e){var t=e.indexOf(":"),n=e;return t>=0&&(n=e.substring(0,t),e=e.substring(t+1)),es.hasOwnProperty(n)?{space:es[n],local:e}:e}},d3.dispatch=function(){var e=new d,t=-1,n=arguments.length;while(++t<n)e[arguments[t]]=v(e);return e},d.prototype.on=function(e,t){var n=e.indexOf("."),r="";return n>0&&(r=e.substring(n+1),e=e.substring(0,n)),arguments.length<2?this[e].on(r):this[e].on(r,t)},d3.format=function(e){var t=ts.exec(e),n=t[1]||" ",r=t[3]||"",i=t[5],s=+t[6],o=t[7],u=t[8],a=t[9],f=1,l="",c=!1;u&&(u=+u.substring(1)),i&&(n="0",o&&(s-=Math.floor((s-1)/4)));switch(a){case"n":o=!0,a="g";break;case"%":f=100,l="%",a="f";break;case"p":f=100,l="%",a="r";break;case"d":c=!0,u=0;break;case"s":f=-1,a="r"}return a=="r"&&!u&&(a="g"),a=ns.get(a)||g,function(e){if(c&&e%1)return"";var t=e<0&&(e=-e)?"-":r;if(f<0){var h=d3.formatPrefix(e,u);e=h.scale(e),l=h.symbol}else e*=f;e=a(e,u);if(i){var p=e.length+t.length;p<s&&(e=(new Array(s-p+1)).join(n)+e),o&&(e=y(e)),e=t+e}else{o&&(e=y(e)),e=t+e;var p=e.length;p<s&&(e=(new Array(s-p+1)).join(n)+e)}return e+l}};var ts=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,ns=d3.map({g:function(e,t){return e.toPrecision(t)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},r:function(e,t){return d3.round(e,t=m(e,t)).toFixed(Math.max(0,Math.min(20,t)))}}),rs=["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(b);d3.formatPrefix=function(e,t){var n=0;return e&&(e<0&&(e*=-1),t&&(e=d3.round(e,m(e,t))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,Math.floor((n<=0?n+1:n-1)/3)*3))),rs[8+n/3]};var is=T(2),ss=T(3),os=function(){return x},us=d3.map({linear:os,poly:T,quad:function(){return is},cubic:function(){return ss},sin:function(){return N},exp:function(){return C},circle:function(){return k},elastic:L,back:A,bounce:function(){return O}}),as=d3.map({"in":x,out:E,"in-out":S,"out-in":function(e){return S(E(e))}});d3.ease=function(e){var t=e.indexOf("-"),n=t>=0?e.substring(0,t):e,r=t>=0?e.substring(t+1):"in";return n=us.get(n)||os,r=as.get(r)||x,w(r(n.apply(null,Array.prototype.slice.call(arguments,1))))},d3.event=null,d3.transform=function(e){var t=document.createElementNS(d3.ns.prefix.svg,"g");return(d3.transform=function(e){t.setAttribute("transform",e);var n=t.transform.baseVal.consolidate();return new P(n?n.matrix:ls)})(e)},P.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var fs=180/Math.PI,ls={a:1,b:0,c:0,d:1,e:0,f:0};d3.interpolate=function(e,t){var n=d3.interpolators.length,r;while(--n>=0&&!(r=d3.interpolators[n](e,t)));return r},d3.interpolateNumber=function(e,t){return t-=e,function(n){return e+t*n}},d3.interpolateRound=function(e,t){return t-=e,function(n){return Math.round(e+t*n)}},d3.interpolateString=function(e,t){var n,r,i,s=0,o=0,u=[],a=[],f,l;cs.lastIndex=0;for(r=0;n=cs.exec(t);++r)n.index&&u.push(t.substring(s,o=n.index)),a.push({i:u.length,x:n[0]}),u.push(null),s=cs.lastIndex;s<t.length&&u.push(t.substring(s));for(r=0,f=a.length;(n=cs.exec(e))&&r<f;++r){l=a[r];if(l.x==n[0]){if(l.i)if(u[l.i+1]==null){u[l.i-1]+=l.x,u.splice(l.i,1);for(i=r+1;i<f;++i)a[i].i--}else{u[l.i-1]+=l.x+u[l.i+1],u.splice(l.i,2);for(i=r+1;i<f;++i)a[i].i-=2}else if(u[l.i+1]==null)u[l.i]=l.x;else{u[l.i]=l.x+u[l.i+1],u.splice(l.i+1,1);for(i=r+1;i<f;++i)a[i].i--}a.splice(r,1),f--,r--}else l.x=d3.interpolateNumber(parseFloat(n[0]),parseFloat(l.x))}while(r<f)l=a.pop(),u[l.i+1]==null?u[l.i]=l.x:(u[l.i]=l.x+u[l.i+1],u.splice(l.i+1,1)),f--;return u.length===1?u[0]==null?a[0].x:function(){return t}:function(e){for(r=0;r<f;++r)u[(l=a[r]).i]=l.x(e);return u.join("")}},d3.interpolateTransform=function(e,t){var n=[],r=[],i,s=d3.transform(e),o=d3.transform(t),u=s.translate,a=o.translate,f=s.rotate,l=o.rotate,c=s.skew,h=o.skew,p=s.scale,d=o.scale;return u[0]!=a[0]||u[1]!=a[1]?(n.push("translate(",null,",",null,")"),r.push({i:1,x:d3.interpolateNumber(u[0],a[0])},{i:3,x:d3.interpolateNumber(u[1],a[1])})):a[0]||a[1]?n.push("translate("+a+")"):n.push(""),f!=l?(f-l>180?l+=360:l-f>180&&(f+=360),r.push({i:n.push(n.pop()+"rotate(",null,")")-2,x:d3.interpolateNumber(f,l)})):l&&n.push(n.pop()+"rotate("+l+")"),c!=h?r.push({i:n.push(n.pop()+"skewX(",null,")")-2,x:d3.interpolateNumber(c,h)}):h&&n.push(n.pop()+"skewX("+h+")"),p[0]!=d[0]||p[1]!=d[1]?(i=n.push(n.pop()+"scale(",null,",",null,")"),r.push({i:i-4,x:d3.interpolateNumber(p[0],d[0])},{i:i-2,x:d3.interpolateNumber(p[1],d[1])})):(d[0]!=1||d[1]!=1)&&n.push(n.pop()+"scale("+d+")"),i=r.length,function(e){var t=-1,s;while(++t<i)n[(s=r[t]).i]=s.x(e);return n.join("")}},d3.interpolateRgb=function(e,t){e=d3.rgb(e),t=d3.rgb(t);var n=e.r,r=e.g,i=e.b,s=t.r-n,o=t.g-r,u=t.b-i;return function(e){return"#"+z(Math.round(n+s*e))+z(Math.round(r+o*e))+z(Math.round(i+u*e))}},d3.interpolateHsl=function(e,t){e=d3.hsl(e),t=d3.hsl(t);var n=e.h,r=e.s,i=e.l,s=t.h-n,o=t.s-r,u=t.l-i;return s>180?s-=360:s<-180&&(s+=360),function(e){return G(n+s*e,r+o*e,i+u*e)+""}},d3.interpolateLab=function(e,t){e=d3.lab(e),t=d3.lab(t);var n=e.l,r=e.a,i=e.b,s=t.l-n,o=t.a-r,u=t.b-i;return function(e){return rt(n+s*e,r+o*e,i+u*e)+""}},d3.interpolateHcl=function(e,t){e=d3.hcl(e),t=d3.hcl(t);var n=e.h,r=e.c,i=e.l,s=t.h-n,o=t.c-r,u=t.l-i;return s>180?s-=360:s<-180&&(s+=360),function(e){return et(n+s*e,r+o*e,i+u*e)+""}},d3.interpolateArray=function(e,t){var n=[],r=[],i=e.length,s=t.length,o=Math.min(e.length,t.length),u;for(u=0;u<o;++u)n.push(d3.interpolate(e[u],t[u]));for(;u<i;++u)r[u]=e[u];for(;u<s;++u)r[u]=t[u];return function(e){for(u=0;u<o;++u)r[u]=n[u](e);return r}},d3.interpolateObject=function(e,t){var n={},r={},i;for(i in e)i in t?n[i]=F(i)(e[i],t[i]):r[i]=e[i];for(i in t)i in e||(r[i]=t[i]);return function(e){for(i in n)r[i]=n[i](e);return r}};var cs=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;d3.interpolators=[d3.interpolateObject,function(e,t){return t instanceof Array&&d3.interpolateArray(e,t)},function(e,t){return(typeof e=="string"||typeof t=="string")&&d3.interpolateString(e+"",t+"")},function(e,t){return(typeof t=="string"?hs.has(t)||/^(#|rgb\(|hsl\()/.test(t):t instanceof U||t instanceof Q)&&d3.interpolateRgb(e,t)},function(e,t){return!isNaN(e=+e)&&!isNaN(t=+t)&&d3.interpolateNumber(e,t)}],d3.rgb=function(e,t,n){return arguments.length===1?e instanceof U?R(e.r,e.g,e.b):W(""+e,R,G):R(~~e,~~t,~~n)},U.prototype.brighter=function(e){e=Math.pow(.7,arguments.length?e:1);var t=this.r,n=this.g,r=this.b,i=30;return!t&&!n&&!r?R(i,i,i):(t&&t<i&&(t=i),n&&n<i&&(n=i),r&&r<i&&(r=i),R(Math.min(255,Math.floor(t/e)),Math.min(255,Math.floor(n/e)),Math.min(255,Math.floor(r/e))))},U.prototype.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),R(Math.floor(e*this.r),Math.floor(e*this.g),Math.floor(e*this.b))},U.prototype.hsl=function(){return X(this.r,this.g,this.b)},U.prototype.toString=function(){return"#"+z(this.r)+z(this.g)+z(this.b)};var hs=d3.map({aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"});hs.forEach(function(e,t){hs.set(e,W(t,R,G))}),d3.hsl=function(e,t,n){return arguments.length===1?e instanceof Q?K(e.h,e.s,e.l):W(""+e,X,K):K(+e,+t,+n)},Q.prototype.brighter=function(e){return e=Math.pow(.7,arguments.length?e:1),K(this.h,this.s,this.l/e)},Q.prototype.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),K(this.h,this.s,e*this.l)},Q.prototype.rgb=function(){return G(this.h,this.s,this.l)},Q.prototype.toString=function(){return this.rgb().toString()},d3.hcl=function(e,t,n){return arguments.length===1?e instanceof Z?Y(e.h,e.c,e.l):e instanceof nt?it(e.l,e.a,e.b):it((e=V((e=d3.rgb(e)).r,e.g,e.b)).l,e.a,e.b):Y(+e,+t,+n)},Z.prototype.brighter=function(e){return Y(this.h,this.c,Math.min(100,this.l+ps*(arguments.length?e:1)))},Z.prototype.darker=function(e){return Y(this.h,this.c,Math.max(0,this.l-ps*(arguments.length?e:1)))},Z.prototype.rgb=function(){return et(this.h,this.c,this.l).rgb()},Z.prototype.toString=function(){return this.rgb()+""},d3.lab=function(e,t,n){return arguments.length===1?e instanceof nt?tt(e.l,e.a,e.b):e instanceof Z?et(e.l,e.c,e.h):V((e=d3.rgb(e)).r,e.g,e.b):tt(+e,+t,+n)};var ps=18,ds=.95047,vs=1,ms=1.08883;nt.prototype.brighter=function(e){return tt(Math.min(100,this.l+ps*(arguments.length?e:1)),this.a,this.b)},nt.prototype.darker=function(e){return tt(Math.max(0,this.l-ps*(arguments.length?e:1)),this.a,this.b)},nt.prototype.rgb=function(){return rt(this.l,this.a,this.b)},nt.prototype.toString=function(){return this.rgb()+""};var gs=function(e,t){return t.querySelector(e)},ys=function(e,t){return t.querySelectorAll(e)},bs=document.documentElement,ws=bs.matchesSelector||bs.webkitMatchesSelector||bs.mozMatchesSelector||bs.msMatchesSelector||bs.oMatchesSelector,Es=function(e,t){return ws.call(e,t)};typeof Sizzle=="function"&&(gs=function(e,t){return Sizzle(e,t)[0]||null},ys=function(e,t){return Sizzle.uniqueSort(Sizzle(e,t))},Es=Sizzle.matchesSelector);var Ss=[];d3.selection=function(){return xs},d3.selection.prototype=Ss,Ss.select=function(e){var t=[],n,r,i,s;typeof e!="function"&&(e=ft(e));for(var o=-1,u=this.length;++o<u;){t.push(n=[]),n.parentNode=(i=this[o]).parentNode;for(var a=-1,f=i.length;++a<f;)(s=i[a])?(n.push(r=e.call(s,s.__data__,a)),r&&"__data__"in s&&(r.__data__=s.__data__)):n.push(null)}return at(t)},Ss.selectAll=function(e){var t=[],n,r;typeof e!="function"&&(e=lt(e));for(var i=-1,s=this.length;++i<s;)for(var o=this[i],u=-1,a=o.length;++u<a;)if(r=o[u])t.push(n=$i(e.call(r,r.__data__,u))),n.parentNode=r;return at(t)},Ss.attr=function(e,t){if(arguments.length<2){if(typeof e=="string"){var n=this.node();return e=d3.ns.qualify(e),e.local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(t in e)this.each(ct(t,e[t]));return this}return this.each(ct(e,t))},Ss.classed=function(e,t){if(arguments.length<2){if(typeof e=="string"){var n=this.node(),r=(e=e.trim().split(/^|\s+/g)).length,i=-1;if(t=n.classList){while(++i<r)if(!t.contains(e[i]))return!1}else{t=n.className,t.baseVal!=null&&(t=t.baseVal);while(++i<r)if(!ht(e[i]).test(t))return!1}return!0}for(t in e)this.each(pt(t,e[t]));return this}return this.each(pt(e,t))},Ss.style=function(e,t,n){var r=arguments.length;if(r<3){if(typeof e!="string"){r<2&&(t="");for(n in e)this.each(vt(n,e[n],t));return this}if(r<2)return window.getComputedStyle(this.node(),null).getPropertyValue(e);n=""}return this.each(vt(e,t,n))},Ss.property=function(e,t){if(arguments.length<2){if(typeof e=="string")return this.node()[e];for(t in e)this.each(mt(t,e[t]));return this}return this.each(mt(e,t))},Ss.text=function(e){return arguments.length<1?this.node().textContent:this.each(typeof e=="function"?function(){var t=e.apply(this,arguments);this.textContent=t==null?"":t}:e==null?function(){this.textContent=""}:function(){this.textContent=e})},Ss.html=function(e){return arguments.length<1?this.node().innerHTML:this.each(typeof e=="function"?function(){var t=e.apply(this,arguments);this.innerHTML=t==null?"":t}:e==null?function(){this.innerHTML=""}:function(){this.innerHTML=e})},Ss.append=function(e){function t(){return this.appendChild(document.createElementNS(this.namespaceURI,e))}function n(){return this.appendChild(document.createElementNS(e.space,e.local))}return e=d3.ns.qualify(e),this.select(e.local?n:t)},Ss.insert=function(e,t){function n(){return this.insertBefore(document.createElementNS(this.namespaceURI,e),gs(t,this))}function r(){return this.insertBefore(document.createElementNS(e.space,e.local),gs(t,this))}return e=d3.ns.qualify(e),this.select(e.local?r:n)},Ss.remove=function(){return this.each(function(){var e=this.parentNode;e&&e.removeChild(this)})},Ss.data=function(e,t){function n(e,n){var i,s=e.length,o=n.length,u=Math.min(s,o),c=Math.max(s,o),h=[],p=[],d=[],v,m;if(t){var g=new r,y=[],b,w=n.length;for(i=-1;++i<s;)b=t.call(v=e[i],v.__data__,i),g.has(b)?d[w++]=v:g.set(b,v),y.push(b);for(i=-1;++i<o;)b=t.call(n,m=n[i],i),g.has(b)?(h[i]=v=g.get(b),v.__data__=m,p[i]=d[i]=null):(p[i]=gt(m),h[i]=d[i]=null),g.remove(b);for(i=-1;++i<s;)g.has(y[i])&&(d[i]=e[i])}else{for(i=-1;++i<u;)v=e[i],m=n[i],v?(v.__data__=m,h[i]=v,p[i]=d[i]=null):(p[i]=gt(m),h[i]=d[i]=null);for(;i<o;++i)p[i]=gt(n[i]),h[i]=d[i]=null;for(;i<c;++i)d[i]=e[i],p[i]=h[i]=null}p.update=h,p.parentNode=h.parentNode=d.parentNode=e.parentNode,a.push(p),f.push(h),l.push(d)}var i=-1,s=this.length,o,u;if(!arguments.length){e=new Array(s=(o=this[0]).length);while(++i<s)if(u=o[i])e[i]=u.__data__;return e}var a=St([]),f=at([]),l=at([]);if(typeof e=="function")while(++i<s)n(o=this[i],e.call(o,o.parentNode.__data__,i));else while(++i<s)n(o=this[i],e);return f.enter=function(){return a},f.exit=function(){return l},f},Ss.datum=Ss.map=function(e){return arguments.length<1?this.property("__data__"):this.property("__data__",e)},Ss.filter=function(e){var t=[],n,r,i;typeof e!="function"&&(e=yt(e));for(var s=0,o=this.length;s<o;s++){t.push(n=[]),n.parentNode=(r=this[s]).parentNode;for(var u=0,a=r.length;u<a;u++)(i=r[u])&&e.call(i,i.__data__,u)&&n.push(i)}return at(t)},Ss.order=function(){for(var e=-1,t=this.length;++e<t;)for(var n=this[e],r=n.length-1,i=n[r],s;--r>=0;)if(s=n[r])i&&i!==s.nextSibling&&i.parentNode.insertBefore(s,i),i=s;return this},Ss.sort=function(e){e=bt.apply(this,arguments);for(var t=-1,n=this.length;++t<n;)this[t].sort(e);return this.order()},Ss.on=function(e,t,n){var r=arguments.length;if(r<3){if(typeof e!="string"){r<2&&(t=!1);for(n in e)this.each(wt(n,e[n],t));return this}if(r<2)return(r=this.node()["__on"+e])&&r._;n=!1}return this.each(wt(e,t,n))},Ss.each=function(e){return Et(this,function(t,n,r){e.call(t,t.__data__,n,r)})},Ss.call=function(e){return e.apply(this,(arguments[0]=this,arguments)),this},Ss.empty=function(){return!this.node()},Ss.node=function(e){for(var t=0,n=this.length;t<n;t++)for(var r=this[t],i=0,s=r.length;i<s;i++){var o=r[i];if(o)return o}return null},Ss.transition=function(){var e=[],t,n;for(var r=-1,i=this.length;++r<i;){e.push(t=[]);for(var s=this[r],o=-1,u=s.length;++o<u;)t.push((n=s[o])?{node:n,delay:Ms,duration:_s}:null)}return xt(e,ks||++Cs,Date.now())};var xs=at([[document]]);xs[0].parentNode=bs,d3.select=function(e){return typeof e=="string"?xs.select(e):at([[e]])},d3.selectAll=function(e){return typeof e=="string"?xs.selectAll(e):at([$i(e)])};var Ts=[];d3.selection.enter=St,d3.selection.enter.prototype=Ts,Ts.append=Ss.append,Ts.insert=Ss.insert,Ts.empty=Ss.empty,Ts.node=Ss.node,Ts.select=function(e){var t=[],n,r,i,s,o;for(var u=-1,a=this.length;++u<a;){i=(s=this[u]).update,t.push(n=[]),n.parentNode=s.parentNode;for(var f=-1,l=s.length;++f<l;)(o=s[f])?(n.push(i[f]=r=e.call(s.parentNode,o.__data__,f)),r.__data__=o.__data__):n.push(null)}return at(t)};var Ns=[],Cs=0,ks=0,Ls=0,As=250,Os=d3.ease("cubic-in-out"),Ms=Ls,_s=As,Ds=Os;Ns.call=Ss.call,d3.transition=function(e){return arguments.length?ks?e.transition():e:xs.transition()},d3.transition.prototype=Ns,Ns.select=function(e){var t=[],n,r,i;typeof e!="function"&&(e=ft(e));for(var s=-1,o=this.length;++s<o;){t.push(n=[]);for(var u=this[s],a=-1,f=u.length;++a<f;)(i=u[a])&&(r=e.call(i.node,i.node.__data__,a))?("__data__"in i.node&&(r.__data__=i.node.__data__),n.push({node:r,delay:i.delay,duration:i.duration})):n.push(null)}return xt(t,this.id,this.time).ease(this.ease())},Ns.selectAll=function(e){var t=[],n,r,i;typeof e!="function"&&(e=lt(e));for(var s=-1,o=this.length;++s<o;)for(var u=this[s],a=-1,f=u.length;++a<f;)if(i=u[a]){r=e.call(i.node,i.node.__data__,a),t.push(n=[]);for(var l=-1,c=r.length;++l<c;)n.push({node:r[l],delay:i.delay,duration:i.duration})}return xt(t,this.id,this.time).ease(this.ease())},Ns.filter=function(e){var t=[],n,r,i;typeof e!="function"&&(e=yt(e));for(var s=0,o=this.length;s<o;s++){t.push(n=[]);for(var r=this[s],u=0,a=r.length;u<a;u++)(i=r[u])&&e.call(i.node,i.node.__data__,u)&&n.push(i)}return xt(t,this.id,this.time).ease(this.ease())},Ns.attr=function(e,t){if(arguments.length<2){for(t in e)this.attrTween(t,Ct(e[t],t));return this}return this.attrTween(e,Ct(t,e))},Ns.attrTween=function(e,t){function n(e,n){var r=t.call(this,e,n,this.getAttribute(i));return r===Ps?(this.removeAttribute(i),null):r&&function(e){this.setAttribute(i,r(e))}}function r(e,n){var r=t.call(this,e,n,this.getAttributeNS(i.space,i.local));return r===Ps?(this.removeAttributeNS(i.space,i.local),null):r&&function(e){this.setAttributeNS(i.space,i.local,r(e))}}var i=d3.ns.qualify(e);return this.tween("attr."+e,i.local?r:n)},Ns.style=function(e,t,n){var r=arguments.length;if(r<3){if(typeof e!="string"){r<2&&(t="");for(n in e)this.styleTween(n,Ct(e[n],n),t);return this}n=""}return this.styleTween(e,Ct(t,e),n)},Ns.styleTween=function(e,t,n){return arguments.length<3&&(n=""),this.tween("style."+e,function(r,i){var s=t.call(this,r,i,window.getComputedStyle(this,null).getPropertyValue(e));return s===Ps?(this.style.removeProperty(e),null):s&&function(t){this.style.setProperty(e,s(t),n)}})},Ns.text=function(e){return this.tween("text",function(t,n){this.textContent=typeof e=="function"?e.call(this,t,n):e})},Ns.remove=function(){return this.each("end.transition",function(){var e;!this.__transition__&&(e=this.parentNode)&&e.removeChild(this)})},Ns.delay=function(e){return Et(this,typeof e=="function"?function(t,n,r){t.delay=e.call(t=t.node,t.__data__,n,r)|0}:(e|=0,function(t){t.delay=e}))},Ns.duration=function(e){return Et(this,typeof e=="function"?function(t,n,r){t.duration=Math.max(1,e.call(t=t.node,t.__data__,n,r)|0)}:(e=Math.max(1,e|0),function(t){t.duration=e}))},Ns.transition=function(){return this.select(s)},d3.tween=function(e,t){function n(n,r,i){var s=e.call(this,n,r);return s==null?i!=""&&Ps:i!=s&&t(i,s)}function r(n,r,i){return i!=e&&t(i,e)}return typeof e=="function"?n:e==null?Nt:(e+="",r)};var Ps={},Hs=null,Bs,js;d3.timer=function(e,t,n){var r=!1,i,s=Hs;if(arguments.length<3){if(arguments.length<2)t=0;else if(!isFinite(t))return;n=Date.now()}while(s){if(s.callback===e){s.then=n,s.delay=t,r=!0;break}i=s,s=s.next}r||(Hs={callback:e,then:n,delay:t,next:Hs}),Bs||(js=clearTimeout(js),Bs=1,Fs(kt))},d3.timer.flush=function(){var e,t=Date.now(),n=Hs;while(n)e=t-n.then,n.delay||(n.flush=n.callback(e)),n=n.next;Lt()};var Fs=window.requestAnimationFrame||window.webkitRequestAnimationFrame||
-window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,17)};d3.mouse=function(e){return At(e,_())};var Is=/WebKit/.test(navigator.userAgent)?-1:0;d3.touches=function(e,t){return arguments.length<2&&(t=_().touches),t?$i(t).map(function(t){var n=At(e,t);return n.identifier=t.identifier,n}):[]},d3.scale={},d3.scale.linear=function(){return Ht([0,1],[0,1],d3.interpolate,!1)},d3.scale.log=function(){return zt(d3.scale.linear(),Wt)};var qs=d3.format(".0e");Wt.pow=function(e){return Math.pow(10,e)},Xt.pow=function(e){return-Math.pow(10,-e)},d3.scale.pow=function(){return Vt(d3.scale.linear(),1)},d3.scale.sqrt=function(){return d3.scale.pow().exponent(.5)},d3.scale.ordinal=function(){return Jt([],{t:"range",a:[[]]})},d3.scale.category10=function(){return d3.scale.ordinal().range(Rs)},d3.scale.category20=function(){return d3.scale.ordinal().range(Us)},d3.scale.category20b=function(){return d3.scale.ordinal().range(zs)},d3.scale.category20c=function(){return d3.scale.ordinal().range(Ws)};var Rs=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],Us=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],zs=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd","#de9ed6"],Ws=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];d3.scale.quantile=function(){return Kt([],[])},d3.scale.quantize=function(){return Qt(0,1,[0,1])},d3.scale.threshold=function(){return Gt([.5],[0,1])},d3.scale.identity=function(){return Yt([0,1])},d3.svg={},d3.svg.arc=function(){function e(){var e=t.apply(this,arguments),s=n.apply(this,arguments),o=r.apply(this,arguments)+Xs,u=i.apply(this,arguments)+Xs,a=(u<o&&(a=o,o=u,u=a),u-o),f=a<Math.PI?"0":"1",l=Math.cos(o),c=Math.sin(o),h=Math.cos(u),p=Math.sin(u);return a>=Vs?e?"M0,"+s+"A"+s+","+s+" 0 1,1 0,"+ -s+"A"+s+","+s+" 0 1,1 0,"+s+"M0,"+e+"A"+e+","+e+" 0 1,0 0,"+ -e+"A"+e+","+e+" 0 1,0 0,"+e+"Z":"M0,"+s+"A"+s+","+s+" 0 1,1 0,"+ -s+"A"+s+","+s+" 0 1,1 0,"+s+"Z":e?"M"+s*l+","+s*c+"A"+s+","+s+" 0 "+f+",1 "+s*h+","+s*p+"L"+e*h+","+e*p+"A"+e+","+e+" 0 "+f+",0 "+e*l+","+e*c+"Z":"M"+s*l+","+s*c+"A"+s+","+s+" 0 "+f+",1 "+s*h+","+s*p+"L0,0"+"Z"}var t=Zt,n=en,r=tn,i=nn;return e.innerRadius=function(n){return arguments.length?(t=u(n),e):t},e.outerRadius=function(t){return arguments.length?(n=u(t),e):n},e.startAngle=function(t){return arguments.length?(r=u(t),e):r},e.endAngle=function(t){return arguments.length?(i=u(t),e):i},e.centroid=function(){var e=(t.apply(this,arguments)+n.apply(this,arguments))/2,s=(r.apply(this,arguments)+i.apply(this,arguments))/2+Xs;return[Math.cos(s)*e,Math.sin(s)*e]},e};var Xs=-Math.PI/2,Vs=2*Math.PI-1e-6;d3.svg.line=function(){return rn(i)};var $s=d3.map({linear:un,"linear-closed":an,"step-before":fn,"step-after":ln,basis:mn,"basis-open":gn,"basis-closed":yn,bundle:bn,cardinal:pn,"cardinal-open":cn,"cardinal-closed":hn,monotone:Nn});$s.forEach(function(e,t){t.key=e,t.closed=/-closed$/.test(e)});var Js=[0,2/3,1/3,0],Ks=[0,1/3,2/3,0],Qs=[0,1/6,2/3,1/6];d3.svg.line.radial=function(){var e=rn(Cn);return e.radius=e.x,delete e.x,e.angle=e.y,delete e.y,e},fn.reverse=ln,ln.reverse=fn,d3.svg.area=function(){return kn(i)},d3.svg.area.radial=function(){var e=kn(Cn);return e.radius=e.x,delete e.x,e.innerRadius=e.x0,delete e.x0,e.outerRadius=e.x1,delete e.x1,e.angle=e.y,delete e.y,e.startAngle=e.y0,delete e.y0,e.endAngle=e.y1,delete e.y1,e},d3.svg.chord=function(){function e(e,u){var a=t(this,s,e,u),f=t(this,o,e,u);return"M"+a.p0+r(a.r,a.p1,a.a1-a.a0)+(n(a,f)?i(a.r,a.p1,a.r,a.p0):i(a.r,a.p1,f.r,f.p0)+r(f.r,f.p1,f.a1-f.a0)+i(f.r,f.p1,a.r,a.p0))+"Z"}function t(e,t,n,r){var i=t.call(e,n,r),s=a.call(e,i,r),o=f.call(e,i,r)+Xs,u=l.call(e,i,r)+Xs;return{r:s,a0:o,a1:u,p0:[s*Math.cos(o),s*Math.sin(o)],p1:[s*Math.cos(u),s*Math.sin(u)]}}function n(e,t){return e.a0==t.a0&&e.a1==t.a1}function r(e,t,n){return"A"+e+","+e+" 0 "+ +(n>Math.PI)+",1 "+t}function i(e,t,n,r){return"Q 0,0 "+r}var s=Ln,o=An,a=On,f=tn,l=nn;return e.radius=function(t){return arguments.length?(a=u(t),e):a},e.source=function(t){return arguments.length?(s=u(t),e):s},e.target=function(t){return arguments.length?(o=u(t),e):o},e.startAngle=function(t){return arguments.length?(f=u(t),e):f},e.endAngle=function(t){return arguments.length?(l=u(t),e):l},e},d3.svg.diagonal=function(){function e(e,i){var s=t.call(this,e,i),o=n.call(this,e,i),u=(s.y+o.y)/2,a=[s,{x:s.x,y:u},{x:o.x,y:u},o];return a=a.map(r),"M"+a[0]+"C"+a[1]+" "+a[2]+" "+a[3]}var t=Ln,n=An,r=Dn;return e.source=function(n){return arguments.length?(t=u(n),e):t},e.target=function(t){return arguments.length?(n=u(t),e):n},e.projection=function(t){return arguments.length?(r=t,e):r},e},d3.svg.diagonal.radial=function(){var e=d3.svg.diagonal(),t=Dn,n=e.projection;return e.projection=function(e){return arguments.length?n(Pn(t=e)):t},e},d3.svg.mouse=d3.mouse,d3.svg.touches=d3.touches,d3.svg.symbol=function(){function e(e,r){return(Gs.get(t.call(this,e,r))||jn)(n.call(this,e,r))}var t=Bn,n=Hn;return e.type=function(n){return arguments.length?(t=u(n),e):t},e.size=function(t){return arguments.length?(n=u(t),e):n},e};var Gs=d3.map({circle:jn,cross:function(e){var t=Math.sqrt(e/5)/2;return"M"+ -3*t+","+ -t+"H"+ -t+"V"+ -3*t+"H"+t+"V"+ -t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+ -t+"V"+t+"H"+ -3*t+"Z"},diamond:function(e){var t=Math.sqrt(e/(2*Zs)),n=t*Zs;return"M0,"+ -t+"L"+n+",0"+" 0,"+t+" "+ -n+",0"+"Z"},square:function(e){var t=Math.sqrt(e)/2;return"M"+ -t+","+ -t+"L"+t+","+ -t+" "+t+","+t+" "+ -t+","+t+"Z"},"triangle-down":function(e){var t=Math.sqrt(e/Ys),n=t*Ys/2;return"M0,"+n+"L"+t+","+ -n+" "+ -t+","+ -n+"Z"},"triangle-up":function(e){var t=Math.sqrt(e/Ys),n=t*Ys/2;return"M0,"+ -n+"L"+t+","+n+" "+ -t+","+n+"Z"}});d3.svg.symbolTypes=Gs.keys();var Ys=Math.sqrt(3),Zs=Math.tan(30*Math.PI/180);d3.svg.axis=function(){function e(e){e.each(function(){var e=d3.select(this),c=a==null?t.ticks?t.ticks.apply(t,u):t.domain():a,h=f==null?t.tickFormat?t.tickFormat.apply(t,u):String:f,p=qn(t,c,l),d=e.selectAll(".minor").data(p,String),v=d.enter().insert("line","g").attr("class","tick minor").style("opacity",1e-6),m=d3.transition(d.exit()).style("opacity",1e-6).remove(),g=d3.transition(d).style("opacity",1),y=e.selectAll("g").data(c,String),b=y.enter().insert("g","path").style("opacity",1e-6),w=d3.transition(y.exit()).style("opacity",1e-6).remove(),E=d3.transition(y).style("opacity",1),S,x=_t(t),T=e.selectAll(".domain").data([0]),N=T.enter().append("path").attr("class","domain"),C=d3.transition(T),k=t.copy(),L=this.__chart__||k;this.__chart__=k,b.append("line").attr("class","tick"),b.append("text");var A=b.select("line"),O=E.select("line"),M=y.select("text").text(h),_=b.select("text"),D=E.select("text");switch(n){case"bottom":S=Fn,v.attr("y2",i),g.attr("x2",0).attr("y2",i),A.attr("y2",r),_.attr("y",Math.max(r,0)+o),O.attr("x2",0).attr("y2",r),D.attr("x",0).attr("y",Math.max(r,0)+o),M.attr("dy",".71em").attr("text-anchor","middle"),C.attr("d","M"+x[0]+","+s+"V0H"+x[1]+"V"+s);break;case"top":S=Fn,v.attr("y2",-i),g.attr("x2",0).attr("y2",-i),A.attr("y2",-r),_.attr("y",-(Math.max(r,0)+o)),O.attr("x2",0).attr("y2",-r),D.attr("x",0).attr("y",-(Math.max(r,0)+o)),M.attr("dy","0em").attr("text-anchor","middle"),C.attr("d","M"+x[0]+","+ -s+"V0H"+x[1]+"V"+ -s);break;case"left":S=In,v.attr("x2",-i),g.attr("x2",-i).attr("y2",0),A.attr("x2",-r),_.attr("x",-(Math.max(r,0)+o)),O.attr("x2",-r).attr("y2",0),D.attr("x",-(Math.max(r,0)+o)).attr("y",0),M.attr("dy",".32em").attr("text-anchor","end"),C.attr("d","M"+ -s+","+x[0]+"H0V"+x[1]+"H"+ -s);break;case"right":S=In,v.attr("x2",i),g.attr("x2",i).attr("y2",0),A.attr("x2",r),_.attr("x",Math.max(r,0)+o),O.attr("x2",r).attr("y2",0),D.attr("x",Math.max(r,0)+o).attr("y",0),M.attr("dy",".32em").attr("text-anchor","start"),C.attr("d","M"+s+","+x[0]+"H0V"+x[1]+"H"+s)}if(t.ticks)b.call(S,L),E.call(S,k),w.call(S,k),v.call(S,L),g.call(S,k),m.call(S,k);else{var P=k.rangeBand()/2,H=function(e){return k(e)+P};b.call(S,H),E.call(S,H)}})}var t=d3.scale.linear(),n="bottom",r=6,i=6,s=6,o=3,u=[10],a=null,f,l=0;return e.scale=function(n){return arguments.length?(t=n,e):t},e.orient=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return arguments.length?(u=arguments,e):u},e.tickValues=function(t){return arguments.length?(a=t,e):a},e.tickFormat=function(t){return arguments.length?(f=t,e):f},e.tickSize=function(t,n,o){if(!arguments.length)return r;var u=arguments.length-1;return r=+t,i=u>1?+n:r,s=u>0?+arguments[u]:r,e},e.tickPadding=function(t){return arguments.length?(o=+t,e):o},e.tickSubdivide=function(t){return arguments.length?(l=+t,e):l},e},d3.svg.brush=function(){function e(s){s.each(function(){var s=d3.select(this),f=s.selectAll(".background").data([0]),l=s.selectAll(".extent").data([0]),c=s.selectAll(".resize").data(a,String),h;s.style("pointer-events","all").on("mousedown.brush",i).on("touchstart.brush",i),f.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),l.enter().append("rect").attr("class","extent").style("cursor","move"),c.enter().append("g").attr("class",function(e){return"resize "+e}).style("cursor",function(e){return eo[e]}).append("rect").attr("x",function(e){return/[ew]$/.test(e)?-3:null}).attr("y",function(e){return/^[ns]/.test(e)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),c.style("display",e.empty()?"none":null),c.exit().remove(),o&&(h=_t(o),f.attr("x",h[0]).attr("width",h[1]-h[0]),n(s)),u&&(h=_t(u),f.attr("y",h[0]).attr("height",h[1]-h[0]),r(s)),t(s)})}function t(e){e.selectAll(".resize").attr("transform",function(e){return"translate("+f[+/e$/.test(e)][0]+","+f[+/^s/.test(e)][1]+")"})}function n(e){e.select(".extent").attr("x",f[0][0]),e.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1][0]-f[0][0])}function r(e){e.select(".extent").attr("y",f[0][1]),e.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1][1]-f[0][1])}function i(){function i(){var e=d3.event.changedTouches;return e?d3.touches(v,e)[0]:d3.mouse(v)}function a(){d3.event.keyCode==32&&(S||(x=null,T[0]-=f[1][0],T[1]-=f[1][1],S=2),M())}function c(){d3.event.keyCode==32&&S==2&&(T[0]+=f[1][0],T[1]+=f[1][1],S=0,M())}function h(){var e=i(),s=!1;N&&(e[0]+=N[0],e[1]+=N[1]),S||(d3.event.altKey?(x||(x=[(f[0][0]+f[1][0])/2,(f[0][1]+f[1][1])/2]),T[0]=f[+(e[0]<x[0])][0],T[1]=f[+(e[1]<x[1])][1]):x=null),w&&p(e,o,0)&&(n(y),s=!0),E&&p(e,u,1)&&(r(y),s=!0),s&&(t(y),g({type:"brush",mode:S?"move":"resize"}))}function p(e,t,n){var r=_t(t),i=r[0],s=r[1],o=T[n],u=f[1][n]-f[0][n],a,c;S&&(i-=o,s-=u+o),a=Math.max(i,Math.min(s,e[n])),S?c=(a+=o)+u:(x&&(o=Math.max(i,Math.min(s,2*x[n]-a))),o<a?(c=a,a=o):c=o);if(f[0][n]!==a||f[1][n]!==c)return l=null,f[0][n]=a,f[1][n]=c,!0}function d(){h(),y.style("pointer-events","all").selectAll(".resize").style("display",e.empty()?"none":null),d3.select("body").style("cursor",null),C.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),g({type:"brushend"}),M()}var v=this,m=d3.select(d3.event.target),g=s.of(v,arguments),y=d3.select(v),b=m.datum(),w=!/^(n|s)$/.test(b)&&o,E=!/^(e|w)$/.test(b)&&u,S=m.classed("extent"),x,T=i(),N,C=d3.select(window).on("mousemove.brush",h).on("mouseup.brush",d).on("touchmove.brush",h).on("touchend.brush",d).on("keydown.brush",a).on("keyup.brush",c);if(S)T[0]=f[0][0]-T[0],T[1]=f[0][1]-T[1];else if(b){var k=+/w$/.test(b),L=+/^n/.test(b);N=[f[1-k][0]-T[0],f[1-L][1]-T[1]],T[0]=f[k][0],T[1]=f[L][1]}else d3.event.altKey&&(x=T.slice());y.style("pointer-events","none").selectAll(".resize").style("display",null),d3.select("body").style("cursor",m.style("cursor")),g({type:"brushstart"}),h(),M()}var s=D(e,"brushstart","brush","brushend"),o=null,u=null,a=to[0],f=[[0,0],[0,0]],l;return e.x=function(t){return arguments.length?(o=t,a=to[!o<<1|!u],e):o},e.y=function(t){return arguments.length?(u=t,a=to[!o<<1|!u],e):u},e.extent=function(t){var n,r,i,s,a;return arguments.length?(l=[[0,0],[0,0]],o&&(n=t[0],r=t[1],u&&(n=n[0],r=r[0]),l[0][0]=n,l[1][0]=r,o.invert&&(n=o(n),r=o(r)),r<n&&(a=n,n=r,r=a),f[0][0]=n|0,f[1][0]=r|0),u&&(i=t[0],s=t[1],o&&(i=i[1],s=s[1]),l[0][1]=i,l[1][1]=s,u.invert&&(i=u(i),s=u(s)),s<i&&(a=i,i=s,s=a),f[0][1]=i|0,f[1][1]=s|0),e):(t=l||f,o&&(n=t[0][0],r=t[1][0],l||(n=f[0][0],r=f[1][0],o.invert&&(n=o.invert(n),r=o.invert(r)),r<n&&(a=n,n=r,r=a))),u&&(i=t[0][1],s=t[1][1],l||(i=f[0][1],s=f[1][1],u.invert&&(i=u.invert(i),s=u.invert(s)),s<i&&(a=i,i=s,s=a))),o&&u?[[n,i],[r,s]]:o?[n,r]:u&&[i,s])},e.clear=function(){return l=null,f[0][0]=f[0][1]=f[1][0]=f[1][1]=0,e},e.empty=function(){return o&&f[0][0]===f[1][0]||u&&f[0][1]===f[1][1]},d3.rebind(e,s,"on")};var eo={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},to=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]];d3.behavior={},d3.behavior.drag=function(){function e(){this.on("mousedown.drag",t).on("touchstart.drag",t)}function t(){function e(){var e=o.parentNode;return f?d3.touches(e).filter(function(e){return e.identifier===f})[0]:d3.mouse(e)}function t(){if(!o.parentNode)return i();var t=e(),n=t[0]-c[0],r=t[1]-c[1];h|=n|r,c=t,M(),u({type:"drag",x:t[0]+l[0],y:t[1]+l[1],dx:n,dy:r})}function i(){u({type:"dragend"}),h&&(M(),d3.event.target===a&&p.on("click.drag",s,!0)),p.on(f?"touchmove.drag-"+f:"mousemove.drag",null).on(f?"touchend.drag-"+f:"mouseup.drag",null)}function s(){M(),p.on("click.drag",null)}var o=this,u=n.of(o,arguments),a=d3.event.target,f=d3.event.touches&&d3.event.changedTouches[0].identifier,l,c=e(),h=0,p=d3.select(window).on(f?"touchmove.drag-"+f:"mousemove.drag",t).on(f?"touchend.drag-"+f:"mouseup.drag",i,!0);r?(l=r.apply(o,arguments),l=[l.x-c[0],l.y-c[1]]):l=[0,0],f||M(),u({type:"dragstart"})}var n=D(e,"drag","dragstart","dragend"),r=null;return e.origin=function(t){return arguments.length?(r=t,e):r},d3.rebind(e,n,"on")},d3.behavior.zoom=function(){function e(){this.on("mousedown.zoom",o).on("mousewheel.zoom",u).on("mousemove.zoom",a).on("DOMMouseScroll.zoom",u).on("dblclick.zoom",f).on("touchstart.zoom",l).on("touchmove.zoom",c).on("touchend.zoom",l)}function t(e){return[(e[0]-h[0])/d,(e[1]-h[1])/d]}function n(e){return[e[0]*d+h[0],e[1]*d+h[1]]}function r(e){d=Math.max(m[0],Math.min(m[1],e))}function i(e,t){t=n(t),h[0]+=e[0]-t[0],h[1]+=e[1]-t[1]}function s(e){b&&b.domain(y.range().map(function(e){return(e-h[0])/d}).map(y.invert)),E&&E.domain(w.range().map(function(e){return(e-h[1])/d}).map(w.invert)),d3.event.preventDefault(),e({type:"zoom",scale:d,translate:h})}function o(){function e(){f=1,i(d3.mouse(o),c),s(u)}function n(){f&&M(),l.on("mousemove.zoom",null).on("mouseup.zoom",null),f&&d3.event.target===a&&l.on("click.zoom",r,!0)}function r(){M(),l.on("click.zoom",null)}var o=this,u=g.of(o,arguments),a=d3.event.target,f=0,l=d3.select(window).on("mousemove.zoom",e).on("mouseup.zoom",n),c=t(d3.mouse(o));window.focus(),M()}function u(){p||(p=t(d3.mouse(this))),r(Math.pow(2,Rn()*.002)*d),i(d3.mouse(this),p),s(g.of(this,arguments))}function a(){p=null}function f(){var e=d3.mouse(this),n=t(e);r(d3.event.shiftKey?d/2:d*2),i(e,n),s(g.of(this,arguments))}function l(){var e=d3.touches(this),n=Date.now();v=d,p={},e.forEach(function(e){p[e.identifier]=t(e)}),M();if(e.length===1){if(n-S<500){var o=e[0],u=t(e[0]);r(d*2),i(o,u),s(g.of(this,arguments))}S=n}}function c(){var e=d3.touches(this),t=e[0],n=p[t.identifier];if(o=e[1]){var o,u=p[o.identifier];t=[(t[0]+o[0])/2,(t[1]+o[1])/2],n=[(n[0]+u[0])/2,(n[1]+u[1])/2],r(d3.event.scale*v)}i(t,n),S=null,s(g.of(this,arguments))}var h=[0,0],p,d=1,v,m=ro,g=D(e,"zoom"),y,b,w,E,S;return e.translate=function(t){return arguments.length?(h=t.map(Number),e):h},e.scale=function(t){return arguments.length?(d=+t,e):d},e.scaleExtent=function(t){return arguments.length?(m=t==null?ro:t.map(Number),e):m},e.x=function(t){return arguments.length?(b=t,y=t.copy(),e):b},e.y=function(t){return arguments.length?(E=t,w=t.copy(),e):E},d3.rebind(e,g,"on")};var no,ro=[0,Infinity];d3.layout={},d3.layout.bundle=function(){return function(e){var t=[],n=-1,r=e.length;while(++n<r)t.push(Un(e[n]));return t}},d3.layout.chord=function(){function e(){var e={},n=[],c=d3.range(o),h=[],p,d,v,m,g;r=[],i=[],p=0,m=-1;while(++m<o){d=0,g=-1;while(++g<o)d+=s[m][g];n.push(d),h.push(d3.range(o)),p+=d}a&&c.sort(function(e,t){return a(n[e],n[t])}),f&&h.forEach(function(e,t){e.sort(function(e,n){return f(s[t][e],s[t][n])})}),p=(2*Math.PI-u*o)/p,d=0,m=-1;while(++m<o){v=d,g=-1;while(++g<o){var y=c[m],b=h[y][g],w=s[y][b],E=d,S=d+=w*p;e[y+"-"+b]={index:y,subindex:b,startAngle:E,endAngle:S,value:w}}i[y]={index:y,startAngle:v,endAngle:d,value:(d-v)/p},d+=u}m=-1;while(++m<o){g=m-1;while(++g<o){var x=e[m+"-"+g],T=e[g+"-"+m];(x.value||T.value)&&r.push(x.value<T.value?{source:T,target:x}:{source:x,target:T})}}l&&t()}function t(){r.sort(function(e,t){return l((e.source.value+e.target.value)/2,(t.source.value+t.target.value)/2)})}var n={},r,i,s,o,u=0,a,f,l;return n.matrix=function(e){return arguments.length?(o=(s=e)&&s.length,r=i=null,n):s},n.padding=function(e){return arguments.length?(u=e,r=i=null,n):u},n.sortGroups=function(e){return arguments.length?(a=e,r=i=null,n):a},n.sortSubgroups=function(e){return arguments.length?(f=e,r=null,n):f},n.sortChords=function(e){return arguments.length?(l=e,r&&t(),n):l},n.chords=function(){return r||e(),r},n.groups=function(){return i||e(),i},n},d3.layout.force=function(){function e(e){return function(t,n,r,i,s){if(t.point!==e){var o=t.cx-e.x,u=t.cy-e.y,a=1/Math.sqrt(o*o+u*u);if((i-n)*a<d){var f=t.charge*a*a;return e.px-=o*f,e.py-=u*f,!0}if(t.point&&isFinite(a)){var f=t.pointCharge*a*a;e.px-=o*f,e.py-=u*f}}return!t.charge}}function t(e){e.px=d3.event.x,e.py=d3.event.y,n.resume()}var n={},r=d3.dispatch("start","tick","end"),s=[1,1],o,a,f=.9,l=Qn,c=Gn,h=-30,p=.1,d=.8,v,m=[],g=[],y,b,w;return n.tick=function(){if((a*=.99)<.005)return r.end({type:"end",alpha:a=0}),!0;var t=m.length,n=g.length,i,o,u,l,c,d,v,E,S;for(o=0;o<n;++o){u=g[o],l=u.source,c=u.target,E=c.x-l.x,S=c.y-l.y;if(d=E*E+S*S)d=a*b[o]*((d=Math.sqrt(d))-y[o])/d,E*=d,S*=d,c.x-=E*(v=l.weight/(c.weight+l.weight)),c.y-=S*v,l.x+=E*(v=1-v),l.y+=S*v}if(v=a*p){E=s[0]/2,S=s[1]/2,o=-1;if(v)while(++o<t)u=m[o],u.x+=(E-u.x)*v,u.y+=(S-u.y)*v}if(h){Kn(i=d3.geom.quadtree(m),a,w),o=-1;while(++o<t)(u=m[o]).fixed||i.visit(e(u))}o=-1;while(++o<t)u=m[o],u.fixed?(u.x=u.px,u.y=u.py):(u.x-=(u.px-(u.px=u.x))*f,u.y-=(u.py-(u.py=u.y))*f);r.tick({type:"tick",alpha:a})},n.nodes=function(e){return arguments.length?(m=e,n):m},n.links=function(e){return arguments.length?(g=e,n):g},n.size=function(e){return arguments.length?(s=e,n):s},n.linkDistance=function(e){return arguments.length?(l=u(e),n):l},n.distance=n.linkDistance,n.linkStrength=function(e){return arguments.length?(c=u(e),n):c},n.friction=function(e){return arguments.length?(f=e,n):f},n.charge=function(e){return arguments.length?(h=typeof e=="function"?e:+e,n):h},n.gravity=function(e){return arguments.length?(p=e,n):p},n.theta=function(e){return arguments.length?(d=e,n):d},n.alpha=function(e){return arguments.length?(a?e>0?a=e:a=0:e>0&&(r.start({type:"start",alpha:a=e}),d3.timer(n.tick)),n):a},n.start=function(){function e(e,n){var i=t(r),s=-1,o=i.length,u;while(++s<o)if(!isNaN(u=i[s][e]))return u;return Math.random()*n}function t(){if(!p){p=[];for(i=0;i<o;++i)p[i]=[];for(i=0;i<u;++i){var e=g[i];p[e.source.index].push(e.target),p[e.target.index].push(e.source)}}return p[r]}var r,i,o=m.length,u=g.length,a=s[0],f=s[1],p,d;for(r=0;r<o;++r)(d=m[r]).index=r,d.weight=0;y=[],b=[];for(r=0;r<u;++r)d=g[r],typeof d.source=="number"&&(d.source=m[d.source]),typeof d.target=="number"&&(d.target=m[d.target]),y[r]=l.call(this,d,r),b[r]=c.call(this,d,r),++d.source.weight,++d.target.weight;for(r=0;r<o;++r)d=m[r],isNaN(d.x)&&(d.x=e("x",a)),isNaN(d.y)&&(d.y=e("y",f)),isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);w=[];if(typeof h=="function")for(r=0;r<o;++r)w[r]=+h.call(this,m[r],r);else for(r=0;r<o;++r)w[r]=h;return n.resume()},n.resume=function(){return n.alpha(.1)},n.stop=function(){return n.alpha(0)},n.drag=function(){o||(o=d3.behavior.drag().origin(i).on("dragstart",Xn).on("drag",t).on("dragend",Vn)),this.on("mouseover.force",$n).on("mouseout.force",Jn).call(o)},d3.rebind(n,r,"on")},d3.layout.partition=function(){function e(t,n,r,i){var s=t.children;t.x=n,t.y=t.depth*i,t.dx=r,t.dy=i;if(s&&(u=s.length)){var o=-1,u,a,f;r=t.value?r/t.value:0;while(++o<u)e(a=s[o],n,f=a.value*r,i),n+=f}}function t(e){var n=e.children,r=0;if(n&&(s=n.length)){var i=-1,s;while(++i<s)r=Math.max(r,t(n[i]))}return 1+r}function n(n,s){var o=r.call(this,n,s);return e(o[0],0,i[0],i[1]/t(o[0])),o}var r=d3.layout.hierarchy(),i=[1,1];return n.size=function(e){return arguments.length?(i=e,n):i},fr(n,r)},d3.layout.pie=function(){function e(s,o){var u=s.map(function(n,r){return+t.call(e,n,r)}),a=+(typeof r=="function"?r.apply(this,arguments):r),f=((typeof i=="function"?i.apply(this,arguments):i)-r)/d3.sum(u),l=d3.range(s.length);n!=null&&l.sort(n===io?function(e,t){return u[t]-u[e]}:function(e,t){return n(s[e],s[t])});var c=[];return l.forEach(function(e){var t;c[e]={data:s[e],value:t=u[e],startAngle:a,endAngle:a+=t*f}}),c}var t=Number,n=io,r=0,i=2*Math.PI;return e.value=function(n){return arguments.length?(t=n,e):t},e.sort=function(t){return arguments.length?(n=t,e):n},e.startAngle=function(t){return arguments.length?(r=t,e):r},e.endAngle=function(t){return arguments.length?(i=t,e):i},e};var io={};d3.layout.stack=function(){function e(i,a){var f=i.map(function(n,r){return t.call(e,n,r)}),l=f.map(function(t,n){return t.map(function(t,n){return[o.call(e,t,n),u.call(e,t,n)]})}),c=n.call(e,l,a);f=d3.permute(f,c),l=d3.permute(l,c);var h=r.call(e,l,a),p=f.length,d=f[0].length,v,m,g;for(m=0;m<d;++m){s.call(e,f[0][m],g=h[m],l[0][m][1]);for(v=1;v<p;++v)s.call(e,f[v][m],g+=l[v-1][m][1],l[v][m][1])}return i}var t=i,n=tr,r=nr,s=er,o=Yn,u=Zn;return e.values=function(n){return arguments.length?(t=n,e):t},e.order=function(t){return arguments.length?(n=typeof t=="function"?t:so.get(t)||tr,e):n},e.offset=function(t){return arguments.length?(r=typeof t=="function"?t:oo.get(t)||nr,e):r},e.x=function(t){return arguments.length?(o=t,e):o},e.y=function(t){return arguments.length?(u=t,e):u},e.out=function(t){return arguments.length?(s=t,e):s},e};var so=d3.map({"inside-out":function(e){var t=e.length,n,r,i=e.map(rr),s=e.map(ir),o=d3.range(t).sort(function(e,t){return i[e]-i[t]}),u=0,a=0,f=[],l=[];for(n=0;n<t;++n)r=o[n],u<a?(u+=s[r],f.push(r)):(a+=s[r],l.push(r));return l.reverse().concat(f)},reverse:function(e){return d3.range(e.length).reverse()},"default":tr}),oo=d3.map({silhouette:function(e){var t=e.length,n=e[0].length,r=[],i=0,s,o,u,a=[];for(o=0;o<n;++o){for(s=0,u=0;s<t;s++)u+=e[s][o][1];u>i&&(i=u),r.push(u)}for(o=0;o<n;++o)a[o]=(i-r[o])/2;return a},wiggle:function(e){var t=e.length,n=e[0],r=n.length,i=0,s,o,u,a,f,l,c,h,p,d=[];d[0]=h=p=0;for(o=1;o<r;++o){for(s=0,a=0;s<t;++s)a+=e[s][o][1];for(s=0,f=0,c=n[o][0]-n[o-1][0];s<t;++s){for(u=0,l=(e[s][o][1]-e[s][o-1][1])/(2*c);u<s;++u)l+=(e[u][o][1]-e[u][o-1][1])/c;f+=l*e[s][o][1]}d[o]=h-=a?f/a*c:0,h<p&&(p=h)}for(o=0;o<r;++o)d[o]-=p;return d},expand:function(e){var t=e.length,n=e[0].length,r=1/t,i,s,o,u=[];for(s=0;s<n;++s){for(i=0,o=0;i<t;i++)o+=e[i][s][1];if(o)for(i=0;i<t;i++)e[i][s][1]/=o;else for(i=0;i<t;i++)e[i][s][1]=r}for(s=0;s<n;++s)u[s]=0;return u},zero:nr});d3.layout.histogram=function(){function e(e,s){var o=[],u=e.map(n,this),a=r.call(this,u,s),f=i.call(this,a,u,s),l,s=-1,c=u.length,h=f.length-1,p=t?1:1/c,d;while(++s<h)l=o[s]=[],l.dx=f[s+1]-(l.x=f[s]),l.y=0;if(h>0){s=-1;while(++s<c)d=u[s],d>=a[0]&&d<=a[1]&&(l=o[d3.bisect(f,d,1,h)-1],l.y+=p,l.push(e[s]))}return o}var t=!0,n=Number,r=ar,i=or;return e.value=function(t){return arguments.length?(n=t,e):n},e.range=function(t){return arguments.length?(r=u(t),e):r},e.bins=function(t){return arguments.length?(i=typeof t=="number"?function(e){return ur(e,t)}:u(t),e):i},e.frequency=function(n){return arguments.length?(t=!!n,e):t},e},d3.layout.hierarchy=function(){function e(t,o,u){var a=i.call(n,t,o),f=uo?t:{data:t};f.depth=o,u.push(f);if(a&&(c=a.length)){var l=-1,c,h=f.children=[],p=0,d=o+1,v;while(++l<c)v=e(a[l],d,u),v.parent=f,h.push(v),p+=v.value;r&&h.sort(r),s&&(f.value=p)}else s&&(f.value=+s.call(n,t,o)||0);return f}function t(e,r){var i=e.children,o=0;if(i&&(a=i.length)){var u=-1,a,f=r+1;while(++u<a)o+=t(i[u],f)}else s&&(o=+s.call(n,uo?e:e.data,r)||0);return s&&(e.value=o),o}function n(t){var n=[];return e(t,0,n),n}var r=hr,i=lr,s=cr;return n.sort=function(e){return arguments.length?(r=e,n):r},n.children=function(e){return arguments.length?(i=e,n):i},n.value=function(e){return arguments.length?(s=e,n):s},n.revalue=function(e){return t(e,0),e},n};var uo=!1;d3.layout.pack=function(){function e(e,i){var s=t.call(this,e,i),o=s[0];o.x=0,o.y=0,Pr(o,function(e){e.r=Math.sqrt(e.value)}),Pr(o,yr);var u=r[0],a=r[1],f=Math.max(2*o.r/u,2*o.r/a);if(n>0){var l=n*f/2;Pr(o,function(e){e.r+=l}),Pr(o,yr),Pr(o,function(e){e.r-=l}),f=Math.max(2*o.r/u,2*o.r/a)}return Er(o,u/2,a/2,1/f),s}var t=d3.layout.hierarchy().sort(dr),n=0,r=[1,1];return e.size=function(t){return arguments.length?(r=t,e):r},e.padding=function(t){return arguments.length?(n=+t,e):n},fr(e,t)},d3.layout.cluster=function(){function e(e,i){var s=t.call(this,e,i),o=s[0],u,a=0,f,l;Pr(o,function(e){var t=e.children;t&&t.length?(e.x=Tr(t),e.y=xr(t)):(e.x=u?a+=n(e,u):0,e.y=0,u=e)});var c=Nr(o),h=Cr(o),p=c.x-n(c,h)/2,d=h.x+n(h,c)/2;return Pr(o,function(e){e.x=(e.x-p)/(d-p)*r[0],e.y=(1-(o.y?e.y/o.y:1))*r[1]}),s}var t=d3.layout.hierarchy().sort(null).value(null),n=kr,r=[1,1];return e.separation=function(t){return arguments.length?(n=t,e):n},e.size=function(t){return arguments.length?(r=t,e):r},fr(e,t)},d3.layout.tree=function(){function e(e,i){function s(e,t){var r=e.children,i=e._tree;if(r&&(o=r.length)){var o,a=r[0],f,l=a,c,h=-1;while(++h<o)c=r[h],s(c,f),l=u(c,f,l),f=c;Hr(e);var p=.5*(a._tree.prelim+c._tree.prelim);t?(i.prelim=t._tree.prelim+n(e,t),i.mod=i.prelim-p):i.prelim=p}else t&&(i.prelim=t._tree.prelim+n(e,t))}function o(e,t){e.x=e._tree.prelim+t;var n=e.children;if(n&&(i=n.length)){var r=-1,i;t+=e._tree.mod;while(++r<i)o(n[r],t)}}function u(e,t,r){if(t){var i=e,s=e,o=t,u=e.parent.children[0],a=i._tree.mod,f=s._tree.mod,l=o._tree.mod,c=u._tree.mod,h;while(o=Ar(o),i=Lr(i),o&&i)u=Lr(u),s=Ar(s),s._tree.ancestor=e,h=o._tree.prelim+l-i._tree.prelim-a+n(o,i),h>0&&(Br(jr(o,e,r),e,h),a+=h,f+=h),l+=o._tree.mod,a+=i._tree.mod,c+=u._tree.mod,f+=s._tree.mod;o&&!Ar(s)&&(s._tree.thread=o,s._tree.mod+=l-f),i&&!Lr(u)&&(u._tree.thread=i,u._tree.mod+=a-c,r=e)}return r}var a=t.call(this,e,i),f=a[0];Pr(f,function(e,t){e._tree={ancestor:e,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),s(f),o(f,-f._tree.prelim);var l=Or(f,_r),c=Or(f,Mr),h=Or(f,Dr),p=l.x-n(l,c)/2,d=c.x+n(c,l)/2,v=h.depth||1;return Pr(f,function(e){e.x=(e.x-p)/(d-p)*r[0],e.y=e.depth/v*r[1],delete e._tree}),a}var t=d3.layout.hierarchy().sort(null).value(null),n=kr,r=[1,1];return e.separation=function(t){return arguments.length?(n=t,e):n},e.size=function(t){return arguments.length?(r=t,e):r},fr(e,t)},d3.layout.treemap=function(){function e(e,t){var n=-1,r=e.length,i,s;while(++n<r)s=(i=e[n]).value*(t<0?0:t),i.area=isNaN(s)||s<=0?0:s}function t(n){var s=n.children;if(s&&s.length){var o=l(n),u=[],a=s.slice(),f,c=Infinity,h,p=Math.min(o.dx,o.dy),d;e(a,o.dx*o.dy/n.value),u.area=0;while((d=a.length)>0)u.push(f=a[d-1]),u.area+=f.area,(h=r(u,p))<=c?(a.pop(),c=h):(u.area-=u.pop().area,i(u,p,o,!1),p=Math.min(o.dx,o.dy),u.length=u.area=0,c=Infinity);u.length&&(i(u,p,o,!0),u.length=u.area=0),s.forEach(t)}}function n(t){var r=t.children;if(r&&r.length){var s=l(t),o=r.slice(),u,a=[];e(o,s.dx*s.dy/t.value),a.area=0;while(u=o.pop())a.push(u),a.area+=u.area,u.z!=null&&(i(a,u.z?s.dx:s.dy,s,!o.length),a.length=a.area=0);r.forEach(n)}}function r(e,t){var n=e.area,r,i=0,s=Infinity,o=-1,u=e.length;while(++o<u){if(!(r=e[o].area))continue;r<s&&(s=r),r>i&&(i=r)}return n*=n,t*=t,n?Math.max(t*i*p/n,n/(t*s*p)):Infinity}function i(e,t,n,r){var i=-1,s=e.length,o=n.x,a=n.y,f=t?u(e.area/t):0,l;if(t==n.dx){if(r||f>n.dy)f=n.dy;while(++i<s)l=e[i],l.x=o,l.y=a,l.dy=f,o+=l.dx=Math.min(n.x+n.dx-o,f?u(l.area/f):0);l.z=!0,l.dx+=n.x+n.dx-o,n.y+=f,n.dy-=f}else{if(r||f>n.dx)f=n.dx;while(++i<s)l=e[i],l.x=o,l.y=a,l.dx=f,a+=l.dy=Math.min(n.y+n.dy-a,f?u(l.area/f):0);l.z=!1,l.dy+=n.y+n.dy-a,n.x+=f,n.dx-=f}}function s(r){var i=h||o(r),s=i[0];return s.x=0,s.y=0,s.dx=a[0],s.dy=a[1],h&&o.revalue(s),e([s],s.dx*s.dy/s.value),(h?n:t)(s),c&&(h=i),i}var o=d3.layout.hierarchy(),u=Math.round,a=[1,1],f=null,l=Fr,c=!1,h,p=.5*(1+Math.sqrt(5));return s.size=function(e){return arguments.length?(a=e,s):a},s.padding=function(e){function t(t){var n=e.call(s,t,t.depth);return n==null?Fr(t):Ir(t,typeof n=="number"?[n,n,n,n]:n)}function n(t){return Ir(t,e)}if(!arguments.length)return f;var r;return l=(f=e)==null?Fr:(r=typeof e)==="function"?t:r==="number"?(e=[e,e,e,e],n):n,s},s.round=function(e){return arguments.length?(u=e?Math.round:Number,s):u!=Number},s.sticky=function(e){return arguments.length?(c=e,h=null,s):c},s.ratio=function(e){return arguments.length?(p=e,s):p},fr(s,o)},d3.csv=qr(",","text/csv"),d3.tsv=qr(" ","text/tab-separated-values"),d3.geo={};var ao=Math.PI/180;d3.geo.azimuthal=function(){function e(e){var n=e[0]*ao-s,o=e[1]*ao,f=Math.cos(n),l=Math.sin(n),c=Math.cos(o),h=Math.sin(o),p=t!=="orthographic"?a*h+u*c*f:null,d,v=t==="stereographic"?1/(1+p):t==="gnomonic"?1/p:t==="equidistant"?(d=Math.acos(p),d?d/Math.sin(d):0):t==="equalarea"?Math.sqrt(2/(1+p)):1,m=v*c*l,g=v*(a*c*f-u*h);return[r*m+i[0],r*g+i[1]]}var t="orthographic",n,r=200,i=[480,250],s,o,u,a;return e.invert=function(e){var n=(e[0]-i[0])/r,o=(e[1]-i[1])/r,f=Math.sqrt(n*n+o*o),l=t==="stereographic"?2*Math.atan(f):t==="gnomonic"?Math.atan(f):t==="equidistant"?f:t==="equalarea"?2*Math.asin(.5*f):Math.asin(f),c=Math.sin(l),h=Math.cos(l);return[(s+Math.atan2(n*c,f*u*h+o*a*c))/ao,Math.asin(h*a-(f?o*c*u/f:0))/ao]},e.mode=function(n){return arguments.length?(t=n+"",e):t},e.origin=function(t){return arguments.length?(n=t,s=n[0]*ao,o=n[1]*ao,u=Math.cos(o),a=Math.sin(o),e):n},e.scale=function(t){return arguments.length?(r=+t,e):r},e.translate=function(t){return arguments.length?(i=[+t[0],+t[1]],e):i},e.origin([0,0])},d3.geo.albers=function(){function e(e){var t=u*(ao*e[0]-o),n=Math.sqrt(a-2*u*Math.sin(ao*e[1]))/u;return[i*n*Math.sin(t)+s[0],i*(n*Math.cos(t)-f)+s[1]]}function t(){var t=ao*r[0],i=ao*r[1],s=ao*n[1],l=Math.sin(t),c=Math.cos(t);return o=ao*n[0],u=.5*(l+Math.sin(i)),a=c*c+2*u*l,f=Math.sqrt(a-2*u*Math.sin(s))/u,e}var n=[-98,38],r=[29.5,45.5],i=1e3,s=[480,250],o,u,a,f;return e.invert=function(e){var t=(e[0]-s[0])/i,n=(e[1]-s[1])/i,r=f+n,l=Math.atan2(t,r),c=Math.sqrt(t*t+r*r);return[(o+l/u)/ao,Math.asin((a-c*c*u*u)/(2*u))/ao]},e.origin=function(e){return arguments.length?(n=[+e[0],+e[1]],t()):n},e.parallels=function(e){return arguments.length?(r=[+e[0],+e[1]],t()):r},e.scale=function(t){return arguments.length?(i=+t,e):i},e.translate=function(t){return arguments.length?(s=[+t[0],+t[1]],e):s},t()},d3.geo.albersUsa=function(){function e(e){var s=e[0],o=e[1];return(o>50?n:s<-140?r:o<21?i:t)(e)}var t=d3.geo.albers(),n=d3.geo.albers().origin([-160,60]).parallels([55,65]),r=d3.geo.albers().origin([-160,20]).parallels([8,18]),i=d3.geo.albers().origin([-60,10]).parallels([8,18]);return e.scale=function(s){return arguments.length?(t.scale(s),n.scale(s*.6),r.scale(s),i.scale(s*1.5),e.translate(t.translate())):t.scale()},e.translate=function(s){if(!arguments.length)return t.translate();var o=t.scale()/1e3,u=s[0],a=s[1];return t.translate(s),n.translate([u-400*o,a+170*o]),r.translate([u-190*o,a+200*o]),i.translate([u+580*o,a+430*o]),e},e.scale(t.scale())},d3.geo.bonne=function(){function e(e){var u=e[0]*ao-r,a=e[1]*ao-i;if(s){var f=o+s-a,l=u*Math.cos(a)/f;u=f*Math.sin(l),a=f*Math.cos(l)-o}else u*=Math.cos(a),a*=-1;return[t*u+n[0],t*a+n[1]]}var t=200,n=[480,250],r,i,s,o;return e.invert=function(e){var i=(e[0]-n[0])/t,u=(e[1]-n[1])/t;if(s){var a=o+u,f=Math.sqrt(i*i+a*a);u=o+s-f,i=r+f*Math.atan2(i,a)/Math.cos(u)}else u*=-1,i/=Math.cos(u);return[i/ao,u/ao]},e.parallel=function(t){return arguments.length?(o=1/Math.tan
-(s=t*ao),e):s/ao},e.origin=function(t){return arguments.length?(r=t[0]*ao,i=t[1]*ao,e):[r/ao,i/ao]},e.scale=function(n){return arguments.length?(t=+n,e):t},e.translate=function(t){return arguments.length?(n=[+t[0],+t[1]],e):n},e.origin([0,0]).parallel(45)},d3.geo.equirectangular=function(){function e(e){var r=e[0]/360,i=-e[1]/360;return[t*r+n[0],t*i+n[1]]}var t=500,n=[480,250];return e.invert=function(e){var r=(e[0]-n[0])/t,i=(e[1]-n[1])/t;return[360*r,-360*i]},e.scale=function(n){return arguments.length?(t=+n,e):t},e.translate=function(t){return arguments.length?(n=[+t[0],+t[1]],e):n},e},d3.geo.mercator=function(){function e(e){var r=e[0]/360,i=-(Math.log(Math.tan(Math.PI/4+e[1]*ao/2))/ao)/360;return[t*r+n[0],t*Math.max(-0.5,Math.min(.5,i))+n[1]]}var t=500,n=[480,250];return e.invert=function(e){var r=(e[0]-n[0])/t,i=(e[1]-n[1])/t;return[360*r,2*Math.atan(Math.exp(-360*i*ao))/ao-90]},e.scale=function(n){return arguments.length?(t=+n,e):t},e.translate=function(t){return arguments.length?(n=[+t[0],+t[1]],e):n},e},d3.geo.path=function(){function e(e,t){typeof s=="function"&&(o=Ur(s.apply(this,arguments))),f(e);var n=a.length?a.join(""):null;return a=[],n}function t(e){return u(e).join(",")}function n(e){var t=i(e[0]),n=0,r=e.length;while(++n<r)t-=i(e[n]);return t}function r(e){var t=d3.geom.polygon(e[0].map(u)),n=t.area(),r=t.centroid(n<0?(n*=-1,1):-1),i=r[0],s=r[1],o=n,a=0,f=e.length;while(++a<f)t=d3.geom.polygon(e[a].map(u)),n=t.area(),r=t.centroid(n<0?(n*=-1,1):-1),i-=r[0],s-=r[1],o-=n;return[i,s,6*o]}function i(e){return Math.abs(d3.geom.polygon(e.map(u)).area())}var s=4.5,o=Ur(s),u=d3.geo.albersUsa(),a=[],f=Rr({FeatureCollection:function(e){var t=e.features,n=-1,r=t.length;while(++n<r)a.push(f(t[n].geometry))},Feature:function(e){f(e.geometry)},Point:function(e){a.push("M",t(e.coordinates),o)},MultiPoint:function(e){var n=e.coordinates,r=-1,i=n.length;while(++r<i)a.push("M",t(n[r]),o)},LineString:function(e){var n=e.coordinates,r=-1,i=n.length;a.push("M");while(++r<i)a.push(t(n[r]),"L");a.pop()},MultiLineString:function(e){var n=e.coordinates,r=-1,i=n.length,s,o,u;while(++r<i){s=n[r],o=-1,u=s.length,a.push("M");while(++o<u)a.push(t(s[o]),"L");a.pop()}},Polygon:function(e){var n=e.coordinates,r=-1,i=n.length,s,o,u;while(++r<i){s=n[r],o=-1;if((u=s.length-1)>0){a.push("M");while(++o<u)a.push(t(s[o]),"L");a[a.length-1]="Z"}}},MultiPolygon:function(e){var n=e.coordinates,r=-1,i=n.length,s,o,u,f,l,c;while(++r<i){s=n[r],o=-1,u=s.length;while(++o<u){f=s[o],l=-1;if((c=f.length-1)>0){a.push("M");while(++l<c)a.push(t(f[l]),"L");a[a.length-1]="Z"}}}},GeometryCollection:function(e){var t=e.geometries,n=-1,r=t.length;while(++n<r)a.push(f(t[n]))}}),l=e.area=Rr({FeatureCollection:function(e){var t=0,n=e.features,r=-1,i=n.length;while(++r<i)t+=l(n[r]);return t},Feature:function(e){return l(e.geometry)},Polygon:function(e){return n(e.coordinates)},MultiPolygon:function(e){var t=0,r=e.coordinates,i=-1,s=r.length;while(++i<s)t+=n(r[i]);return t},GeometryCollection:function(e){var t=0,n=e.geometries,r=-1,i=n.length;while(++r<i)t+=l(n[r]);return t}},0),c=e.centroid=Rr({Feature:function(e){return c(e.geometry)},Polygon:function(e){var t=r(e.coordinates);return[t[0]/t[2],t[1]/t[2]]},MultiPolygon:function(e){var t=0,n=e.coordinates,i,s=0,o=0,u=0,a=-1,f=n.length;while(++a<f)i=r(n[a]),s+=i[0],o+=i[1],u+=i[2];return[s/u,o/u]}});return e.projection=function(t){return u=t,e},e.pointRadius=function(t){return typeof t=="function"?s=t:(s=+t,o=Ur(s)),e},e},d3.geo.bounds=function(e){var t=Infinity,n=Infinity,r=-Infinity,i=-Infinity;return zr(e,function(e,s){e<t&&(t=e),e>r&&(r=e),s<n&&(n=s),s>i&&(i=s)}),[[t,n],[r,i]]};var fo={Feature:Wr,FeatureCollection:Xr,GeometryCollection:Vr,LineString:$r,MultiLineString:Jr,MultiPoint:$r,MultiPolygon:Kr,Point:Qr,Polygon:Gr};d3.geo.circle=function(){function e(){}function t(e){return a.distance(e)<u}function n(e){var t=-1,n=e.length,i=[],s,o,f,l,c;while(++t<n)c=a.distance(f=e[t]),c<u?(o&&i.push(ti(o,f)((l-u)/(l-c))),i.push(f),s=o=null):(o=f,!s&&i.length&&(i.push(ti(i[i.length-1],o)((u-l)/(c-l))),s=o)),l=c;return s=e[0],o=i[0],o&&f[0]===s[0]&&f[1]===s[1]&&(f[0]!==o[0]||f[1]!==o[1])&&i.push(o),r(i)}function r(e){var t=0,n=e.length,r,i,s=n?[e[0]]:e,o,u=a.source();while(++t<n){o=a.source(e[t-1])(e[t]).coordinates;for(r=0,i=o.length;++r<i;)s.push(o[r])}return a.source(u),s}var s=[0,0],o=89.99,u=o*ao,a=d3.geo.greatArc().source(s).target(i);e.clip=function(e){return typeof s=="function"&&a.source(s.apply(this,arguments)),f(e)||null};var f=Rr({FeatureCollection:function(e){var t=e.features.map(f).filter(i);return t&&(e=Object.create(e),e.features=t,e)},Feature:function(e){var t=f(e.geometry);return t&&(e=Object.create(e),e.geometry=t,e)},Point:function(e){return t(e.coordinates)&&e},MultiPoint:function(e){var n=e.coordinates.filter(t);return n.length&&{type:e.type,coordinates:n}},LineString:function(e){var t=n(e.coordinates);return t.length&&(e=Object.create(e),e.coordinates=t,e)},MultiLineString:function(e){var t=e.coordinates.map(n).filter(function(e){return e.length});return t.length&&(e=Object.create(e),e.coordinates=t,e)},Polygon:function(e){var t=e.coordinates.map(n);return t[0].length&&(e=Object.create(e),e.coordinates=t,e)},MultiPolygon:function(e){var t=e.coordinates.map(function(e){return e.map(n)}).filter(function(e){return e[0].length});return t.length&&(e=Object.create(e),e.coordinates=t,e)},GeometryCollection:function(e){var t=e.geometries.map(f).filter(i);return t.length&&(e=Object.create(e),e.geometries=t,e)}});return e.origin=function(t){return arguments.length?(s=t,typeof s!="function"&&a.source(s),e):s},e.angle=function(t){return arguments.length?(u=(o=+t)*ao,e):o},d3.rebind(e,a,"precision")},d3.geo.greatArc=function(){function e(){var t=e.distance.apply(this,arguments),r=0,u=s/t,a=[n];while((r+=u)<1)a.push(o(r));return a.push(i),{type:"LineString",coordinates:a}}var t=Yr,n,r=Zr,i,s=6*ao,o=ei();return e.distance=function(){return typeof t=="function"&&o.source(n=t.apply(this,arguments)),typeof r=="function"&&o.target(i=r.apply(this,arguments)),o.distance()},e.source=function(r){return arguments.length?(t=r,typeof t!="function"&&o.source(n=t),e):t},e.target=function(t){return arguments.length?(r=t,typeof r!="function"&&o.target(i=r),e):r},e.precision=function(t){return arguments.length?(s=t*ao,e):s/ao},e},d3.geo.greatCircle=d3.geo.circle,d3.geom={},d3.geom.contour=function(e,t){var n=t||ni(e),r=[],i=n[0],s=n[1],o=0,u=0,a=NaN,f=NaN,l=0;do l=0,e(i-1,s-1)&&(l+=1),e(i,s-1)&&(l+=2),e(i-1,s)&&(l+=4),e(i,s)&&(l+=8),l===6?(o=f===-1?-1:1,u=0):l===9?(o=0,u=a===1?-1:1):(o=lo[l],u=co[l]),o!=a&&u!=f&&(r.push([i,s]),a=o,f=u),i+=o,s+=u;while(n[0]!=i||n[1]!=s);return r};var lo=[1,0,1,1,-1,0,-1,1,0,0,0,0,-1,0,-1,NaN],co=[0,-1,0,0,0,-1,0,0,1,-1,1,1,0,-1,0,NaN];d3.geom.hull=function(e){if(e.length<3)return[];var t=e.length,n=t-1,r=[],i=[],s,o,u=0,a,f,l,c,h,p,d,v;for(s=1;s<t;++s)e[s][1]<e[u][1]?u=s:e[s][1]==e[u][1]&&(u=e[s][0]<e[u][0]?s:u);for(s=0;s<t;++s){if(s===u)continue;f=e[s][1]-e[u][1],a=e[s][0]-e[u][0],r.push({angle:Math.atan2(f,a),index:s})}r.sort(function(e,t){return e.angle-t.angle}),d=r[0].angle,p=r[0].index,h=0;for(s=1;s<n;++s)o=r[s].index,d==r[s].angle?(a=e[p][0]-e[u][0],f=e[p][1]-e[u][1],l=e[o][0]-e[u][0],c=e[o][1]-e[u][1],a*a+f*f>=l*l+c*c?r[s].index=-1:(r[h].index=-1,d=r[s].angle,h=s,p=o)):(d=r[s].angle,h=s,p=o);i.push(u);for(s=0,o=0;s<2;++o)r[o].index!==-1&&(i.push(r[o].index),s++);v=i.length;for(;o<n;++o){if(r[o].index===-1)continue;while(!ri(i[v-2],i[v-1],r[o].index,e))--v;i[v++]=r[o].index}var m=[];for(s=0;s<v;++s)m.push(e[i[s]]);return m},d3.geom.polygon=function(e){return e.area=function(){var t=0,n=e.length,r=e[n-1][0]*e[0][1],i=e[n-1][1]*e[0][0];while(++t<n)r+=e[t-1][0]*e[t][1],i+=e[t-1][1]*e[t][0];return(i-r)*.5},e.centroid=function(t){var n=-1,r=e.length,i=0,s=0,o,u=e[r-1],a;arguments.length||(t=-1/(6*e.area()));while(++n<r)o=u,u=e[n],a=o[0]*u[1]-u[0]*o[1],i+=(o[0]+u[0])*a,s+=(o[1]+u[1])*a;return[i*t,s*t]},e.clip=function(t){var n,r=-1,i=e.length,s,o,u=e[i-1],a,f,l;while(++r<i){n=t.slice(),t.length=0,a=e[r],f=n[(o=n.length)-1],s=-1;while(++s<o)l=n[s],ii(l,u,a)?(ii(f,u,a)||t.push(si(f,l,u,a)),t.push(l)):ii(f,u,a)&&t.push(si(f,l,u,a)),f=l;u=a}return t},e},d3.geom.voronoi=function(e){var t=e.map(function(){return[]});return oi(e,function(e){var n,r,i,s,o,u;e.a===1&&e.b>=0?(n=e.ep.r,r=e.ep.l):(n=e.ep.l,r=e.ep.r),e.a===1?(o=n?n.y:-1e6,i=e.c-e.b*o,u=r?r.y:1e6,s=e.c-e.b*u):(i=n?n.x:-1e6,o=e.c-e.a*i,s=r?r.x:1e6,u=e.c-e.a*s);var a=[i,o],f=[s,u];t[e.region.l.index].push(a,f),t[e.region.r.index].push(a,f)}),t.map(function(t,n){var r=e[n][0],i=e[n][1];return t.forEach(function(e){e.angle=Math.atan2(e[0]-r,e[1]-i)}),t.sort(function(e,t){return e.angle-t.angle}).filter(function(e,n){return!n||e.angle-t[n-1].angle>1e-10})})};var ho={l:"r",r:"l"};d3.geom.delaunay=function(e){var t=e.map(function(){return[]}),n=[];return oi(e,function(n){t[n.region.l.index].push(e[n.region.r.index])}),t.forEach(function(t,r){var i=e[r],s=i[0],o=i[1];t.forEach(function(e){e.angle=Math.atan2(e[0]-s,e[1]-o)}),t.sort(function(e,t){return e.angle-t.angle});for(var u=0,a=t.length-1;u<a;u++)n.push([i,t[u],t[u+1]])}),n},d3.geom.quadtree=function(e,t,n,r,i){function s(e,t,n,r,i,s){if(isNaN(t.x)||isNaN(t.y))return;if(e.leaf){var u=e.point;u?Math.abs(u.x-t.x)+Math.abs(u.y-t.y)<.01?o(e,t,n,r,i,s):(e.point=null,o(e,u,n,r,i,s),o(e,t,n,r,i,s)):e.point=t}else o(e,t,n,r,i,s)}function o(e,t,n,r,i,o){var u=(n+i)*.5,a=(r+o)*.5,f=t.x>=u,l=t.y>=a,c=(l<<1)+f;e.leaf=!1,e=e.nodes[c]||(e.nodes[c]=ui()),f?n=u:i=u,l?r=a:o=a,s(e,t,n,r,i,o)}var u,a=-1,f=e.length;f&&isNaN(e[0].x)&&(e=e.map(fi));if(arguments.length<5)if(arguments.length===3)i=r=n,n=t;else{t=n=Infinity,r=i=-Infinity;while(++a<f)u=e[a],u.x<t&&(t=u.x),u.y<n&&(n=u.y),u.x>r&&(r=u.x),u.y>i&&(i=u.y);var l=r-t,c=i-n;l>c?i=n+l:r=t+c}var h=ui();return h.add=function(e){s(h,e,t,n,r,i)},h.visit=function(e){ai(e,h,t,n,r,i)},e.forEach(h.add),h},d3.time={};var po=Date,vo=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];li.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){mo.setUTCDate.apply(this._,arguments)},setDay:function(){mo.setUTCDay.apply(this._,arguments)},setFullYear:function(){mo.setUTCFullYear.apply(this._,arguments)},setHours:function(){mo.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){mo.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){mo.setUTCMinutes.apply(this._,arguments)},setMonth:function(){mo.setUTCMonth.apply(this._,arguments)},setSeconds:function(){mo.setUTCSeconds.apply(this._,arguments)},setTime:function(){mo.setTime.apply(this._,arguments)}};var mo=Date.prototype,go="%a %b %e %H:%M:%S %Y",yo="%m/%d/%y",bo="%H:%M:%S",wo=vo,Eo=wo.map(ci),So=["January","February","March","April","May","June","July","August","September","October","November","December"],xo=So.map(ci);d3.time.format=function(e){function t(t){var r=[],i=-1,s=0,o,u;while(++i<n)e.charCodeAt(i)==37&&(r.push(e.substring(s,i),(u=Po[o=e.charAt(++i)])?u(t):o),s=i+1);return r.push(e.substring(s,i)),r.join("")}var n=e.length;return t.parse=function(t){var n={y:1900,m:0,d:1,H:0,M:0,S:0,L:0},r=hi(n,e,t,0);if(r!=t.length)return null;"p"in n&&(n.H=n.H%12+n.p*12);var i=new po;return i.setFullYear(n.y,n.m,n.d),i.setHours(n.H,n.M,n.S,n.L),i},t.toString=function(){return e},t};var To=d3.format("02d"),No=d3.format("03d"),Co=d3.format("04d"),ko=d3.format("2d"),Lo=pi(wo),Ao=pi(Eo),Oo=pi(So),Mo=di(So),_o=pi(xo),Do=di(xo),Po={a:function(e){return Eo[e.getDay()]},A:function(e){return wo[e.getDay()]},b:function(e){return xo[e.getMonth()]},B:function(e){return So[e.getMonth()]},c:d3.time.format(go),d:function(e){return To(e.getDate())},e:function(e){return ko(e.getDate())},H:function(e){return To(e.getHours())},I:function(e){return To(e.getHours()%12||12)},j:function(e){return No(1+d3.time.dayOfYear(e))},L:function(e){return No(e.getMilliseconds())},m:function(e){return To(e.getMonth()+1)},M:function(e){return To(e.getMinutes())},p:function(e){return e.getHours()>=12?"PM":"AM"},S:function(e){return To(e.getSeconds())},U:function(e){return To(d3.time.sundayOfYear(e))},w:function(e){return e.getDay()},W:function(e){return To(d3.time.mondayOfYear(e))},x:d3.time.format(yo),X:d3.time.format(bo),y:function(e){return To(e.getFullYear()%100)},Y:function(e){return Co(e.getFullYear()%1e4)},Z:_i,"%":function(e){return"%"}},Ho={a:vi,A:mi,b:gi,B:yi,c:bi,d:Ci,e:Ci,H:ki,I:ki,L:Oi,m:Ni,M:Li,p:Mi,S:Ai,x:wi,X:Ei,y:xi,Y:Si},Bo=/^\s*\d+/,jo=d3.map({am:0,pm:1});d3.time.format.utc=function(e){function t(e){try{po=li;var t=new po;return t._=e,n(t)}finally{po=Date}}var n=d3.time.format(e);return t.parse=function(e){try{po=li;var t=n.parse(e);return t&&t._}finally{po=Date}},t.toString=n.toString,t};var Fo=d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");d3.time.format.iso=Date.prototype.toISOString?Di:Fo,Di.parse=function(e){var t=new Date(e);return isNaN(t)?null:t},Di.toString=Fo.toString,d3.time.second=Pi(function(e){return new po(Math.floor(e/1e3)*1e3)},function(e,t){e.setTime(e.getTime()+Math.floor(t)*1e3)},function(e){return e.getSeconds()}),d3.time.seconds=d3.time.second.range,d3.time.seconds.utc=d3.time.second.utc.range,d3.time.minute=Pi(function(e){return new po(Math.floor(e/6e4)*6e4)},function(e,t){e.setTime(e.getTime()+Math.floor(t)*6e4)},function(e){return e.getMinutes()}),d3.time.minutes=d3.time.minute.range,d3.time.minutes.utc=d3.time.minute.utc.range,d3.time.hour=Pi(function(e){var t=e.getTimezoneOffset()/60;return new po((Math.floor(e/36e5-t)+t)*36e5)},function(e,t){e.setTime(e.getTime()+Math.floor(t)*36e5)},function(e){return e.getHours()}),d3.time.hours=d3.time.hour.range,d3.time.hours.utc=d3.time.hour.utc.range,d3.time.day=Pi(function(e){var t=new po(1970,0);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t},function(e,t){e.setDate(e.getDate()+t)},function(e){return e.getDate()-1}),d3.time.days=d3.time.day.range,d3.time.days.utc=d3.time.day.utc.range,d3.time.dayOfYear=function(e){var t=d3.time.year(e);return Math.floor((e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5)},vo.forEach(function(e,t){e=e.toLowerCase(),t=7-t;var n=d3.time[e]=Pi(function(e){return(e=d3.time.day(e)).setDate(e.getDate()-(e.getDay()+t)%7),e},function(e,t){e.setDate(e.getDate()+Math.floor(t)*7)},function(e){var n=d3.time.year(e).getDay();return Math.floor((d3.time.dayOfYear(e)+(n+t)%7)/7)-(n!==t)});d3.time[e+"s"]=n.range,d3.time[e+"s"].utc=n.utc.range,d3.time[e+"OfYear"]=function(e){var n=d3.time.year(e).getDay();return Math.floor((d3.time.dayOfYear(e)+(n+t)%7)/7)}}),d3.time.week=d3.time.sunday,d3.time.weeks=d3.time.sunday.range,d3.time.weeks.utc=d3.time.sunday.utc.range,d3.time.weekOfYear=d3.time.sundayOfYear,d3.time.month=Pi(function(e){return e=d3.time.day(e),e.setDate(1),e},function(e,t){e.setMonth(e.getMonth()+t)},function(e){return e.getMonth()}),d3.time.months=d3.time.month.range,d3.time.months.utc=d3.time.month.utc.range,d3.time.year=Pi(function(e){return e=d3.time.day(e),e.setMonth(0,1),e},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e){return e.getFullYear()}),d3.time.years=d3.time.year.range,d3.time.years.utc=d3.time.year.utc.range;var Io=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],qo=[[d3.time.second,1],[d3.time.second,5],[d3.time.second,15],[d3.time.second,30],[d3.time.minute,1],[d3.time.minute,5],[d3.time.minute,15],[d3.time.minute,30],[d3.time.hour,1],[d3.time.hour,3],[d3.time.hour,6],[d3.time.hour,12],[d3.time.day,1],[d3.time.day,2],[d3.time.week,1],[d3.time.month,1],[d3.time.month,3],[d3.time.year,1]],Ro=[[d3.time.format("%Y"),function(e){return!0}],[d3.time.format("%B"),function(e){return e.getMonth()}],[d3.time.format("%b %d"),function(e){return e.getDate()!=1}],[d3.time.format("%a %d"),function(e){return e.getDay()&&e.getDate()!=1}],[d3.time.format("%I %p"),function(e){return e.getHours()}],[d3.time.format("%I:%M"),function(e){return e.getMinutes()}],[d3.time.format(":%S"),function(e){return e.getSeconds()}],[d3.time.format(".%L"),function(e){return e.getMilliseconds()}]],Uo=d3.scale.linear(),zo=Ii(Ro);qo.year=function(e,t){return Uo.domain(e.map(Ri)).ticks(t).map(qi)},d3.time.scale=function(){return Bi(d3.scale.linear(),qo,zo)};var Wo=qo.map(function(e){return[e[0].utc,e[1]]}),Xo=[[d3.time.format.utc("%Y"),function(e){return!0}],[d3.time.format.utc("%B"),function(e){return e.getUTCMonth()}],[d3.time.format.utc("%b %d"),function(e){return e.getUTCDate()!=1}],[d3.time.format.utc("%a %d"),function(e){return e.getUTCDay()&&e.getUTCDate()!=1}],[d3.time.format.utc("%I %p"),function(e){return e.getUTCHours()}],[d3.time.format.utc("%I:%M"),function(e){return e.getUTCMinutes()}],[d3.time.format.utc(":%S"),function(e){return e.getUTCSeconds()}],[d3.time.format.utc(".%L"),function(e){return e.getUTCMilliseconds()}]],Vo=Ii(Xo);Wo.year=function(e,t){return Uo.domain(e.map(zi)).ticks(t).map(Ui)},d3.time.scale.utc=function(){return Bi(d3.scale.linear(),Wo,Vo)}})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js
deleted file mode 100755
index 8dd7ffe7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js
+++ /dev/null
@@ -1,8436 +0,0 @@
-d3 = function() {
- var d3 = {
- version: "3.1.5"
- };
- if (!Date.now) Date.now = function() {
- return +new Date();
- };
- var d3_document = document, d3_window = window;
- try {
- d3_document.createElement("div").style.setProperty("opacity", 0, "");
- } catch (error) {
- var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
- d3_style_prototype.setProperty = function(name, value, priority) {
- d3_style_setProperty.call(this, name, value + "", priority);
- };
- }
- d3.ascending = function(a, b) {
- return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
- };
- d3.descending = function(a, b) {
- return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
- };
- d3.min = function(array, f) {
- var i = -1, n = array.length, a, b;
- if (arguments.length === 1) {
- while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
- while (++i < n) if ((b = array[i]) != null && a > b) a = b;
- } else {
- while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
- while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
- }
- return a;
- };
- d3.max = function(array, f) {
- var i = -1, n = array.length, a, b;
- if (arguments.length === 1) {
- while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
- while (++i < n) if ((b = array[i]) != null && b > a) a = b;
- } else {
- while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
- while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
- }
- return a;
- };
- d3.extent = function(array, f) {
- var i = -1, n = array.length, a, b, c;
- if (arguments.length === 1) {
- while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
- while (++i < n) if ((b = array[i]) != null) {
- if (a > b) a = b;
- if (c < b) c = b;
- }
- } else {
- while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
- while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
- if (a > b) a = b;
- if (c < b) c = b;
- }
- }
- return [ a, c ];
- };
- d3.sum = function(array, f) {
- var s = 0, n = array.length, a, i = -1;
- if (arguments.length === 1) {
- while (++i < n) if (!isNaN(a = +array[i])) s += a;
- } else {
- while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
- }
- return s;
- };
- function d3_number(x) {
- return x != null && !isNaN(x);
- }
- d3.mean = function(array, f) {
- var n = array.length, a, m = 0, i = -1, j = 0;
- if (arguments.length === 1) {
- while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
- } else {
- while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
- }
- return j ? m : undefined;
- };
- d3.quantile = function(values, p) {
- var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
- return e ? v + e * (values[h] - v) : v;
- };
- d3.median = function(array, f) {
- if (arguments.length > 1) array = array.map(f);
- array = array.filter(d3_number);
- return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
- };
- d3.bisector = function(f) {
- return {
- left: function(a, x, lo, hi) {
- if (arguments.length < 3) lo = 0;
- if (arguments.length < 4) hi = a.length;
- while (lo < hi) {
- var mid = lo + hi >>> 1;
- if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
- }
- return lo;
- },
- right: function(a, x, lo, hi) {
- if (arguments.length < 3) lo = 0;
- if (arguments.length < 4) hi = a.length;
- while (lo < hi) {
- var mid = lo + hi >>> 1;
- if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
- }
- return lo;
- }
- };
- };
- var d3_bisector = d3.bisector(function(d) {
- return d;
- });
- d3.bisectLeft = d3_bisector.left;
- d3.bisect = d3.bisectRight = d3_bisector.right;
- d3.shuffle = function(array) {
- var m = array.length, t, i;
- while (m) {
- i = Math.random() * m-- | 0;
- t = array[m], array[m] = array[i], array[i] = t;
- }
- return array;
- };
- d3.permute = function(array, indexes) {
- var permutes = [], i = -1, n = indexes.length;
- while (++i < n) permutes[i] = array[indexes[i]];
- return permutes;
- };
- d3.zip = function() {
- if (!(n = arguments.length)) return [];
- for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
- for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
- zip[j] = arguments[j][i];
- }
- }
- return zips;
- };
- function d3_zipLength(d) {
- return d.length;
- }
- d3.transpose = function(matrix) {
- return d3.zip.apply(d3, matrix);
- };
- d3.keys = function(map) {
- var keys = [];
- for (var key in map) keys.push(key);
- return keys;
- };
- d3.values = function(map) {
- var values = [];
- for (var key in map) values.push(map[key]);
- return values;
- };
- d3.entries = function(map) {
- var entries = [];
- for (var key in map) entries.push({
- key: key,
- value: map[key]
- });
- return entries;
- };
- d3.merge = function(arrays) {
- return Array.prototype.concat.apply([], arrays);
- };
- d3.range = function(start, stop, step) {
- if (arguments.length < 3) {
- step = 1;
- if (arguments.length < 2) {
- stop = start;
- start = 0;
- }
- }
- if ((stop - start) / step === Infinity) throw new Error("infinite range");
- var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
- start *= k, stop *= k, step *= k;
- if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
- return range;
- };
- function d3_range_integerScale(x) {
- var k = 1;
- while (x * k % 1) k *= 10;
- return k;
- }
- function d3_class(ctor, properties) {
- try {
- for (var key in properties) {
- Object.defineProperty(ctor.prototype, key, {
- value: properties[key],
- enumerable: false
- });
- }
- } catch (e) {
- ctor.prototype = properties;
- }
- }
- d3.map = function(object) {
- var map = new d3_Map();
- for (var key in object) map.set(key, object[key]);
- return map;
- };
- function d3_Map() {}
- d3_class(d3_Map, {
- has: function(key) {
- return d3_map_prefix + key in this;
- },
- get: function(key) {
- return this[d3_map_prefix + key];
- },
- set: function(key, value) {
- return this[d3_map_prefix + key] = value;
- },
- remove: function(key) {
- key = d3_map_prefix + key;
- return key in this && delete this[key];
- },
- keys: function() {
- var keys = [];
- this.forEach(function(key) {
- keys.push(key);
- });
- return keys;
- },
- values: function() {
- var values = [];
- this.forEach(function(key, value) {
- values.push(value);
- });
- return values;
- },
- entries: function() {
- var entries = [];
- this.forEach(function(key, value) {
- entries.push({
- key: key,
- value: value
- });
- });
- return entries;
- },
- forEach: function(f) {
- for (var key in this) {
- if (key.charCodeAt(0) === d3_map_prefixCode) {
- f.call(this, key.substring(1), this[key]);
- }
- }
- }
- });
- var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
- d3.nest = function() {
- var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
- function map(mapType, array, depth) {
- if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
- var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;
- while (++i < n) {
- if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
- values.push(object);
- } else {
- valuesByKey.set(keyValue, [ object ]);
- }
- }
- if (mapType) {
- object = mapType();
- setter = function(keyValue, values) {
- object.set(keyValue, map(mapType, values, depth));
- };
- } else {
- object = {};
- setter = function(keyValue, values) {
- object[keyValue] = map(mapType, values, depth);
- };
- }
- valuesByKey.forEach(setter);
- return object;
- }
- function entries(map, depth) {
- if (depth >= keys.length) return map;
- var array = [], sortKey = sortKeys[depth++];
- map.forEach(function(key, keyMap) {
- array.push({
- key: key,
- values: entries(keyMap, depth)
- });
- });
- return sortKey ? array.sort(function(a, b) {
- return sortKey(a.key, b.key);
- }) : array;
- }
- nest.map = function(array, mapType) {
- return map(mapType, array, 0);
- };
- nest.entries = function(array) {
- return entries(map(d3.map, array, 0), 0);
- };
- nest.key = function(d) {
- keys.push(d);
- return nest;
- };
- nest.sortKeys = function(order) {
- sortKeys[keys.length - 1] = order;
- return nest;
- };
- nest.sortValues = function(order) {
- sortValues = order;
- return nest;
- };
- nest.rollup = function(f) {
- rollup = f;
- return nest;
- };
- return nest;
- };
- d3.set = function(array) {
- var set = new d3_Set();
- if (array) for (var i = 0; i < array.length; i++) set.add(array[i]);
- return set;
- };
- function d3_Set() {}
- d3_class(d3_Set, {
- has: function(value) {
- return d3_map_prefix + value in this;
- },
- add: function(value) {
- this[d3_map_prefix + value] = true;
- return value;
- },
- remove: function(value) {
- value = d3_map_prefix + value;
- return value in this && delete this[value];
- },
- values: function() {
- var values = [];
- this.forEach(function(value) {
- values.push(value);
- });
- return values;
- },
- forEach: function(f) {
- for (var value in this) {
- if (value.charCodeAt(0) === d3_map_prefixCode) {
- f.call(this, value.substring(1));
- }
- }
- }
- });
- d3.behavior = {};
- d3.rebind = function(target, source) {
- var i = 1, n = arguments.length, method;
- while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
- return target;
- };
- function d3_rebind(target, source, method) {
- return function() {
- var value = method.apply(source, arguments);
- return value === source ? target : value;
- };
- }
- d3.dispatch = function() {
- var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
- while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
- return dispatch;
- };
- function d3_dispatch() {}
- d3_dispatch.prototype.on = function(type, listener) {
- var i = type.indexOf("."), name = "";
- if (i >= 0) {
- name = type.substring(i + 1);
- type = type.substring(0, i);
- }
- if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
- if (arguments.length === 2) {
- if (listener == null) for (type in this) {
- if (this.hasOwnProperty(type)) this[type].on(name, null);
- }
- return this;
- }
- };
- function d3_dispatch_event(dispatch) {
- var listeners = [], listenerByName = new d3_Map();
- function event() {
- var z = listeners, i = -1, n = z.length, l;
- while (++i < n) if (l = z[i].on) l.apply(this, arguments);
- return dispatch;
- }
- event.on = function(name, listener) {
- var l = listenerByName.get(name), i;
- if (arguments.length < 2) return l && l.on;
- if (l) {
- l.on = null;
- listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
- listenerByName.remove(name);
- }
- if (listener) listeners.push(listenerByName.set(name, {
- on: listener
- }));
- return dispatch;
- };
- return event;
- }
- d3.event = null;
- function d3_eventCancel() {
- d3.event.stopPropagation();
- d3.event.preventDefault();
- }
- function d3_eventSource() {
- var e = d3.event, s;
- while (s = e.sourceEvent) e = s;
- return e;
- }
- function d3_eventSuppress(target, type) {
- function off() {
- target.on(type, null);
- }
- target.on(type, function() {
- d3_eventCancel();
- off();
- }, true);
- setTimeout(off, 0);
- }
- function d3_eventDispatch(target) {
- var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
- while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
- dispatch.of = function(thiz, argumentz) {
- return function(e1) {
- try {
- var e0 = e1.sourceEvent = d3.event;
- e1.target = target;
- d3.event = e1;
- dispatch[e1.type].apply(thiz, argumentz);
- } finally {
- d3.event = e0;
- }
- };
- };
- return dispatch;
- }
- d3.mouse = function(container) {
- return d3_mousePoint(container, d3_eventSource());
- };
- var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
- function d3_mousePoint(container, e) {
- var svg = container.ownerSVGElement || container;
- if (svg.createSVGPoint) {
- var point = svg.createSVGPoint();
- if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {
- svg = d3.select(d3_document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
- var ctm = svg[0][0].getScreenCTM();
- d3_mouse_bug44083 = !(ctm.f || ctm.e);
- svg.remove();
- }
- if (d3_mouse_bug44083) {
- point.x = e.pageX;
- point.y = e.pageY;
- } else {
- point.x = e.clientX;
- point.y = e.clientY;
- }
- point = point.matrixTransform(container.getScreenCTM().inverse());
- return [ point.x, point.y ];
- }
- var rect = container.getBoundingClientRect();
- return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
- }
- var d3_array = d3_arraySlice;
- function d3_arrayCopy(pseudoarray) {
- var i = -1, n = pseudoarray.length, array = [];
- while (++i < n) array.push(pseudoarray[i]);
- return array;
- }
- function d3_arraySlice(pseudoarray) {
- return Array.prototype.slice.call(pseudoarray);
- }
- try {
- d3_array(d3_document.documentElement.childNodes)[0].nodeType;
- } catch (e) {
- d3_array = d3_arrayCopy;
- }
- var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
- array.__proto__ = prototype;
- } : function(array, prototype) {
- for (var property in prototype) array[property] = prototype[property];
- };
- d3.touches = function(container, touches) {
- if (arguments.length < 2) touches = d3_eventSource().touches;
- return touches ? d3_array(touches).map(function(touch) {
- var point = d3_mousePoint(container, touch);
- point.identifier = touch.identifier;
- return point;
- }) : [];
- };
- d3.behavior.drag = function() {
- var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
- function drag() {
- this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
- }
- function mousedown() {
- var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0;
- var w = d3.select(d3_window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
- if (origin) {
- offset = origin.apply(target, arguments);
- offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
- } else {
- offset = [ 0, 0 ];
- }
- if (touchId == null) d3_eventCancel();
- event_({
- type: "dragstart"
- });
- function point() {
- var p = target.parentNode;
- return touchId != null ? d3.touches(p).filter(function(p) {
- return p.identifier === touchId;
- })[0] : d3.mouse(p);
- }
- function dragmove() {
- if (!target.parentNode) return dragend();
- var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
- moved |= dx | dy;
- origin_ = p;
- d3_eventCancel();
- event_({
- type: "drag",
- x: p[0] + offset[0],
- y: p[1] + offset[1],
- dx: dx,
- dy: dy
- });
- }
- function dragend() {
- event_({
- type: "dragend"
- });
- if (moved) {
- d3_eventCancel();
- if (d3.event.target === eventTarget) d3_eventSuppress(w, "click");
- }
- w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null);
- }
- }
- drag.origin = function(x) {
- if (!arguments.length) return origin;
- origin = x;
- return drag;
- };
- return d3.rebind(drag, event, "on");
- };
- function d3_selection(groups) {
- d3_arraySubclass(groups, d3_selectionPrototype);
- return groups;
- }
- var d3_select = function(s, n) {
- return n.querySelector(s);
- }, d3_selectAll = function(s, n) {
- return n.querySelectorAll(s);
- }, d3_selectRoot = d3_document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
- return d3_selectMatcher.call(n, s);
- };
- if (typeof Sizzle === "function") {
- d3_select = function(s, n) {
- return Sizzle(s, n)[0] || null;
- };
- d3_selectAll = function(s, n) {
- return Sizzle.uniqueSort(Sizzle(s, n));
- };
- d3_selectMatches = Sizzle.matchesSelector;
- }
- var d3_selectionPrototype = [];
- d3.selection = function() {
- return d3_selectionRoot;
- };
- d3.selection.prototype = d3_selectionPrototype;
- d3_selectionPrototype.select = function(selector) {
- var subgroups = [], subgroup, subnode, group, node;
- if (typeof selector !== "function") selector = d3_selection_selector(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- subgroups.push(subgroup = []);
- subgroup.parentNode = (group = this[j]).parentNode;
- for (var i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- subgroup.push(subnode = selector.call(node, node.__data__, i));
- if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
- } else {
- subgroup.push(null);
- }
- }
- }
- return d3_selection(subgroups);
- };
- function d3_selection_selector(selector) {
- return function() {
- return d3_select(selector, this);
- };
- }
- d3_selectionPrototype.selectAll = function(selector) {
- var subgroups = [], subgroup, node;
- if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
- subgroup.parentNode = node;
- }
- }
- }
- return d3_selection(subgroups);
- };
- function d3_selection_selectorAll(selector) {
- return function() {
- return d3_selectAll(selector, this);
- };
- }
- var d3_nsPrefix = {
- svg: "http://www.w3.org/2000/svg",
- xhtml: "http://www.w3.org/1999/xhtml",
- xlink: "http://www.w3.org/1999/xlink",
- xml: "http://www.w3.org/XML/1998/namespace",
- xmlns: "http://www.w3.org/2000/xmlns/"
- };
- d3.ns = {
- prefix: d3_nsPrefix,
- qualify: function(name) {
- var i = name.indexOf(":"), prefix = name;
- if (i >= 0) {
- prefix = name.substring(0, i);
- name = name.substring(i + 1);
- }
- return d3_nsPrefix.hasOwnProperty(prefix) ? {
- space: d3_nsPrefix[prefix],
- local: name
- } : name;
- }
- };
- d3_selectionPrototype.attr = function(name, value) {
- if (arguments.length < 2) {
- if (typeof name === "string") {
- var node = this.node();
- name = d3.ns.qualify(name);
- return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
- }
- for (value in name) this.each(d3_selection_attr(value, name[value]));
- return this;
- }
- return this.each(d3_selection_attr(name, value));
- };
- function d3_selection_attr(name, value) {
- name = d3.ns.qualify(name);
- function attrNull() {
- this.removeAttribute(name);
- }
- function attrNullNS() {
- this.removeAttributeNS(name.space, name.local);
- }
- function attrConstant() {
- this.setAttribute(name, value);
- }
- function attrConstantNS() {
- this.setAttributeNS(name.space, name.local, value);
- }
- function attrFunction() {
- var x = value.apply(this, arguments);
- if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
- }
- function attrFunctionNS() {
- var x = value.apply(this, arguments);
- if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
- }
- return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
- }
- function d3_collapse(s) {
- return s.trim().replace(/\s+/g, " ");
- }
- d3.requote = function(s) {
- return s.replace(d3_requote_re, "\\$&");
- };
- var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
- d3_selectionPrototype.classed = function(name, value) {
- if (arguments.length < 2) {
- if (typeof name === "string") {
- var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
- if (value = node.classList) {
- while (++i < n) if (!value.contains(name[i])) return false;
- } else {
- value = node.getAttribute("class");
- while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
- }
- return true;
- }
- for (value in name) this.each(d3_selection_classed(value, name[value]));
- return this;
- }
- return this.each(d3_selection_classed(name, value));
- };
- function d3_selection_classedRe(name) {
- return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
- }
- function d3_selection_classed(name, value) {
- name = name.trim().split(/\s+/).map(d3_selection_classedName);
- var n = name.length;
- function classedConstant() {
- var i = -1;
- while (++i < n) name[i](this, value);
- }
- function classedFunction() {
- var i = -1, x = value.apply(this, arguments);
- while (++i < n) name[i](this, x);
- }
- return typeof value === "function" ? classedFunction : classedConstant;
- }
- function d3_selection_classedName(name) {
- var re = d3_selection_classedRe(name);
- return function(node, value) {
- if (c = node.classList) return value ? c.add(name) : c.remove(name);
- var c = node.getAttribute("class") || "";
- if (value) {
- re.lastIndex = 0;
- if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
- } else {
- node.setAttribute("class", d3_collapse(c.replace(re, " ")));
- }
- };
- }
- d3_selectionPrototype.style = function(name, value, priority) {
- var n = arguments.length;
- if (n < 3) {
- if (typeof name !== "string") {
- if (n < 2) value = "";
- for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
- return this;
- }
- if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name);
- priority = "";
- }
- return this.each(d3_selection_style(name, value, priority));
- };
- function d3_selection_style(name, value, priority) {
- function styleNull() {
- this.style.removeProperty(name);
- }
- function styleConstant() {
- this.style.setProperty(name, value, priority);
- }
- function styleFunction() {
- var x = value.apply(this, arguments);
- if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
- }
- return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
- }
- d3_selectionPrototype.property = function(name, value) {
- if (arguments.length < 2) {
- if (typeof name === "string") return this.node()[name];
- for (value in name) this.each(d3_selection_property(value, name[value]));
- return this;
- }
- return this.each(d3_selection_property(name, value));
- };
- function d3_selection_property(name, value) {
- function propertyNull() {
- delete this[name];
- }
- function propertyConstant() {
- this[name] = value;
- }
- function propertyFunction() {
- var x = value.apply(this, arguments);
- if (x == null) delete this[name]; else this[name] = x;
- }
- return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
- }
- d3_selectionPrototype.text = function(value) {
- return arguments.length ? this.each(typeof value === "function" ? function() {
- var v = value.apply(this, arguments);
- this.textContent = v == null ? "" : v;
- } : value == null ? function() {
- this.textContent = "";
- } : function() {
- this.textContent = value;
- }) : this.node().textContent;
- };
- d3_selectionPrototype.html = function(value) {
- return arguments.length ? this.each(typeof value === "function" ? function() {
- var v = value.apply(this, arguments);
- this.innerHTML = v == null ? "" : v;
- } : value == null ? function() {
- this.innerHTML = "";
- } : function() {
- this.innerHTML = value;
- }) : this.node().innerHTML;
- };
- d3_selectionPrototype.append = function(name) {
- name = d3.ns.qualify(name);
- function append() {
- return this.appendChild(d3_document.createElementNS(this.namespaceURI, name));
- }
- function appendNS() {
- return this.appendChild(d3_document.createElementNS(name.space, name.local));
- }
- return this.select(name.local ? appendNS : append);
- };
- d3_selectionPrototype.insert = function(name, before) {
- name = d3.ns.qualify(name);
- if (typeof before !== "function") before = d3_selection_selector(before);
- function insert(d, i) {
- return this.insertBefore(d3_document.createElementNS(this.namespaceURI, name), before.call(this, d, i));
- }
- function insertNS(d, i) {
- return this.insertBefore(d3_document.createElementNS(name.space, name.local), before.call(this, d, i));
- }
- return this.select(name.local ? insertNS : insert);
- };
- d3_selectionPrototype.remove = function() {
- return this.each(function() {
- var parent = this.parentNode;
- if (parent) parent.removeChild(this);
- });
- };
- d3_selectionPrototype.data = function(value, key) {
- var i = -1, n = this.length, group, node;
- if (!arguments.length) {
- value = new Array(n = (group = this[0]).length);
- while (++i < n) {
- if (node = group[i]) {
- value[i] = node.__data__;
- }
- }
- return value;
- }
- function bind(group, groupData) {
- var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
- if (key) {
- var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue;
- for (i = -1; ++i < n; ) {
- keyValue = key.call(node = group[i], node.__data__, i);
- if (nodeByKeyValue.has(keyValue)) {
- exitNodes[i] = node;
- } else {
- nodeByKeyValue.set(keyValue, node);
- }
- keyValues.push(keyValue);
- }
- for (i = -1; ++i < m; ) {
- keyValue = key.call(groupData, nodeData = groupData[i], i);
- if (node = nodeByKeyValue.get(keyValue)) {
- updateNodes[i] = node;
- node.__data__ = nodeData;
- } else if (!dataByKeyValue.has(keyValue)) {
- enterNodes[i] = d3_selection_dataNode(nodeData);
- }
- dataByKeyValue.set(keyValue, nodeData);
- nodeByKeyValue.remove(keyValue);
- }
- for (i = -1; ++i < n; ) {
- if (nodeByKeyValue.has(keyValues[i])) {
- exitNodes[i] = group[i];
- }
- }
- } else {
- for (i = -1; ++i < n0; ) {
- node = group[i];
- nodeData = groupData[i];
- if (node) {
- node.__data__ = nodeData;
- updateNodes[i] = node;
- } else {
- enterNodes[i] = d3_selection_dataNode(nodeData);
- }
- }
- for (;i < m; ++i) {
- enterNodes[i] = d3_selection_dataNode(groupData[i]);
- }
- for (;i < n; ++i) {
- exitNodes[i] = group[i];
- }
- }
- enterNodes.update = updateNodes;
- enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
- enter.push(enterNodes);
- update.push(updateNodes);
- exit.push(exitNodes);
- }
- var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
- if (typeof value === "function") {
- while (++i < n) {
- bind(group = this[i], value.call(group, group.parentNode.__data__, i));
- }
- } else {
- while (++i < n) {
- bind(group = this[i], value);
- }
- }
- update.enter = function() {
- return enter;
- };
- update.exit = function() {
- return exit;
- };
- return update;
- };
- function d3_selection_dataNode(data) {
- return {
- __data__: data
- };
- }
- d3_selectionPrototype.datum = function(value) {
- return arguments.length ? this.property("__data__", value) : this.property("__data__");
- };
- d3_selectionPrototype.filter = function(filter) {
- var subgroups = [], subgroup, group, node;
- if (typeof filter !== "function") filter = d3_selection_filter(filter);
- for (var j = 0, m = this.length; j < m; j++) {
- subgroups.push(subgroup = []);
- subgroup.parentNode = (group = this[j]).parentNode;
- for (var i = 0, n = group.length; i < n; i++) {
- if ((node = group[i]) && filter.call(node, node.__data__, i)) {
- subgroup.push(node);
- }
- }
- }
- return d3_selection(subgroups);
- };
- function d3_selection_filter(selector) {
- return function() {
- return d3_selectMatches(this, selector);
- };
- }
- d3_selectionPrototype.order = function() {
- for (var j = -1, m = this.length; ++j < m; ) {
- for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
- if (node = group[i]) {
- if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
- next = node;
- }
- }
- }
- return this;
- };
- d3_selectionPrototype.sort = function(comparator) {
- comparator = d3_selection_sortComparator.apply(this, arguments);
- for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
- return this.order();
- };
- function d3_selection_sortComparator(comparator) {
- if (!arguments.length) comparator = d3.ascending;
- return function(a, b) {
- return !a - !b || comparator(a.__data__, b.__data__);
- };
- }
- function d3_noop() {}
- d3_selectionPrototype.on = function(type, listener, capture) {
- var n = arguments.length;
- if (n < 3) {
- if (typeof type !== "string") {
- if (n < 2) listener = false;
- for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
- return this;
- }
- if (n < 2) return (n = this.node()["__on" + type]) && n._;
- capture = false;
- }
- return this.each(d3_selection_on(type, listener, capture));
- };
- function d3_selection_on(type, listener, capture) {
- var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
- if (i > 0) type = type.substring(0, i);
- var filter = d3_selection_onFilters.get(type);
- if (filter) type = filter, wrap = d3_selection_onFilter;
- function onRemove() {
- var l = this[name];
- if (l) {
- this.removeEventListener(type, l, l.$);
- delete this[name];
- }
- }
- function onAdd() {
- var l = wrap(listener, d3_array(arguments));
- onRemove.call(this);
- this.addEventListener(type, this[name] = l, l.$ = capture);
- l._ = listener;
- }
- function removeAll() {
- var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match;
- for (var name in this) {
- if (match = name.match(re)) {
- var l = this[name];
- this.removeEventListener(match[1], l, l.$);
- delete this[name];
- }
- }
- }
- return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;
- }
- var d3_selection_onFilters = d3.map({
- mouseenter: "mouseover",
- mouseleave: "mouseout"
- });
- d3_selection_onFilters.forEach(function(k) {
- if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
- });
- function d3_selection_onListener(listener, argumentz) {
- return function(e) {
- var o = d3.event;
- d3.event = e;
- argumentz[0] = this.__data__;
- try {
- listener.apply(this, argumentz);
- } finally {
- d3.event = o;
- }
- };
- }
- function d3_selection_onFilter(listener, argumentz) {
- var l = d3_selection_onListener(listener, argumentz);
- return function(e) {
- var target = this, related = e.relatedTarget;
- if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {
- l.call(target, e);
- }
- };
- }
- d3_selectionPrototype.each = function(callback) {
- return d3_selection_each(this, function(node, i, j) {
- callback.call(node, node.__data__, i, j);
- });
- };
- function d3_selection_each(groups, callback) {
- for (var j = 0, m = groups.length; j < m; j++) {
- for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
- if (node = group[i]) callback(node, i, j);
- }
- }
- return groups;
- }
- d3_selectionPrototype.call = function(callback) {
- var args = d3_array(arguments);
- callback.apply(args[0] = this, args);
- return this;
- };
- d3_selectionPrototype.empty = function() {
- return !this.node();
- };
- d3_selectionPrototype.node = function() {
- for (var j = 0, m = this.length; j < m; j++) {
- for (var group = this[j], i = 0, n = group.length; i < n; i++) {
- var node = group[i];
- if (node) return node;
- }
- }
- return null;
- };
- function d3_selection_enter(selection) {
- d3_arraySubclass(selection, d3_selection_enterPrototype);
- return selection;
- }
- var d3_selection_enterPrototype = [];
- d3.selection.enter = d3_selection_enter;
- d3.selection.enter.prototype = d3_selection_enterPrototype;
- d3_selection_enterPrototype.append = d3_selectionPrototype.append;
- d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
- d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
- d3_selection_enterPrototype.node = d3_selectionPrototype.node;
- d3_selection_enterPrototype.select = function(selector) {
- var subgroups = [], subgroup, subnode, upgroup, group, node;
- for (var j = -1, m = this.length; ++j < m; ) {
- upgroup = (group = this[j]).update;
- subgroups.push(subgroup = []);
- subgroup.parentNode = group.parentNode;
- for (var i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
- subnode.__data__ = node.__data__;
- } else {
- subgroup.push(null);
- }
- }
- }
- return d3_selection(subgroups);
- };
- d3_selectionPrototype.transition = function() {
- var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit);
- transition.time = Date.now();
- for (var j = -1, m = this.length; ++j < m; ) {
- subgroups.push(subgroup = []);
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) d3_transitionNode(node, i, id, transition);
- subgroup.push(node);
- }
- }
- return d3_transition(subgroups, id);
- };
- var d3_selectionRoot = d3_selection([ [ d3_document ] ]);
- d3_selectionRoot[0].parentNode = d3_selectRoot;
- d3.select = function(selector) {
- return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]);
- };
- d3.selectAll = function(selector) {
- return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]);
- };
- d3.behavior.zoom = function() {
- var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
- function zoom() {
- this.on("mousedown.zoom", mousedown).on("mousemove.zoom", mousemove).on(d3_behavior_zoomWheel + ".zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
- }
- zoom.translate = function(x) {
- if (!arguments.length) return translate;
- translate = x.map(Number);
- rescale();
- return zoom;
- };
- zoom.scale = function(x) {
- if (!arguments.length) return scale;
- scale = +x;
- rescale();
- return zoom;
- };
- zoom.scaleExtent = function(x) {
- if (!arguments.length) return scaleExtent;
- scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
- return zoom;
- };
- zoom.x = function(z) {
- if (!arguments.length) return x1;
- x1 = z;
- x0 = z.copy();
- translate = [ 0, 0 ];
- scale = 1;
- return zoom;
- };
- zoom.y = function(z) {
- if (!arguments.length) return y1;
- y1 = z;
- y0 = z.copy();
- translate = [ 0, 0 ];
- scale = 1;
- return zoom;
- };
- function location(p) {
- return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
- }
- function point(l) {
- return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
- }
- function scaleTo(s) {
- scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
- }
- function translateTo(p, l) {
- l = point(l);
- translate[0] += p[0] - l[0];
- translate[1] += p[1] - l[1];
- }
- function rescale() {
- if (x1) x1.domain(x0.range().map(function(x) {
- return (x - translate[0]) / scale;
- }).map(x0.invert));
- if (y1) y1.domain(y0.range().map(function(y) {
- return (y - translate[1]) / scale;
- }).map(y0.invert));
- }
- function dispatch(event) {
- rescale();
- d3.event.preventDefault();
- event({
- type: "zoom",
- scale: scale,
- translate: translate
- });
- }
- function mousedown() {
- var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(d3_window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
- d3_window.focus();
- d3_eventCancel();
- function mousemove() {
- moved = 1;
- translateTo(d3.mouse(target), l);
- dispatch(event_);
- }
- function mouseup() {
- if (moved) d3_eventCancel();
- w.on("mousemove.zoom", null).on("mouseup.zoom", null);
- if (moved && d3.event.target === eventTarget) d3_eventSuppress(w, "click.zoom");
- }
- }
- function mousewheel() {
- if (!translate0) translate0 = location(d3.mouse(this));
- scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
- translateTo(d3.mouse(this), translate0);
- dispatch(event.of(this, arguments));
- }
- function mousemove() {
- translate0 = null;
- }
- function dblclick() {
- var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2;
- scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
- translateTo(p, l);
- dispatch(event.of(this, arguments));
- }
- function touchstart() {
- var touches = d3.touches(this), now = Date.now();
- scale0 = scale;
- translate0 = {};
- touches.forEach(function(t) {
- translate0[t.identifier] = location(t);
- });
- d3_eventCancel();
- if (touches.length === 1) {
- if (now - touchtime < 500) {
- var p = touches[0], l = location(touches[0]);
- scaleTo(scale * 2);
- translateTo(p, l);
- dispatch(event.of(this, arguments));
- }
- touchtime = now;
- }
- }
- function touchmove() {
- var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
- if (p1 = touches[1]) {
- var p1, l1 = translate0[p1.identifier];
- p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
- l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
- scaleTo(d3.event.scale * scale0);
- }
- translateTo(p0, l0);
- touchtime = null;
- dispatch(event.of(this, arguments));
- }
- return d3.rebind(zoom, event, "on");
- };
- var d3_behavior_zoomInfinity = [ 0, Infinity ];
- var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
- return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
- }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
- return d3.event.wheelDelta;
- }, "mousewheel") : (d3_behavior_zoomDelta = function() {
- return -d3.event.detail;
- }, "MozMousePixelScroll");
- function d3_Color() {}
- d3_Color.prototype.toString = function() {
- return this.rgb() + "";
- };
- d3.hsl = function(h, s, l) {
- return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
- };
- function d3_hsl(h, s, l) {
- return new d3_Hsl(h, s, l);
- }
- function d3_Hsl(h, s, l) {
- this.h = h;
- this.s = s;
- this.l = l;
- }
- var d3_hslPrototype = d3_Hsl.prototype = new d3_Color();
- d3_hslPrototype.brighter = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- return d3_hsl(this.h, this.s, this.l / k);
- };
- d3_hslPrototype.darker = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- return d3_hsl(this.h, this.s, k * this.l);
- };
- d3_hslPrototype.rgb = function() {
- return d3_hsl_rgb(this.h, this.s, this.l);
- };
- function d3_hsl_rgb(h, s, l) {
- var m1, m2;
- h = h % 360;
- if (h < 0) h += 360;
- s = s < 0 ? 0 : s > 1 ? 1 : s;
- l = l < 0 ? 0 : l > 1 ? 1 : l;
- m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
- m1 = 2 * l - m2;
- function v(h) {
- if (h > 360) h -= 360; else if (h < 0) h += 360;
- if (h < 60) return m1 + (m2 - m1) * h / 60;
- if (h < 180) return m2;
- if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
- return m1;
- }
- function vv(h) {
- return Math.round(v(h) * 255);
- }
- return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
- }
- var π = Math.PI, ε = 1e-6, d3_radians = π / 180, d3_degrees = 180 / π;
- function d3_sgn(x) {
- return x > 0 ? 1 : x < 0 ? -1 : 0;
- }
- function d3_acos(x) {
- return Math.acos(Math.max(-1, Math.min(1, x)));
- }
- function d3_asin(x) {
- return x > 1 ? π / 2 : x < -1 ? -π / 2 : Math.asin(x);
- }
- function d3_sinh(x) {
- return (Math.exp(x) - Math.exp(-x)) / 2;
- }
- function d3_cosh(x) {
- return (Math.exp(x) + Math.exp(-x)) / 2;
- }
- function d3_haversin(x) {
- return (x = Math.sin(x / 2)) * x;
- }
- d3.hcl = function(h, c, l) {
- return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
- };
- function d3_hcl(h, c, l) {
- return new d3_Hcl(h, c, l);
- }
- function d3_Hcl(h, c, l) {
- this.h = h;
- this.c = c;
- this.l = l;
- }
- var d3_hclPrototype = d3_Hcl.prototype = new d3_Color();
- d3_hclPrototype.brighter = function(k) {
- return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
- };
- d3_hclPrototype.darker = function(k) {
- return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
- };
- d3_hclPrototype.rgb = function() {
- return d3_hcl_lab(this.h, this.c, this.l).rgb();
- };
- function d3_hcl_lab(h, c, l) {
- return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
- }
- d3.lab = function(l, a, b) {
- return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
- };
- function d3_lab(l, a, b) {
- return new d3_Lab(l, a, b);
- }
- function d3_Lab(l, a, b) {
- this.l = l;
- this.a = a;
- this.b = b;
- }
- var d3_lab_K = 18;
- var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
- var d3_labPrototype = d3_Lab.prototype = new d3_Color();
- d3_labPrototype.brighter = function(k) {
- return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
- };
- d3_labPrototype.darker = function(k) {
- return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
- };
- d3_labPrototype.rgb = function() {
- return d3_lab_rgb(this.l, this.a, this.b);
- };
- function d3_lab_rgb(l, a, b) {
- var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
- x = d3_lab_xyz(x) * d3_lab_X;
- y = d3_lab_xyz(y) * d3_lab_Y;
- z = d3_lab_xyz(z) * d3_lab_Z;
- return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
- }
- function d3_lab_hcl(l, a, b) {
- return d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l);
- }
- function d3_lab_xyz(x) {
- return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
- }
- function d3_xyz_lab(x) {
- return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
- }
- function d3_xyz_rgb(r) {
- return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
- }
- d3.rgb = function(r, g, b) {
- return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
- };
- function d3_rgb(r, g, b) {
- return new d3_Rgb(r, g, b);
- }
- function d3_Rgb(r, g, b) {
- this.r = r;
- this.g = g;
- this.b = b;
- }
- var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
- d3_rgbPrototype.brighter = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- var r = this.r, g = this.g, b = this.b, i = 30;
- if (!r && !g && !b) return d3_rgb(i, i, i);
- if (r && r < i) r = i;
- if (g && g < i) g = i;
- if (b && b < i) b = i;
- return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
- };
- d3_rgbPrototype.darker = function(k) {
- k = Math.pow(.7, arguments.length ? k : 1);
- return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
- };
- d3_rgbPrototype.hsl = function() {
- return d3_rgb_hsl(this.r, this.g, this.b);
- };
- d3_rgbPrototype.toString = function() {
- return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
- };
- function d3_rgb_hex(v) {
- return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
- }
- function d3_rgb_parse(format, rgb, hsl) {
- var r = 0, g = 0, b = 0, m1, m2, name;
- m1 = /([a-z]+)\((.*)\)/i.exec(format);
- if (m1) {
- m2 = m1[2].split(",");
- switch (m1[1]) {
- case "hsl":
- {
- return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
- }
-
- case "rgb":
- {
- return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
- }
- }
- }
- if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
- if (format != null && format.charAt(0) === "#") {
- if (format.length === 4) {
- r = format.charAt(1);
- r += r;
- g = format.charAt(2);
- g += g;
- b = format.charAt(3);
- b += b;
- } else if (format.length === 7) {
- r = format.substring(1, 3);
- g = format.substring(3, 5);
- b = format.substring(5, 7);
- }
- r = parseInt(r, 16);
- g = parseInt(g, 16);
- b = parseInt(b, 16);
- }
- return rgb(r, g, b);
- }
- function d3_rgb_hsl(r, g, b) {
- var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
- if (d) {
- s = l < .5 ? d / (max + min) : d / (2 - max - min);
- if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
- h *= 60;
- } else {
- s = h = 0;
- }
- return d3_hsl(h, s, l);
- }
- function d3_rgb_lab(r, g, b) {
- r = d3_rgb_xyz(r);
- g = d3_rgb_xyz(g);
- b = d3_rgb_xyz(b);
- var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
- return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
- }
- function d3_rgb_xyz(r) {
- return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
- }
- function d3_rgb_parseNumber(c) {
- var f = parseFloat(c);
- return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
- }
- var d3_rgb_names = d3.map({
- aliceblue: "#f0f8ff",
- antiquewhite: "#faebd7",
- aqua: "#00ffff",
- aquamarine: "#7fffd4",
- azure: "#f0ffff",
- beige: "#f5f5dc",
- bisque: "#ffe4c4",
- black: "#000000",
- blanchedalmond: "#ffebcd",
- blue: "#0000ff",
- blueviolet: "#8a2be2",
- brown: "#a52a2a",
- burlywood: "#deb887",
- cadetblue: "#5f9ea0",
- chartreuse: "#7fff00",
- chocolate: "#d2691e",
- coral: "#ff7f50",
- cornflowerblue: "#6495ed",
- cornsilk: "#fff8dc",
- crimson: "#dc143c",
- cyan: "#00ffff",
- darkblue: "#00008b",
- darkcyan: "#008b8b",
- darkgoldenrod: "#b8860b",
- darkgray: "#a9a9a9",
- darkgreen: "#006400",
- darkgrey: "#a9a9a9",
- darkkhaki: "#bdb76b",
- darkmagenta: "#8b008b",
- darkolivegreen: "#556b2f",
- darkorange: "#ff8c00",
- darkorchid: "#9932cc",
- darkred: "#8b0000",
- darksalmon: "#e9967a",
- darkseagreen: "#8fbc8f",
- darkslateblue: "#483d8b",
- darkslategray: "#2f4f4f",
- darkslategrey: "#2f4f4f",
- darkturquoise: "#00ced1",
- darkviolet: "#9400d3",
- deeppink: "#ff1493",
- deepskyblue: "#00bfff",
- dimgray: "#696969",
- dimgrey: "#696969",
- dodgerblue: "#1e90ff",
- firebrick: "#b22222",
- floralwhite: "#fffaf0",
- forestgreen: "#228b22",
- fuchsia: "#ff00ff",
- gainsboro: "#dcdcdc",
- ghostwhite: "#f8f8ff",
- gold: "#ffd700",
- goldenrod: "#daa520",
- gray: "#808080",
- green: "#008000",
- greenyellow: "#adff2f",
- grey: "#808080",
- honeydew: "#f0fff0",
- hotpink: "#ff69b4",
- indianred: "#cd5c5c",
- indigo: "#4b0082",
- ivory: "#fffff0",
- khaki: "#f0e68c",
- lavender: "#e6e6fa",
- lavenderblush: "#fff0f5",
- lawngreen: "#7cfc00",
- lemonchiffon: "#fffacd",
- lightblue: "#add8e6",
- lightcoral: "#f08080",
- lightcyan: "#e0ffff",
- lightgoldenrodyellow: "#fafad2",
- lightgray: "#d3d3d3",
- lightgreen: "#90ee90",
- lightgrey: "#d3d3d3",
- lightpink: "#ffb6c1",
- lightsalmon: "#ffa07a",
- lightseagreen: "#20b2aa",
- lightskyblue: "#87cefa",
- lightslategray: "#778899",
- lightslategrey: "#778899",
- lightsteelblue: "#b0c4de",
- lightyellow: "#ffffe0",
- lime: "#00ff00",
- limegreen: "#32cd32",
- linen: "#faf0e6",
- magenta: "#ff00ff",
- maroon: "#800000",
- mediumaquamarine: "#66cdaa",
- mediumblue: "#0000cd",
- mediumorchid: "#ba55d3",
- mediumpurple: "#9370db",
- mediumseagreen: "#3cb371",
- mediumslateblue: "#7b68ee",
- mediumspringgreen: "#00fa9a",
- mediumturquoise: "#48d1cc",
- mediumvioletred: "#c71585",
- midnightblue: "#191970",
- mintcream: "#f5fffa",
- mistyrose: "#ffe4e1",
- moccasin: "#ffe4b5",
- navajowhite: "#ffdead",
- navy: "#000080",
- oldlace: "#fdf5e6",
- olive: "#808000",
- olivedrab: "#6b8e23",
- orange: "#ffa500",
- orangered: "#ff4500",
- orchid: "#da70d6",
- palegoldenrod: "#eee8aa",
- palegreen: "#98fb98",
- paleturquoise: "#afeeee",
- palevioletred: "#db7093",
- papayawhip: "#ffefd5",
- peachpuff: "#ffdab9",
- peru: "#cd853f",
- pink: "#ffc0cb",
- plum: "#dda0dd",
- powderblue: "#b0e0e6",
- purple: "#800080",
- red: "#ff0000",
- rosybrown: "#bc8f8f",
- royalblue: "#4169e1",
- saddlebrown: "#8b4513",
- salmon: "#fa8072",
- sandybrown: "#f4a460",
- seagreen: "#2e8b57",
- seashell: "#fff5ee",
- sienna: "#a0522d",
- silver: "#c0c0c0",
- skyblue: "#87ceeb",
- slateblue: "#6a5acd",
- slategray: "#708090",
- slategrey: "#708090",
- snow: "#fffafa",
- springgreen: "#00ff7f",
- steelblue: "#4682b4",
- tan: "#d2b48c",
- teal: "#008080",
- thistle: "#d8bfd8",
- tomato: "#ff6347",
- turquoise: "#40e0d0",
- violet: "#ee82ee",
- wheat: "#f5deb3",
- white: "#ffffff",
- whitesmoke: "#f5f5f5",
- yellow: "#ffff00",
- yellowgreen: "#9acd32"
- });
- d3_rgb_names.forEach(function(key, value) {
- d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
- });
- function d3_functor(v) {
- return typeof v === "function" ? v : function() {
- return v;
- };
- }
- d3.functor = d3_functor;
- function d3_identity(d) {
- return d;
- }
- d3.xhr = function(url, mimeType, callback) {
- var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (d3_window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)();
- "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
- request.readyState > 3 && respond();
- };
- function respond() {
- var s = request.status;
- !s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request);
- }
- request.onprogress = function(event) {
- var o = d3.event;
- d3.event = event;
- try {
- dispatch.progress.call(xhr, request);
- } finally {
- d3.event = o;
- }
- };
- xhr.header = function(name, value) {
- name = (name + "").toLowerCase();
- if (arguments.length < 2) return headers[name];
- if (value == null) delete headers[name]; else headers[name] = value + "";
- return xhr;
- };
- xhr.mimeType = function(value) {
- if (!arguments.length) return mimeType;
- mimeType = value == null ? null : value + "";
- return xhr;
- };
- xhr.response = function(value) {
- response = value;
- return xhr;
- };
- [ "get", "post" ].forEach(function(method) {
- xhr[method] = function() {
- return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
- };
- });
- xhr.send = function(method, data, callback) {
- if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
- request.open(method, url, true);
- if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
- if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
- if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
- if (callback != null) xhr.on("error", callback).on("load", function(request) {
- callback(null, request);
- });
- request.send(data == null ? null : data);
- return xhr;
- };
- xhr.abort = function() {
- request.abort();
- return xhr;
- };
- d3.rebind(xhr, dispatch, "on");
- if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
- mimeType = null;
- return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
- };
- function d3_xhr_fixCallback(callback) {
- return callback.length === 1 ? function(error, request) {
- callback(error == null ? request : null);
- } : callback;
- }
- function d3_dsv(delimiter, mimeType) {
- var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
- function dsv(url, row, callback) {
- if (arguments.length < 3) callback = row, row = null;
- var xhr = d3.xhr(url, mimeType, callback);
- xhr.row = function(_) {
- return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;
- };
- return xhr.row(row);
- }
- function response(request) {
- return dsv.parse(request.responseText);
- }
- function typedResponse(f) {
- return function(request) {
- return dsv.parse(request.responseText, f);
- };
- }
- dsv.parse = function(text, f) {
- var o;
- return dsv.parseRows(text, function(row, i) {
- if (o) return o(row, i - 1);
- var a = new Function("d", "return {" + row.map(function(name, i) {
- return JSON.stringify(name) + ": d[" + i + "]";
- }).join(",") + "}");
- o = f ? function(row, i) {
- return f(a(row), i);
- } : a;
- });
- };
- dsv.parseRows = function(text, f) {
- var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
- function token() {
- if (I >= N) return EOF;
- if (eol) return eol = false, EOL;
- var j = I;
- if (text.charCodeAt(j) === 34) {
- var i = j;
- while (i++ < N) {
- if (text.charCodeAt(i) === 34) {
- if (text.charCodeAt(i + 1) !== 34) break;
- ++i;
- }
- }
- I = i + 2;
- var c = text.charCodeAt(i + 1);
- if (c === 13) {
- eol = true;
- if (text.charCodeAt(i + 2) === 10) ++I;
- } else if (c === 10) {
- eol = true;
- }
- return text.substring(j + 1, i).replace(/""/g, '"');
- }
- while (I < N) {
- var c = text.charCodeAt(I++), k = 1;
- if (c === 10) eol = true; else if (c === 13) {
- eol = true;
- if (text.charCodeAt(I) === 10) ++I, ++k;
- } else if (c !== delimiterCode) continue;
- return text.substring(j, I - k);
- }
- return text.substring(j);
- }
- while ((t = token()) !== EOF) {
- var a = [];
- while (t !== EOL && t !== EOF) {
- a.push(t);
- t = token();
- }
- if (f && !(a = f(a, n++))) continue;
- rows.push(a);
- }
- return rows;
- };
- dsv.format = function(rows) {
- if (Array.isArray(rows[0])) return dsv.formatRows(rows);
- var fieldSet = new d3_Set(), fields = [];
- rows.forEach(function(row) {
- for (var field in row) {
- if (!fieldSet.has(field)) {
- fields.push(fieldSet.add(field));
- }
- }
- });
- return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {
- return fields.map(function(field) {
- return formatValue(row[field]);
- }).join(delimiter);
- })).join("\n");
- };
- dsv.formatRows = function(rows) {
- return rows.map(formatRow).join("\n");
- };
- function formatRow(row) {
- return row.map(formatValue).join(delimiter);
- }
- function formatValue(text) {
- return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
- }
- return dsv;
- }
- d3.csv = d3_dsv(",", "text/csv");
- d3.tsv = d3_dsv(" ", "text/tab-separated-values");
- var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
- d3.timer = function(callback, delay, then) {
- if (arguments.length < 3) {
- if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
- then = Date.now();
- }
- var timer = d3_timer_byId[callback.id];
- if (timer && timer.callback === callback) {
- timer.then = then;
- timer.delay = delay;
- } else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = {
- callback: callback,
- then: then,
- delay: delay,
- next: d3_timer_queue
- };
- if (!d3_timer_interval) {
- d3_timer_timeout = clearTimeout(d3_timer_timeout);
- d3_timer_interval = 1;
- d3_timer_frame(d3_timer_step);
- }
- };
- function d3_timer_step() {
- var elapsed, now = Date.now(), t1 = d3_timer_queue;
- while (t1) {
- elapsed = now - t1.then;
- if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
- t1 = t1.next;
- }
- var delay = d3_timer_flush() - now;
- if (delay > 24) {
- if (isFinite(delay)) {
- clearTimeout(d3_timer_timeout);
- d3_timer_timeout = setTimeout(d3_timer_step, delay);
- }
- d3_timer_interval = 0;
- } else {
- d3_timer_interval = 1;
- d3_timer_frame(d3_timer_step);
- }
- }
- d3.timer.flush = function() {
- var elapsed, now = Date.now(), t1 = d3_timer_queue;
- while (t1) {
- elapsed = now - t1.then;
- if (!t1.delay) t1.flush = t1.callback(elapsed);
- t1 = t1.next;
- }
- d3_timer_flush();
- };
- function d3_timer_flush() {
- var t0 = null, t1 = d3_timer_queue, then = Infinity;
- while (t1) {
- if (t1.flush) {
- delete d3_timer_byId[t1.callback.id];
- t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
- } else {
- then = Math.min(then, t1.then + t1.delay);
- t1 = (t0 = t1).next;
- }
- }
- return then;
- }
- var d3_timer_frame = d3_window.requestAnimationFrame || d3_window.webkitRequestAnimationFrame || d3_window.mozRequestAnimationFrame || d3_window.oRequestAnimationFrame || d3_window.msRequestAnimationFrame || function(callback) {
- setTimeout(callback, 17);
- };
- var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ];
- var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
- d3.formatPrefix = function(value, precision) {
- var i = 0;
- if (value) {
- if (value < 0) value *= -1;
- if (precision) value = d3.round(value, d3_format_precision(value, precision));
- i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
- i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
- }
- return d3_formatPrefixes[8 + i / 3];
- };
- function d3_formatPrefix(d, i) {
- var k = Math.pow(10, Math.abs(8 - i) * 3);
- return {
- scale: i > 8 ? function(d) {
- return d / k;
- } : function(d) {
- return d * k;
- },
- symbol: d
- };
- }
- d3.round = function(x, n) {
- return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
- };
- d3.format = function(specifier) {
- var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
- if (precision) precision = +precision.substring(1);
- if (zfill || fill === "0" && align === "=") {
- zfill = fill = "0";
- align = "=";
- if (comma) width -= Math.floor((width - 1) / 4);
- }
- switch (type) {
- case "n":
- comma = true;
- type = "g";
- break;
-
- case "%":
- scale = 100;
- suffix = "%";
- type = "f";
- break;
-
- case "p":
- scale = 100;
- suffix = "%";
- type = "r";
- break;
-
- case "b":
- case "o":
- case "x":
- case "X":
- if (basePrefix) basePrefix = "0" + type.toLowerCase();
-
- case "c":
- case "d":
- integer = true;
- precision = 0;
- break;
-
- case "s":
- scale = -1;
- type = "r";
- break;
- }
- if (basePrefix === "#") basePrefix = "";
- if (type == "r" && !precision) type = "g";
- if (precision != null) {
- if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision));
- }
- type = d3_format_types.get(type) || d3_format_typeDefault;
- var zcomma = zfill && comma;
- return function(value) {
- if (integer && value % 1) return "";
- var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign;
- if (scale < 0) {
- var prefix = d3.formatPrefix(value, precision);
- value = prefix.scale(value);
- suffix = prefix.symbol;
- } else {
- value *= scale;
- }
- value = type(value, precision);
- if (!zfill && comma) value = d3_format_group(value);
- var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
- if (zcomma) value = d3_format_group(padding + value);
- if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint);
- negative += basePrefix;
- return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix;
- };
- };
- var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;
- var d3_format_types = d3.map({
- b: function(x) {
- return x.toString(2);
- },
- c: function(x) {
- return String.fromCharCode(x);
- },
- o: function(x) {
- return x.toString(8);
- },
- x: function(x) {
- return x.toString(16);
- },
- X: function(x) {
- return x.toString(16).toUpperCase();
- },
- g: function(x, p) {
- return x.toPrecision(p);
- },
- e: function(x, p) {
- return x.toExponential(p);
- },
- f: function(x, p) {
- return x.toFixed(p);
- },
- r: function(x, p) {
- return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
- }
- });
- function d3_format_precision(x, p) {
- return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
- }
- function d3_format_typeDefault(x) {
- return x + "";
- }
- var d3_format_group = d3_identity;
- if (d3_format_grouping) {
- var d3_format_groupingLength = d3_format_grouping.length;
- d3_format_group = function(value) {
- var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length,
- ""), t = [], j = 0, g = d3_format_grouping[0];
- while (i > 0 && g > 0) {
- t.push(value.substring(i -= g, i + g));
- g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength];
- }
- return t.reverse().join(d3_format_thousandsSeparator || "") + f;
- };
- }
- d3.geo = {};
- d3.geo.stream = function(object, listener) {
- if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
- d3_geo_streamObjectType[object.type](object, listener);
- } else {
- d3_geo_streamGeometry(object, listener);
- }
- };
- function d3_geo_streamGeometry(geometry, listener) {
- if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
- d3_geo_streamGeometryType[geometry.type](geometry, listener);
- }
- }
- var d3_geo_streamObjectType = {
- Feature: function(feature, listener) {
- d3_geo_streamGeometry(feature.geometry, listener);
- },
- FeatureCollection: function(object, listener) {
- var features = object.features, i = -1, n = features.length;
- while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
- }
- };
- var d3_geo_streamGeometryType = {
- Sphere: function(object, listener) {
- listener.sphere();
- },
- Point: function(object, listener) {
- var coordinate = object.coordinates;
- listener.point(coordinate[0], coordinate[1]);
- },
- MultiPoint: function(object, listener) {
- var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate;
- while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
- },
- LineString: function(object, listener) {
- d3_geo_streamLine(object.coordinates, listener, 0);
- },
- MultiLineString: function(object, listener) {
- var coordinates = object.coordinates, i = -1, n = coordinates.length;
- while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
- },
- Polygon: function(object, listener) {
- d3_geo_streamPolygon(object.coordinates, listener);
- },
- MultiPolygon: function(object, listener) {
- var coordinates = object.coordinates, i = -1, n = coordinates.length;
- while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
- },
- GeometryCollection: function(object, listener) {
- var geometries = object.geometries, i = -1, n = geometries.length;
- while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
- }
- };
- function d3_geo_streamLine(coordinates, listener, closed) {
- var i = -1, n = coordinates.length - closed, coordinate;
- listener.lineStart();
- while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
- listener.lineEnd();
- }
- function d3_geo_streamPolygon(coordinates, listener) {
- var i = -1, n = coordinates.length;
- listener.polygonStart();
- while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
- listener.polygonEnd();
- }
- d3.geo.area = function(object) {
- d3_geo_areaSum = 0;
- d3.geo.stream(object, d3_geo_area);
- return d3_geo_areaSum;
- };
- var d3_geo_areaSum, d3_geo_areaRingU, d3_geo_areaRingV;
- var d3_geo_area = {
- sphere: function() {
- d3_geo_areaSum += 4 * π;
- },
- point: d3_noop,
- lineStart: d3_noop,
- lineEnd: d3_noop,
- polygonStart: function() {
- d3_geo_areaRingU = 1, d3_geo_areaRingV = 0;
- d3_geo_area.lineStart = d3_geo_areaRingStart;
- },
- polygonEnd: function() {
- var area = 2 * Math.atan2(d3_geo_areaRingV, d3_geo_areaRingU);
- d3_geo_areaSum += area < 0 ? 4 * π + area : area;
- d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
- }
- };
- function d3_geo_areaRingStart() {
- var λ00, φ00, λ0, cosφ0, sinφ0;
- d3_geo_area.point = function(λ, φ) {
- d3_geo_area.point = nextPoint;
- λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
- sinφ0 = Math.sin(φ);
- };
- function nextPoint(λ, φ) {
- λ *= d3_radians;
- φ = φ * d3_radians / 2 + π / 4;
- var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u0 = d3_geo_areaRingU, v0 = d3_geo_areaRingV, u = cosφ0 * cosφ + k * Math.cos(dλ), v = k * Math.sin(dλ);
- d3_geo_areaRingU = u0 * u - v0 * v;
- d3_geo_areaRingV = v0 * u + u0 * v;
- λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
- }
- d3_geo_area.lineEnd = function() {
- nextPoint(λ00, φ00);
- };
- }
- d3.geo.bounds = d3_geo_bounds(d3_identity);
- function d3_geo_bounds(projectStream) {
- var x0, y0, x1, y1;
- var bound = {
- point: boundPoint,
- lineStart: d3_noop,
- lineEnd: d3_noop,
- polygonStart: function() {
- bound.lineEnd = boundPolygonLineEnd;
- },
- polygonEnd: function() {
- bound.point = boundPoint;
- }
- };
- function boundPoint(x, y) {
- if (x < x0) x0 = x;
- if (x > x1) x1 = x;
- if (y < y0) y0 = y;
- if (y > y1) y1 = y;
- }
- function boundPolygonLineEnd() {
- bound.point = bound.lineEnd = d3_noop;
- }
- return function(feature) {
- y1 = x1 = -(x0 = y0 = Infinity);
- d3.geo.stream(feature, projectStream(bound));
- return [ [ x0, y0 ], [ x1, y1 ] ];
- };
- }
- d3.geo.centroid = function(object) {
- d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
- d3.geo.stream(object, d3_geo_centroid);
- var m;
- if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ε) {
- return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ];
- }
- };
- var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ;
- var d3_geo_centroid = {
- sphere: function() {
- if (d3_geo_centroidDimension < 2) {
- d3_geo_centroidDimension = 2;
- d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
- }
- },
- point: d3_geo_centroidPoint,
- lineStart: d3_geo_centroidLineStart,
- lineEnd: d3_geo_centroidLineEnd,
- polygonStart: function() {
- if (d3_geo_centroidDimension < 2) {
- d3_geo_centroidDimension = 2;
- d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
- }
- d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
- },
- polygonEnd: function() {
- d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
- }
- };
- function d3_geo_centroidPoint(λ, φ) {
- if (d3_geo_centroidDimension) return;
- ++d3_geo_centroidW;
- λ *= d3_radians;
- var cosφ = Math.cos(φ *= d3_radians);
- d3_geo_centroidX += (cosφ * Math.cos(λ) - d3_geo_centroidX) / d3_geo_centroidW;
- d3_geo_centroidY += (cosφ * Math.sin(λ) - d3_geo_centroidY) / d3_geo_centroidW;
- d3_geo_centroidZ += (Math.sin(φ) - d3_geo_centroidZ) / d3_geo_centroidW;
- }
- function d3_geo_centroidRingStart() {
- var λ00, φ00;
- d3_geo_centroidDimension = 1;
- d3_geo_centroidLineStart();
- d3_geo_centroidDimension = 2;
- var linePoint = d3_geo_centroid.point;
- d3_geo_centroid.point = function(λ, φ) {
- linePoint(λ00 = λ, φ00 = φ);
- };
- d3_geo_centroid.lineEnd = function() {
- d3_geo_centroid.point(λ00, φ00);
- d3_geo_centroidLineEnd();
- d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
- };
- }
- function d3_geo_centroidLineStart() {
- var x0, y0, z0;
- if (d3_geo_centroidDimension > 1) return;
- if (d3_geo_centroidDimension < 1) {
- d3_geo_centroidDimension = 1;
- d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
- }
- d3_geo_centroid.point = function(λ, φ) {
- λ *= d3_radians;
- var cosφ = Math.cos(φ *= d3_radians);
- x0 = cosφ * Math.cos(λ);
- y0 = cosφ * Math.sin(λ);
- z0 = Math.sin(φ);
- d3_geo_centroid.point = nextPoint;
- };
- function nextPoint(λ, φ) {
- λ *= d3_radians;
- var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
- d3_geo_centroidW += w;
- d3_geo_centroidX += w * (x0 + (x0 = x));
- d3_geo_centroidY += w * (y0 + (y0 = y));
- d3_geo_centroidZ += w * (z0 + (z0 = z));
- }
- }
- function d3_geo_centroidLineEnd() {
- d3_geo_centroid.point = d3_geo_centroidPoint;
- }
- function d3_geo_cartesian(spherical) {
- var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
- return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
- }
- function d3_geo_cartesianDot(a, b) {
- return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
- }
- function d3_geo_cartesianCross(a, b) {
- return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
- }
- function d3_geo_cartesianAdd(a, b) {
- a[0] += b[0];
- a[1] += b[1];
- a[2] += b[2];
- }
- function d3_geo_cartesianScale(vector, k) {
- return [ vector[0] * k, vector[1] * k, vector[2] * k ];
- }
- function d3_geo_cartesianNormalize(d) {
- var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
- d[0] /= l;
- d[1] /= l;
- d[2] /= l;
- }
- function d3_true() {
- return true;
- }
- function d3_geo_spherical(cartesian) {
- return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ];
- }
- function d3_geo_sphericalEqual(a, b) {
- return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;
- }
- function d3_geo_clipPolygon(segments, compare, inside, interpolate, listener) {
- var subject = [], clip = [];
- segments.forEach(function(segment) {
- if ((n = segment.length - 1) <= 0) return;
- var n, p0 = segment[0], p1 = segment[n];
- if (d3_geo_sphericalEqual(p0, p1)) {
- listener.lineStart();
- for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
- listener.lineEnd();
- return;
- }
- var a = {
- point: p0,
- points: segment,
- other: null,
- visited: false,
- entry: true,
- subject: true
- }, b = {
- point: p0,
- points: [ p0 ],
- other: a,
- visited: false,
- entry: false,
- subject: false
- };
- a.other = b;
- subject.push(a);
- clip.push(b);
- a = {
- point: p1,
- points: [ p1 ],
- other: null,
- visited: false,
- entry: false,
- subject: true
- };
- b = {
- point: p1,
- points: [ p1 ],
- other: a,
- visited: false,
- entry: true,
- subject: false
- };
- a.other = b;
- subject.push(a);
- clip.push(b);
- });
- clip.sort(compare);
- d3_geo_clipPolygonLinkCircular(subject);
- d3_geo_clipPolygonLinkCircular(clip);
- if (!subject.length) return;
- if (inside) for (var i = 1, e = !inside(clip[0].point), n = clip.length; i < n; ++i) {
- clip[i].entry = e = !e;
- }
- var start = subject[0], current, points, point;
- while (1) {
- current = start;
- while (current.visited) if ((current = current.next) === start) return;
- points = current.points;
- listener.lineStart();
- do {
- current.visited = current.other.visited = true;
- if (current.entry) {
- if (current.subject) {
- for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]);
- } else {
- interpolate(current.point, current.next.point, 1, listener);
- }
- current = current.next;
- } else {
- if (current.subject) {
- points = current.prev.points;
- for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]);
- } else {
- interpolate(current.point, current.prev.point, -1, listener);
- }
- current = current.prev;
- }
- current = current.other;
- points = current.points;
- } while (!current.visited);
- listener.lineEnd();
- }
- }
- function d3_geo_clipPolygonLinkCircular(array) {
- if (!(n = array.length)) return;
- var n, i = 0, a = array[0], b;
- while (++i < n) {
- a.next = b = array[i];
- b.prev = a;
- a = b;
- }
- a.next = b = array[0];
- b.prev = a;
- }
- function d3_geo_clip(pointVisible, clipLine, interpolate) {
- return function(listener) {
- var line = clipLine(listener);
- var clip = {
- point: point,
- lineStart: lineStart,
- lineEnd: lineEnd,
- polygonStart: function() {
- clip.point = pointRing;
- clip.lineStart = ringStart;
- clip.lineEnd = ringEnd;
- invisible = false;
- invisibleArea = visibleArea = 0;
- segments = [];
- listener.polygonStart();
- },
- polygonEnd: function() {
- clip.point = point;
- clip.lineStart = lineStart;
- clip.lineEnd = lineEnd;
- segments = d3.merge(segments);
- if (segments.length) {
- d3_geo_clipPolygon(segments, d3_geo_clipSort, null, interpolate, listener);
- } else if (visibleArea < -ε || invisible && invisibleArea < -ε) {
- listener.lineStart();
- interpolate(null, null, 1, listener);
- listener.lineEnd();
- }
- listener.polygonEnd();
- segments = null;
- },
- sphere: function() {
- listener.polygonStart();
- listener.lineStart();
- interpolate(null, null, 1, listener);
- listener.lineEnd();
- listener.polygonEnd();
- }
- };
- function point(λ, φ) {
- if (pointVisible(λ, φ)) listener.point(λ, φ);
- }
- function pointLine(λ, φ) {
- line.point(λ, φ);
- }
- function lineStart() {
- clip.point = pointLine;
- line.lineStart();
- }
- function lineEnd() {
- clip.point = point;
- line.lineEnd();
- }
- var segments, visibleArea, invisibleArea, invisible;
- var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), ring;
- function pointRing(λ, φ) {
- ringListener.point(λ, φ);
- ring.push([ λ, φ ]);
- }
- function ringStart() {
- ringListener.lineStart();
- ring = [];
- }
- function ringEnd() {
- pointRing(ring[0][0], ring[0][1]);
- ringListener.lineEnd();
- var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
- if (!n) {
- invisible = true;
- invisibleArea += d3_geo_clipAreaRing(ring, -1);
- ring = null;
- return;
- }
- ring = null;
- if (clean & 1) {
- segment = ringSegments[0];
- visibleArea += d3_geo_clipAreaRing(segment, 1);
- var n = segment.length - 1, i = -1, point;
- listener.lineStart();
- while (++i < n) listener.point((point = segment[i])[0], point[1]);
- listener.lineEnd();
- return;
- }
- if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
- segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
- }
- return clip;
- };
- }
- function d3_geo_clipSegmentLength1(segment) {
- return segment.length > 1;
- }
- function d3_geo_clipBufferListener() {
- var lines = [], line;
- return {
- lineStart: function() {
- lines.push(line = []);
- },
- point: function(λ, φ) {
- line.push([ λ, φ ]);
- },
- lineEnd: d3_noop,
- buffer: function() {
- var buffer = lines;
- lines = [];
- line = null;
- return buffer;
- },
- rejoin: function() {
- if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
- }
- };
- }
- function d3_geo_clipAreaRing(ring, invisible) {
- if (!(n = ring.length)) return 0;
- var n, i = 0, area = 0, p = ring[0], λ = p[0], φ = p[1], cosφ = Math.cos(φ), x0 = Math.atan2(invisible * Math.sin(λ) * cosφ, Math.sin(φ)), y0 = 1 - invisible * Math.cos(λ) * cosφ, x1 = x0, x, y;
- while (++i < n) {
- p = ring[i];
- cosφ = Math.cos(φ = p[1]);
- x = Math.atan2(invisible * Math.sin(λ = p[0]) * cosφ, Math.sin(φ));
- y = 1 - invisible * Math.cos(λ) * cosφ;
- if (Math.abs(y0 - 2) < ε && Math.abs(y - 2) < ε) continue;
- if (Math.abs(y) < ε || Math.abs(y0) < ε) {} else if (Math.abs(Math.abs(x - x0) - π) < ε) {
- if (y + y0 > 2) area += 4 * (x - x0);
- } else if (Math.abs(y0 - 2) < ε) area += 4 * (x - x1); else area += ((3 * π + x - x0) % (2 * π) - π) * (y0 + y);
- x1 = x0, x0 = x, y0 = y;
- }
- return area;
- }
- function d3_geo_clipSort(a, b) {
- return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]);
- }
- var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate);
- function d3_geo_clipAntimeridianLine(listener) {
- var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
- return {
- lineStart: function() {
- listener.lineStart();
- clean = 1;
- },
- point: function(λ1, φ1) {
- var sλ1 = λ1 > 0 ? π : -π, dλ = Math.abs(λ1 - λ0);
- if (Math.abs(dλ - π) < ε) {
- listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2);
- listener.point(sλ0, φ0);
- listener.lineEnd();
- listener.lineStart();
- listener.point(sλ1, φ0);
- listener.point(λ1, φ0);
- clean = 0;
- } else if (sλ0 !== sλ1 && dλ >= π) {
- if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
- if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
- φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
- listener.point(sλ0, φ0);
- listener.lineEnd();
- listener.lineStart();
- listener.point(sλ1, φ0);
- clean = 0;
- }
- listener.point(λ0 = λ1, φ0 = φ1);
- sλ0 = sλ1;
- },
- lineEnd: function() {
- listener.lineEnd();
- λ0 = φ0 = NaN;
- },
- clean: function() {
- return 2 - clean;
- }
- };
- }
- function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
- var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
- return Math.abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
- }
- function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
- var φ;
- if (from == null) {
- φ = direction * π / 2;
- listener.point(-π, φ);
- listener.point(0, φ);
- listener.point(π, φ);
- listener.point(π, 0);
- listener.point(π, -φ);
- listener.point(0, -φ);
- listener.point(-π, -φ);
- listener.point(-π, 0);
- listener.point(-π, φ);
- } else if (Math.abs(from[0] - to[0]) > ε) {
- var s = (from[0] < to[0] ? 1 : -1) * π;
- φ = direction * s / 2;
- listener.point(-s, φ);
- listener.point(0, φ);
- listener.point(s, φ);
- } else {
- listener.point(to[0], to[1]);
- }
- }
- function d3_geo_clipCircle(radius) {
- var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = Math.abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
- return d3_geo_clip(visible, clipLine, interpolate);
- function visible(λ, φ) {
- return Math.cos(λ) * Math.cos(φ) > cr;
- }
- function clipLine(listener) {
- var point0, c0, v0, v00, clean;
- return {
- lineStart: function() {
- v00 = v0 = false;
- clean = 1;
- },
- point: function(λ, φ) {
- var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
- if (!point0 && (v00 = v0 = v)) listener.lineStart();
- if (v !== v0) {
- point2 = intersect(point0, point1);
- if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
- point1[0] += ε;
- point1[1] += ε;
- v = visible(point1[0], point1[1]);
- }
- }
- if (v !== v0) {
- clean = 0;
- if (v) {
- listener.lineStart();
- point2 = intersect(point1, point0);
- listener.point(point2[0], point2[1]);
- } else {
- point2 = intersect(point0, point1);
- listener.point(point2[0], point2[1]);
- listener.lineEnd();
- }
- point0 = point2;
- } else if (notHemisphere && point0 && smallRadius ^ v) {
- var t;
- if (!(c & c0) && (t = intersect(point1, point0, true))) {
- clean = 0;
- if (smallRadius) {
- listener.lineStart();
- listener.point(t[0][0], t[0][1]);
- listener.point(t[1][0], t[1][1]);
- listener.lineEnd();
- } else {
- listener.point(t[1][0], t[1][1]);
- listener.lineEnd();
- listener.lineStart();
- listener.point(t[0][0], t[0][1]);
- }
- }
- }
- if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
- listener.point(point1[0], point1[1]);
- }
- point0 = point1, v0 = v, c0 = c;
- },
- lineEnd: function() {
- if (v0) listener.lineEnd();
- point0 = null;
- },
- clean: function() {
- return clean | (v00 && v0) << 1;
- }
- };
- }
- function intersect(a, b, two) {
- var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);
- var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
- if (!determinant) return !two && a;
- var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
- d3_geo_cartesianAdd(A, B);
- var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
- if (t2 < 0) return;
- var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);
- d3_geo_cartesianAdd(q, A);
- q = d3_geo_spherical(q);
- if (!two) return q;
- var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;
- if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
- var δλ = λ1 - λ0, polar = Math.abs(δλ - π) < ε, meridian = polar || δλ < ε;
- if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
- if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (Math.abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
- var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
- d3_geo_cartesianAdd(q1, A);
- return [ q, d3_geo_spherical(q1) ];
- }
- }
- function code(λ, φ) {
- var r = smallRadius ? radius : π - radius, code = 0;
- if (λ < -r) code |= 1; else if (λ > r) code |= 2;
- if (φ < -r) code |= 4; else if (φ > r) code |= 8;
- return code;
- }
- }
- var d3_geo_clipViewMAX = 1e9;
- function d3_geo_clipView(x0, y0, x1, y1) {
- return function(listener) {
- var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), segments, polygon, ring;
- var clip = {
- point: point,
- lineStart: lineStart,
- lineEnd: lineEnd,
- polygonStart: function() {
- listener = bufferListener;
- segments = [];
- polygon = [];
- },
- polygonEnd: function() {
- listener = listener_;
- if ((segments = d3.merge(segments)).length) {
- listener.polygonStart();
- d3_geo_clipPolygon(segments, compare, inside, interpolate, listener);
- listener.polygonEnd();
- } else if (insidePolygon([ x0, y0 ])) {
- listener.polygonStart(), listener.lineStart();
- interpolate(null, null, 1, listener);
- listener.lineEnd(), listener.polygonEnd();
- }
- segments = polygon = ring = null;
- }
- };
- function inside(point) {
- var a = corner(point, -1), i = insidePolygon([ a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0 ]);
- return i;
- }
- function insidePolygon(p) {
- var wn = 0, n = polygon.length, y = p[1];
- for (var i = 0; i < n; ++i) {
- for (var j = 1, v = polygon[i], m = v.length, a = v[0]; j < m; ++j) {
- b = v[j];
- if (a[1] <= y) {
- if (b[1] > y && isLeft(a, b, p) > 0) ++wn;
- } else {
- if (b[1] <= y && isLeft(a, b, p) < 0) --wn;
- }
- a = b;
- }
- }
- return wn !== 0;
- }
- function isLeft(a, b, c) {
- return (b[0] - a[0]) * (c[1] - a[1]) - (c[0] - a[0]) * (b[1] - a[1]);
- }
- function interpolate(from, to, direction, listener) {
- var a = 0, a1 = 0;
- if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {
- do {
- listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
- } while ((a = (a + direction + 4) % 4) !== a1);
- } else {
- listener.point(to[0], to[1]);
- }
- }
- function visible(x, y) {
- return x0 <= x && x <= x1 && y0 <= y && y <= y1;
- }
- function point(x, y) {
- if (visible(x, y)) listener.point(x, y);
- }
- var x__, y__, v__, x_, y_, v_, first;
- function lineStart() {
- clip.point = linePoint;
- if (polygon) polygon.push(ring = []);
- first = true;
- v_ = false;
- x_ = y_ = NaN;
- }
- function lineEnd() {
- if (segments) {
- linePoint(x__, y__);
- if (v__ && v_) bufferListener.rejoin();
- segments.push(bufferListener.buffer());
- }
- clip.point = point;
- if (v_) listener.lineEnd();
- }
- function linePoint(x, y) {
- x = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, x));
- y = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, y));
- var v = visible(x, y);
- if (polygon) ring.push([ x, y ]);
- if (first) {
- x__ = x, y__ = y, v__ = v;
- first = false;
- if (v) {
- listener.lineStart();
- listener.point(x, y);
- }
- } else {
- if (v && v_) listener.point(x, y); else {
- var a = [ x_, y_ ], b = [ x, y ];
- if (clipLine(a, b)) {
- if (!v_) {
- listener.lineStart();
- listener.point(a[0], a[1]);
- }
- listener.point(b[0], b[1]);
- if (!v) listener.lineEnd();
- } else {
- listener.lineStart();
- listener.point(x, y);
- }
- }
- }
- x_ = x, y_ = y, v_ = v;
- }
- return clip;
- };
- function corner(p, direction) {
- return Math.abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : Math.abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : Math.abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;
- }
- function compare(a, b) {
- return comparePoints(a.point, b.point);
- }
- function comparePoints(a, b) {
- var ca = corner(a, 1), cb = corner(b, 1);
- return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
- }
- function clipLine(a, b) {
- var dx = b[0] - a[0], dy = b[1] - a[1], t = [ 0, 1 ];
- if (Math.abs(dx) < ε && Math.abs(dy) < ε) return x0 <= a[0] && a[0] <= x1 && y0 <= a[1] && a[1] <= y1;
- if (d3_geo_clipViewT(x0 - a[0], dx, t) && d3_geo_clipViewT(a[0] - x1, -dx, t) && d3_geo_clipViewT(y0 - a[1], dy, t) && d3_geo_clipViewT(a[1] - y1, -dy, t)) {
- if (t[1] < 1) {
- b[0] = a[0] + t[1] * dx;
- b[1] = a[1] + t[1] * dy;
- }
- if (t[0] > 0) {
- a[0] += t[0] * dx;
- a[1] += t[0] * dy;
- }
- return true;
- }
- return false;
- }
- }
- function d3_geo_clipViewT(num, denominator, t) {
- if (Math.abs(denominator) < ε) return num <= 0;
- var u = num / denominator;
- if (denominator > 0) {
- if (u > t[1]) return false;
- if (u > t[0]) t[0] = u;
- } else {
- if (u < t[0]) return false;
- if (u < t[1]) t[1] = u;
- }
- return true;
- }
- function d3_geo_compose(a, b) {
- function compose(x, y) {
- return x = a(x, y), b(x[0], x[1]);
- }
- if (a.invert && b.invert) compose.invert = function(x, y) {
- return x = b.invert(x, y), x && a.invert(x[0], x[1]);
- };
- return compose;
- }
- function d3_geo_resample(project) {
- var δ2 = .5, maxDepth = 16;
- function resample(stream) {
- var λ0, x0, y0, a0, b0, c0;
- var resample = {
- point: point,
- lineStart: lineStart,
- lineEnd: lineEnd,
- polygonStart: function() {
- stream.polygonStart();
- resample.lineStart = polygonLineStart;
- },
- polygonEnd: function() {
- stream.polygonEnd();
- resample.lineStart = lineStart;
- }
- };
- function point(x, y) {
- x = project(x, y);
- stream.point(x[0], x[1]);
- }
- function lineStart() {
- x0 = NaN;
- resample.point = linePoint;
- stream.lineStart();
- }
- function linePoint(λ, φ) {
- var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
- resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
- stream.point(x0, y0);
- }
- function lineEnd() {
- resample.point = point;
- stream.lineEnd();
- }
- function polygonLineStart() {
- var λ00, φ00, x00, y00, a00, b00, c00;
- lineStart();
- resample.point = function(λ, φ) {
- linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
- resample.point = linePoint;
- };
- resample.lineEnd = function() {
- resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
- resample.lineEnd = lineEnd;
- lineEnd();
- };
- }
- return resample;
- }
- function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
- var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
- if (d2 > 4 * δ2 && depth--) {
- var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
- if (dz * dz / d2 > δ2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3) {
- resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
- stream.point(x2, y2);
- resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
- }
- }
- }
- resample.precision = function(_) {
- if (!arguments.length) return Math.sqrt(δ2);
- maxDepth = (δ2 = _ * _) > 0 && 16;
- return resample;
- };
- return resample;
- }
- d3.geo.projection = d3_geo_projection;
- d3.geo.projectionMutator = d3_geo_projectionMutator;
- function d3_geo_projection(project) {
- return d3_geo_projectionMutator(function() {
- return project;
- })();
- }
- function d3_geo_projectionMutator(projectAt) {
- var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
- x = project(x, y);
- return [ x[0] * k + δx, δy - x[1] * k ];
- }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null;
- function projection(point) {
- point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
- return [ point[0] * k + δx, δy - point[1] * k ];
- }
- function invert(point) {
- point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
- return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
- }
- projection.stream = function(stream) {
- return d3_geo_projectionRadiansRotate(rotate, preclip(projectResample(postclip(stream))));
- };
- projection.clipAngle = function(_) {
- if (!arguments.length) return clipAngle;
- preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
- return projection;
- };
- projection.clipExtent = function(_) {
- if (!arguments.length) return clipExtent;
- clipExtent = _;
- postclip = _ == null ? d3_identity : d3_geo_clipView(_[0][0], _[0][1], _[1][0], _[1][1]);
- return projection;
- };
- projection.scale = function(_) {
- if (!arguments.length) return k;
- k = +_;
- return reset();
- };
- projection.translate = function(_) {
- if (!arguments.length) return [ x, y ];
- x = +_[0];
- y = +_[1];
- return reset();
- };
- projection.center = function(_) {
- if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
- λ = _[0] % 360 * d3_radians;
- φ = _[1] % 360 * d3_radians;
- return reset();
- };
- projection.rotate = function(_) {
- if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
- δλ = _[0] % 360 * d3_radians;
- δφ = _[1] % 360 * d3_radians;
- δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
- return reset();
- };
- d3.rebind(projection, projectResample, "precision");
- function reset() {
- projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
- var center = project(λ, φ);
- δx = x - center[0] * k;
- δy = y + center[1] * k;
- return projection;
- }
- return function() {
- project = projectAt.apply(this, arguments);
- projection.invert = project.invert && invert;
- return reset();
- };
- }
- function d3_geo_projectionRadiansRotate(rotate, stream) {
- return {
- point: function(x, y) {
- y = rotate(x * d3_radians, y * d3_radians), x = y[0];
- stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]);
- },
- sphere: function() {
- stream.sphere();
- },
- lineStart: function() {
- stream.lineStart();
- },
- lineEnd: function() {
- stream.lineEnd();
- },
- polygonStart: function() {
- stream.polygonStart();
- },
- polygonEnd: function() {
- stream.polygonEnd();
- }
- };
- }
- function d3_geo_equirectangular(λ, φ) {
- return [ λ, φ ];
- }
- (d3.geo.equirectangular = function() {
- return d3_geo_projection(d3_geo_equirectangular);
- }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
- d3.geo.rotation = function(rotate) {
- rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
- function forward(coordinates) {
- coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
- return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
- }
- forward.invert = function(coordinates) {
- coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
- return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
- };
- return forward;
- };
- function d3_geo_rotation(δλ, δφ, δγ) {
- return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_equirectangular;
- }
- function d3_geo_forwardRotationλ(δλ) {
- return function(λ, φ) {
- return λ += δλ, [ λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ ];
- };
- }
- function d3_geo_rotationλ(δλ) {
- var rotation = d3_geo_forwardRotationλ(δλ);
- rotation.invert = d3_geo_forwardRotationλ(-δλ);
- return rotation;
- }
- function d3_geo_rotationφγ(δφ, δγ) {
- var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
- function rotation(λ, φ) {
- var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
- return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδγ + y * sinδγ))) ];
- }
- rotation.invert = function(λ, φ) {
- var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
- return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδφ - x * sinδφ))) ];
- };
- return rotation;
- }
- d3.geo.circle = function() {
- var origin = [ 0, 0 ], angle, precision = 6, interpolate;
- function circle() {
- var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
- interpolate(null, null, 1, {
- point: function(x, y) {
- ring.push(x = rotate(x, y));
- x[0] *= d3_degrees, x[1] *= d3_degrees;
- }
- });
- return {
- type: "Polygon",
- coordinates: [ ring ]
- };
- }
- circle.origin = function(x) {
- if (!arguments.length) return origin;
- origin = x;
- return circle;
- };
- circle.angle = function(x) {
- if (!arguments.length) return angle;
- interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
- return circle;
- };
- circle.precision = function(_) {
- if (!arguments.length) return precision;
- interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
- return circle;
- };
- return circle.angle(90);
- };
- function d3_geo_circleInterpolate(radius, precision) {
- var cr = Math.cos(radius), sr = Math.sin(radius);
- return function(from, to, direction, listener) {
- if (from != null) {
- from = d3_geo_circleAngle(cr, from);
- to = d3_geo_circleAngle(cr, to);
- if (direction > 0 ? from < to : from > to) from += direction * 2 * π;
- } else {
- from = radius + direction * 2 * π;
- to = radius;
- }
- var point;
- for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) {
- listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
- }
- };
- }
- function d3_geo_circleAngle(cr, point) {
- var a = d3_geo_cartesian(point);
- a[0] -= cr;
- d3_geo_cartesianNormalize(a);
- var angle = d3_acos(-a[1]);
- return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
- }
- d3.geo.distance = function(a, b) {
- var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;
- return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);
- };
- d3.geo.graticule = function() {
- var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;
- function graticule() {
- return {
- type: "MultiLineString",
- coordinates: lines()
- };
- }
- function lines() {
- return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {
- return Math.abs(x % DX) > ε;
- }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {
- return Math.abs(y % DY) > ε;
- }).map(y));
- }
- graticule.lines = function() {
- return lines().map(function(coordinates) {
- return {
- type: "LineString",
- coordinates: coordinates
- };
- });
- };
- graticule.outline = function() {
- return {
- type: "Polygon",
- coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]
- };
- };
- graticule.extent = function(_) {
- if (!arguments.length) return graticule.minorExtent();
- return graticule.majorExtent(_).minorExtent(_);
- };
- graticule.majorExtent = function(_) {
- if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];
- X0 = +_[0][0], X1 = +_[1][0];
- Y0 = +_[0][1], Y1 = +_[1][1];
- if (X0 > X1) _ = X0, X0 = X1, X1 = _;
- if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
- return graticule.precision(precision);
- };
- graticule.minorExtent = function(_) {
- if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
- x0 = +_[0][0], x1 = +_[1][0];
- y0 = +_[0][1], y1 = +_[1][1];
- if (x0 > x1) _ = x0, x0 = x1, x1 = _;
- if (y0 > y1) _ = y0, y0 = y1, y1 = _;
- return graticule.precision(precision);
- };
- graticule.step = function(_) {
- if (!arguments.length) return graticule.minorStep();
- return graticule.majorStep(_).minorStep(_);
- };
- graticule.majorStep = function(_) {
- if (!arguments.length) return [ DX, DY ];
- DX = +_[0], DY = +_[1];
- return graticule;
- };
- graticule.minorStep = function(_) {
- if (!arguments.length) return [ dx, dy ];
- dx = +_[0], dy = +_[1];
- return graticule;
- };
- graticule.precision = function(_) {
- if (!arguments.length) return precision;
- precision = +_;
- x = d3_geo_graticuleX(y0, y1, 90);
- y = d3_geo_graticuleY(x0, x1, precision);
- X = d3_geo_graticuleX(Y0, Y1, 90);
- Y = d3_geo_graticuleY(X0, X1, precision);
- return graticule;
- };
- return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);
- };
- function d3_geo_graticuleX(y0, y1, dy) {
- var y = d3.range(y0, y1 - ε, dy).concat(y1);
- return function(x) {
- return y.map(function(y) {
- return [ x, y ];
- });
- };
- }
- function d3_geo_graticuleY(x0, x1, dx) {
- var x = d3.range(x0, x1 - ε, dx).concat(x1);
- return function(y) {
- return x.map(function(x) {
- return [ x, y ];
- });
- };
- }
- function d3_source(d) {
- return d.source;
- }
- function d3_target(d) {
- return d.target;
- }
- d3.geo.greatArc = function() {
- var source = d3_source, source_, target = d3_target, target_;
- function greatArc() {
- return {
- type: "LineString",
- coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]
- };
- }
- greatArc.distance = function() {
- return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));
- };
- greatArc.source = function(_) {
- if (!arguments.length) return source;
- source = _, source_ = typeof _ === "function" ? null : _;
- return greatArc;
- };
- greatArc.target = function(_) {
- if (!arguments.length) return target;
- target = _, target_ = typeof _ === "function" ? null : _;
- return greatArc;
- };
- greatArc.precision = function() {
- return arguments.length ? greatArc : 0;
- };
- return greatArc;
- };
- d3.geo.interpolate = function(source, target) {
- return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
- };
- function d3_geo_interpolate(x0, y0, x1, y1) {
- var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);
- var interpolate = d ? function(t) {
- var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
- return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
- } : function() {
- return [ x0 * d3_degrees, y0 * d3_degrees ];
- };
- interpolate.distance = d;
- return interpolate;
- }
- d3.geo.length = function(object) {
- d3_geo_lengthSum = 0;
- d3.geo.stream(object, d3_geo_length);
- return d3_geo_lengthSum;
- };
- var d3_geo_lengthSum;
- var d3_geo_length = {
- sphere: d3_noop,
- point: d3_noop,
- lineStart: d3_geo_lengthLineStart,
- lineEnd: d3_noop,
- polygonStart: d3_noop,
- polygonEnd: d3_noop
- };
- function d3_geo_lengthLineStart() {
- var λ0, sinφ0, cosφ0;
- d3_geo_length.point = function(λ, φ) {
- λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);
- d3_geo_length.point = nextPoint;
- };
- d3_geo_length.lineEnd = function() {
- d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;
- };
- function nextPoint(λ, φ) {
- var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = Math.abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);
- d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);
- λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;
- }
- }
- function d3_geo_conic(projectAt) {
- var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
- p.parallels = function(_) {
- if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];
- return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
- };
- return p;
- }
- function d3_geo_conicEqualArea(φ0, φ1) {
- var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
- function forward(λ, φ) {
- var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
- return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
- }
- forward.invert = function(x, y) {
- var ρ0_y = ρ0 - y;
- return [ Math.atan2(x, ρ0_y) / n, Math.asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
- };
- return forward;
- }
- (d3.geo.conicEqualArea = function() {
- return d3_geo_conic(d3_geo_conicEqualArea);
- }).raw = d3_geo_conicEqualArea;
- d3.geo.albersUsa = function() {
- var lower48 = d3.geo.conicEqualArea().rotate([ 98, 0 ]).center([ 0, 38 ]).parallels([ 29.5, 45.5 ]);
- var alaska = d3.geo.conicEqualArea().rotate([ 160, 0 ]).center([ 0, 60 ]).parallels([ 55, 65 ]);
- var hawaii = d3.geo.conicEqualArea().rotate([ 160, 0 ]).center([ 0, 20 ]).parallels([ 8, 18 ]);
- var puertoRico = d3.geo.conicEqualArea().rotate([ 60, 0 ]).center([ 0, 10 ]).parallels([ 8, 18 ]);
- var alaskaInvert, hawaiiInvert, puertoRicoInvert;
- function albersUsa(coordinates) {
- return projection(coordinates)(coordinates);
- }
- function projection(point) {
- var lon = point[0], lat = point[1];
- return lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48;
- }
- albersUsa.invert = function(coordinates) {
- return alaskaInvert(coordinates) || hawaiiInvert(coordinates) || puertoRicoInvert(coordinates) || lower48.invert(coordinates);
- };
- albersUsa.scale = function(x) {
- if (!arguments.length) return lower48.scale();
- lower48.scale(x);
- alaska.scale(x * .6);
- hawaii.scale(x);
- puertoRico.scale(x * 1.5);
- return albersUsa.translate(lower48.translate());
- };
- albersUsa.translate = function(x) {
- if (!arguments.length) return lower48.translate();
- var dz = lower48.scale(), dx = x[0], dy = x[1];
- lower48.translate(x);
- alaska.translate([ dx - .4 * dz, dy + .17 * dz ]);
- hawaii.translate([ dx - .19 * dz, dy + .2 * dz ]);
- puertoRico.translate([ dx + .58 * dz, dy + .43 * dz ]);
- alaskaInvert = d3_geo_albersUsaInvert(alaska, [ [ -180, 50 ], [ -130, 72 ] ]);
- hawaiiInvert = d3_geo_albersUsaInvert(hawaii, [ [ -164, 18 ], [ -154, 24 ] ]);
- puertoRicoInvert = d3_geo_albersUsaInvert(puertoRico, [ [ -67.5, 17.5 ], [ -65, 19 ] ]);
- return albersUsa;
- };
- return albersUsa.scale(1e3);
- };
- function d3_geo_albersUsaInvert(projection, extent) {
- var a = projection(extent[0]), b = projection([ .5 * (extent[0][0] + extent[1][0]), extent[0][1] ]), c = projection([ extent[1][0], extent[0][1] ]), d = projection(extent[1]);
- var dya = b[1] - a[1], dxa = b[0] - a[0], dyb = c[1] - b[1], dxb = c[0] - b[0];
- var ma = dya / dxa, mb = dyb / dxb;
- var cx = .5 * (ma * mb * (a[1] - c[1]) + mb * (a[0] + b[0]) - ma * (b[0] + c[0])) / (mb - ma), cy = (.5 * (a[0] + b[0]) - cx) / ma + .5 * (a[1] + b[1]);
- var dx0 = d[0] - cx, dy0 = d[1] - cy, dx1 = a[0] - cx, dy1 = a[1] - cy, r0 = dx0 * dx0 + dy0 * dy0, r1 = dx1 * dx1 + dy1 * dy1;
- var a0 = Math.atan2(dy0, dx0), a1 = Math.atan2(dy1, dx1);
- return function(coordinates) {
- var dx = coordinates[0] - cx, dy = coordinates[1] - cy, r = dx * dx + dy * dy, a = Math.atan2(dy, dx);
- if (r0 < r && r < r1 && a0 < a && a < a1) return projection.invert(coordinates);
- };
- }
- var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
- point: d3_noop,
- lineStart: d3_noop,
- lineEnd: d3_noop,
- polygonStart: function() {
- d3_geo_pathAreaPolygon = 0;
- d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
- },
- polygonEnd: function() {
- d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
- d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
- }
- };
- function d3_geo_pathAreaRingStart() {
- var x00, y00, x0, y0;
- d3_geo_pathArea.point = function(x, y) {
- d3_geo_pathArea.point = nextPoint;
- x00 = x0 = x, y00 = y0 = y;
- };
- function nextPoint(x, y) {
- d3_geo_pathAreaPolygon += y0 * x - x0 * y;
- x0 = x, y0 = y;
- }
- d3_geo_pathArea.lineEnd = function() {
- nextPoint(x00, y00);
- };
- }
- function d3_geo_pathBuffer() {
- var pointCircle = d3_geo_pathCircle(4.5), buffer = [];
- var stream = {
- point: point,
- lineStart: function() {
- stream.point = pointLineStart;
- },
- lineEnd: lineEnd,
- polygonStart: function() {
- stream.lineEnd = lineEndPolygon;
- },
- polygonEnd: function() {
- stream.lineEnd = lineEnd;
- stream.point = point;
- },
- pointRadius: function(_) {
- pointCircle = d3_geo_pathCircle(_);
- return stream;
- },
- result: function() {
- if (buffer.length) {
- var result = buffer.join("");
- buffer = [];
- return result;
- }
- }
- };
- function point(x, y) {
- buffer.push("M", x, ",", y, pointCircle);
- }
- function pointLineStart(x, y) {
- buffer.push("M", x, ",", y);
- stream.point = pointLine;
- }
- function pointLine(x, y) {
- buffer.push("L", x, ",", y);
- }
- function lineEnd() {
- stream.point = point;
- }
- function lineEndPolygon() {
- buffer.push("Z");
- }
- return stream;
- }
- var d3_geo_pathCentroid = {
- point: d3_geo_pathCentroidPoint,
- lineStart: d3_geo_pathCentroidLineStart,
- lineEnd: d3_geo_pathCentroidLineEnd,
- polygonStart: function() {
- d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
- },
- polygonEnd: function() {
- d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
- d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
- d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
- }
- };
- function d3_geo_pathCentroidPoint(x, y) {
- if (d3_geo_centroidDimension) return;
- d3_geo_centroidX += x;
- d3_geo_centroidY += y;
- ++d3_geo_centroidZ;
- }
- function d3_geo_pathCentroidLineStart() {
- var x0, y0;
- if (d3_geo_centroidDimension !== 1) {
- if (d3_geo_centroidDimension < 1) {
- d3_geo_centroidDimension = 1;
- d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
- } else return;
- }
- d3_geo_pathCentroid.point = function(x, y) {
- d3_geo_pathCentroid.point = nextPoint;
- x0 = x, y0 = y;
- };
- function nextPoint(x, y) {
- var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
- d3_geo_centroidX += z * (x0 + x) / 2;
- d3_geo_centroidY += z * (y0 + y) / 2;
- d3_geo_centroidZ += z;
- x0 = x, y0 = y;
- }
- }
- function d3_geo_pathCentroidLineEnd() {
- d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
- }
- function d3_geo_pathCentroidRingStart() {
- var x00, y00, x0, y0;
- if (d3_geo_centroidDimension < 2) {
- d3_geo_centroidDimension = 2;
- d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
- }
- d3_geo_pathCentroid.point = function(x, y) {
- d3_geo_pathCentroid.point = nextPoint;
- x00 = x0 = x, y00 = y0 = y;
- };
- function nextPoint(x, y) {
- var z = y0 * x - x0 * y;
- d3_geo_centroidX += z * (x0 + x);
- d3_geo_centroidY += z * (y0 + y);
- d3_geo_centroidZ += z * 3;
- x0 = x, y0 = y;
- }
- d3_geo_pathCentroid.lineEnd = function() {
- nextPoint(x00, y00);
- };
- }
- function d3_geo_pathContext(context) {
- var pointRadius = 4.5;
- var stream = {
- point: point,
- lineStart: function() {
- stream.point = pointLineStart;
- },
- lineEnd: lineEnd,
- polygonStart: function() {
- stream.lineEnd = lineEndPolygon;
- },
- polygonEnd: function() {
- stream.lineEnd = lineEnd;
- stream.point = point;
- },
- pointRadius: function(_) {
- pointRadius = _;
- return stream;
- },
- result: d3_noop
- };
- function point(x, y) {
- context.moveTo(x, y);
- context.arc(x, y, pointRadius, 0, 2 * π);
- }
- function pointLineStart(x, y) {
- context.moveTo(x, y);
- stream.point = pointLine;
- }
- function pointLine(x, y) {
- context.lineTo(x, y);
- }
- function lineEnd() {
- stream.point = point;
- }
- function lineEndPolygon() {
- context.closePath();
- }
- return stream;
- }
- d3.geo.path = function() {
- var pointRadius = 4.5, projection, context, projectStream, contextStream;
- function path(object) {
- if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius)));
- return contextStream.result();
- }
- path.area = function(object) {
- d3_geo_pathAreaSum = 0;
- d3.geo.stream(object, projectStream(d3_geo_pathArea));
- return d3_geo_pathAreaSum;
- };
- path.centroid = function(object) {
- d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
- d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
- return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined;
- };
- path.bounds = function(object) {
- return d3_geo_bounds(projectStream)(object);
- };
- path.projection = function(_) {
- if (!arguments.length) return projection;
- projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
- return path;
- };
- path.context = function(_) {
- if (!arguments.length) return context;
- contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
- return path;
- };
- path.pointRadius = function(_) {
- if (!arguments.length) return pointRadius;
- pointRadius = typeof _ === "function" ? _ : +_;
- return path;
- };
- return path.projection(d3.geo.albersUsa()).context(null);
- };
- function d3_geo_pathCircle(radius) {
- return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z";
- }
- function d3_geo_pathProjectStream(project) {
- var resample = d3_geo_resample(function(λ, φ) {
- return project([ λ * d3_degrees, φ * d3_degrees ]);
- });
- return function(stream) {
- stream = resample(stream);
- return {
- point: function(λ, φ) {
- stream.point(λ * d3_radians, φ * d3_radians);
- },
- sphere: function() {
- stream.sphere();
- },
- lineStart: function() {
- stream.lineStart();
- },
- lineEnd: function() {
- stream.lineEnd();
- },
- polygonStart: function() {
- stream.polygonStart();
- },
- polygonEnd: function() {
- stream.polygonEnd();
- }
- };
- };
- }
- d3.geo.albers = function() {
- return d3.geo.conicEqualArea().parallels([ 29.5, 45.5 ]).rotate([ 98, 0 ]).center([ 0, 38 ]).scale(1e3);
- };
- function d3_geo_azimuthal(scale, angle) {
- function azimuthal(λ, φ) {
- var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
- return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
- }
- azimuthal.invert = function(x, y) {
- var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
- return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
- };
- return azimuthal;
- }
- var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
- return Math.sqrt(2 / (1 + cosλcosφ));
- }, function(ρ) {
- return 2 * Math.asin(ρ / 2);
- });
- (d3.geo.azimuthalEqualArea = function() {
- return d3_geo_projection(d3_geo_azimuthalEqualArea);
- }).raw = d3_geo_azimuthalEqualArea;
- var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
- var c = Math.acos(cosλcosφ);
- return c && c / Math.sin(c);
- }, d3_identity);
- (d3.geo.azimuthalEquidistant = function() {
- return d3_geo_projection(d3_geo_azimuthalEquidistant);
- }).raw = d3_geo_azimuthalEquidistant;
- function d3_geo_conicConformal(φ0, φ1) {
- var cosφ0 = Math.cos(φ0), t = function(φ) {
- return Math.tan(π / 4 + φ / 2);
- }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
- if (!n) return d3_geo_mercator;
- function forward(λ, φ) {
- var ρ = Math.abs(Math.abs(φ) - π / 2) < ε ? 0 : F / Math.pow(t(φ), n);
- return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
- }
- forward.invert = function(x, y) {
- var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);
- return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - π / 2 ];
- };
- return forward;
- }
- (d3.geo.conicConformal = function() {
- return d3_geo_conic(d3_geo_conicConformal);
- }).raw = d3_geo_conicConformal;
- function d3_geo_conicEquidistant(φ0, φ1) {
- var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;
- if (Math.abs(n) < ε) return d3_geo_equirectangular;
- function forward(λ, φ) {
- var ρ = G - φ;
- return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];
- }
- forward.invert = function(x, y) {
- var ρ0_y = G - y;
- return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];
- };
- return forward;
- }
- (d3.geo.conicEquidistant = function() {
- return d3_geo_conic(d3_geo_conicEquidistant);
- }).raw = d3_geo_conicEquidistant;
- var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
- return 1 / cosλcosφ;
- }, Math.atan);
- (d3.geo.gnomonic = function() {
- return d3_geo_projection(d3_geo_gnomonic);
- }).raw = d3_geo_gnomonic;
- function d3_geo_mercator(λ, φ) {
- return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];
- }
- d3_geo_mercator.invert = function(x, y) {
- return [ x, 2 * Math.atan(Math.exp(y)) - π / 2 ];
- };
- function d3_geo_mercatorProjection(project) {
- var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;
- m.scale = function() {
- var v = scale.apply(m, arguments);
- return v === m ? clipAuto ? m.clipExtent(null) : m : v;
- };
- m.translate = function() {
- var v = translate.apply(m, arguments);
- return v === m ? clipAuto ? m.clipExtent(null) : m : v;
- };
- m.clipExtent = function(_) {
- var v = clipExtent.apply(m, arguments);
- if (v === m) {
- if (clipAuto = _ == null) {
- var k = π * scale(), t = translate();
- clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);
- }
- } else if (clipAuto) {
- v = null;
- }
- return v;
- };
- return m.clipExtent(null);
- }
- (d3.geo.mercator = function() {
- return d3_geo_mercatorProjection(d3_geo_mercator);
- }).raw = d3_geo_mercator;
- var d3_geo_orthographic = d3_geo_azimuthal(function() {
- return 1;
- }, Math.asin);
- (d3.geo.orthographic = function() {
- return d3_geo_projection(d3_geo_orthographic);
- }).raw = d3_geo_orthographic;
- var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
- return 1 / (1 + cosλcosφ);
- }, function(ρ) {
- return 2 * Math.atan(ρ);
- });
- (d3.geo.stereographic = function() {
- return d3_geo_projection(d3_geo_stereographic);
- }).raw = d3_geo_stereographic;
- function d3_geo_transverseMercator(λ, φ) {
- var B = Math.cos(φ) * Math.sin(λ);
- return [ Math.log((1 + B) / (1 - B)) / 2, Math.atan2(Math.tan(φ), Math.cos(λ)) ];
- }
- d3_geo_transverseMercator.invert = function(x, y) {
- return [ Math.atan2(d3_sinh(x), Math.cos(y)), d3_asin(Math.sin(y) / d3_cosh(x)) ];
- };
- (d3.geo.transverseMercator = function() {
- return d3_geo_mercatorProjection(d3_geo_transverseMercator);
- }).raw = d3_geo_transverseMercator;
- d3.geom = {};
- d3.svg = {};
- function d3_svg_line(projection) {
- var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
- function line(data) {
- var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
- function segment() {
- segments.push("M", interpolate(projection(points), tension));
- }
- while (++i < n) {
- if (defined.call(this, d = data[i], i)) {
- points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
- } else if (points.length) {
- segment();
- points = [];
- }
- }
- if (points.length) segment();
- return segments.length ? segments.join("") : null;
- }
- line.x = function(_) {
- if (!arguments.length) return x;
- x = _;
- return line;
- };
- line.y = function(_) {
- if (!arguments.length) return y;
- y = _;
- return line;
- };
- line.defined = function(_) {
- if (!arguments.length) return defined;
- defined = _;
- return line;
- };
- line.interpolate = function(_) {
- if (!arguments.length) return interpolateKey;
- if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
- return line;
- };
- line.tension = function(_) {
- if (!arguments.length) return tension;
- tension = _;
- return line;
- };
- return line;
- }
- d3.svg.line = function() {
- return d3_svg_line(d3_identity);
- };
- function d3_svg_lineX(d) {
- return d[0];
- }
- function d3_svg_lineY(d) {
- return d[1];
- }
- var d3_svg_lineInterpolators = d3.map({
- linear: d3_svg_lineLinear,
- "linear-closed": d3_svg_lineLinearClosed,
- "step-before": d3_svg_lineStepBefore,
- "step-after": d3_svg_lineStepAfter,
- basis: d3_svg_lineBasis,
- "basis-open": d3_svg_lineBasisOpen,
- "basis-closed": d3_svg_lineBasisClosed,
- bundle: d3_svg_lineBundle,
- cardinal: d3_svg_lineCardinal,
- "cardinal-open": d3_svg_lineCardinalOpen,
- "cardinal-closed": d3_svg_lineCardinalClosed,
- monotone: d3_svg_lineMonotone
- });
- d3_svg_lineInterpolators.forEach(function(key, value) {
- value.key = key;
- value.closed = /-closed$/.test(key);
- });
- function d3_svg_lineLinear(points) {
- return points.join("L");
- }
- function d3_svg_lineLinearClosed(points) {
- return d3_svg_lineLinear(points) + "Z";
- }
- function d3_svg_lineStepBefore(points) {
- var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
- while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
- return path.join("");
- }
- function d3_svg_lineStepAfter(points) {
- var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
- while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
- return path.join("");
- }
- function d3_svg_lineCardinalOpen(points, tension) {
- return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
- }
- function d3_svg_lineCardinalClosed(points, tension) {
- return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
- points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
- }
- function d3_svg_lineCardinal(points, tension) {
- return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
- }
- function d3_svg_lineHermite(points, tangents) {
- if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
- return d3_svg_lineLinear(points);
- }
- var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
- if (quad) {
- path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
- p0 = points[1];
- pi = 2;
- }
- if (tangents.length > 1) {
- t = tangents[1];
- p = points[pi];
- pi++;
- path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
- for (var i = 2; i < tangents.length; i++, pi++) {
- p = points[pi];
- t = tangents[i];
- path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
- }
- }
- if (quad) {
- var lp = points[pi];
- path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
- }
- return path;
- }
- function d3_svg_lineCardinalTangents(points, tension) {
- var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
- while (++i < n) {
- p0 = p1;
- p1 = p2;
- p2 = points[i];
- tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
- }
- return tangents;
- }
- function d3_svg_lineBasis(points) {
- if (points.length < 3) return d3_svg_lineLinear(points);
- var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
- d3_svg_lineBasisBezier(path, px, py);
- while (++i < n) {
- pi = points[i];
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- i = -1;
- while (++i < 2) {
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- return path.join("");
- }
- function d3_svg_lineBasisOpen(points) {
- if (points.length < 4) return d3_svg_lineLinear(points);
- var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
- while (++i < 3) {
- pi = points[i];
- px.push(pi[0]);
- py.push(pi[1]);
- }
- path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
- --i;
- while (++i < n) {
- pi = points[i];
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- return path.join("");
- }
- function d3_svg_lineBasisClosed(points) {
- var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
- while (++i < 4) {
- pi = points[i % n];
- px.push(pi[0]);
- py.push(pi[1]);
- }
- path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
- --i;
- while (++i < m) {
- pi = points[i % n];
- px.shift();
- px.push(pi[0]);
- py.shift();
- py.push(pi[1]);
- d3_svg_lineBasisBezier(path, px, py);
- }
- return path.join("");
- }
- function d3_svg_lineBundle(points, tension) {
- var n = points.length - 1;
- if (n) {
- var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
- while (++i <= n) {
- p = points[i];
- t = i / n;
- p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
- p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
- }
- }
- return d3_svg_lineBasis(points);
- }
- function d3_svg_lineDot4(a, b) {
- return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
- }
- var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
- function d3_svg_lineBasisBezier(path, x, y) {
- path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
- }
- function d3_svg_lineSlope(p0, p1) {
- return (p1[1] - p0[1]) / (p1[0] - p0[0]);
- }
- function d3_svg_lineFiniteDifferences(points) {
- var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
- while (++i < j) {
- m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
- }
- m[i] = d;
- return m;
- }
- function d3_svg_lineMonotoneTangents(points) {
- var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
- while (++i < j) {
- d = d3_svg_lineSlope(points[i], points[i + 1]);
- if (Math.abs(d) < 1e-6) {
- m[i] = m[i + 1] = 0;
- } else {
- a = m[i] / d;
- b = m[i + 1] / d;
- s = a * a + b * b;
- if (s > 9) {
- s = d * 3 / Math.sqrt(s);
- m[i] = s * a;
- m[i + 1] = s * b;
- }
- }
- }
- i = -1;
- while (++i <= j) {
- s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
- tangents.push([ s || 0, m[i] * s || 0 ]);
- }
- return tangents;
- }
- function d3_svg_lineMonotone(points) {
- return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
- }
- d3.geom.hull = function(vertices) {
- var x = d3_svg_lineX, y = d3_svg_lineY;
- if (arguments.length) return hull(vertices);
- function hull(data) {
- if (data.length < 3) return [];
- var fx = d3_functor(x), fy = d3_functor(y), n = data.length, vertices, plen = n - 1, points = [], stack = [], d, i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
- if (fx === d3_svg_lineX && y === d3_svg_lineY) vertices = data; else for (i = 0,
- vertices = []; i < n; ++i) {
- vertices.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
- }
- for (i = 1; i < n; ++i) {
- if (vertices[i][1] < vertices[h][1]) {
- h = i;
- } else if (vertices[i][1] == vertices[h][1]) {
- h = vertices[i][0] < vertices[h][0] ? i : h;
- }
- }
- for (i = 0; i < n; ++i) {
- if (i === h) continue;
- y1 = vertices[i][1] - vertices[h][1];
- x1 = vertices[i][0] - vertices[h][0];
- points.push({
- angle: Math.atan2(y1, x1),
- index: i
- });
- }
- points.sort(function(a, b) {
- return a.angle - b.angle;
- });
- a = points[0].angle;
- v = points[0].index;
- u = 0;
- for (i = 1; i < plen; ++i) {
- j = points[i].index;
- if (a == points[i].angle) {
- x1 = vertices[v][0] - vertices[h][0];
- y1 = vertices[v][1] - vertices[h][1];
- x2 = vertices[j][0] - vertices[h][0];
- y2 = vertices[j][1] - vertices[h][1];
- if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
- points[i].index = -1;
- } else {
- points[u].index = -1;
- a = points[i].angle;
- u = i;
- v = j;
- }
- } else {
- a = points[i].angle;
- u = i;
- v = j;
- }
- }
- stack.push(h);
- for (i = 0, j = 0; i < 2; ++j) {
- if (points[j].index !== -1) {
- stack.push(points[j].index);
- i++;
- }
- }
- sp = stack.length;
- for (;j < plen; ++j) {
- if (points[j].index === -1) continue;
- while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
- --sp;
- }
- stack[sp++] = points[j].index;
- }
- var poly = [];
- for (i = 0; i < sp; ++i) {
- poly.push(data[stack[i]]);
- }
- return poly;
- }
- hull.x = function(_) {
- return arguments.length ? (x = _, hull) : x;
- };
- hull.y = function(_) {
- return arguments.length ? (y = _, hull) : y;
- };
- return hull;
- };
- function d3_geom_hullCCW(i1, i2, i3, v) {
- var t, a, b, c, d, e, f;
- t = v[i1];
- a = t[0];
- b = t[1];
- t = v[i2];
- c = t[0];
- d = t[1];
- t = v[i3];
- e = t[0];
- f = t[1];
- return (f - b) * (c - a) - (d - b) * (e - a) > 0;
- }
- d3.geom.polygon = function(coordinates) {
- coordinates.area = function() {
- var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1];
- while (++i < n) {
- area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1];
- }
- return area * .5;
- };
- coordinates.centroid = function(k) {
- var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
- if (!arguments.length) k = -1 / (6 * coordinates.area());
- while (++i < n) {
- a = b;
- b = coordinates[i];
- c = a[0] * b[1] - b[0] * a[1];
- x += (a[0] + b[0]) * c;
- y += (a[1] + b[1]) * c;
- }
- return [ x * k, y * k ];
- };
- coordinates.clip = function(subject) {
- var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
- while (++i < n) {
- input = subject.slice();
- subject.length = 0;
- b = coordinates[i];
- c = input[(m = input.length) - 1];
- j = -1;
- while (++j < m) {
- d = input[j];
- if (d3_geom_polygonInside(d, a, b)) {
- if (!d3_geom_polygonInside(c, a, b)) {
- subject.push(d3_geom_polygonIntersect(c, d, a, b));
- }
- subject.push(d);
- } else if (d3_geom_polygonInside(c, a, b)) {
- subject.push(d3_geom_polygonIntersect(c, d, a, b));
- }
- c = d;
- }
- a = b;
- }
- return subject;
- };
- return coordinates;
- };
- function d3_geom_polygonInside(p, a, b) {
- return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
- }
- function d3_geom_polygonIntersect(c, d, a, b) {
- var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
- return [ x1 + ua * x21, y1 + ua * y21 ];
- }
- d3.geom.delaunay = function(vertices) {
- var edges = vertices.map(function() {
- return [];
- }), triangles = [];
- d3_geom_voronoiTessellate(vertices, function(e) {
- edges[e.region.l.index].push(vertices[e.region.r.index]);
- });
- edges.forEach(function(edge, i) {
- var v = vertices[i], cx = v[0], cy = v[1];
- edge.forEach(function(v) {
- v.angle = Math.atan2(v[0] - cx, v[1] - cy);
- });
- edge.sort(function(a, b) {
- return a.angle - b.angle;
- });
- for (var j = 0, m = edge.length - 1; j < m; j++) {
- triangles.push([ v, edge[j], edge[j + 1] ]);
- }
- });
- return triangles;
- };
- d3.geom.voronoi = function(points) {
- var size = null, x = d3_svg_lineX, y = d3_svg_lineY, clip;
- if (arguments.length) return voronoi(points);
- function voronoi(data) {
- var points, polygons = data.map(function() {
- return [];
- }), fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length, Z = 1e6;
- if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (points = [],
- i = 0; i < n; ++i) {
- points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
- }
- d3_geom_voronoiTessellate(points, function(e) {
- var s1, s2, x1, x2, y1, y2;
- if (e.a === 1 && e.b >= 0) {
- s1 = e.ep.r;
- s2 = e.ep.l;
- } else {
- s1 = e.ep.l;
- s2 = e.ep.r;
- }
- if (e.a === 1) {
- y1 = s1 ? s1.y : -Z;
- x1 = e.c - e.b * y1;
- y2 = s2 ? s2.y : Z;
- x2 = e.c - e.b * y2;
- } else {
- x1 = s1 ? s1.x : -Z;
- y1 = e.c - e.a * x1;
- x2 = s2 ? s2.x : Z;
- y2 = e.c - e.a * x2;
- }
- var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
- polygons[e.region.l.index].push(v1, v2);
- polygons[e.region.r.index].push(v1, v2);
- });
- polygons = polygons.map(function(polygon, i) {
- var cx = points[i][0], cy = points[i][1], angle = polygon.map(function(v) {
- return Math.atan2(v[0] - cx, v[1] - cy);
- }), order = d3.range(polygon.length).sort(function(a, b) {
- return angle[a] - angle[b];
- });
- return order.filter(function(d, i) {
- return !i || angle[d] - angle[order[i - 1]] > ε;
- }).map(function(d) {
- return polygon[d];
- });
- });
- polygons.forEach(function(polygon, i) {
- var n = polygon.length;
- if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]);
- if (n > 2) return;
- var p0 = points[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1;
- if (Math.abs(dy) < ε) {
- var y = y0 < y1 ? -Z : Z;
- polygon.push([ -Z, y ], [ Z, y ]);
- } else if (dx < ε) {
- var x = x0 < x1 ? -Z : Z;
- polygon.push([ x, -Z ], [ x, Z ]);
- } else {
- var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx;
- if (Math.abs(z) < ε) {
- polygon.push([ dy < 0 ? y : -y, y ]);
- } else {
- if (z > 0) y *= -1;
- polygon.push([ -Z, y ], [ Z, y ]);
- }
- }
- });
- if (clip) for (i = 0; i < n; ++i) clip(polygons[i]);
- for (i = 0; i < n; ++i) polygons[i].point = data[i];
- return polygons;
- }
- voronoi.x = function(_) {
- return arguments.length ? (x = _, voronoi) : x;
- };
- voronoi.y = function(_) {
- return arguments.length ? (y = _, voronoi) : y;
- };
- voronoi.size = function(_) {
- if (!arguments.length) return size;
- if (_ == null) {
- clip = null;
- } else {
- size = [ +_[0], +_[1] ];
- clip = d3.geom.polygon([ [ 0, 0 ], [ 0, size[1] ], size, [ size[0], 0 ] ]).clip;
- }
- return voronoi;
- };
- voronoi.links = function(data) {
- var points, graph = data.map(function() {
- return [];
- }), links = [], fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length;
- if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (i = 0; i < n; ++i) {
- points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
- }
- d3_geom_voronoiTessellate(points, function(e) {
- var l = e.region.l.index, r = e.region.r.index;
- if (graph[l][r]) return;
- graph[l][r] = graph[r][l] = true;
- links.push({
- source: data[l],
- target: data[r]
- });
- });
- return links;
- };
- voronoi.triangles = function(data) {
- if (x === d3_svg_lineX && y === d3_svg_lineY) return d3.geom.delaunay(data);
- var points, point, fx = d3_functor(x), fy = d3_functor(y), d, i, n;
- for (i = 0, points = [], n = data.length; i < n; ++i) {
- point = [ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ];
- point.data = d;
- points.push(point);
- }
- return d3.geom.delaunay(points).map(function(triangle) {
- return triangle.map(function(point) {
- return point.data;
- });
- });
- };
- return voronoi;
- };
- var d3_geom_voronoiOpposite = {
- l: "r",
- r: "l"
- };
- function d3_geom_voronoiTessellate(points, callback) {
- var Sites = {
- list: points.map(function(v, i) {
- return {
- index: i,
- x: v[0],
- y: v[1]
- };
- }).sort(function(a, b) {
- return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
- }),
- bottomSite: null
- };
- var EdgeList = {
- list: [],
- leftEnd: null,
- rightEnd: null,
- init: function() {
- EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
- EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
- EdgeList.leftEnd.r = EdgeList.rightEnd;
- EdgeList.rightEnd.l = EdgeList.leftEnd;
- EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
- },
- createHalfEdge: function(edge, side) {
- return {
- edge: edge,
- side: side,
- vertex: null,
- l: null,
- r: null
- };
- },
- insert: function(lb, he) {
- he.l = lb;
- he.r = lb.r;
- lb.r.l = he;
- lb.r = he;
- },
- leftBound: function(p) {
- var he = EdgeList.leftEnd;
- do {
- he = he.r;
- } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
- he = he.l;
- return he;
- },
- del: function(he) {
- he.l.r = he.r;
- he.r.l = he.l;
- he.edge = null;
- },
- right: function(he) {
- return he.r;
- },
- left: function(he) {
- return he.l;
- },
- leftRegion: function(he) {
- return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
- },
- rightRegion: function(he) {
- return he.edge == null ? Sites.bottomSite : he.edge.region[d3_geom_voronoiOpposite[he.side]];
- }
- };
- var Geom = {
- bisect: function(s1, s2) {
- var newEdge = {
- region: {
- l: s1,
- r: s2
- },
- ep: {
- l: null,
- r: null
- }
- };
- var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
- newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
- if (adx > ady) {
- newEdge.a = 1;
- newEdge.b = dy / dx;
- newEdge.c /= dx;
- } else {
- newEdge.b = 1;
- newEdge.a = dx / dy;
- newEdge.c /= dy;
- }
- return newEdge;
- },
- intersect: function(el1, el2) {
- var e1 = el1.edge, e2 = el2.edge;
- if (!e1 || !e2 || e1.region.r == e2.region.r) {
- return null;
- }
- var d = e1.a * e2.b - e1.b * e2.a;
- if (Math.abs(d) < 1e-10) {
- return null;
- }
- var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
- if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
- el = el1;
- e = e1;
- } else {
- el = el2;
- e = e2;
- }
- var rightOfSite = xint >= e.region.r.x;
- if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
- return null;
- }
- return {
- x: xint,
- y: yint
- };
- },
- rightOf: function(he, p) {
- var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
- if (rightOfSite && he.side === "l") {
- return 1;
- }
- if (!rightOfSite && he.side === "r") {
- return 0;
- }
- if (e.a === 1) {
- var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
- if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
- above = fast = dyp >= e.b * dxp;
- } else {
- above = p.x + p.y * e.b > e.c;
- if (e.b < 0) {
- above = !above;
- }
- if (!above) {
- fast = 1;
- }
- }
- if (!fast) {
- var dxs = topsite.x - e.region.l.x;
- above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
- if (e.b < 0) {
- above = !above;
- }
- }
- } else {
- var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
- above = t1 * t1 > t2 * t2 + t3 * t3;
- }
- return he.side === "l" ? above : !above;
- },
- endPoint: function(edge, side, site) {
- edge.ep[side] = site;
- if (!edge.ep[d3_geom_voronoiOpposite[side]]) return;
- callback(edge);
- },
- distance: function(s, t) {
- var dx = s.x - t.x, dy = s.y - t.y;
- return Math.sqrt(dx * dx + dy * dy);
- }
- };
- var EventQueue = {
- list: [],
- insert: function(he, site, offset) {
- he.vertex = site;
- he.ystar = site.y + offset;
- for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
- var next = list[i];
- if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
- continue;
- } else {
- break;
- }
- }
- list.splice(i, 0, he);
- },
- del: function(he) {
- for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
- ls.splice(i, 1);
- },
- empty: function() {
- return EventQueue.list.length === 0;
- },
- nextEvent: function(he) {
- for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
- if (ls[i] == he) return ls[i + 1];
- }
- return null;
- },
- min: function() {
- var elem = EventQueue.list[0];
- return {
- x: elem.vertex.x,
- y: elem.ystar
- };
- },
- extractMin: function() {
- return EventQueue.list.shift();
- }
- };
- EdgeList.init();
- Sites.bottomSite = Sites.list.shift();
- var newSite = Sites.list.shift(), newIntStar;
- var lbnd, rbnd, llbnd, rrbnd, bisector;
- var bot, top, temp, p, v;
- var e, pm;
- while (true) {
- if (!EventQueue.empty()) {
- newIntStar = EventQueue.min();
- }
- if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
- lbnd = EdgeList.leftBound(newSite);
- rbnd = EdgeList.right(lbnd);
- bot = EdgeList.rightRegion(lbnd);
- e = Geom.bisect(bot, newSite);
- bisector = EdgeList.createHalfEdge(e, "l");
- EdgeList.insert(lbnd, bisector);
- p = Geom.intersect(lbnd, bisector);
- if (p) {
- EventQueue.del(lbnd);
- EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
- }
- lbnd = bisector;
- bisector = EdgeList.createHalfEdge(e, "r");
- EdgeList.insert(lbnd, bisector);
- p = Geom.intersect(bisector, rbnd);
- if (p) {
- EventQueue.insert(bisector, p, Geom.distance(p, newSite));
- }
- newSite = Sites.list.shift();
- } else if (!EventQueue.empty()) {
- lbnd = EventQueue.extractMin();
- llbnd = EdgeList.left(lbnd);
- rbnd = EdgeList.right(lbnd);
- rrbnd = EdgeList.right(rbnd);
- bot = EdgeList.leftRegion(lbnd);
- top = EdgeList.rightRegion(rbnd);
- v = lbnd.vertex;
- Geom.endPoint(lbnd.edge, lbnd.side, v);
- Geom.endPoint(rbnd.edge, rbnd.side, v);
- EdgeList.del(lbnd);
- EventQueue.del(rbnd);
- EdgeList.del(rbnd);
- pm = "l";
- if (bot.y > top.y) {
- temp = bot;
- bot = top;
- top = temp;
- pm = "r";
- }
- e = Geom.bisect(bot, top);
- bisector = EdgeList.createHalfEdge(e, pm);
- EdgeList.insert(llbnd, bisector);
- Geom.endPoint(e, d3_geom_voronoiOpposite[pm], v);
- p = Geom.intersect(llbnd, bisector);
- if (p) {
- EventQueue.del(llbnd);
- EventQueue.insert(llbnd, p, Geom.distance(p, bot));
- }
- p = Geom.intersect(bisector, rrbnd);
- if (p) {
- EventQueue.insert(bisector, p, Geom.distance(p, bot));
- }
- } else {
- break;
- }
- }
- for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
- callback(lbnd.edge);
- }
- }
- d3.geom.quadtree = function(points, x1, y1, x2, y2) {
- var x = d3_svg_lineX, y = d3_svg_lineY, compat;
- if (compat = arguments.length) {
- x = d3_geom_quadtreeCompatX;
- y = d3_geom_quadtreeCompatY;
- if (compat === 3) {
- y2 = y1;
- x2 = x1;
- y1 = x1 = 0;
- }
- return quadtree(points);
- }
- function quadtree(data) {
- var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;
- if (x1 != null) {
- x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;
- } else {
- x2_ = y2_ = -(x1_ = y1_ = Infinity);
- xs = [], ys = [];
- n = data.length;
- if (compat) for (i = 0; i < n; ++i) {
- d = data[i];
- if (d.x < x1_) x1_ = d.x;
- if (d.y < y1_) y1_ = d.y;
- if (d.x > x2_) x2_ = d.x;
- if (d.y > y2_) y2_ = d.y;
- xs.push(d.x);
- ys.push(d.y);
- } else for (i = 0; i < n; ++i) {
- var x_ = +fx(d = data[i], i), y_ = +fy(d, i);
- if (x_ < x1_) x1_ = x_;
- if (y_ < y1_) y1_ = y_;
- if (x_ > x2_) x2_ = x_;
- if (y_ > y2_) y2_ = y_;
- xs.push(x_);
- ys.push(y_);
- }
- }
- var dx = x2_ - x1_, dy = y2_ - y1_;
- if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;
- function insert(n, d, x, y, x1, y1, x2, y2) {
- if (isNaN(x) || isNaN(y)) return;
- if (n.leaf) {
- var nx = n.x, ny = n.y;
- if (nx != null) {
- if (Math.abs(nx - x) + Math.abs(ny - y) < .01) {
- insertChild(n, d, x, y, x1, y1, x2, y2);
- } else {
- var nPoint = n.point;
- n.x = n.y = n.point = null;
- insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);
- insertChild(n, d, x, y, x1, y1, x2, y2);
- }
- } else {
- n.x = x, n.y = y, n.point = d;
- }
- } else {
- insertChild(n, d, x, y, x1, y1, x2, y2);
- }
- }
- function insertChild(n, d, x, y, x1, y1, x2, y2) {
- var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right;
- n.leaf = false;
- n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
- if (right) x1 = sx; else x2 = sx;
- if (bottom) y1 = sy; else y2 = sy;
- insert(n, d, x, y, x1, y1, x2, y2);
- }
- var root = d3_geom_quadtreeNode();
- root.add = function(d) {
- insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);
- };
- root.visit = function(f) {
- d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
- };
- i = -1;
- if (x1 == null) {
- while (++i < n) {
- insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);
- }
- --i;
- } else data.forEach(root.add);
- xs = ys = data = d = null;
- return root;
- }
- quadtree.x = function(_) {
- return arguments.length ? (x = _, quadtree) : x;
- };
- quadtree.y = function(_) {
- return arguments.length ? (y = _, quadtree) : y;
- };
- quadtree.size = function(_) {
- if (!arguments.length) return x1 == null ? null : [ x2, y2 ];
- if (_ == null) {
- x1 = y1 = x2 = y2 = null;
- } else {
- x1 = y1 = 0;
- x2 = +_[0], y2 = +_[1];
- }
- return quadtree;
- };
- return quadtree;
- };
- function d3_geom_quadtreeCompatX(d) {
- return d.x;
- }
- function d3_geom_quadtreeCompatY(d) {
- return d.y;
- }
- function d3_geom_quadtreeNode() {
- return {
- leaf: true,
- nodes: [],
- point: null,
- x: null,
- y: null
- };
- }
- function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
- if (!f(node, x1, y1, x2, y2)) {
- var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
- if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
- if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
- if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
- if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
- }
- }
- d3.interpolateRgb = d3_interpolateRgb;
- function d3_interpolateRgb(a, b) {
- a = d3.rgb(a);
- b = d3.rgb(b);
- var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
- return function(t) {
- return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
- };
- }
- d3.transform = function(string) {
- var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
- return (d3.transform = function(string) {
- g.setAttribute("transform", string);
- var t = g.transform.baseVal.consolidate();
- return new d3_transform(t ? t.matrix : d3_transformIdentity);
- })(string);
- };
- function d3_transform(m) {
- var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
- if (r0[0] * r1[1] < r1[0] * r0[1]) {
- r0[0] *= -1;
- r0[1] *= -1;
- kx *= -1;
- kz *= -1;
- }
- this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
- this.translate = [ m.e, m.f ];
- this.scale = [ kx, ky ];
- this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
- }
- d3_transform.prototype.toString = function() {
- return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
- };
- function d3_transformDot(a, b) {
- return a[0] * b[0] + a[1] * b[1];
- }
- function d3_transformNormalize(a) {
- var k = Math.sqrt(d3_transformDot(a, a));
- if (k) {
- a[0] /= k;
- a[1] /= k;
- }
- return k;
- }
- function d3_transformCombine(a, b, k) {
- a[0] += k * b[0];
- a[1] += k * b[1];
- return a;
- }
- var d3_transformIdentity = {
- a: 1,
- b: 0,
- c: 0,
- d: 1,
- e: 0,
- f: 0
- };
- d3.interpolateNumber = d3_interpolateNumber;
- function d3_interpolateNumber(a, b) {
- b -= a = +a;
- return function(t) {
- return a + b * t;
- };
- }
- d3.interpolateTransform = d3_interpolateTransform;
- function d3_interpolateTransform(a, b) {
- var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
- if (ta[0] != tb[0] || ta[1] != tb[1]) {
- s.push("translate(", null, ",", null, ")");
- q.push({
- i: 1,
- x: d3_interpolateNumber(ta[0], tb[0])
- }, {
- i: 3,
- x: d3_interpolateNumber(ta[1], tb[1])
- });
- } else if (tb[0] || tb[1]) {
- s.push("translate(" + tb + ")");
- } else {
- s.push("");
- }
- if (ra != rb) {
- if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
- q.push({
- i: s.push(s.pop() + "rotate(", null, ")") - 2,
- x: d3_interpolateNumber(ra, rb)
- });
- } else if (rb) {
- s.push(s.pop() + "rotate(" + rb + ")");
- }
- if (wa != wb) {
- q.push({
- i: s.push(s.pop() + "skewX(", null, ")") - 2,
- x: d3_interpolateNumber(wa, wb)
- });
- } else if (wb) {
- s.push(s.pop() + "skewX(" + wb + ")");
- }
- if (ka[0] != kb[0] || ka[1] != kb[1]) {
- n = s.push(s.pop() + "scale(", null, ",", null, ")");
- q.push({
- i: n - 4,
- x: d3_interpolateNumber(ka[0], kb[0])
- }, {
- i: n - 2,
- x: d3_interpolateNumber(ka[1], kb[1])
- });
- } else if (kb[0] != 1 || kb[1] != 1) {
- s.push(s.pop() + "scale(" + kb + ")");
- }
- n = q.length;
- return function(t) {
- var i = -1, o;
- while (++i < n) s[(o = q[i]).i] = o.x(t);
- return s.join("");
- };
- }
- d3.interpolateObject = d3_interpolateObject;
- function d3_interpolateObject(a, b) {
- var i = {}, c = {}, k;
- for (k in a) {
- if (k in b) {
- i[k] = d3_interpolateByName(k)(a[k], b[k]);
- } else {
- c[k] = a[k];
- }
- }
- for (k in b) {
- if (!(k in a)) {
- c[k] = b[k];
- }
- }
- return function(t) {
- for (k in i) c[k] = i[k](t);
- return c;
- };
- }
- d3.interpolateString = d3_interpolateString;
- function d3_interpolateString(a, b) {
- var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
- a = a + "", b = b + "";
- d3_interpolate_number.lastIndex = 0;
- for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
- if (m.index) s.push(b.substring(s0, s1 = m.index));
- q.push({
- i: s.length,
- x: m[0]
- });
- s.push(null);
- s0 = d3_interpolate_number.lastIndex;
- }
- if (s0 < b.length) s.push(b.substring(s0));
- for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
- o = q[i];
- if (o.x == m[0]) {
- if (o.i) {
- if (s[o.i + 1] == null) {
- s[o.i - 1] += o.x;
- s.splice(o.i, 1);
- for (j = i + 1; j < n; ++j) q[j].i--;
- } else {
- s[o.i - 1] += o.x + s[o.i + 1];
- s.splice(o.i, 2);
- for (j = i + 1; j < n; ++j) q[j].i -= 2;
- }
- } else {
- if (s[o.i + 1] == null) {
- s[o.i] = o.x;
- } else {
- s[o.i] = o.x + s[o.i + 1];
- s.splice(o.i + 1, 1);
- for (j = i + 1; j < n; ++j) q[j].i--;
- }
- }
- q.splice(i, 1);
- n--;
- i--;
- } else {
- o.x = d3_interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
- }
- }
- while (i < n) {
- o = q.pop();
- if (s[o.i + 1] == null) {
- s[o.i] = o.x;
- } else {
- s[o.i] = o.x + s[o.i + 1];
- s.splice(o.i + 1, 1);
- }
- n--;
- }
- if (s.length === 1) {
- return s[0] == null ? q[0].x : function() {
- return b;
- };
- }
- return function(t) {
- for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
- return s.join("");
- };
- }
- var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
- d3.interpolate = d3_interpolate;
- function d3_interpolate(a, b) {
- var i = d3.interpolators.length, f;
- while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
- return f;
- }
- function d3_interpolateByName(name) {
- return name == "transform" ? d3_interpolateTransform : d3_interpolate;
- }
- d3.interpolators = [ function(a, b) {
- var t = typeof b;
- return (t === "string" || t !== typeof a ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_Color ? d3_interpolateRgb : t === "object" ? Array.isArray(b) ? d3_interpolateArray : d3_interpolateObject : d3_interpolateNumber)(a, b);
- } ];
- d3.interpolateArray = d3_interpolateArray;
- function d3_interpolateArray(a, b) {
- var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
- for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
- for (;i < na; ++i) c[i] = a[i];
- for (;i < nb; ++i) c[i] = b[i];
- return function(t) {
- for (i = 0; i < n0; ++i) c[i] = x[i](t);
- return c;
- };
- }
- var d3_ease_default = function() {
- return d3_identity;
- };
- var d3_ease = d3.map({
- linear: d3_ease_default,
- poly: d3_ease_poly,
- quad: function() {
- return d3_ease_quad;
- },
- cubic: function() {
- return d3_ease_cubic;
- },
- sin: function() {
- return d3_ease_sin;
- },
- exp: function() {
- return d3_ease_exp;
- },
- circle: function() {
- return d3_ease_circle;
- },
- elastic: d3_ease_elastic,
- back: d3_ease_back,
- bounce: function() {
- return d3_ease_bounce;
- }
- });
- var d3_ease_mode = d3.map({
- "in": d3_identity,
- out: d3_ease_reverse,
- "in-out": d3_ease_reflect,
- "out-in": function(f) {
- return d3_ease_reflect(d3_ease_reverse(f));
- }
- });
- d3.ease = function(name) {
- var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
- t = d3_ease.get(t) || d3_ease_default;
- m = d3_ease_mode.get(m) || d3_identity;
- return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
- };
- function d3_ease_clamp(f) {
- return function(t) {
- return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
- };
- }
- function d3_ease_reverse(f) {
- return function(t) {
- return 1 - f(1 - t);
- };
- }
- function d3_ease_reflect(f) {
- return function(t) {
- return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
- };
- }
- function d3_ease_quad(t) {
- return t * t;
- }
- function d3_ease_cubic(t) {
- return t * t * t;
- }
- function d3_ease_cubicInOut(t) {
- if (t <= 0) return 0;
- if (t >= 1) return 1;
- var t2 = t * t, t3 = t2 * t;
- return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
- }
- function d3_ease_poly(e) {
- return function(t) {
- return Math.pow(t, e);
- };
- }
- function d3_ease_sin(t) {
- return 1 - Math.cos(t * π / 2);
- }
- function d3_ease_exp(t) {
- return Math.pow(2, 10 * (t - 1));
- }
- function d3_ease_circle(t) {
- return 1 - Math.sqrt(1 - t * t);
- }
- function d3_ease_elastic(a, p) {
- var s;
- if (arguments.length < 2) p = .45;
- if (arguments.length) s = p / (2 * π) * Math.asin(1 / a); else a = 1, s = p / 4;
- return function(t) {
- return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p);
- };
- }
- function d3_ease_back(s) {
- if (!s) s = 1.70158;
- return function(t) {
- return t * t * ((s + 1) * t - s);
- };
- }
- function d3_ease_bounce(t) {
- return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
- }
- d3.interpolateHcl = d3_interpolateHcl;
- function d3_interpolateHcl(a, b) {
- a = d3.hcl(a);
- b = d3.hcl(b);
- var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
- if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
- return function(t) {
- return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
- };
- }
- d3.interpolateHsl = d3_interpolateHsl;
- function d3_interpolateHsl(a, b) {
- a = d3.hsl(a);
- b = d3.hsl(b);
- var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0;
- if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360;
- return function(t) {
- return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + "";
- };
- }
- d3.interpolateLab = d3_interpolateLab;
- function d3_interpolateLab(a, b) {
- a = d3.lab(a);
- b = d3.lab(b);
- var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
- return function(t) {
- return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
- };
- }
- d3.interpolateRound = d3_interpolateRound;
- function d3_interpolateRound(a, b) {
- b -= a;
- return function(t) {
- return Math.round(a + b * t);
- };
- }
- function d3_uninterpolateNumber(a, b) {
- b = b - (a = +a) ? 1 / (b - a) : 0;
- return function(x) {
- return (x - a) * b;
- };
- }
- function d3_uninterpolateClamp(a, b) {
- b = b - (a = +a) ? 1 / (b - a) : 0;
- return function(x) {
- return Math.max(0, Math.min(1, (x - a) * b));
- };
- }
- d3.layout = {};
- d3.layout.bundle = function() {
- return function(links) {
- var paths = [], i = -1, n = links.length;
- while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
- return paths;
- };
- };
- function d3_layout_bundlePath(link) {
- var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
- while (start !== lca) {
- start = start.parent;
- points.push(start);
- }
- var k = points.length;
- while (end !== lca) {
- points.splice(k, 0, end);
- end = end.parent;
- }
- return points;
- }
- function d3_layout_bundleAncestors(node) {
- var ancestors = [], parent = node.parent;
- while (parent != null) {
- ancestors.push(node);
- node = parent;
- parent = parent.parent;
- }
- ancestors.push(node);
- return ancestors;
- }
- function d3_layout_bundleLeastCommonAncestor(a, b) {
- if (a === b) return a;
- var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
- while (aNode === bNode) {
- sharedNode = aNode;
- aNode = aNodes.pop();
- bNode = bNodes.pop();
- }
- return sharedNode;
- }
- d3.layout.chord = function() {
- var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
- function relayout() {
- var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
- chords = [];
- groups = [];
- k = 0, i = -1;
- while (++i < n) {
- x = 0, j = -1;
- while (++j < n) {
- x += matrix[i][j];
- }
- groupSums.push(x);
- subgroupIndex.push(d3.range(n));
- k += x;
- }
- if (sortGroups) {
- groupIndex.sort(function(a, b) {
- return sortGroups(groupSums[a], groupSums[b]);
- });
- }
- if (sortSubgroups) {
- subgroupIndex.forEach(function(d, i) {
- d.sort(function(a, b) {
- return sortSubgroups(matrix[i][a], matrix[i][b]);
- });
- });
- }
- k = (2 * π - padding * n) / k;
- x = 0, i = -1;
- while (++i < n) {
- x0 = x, j = -1;
- while (++j < n) {
- var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
- subgroups[di + "-" + dj] = {
- index: di,
- subindex: dj,
- startAngle: a0,
- endAngle: a1,
- value: v
- };
- }
- groups[di] = {
- index: di,
- startAngle: x0,
- endAngle: x,
- value: (x - x0) / k
- };
- x += padding;
- }
- i = -1;
- while (++i < n) {
- j = i - 1;
- while (++j < n) {
- var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
- if (source.value || target.value) {
- chords.push(source.value < target.value ? {
- source: target,
- target: source
- } : {
- source: source,
- target: target
- });
- }
- }
- }
- if (sortChords) resort();
- }
- function resort() {
- chords.sort(function(a, b) {
- return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
- });
- }
- chord.matrix = function(x) {
- if (!arguments.length) return matrix;
- n = (matrix = x) && matrix.length;
- chords = groups = null;
- return chord;
- };
- chord.padding = function(x) {
- if (!arguments.length) return padding;
- padding = x;
- chords = groups = null;
- return chord;
- };
- chord.sortGroups = function(x) {
- if (!arguments.length) return sortGroups;
- sortGroups = x;
- chords = groups = null;
- return chord;
- };
- chord.sortSubgroups = function(x) {
- if (!arguments.length) return sortSubgroups;
- sortSubgroups = x;
- chords = null;
- return chord;
- };
- chord.sortChords = function(x) {
- if (!arguments.length) return sortChords;
- sortChords = x;
- if (chords) resort();
- return chord;
- };
- chord.chords = function() {
- if (!chords) relayout();
- return chords;
- };
- chord.groups = function() {
- if (!groups) relayout();
- return groups;
- };
- return chord;
- };
- d3.layout.force = function() {
- var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges;
- function repulse(node) {
- return function(quad, x1, _, x2) {
- if (quad.point !== node) {
- var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
- if ((x2 - x1) * dn < theta) {
- var k = quad.charge * dn * dn;
- node.px -= dx * k;
- node.py -= dy * k;
- return true;
- }
- if (quad.point && isFinite(dn)) {
- var k = quad.pointCharge * dn * dn;
- node.px -= dx * k;
- node.py -= dy * k;
- }
- }
- return !quad.charge;
- };
- }
- force.tick = function() {
- if ((alpha *= .99) < .005) {
- event.end({
- type: "end",
- alpha: alpha = 0
- });
- return true;
- }
- var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
- for (i = 0; i < m; ++i) {
- o = links[i];
- s = o.source;
- t = o.target;
- x = t.x - s.x;
- y = t.y - s.y;
- if (l = x * x + y * y) {
- l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
- x *= l;
- y *= l;
- t.x -= x * (k = s.weight / (t.weight + s.weight));
- t.y -= y * k;
- s.x += x * (k = 1 - k);
- s.y += y * k;
- }
- }
- if (k = alpha * gravity) {
- x = size[0] / 2;
- y = size[1] / 2;
- i = -1;
- if (k) while (++i < n) {
- o = nodes[i];
- o.x += (x - o.x) * k;
- o.y += (y - o.y) * k;
- }
- }
- if (charge) {
- d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
- i = -1;
- while (++i < n) {
- if (!(o = nodes[i]).fixed) {
- q.visit(repulse(o));
- }
- }
- }
- i = -1;
- while (++i < n) {
- o = nodes[i];
- if (o.fixed) {
- o.x = o.px;
- o.y = o.py;
- } else {
- o.x -= (o.px - (o.px = o.x)) * friction;
- o.y -= (o.py - (o.py = o.y)) * friction;
- }
- }
- event.tick({
- type: "tick",
- alpha: alpha
- });
- };
- force.nodes = function(x) {
- if (!arguments.length) return nodes;
- nodes = x;
- return force;
- };
- force.links = function(x) {
- if (!arguments.length) return links;
- links = x;
- return force;
- };
- force.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return force;
- };
- force.linkDistance = function(x) {
- if (!arguments.length) return linkDistance;
- linkDistance = typeof x === "function" ? x : +x;
- return force;
- };
- force.distance = force.linkDistance;
- force.linkStrength = function(x) {
- if (!arguments.length) return linkStrength;
- linkStrength = typeof x === "function" ? x : +x;
- return force;
- };
- force.friction = function(x) {
- if (!arguments.length) return friction;
- friction = +x;
- return force;
- };
- force.charge = function(x) {
- if (!arguments.length) return charge;
- charge = typeof x === "function" ? x : +x;
- return force;
- };
- force.gravity = function(x) {
- if (!arguments.length) return gravity;
- gravity = +x;
- return force;
- };
- force.theta = function(x) {
- if (!arguments.length) return theta;
- theta = +x;
- return force;
- };
- force.alpha = function(x) {
- if (!arguments.length) return alpha;
- x = +x;
- if (alpha) {
- if (x > 0) alpha = x; else alpha = 0;
- } else if (x > 0) {
- event.start({
- type: "start",
- alpha: alpha = x
- });
- d3.timer(force.tick);
- }
- return force;
- };
- force.start = function() {
- var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
- for (i = 0; i < n; ++i) {
- (o = nodes[i]).index = i;
- o.weight = 0;
- }
- for (i = 0; i < m; ++i) {
- o = links[i];
- if (typeof o.source == "number") o.source = nodes[o.source];
- if (typeof o.target == "number") o.target = nodes[o.target];
- ++o.source.weight;
- ++o.target.weight;
- }
- for (i = 0; i < n; ++i) {
- o = nodes[i];
- if (isNaN(o.x)) o.x = position("x", w);
- if (isNaN(o.y)) o.y = position("y", h);
- if (isNaN(o.px)) o.px = o.x;
- if (isNaN(o.py)) o.py = o.y;
- }
- distances = [];
- if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
- strengths = [];
- if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
- charges = [];
- if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
- function position(dimension, size) {
- var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
- while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
- return Math.random() * size;
- }
- function neighbor() {
- if (!neighbors) {
- neighbors = [];
- for (j = 0; j < n; ++j) {
- neighbors[j] = [];
- }
- for (j = 0; j < m; ++j) {
- var o = links[j];
- neighbors[o.source.index].push(o.target);
- neighbors[o.target.index].push(o.source);
- }
- }
- return neighbors[i];
- }
- return force.resume();
- };
- force.resume = function() {
- return force.alpha(.1);
- };
- force.stop = function() {
- return force.alpha(0);
- };
- force.drag = function() {
- if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
- if (!arguments.length) return drag;
- this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
- };
- function dragmove(d) {
- d.px = d3.event.x, d.py = d3.event.y;
- force.resume();
- }
- return d3.rebind(force, event, "on");
- };
- function d3_layout_forceDragstart(d) {
- d.fixed |= 2;
- }
- function d3_layout_forceDragend(d) {
- d.fixed &= ~6;
- }
- function d3_layout_forceMouseover(d) {
- d.fixed |= 4;
- d.px = d.x, d.py = d.y;
- }
- function d3_layout_forceMouseout(d) {
- d.fixed &= ~4;
- }
- function d3_layout_forceAccumulate(quad, alpha, charges) {
- var cx = 0, cy = 0;
- quad.charge = 0;
- if (!quad.leaf) {
- var nodes = quad.nodes, n = nodes.length, i = -1, c;
- while (++i < n) {
- c = nodes[i];
- if (c == null) continue;
- d3_layout_forceAccumulate(c, alpha, charges);
- quad.charge += c.charge;
- cx += c.charge * c.cx;
- cy += c.charge * c.cy;
- }
- }
- if (quad.point) {
- if (!quad.leaf) {
- quad.point.x += Math.random() - .5;
- quad.point.y += Math.random() - .5;
- }
- var k = alpha * charges[quad.point.index];
- quad.charge += quad.pointCharge = k;
- cx += k * quad.point.x;
- cy += k * quad.point.y;
- }
- quad.cx = cx / quad.charge;
- quad.cy = cy / quad.charge;
- }
- var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1;
- d3.layout.hierarchy = function() {
- var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
- function recurse(node, depth, nodes) {
- var childs = children.call(hierarchy, node, depth);
- node.depth = depth;
- nodes.push(node);
- if (childs && (n = childs.length)) {
- var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
- while (++i < n) {
- d = recurse(childs[i], j, nodes);
- d.parent = node;
- c.push(d);
- v += d.value;
- }
- if (sort) c.sort(sort);
- if (value) node.value = v;
- } else if (value) {
- node.value = +value.call(hierarchy, node, depth) || 0;
- }
- return node;
- }
- function revalue(node, depth) {
- var children = node.children, v = 0;
- if (children && (n = children.length)) {
- var i = -1, n, j = depth + 1;
- while (++i < n) v += revalue(children[i], j);
- } else if (value) {
- v = +value.call(hierarchy, node, depth) || 0;
- }
- if (value) node.value = v;
- return v;
- }
- function hierarchy(d) {
- var nodes = [];
- recurse(d, 0, nodes);
- return nodes;
- }
- hierarchy.sort = function(x) {
- if (!arguments.length) return sort;
- sort = x;
- return hierarchy;
- };
- hierarchy.children = function(x) {
- if (!arguments.length) return children;
- children = x;
- return hierarchy;
- };
- hierarchy.value = function(x) {
- if (!arguments.length) return value;
- value = x;
- return hierarchy;
- };
- hierarchy.revalue = function(root) {
- revalue(root, 0);
- return root;
- };
- return hierarchy;
- };
- function d3_layout_hierarchyRebind(object, hierarchy) {
- d3.rebind(object, hierarchy, "sort", "children", "value");
- object.nodes = object;
- object.links = d3_layout_hierarchyLinks;
- return object;
- }
- function d3_layout_hierarchyChildren(d) {
- return d.children;
- }
- function d3_layout_hierarchyValue(d) {
- return d.value;
- }
- function d3_layout_hierarchySort(a, b) {
- return b.value - a.value;
- }
- function d3_layout_hierarchyLinks(nodes) {
- return d3.merge(nodes.map(function(parent) {
- return (parent.children || []).map(function(child) {
- return {
- source: parent,
- target: child
- };
- });
- }));
- }
- d3.layout.partition = function() {
- var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
- function position(node, x, dx, dy) {
- var children = node.children;
- node.x = x;
- node.y = node.depth * dy;
- node.dx = dx;
- node.dy = dy;
- if (children && (n = children.length)) {
- var i = -1, n, c, d;
- dx = node.value ? dx / node.value : 0;
- while (++i < n) {
- position(c = children[i], x, d = c.value * dx, dy);
- x += d;
- }
- }
- }
- function depth(node) {
- var children = node.children, d = 0;
- if (children && (n = children.length)) {
- var i = -1, n;
- while (++i < n) d = Math.max(d, depth(children[i]));
- }
- return 1 + d;
- }
- function partition(d, i) {
- var nodes = hierarchy.call(this, d, i);
- position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
- return nodes;
- }
- partition.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return partition;
- };
- return d3_layout_hierarchyRebind(partition, hierarchy);
- };
- d3.layout.pie = function() {
- var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * π;
- function pie(data) {
- var values = data.map(function(d, i) {
- return +value.call(pie, d, i);
- });
- var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
- var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values);
- var index = d3.range(data.length);
- if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
- return values[j] - values[i];
- } : function(i, j) {
- return sort(data[i], data[j]);
- });
- var arcs = [];
- index.forEach(function(i) {
- var d;
- arcs[i] = {
- data: data[i],
- value: d = values[i],
- startAngle: a,
- endAngle: a += d * k
- };
- });
- return arcs;
- }
- pie.value = function(x) {
- if (!arguments.length) return value;
- value = x;
- return pie;
- };
- pie.sort = function(x) {
- if (!arguments.length) return sort;
- sort = x;
- return pie;
- };
- pie.startAngle = function(x) {
- if (!arguments.length) return startAngle;
- startAngle = x;
- return pie;
- };
- pie.endAngle = function(x) {
- if (!arguments.length) return endAngle;
- endAngle = x;
- return pie;
- };
- return pie;
- };
- var d3_layout_pieSortByValue = {};
- d3.layout.stack = function() {
- var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
- function stack(data, index) {
- var series = data.map(function(d, i) {
- return values.call(stack, d, i);
- });
- var points = series.map(function(d) {
- return d.map(function(v, i) {
- return [ x.call(stack, v, i), y.call(stack, v, i) ];
- });
- });
- var orders = order.call(stack, points, index);
- series = d3.permute(series, orders);
- points = d3.permute(points, orders);
- var offsets = offset.call(stack, points, index);
- var n = series.length, m = series[0].length, i, j, o;
- for (j = 0; j < m; ++j) {
- out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
- for (i = 1; i < n; ++i) {
- out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
- }
- }
- return data;
- }
- stack.values = function(x) {
- if (!arguments.length) return values;
- values = x;
- return stack;
- };
- stack.order = function(x) {
- if (!arguments.length) return order;
- order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
- return stack;
- };
- stack.offset = function(x) {
- if (!arguments.length) return offset;
- offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
- return stack;
- };
- stack.x = function(z) {
- if (!arguments.length) return x;
- x = z;
- return stack;
- };
- stack.y = function(z) {
- if (!arguments.length) return y;
- y = z;
- return stack;
- };
- stack.out = function(z) {
- if (!arguments.length) return out;
- out = z;
- return stack;
- };
- return stack;
- };
- function d3_layout_stackX(d) {
- return d.x;
- }
- function d3_layout_stackY(d) {
- return d.y;
- }
- function d3_layout_stackOut(d, y0, y) {
- d.y0 = y0;
- d.y = y;
- }
- var d3_layout_stackOrders = d3.map({
- "inside-out": function(data) {
- var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
- return max[a] - max[b];
- }), top = 0, bottom = 0, tops = [], bottoms = [];
- for (i = 0; i < n; ++i) {
- j = index[i];
- if (top < bottom) {
- top += sums[j];
- tops.push(j);
- } else {
- bottom += sums[j];
- bottoms.push(j);
- }
- }
- return bottoms.reverse().concat(tops);
- },
- reverse: function(data) {
- return d3.range(data.length).reverse();
- },
- "default": d3_layout_stackOrderDefault
- });
- var d3_layout_stackOffsets = d3.map({
- silhouette: function(data) {
- var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
- for (j = 0; j < m; ++j) {
- for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
- if (o > max) max = o;
- sums.push(o);
- }
- for (j = 0; j < m; ++j) {
- y0[j] = (max - sums[j]) / 2;
- }
- return y0;
- },
- wiggle: function(data) {
- var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
- y0[0] = o = o0 = 0;
- for (j = 1; j < m; ++j) {
- for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
- for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
- for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
- s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
- }
- s2 += s3 * data[i][j][1];
- }
- y0[j] = o -= s1 ? s2 / s1 * dx : 0;
- if (o < o0) o0 = o;
- }
- for (j = 0; j < m; ++j) y0[j] -= o0;
- return y0;
- },
- expand: function(data) {
- var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
- for (j = 0; j < m; ++j) {
- for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
- if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
- }
- for (j = 0; j < m; ++j) y0[j] = 0;
- return y0;
- },
- zero: d3_layout_stackOffsetZero
- });
- function d3_layout_stackOrderDefault(data) {
- return d3.range(data.length);
- }
- function d3_layout_stackOffsetZero(data) {
- var j = -1, m = data[0].length, y0 = [];
- while (++j < m) y0[j] = 0;
- return y0;
- }
- function d3_layout_stackMaxIndex(array) {
- var i = 1, j = 0, v = array[0][1], k, n = array.length;
- for (;i < n; ++i) {
- if ((k = array[i][1]) > v) {
- j = i;
- v = k;
- }
- }
- return j;
- }
- function d3_layout_stackReduceSum(d) {
- return d.reduce(d3_layout_stackSum, 0);
- }
- function d3_layout_stackSum(p, d) {
- return p + d[1];
- }
- d3.layout.histogram = function() {
- var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
- function histogram(data, i) {
- var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
- while (++i < m) {
- bin = bins[i] = [];
- bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
- bin.y = 0;
- }
- if (m > 0) {
- i = -1;
- while (++i < n) {
- x = values[i];
- if (x >= range[0] && x <= range[1]) {
- bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
- bin.y += k;
- bin.push(data[i]);
- }
- }
- }
- return bins;
- }
- histogram.value = function(x) {
- if (!arguments.length) return valuer;
- valuer = x;
- return histogram;
- };
- histogram.range = function(x) {
- if (!arguments.length) return ranger;
- ranger = d3_functor(x);
- return histogram;
- };
- histogram.bins = function(x) {
- if (!arguments.length) return binner;
- binner = typeof x === "number" ? function(range) {
- return d3_layout_histogramBinFixed(range, x);
- } : d3_functor(x);
- return histogram;
- };
- histogram.frequency = function(x) {
- if (!arguments.length) return frequency;
- frequency = !!x;
- return histogram;
- };
- return histogram;
- };
- function d3_layout_histogramBinSturges(range, values) {
- return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
- }
- function d3_layout_histogramBinFixed(range, n) {
- var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
- while (++x <= n) f[x] = m * x + b;
- return f;
- }
- function d3_layout_histogramRange(values) {
- return [ d3.min(values), d3.max(values) ];
- }
- d3.layout.tree = function() {
- var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
- function tree(d, i) {
- var nodes = hierarchy.call(this, d, i), root = nodes[0];
- function firstWalk(node, previousSibling) {
- var children = node.children, layout = node._tree;
- if (children && (n = children.length)) {
- var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
- while (++i < n) {
- child = children[i];
- firstWalk(child, previousChild);
- ancestor = apportion(child, previousChild, ancestor);
- previousChild = child;
- }
- d3_layout_treeShift(node);
- var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
- if (previousSibling) {
- layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
- layout.mod = layout.prelim - midpoint;
- } else {
- layout.prelim = midpoint;
- }
- } else {
- if (previousSibling) {
- layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
- }
- }
- }
- function secondWalk(node, x) {
- node.x = node._tree.prelim + x;
- var children = node.children;
- if (children && (n = children.length)) {
- var i = -1, n;
- x += node._tree.mod;
- while (++i < n) {
- secondWalk(children[i], x);
- }
- }
- }
- function apportion(node, previousSibling, ancestor) {
- if (previousSibling) {
- var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
- while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
- vom = d3_layout_treeLeft(vom);
- vop = d3_layout_treeRight(vop);
- vop._tree.ancestor = node;
- shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
- if (shift > 0) {
- d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
- sip += shift;
- sop += shift;
- }
- sim += vim._tree.mod;
- sip += vip._tree.mod;
- som += vom._tree.mod;
- sop += vop._tree.mod;
- }
- if (vim && !d3_layout_treeRight(vop)) {
- vop._tree.thread = vim;
- vop._tree.mod += sim - sop;
- }
- if (vip && !d3_layout_treeLeft(vom)) {
- vom._tree.thread = vip;
- vom._tree.mod += sip - som;
- ancestor = node;
- }
- }
- return ancestor;
- }
- d3_layout_treeVisitAfter(root, function(node, previousSibling) {
- node._tree = {
- ancestor: node,
- prelim: 0,
- mod: 0,
- change: 0,
- shift: 0,
- number: previousSibling ? previousSibling._tree.number + 1 : 0
- };
- });
- firstWalk(root);
- secondWalk(root, -root._tree.prelim);
- var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
- d3_layout_treeVisitAfter(root, function(node) {
- node.x = (node.x - x0) / (x1 - x0) * size[0];
- node.y = node.depth / y1 * size[1];
- delete node._tree;
- });
- return nodes;
- }
- tree.separation = function(x) {
- if (!arguments.length) return separation;
- separation = x;
- return tree;
- };
- tree.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return tree;
- };
- return d3_layout_hierarchyRebind(tree, hierarchy);
- };
- function d3_layout_treeSeparation(a, b) {
- return a.parent == b.parent ? 1 : 2;
- }
- function d3_layout_treeLeft(node) {
- var children = node.children;
- return children && children.length ? children[0] : node._tree.thread;
- }
- function d3_layout_treeRight(node) {
- var children = node.children, n;
- return children && (n = children.length) ? children[n - 1] : node._tree.thread;
- }
- function d3_layout_treeSearch(node, compare) {
- var children = node.children;
- if (children && (n = children.length)) {
- var child, n, i = -1;
- while (++i < n) {
- if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
- node = child;
- }
- }
- }
- return node;
- }
- function d3_layout_treeRightmost(a, b) {
- return a.x - b.x;
- }
- function d3_layout_treeLeftmost(a, b) {
- return b.x - a.x;
- }
- function d3_layout_treeDeepest(a, b) {
- return a.depth - b.depth;
- }
- function d3_layout_treeVisitAfter(node, callback) {
- function visit(node, previousSibling) {
- var children = node.children;
- if (children && (n = children.length)) {
- var child, previousChild = null, i = -1, n;
- while (++i < n) {
- child = children[i];
- visit(child, previousChild);
- previousChild = child;
- }
- }
- callback(node, previousSibling);
- }
- visit(node, null);
- }
- function d3_layout_treeShift(node) {
- var shift = 0, change = 0, children = node.children, i = children.length, child;
- while (--i >= 0) {
- child = children[i]._tree;
- child.prelim += shift;
- child.mod += shift;
- shift += child.shift + (change += child.change);
- }
- }
- function d3_layout_treeMove(ancestor, node, shift) {
- ancestor = ancestor._tree;
- node = node._tree;
- var change = shift / (node.number - ancestor.number);
- ancestor.change += change;
- node.change -= change;
- node.shift += shift;
- node.prelim += shift;
- node.mod += shift;
- }
- function d3_layout_treeAncestor(vim, node, ancestor) {
- return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
- }
- d3.layout.pack = function() {
- var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
- function pack(d, i) {
- var nodes = hierarchy.call(this, d, i), root = nodes[0];
- root.x = 0;
- root.y = 0;
- d3_layout_treeVisitAfter(root, function(d) {
- d.r = Math.sqrt(d.value);
- });
- d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
- var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
- if (padding > 0) {
- var dr = padding * k / 2;
- d3_layout_treeVisitAfter(root, function(d) {
- d.r += dr;
- });
- d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
- d3_layout_treeVisitAfter(root, function(d) {
- d.r -= dr;
- });
- k = Math.max(2 * root.r / w, 2 * root.r / h);
- }
- d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
- return nodes;
- }
- pack.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return pack;
- };
- pack.padding = function(_) {
- if (!arguments.length) return padding;
- padding = +_;
- return pack;
- };
- return d3_layout_hierarchyRebind(pack, hierarchy);
- };
- function d3_layout_packSort(a, b) {
- return a.value - b.value;
- }
- function d3_layout_packInsert(a, b) {
- var c = a._pack_next;
- a._pack_next = b;
- b._pack_prev = a;
- b._pack_next = c;
- c._pack_prev = b;
- }
- function d3_layout_packSplice(a, b) {
- a._pack_next = b;
- b._pack_prev = a;
- }
- function d3_layout_packIntersects(a, b) {
- var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
- return dr * dr - dx * dx - dy * dy > .001;
- }
- function d3_layout_packSiblings(node) {
- if (!(nodes = node.children) || !(n = nodes.length)) return;
- var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
- function bound(node) {
- xMin = Math.min(node.x - node.r, xMin);
- xMax = Math.max(node.x + node.r, xMax);
- yMin = Math.min(node.y - node.r, yMin);
- yMax = Math.max(node.y + node.r, yMax);
- }
- nodes.forEach(d3_layout_packLink);
- a = nodes[0];
- a.x = -a.r;
- a.y = 0;
- bound(a);
- if (n > 1) {
- b = nodes[1];
- b.x = b.r;
- b.y = 0;
- bound(b);
- if (n > 2) {
- c = nodes[2];
- d3_layout_packPlace(a, b, c);
- bound(c);
- d3_layout_packInsert(a, c);
- a._pack_prev = c;
- d3_layout_packInsert(c, b);
- b = a._pack_next;
- for (i = 3; i < n; i++) {
- d3_layout_packPlace(a, b, c = nodes[i]);
- var isect = 0, s1 = 1, s2 = 1;
- for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
- if (d3_layout_packIntersects(j, c)) {
- isect = 1;
- break;
- }
- }
- if (isect == 1) {
- for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
- if (d3_layout_packIntersects(k, c)) {
- break;
- }
- }
- }
- if (isect) {
- if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
- i--;
- } else {
- d3_layout_packInsert(a, c);
- b = c;
- bound(c);
- }
- }
- }
- }
- var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
- for (i = 0; i < n; i++) {
- c = nodes[i];
- c.x -= cx;
- c.y -= cy;
- cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
- }
- node.r = cr;
- nodes.forEach(d3_layout_packUnlink);
- }
- function d3_layout_packLink(node) {
- node._pack_next = node._pack_prev = node;
- }
- function d3_layout_packUnlink(node) {
- delete node._pack_next;
- delete node._pack_prev;
- }
- function d3_layout_packTransform(node, x, y, k) {
- var children = node.children;
- node.x = x += k * node.x;
- node.y = y += k * node.y;
- node.r *= k;
- if (children) {
- var i = -1, n = children.length;
- while (++i < n) d3_layout_packTransform(children[i], x, y, k);
- }
- }
- function d3_layout_packPlace(a, b, c) {
- var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
- if (db && (dx || dy)) {
- var da = b.r + c.r, dc = dx * dx + dy * dy;
- da *= da;
- db *= db;
- var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
- c.x = a.x + x * dx + y * dy;
- c.y = a.y + x * dy - y * dx;
- } else {
- c.x = a.x + db;
- c.y = a.y;
- }
- }
- d3.layout.cluster = function() {
- var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
- function cluster(d, i) {
- var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
- d3_layout_treeVisitAfter(root, function(node) {
- var children = node.children;
- if (children && children.length) {
- node.x = d3_layout_clusterX(children);
- node.y = d3_layout_clusterY(children);
- } else {
- node.x = previousNode ? x += separation(node, previousNode) : 0;
- node.y = 0;
- previousNode = node;
- }
- });
- var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
- d3_layout_treeVisitAfter(root, function(node) {
- node.x = (node.x - x0) / (x1 - x0) * size[0];
- node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
- });
- return nodes;
- }
- cluster.separation = function(x) {
- if (!arguments.length) return separation;
- separation = x;
- return cluster;
- };
- cluster.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return cluster;
- };
- return d3_layout_hierarchyRebind(cluster, hierarchy);
- };
- function d3_layout_clusterY(children) {
- return 1 + d3.max(children, function(child) {
- return child.y;
- });
- }
- function d3_layout_clusterX(children) {
- return children.reduce(function(x, child) {
- return x + child.x;
- }, 0) / children.length;
- }
- function d3_layout_clusterLeft(node) {
- var children = node.children;
- return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
- }
- function d3_layout_clusterRight(node) {
- var children = node.children, n;
- return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
- }
- d3.layout.treemap = function() {
- var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
- function scale(children, k) {
- var i = -1, n = children.length, child, area;
- while (++i < n) {
- area = (child = children[i]).value * (k < 0 ? 0 : k);
- child.area = isNaN(area) || area <= 0 ? 0 : area;
- }
- }
- function squarify(node) {
- var children = node.children;
- if (children && children.length) {
- var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
- scale(remaining, rect.dx * rect.dy / node.value);
- row.area = 0;
- while ((n = remaining.length) > 0) {
- row.push(child = remaining[n - 1]);
- row.area += child.area;
- if (mode !== "squarify" || (score = worst(row, u)) <= best) {
- remaining.pop();
- best = score;
- } else {
- row.area -= row.pop().area;
- position(row, u, rect, false);
- u = Math.min(rect.dx, rect.dy);
- row.length = row.area = 0;
- best = Infinity;
- }
- }
- if (row.length) {
- position(row, u, rect, true);
- row.length = row.area = 0;
- }
- children.forEach(squarify);
- }
- }
- function stickify(node) {
- var children = node.children;
- if (children && children.length) {
- var rect = pad(node), remaining = children.slice(), child, row = [];
- scale(remaining, rect.dx * rect.dy / node.value);
- row.area = 0;
- while (child = remaining.pop()) {
- row.push(child);
- row.area += child.area;
- if (child.z != null) {
- position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
- row.length = row.area = 0;
- }
- }
- children.forEach(stickify);
- }
- }
- function worst(row, u) {
- var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
- while (++i < n) {
- if (!(r = row[i].area)) continue;
- if (r < rmin) rmin = r;
- if (r > rmax) rmax = r;
- }
- s *= s;
- u *= u;
- return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
- }
- function position(row, u, rect, flush) {
- var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
- if (u == rect.dx) {
- if (flush || v > rect.dy) v = rect.dy;
- while (++i < n) {
- o = row[i];
- o.x = x;
- o.y = y;
- o.dy = v;
- x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
- }
- o.z = true;
- o.dx += rect.x + rect.dx - x;
- rect.y += v;
- rect.dy -= v;
- } else {
- if (flush || v > rect.dx) v = rect.dx;
- while (++i < n) {
- o = row[i];
- o.x = x;
- o.y = y;
- o.dx = v;
- y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
- }
- o.z = false;
- o.dy += rect.y + rect.dy - y;
- rect.x += v;
- rect.dx -= v;
- }
- }
- function treemap(d) {
- var nodes = stickies || hierarchy(d), root = nodes[0];
- root.x = 0;
- root.y = 0;
- root.dx = size[0];
- root.dy = size[1];
- if (stickies) hierarchy.revalue(root);
- scale([ root ], root.dx * root.dy / root.value);
- (stickies ? stickify : squarify)(root);
- if (sticky) stickies = nodes;
- return nodes;
- }
- treemap.size = function(x) {
- if (!arguments.length) return size;
- size = x;
- return treemap;
- };
- treemap.padding = function(x) {
- if (!arguments.length) return padding;
- function padFunction(node) {
- var p = x.call(treemap, node, node.depth);
- return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
- }
- function padConstant(node) {
- return d3_layout_treemapPad(node, x);
- }
- var type;
- pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
- padConstant) : padConstant;
- return treemap;
- };
- treemap.round = function(x) {
- if (!arguments.length) return round != Number;
- round = x ? Math.round : Number;
- return treemap;
- };
- treemap.sticky = function(x) {
- if (!arguments.length) return sticky;
- sticky = x;
- stickies = null;
- return treemap;
- };
- treemap.ratio = function(x) {
- if (!arguments.length) return ratio;
- ratio = x;
- return treemap;
- };
- treemap.mode = function(x) {
- if (!arguments.length) return mode;
- mode = x + "";
- return treemap;
- };
- return d3_layout_hierarchyRebind(treemap, hierarchy);
- };
- function d3_layout_treemapPadNull(node) {
- return {
- x: node.x,
- y: node.y,
- dx: node.dx,
- dy: node.dy
- };
- }
- function d3_layout_treemapPad(node, padding) {
- var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
- if (dx < 0) {
- x += dx / 2;
- dx = 0;
- }
- if (dy < 0) {
- y += dy / 2;
- dy = 0;
- }
- return {
- x: x,
- y: y,
- dx: dx,
- dy: dy
- };
- }
- d3.random = {
- normal: function(µ, σ) {
- var n = arguments.length;
- if (n < 2) σ = 1;
- if (n < 1) µ = 0;
- return function() {
- var x, y, r;
- do {
- x = Math.random() * 2 - 1;
- y = Math.random() * 2 - 1;
- r = x * x + y * y;
- } while (!r || r > 1);
- return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
- };
- },
- logNormal: function() {
- var random = d3.random.normal.apply(d3, arguments);
- return function() {
- return Math.exp(random());
- };
- },
- irwinHall: function(m) {
- return function() {
- for (var s = 0, j = 0; j < m; j++) s += Math.random();
- return s / m;
- };
- }
- };
- d3.scale = {};
- function d3_scaleExtent(domain) {
- var start = domain[0], stop = domain[domain.length - 1];
- return start < stop ? [ start, stop ] : [ stop, start ];
- }
- function d3_scaleRange(scale) {
- return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
- }
- function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
- var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
- return function(x) {
- return i(u(x));
- };
- }
- function d3_scale_nice(domain, nice) {
- var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
- if (x1 < x0) {
- dx = i0, i0 = i1, i1 = dx;
- dx = x0, x0 = x1, x1 = dx;
- }
- if (nice = nice(x1 - x0)) {
- domain[i0] = nice.floor(x0);
- domain[i1] = nice.ceil(x1);
- }
- return domain;
- }
- function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
- var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
- if (domain[k] < domain[0]) {
- domain = domain.slice().reverse();
- range = range.slice().reverse();
- }
- while (++j <= k) {
- u.push(uninterpolate(domain[j - 1], domain[j]));
- i.push(interpolate(range[j - 1], range[j]));
- }
- return function(x) {
- var j = d3.bisect(domain, x, 1, k) - 1;
- return i[j](u[j](x));
- };
- }
- d3.scale.linear = function() {
- return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
- };
- function d3_scale_linear(domain, range, interpolate, clamp) {
- var output, input;
- function rescale() {
- var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
- output = linear(domain, range, uninterpolate, interpolate);
- input = linear(range, domain, uninterpolate, d3_interpolate);
- return scale;
- }
- function scale(x) {
- return output(x);
- }
- scale.invert = function(y) {
- return input(y);
- };
- scale.domain = function(x) {
- if (!arguments.length) return domain;
- domain = x.map(Number);
- return rescale();
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- return rescale();
- };
- scale.rangeRound = function(x) {
- return scale.range(x).interpolate(d3_interpolateRound);
- };
- scale.clamp = function(x) {
- if (!arguments.length) return clamp;
- clamp = x;
- return rescale();
- };
- scale.interpolate = function(x) {
- if (!arguments.length) return interpolate;
- interpolate = x;
- return rescale();
- };
- scale.ticks = function(m) {
- return d3_scale_linearTicks(domain, m);
- };
- scale.tickFormat = function(m, format) {
- return d3_scale_linearTickFormat(domain, m, format);
- };
- scale.nice = function() {
- d3_scale_nice(domain, d3_scale_linearNice);
- return rescale();
- };
- scale.copy = function() {
- return d3_scale_linear(domain, range, interpolate, clamp);
- };
- return rescale();
- }
- function d3_scale_linearRebind(scale, linear) {
- return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
- }
- function d3_scale_linearNice(dx) {
- dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
- return dx && {
- floor: function(x) {
- return Math.floor(x / dx) * dx;
- },
- ceil: function(x) {
- return Math.ceil(x / dx) * dx;
- }
- };
- }
- function d3_scale_linearTickRange(domain, m) {
- var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
- extent[0] = Math.ceil(extent[0] / step) * step;
- extent[1] = Math.floor(extent[1] / step) * step + step * .5;
- extent[2] = step;
- return extent;
- }
- function d3_scale_linearTicks(domain, m) {
- return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
- }
- function d3_scale_linearTickFormat(domain, m, format) {
- var precision = -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01);
- return d3.format(format ? format.replace(d3_format_re, function(a, b, c, d, e, f, g, h, i, j) {
- return [ b, c, d, e, f, g, h, i || "." + (precision - (j === "%") * 2), j ].join("");
- }) : ",." + precision + "f");
- }
- d3.scale.log = function() {
- return d3_scale_log(d3.scale.linear().domain([ 0, Math.LN10 ]), 10, d3_scale_logp, d3_scale_powp);
- };
- function d3_scale_log(linear, base, log, pow) {
- function scale(x) {
- return linear(log(x));
- }
- scale.invert = function(x) {
- return pow(linear.invert(x));
- };
- scale.domain = function(x) {
- if (!arguments.length) return linear.domain().map(pow);
- if (x[0] < 0) log = d3_scale_logn, pow = d3_scale_pown; else log = d3_scale_logp,
- pow = d3_scale_powp;
- linear.domain(x.map(log));
- return scale;
- };
- scale.base = function(_) {
- if (!arguments.length) return base;
- base = +_;
- return scale;
- };
- scale.nice = function() {
- linear.domain(d3_scale_nice(linear.domain(), d3_scale_logNice(base)));
- return scale;
- };
- scale.ticks = function() {
- var extent = d3_scaleExtent(linear.domain()), ticks = [];
- if (extent.every(isFinite)) {
- var b = Math.log(base), i = Math.floor(extent[0] / b), j = Math.ceil(extent[1] / b), u = pow(extent[0]), v = pow(extent[1]), n = base % 1 ? 2 : base;
- if (log === d3_scale_logn) {
- ticks.push(-Math.pow(base, -i));
- for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(-Math.pow(base, -i) * k);
- } else {
- for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(Math.pow(base, i) * k);
- ticks.push(Math.pow(base, i));
- }
- for (i = 0; ticks[i] < u; i++) {}
- for (j = ticks.length; ticks[j - 1] > v; j--) {}
- ticks = ticks.slice(i, j);
- }
- return ticks;
- };
- scale.tickFormat = function(n, format) {
- if (arguments.length < 2) format = d3_scale_logFormat;
- if (!arguments.length) return format;
- var b = Math.log(base), k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12,
- Math.floor) : (e = 1e-12, Math.ceil), e;
- return function(d) {
- return d / pow(b * f(log(d) / b + e)) <= k ? format(d) : "";
- };
- };
- scale.copy = function() {
- return d3_scale_log(linear.copy(), base, log, pow);
- };
- return d3_scale_linearRebind(scale, linear);
- }
- var d3_scale_logFormat = d3.format(".0e");
- function d3_scale_logp(x) {
- return Math.log(x < 0 ? 0 : x);
- }
- function d3_scale_powp(x) {
- return Math.exp(x);
- }
- function d3_scale_logn(x) {
- return -Math.log(x > 0 ? 0 : -x);
- }
- function d3_scale_pown(x) {
- return -Math.exp(-x);
- }
- function d3_scale_logNice(base) {
- base = Math.log(base);
- var nice = {
- floor: function(x) {
- return Math.floor(x / base) * base;
- },
- ceil: function(x) {
- return Math.ceil(x / base) * base;
- }
- };
- return function() {
- return nice;
- };
- }
- d3.scale.pow = function() {
- return d3_scale_pow(d3.scale.linear(), 1);
- };
- function d3_scale_pow(linear, exponent) {
- var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
- function scale(x) {
- return linear(powp(x));
- }
- scale.invert = function(x) {
- return powb(linear.invert(x));
- };
- scale.domain = function(x) {
- if (!arguments.length) return linear.domain().map(powb);
- linear.domain(x.map(powp));
- return scale;
- };
- scale.ticks = function(m) {
- return d3_scale_linearTicks(scale.domain(), m);
- };
- scale.tickFormat = function(m, format) {
- return d3_scale_linearTickFormat(scale.domain(), m, format);
- };
- scale.nice = function() {
- return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
- };
- scale.exponent = function(x) {
- if (!arguments.length) return exponent;
- var domain = scale.domain();
- powp = d3_scale_powPow(exponent = x);
- powb = d3_scale_powPow(1 / exponent);
- return scale.domain(domain);
- };
- scale.copy = function() {
- return d3_scale_pow(linear.copy(), exponent);
- };
- return d3_scale_linearRebind(scale, linear);
- }
- function d3_scale_powPow(e) {
- return function(x) {
- return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
- };
- }
- d3.scale.sqrt = function() {
- return d3.scale.pow().exponent(.5);
- };
- d3.scale.ordinal = function() {
- return d3_scale_ordinal([], {
- t: "range",
- a: [ [] ]
- });
- };
- function d3_scale_ordinal(domain, ranger) {
- var index, range, rangeBand;
- function scale(x) {
- return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
- }
- function steps(start, step) {
- return d3.range(domain.length).map(function(i) {
- return start + step * i;
- });
- }
- scale.domain = function(x) {
- if (!arguments.length) return domain;
- domain = [];
- index = new d3_Map();
- var i = -1, n = x.length, xi;
- while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
- return scale[ranger.t].apply(scale, ranger.a);
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- rangeBand = 0;
- ranger = {
- t: "range",
- a: arguments
- };
- return scale;
- };
- scale.rangePoints = function(x, padding) {
- if (arguments.length < 2) padding = 0;
- var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
- range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
- rangeBand = 0;
- ranger = {
- t: "rangePoints",
- a: arguments
- };
- return scale;
- };
- scale.rangeBands = function(x, padding, outerPadding) {
- if (arguments.length < 2) padding = 0;
- if (arguments.length < 3) outerPadding = padding;
- var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
- range = steps(start + step * outerPadding, step);
- if (reverse) range.reverse();
- rangeBand = step * (1 - padding);
- ranger = {
- t: "rangeBands",
- a: arguments
- };
- return scale;
- };
- scale.rangeRoundBands = function(x, padding, outerPadding) {
- if (arguments.length < 2) padding = 0;
- if (arguments.length < 3) outerPadding = padding;
- var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
- range = steps(start + Math.round(error / 2), step);
- if (reverse) range.reverse();
- rangeBand = Math.round(step * (1 - padding));
- ranger = {
- t: "rangeRoundBands",
- a: arguments
- };
- return scale;
- };
- scale.rangeBand = function() {
- return rangeBand;
- };
- scale.rangeExtent = function() {
- return d3_scaleExtent(ranger.a[0]);
- };
- scale.copy = function() {
- return d3_scale_ordinal(domain, ranger);
- };
- return scale.domain(domain);
- }
- d3.scale.category10 = function() {
- return d3.scale.ordinal().range(d3_category10);
- };
- d3.scale.category20 = function() {
- return d3.scale.ordinal().range(d3_category20);
- };
- d3.scale.category20b = function() {
- return d3.scale.ordinal().range(d3_category20b);
- };
- d3.scale.category20c = function() {
- return d3.scale.ordinal().range(d3_category20c);
- };
- var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
- var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
- var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
- var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
- d3.scale.quantile = function() {
- return d3_scale_quantile([], []);
- };
- function d3_scale_quantile(domain, range) {
- var thresholds;
- function rescale() {
- var k = 0, q = range.length;
- thresholds = [];
- while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
- return scale;
- }
- function scale(x) {
- if (isNaN(x = +x)) return NaN;
- return range[d3.bisect(thresholds, x)];
- }
- scale.domain = function(x) {
- if (!arguments.length) return domain;
- domain = x.filter(function(d) {
- return !isNaN(d);
- }).sort(d3.ascending);
- return rescale();
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- return rescale();
- };
- scale.quantiles = function() {
- return thresholds;
- };
- scale.copy = function() {
- return d3_scale_quantile(domain, range);
- };
- return rescale();
- }
- d3.scale.quantize = function() {
- return d3_scale_quantize(0, 1, [ 0, 1 ]);
- };
- function d3_scale_quantize(x0, x1, range) {
- var kx, i;
- function scale(x) {
- return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
- }
- function rescale() {
- kx = range.length / (x1 - x0);
- i = range.length - 1;
- return scale;
- }
- scale.domain = function(x) {
- if (!arguments.length) return [ x0, x1 ];
- x0 = +x[0];
- x1 = +x[x.length - 1];
- return rescale();
- };
- scale.range = function(x) {
- if (!arguments.length) return range;
- range = x;
- return rescale();
- };
- scale.copy = function() {
- return d3_scale_quantize(x0, x1, range);
- };
- return rescale();
- }
- d3.scale.threshold = function() {
- return d3_scale_threshold([ .5 ], [ 0, 1 ]);
- };
- function d3_scale_threshold(domain, range) {
- function scale(x) {
- return range[d3.bisect(domain, x)];
- }
- scale.domain = function(_) {
- if (!arguments.length) return domain;
- domain = _;
- return scale;
- };
- scale.range = function(_) {
- if (!arguments.length) return range;
- range = _;
- return scale;
- };
- scale.copy = function() {
- return d3_scale_threshold(domain, range);
- };
- return scale;
- }
- d3.scale.identity = function() {
- return d3_scale_identity([ 0, 1 ]);
- };
- function d3_scale_identity(domain) {
- function identity(x) {
- return +x;
- }
- identity.invert = identity;
- identity.domain = identity.range = function(x) {
- if (!arguments.length) return domain;
- domain = x.map(identity);
- return identity;
- };
- identity.ticks = function(m) {
- return d3_scale_linearTicks(domain, m);
- };
- identity.tickFormat = function(m, format) {
- return d3_scale_linearTickFormat(domain, m, format);
- };
- identity.copy = function() {
- return d3_scale_identity(domain);
- };
- return identity;
- }
- d3.svg.arc = function() {
- var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
- function arc() {
- var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0,
- a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
- return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
- }
- arc.innerRadius = function(v) {
- if (!arguments.length) return innerRadius;
- innerRadius = d3_functor(v);
- return arc;
- };
- arc.outerRadius = function(v) {
- if (!arguments.length) return outerRadius;
- outerRadius = d3_functor(v);
- return arc;
- };
- arc.startAngle = function(v) {
- if (!arguments.length) return startAngle;
- startAngle = d3_functor(v);
- return arc;
- };
- arc.endAngle = function(v) {
- if (!arguments.length) return endAngle;
- endAngle = d3_functor(v);
- return arc;
- };
- arc.centroid = function() {
- var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
- return [ Math.cos(a) * r, Math.sin(a) * r ];
- };
- return arc;
- };
- var d3_svg_arcOffset = -π / 2, d3_svg_arcMax = 2 * π - 1e-6;
- function d3_svg_arcInnerRadius(d) {
- return d.innerRadius;
- }
- function d3_svg_arcOuterRadius(d) {
- return d.outerRadius;
- }
- function d3_svg_arcStartAngle(d) {
- return d.startAngle;
- }
- function d3_svg_arcEndAngle(d) {
- return d.endAngle;
- }
- d3.svg.line.radial = function() {
- var line = d3_svg_line(d3_svg_lineRadial);
- line.radius = line.x, delete line.x;
- line.angle = line.y, delete line.y;
- return line;
- };
- function d3_svg_lineRadial(points) {
- var point, i = -1, n = points.length, r, a;
- while (++i < n) {
- point = points[i];
- r = point[0];
- a = point[1] + d3_svg_arcOffset;
- point[0] = r * Math.cos(a);
- point[1] = r * Math.sin(a);
- }
- return points;
- }
- function d3_svg_area(projection) {
- var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
- function area(data) {
- var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
- return x;
- } : d3_functor(x1), fy1 = y0 === y1 ? function() {
- return y;
- } : d3_functor(y1), x, y;
- function segment() {
- segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
- }
- while (++i < n) {
- if (defined.call(this, d = data[i], i)) {
- points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
- points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
- } else if (points0.length) {
- segment();
- points0 = [];
- points1 = [];
- }
- }
- if (points0.length) segment();
- return segments.length ? segments.join("") : null;
- }
- area.x = function(_) {
- if (!arguments.length) return x1;
- x0 = x1 = _;
- return area;
- };
- area.x0 = function(_) {
- if (!arguments.length) return x0;
- x0 = _;
- return area;
- };
- area.x1 = function(_) {
- if (!arguments.length) return x1;
- x1 = _;
- return area;
- };
- area.y = function(_) {
- if (!arguments.length) return y1;
- y0 = y1 = _;
- return area;
- };
- area.y0 = function(_) {
- if (!arguments.length) return y0;
- y0 = _;
- return area;
- };
- area.y1 = function(_) {
- if (!arguments.length) return y1;
- y1 = _;
- return area;
- };
- area.defined = function(_) {
- if (!arguments.length) return defined;
- defined = _;
- return area;
- };
- area.interpolate = function(_) {
- if (!arguments.length) return interpolateKey;
- if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
- interpolateReverse = interpolate.reverse || interpolate;
- L = interpolate.closed ? "M" : "L";
- return area;
- };
- area.tension = function(_) {
- if (!arguments.length) return tension;
- tension = _;
- return area;
- };
- return area;
- }
- d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
- d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
- d3.svg.area = function() {
- return d3_svg_area(d3_identity);
- };
- d3.svg.area.radial = function() {
- var area = d3_svg_area(d3_svg_lineRadial);
- area.radius = area.x, delete area.x;
- area.innerRadius = area.x0, delete area.x0;
- area.outerRadius = area.x1, delete area.x1;
- area.angle = area.y, delete area.y;
- area.startAngle = area.y0, delete area.y0;
- area.endAngle = area.y1, delete area.y1;
- return area;
- };
- d3.svg.chord = function() {
- var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
- function chord(d, i) {
- var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
- return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
- }
- function subgroup(self, f, d, i) {
- var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
- return {
- r: r,
- a0: a0,
- a1: a1,
- p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
- p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
- };
- }
- function equals(a, b) {
- return a.a0 == b.a0 && a.a1 == b.a1;
- }
- function arc(r, p, a) {
- return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
- }
- function curve(r0, p0, r1, p1) {
- return "Q 0,0 " + p1;
- }
- chord.radius = function(v) {
- if (!arguments.length) return radius;
- radius = d3_functor(v);
- return chord;
- };
- chord.source = function(v) {
- if (!arguments.length) return source;
- source = d3_functor(v);
- return chord;
- };
- chord.target = function(v) {
- if (!arguments.length) return target;
- target = d3_functor(v);
- return chord;
- };
- chord.startAngle = function(v) {
- if (!arguments.length) return startAngle;
- startAngle = d3_functor(v);
- return chord;
- };
- chord.endAngle = function(v) {
- if (!arguments.length) return endAngle;
- endAngle = d3_functor(v);
- return chord;
- };
- return chord;
- };
- function d3_svg_chordRadius(d) {
- return d.radius;
- }
- d3.svg.diagonal = function() {
- var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
- function diagonal(d, i) {
- var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
- x: p0.x,
- y: m
- }, {
- x: p3.x,
- y: m
- }, p3 ];
- p = p.map(projection);
- return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
- }
- diagonal.source = function(x) {
- if (!arguments.length) return source;
- source = d3_functor(x);
- return diagonal;
- };
- diagonal.target = function(x) {
- if (!arguments.length) return target;
- target = d3_functor(x);
- return diagonal;
- };
- diagonal.projection = function(x) {
- if (!arguments.length) return projection;
- projection = x;
- return diagonal;
- };
- return diagonal;
- };
- function d3_svg_diagonalProjection(d) {
- return [ d.x, d.y ];
- }
- d3.svg.diagonal.radial = function() {
- var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
- diagonal.projection = function(x) {
- return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
- };
- return diagonal;
- };
- function d3_svg_diagonalRadialProjection(projection) {
- return function() {
- var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
- return [ r * Math.cos(a), r * Math.sin(a) ];
- };
- }
- d3.svg.symbol = function() {
- var type = d3_svg_symbolType, size = d3_svg_symbolSize;
- function symbol(d, i) {
- return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
- }
- symbol.type = function(x) {
- if (!arguments.length) return type;
- type = d3_functor(x);
- return symbol;
- };
- symbol.size = function(x) {
- if (!arguments.length) return size;
- size = d3_functor(x);
- return symbol;
- };
- return symbol;
- };
- function d3_svg_symbolSize() {
- return 64;
- }
- function d3_svg_symbolType() {
- return "circle";
- }
- function d3_svg_symbolCircle(size) {
- var r = Math.sqrt(size / π);
- return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
- }
- var d3_svg_symbols = d3.map({
- circle: d3_svg_symbolCircle,
- cross: function(size) {
- var r = Math.sqrt(size / 5) / 2;
- return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
- },
- diamond: function(size) {
- var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
- return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
- },
- square: function(size) {
- var r = Math.sqrt(size) / 2;
- return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
- },
- "triangle-down": function(size) {
- var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
- return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
- },
- "triangle-up": function(size) {
- var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
- return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
- }
- });
- d3.svg.symbolTypes = d3_svg_symbols.keys();
- var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
- function d3_transition(groups, id) {
- d3_arraySubclass(groups, d3_transitionPrototype);
- groups.id = id;
- return groups;
- }
- var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = {
- ease: d3_ease_cubicInOut,
- delay: 0,
- duration: 250
- };
- d3_transitionPrototype.call = d3_selectionPrototype.call;
- d3_transitionPrototype.empty = d3_selectionPrototype.empty;
- d3_transitionPrototype.node = d3_selectionPrototype.node;
- d3.transition = function(selection) {
- return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();
- };
- d3.transition.prototype = d3_transitionPrototype;
- d3_transitionPrototype.select = function(selector) {
- var id = this.id, subgroups = [], subgroup, subnode, node;
- if (typeof selector !== "function") selector = d3_selection_selector(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- subgroups.push(subgroup = []);
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) {
- if ("__data__" in node) subnode.__data__ = node.__data__;
- d3_transitionNode(subnode, i, id, node.__transition__[id]);
- subgroup.push(subnode);
- } else {
- subgroup.push(null);
- }
- }
- }
- return d3_transition(subgroups, id);
- };
- d3_transitionPrototype.selectAll = function(selector) {
- var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;
- if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
- for (var j = -1, m = this.length; ++j < m; ) {
- for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
- if (node = group[i]) {
- transition = node.__transition__[id];
- subnodes = selector.call(node, node.__data__, i);
- subgroups.push(subgroup = []);
- for (var k = -1, o = subnodes.length; ++k < o; ) {
- d3_transitionNode(subnode = subnodes[k], k, id, transition);
- subgroup.push(subnode);
- }
- }
- }
- }
- return d3_transition(subgroups, id);
- };
- d3_transitionPrototype.filter = function(filter) {
- var subgroups = [], subgroup, group, node;
- if (typeof filter !== "function") filter = d3_selection_filter(filter);
- for (var j = 0, m = this.length; j < m; j++) {
- subgroups.push(subgroup = []);
- for (var group = this[j], i = 0, n = group.length; i < n; i++) {
- if ((node = group[i]) && filter.call(node, node.__data__, i)) {
- subgroup.push(node);
- }
- }
- }
- return d3_transition(subgroups, this.id, this.time).ease(this.ease());
- };
- d3_transitionPrototype.tween = function(name, tween) {
- var id = this.id;
- if (arguments.length < 2) return this.node().__transition__[id].tween.get(name);
- return d3_selection_each(this, tween == null ? function(node) {
- node.__transition__[id].tween.remove(name);
- } : function(node) {
- node.__transition__[id].tween.set(name, tween);
- });
- };
- function d3_transition_tween(groups, name, value, tween) {
- var id = groups.id;
- return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
- node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
- } : (value = tween(value), function(node) {
- node.__transition__[id].tween.set(name, value);
- }));
- }
- d3_transitionPrototype.attr = function(nameNS, value) {
- if (arguments.length < 2) {
- for (value in nameNS) this.attr(value, nameNS[value]);
- return this;
- }
- var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS);
- function attrNull() {
- this.removeAttribute(name);
- }
- function attrNullNS() {
- this.removeAttributeNS(name.space, name.local);
- }
- return d3_transition_tween(this, "attr." + nameNS, value, function(b) {
- function attrString() {
- var a = this.getAttribute(name), i;
- return a !== b && (i = interpolate(a, b), function(t) {
- this.setAttribute(name, i(t));
- });
- }
- function attrStringNS() {
- var a = this.getAttributeNS(name.space, name.local), i;
- return a !== b && (i = interpolate(a, b), function(t) {
- this.setAttributeNS(name.space, name.local, i(t));
- });
- }
- return b == null ? name.local ? attrNullNS : attrNull : (b += "", name.local ? attrStringNS : attrString);
- });
- };
- d3_transitionPrototype.attrTween = function(nameNS, tween) {
- var name = d3.ns.qualify(nameNS);
- function attrTween(d, i) {
- var f = tween.call(this, d, i, this.getAttribute(name));
- return f && function(t) {
- this.setAttribute(name, f(t));
- };
- }
- function attrTweenNS(d, i) {
- var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
- return f && function(t) {
- this.setAttributeNS(name.space, name.local, f(t));
- };
- }
- return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
- };
- d3_transitionPrototype.style = function(name, value, priority) {
- var n = arguments.length;
- if (n < 3) {
- if (typeof name !== "string") {
- if (n < 2) value = "";
- for (priority in name) this.style(priority, name[priority], value);
- return this;
- }
- priority = "";
- }
- var interpolate = d3_interpolateByName(name);
- function styleNull() {
- this.style.removeProperty(name);
- }
- return d3_transition_tween(this, "style." + name, value, function(b) {
- function styleString() {
- var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i;
- return a !== b && (i = interpolate(a, b), function(t) {
- this.style.setProperty(name, i(t), priority);
- });
- }
- return b == null ? styleNull : (b += "", styleString);
- });
- };
- d3_transitionPrototype.styleTween = function(name, tween, priority) {
- if (arguments.length < 3) priority = "";
- return this.tween("style." + name, function(d, i) {
- var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name));
- return f && function(t) {
- this.style.setProperty(name, f(t), priority);
- };
- });
- };
- d3_transitionPrototype.text = function(value) {
- return d3_transition_tween(this, "text", value, d3_transition_text);
- };
- function d3_transition_text(b) {
- if (b == null) b = "";
- return function() {
- this.textContent = b;
- };
- }
- d3_transitionPrototype.remove = function() {
- return this.each("end.transition", function() {
- var p;
- if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
- });
- };
- d3_transitionPrototype.ease = function(value) {
- var id = this.id;
- if (arguments.length < 1) return this.node().__transition__[id].ease;
- if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
- return d3_selection_each(this, function(node) {
- node.__transition__[id].ease = value;
- });
- };
- d3_transitionPrototype.delay = function(value) {
- var id = this.id;
- return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
- node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0;
- } : (value |= 0, function(node) {
- node.__transition__[id].delay = value;
- }));
- };
- d3_transitionPrototype.duration = function(value) {
- var id = this.id;
- return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
- node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0);
- } : (value = Math.max(1, value | 0), function(node) {
- node.__transition__[id].duration = value;
- }));
- };
- d3_transitionPrototype.each = function(type, listener) {
- var id = this.id;
- if (arguments.length < 2) {
- var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
- d3_transitionInheritId = id;
- d3_selection_each(this, function(node, i, j) {
- d3_transitionInherit = node.__transition__[id];
- type.call(node, node.__data__, i, j);
- });
- d3_transitionInherit = inherit;
- d3_transitionInheritId = inheritId;
- } else {
- d3_selection_each(this, function(node) {
- node.__transition__[id].event.on(type, listener);
- });
- }
- return this;
- };
- d3_transitionPrototype.transition = function() {
- var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;
- for (var j = 0, m = this.length; j < m; j++) {
- subgroups.push(subgroup = []);
- for (var group = this[j], i = 0, n = group.length; i < n; i++) {
- if (node = group[i]) {
- transition = Object.create(node.__transition__[id0]);
- transition.delay += transition.duration;
- d3_transitionNode(node, i, id1, transition);
- }
- subgroup.push(node);
- }
- }
- return d3_transition(subgroups, id1);
- };
- function d3_transitionNode(node, i, id, inherit) {
- var lock = node.__transition__ || (node.__transition__ = {
- active: 0,
- count: 0
- }), transition = lock[id];
- if (!transition) {
- var time = inherit.time;
- transition = lock[id] = {
- tween: new d3_Map(),
- event: d3.dispatch("start", "end"),
- time: time,
- ease: inherit.ease,
- delay: inherit.delay,
- duration: inherit.duration
- };
- ++lock.count;
- d3.timer(function(elapsed) {
- var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = [];
- return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1;
- function start(elapsed) {
- if (lock.active > id) return stop();
- lock.active = id;
- event.start.call(node, d, i);
- transition.tween.forEach(function(key, value) {
- if (value = value.call(node, d, i)) {
- tweened.push(value);
- }
- });
- if (!tick(elapsed)) d3.timer(tick, 0, time);
- return 1;
- }
- function tick(elapsed) {
- if (lock.active !== id) return stop();
- var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
- while (n > 0) {
- tweened[--n].call(node, e);
- }
- if (t >= 1) {
- stop();
- event.end.call(node, d, i);
- return 1;
- }
- }
- function stop() {
- if (--lock.count) delete lock[id]; else delete node.__transition__;
- return 1;
- }
- }, 0, time);
- return transition;
- }
- }
- d3.svg.axis = function() {
- var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
- function axis(g) {
- g.each(function() {
- var g = d3.select(this);
- var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
- var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".tick.minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", ".tick").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
- var tick = g.selectAll(".tick.major").data(ticks, String), tickEnter = tick.enter().insert("g", "path").attr("class", "tick major").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
- var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
- d3.transition(path));
- var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
- this.__chart__ = scale1;
- tickEnter.append("line");
- tickEnter.append("text");
- var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
- switch (orient) {
- case "bottom":
- {
- tickTransform = d3_svg_axisX;
- subtickEnter.attr("y2", tickMinorSize);
- subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
- lineEnter.attr("y2", tickMajorSize);
- textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
- lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
- textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
- text.attr("dy", ".71em").style("text-anchor", "middle");
- pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
- break;
- }
-
- case "top":
- {
- tickTransform = d3_svg_axisX;
- subtickEnter.attr("y2", -tickMinorSize);
- subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
- lineEnter.attr("y2", -tickMajorSize);
- textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
- lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
- textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
- text.attr("dy", "0em").style("text-anchor", "middle");
- pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
- break;
- }
-
- case "left":
- {
- tickTransform = d3_svg_axisY;
- subtickEnter.attr("x2", -tickMinorSize);
- subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
- lineEnter.attr("x2", -tickMajorSize);
- textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
- lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
- textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
- text.attr("dy", ".32em").style("text-anchor", "end");
- pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
- break;
- }
-
- case "right":
- {
- tickTransform = d3_svg_axisY;
- subtickEnter.attr("x2", tickMinorSize);
- subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
- lineEnter.attr("x2", tickMajorSize);
- textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
- lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
- textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
- text.attr("dy", ".32em").style("text-anchor", "start");
- pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
- break;
- }
- }
- if (scale.ticks) {
- tickEnter.call(tickTransform, scale0);
- tickUpdate.call(tickTransform, scale1);
- tickExit.call(tickTransform, scale1);
- subtickEnter.call(tickTransform, scale0);
- subtickUpdate.call(tickTransform, scale1);
- subtickExit.call(tickTransform, scale1);
- } else {
- var dx = scale1.rangeBand() / 2, x = function(d) {
- return scale1(d) + dx;
- };
- tickEnter.call(tickTransform, x);
- tickUpdate.call(tickTransform, x);
- }
- });
- }
- axis.scale = function(x) {
- if (!arguments.length) return scale;
- scale = x;
- return axis;
- };
- axis.orient = function(x) {
- if (!arguments.length) return orient;
- orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
- return axis;
- };
- axis.ticks = function() {
- if (!arguments.length) return tickArguments_;
- tickArguments_ = arguments;
- return axis;
- };
- axis.tickValues = function(x) {
- if (!arguments.length) return tickValues;
- tickValues = x;
- return axis;
- };
- axis.tickFormat = function(x) {
- if (!arguments.length) return tickFormat_;
- tickFormat_ = x;
- return axis;
- };
- axis.tickSize = function(x, y) {
- if (!arguments.length) return tickMajorSize;
- var n = arguments.length - 1;
- tickMajorSize = +x;
- tickMinorSize = n > 1 ? +y : tickMajorSize;
- tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
- return axis;
- };
- axis.tickPadding = function(x) {
- if (!arguments.length) return tickPadding;
- tickPadding = +x;
- return axis;
- };
- axis.tickSubdivide = function(x) {
- if (!arguments.length) return tickSubdivide;
- tickSubdivide = +x;
- return axis;
- };
- return axis;
- };
- var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
- top: 1,
- right: 1,
- bottom: 1,
- left: 1
- };
- function d3_svg_axisX(selection, x) {
- selection.attr("transform", function(d) {
- return "translate(" + x(d) + ",0)";
- });
- }
- function d3_svg_axisY(selection, y) {
- selection.attr("transform", function(d) {
- return "translate(0," + y(d) + ")";
- });
- }
- function d3_svg_axisSubdivide(scale, ticks, m) {
- subticks = [];
- if (m && ticks.length > 1) {
- var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
- while (++i < n) {
- for (j = m; --j > 0; ) {
- if ((v = +ticks[i] - j * d) >= extent[0]) {
- subticks.push(v);
- }
- }
- }
- for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
- subticks.push(v);
- }
- }
- return subticks;
- }
- d3.svg.brush = function() {
- var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
- function brush(g) {
- g.each(function() {
- var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
- g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
- bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
- fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
- tz.enter().append("g").attr("class", function(d) {
- return "resize " + d;
- }).style("cursor", function(d) {
- return d3_svg_brushCursor[d];
- }).append("rect").attr("x", function(d) {
- return /[ew]$/.test(d) ? -3 : null;
- }).attr("y", function(d) {
- return /^[ns]/.test(d) ? -3 : null;
- }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
- tz.style("display", brush.empty() ? "none" : null);
- tz.exit().remove();
- if (x) {
- e = d3_scaleRange(x);
- bg.attr("x", e[0]).attr("width", e[1] - e[0]);
- redrawX(g);
- }
- if (y) {
- e = d3_scaleRange(y);
- bg.attr("y", e[0]).attr("height", e[1] - e[0]);
- redrawY(g);
- }
- redraw(g);
- });
- }
- function redraw(g) {
- g.selectAll(".resize").attr("transform", function(d) {
- return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
- });
- }
- function redrawX(g) {
- g.select(".extent").attr("x", extent[0][0]);
- g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
- }
- function redrawY(g) {
- g.select(".extent").attr("y", extent[0][1]);
- g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
- }
- function brushstart() {
- var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
- var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
- if (dragging) {
- origin[0] = extent[0][0] - origin[0];
- origin[1] = extent[0][1] - origin[1];
- } else if (resizing) {
- var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
- offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
- origin[0] = extent[ex][0];
- origin[1] = extent[ey][1];
- } else if (d3.event.altKey) center = origin.slice();
- g.style("pointer-events", "none").selectAll(".resize").style("display", null);
- d3.select("body").style("cursor", eventTarget.style("cursor"));
- event_({
- type: "brushstart"
- });
- brushmove();
- d3_eventCancel();
- function mouse() {
- var touches = d3.event.changedTouches;
- return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
- }
- function keydown() {
- if (d3.event.keyCode == 32) {
- if (!dragging) {
- center = null;
- origin[0] -= extent[1][0];
- origin[1] -= extent[1][1];
- dragging = 2;
- }
- d3_eventCancel();
- }
- }
- function keyup() {
- if (d3.event.keyCode == 32 && dragging == 2) {
- origin[0] += extent[1][0];
- origin[1] += extent[1][1];
- dragging = 0;
- d3_eventCancel();
- }
- }
- function brushmove() {
- var point = mouse(), moved = false;
- if (offset) {
- point[0] += offset[0];
- point[1] += offset[1];
- }
- if (!dragging) {
- if (d3.event.altKey) {
- if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
- origin[0] = extent[+(point[0] < center[0])][0];
- origin[1] = extent[+(point[1] < center[1])][1];
- } else center = null;
- }
- if (resizingX && move1(point, x, 0)) {
- redrawX(g);
- moved = true;
- }
- if (resizingY && move1(point, y, 1)) {
- redrawY(g);
- moved = true;
- }
- if (moved) {
- redraw(g);
- event_({
- type: "brush",
- mode: dragging ? "move" : "resize"
- });
- }
- }
- function move1(point, scale, i) {
- var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
- if (dragging) {
- r0 -= position;
- r1 -= size + position;
- }
- min = Math.max(r0, Math.min(r1, point[i]));
- if (dragging) {
- max = (min += position) + size;
- } else {
- if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
- if (position < min) {
- max = min;
- min = position;
- } else {
- max = position;
- }
- }
- if (extent[0][i] !== min || extent[1][i] !== max) {
- extentDomain = null;
- extent[0][i] = min;
- extent[1][i] = max;
- return true;
- }
- }
- function brushend() {
- brushmove();
- g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
- d3.select("body").style("cursor", null);
- w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
- event_({
- type: "brushend"
- });
- d3_eventCancel();
- }
- }
- brush.x = function(z) {
- if (!arguments.length) return x;
- x = z;
- resizes = d3_svg_brushResizes[!x << 1 | !y];
- return brush;
- };
- brush.y = function(z) {
- if (!arguments.length) return y;
- y = z;
- resizes = d3_svg_brushResizes[!x << 1 | !y];
- return brush;
- };
- brush.extent = function(z) {
- var x0, x1, y0, y1, t;
- if (!arguments.length) {
- z = extentDomain || extent;
- if (x) {
- x0 = z[0][0], x1 = z[1][0];
- if (!extentDomain) {
- x0 = extent[0][0], x1 = extent[1][0];
- if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
- if (x1 < x0) t = x0, x0 = x1, x1 = t;
- }
- }
- if (y) {
- y0 = z[0][1], y1 = z[1][1];
- if (!extentDomain) {
- y0 = extent[0][1], y1 = extent[1][1];
- if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
- if (y1 < y0) t = y0, y0 = y1, y1 = t;
- }
- }
- return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
- }
- extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
- if (x) {
- x0 = z[0], x1 = z[1];
- if (y) x0 = x0[0], x1 = x1[0];
- extentDomain[0][0] = x0, extentDomain[1][0] = x1;
- if (x.invert) x0 = x(x0), x1 = x(x1);
- if (x1 < x0) t = x0, x0 = x1, x1 = t;
- extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
- }
- if (y) {
- y0 = z[0], y1 = z[1];
- if (x) y0 = y0[1], y1 = y1[1];
- extentDomain[0][1] = y0, extentDomain[1][1] = y1;
- if (y.invert) y0 = y(y0), y1 = y(y1);
- if (y1 < y0) t = y0, y0 = y1, y1 = t;
- extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
- }
- return brush;
- };
- brush.clear = function() {
- extentDomain = null;
- extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
- return brush;
- };
- brush.empty = function() {
- return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
- };
- return d3.rebind(brush, event, "on");
- };
- var d3_svg_brushCursor = {
- n: "ns-resize",
- e: "ew-resize",
- s: "ns-resize",
- w: "ew-resize",
- nw: "nwse-resize",
- ne: "nesw-resize",
- se: "nwse-resize",
- sw: "nesw-resize"
- };
- var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
- d3.time = {};
- var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
- function d3_time_utc() {
- this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
- }
- d3_time_utc.prototype = {
- getDate: function() {
- return this._.getUTCDate();
- },
- getDay: function() {
- return this._.getUTCDay();
- },
- getFullYear: function() {
- return this._.getUTCFullYear();
- },
- getHours: function() {
- return this._.getUTCHours();
- },
- getMilliseconds: function() {
- return this._.getUTCMilliseconds();
- },
- getMinutes: function() {
- return this._.getUTCMinutes();
- },
- getMonth: function() {
- return this._.getUTCMonth();
- },
- getSeconds: function() {
- return this._.getUTCSeconds();
- },
- getTime: function() {
- return this._.getTime();
- },
- getTimezoneOffset: function() {
- return 0;
- },
- valueOf: function() {
- return this._.valueOf();
- },
- setDate: function() {
- d3_time_prototype.setUTCDate.apply(this._, arguments);
- },
- setDay: function() {
- d3_time_prototype.setUTCDay.apply(this._, arguments);
- },
- setFullYear: function() {
- d3_time_prototype.setUTCFullYear.apply(this._, arguments);
- },
- setHours: function() {
- d3_time_prototype.setUTCHours.apply(this._, arguments);
- },
- setMilliseconds: function() {
- d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
- },
- setMinutes: function() {
- d3_time_prototype.setUTCMinutes.apply(this._, arguments);
- },
- setMonth: function() {
- d3_time_prototype.setUTCMonth.apply(this._, arguments);
- },
- setSeconds: function() {
- d3_time_prototype.setUTCSeconds.apply(this._, arguments);
- },
- setTime: function() {
- d3_time_prototype.setTime.apply(this._, arguments);
- }
- };
- var d3_time_prototype = Date.prototype;
- var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S";
- var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
- function d3_time_interval(local, step, number) {
- function round(date) {
- var d0 = local(date), d1 = offset(d0, 1);
- return date - d0 < d1 - date ? d0 : d1;
- }
- function ceil(date) {
- step(date = local(new d3_time(date - 1)), 1);
- return date;
- }
- function offset(date, k) {
- step(date = new d3_time(+date), k);
- return date;
- }
- function range(t0, t1, dt) {
- var time = ceil(t0), times = [];
- if (dt > 1) {
- while (time < t1) {
- if (!(number(time) % dt)) times.push(new Date(+time));
- step(time, 1);
- }
- } else {
- while (time < t1) times.push(new Date(+time)), step(time, 1);
- }
- return times;
- }
- function range_utc(t0, t1, dt) {
- try {
- d3_time = d3_time_utc;
- var utc = new d3_time_utc();
- utc._ = t0;
- return range(utc, t1, dt);
- } finally {
- d3_time = Date;
- }
- }
- local.floor = local;
- local.round = round;
- local.ceil = ceil;
- local.offset = offset;
- local.range = range;
- var utc = local.utc = d3_time_interval_utc(local);
- utc.floor = utc;
- utc.round = d3_time_interval_utc(round);
- utc.ceil = d3_time_interval_utc(ceil);
- utc.offset = d3_time_interval_utc(offset);
- utc.range = range_utc;
- return local;
- }
- function d3_time_interval_utc(method) {
- return function(date, k) {
- try {
- d3_time = d3_time_utc;
- var utc = new d3_time_utc();
- utc._ = date;
- return method(utc, k)._;
- } finally {
- d3_time = Date;
- }
- };
- }
- d3.time.year = d3_time_interval(function(date) {
- date = d3.time.day(date);
- date.setMonth(0, 1);
- return date;
- }, function(date, offset) {
- date.setFullYear(date.getFullYear() + offset);
- }, function(date) {
- return date.getFullYear();
- });
- d3.time.years = d3.time.year.range;
- d3.time.years.utc = d3.time.year.utc.range;
- d3.time.day = d3_time_interval(function(date) {
- var day = new d3_time(1970, 0);
- day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
- return day;
- }, function(date, offset) {
- date.setDate(date.getDate() + offset);
- }, function(date) {
- return date.getDate() - 1;
- });
- d3.time.days = d3.time.day.range;
- d3.time.days.utc = d3.time.day.utc.range;
- d3.time.dayOfYear = function(date) {
- var year = d3.time.year(date);
- return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
- };
- d3_time_daySymbols.forEach(function(day, i) {
- day = day.toLowerCase();
- i = 7 - i;
- var interval = d3.time[day] = d3_time_interval(function(date) {
- (date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
- return date;
- }, function(date, offset) {
- date.setDate(date.getDate() + Math.floor(offset) * 7);
- }, function(date) {
- var day = d3.time.year(date).getDay();
- return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
- });
- d3.time[day + "s"] = interval.range;
- d3.time[day + "s"].utc = interval.utc.range;
- d3.time[day + "OfYear"] = function(date) {
- var day = d3.time.year(date).getDay();
- return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
- };
- });
- d3.time.week = d3.time.sunday;
- d3.time.weeks = d3.time.sunday.range;
- d3.time.weeks.utc = d3.time.sunday.utc.range;
- d3.time.weekOfYear = d3.time.sundayOfYear;
- d3.time.format = function(template) {
- var n = template.length;
- function format(date) {
- var string = [], i = -1, j = 0, c, p, f;
- while (++i < n) {
- if (template.charCodeAt(i) === 37) {
- string.push(template.substring(j, i));
- if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
- if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
- string.push(c);
- j = i + 1;
- }
- }
- string.push(template.substring(j, i));
- return string.join("");
- }
- format.parse = function(string) {
- var d = {
- y: 1900,
- m: 0,
- d: 1,
- H: 0,
- M: 0,
- S: 0,
- L: 0
- }, i = d3_time_parse(d, template, string, 0);
- if (i != string.length) return null;
- if ("p" in d) d.H = d.H % 12 + d.p * 12;
- var date = new d3_time();
- date.setFullYear(d.y, d.m, d.d);
- date.setHours(d.H, d.M, d.S, d.L);
- return date;
- };
- format.toString = function() {
- return template;
- };
- return format;
- };
- function d3_time_parse(date, template, string, j) {
- var c, p, i = 0, n = template.length, m = string.length;
- while (i < n) {
- if (j >= m) return -1;
- c = template.charCodeAt(i++);
- if (c === 37) {
- p = d3_time_parsers[template.charAt(i++)];
- if (!p || (j = p(date, string, j)) < 0) return -1;
- } else if (c != string.charCodeAt(j++)) {
- return -1;
- }
- }
- return j;
- }
- function d3_time_formatRe(names) {
- return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
- }
- function d3_time_formatLookup(names) {
- var map = new d3_Map(), i = -1, n = names.length;
- while (++i < n) map.set(names[i].toLowerCase(), i);
- return map;
- }
- function d3_time_formatPad(value, fill, width) {
- value += "";
- var length = value.length;
- return length < width ? new Array(width - length + 1).join(fill) + value : value;
- }
- var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
- var d3_time_formatPads = {
- "-": "",
- _: " ",
- "0": "0"
- };
- var d3_time_formats = {
- a: function(d) {
- return d3_time_dayAbbreviations[d.getDay()];
- },
- A: function(d) {
- return d3_time_days[d.getDay()];
- },
- b: function(d) {
- return d3_time_monthAbbreviations[d.getMonth()];
- },
- B: function(d) {
- return d3_time_months[d.getMonth()];
- },
- c: d3.time.format(d3_time_formatDateTime),
- d: function(d, p) {
- return d3_time_formatPad(d.getDate(), p, 2);
- },
- e: function(d, p) {
- return d3_time_formatPad(d.getDate(), p, 2);
- },
- H: function(d, p) {
- return d3_time_formatPad(d.getHours(), p, 2);
- },
- I: function(d, p) {
- return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
- },
- j: function(d, p) {
- return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3);
- },
- L: function(d, p) {
- return d3_time_formatPad(d.getMilliseconds(), p, 3);
- },
- m: function(d, p) {
- return d3_time_formatPad(d.getMonth() + 1, p, 2);
- },
- M: function(d, p) {
- return d3_time_formatPad(d.getMinutes(), p, 2);
- },
- p: function(d) {
- return d.getHours() >= 12 ? "PM" : "AM";
- },
- S: function(d, p) {
- return d3_time_formatPad(d.getSeconds(), p, 2);
- },
- U: function(d, p) {
- return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2);
- },
- w: function(d) {
- return d.getDay();
- },
- W: function(d, p) {
- return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2);
- },
- x: d3.time.format(d3_time_formatDate),
- X: d3.time.format(d3_time_formatTime),
- y: function(d, p) {
- return d3_time_formatPad(d.getFullYear() % 100, p, 2);
- },
- Y: function(d, p) {
- return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
- },
- Z: d3_time_zone,
- "%": function() {
- return "%";
- }
- };
- var d3_time_parsers = {
- a: d3_time_parseWeekdayAbbrev,
- A: d3_time_parseWeekday,
- b: d3_time_parseMonthAbbrev,
- B: d3_time_parseMonth,
- c: d3_time_parseLocaleFull,
- d: d3_time_parseDay,
- e: d3_time_parseDay,
- H: d3_time_parseHour24,
- I: d3_time_parseHour24,
- L: d3_time_parseMilliseconds,
- m: d3_time_parseMonthNumber,
- M: d3_time_parseMinutes,
- p: d3_time_parseAmPm,
- S: d3_time_parseSeconds,
- x: d3_time_parseLocaleDate,
- X: d3_time_parseLocaleTime,
- y: d3_time_parseYear,
- Y: d3_time_parseFullYear
- };
- function d3_time_parseWeekdayAbbrev(date, string, i) {
- d3_time_dayAbbrevRe.lastIndex = 0;
- var n = d3_time_dayAbbrevRe.exec(string.substring(i));
- return n ? i += n[0].length : -1;
- }
- function d3_time_parseWeekday(date, string, i) {
- d3_time_dayRe.lastIndex = 0;
- var n = d3_time_dayRe.exec(string.substring(i));
- return n ? i += n[0].length : -1;
- }
- function d3_time_parseMonthAbbrev(date, string, i) {
- d3_time_monthAbbrevRe.lastIndex = 0;
- var n = d3_time_monthAbbrevRe.exec(string.substring(i));
- return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
- }
- function d3_time_parseMonth(date, string, i) {
- d3_time_monthRe.lastIndex = 0;
- var n = d3_time_monthRe.exec(string.substring(i));
- return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
- }
- function d3_time_parseLocaleFull(date, string, i) {
- return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
- }
- function d3_time_parseLocaleDate(date, string, i) {
- return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
- }
- function d3_time_parseLocaleTime(date, string, i) {
- return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
- }
- function d3_time_parseFullYear(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 4));
- return n ? (date.y = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseYear(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
- }
- function d3_time_expandYear(d) {
- return d + (d > 68 ? 1900 : 2e3);
- }
- function d3_time_parseMonthNumber(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
- }
- function d3_time_parseDay(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.d = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseHour24(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.H = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseMinutes(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.M = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseSeconds(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 2));
- return n ? (date.S = +n[0], i += n[0].length) : -1;
- }
- function d3_time_parseMilliseconds(date, string, i) {
- d3_time_numberRe.lastIndex = 0;
- var n = d3_time_numberRe.exec(string.substring(i, i + 3));
- return n ? (date.L = +n[0], i += n[0].length) : -1;
- }
- var d3_time_numberRe = /^\s*\d+/;
- function d3_time_parseAmPm(date, string, i) {
- var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
- return n == null ? -1 : (date.p = n, i);
- }
- var d3_time_amPmLookup = d3.map({
- am: 0,
- pm: 1
- });
- function d3_time_zone(d) {
- var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
- return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
- }
- d3.time.format.utc = function(template) {
- var local = d3.time.format(template);
- function format(date) {
- try {
- d3_time = d3_time_utc;
- var utc = new d3_time();
- utc._ = date;
- return local(utc);
- } finally {
- d3_time = Date;
- }
- }
- format.parse = function(string) {
- try {
- d3_time = d3_time_utc;
- var date = local.parse(string);
- return date && date._;
- } finally {
- d3_time = Date;
- }
- };
- format.toString = local.toString;
- return format;
- };
- var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
- d3.time.format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
- function d3_time_formatIsoNative(date) {
- return date.toISOString();
- }
- d3_time_formatIsoNative.parse = function(string) {
- var date = new Date(string);
- return isNaN(date) ? null : date;
- };
- d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
- d3.time.second = d3_time_interval(function(date) {
- return new d3_time(Math.floor(date / 1e3) * 1e3);
- }, function(date, offset) {
- date.setTime(date.getTime() + Math.floor(offset) * 1e3);
- }, function(date) {
- return date.getSeconds();
- });
- d3.time.seconds = d3.time.second.range;
- d3.time.seconds.utc = d3.time.second.utc.range;
- d3.time.minute = d3_time_interval(function(date) {
- return new d3_time(Math.floor(date / 6e4) * 6e4);
- }, function(date, offset) {
- date.setTime(date.getTime() + Math.floor(offset) * 6e4);
- }, function(date) {
- return date.getMinutes();
- });
- d3.time.minutes = d3.time.minute.range;
- d3.time.minutes.utc = d3.time.minute.utc.range;
- d3.time.hour = d3_time_interval(function(date) {
- var timezone = date.getTimezoneOffset() / 60;
- return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
- }, function(date, offset) {
- date.setTime(date.getTime() + Math.floor(offset) * 36e5);
- }, function(date) {
- return date.getHours();
- });
- d3.time.hours = d3.time.hour.range;
- d3.time.hours.utc = d3.time.hour.utc.range;
- d3.time.month = d3_time_interval(function(date) {
- date = d3.time.day(date);
- date.setDate(1);
- return date;
- }, function(date, offset) {
- date.setMonth(date.getMonth() + offset);
- }, function(date) {
- return date.getMonth();
- });
- d3.time.months = d3.time.month.range;
- d3.time.months.utc = d3.time.month.utc.range;
- function d3_time_scale(linear, methods, format) {
- function scale(x) {
- return linear(x);
- }
- scale.invert = function(x) {
- return d3_time_scaleDate(linear.invert(x));
- };
- scale.domain = function(x) {
- if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
- linear.domain(x);
- return scale;
- };
- scale.nice = function(m) {
- return scale.domain(d3_scale_nice(scale.domain(), function() {
- return m;
- }));
- };
- scale.ticks = function(m, k) {
- var extent = d3_time_scaleExtent(scale.domain());
- if (typeof m !== "function") {
- var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
- if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
- if (!i) return linear.ticks(m).map(d3_time_scaleDate);
- if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
- m = methods[i];
- k = m[1];
- m = m[0].range;
- }
- return m(extent[0], new Date(+extent[1] + 1), k);
- };
- scale.tickFormat = function() {
- return format;
- };
- scale.copy = function() {
- return d3_time_scale(linear.copy(), methods, format);
- };
- return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
- }
- function d3_time_scaleExtent(domain) {
- var start = domain[0], stop = domain[domain.length - 1];
- return start < stop ? [ start, stop ] : [ stop, start ];
- }
- function d3_time_scaleDate(t) {
- return new Date(t);
- }
- function d3_time_scaleFormat(formats) {
- return function(date) {
- var i = formats.length - 1, f = formats[i];
- while (!f[1](date)) f = formats[--i];
- return f[0](date);
- };
- }
- function d3_time_scaleSetYear(y) {
- var d = new Date(y, 0, 1);
- d.setFullYear(y);
- return d;
- }
- function d3_time_scaleGetYear(d) {
- var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
- return y + (d - d0) / (d1 - d0);
- }
- var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
- var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
- var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) {
- return d.getMonth();
- } ], [ d3.time.format("%b %d"), function(d) {
- return d.getDate() != 1;
- } ], [ d3.time.format("%a %d"), function(d) {
- return d.getDay() && d.getDate() != 1;
- } ], [ d3.time.format("%I %p"), function(d) {
- return d.getHours();
- } ], [ d3.time.format("%I:%M"), function(d) {
- return d.getMinutes();
- } ], [ d3.time.format(":%S"), function(d) {
- return d.getSeconds();
- } ], [ d3.time.format(".%L"), function(d) {
- return d.getMilliseconds();
- } ] ];
- var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
- d3_time_scaleLocalMethods.year = function(extent, m) {
- return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
- };
- d3.time.scale = function() {
- return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
- };
- var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
- return [ m[0].utc, m[1] ];
- });
- var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) {
- return d.getUTCMonth();
- } ], [ d3.time.format.utc("%b %d"), function(d) {
- return d.getUTCDate() != 1;
- } ], [ d3.time.format.utc("%a %d"), function(d) {
- return d.getUTCDay() && d.getUTCDate() != 1;
- } ], [ d3.time.format.utc("%I %p"), function(d) {
- return d.getUTCHours();
- } ], [ d3.time.format.utc("%I:%M"), function(d) {
- return d.getUTCMinutes();
- } ], [ d3.time.format.utc(":%S"), function(d) {
- return d.getUTCSeconds();
- } ], [ d3.time.format.utc(".%L"), function(d) {
- return d.getUTCMilliseconds();
- } ] ];
- var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
- function d3_time_scaleUTCSetYear(y) {
- var d = new Date(Date.UTC(y, 0, 1));
- d.setUTCFullYear(y);
- return d;
- }
- function d3_time_scaleUTCGetYear(d) {
- var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
- return y + (d - d0) / (d1 - d0);
- }
- d3_time_scaleUTCMethods.year = function(extent, m) {
- return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
- };
- d3.time.scale.utc = function() {
- return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
- };
- d3.text = function() {
- return d3.xhr.apply(d3, arguments).response(d3_text);
- };
- function d3_text(request) {
- return request.responseText;
- }
- d3.json = function(url, callback) {
- return d3.xhr(url, "application/json", callback).response(d3_json);
- };
- function d3_json(request) {
- return JSON.parse(request.responseText);
- }
- d3.html = function(url, callback) {
- return d3.xhr(url, "text/html", callback).response(d3_html);
- };
- function d3_html(request) {
- var range = d3_document.createRange();
- range.selectNode(d3_document.body);
- return range.createContextualFragment(request.responseText);
- }
- d3.xml = function() {
- return d3.xhr.apply(d3, arguments).response(d3_xml);
- };
- function d3_xml(request) {
- return request.responseXML;
- }
- return d3;
-}(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js
deleted file mode 100755
index e1addd7b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js
+++ /dev/null
@@ -1,86 +0,0 @@
-(function() {
- d3.fisheye = {
- scale: function(scaleType) {
- return d3_fisheye_scale(scaleType(), 3, 0);
- },
- circular: function() {
- var radius = 200,
- distortion = 2,
- k0,
- k1,
- focus = [0, 0];
-
- function fisheye(d) {
- var dx = d.x - focus[0],
- dy = d.y - focus[1],
- dd = Math.sqrt(dx * dx + dy * dy);
- if (!dd || dd >= radius) return {x: d.x, y: d.y, z: 1};
- var k = k0 * (1 - Math.exp(-dd * k1)) / dd * .75 + .25;
- return {x: focus[0] + dx * k, y: focus[1] + dy * k, z: Math.min(k, 10)};
- }
-
- function rescale() {
- k0 = Math.exp(distortion);
- k0 = k0 / (k0 - 1) * radius;
- k1 = distortion / radius;
- return fisheye;
- }
-
- fisheye.radius = function(_) {
- if (!arguments.length) return radius;
- radius = +_;
- return rescale();
- };
-
- fisheye.distortion = function(_) {
- if (!arguments.length) return distortion;
- distortion = +_;
- return rescale();
- };
-
- fisheye.focus = function(_) {
- if (!arguments.length) return focus;
- focus = _;
- return fisheye;
- };
-
- return rescale();
- }
- };
-
- function d3_fisheye_scale(scale, d, a) {
-
- function fisheye(_) {
- var x = scale(_),
- left = x < a,
- v,
- range = d3.extent(scale.range()),
- min = range[0],
- max = range[1],
- m = left ? a - min : max - a;
- if (m == 0) m = max - min;
- return (left ? -1 : 1) * m * (d + 1) / (d + (m / Math.abs(x - a))) + a;
- }
-
- fisheye.distortion = function(_) {
- if (!arguments.length) return d;
- d = +_;
- return fisheye;
- };
-
- fisheye.focus = function(_) {
- if (!arguments.length) return a;
- a = +_;
- return fisheye;
- };
-
- fisheye.copy = function() {
- return d3_fisheye_scale(scale.copy(), d, a);
- };
-
- fisheye.nice = scale.nice;
- fisheye.ticks = scale.ticks;
- fisheye.tickFormat = scale.tickFormat;
- return d3.rebind(fisheye, scale, "domain", "range");
- }
-})();
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js
deleted file mode 100755
index 06e53aed..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js
+++ /dev/null
@@ -1,80 +0,0 @@
-d3.hive = {};
-
-d3.hive.link = function() {
- var source = function(d) { return d.source; },
- target = function(d) { return d.target; },
- angle = function(d) { return d.angle; },
- startRadius = function(d) { return d.radius; },
- endRadius = startRadius,
- arcOffset = -Math.PI / 2;
-
- function link(d, i) {
- var s = node(source, this, d, i),
- t = node(target, this, d, i),
- x;
- if (t.a < s.a) x = t, t = s, s = x;
- if (t.a - s.a > Math.PI) s.a += 2 * Math.PI;
- var a1 = s.a + (t.a - s.a) / 3,
- a2 = t.a - (t.a - s.a) / 3;
- return s.r0 - s.r1 || t.r0 - t.r1
- ? "M" + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0
- + "L" + Math.cos(s.a) * s.r1 + "," + Math.sin(s.a) * s.r1
- + "C" + Math.cos(a1) * s.r1 + "," + Math.sin(a1) * s.r1
- + " " + Math.cos(a2) * t.r1 + "," + Math.sin(a2) * t.r1
- + " " + Math.cos(t.a) * t.r1 + "," + Math.sin(t.a) * t.r1
- + "L" + Math.cos(t.a) * t.r0 + "," + Math.sin(t.a) * t.r0
- + "C" + Math.cos(a2) * t.r0 + "," + Math.sin(a2) * t.r0
- + " " + Math.cos(a1) * s.r0 + "," + Math.sin(a1) * s.r0
- + " " + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0
- : "M" + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0
- + "C" + Math.cos(a1) * s.r1 + "," + Math.sin(a1) * s.r1
- + " " + Math.cos(a2) * t.r1 + "," + Math.sin(a2) * t.r1
- + " " + Math.cos(t.a) * t.r1 + "," + Math.sin(t.a) * t.r1;
- }
-
- function node(method, thiz, d, i) {
- var node = method.call(thiz, d, i),
- a = +(typeof angle === "function" ? angle.call(thiz, node, i) : angle) + arcOffset,
- r0 = +(typeof startRadius === "function" ? startRadius.call(thiz, node, i) : startRadius),
- r1 = (startRadius === endRadius ? r0 : +(typeof endRadius === "function" ? endRadius.call(thiz, node, i) : endRadius));
- return {r0: r0, r1: r1, a: a};
- }
-
- link.source = function(_) {
- if (!arguments.length) return source;
- source = _;
- return link;
- };
-
- link.target = function(_) {
- if (!arguments.length) return target;
- target = _;
- return link;
- };
-
- link.angle = function(_) {
- if (!arguments.length) return angle;
- angle = _;
- return link;
- };
-
- link.radius = function(_) {
- if (!arguments.length) return startRadius;
- startRadius = endRadius = _;
- return link;
- };
-
- link.startRadius = function(_) {
- if (!arguments.length) return startRadius;
- startRadius = _;
- return link;
- };
-
- link.endRadius = function(_) {
- if (!arguments.length) return endRadius;
- endRadius = _;
- return link;
- };
-
- return link;
-};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js
deleted file mode 100755
index d84c6567..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js
+++ /dev/null
@@ -1,192 +0,0 @@
-(function() {
- d3.horizon = function() {
- var bands = 1, // between 1 and 5, typically
- mode = "offset", // or mirror
- interpolate = "linear", // or basis, monotone, step-before, etc.
- x = d3_horizonX,
- y = d3_horizonY,
- w = 960,
- h = 40,
- duration = 0;
-
- var color = d3.scale.linear()
- .domain([-1, 0, 1])
- .range(["#d62728", "#fff", "#1f77b4"]);
-
- // For each small multiple…
- function horizon(g) {
- g.each(function(d, i) {
- var g = d3.select(this),
- n = 2 * bands + 1,
- xMin = Infinity,
- xMax = -Infinity,
- yMax = -Infinity,
- x0, // old x-scale
- y0, // old y-scale
- id; // unique id for paths
-
- // Compute x- and y-values along with extents.
- var data = d.map(function(d, i) {
- var xv = x.call(this, d, i),
- yv = y.call(this, d, i);
- if (xv < xMin) xMin = xv;
- if (xv > xMax) xMax = xv;
- if (-yv > yMax) yMax = -yv;
- if (yv > yMax) yMax = yv;
- return [xv, yv];
- });
-
- // Compute the new x- and y-scales, and transform.
- var x1 = d3.scale.linear().domain([xMin, xMax]).range([0, w]),
- y1 = d3.scale.linear().domain([0, yMax]).range([0, h * bands]),
- t1 = d3_horizonTransform(bands, h, mode);
-
- // Retrieve the old scales, if this is an update.
- if (this.__chart__) {
- x0 = this.__chart__.x;
- y0 = this.__chart__.y;
- t0 = this.__chart__.t;
- id = this.__chart__.id;
- } else {
- x0 = x1.copy();
- y0 = y1.copy();
- t0 = t1;
- id = ++d3_horizonId;
- }
-
- // We'll use a defs to store the area path and the clip path.
- var defs = g.selectAll("defs")
- .data([null]);
-
- // The clip path is a simple rect.
- defs.enter().append("defs").append("clipPath")
- .attr("id", "d3_horizon_clip" + id)
- .append("rect")
- .attr("width", w)
- .attr("height", h);
-
- defs.select("rect").transition()
- .duration(duration)
- .attr("width", w)
- .attr("height", h);
-
- // We'll use a container to clip all horizon layers at once.
- g.selectAll("g")
- .data([null])
- .enter().append("g")
- .attr("clip-path", "url(#d3_horizon_clip" + id + ")");
-
- // Instantiate each copy of the path with different transforms.
- var path = g.select("g").selectAll("path")
- .data(d3.range(-1, -bands - 1, -1).concat(d3.range(1, bands + 1)), Number);
-
- var d0 = d3_horizonArea
- .interpolate(interpolate)
- .x(function(d) { return x0(d[0]); })
- .y0(h * bands)
- .y1(function(d) { return h * bands - y0(d[1]); })
- (data);
-
- var d1 = d3_horizonArea
- .x(function(d) { return x1(d[0]); })
- .y1(function(d) { return h * bands - y1(d[1]); })
- (data);
-
- path.enter().append("path")
- .style("fill", color)
- .attr("transform", t0)
- .attr("d", d0);
-
- path.transition()
- .duration(duration)
- .style("fill", color)
- .attr("transform", t1)
- .attr("d", d1);
-
- path.exit().transition()
- .duration(duration)
- .attr("transform", t1)
- .attr("d", d1)
- .remove();
-
- // Stash the new scales.
- this.__chart__ = {x: x1, y: y1, t: t1, id: id};
- });
- d3.timer.flush();
- }
-
- horizon.duration = function(x) {
- if (!arguments.length) return duration;
- duration = +x;
- return horizon;
- };
-
- horizon.bands = function(x) {
- if (!arguments.length) return bands;
- bands = +x;
- color.domain([-bands, 0, bands]);
- return horizon;
- };
-
- horizon.mode = function(x) {
- if (!arguments.length) return mode;
- mode = x + "";
- return horizon;
- };
-
- horizon.colors = function(x) {
- if (!arguments.length) return color.range();
- color.range(x);
- return horizon;
- };
-
- horizon.interpolate = function(x) {
- if (!arguments.length) return interpolate;
- interpolate = x + "";
- return horizon;
- };
-
- horizon.x = function(z) {
- if (!arguments.length) return x;
- x = z;
- return horizon;
- };
-
- horizon.y = function(z) {
- if (!arguments.length) return y;
- y = z;
- return horizon;
- };
-
- horizon.width = function(x) {
- if (!arguments.length) return w;
- w = +x;
- return horizon;
- };
-
- horizon.height = function(x) {
- if (!arguments.length) return h;
- h = +x;
- return horizon;
- };
-
- return horizon;
- };
-
- var d3_horizonArea = d3.svg.area(),
- d3_horizonId = 0;
-
- function d3_horizonX(d) {
- return d[0];
- }
-
- function d3_horizonY(d) {
- return d[1];
- }
-
- function d3_horizonTransform(bands, h, mode) {
- return mode == "offset"
- ? function(d) { return "translate(0," + (d + (d < 0) - bands) * h + ")"; }
- : function(d) { return (d < 0 ? "scale(1,-1)" : "") + "translate(0," + (d - bands) * h + ")"; };
- }
-})();
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js
deleted file mode 100755
index c3bc59fb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js
+++ /dev/null
@@ -1,292 +0,0 @@
-d3.sankey = function() {
- var sankey = {},
- nodeWidth = 24,
- nodePadding = 8,
- size = [1, 1],
- nodes = [],
- links = [];
-
- sankey.nodeWidth = function(_) {
- if (!arguments.length) return nodeWidth;
- nodeWidth = +_;
- return sankey;
- };
-
- sankey.nodePadding = function(_) {
- if (!arguments.length) return nodePadding;
- nodePadding = +_;
- return sankey;
- };
-
- sankey.nodes = function(_) {
- if (!arguments.length) return nodes;
- nodes = _;
- return sankey;
- };
-
- sankey.links = function(_) {
- if (!arguments.length) return links;
- links = _;
- return sankey;
- };
-
- sankey.size = function(_) {
- if (!arguments.length) return size;
- size = _;
- return sankey;
- };
-
- sankey.layout = function(iterations) {
- computeNodeLinks();
- computeNodeValues();
- computeNodeBreadths();
- computeNodeDepths(iterations);
- computeLinkDepths();
- return sankey;
- };
-
- sankey.relayout = function() {
- computeLinkDepths();
- return sankey;
- };
-
- sankey.link = function() {
- var curvature = .5;
-
- function link(d) {
- var x0 = d.source.x + d.source.dx,
- x1 = d.target.x,
- xi = d3.interpolateNumber(x0, x1),
- x2 = xi(curvature),
- x3 = xi(1 - curvature),
- y0 = d.source.y + d.sy + d.dy / 2,
- y1 = d.target.y + d.ty + d.dy / 2;
- return "M" + x0 + "," + y0
- + "C" + x2 + "," + y0
- + " " + x3 + "," + y1
- + " " + x1 + "," + y1;
- }
-
- link.curvature = function(_) {
- if (!arguments.length) return curvature;
- curvature = +_;
- return link;
- };
-
- return link;
- };
-
- // Populate the sourceLinks and targetLinks for each node.
- // Also, if the source and target are not objects, assume they are indices.
- function computeNodeLinks() {
- nodes.forEach(function(node) {
- node.sourceLinks = [];
- node.targetLinks = [];
- });
- links.forEach(function(link) {
- var source = link.source,
- target = link.target;
- if (typeof source === "number") source = link.source = nodes[link.source];
- if (typeof target === "number") target = link.target = nodes[link.target];
- source.sourceLinks.push(link);
- target.targetLinks.push(link);
- });
- }
-
- // Compute the value (size) of each node by summing the associated links.
- function computeNodeValues() {
- nodes.forEach(function(node) {
- node.value = Math.max(
- d3.sum(node.sourceLinks, value),
- d3.sum(node.targetLinks, value)
- );
- });
- }
-
- // Iteratively assign the breadth (x-position) for each node.
- // Nodes are assigned the maximum breadth of incoming neighbors plus one;
- // nodes with no incoming links are assigned breadth zero, while
- // nodes with no outgoing links are assigned the maximum breadth.
- function computeNodeBreadths() {
- var remainingNodes = nodes,
- nextNodes,
- x = 0;
-
- while (remainingNodes.length) {
- nextNodes = [];
- remainingNodes.forEach(function(node) {
- node.x = x;
- node.dx = nodeWidth;
- node.sourceLinks.forEach(function(link) {
- nextNodes.push(link.target);
- });
- });
- remainingNodes = nextNodes;
- ++x;
- }
-
- //
- moveSinksRight(x);
- scaleNodeBreadths((size[0] - nodeWidth) / (x - 1));
- }
-
- function moveSourcesRight() {
- nodes.forEach(function(node) {
- if (!node.targetLinks.length) {
- node.x = d3.min(node.sourceLinks, function(d) { return d.target.x; }) - 1;
- }
- });
- }
-
- function moveSinksRight(x) {
- nodes.forEach(function(node) {
- if (!node.sourceLinks.length) {
- node.x = x - 1;
- }
- });
- }
-
- function scaleNodeBreadths(kx) {
- nodes.forEach(function(node) {
- node.x *= kx;
- });
- }
-
- function computeNodeDepths(iterations) {
- var nodesByBreadth = d3.nest()
- .key(function(d) { return d.x; })
- .sortKeys(d3.ascending)
- .entries(nodes)
- .map(function(d) { return d.values; });
-
- //
- initializeNodeDepth();
- resolveCollisions();
- for (var alpha = 1; iterations > 0; --iterations) {
- relaxRightToLeft(alpha *= .99);
- resolveCollisions();
- relaxLeftToRight(alpha);
- resolveCollisions();
- }
-
- function initializeNodeDepth() {
- var ky = d3.min(nodesByBreadth, function(nodes) {
- return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value);
- });
-
- nodesByBreadth.forEach(function(nodes) {
- nodes.forEach(function(node, i) {
- node.y = i;
- node.dy = node.value * ky;
- });
- });
-
- links.forEach(function(link) {
- link.dy = link.value * ky;
- });
- }
-
- function relaxLeftToRight(alpha) {
- nodesByBreadth.forEach(function(nodes, breadth) {
- nodes.forEach(function(node) {
- if (node.targetLinks.length) {
- var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value);
- node.y += (y - center(node)) * alpha;
- }
- });
- });
-
- function weightedSource(link) {
- return center(link.source) * link.value;
- }
- }
-
- function relaxRightToLeft(alpha) {
- nodesByBreadth.slice().reverse().forEach(function(nodes) {
- nodes.forEach(function(node) {
- if (node.sourceLinks.length) {
- var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value);
- node.y += (y - center(node)) * alpha;
- }
- });
- });
-
- function weightedTarget(link) {
- return center(link.target) * link.value;
- }
- }
-
- function resolveCollisions() {
- nodesByBreadth.forEach(function(nodes) {
- var node,
- dy,
- y0 = 0,
- n = nodes.length,
- i;
-
- // Push any overlapping nodes down.
- nodes.sort(ascendingDepth);
- for (i = 0; i < n; ++i) {
- node = nodes[i];
- dy = y0 - node.y;
- if (dy > 0) node.y += dy;
- y0 = node.y + node.dy + nodePadding;
- }
-
- // If the bottommost node goes outside the bounds, push it back up.
- dy = y0 - nodePadding - size[1];
- if (dy > 0) {
- y0 = node.y -= dy;
-
- // Push any overlapping nodes back up.
- for (i = n - 2; i >= 0; --i) {
- node = nodes[i];
- dy = node.y + node.dy + nodePadding - y0;
- if (dy > 0) node.y -= dy;
- y0 = node.y;
- }
- }
- });
- }
-
- function ascendingDepth(a, b) {
- return a.y - b.y;
- }
- }
-
- function computeLinkDepths() {
- nodes.forEach(function(node) {
- node.sourceLinks.sort(ascendingTargetDepth);
- node.targetLinks.sort(ascendingSourceDepth);
- });
- nodes.forEach(function(node) {
- var sy = 0, ty = 0;
- node.sourceLinks.forEach(function(link) {
- link.sy = sy;
- sy += link.dy;
- });
- node.targetLinks.forEach(function(link) {
- link.ty = ty;
- ty += link.dy;
- });
- });
-
- function ascendingSourceDepth(a, b) {
- return a.source.y - b.source.y;
- }
-
- function ascendingTargetDepth(a, b) {
- return a.target.y - b.target.y;
- }
- }
-
- function center(node) {
- return node.y + node.dy / 2;
- }
-
- function value(link) {
- return link.value;
- }
-
- return sankey;
-};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css
deleted file mode 100755
index cae83482..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css
+++ /dev/null
@@ -1,769 +0,0 @@
-
-/********************
- * HTML CSS
- */
-
-
-.chartWrap {
- margin: 0;
- padding: 0;
- overflow: hidden;
-}
-
-/********************
- Box shadow and border radius styling
-*/
-.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
- -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- box-shadow: 0 5px 10px rgba(0,0,0,.2);
-
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
-}
-
-/********************
- * TOOLTIP CSS
- */
-
-.nvtooltip {
- position: absolute;
- background-color: rgba(255,255,255,1.0);
- padding: 1px;
- border: 1px solid rgba(0,0,0,.2);
- z-index: 10000;
-
- font-family: Arial;
- font-size: 13px;
- text-align: left;
- pointer-events: none;
-
- white-space: nowrap;
-
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-/*Give tooltips that old fade in transition by
- putting a "with-transitions" class on the container div.
-*/
-.nvtooltip.with-transitions, .with-transitions .nvtooltip {
- transition: opacity 250ms linear;
- -moz-transition: opacity 250ms linear;
- -webkit-transition: opacity 250ms linear;
-
- transition-delay: 250ms;
- -moz-transition-delay: 250ms;
- -webkit-transition-delay: 250ms;
-}
-
-.nvtooltip.x-nvtooltip,
-.nvtooltip.y-nvtooltip {
- padding: 8px;
-}
-
-.nvtooltip h3 {
- margin: 0;
- padding: 4px 14px;
- line-height: 18px;
- font-weight: normal;
- background-color: rgba(247,247,247,0.75);
- text-align: center;
-
- border-bottom: 1px solid #ebebeb;
-
- -webkit-border-radius: 5px 5px 0 0;
- -moz-border-radius: 5px 5px 0 0;
- border-radius: 5px 5px 0 0;
-}
-
-.nvtooltip p {
- margin: 0;
- padding: 5px 14px;
- text-align: center;
-}
-
-.nvtooltip span {
- display: inline-block;
- margin: 2px 0;
-}
-
-.nvtooltip table {
- margin: 6px;
- border-spacing:0;
-}
-
-
-.nvtooltip table td {
- padding: 2px 9px 2px 0;
- vertical-align: middle;
-}
-
-.nvtooltip table td.key {
- font-weight:normal;
-}
-.nvtooltip table td.value {
- text-align: right;
- font-weight: bold;
-}
-
-.nvtooltip table tr.highlight td {
- padding: 1px 9px 1px 0;
- border-bottom-style: solid;
- border-bottom-width: 1px;
- border-top-style: solid;
- border-top-width: 1px;
-}
-
-.nvtooltip table td.legend-color-guide div {
- width: 8px;
- height: 8px;
- vertical-align: middle;
-}
-
-.nvtooltip .footer {
- padding: 3px;
- text-align: center;
-}
-
-
-.nvtooltip-pending-removal {
- position: absolute;
- pointer-events: none;
-}
-
-
-/********************
- * SVG CSS
- */
-
-
-svg {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- /* Trying to get SVG to act like a greedy block in all browsers */
- display: block;
- width:100%;
- height:100%;
-}
-
-
-svg text {
- font: normal 12px Arial;
-}
-
-svg .title {
- font: bold 14px Arial;
-}
-
-.nvd3 .nv-background {
- fill: white;
- fill-opacity: 0;
- /*
- pointer-events: none;
- */
-}
-
-.nvd3.nv-noData {
- font-size: 18px;
- font-weight: bold;
-}
-
-
-/**********
-* Brush
-*/
-
-.nv-brush .extent {
- fill-opacity: .125;
- shape-rendering: crispEdges;
-}
-
-
-
-/**********
-* Legend
-*/
-
-.nvd3 .nv-legend .nv-series {
- cursor: pointer;
-}
-
-.nvd3 .nv-legend .disabled circle {
- fill-opacity: 0;
-}
-
-
-
-/**********
-* Axes
-*/
-.nvd3 .nv-axis {
- pointer-events:none;
-}
-
-.nvd3 .nv-axis path {
- fill: none;
- stroke: #000;
- stroke-opacity: .75;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis path.domain {
- stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis.nv-x path.domain {
- stroke-opacity: 0;
-}
-
-.nvd3 .nv-axis line {
- fill: none;
- stroke: #e5e5e5;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis .zero line,
-/*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
- stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis .nv-axisMaxMin text {
- font-weight: bold;
-}
-
-.nvd3 .x .nv-axis .nv-axisMaxMin text,
-.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
-.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
- text-anchor: middle
-}
-
-
-
-/**********
-* Brush
-*/
-
-.nv-brush .resize path {
- fill: #eee;
- stroke: #666;
-}
-
-
-
-/**********
-* Bars
-*/
-
-.nvd3 .nv-bars .negative rect {
- zfill: brown;
-}
-
-.nvd3 .nv-bars rect {
- zfill: steelblue;
- fill-opacity: .75;
-
- transition: fill-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-bars rect.hover {
- fill-opacity: 1;
-}
-
-.nvd3 .nv-bars .hover rect {
- fill: lightblue;
-}
-
-.nvd3 .nv-bars text {
- fill: rgba(0,0,0,0);
-}
-
-.nvd3 .nv-bars .hover text {
- fill: rgba(0,0,0,1);
-}
-
-
-/**********
-* Bars
-*/
-
-.nvd3 .nv-multibar .nv-groups rect,
-.nvd3 .nv-multibarHorizontal .nv-groups rect,
-.nvd3 .nv-discretebar .nv-groups rect {
- stroke-opacity: 0;
-
- transition: fill-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-multibar .nv-groups rect:hover,
-.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
-.nvd3 .nv-discretebar .nv-groups rect:hover {
- fill-opacity: 1;
-}
-
-.nvd3 .nv-discretebar .nv-groups text,
-.nvd3 .nv-multibarHorizontal .nv-groups text {
- font-weight: bold;
- fill: rgba(0,0,0,1);
- stroke: rgba(0,0,0,0);
-}
-
-/***********
-* Pie Chart
-*/
-
-.nvd3.nv-pie path {
- stroke-opacity: 0;
- transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-pie .nv-slice text {
- stroke: #000;
- stroke-width: 0;
-}
-
-.nvd3.nv-pie path {
- stroke: #fff;
- stroke-width: 1px;
- stroke-opacity: 1;
-}
-
-.nvd3.nv-pie .hover path {
- fill-opacity: .7;
-}
-.nvd3.nv-pie .nv-label {
- pointer-events: none;
-}
-.nvd3.nv-pie .nv-label rect {
- fill-opacity: 0;
- stroke-opacity: 0;
-}
-
-/**********
-* Lines
-*/
-
-.nvd3 .nv-groups path.nv-line {
- fill: none;
- stroke-width: 1.5px;
- /*
- stroke-linecap: round;
- shape-rendering: geometricPrecision;
-
- transition: stroke-width 250ms linear;
- -moz-transition: stroke-width 250ms linear;
- -webkit-transition: stroke-width 250ms linear;
-
- transition-delay: 250ms
- -moz-transition-delay: 250ms;
- -webkit-transition-delay: 250ms;
- */
-}
-
-.nvd3 .nv-groups path.nv-line.nv-thin-line {
- stroke-width: 1px;
-}
-
-
-.nvd3 .nv-groups path.nv-area {
- stroke: none;
- /*
- stroke-linecap: round;
- shape-rendering: geometricPrecision;
-
- stroke-width: 2.5px;
- transition: stroke-width 250ms linear;
- -moz-transition: stroke-width 250ms linear;
- -webkit-transition: stroke-width 250ms linear;
-
- transition-delay: 250ms
- -moz-transition-delay: 250ms;
- -webkit-transition-delay: 250ms;
- */
-}
-
-.nvd3 .nv-line.hover path {
- stroke-width: 6px;
-}
-
-/*
-.nvd3.scatter .groups .point {
- fill-opacity: 0.1;
- stroke-opacity: 0.1;
-}
- */
-
-.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
- fill-opacity: 0;
- stroke-opacity: 0;
-}
-
-.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
- fill-opacity: .5 !important;
- stroke-opacity: .5 !important;
-}
-
-
-.with-transitions .nvd3 .nv-groups .nv-point {
- transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
- -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
- -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-scatter .nv-groups .nv-point.hover,
-.nvd3 .nv-groups .nv-point.hover {
- stroke-width: 7px;
- fill-opacity: .95 !important;
- stroke-opacity: .95 !important;
-}
-
-
-.nvd3 .nv-point-paths path {
- stroke: #aaa;
- stroke-opacity: 0;
- fill: #eee;
- fill-opacity: 0;
-}
-
-
-
-.nvd3 .nv-indexLine {
- cursor: ew-resize;
-}
-
-
-/**********
-* Distribution
-*/
-
-.nvd3 .nv-distribution {
- pointer-events: none;
-}
-
-
-
-/**********
-* Scatter
-*/
-
-/* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere
-.nvd3 .nv-groups .nv-point {
- pointer-events: none;
-}
-*/
-
-.nvd3 .nv-groups .nv-point.hover {
- stroke-width: 20px;
- stroke-opacity: .5;
-}
-
-.nvd3 .nv-scatter .nv-point.hover {
- fill-opacity: 1;
-}
-
-/*
-.nv-group.hover .nv-point {
- fill-opacity: 1;
-}
-*/
-
-
-/**********
-* Stacked Area
-*/
-
-.nvd3.nv-stackedarea path.nv-area {
- fill-opacity: .7;
- /*
- stroke-opacity: .65;
- fill-opacity: 1;
- */
- stroke-opacity: 0;
-
- transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-
- /*
- transition-delay: 500ms;
- -moz-transition-delay: 500ms;
- -webkit-transition-delay: 500ms;
- */
-
-}
-
-.nvd3.nv-stackedarea path.nv-area.hover {
- fill-opacity: .9;
- /*
- stroke-opacity: .85;
- */
-}
-/*
-.d3stackedarea .groups path {
- stroke-opacity: 0;
-}
- */
-
-
-
-.nvd3.nv-stackedarea .nv-groups .nv-point {
- stroke-opacity: 0;
- fill-opacity: 0;
-}
-
-/*
-.nvd3.nv-stackedarea .nv-groups .nv-point.hover {
- stroke-width: 20px;
- stroke-opacity: .75;
- fill-opacity: 1;
-}*/
-
-
-
-/**********
-* Line Plus Bar
-*/
-
-.nvd3.nv-linePlusBar .nv-bar rect {
- fill-opacity: .75;
-}
-
-.nvd3.nv-linePlusBar .nv-bar rect:hover {
- fill-opacity: 1;
-}
-
-
-/**********
-* Bullet
-*/
-
-.nvd3.nv-bullet { font: 10px sans-serif; }
-.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
-.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
-.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
-.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
-.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
-.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
-.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
-.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
-.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
-.nvd3.nv-bullet .nv-subtitle { fill: #999; }
-
-
-.nvd3.nv-bullet .nv-range {
- fill: #bababa;
- fill-opacity: .4;
-}
-.nvd3.nv-bullet .nv-range:hover {
- fill-opacity: .7;
-}
-
-
-
-/**********
-* Sparkline
-*/
-
-.nvd3.nv-sparkline path {
- fill: none;
-}
-
-.nvd3.nv-sparklineplus g.nv-hoverValue {
- pointer-events: none;
-}
-
-.nvd3.nv-sparklineplus .nv-hoverValue line {
- stroke: #333;
- stroke-width: 1.5px;
- }
-
-.nvd3.nv-sparklineplus,
-.nvd3.nv-sparklineplus g {
- pointer-events: all;
-}
-
-.nvd3 .nv-hoverArea {
- fill-opacity: 0;
- stroke-opacity: 0;
-}
-
-.nvd3.nv-sparklineplus .nv-xValue,
-.nvd3.nv-sparklineplus .nv-yValue {
- /*
- stroke: #666;
- */
- stroke-width: 0;
- font-size: .9em;
- font-weight: normal;
-}
-
-.nvd3.nv-sparklineplus .nv-yValue {
- stroke: #f66;
-}
-
-.nvd3.nv-sparklineplus .nv-maxValue {
- stroke: #2ca02c;
- fill: #2ca02c;
-}
-
-.nvd3.nv-sparklineplus .nv-minValue {
- stroke: #d62728;
- fill: #d62728;
-}
-
-.nvd3.nv-sparklineplus .nv-currentValue {
- /*
- stroke: #444;
- fill: #000;
- */
- font-weight: bold;
- font-size: 1.1em;
-}
-
-/**********
-* historical stock
-*/
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
- stroke-width: 2px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
- stroke-width: 4px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
- stroke: #2ca02c;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
- stroke: #d62728;
-}
-
-.nvd3.nv-historicalStockChart .nv-axis .nv-axislabel {
- font-weight: bold;
-}
-
-.nvd3.nv-historicalStockChart .nv-dragTarget {
- fill-opacity: 0;
- stroke: none;
- cursor: move;
-}
-
-.nvd3 .nv-brush .extent {
- /*
- cursor: ew-resize !important;
- */
- fill-opacity: 0 !important;
-}
-
-.nvd3 .nv-brushBackground rect {
- stroke: #000;
- stroke-width: .4;
- fill: #fff;
- fill-opacity: .7;
-}
-
-
-
-/**********
-* Indented Tree
-*/
-
-
-/**
- * TODO: the following 3 selectors are based on classes used in the example. I should either make them standard and leave them here, or move to a CSS file not included in the library
- */
-.nvd3.nv-indentedtree .name {
- margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .clickable {
- color: #08C;
- cursor: pointer;
-}
-
-.nvd3.nv-indentedtree span.clickable:hover {
- color: #005580;
- text-decoration: underline;
-}
-
-
-.nvd3.nv-indentedtree .nv-childrenCount {
- display: inline-block;
- margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .nv-treeicon {
- cursor: pointer;
- /*
- cursor: n-resize;
- */
-}
-
-.nvd3.nv-indentedtree .nv-treeicon.nv-folded {
- cursor: pointer;
- /*
- cursor: s-resize;
- */
-}
-
-/**********
-* Parallel Coordinates
-*/
-
-.nvd3 .background path {
- fill: none;
- stroke: #ccc;
- stroke-opacity: .4;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .foreground path {
- fill: none;
- stroke: steelblue;
- stroke-opacity: .7;
-}
-
-.nvd3 .brush .extent {
- fill-opacity: .3;
- stroke: #fff;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .axis line, .axis path {
- fill: none;
- stroke: #000;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .axis text {
- text-shadow: 0 1px 0 #fff;
-}
-
-/****
-Interactive Layer
-*/
-.nvd3 .nv-interactiveGuideLine {
- pointer-events:none;
-}
-.nvd3 line.nv-guideline {
- stroke: #ccc;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js
deleted file mode 100755
index a1a9dfc5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js
+++ /dev/null
@@ -1,14346 +0,0 @@
-(function(){
-
-var nv = window.nv || {};
-
-
-nv.version = '1.1.15b';
-nv.dev = true //set false when in production
-
-window.nv = nv;
-
-nv.tooltip = nv.tooltip || {}; // For the tooltip system
-nv.utils = nv.utils || {}; // Utility subsystem
-nv.models = nv.models || {}; //stores all the possible models/components
-nv.charts = {}; //stores all the ready to use charts
-nv.graphs = []; //stores all the graphs currently on the page
-nv.logs = {}; //stores some statistics and potential error messages
-
-nv.dispatch = d3.dispatch('render_start', 'render_end');
-
-// *************************************************************************
-// Development render timers - disabled if dev = false
-
-if (nv.dev) {
- nv.dispatch.on('render_start', function(e) {
- nv.logs.startTime = +new Date();
- });
-
- nv.dispatch.on('render_end', function(e) {
- nv.logs.endTime = +new Date();
- nv.logs.totalTime = nv.logs.endTime - nv.logs.startTime;
- nv.log('total', nv.logs.totalTime); // used for development, to keep track of graph generation times
- });
-}
-
-// ********************************************
-// Public Core NV functions
-
-// Logs all arguments, and returns the last so you can test things in place
-// Note: in IE8 console.log is an object not a function, and if modernizr is used
-// then calling Function.prototype.bind with with anything other than a function
-// causes a TypeError to be thrown.
-nv.log = function() {
- if (nv.dev && console.log && console.log.apply)
- console.log.apply(console, arguments)
- else if (nv.dev && typeof console.log == "function" && Function.prototype.bind) {
- var log = Function.prototype.bind.call(console.log, console);
- log.apply(console, arguments);
- }
- return arguments[arguments.length - 1];
-};
-
-
-nv.render = function render(step) {
- step = step || 1; // number of graphs to generate in each timeout loop
-
- nv.render.active = true;
- nv.dispatch.render_start();
-
- setTimeout(function() {
- var chart, graph;
-
- for (var i = 0; i < step && (graph = nv.render.queue[i]); i++) {
- chart = graph.generate();
- if (typeof graph.callback == typeof(Function)) graph.callback(chart);
- nv.graphs.push(chart);
- }
-
- nv.render.queue.splice(0, i);
-
- if (nv.render.queue.length) setTimeout(arguments.callee, 0);
- else {
- nv.dispatch.render_end();
- nv.render.active = false;
- }
- }, 0);
-};
-
-nv.render.active = false;
-nv.render.queue = [];
-
-nv.addGraph = function(obj) {
- if (typeof arguments[0] === typeof(Function))
- obj = {generate: arguments[0], callback: arguments[1]};
-
- nv.render.queue.push(obj);
-
- if (!nv.render.active) nv.render();
-};
-
-nv.identity = function(d) { return d; };
-
-nv.strip = function(s) { return s.replace(/(\s|&)/g,''); };
-
-function daysInMonth(month,year) {
- return (new Date(year, month+1, 0)).getDate();
-}
-
-function d3_time_range(floor, step, number) {
- return function(t0, t1, dt) {
- var time = floor(t0), times = [];
- if (time < t0) step(time);
- if (dt > 1) {
- while (time < t1) {
- var date = new Date(+time);
- if ((number(date) % dt === 0)) times.push(date);
- step(time);
- }
- } else {
- while (time < t1) { times.push(new Date(+time)); step(time); }
- }
- return times;
- };
-}
-
-d3.time.monthEnd = function(date) {
- return new Date(date.getFullYear(), date.getMonth(), 0);
-};
-
-d3.time.monthEnds = d3_time_range(d3.time.monthEnd, function(date) {
- date.setUTCDate(date.getUTCDate() + 1);
- date.setDate(daysInMonth(date.getMonth() + 1, date.getFullYear()));
- }, function(date) {
- return date.getMonth();
- }
-);
-
-/* Utility class to handle creation of an interactive layer.
-This places a rectangle on top of the chart. When you mouse move over it, it sends a dispatch
-containing the X-coordinate. It can also render a vertical line where the mouse is located.
-
-dispatch.elementMousemove is the important event to latch onto. It is fired whenever the mouse moves over
-the rectangle. The dispatch is given one object which contains the mouseX/Y location.
-It also has 'pointXValue', which is the conversion of mouseX to the x-axis scale.
-*/
-nv.interactiveGuideline = function() {
- "use strict";
- var tooltip = nv.models.tooltip();
- //Public settings
- var width = null
- , height = null
- //Please pass in the bounding chart's top and left margins
- //This is important for calculating the correct mouseX/Y positions.
- , margin = {left: 0, top: 0}
- , xScale = d3.scale.linear()
- , yScale = d3.scale.linear()
- , dispatch = d3.dispatch('elementMousemove', 'elementMouseout','elementDblclick')
- , showGuideLine = true
- , svgContainer = null
- //Must pass in the bounding chart's <svg> container.
- //The mousemove event is attached to this container.
- ;
-
- //Private variables
- var isMSIE = navigator.userAgent.indexOf("MSIE") !== -1 //Check user-agent for Microsoft Internet Explorer.
- ;
-
-
- function layer(selection) {
- selection.each(function(data) {
- var container = d3.select(this);
-
- var availableWidth = (width || 960), availableHeight = (height || 400);
-
- var wrap = container.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([data]);
- var wrapEnter = wrap.enter()
- .append("g").attr("class", " nv-wrap nv-interactiveLineLayer");
-
-
- wrapEnter.append("g").attr("class","nv-interactiveGuideLine");
-
- if (!svgContainer) {
- return;
- }
-
- function mouseHandler() {
- var d3mouse = d3.mouse(this);
- var mouseX = d3mouse[0];
- var mouseY = d3mouse[1];
- var subtractMargin = true;
- var mouseOutAnyReason = false;
- if (isMSIE) {
- /*
- D3.js (or maybe SVG.getScreenCTM) has a nasty bug in Internet Explorer 10.
- d3.mouse() returns incorrect X,Y mouse coordinates when mouse moving
- over a rect in IE 10.
- However, d3.event.offsetX/Y also returns the mouse coordinates
- relative to the triggering <rect>. So we use offsetX/Y on IE.
- */
- mouseX = d3.event.offsetX;
- mouseY = d3.event.offsetY;
-
- /*
- On IE, if you attach a mouse event listener to the <svg> container,
- it will actually trigger it for all the child elements (like <path>, <circle>, etc).
- When this happens on IE, the offsetX/Y is set to where ever the child element
- is located.
- As a result, we do NOT need to subtract margins to figure out the mouse X/Y
- position under this scenario. Removing the line below *will* cause
- the interactive layer to not work right on IE.
- */
- if(d3.event.target.tagName !== "svg")
- subtractMargin = false;
-
- if (d3.event.target.className.baseVal.match("nv-legend"))
- mouseOutAnyReason = true;
-
- }
-
- if(subtractMargin) {
- mouseX -= margin.left;
- mouseY -= margin.top;
- }
-
- /* If mouseX/Y is outside of the chart's bounds,
- trigger a mouseOut event.
- */
- if (mouseX < 0 || mouseY < 0
- || mouseX > availableWidth || mouseY > availableHeight
- || (d3.event.relatedTarget && d3.event.relatedTarget.ownerSVGElement === undefined)
- || mouseOutAnyReason
- )
- {
- if (isMSIE) {
- if (d3.event.relatedTarget
- && d3.event.relatedTarget.ownerSVGElement === undefined
- && d3.event.relatedTarget.className.match(tooltip.nvPointerEventsClass)) {
- return;
- }
- }
- dispatch.elementMouseout({
- mouseX: mouseX,
- mouseY: mouseY
- });
- layer.renderGuideLine(null); //hide the guideline
- return;
- }
-
- var pointXValue = xScale.invert(mouseX);
- dispatch.elementMousemove({
- mouseX: mouseX,
- mouseY: mouseY,
- pointXValue: pointXValue
- });
-
- //If user double clicks the layer, fire a elementDblclick dispatch.
- if (d3.event.type === "dblclick") {
- dispatch.elementDblclick({
- mouseX: mouseX,
- mouseY: mouseY,
- pointXValue: pointXValue
- });
- }
- }
-
- svgContainer
- .on("mousemove",mouseHandler, true)
- .on("mouseout" ,mouseHandler,true)
- .on("dblclick" ,mouseHandler)
- ;
-
- //Draws a vertical guideline at the given X postion.
- layer.renderGuideLine = function(x) {
- if (!showGuideLine) return;
- var line = wrap.select(".nv-interactiveGuideLine")
- .selectAll("line")
- .data((x != null) ? [nv.utils.NaNtoZero(x)] : [], String);
-
- line.enter()
- .append("line")
- .attr("class", "nv-guideline")
- .attr("x1", function(d) { return d;})
- .attr("x2", function(d) { return d;})
- .attr("y1", availableHeight)
- .attr("y2",0)
- ;
- line.exit().remove();
-
- }
- });
- }
-
- layer.dispatch = dispatch;
- layer.tooltip = tooltip;
-
- layer.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return layer;
- };
-
- layer.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return layer;
- };
-
- layer.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return layer;
- };
-
- layer.xScale = function(_) {
- if (!arguments.length) return xScale;
- xScale = _;
- return layer;
- };
-
- layer.showGuideLine = function(_) {
- if (!arguments.length) return showGuideLine;
- showGuideLine = _;
- return layer;
- };
-
- layer.svgContainer = function(_) {
- if (!arguments.length) return svgContainer;
- svgContainer = _;
- return layer;
- };
-
-
- return layer;
-};
-
-/* Utility class that uses d3.bisect to find the index in a given array, where a search value can be inserted.
-This is different from normal bisectLeft; this function finds the nearest index to insert the search value.
-
-For instance, lets say your array is [1,2,3,5,10,30], and you search for 28.
-Normal d3.bisectLeft will return 4, because 28 is inserted after the number 10. But interactiveBisect will return 5
-because 28 is closer to 30 than 10.
-
-Unit tests can be found in: interactiveBisectTest.html
-
-Has the following known issues:
- * Will not work if the data points move backwards (ie, 10,9,8,7, etc) or if the data points are in random order.
- * Won't work if there are duplicate x coordinate values.
-*/
-nv.interactiveBisect = function (values, searchVal, xAccessor) {
- "use strict";
- if (! values instanceof Array) return null;
- if (typeof xAccessor !== 'function') xAccessor = function(d,i) { return d.x;}
-
- var bisect = d3.bisector(xAccessor).left;
- var index = d3.max([0, bisect(values,searchVal) - 1]);
- var currentValue = xAccessor(values[index], index);
- if (typeof currentValue === 'undefined') currentValue = index;
-
- if (currentValue === searchVal) return index; //found exact match
-
- var nextIndex = d3.min([index+1, values.length - 1]);
- var nextValue = xAccessor(values[nextIndex], nextIndex);
- if (typeof nextValue === 'undefined') nextValue = nextIndex;
-
- if (Math.abs(nextValue - searchVal) >= Math.abs(currentValue - searchVal))
- return index;
- else
- return nextIndex
-};
-
-/*
-Returns the index in the array "values" that is closest to searchVal.
-Only returns an index if searchVal is within some "threshold".
-Otherwise, returns null.
-*/
-nv.nearestValueIndex = function (values, searchVal, threshold) {
- "use strict";
- var yDistMax = Infinity, indexToHighlight = null;
- values.forEach(function(d,i) {
- var delta = Math.abs(searchVal - d);
- if ( delta <= yDistMax && delta < threshold) {
- yDistMax = delta;
- indexToHighlight = i;
- }
- });
- return indexToHighlight;
-};/* Tooltip rendering model for nvd3 charts.
-window.nv.models.tooltip is the updated,new way to render tooltips.
-
-window.nv.tooltip.show is the old tooltip code.
-window.nv.tooltip.* also has various helper methods.
-*/
-(function() {
- "use strict";
- window.nv.tooltip = {};
-
- /* Model which can be instantiated to handle tooltip rendering.
- Example usage:
- var tip = nv.models.tooltip().gravity('w').distance(23)
- .data(myDataObject);
-
- tip(); //just invoke the returned function to render tooltip.
- */
- window.nv.models.tooltip = function() {
- var content = null //HTML contents of the tooltip. If null, the content is generated via the data variable.
- , data = null /* Tooltip data. If data is given in the proper format, a consistent tooltip is generated.
- Format of data:
- {
- key: "Date",
- value: "August 2009",
- series: [
- {
- key: "Series 1",
- value: "Value 1",
- color: "#000"
- },
- {
- key: "Series 2",
- value: "Value 2",
- color: "#00f"
- }
- ]
-
- }
-
- */
- , gravity = 'w' //Can be 'n','s','e','w'. Determines how tooltip is positioned.
- , distance = 50 //Distance to offset tooltip from the mouse location.
- , snapDistance = 25 //Tolerance allowed before tooltip is moved from its current position (creates 'snapping' effect)
- , fixedTop = null //If not null, this fixes the top position of the tooltip.
- , classes = null //Attaches additional CSS classes to the tooltip DIV that is created.
- , chartContainer = null //Parent DIV, of the SVG Container that holds the chart.
- , tooltipElem = null //actual DOM element representing the tooltip.
- , position = {left: null, top: null} //Relative position of the tooltip inside chartContainer.
- , enabled = true //True -> tooltips are rendered. False -> don't render tooltips.
- //Generates a unique id when you create a new tooltip() object
- , id = "nvtooltip-" + Math.floor(Math.random() * 100000)
- ;
-
- //CSS class to specify whether element should not have mouse events.
- var nvPointerEventsClass = "nv-pointer-events-none";
-
- //Format function for the tooltip values column
- var valueFormatter = function(d,i) {
- return d;
- };
-
- //Format function for the tooltip header value.
- var headerFormatter = function(d) {
- return d;
- };
-
- //By default, the tooltip model renders a beautiful table inside a DIV.
- //You can override this function if a custom tooltip is desired.
- var contentGenerator = function(d) {
- if (content != null) return content;
-
- if (d == null) return '';
-
- var table = d3.select(document.createElement("table"));
- var theadEnter = table.selectAll("thead")
- .data([d])
- .enter().append("thead");
- theadEnter.append("tr")
- .append("td")
- .attr("colspan",3)
- .append("strong")
- .classed("x-value",true)
- .html(headerFormatter(d.value));
-
- var tbodyEnter = table.selectAll("tbody")
- .data([d])
- .enter().append("tbody");
- var trowEnter = tbodyEnter.selectAll("tr")
- .data(function(p) { return p.series})
- .enter()
- .append("tr")
- .classed("highlight", function(p) { return p.highlight})
- ;
-
- trowEnter.append("td")
- .classed("legend-color-guide",true)
- .append("div")
- .style("background-color", function(p) { return p.color});
- trowEnter.append("td")
- .classed("key",true)
- .html(function(p) {return p.key});
- trowEnter.append("td")
- .classed("value",true)
- .html(function(p,i) { return valueFormatter(p.value,i) });
-
-
- trowEnter.selectAll("td").each(function(p) {
- if (p.highlight) {
- var opacityScale = d3.scale.linear().domain([0,1]).range(["#fff",p.color]);
- var opacity = 0.6;
- d3.select(this)
- .style("border-bottom-color", opacityScale(opacity))
- .style("border-top-color", opacityScale(opacity))
- ;
- }
- });
-
- var html = table.node().outerHTML;
- if (d.footer !== undefined)
- html += "<div class='footer'>" + d.footer + "</div>";
- return html;
-
- };
-
- var dataSeriesExists = function(d) {
- if (d && d.series && d.series.length > 0) return true;
-
- return false;
- };
-
- //In situations where the chart is in a 'viewBox', re-position the tooltip based on how far chart is zoomed.
- function convertViewBoxRatio() {
- if (chartContainer) {
- var svg = d3.select(chartContainer);
- if (svg.node().tagName !== "svg") {
- svg = svg.select("svg");
- }
- var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
- if (viewBox) {
- viewBox = viewBox.split(' ');
- var ratio = parseInt(svg.style('width')) / viewBox[2];
-
- position.left = position.left * ratio;
- position.top = position.top * ratio;
- }
- }
- }
-
- //Creates new tooltip container, or uses existing one on DOM.
- function getTooltipContainer(newContent) {
- var body;
- if (chartContainer)
- body = d3.select(chartContainer);
- else
- body = d3.select("body");
-
- var container = body.select(".nvtooltip");
- if (container.node() === null) {
- //Create new tooltip div if it doesn't exist on DOM.
- container = body.append("div")
- .attr("class", "nvtooltip " + (classes? classes: "xy-tooltip"))
- .attr("id",id)
- ;
- }
-
-
- container.node().innerHTML = newContent;
- container.style("top",0).style("left",0).style("opacity",0);
- container.selectAll("div, table, td, tr").classed(nvPointerEventsClass,true)
- container.classed(nvPointerEventsClass,true);
- return container.node();
- }
-
-
-
- //Draw the tooltip onto the DOM.
- function nvtooltip() {
- if (!enabled) return;
- if (!dataSeriesExists(data)) return;
-
- convertViewBoxRatio();
-
- var left = position.left;
- var top = (fixedTop != null) ? fixedTop : position.top;
- var container = getTooltipContainer(contentGenerator(data));
- tooltipElem = container;
- if (chartContainer) {
- var svgComp = chartContainer.getElementsByTagName("svg")[0];
- var boundRect = (svgComp) ? svgComp.getBoundingClientRect() : chartContainer.getBoundingClientRect();
- var svgOffset = {left:0,top:0};
- if (svgComp) {
- var svgBound = svgComp.getBoundingClientRect();
- var chartBound = chartContainer.getBoundingClientRect();
- var svgBoundTop = svgBound.top;
-
- //Defensive code. Sometimes, svgBoundTop can be a really negative
- // number, like -134254. That's a bug.
- // If such a number is found, use zero instead. FireFox bug only
- if (svgBoundTop < 0) {
- var containerBound = chartContainer.getBoundingClientRect();
- svgBoundTop = (Math.abs(svgBoundTop) > containerBound.height) ? 0 : svgBoundTop;
- }
- svgOffset.top = Math.abs(svgBoundTop - chartBound.top);
- svgOffset.left = Math.abs(svgBound.left - chartBound.left);
- }
- //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
- //You need to also add any offset between the <svg> element and its containing <div>
- //Finally, add any offset of the containing <div> on the whole page.
- left += chartContainer.offsetLeft + svgOffset.left - 2*chartContainer.scrollLeft;
- top += chartContainer.offsetTop + svgOffset.top - 2*chartContainer.scrollTop;
- }
-
- if (snapDistance && snapDistance > 0) {
- top = Math.floor(top/snapDistance) * snapDistance;
- }
-
- nv.tooltip.calcTooltipPosition([left,top], gravity, distance, container);
- return nvtooltip;
- };
-
- nvtooltip.nvPointerEventsClass = nvPointerEventsClass;
-
- nvtooltip.content = function(_) {
- if (!arguments.length) return content;
- content = _;
- return nvtooltip;
- };
-
- //Returns tooltipElem...not able to set it.
- nvtooltip.tooltipElem = function() {
- return tooltipElem;
- };
-
- nvtooltip.contentGenerator = function(_) {
- if (!arguments.length) return contentGenerator;
- if (typeof _ === 'function') {
- contentGenerator = _;
- }
- return nvtooltip;
- };
-
- nvtooltip.data = function(_) {
- if (!arguments.length) return data;
- data = _;
- return nvtooltip;
- };
-
- nvtooltip.gravity = function(_) {
- if (!arguments.length) return gravity;
- gravity = _;
- return nvtooltip;
- };
-
- nvtooltip.distance = function(_) {
- if (!arguments.length) return distance;
- distance = _;
- return nvtooltip;
- };
-
- nvtooltip.snapDistance = function(_) {
- if (!arguments.length) return snapDistance;
- snapDistance = _;
- return nvtooltip;
- };
-
- nvtooltip.classes = function(_) {
- if (!arguments.length) return classes;
- classes = _;
- return nvtooltip;
- };
-
- nvtooltip.chartContainer = function(_) {
- if (!arguments.length) return chartContainer;
- chartContainer = _;
- return nvtooltip;
- };
-
- nvtooltip.position = function(_) {
- if (!arguments.length) return position;
- position.left = (typeof _.left !== 'undefined') ? _.left : position.left;
- position.top = (typeof _.top !== 'undefined') ? _.top : position.top;
- return nvtooltip;
- };
-
- nvtooltip.fixedTop = function(_) {
- if (!arguments.length) return fixedTop;
- fixedTop = _;
- return nvtooltip;
- };
-
- nvtooltip.enabled = function(_) {
- if (!arguments.length) return enabled;
- enabled = _;
- return nvtooltip;
- };
-
- nvtooltip.valueFormatter = function(_) {
- if (!arguments.length) return valueFormatter;
- if (typeof _ === 'function') {
- valueFormatter = _;
- }
- return nvtooltip;
- };
-
- nvtooltip.headerFormatter = function(_) {
- if (!arguments.length) return headerFormatter;
- if (typeof _ === 'function') {
- headerFormatter = _;
- }
- return nvtooltip;
- };
-
- //id() is a read-only function. You can't use it to set the id.
- nvtooltip.id = function() {
- return id;
- };
-
-
- return nvtooltip;
- };
-
-
- //Original tooltip.show function. Kept for backward compatibility.
- // pos = [left,top]
- nv.tooltip.show = function(pos, content, gravity, dist, parentContainer, classes) {
-
- //Create new tooltip div if it doesn't exist on DOM.
- var container = document.createElement('div');
- container.className = 'nvtooltip ' + (classes ? classes : 'xy-tooltip');
-
- var body = parentContainer;
- if ( !parentContainer || parentContainer.tagName.match(/g|svg/i)) {
- //If the parent element is an SVG element, place tooltip in the <body> element.
- body = document.getElementsByTagName('body')[0];
- }
-
- container.style.left = 0;
- container.style.top = 0;
- container.style.opacity = 0;
- container.innerHTML = content;
- body.appendChild(container);
-
- //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
- if (parentContainer) {
- pos[0] = pos[0] - parentContainer.scrollLeft;
- pos[1] = pos[1] - parentContainer.scrollTop;
- }
- nv.tooltip.calcTooltipPosition(pos, gravity, dist, container);
- };
-
- //Looks up the ancestry of a DOM element, and returns the first NON-svg node.
- nv.tooltip.findFirstNonSVGParent = function(Elem) {
- while(Elem.tagName.match(/^g|svg$/i) !== null) {
- Elem = Elem.parentNode;
- }
- return Elem;
- };
-
- //Finds the total offsetTop of a given DOM element.
- //Looks up the entire ancestry of an element, up to the first relatively positioned element.
- nv.tooltip.findTotalOffsetTop = function ( Elem, initialTop ) {
- var offsetTop = initialTop;
-
- do {
- if( !isNaN( Elem.offsetTop ) ) {
- offsetTop += (Elem.offsetTop);
- }
- } while( Elem = Elem.offsetParent );
- return offsetTop;
- };
-
- //Finds the total offsetLeft of a given DOM element.
- //Looks up the entire ancestry of an element, up to the first relatively positioned element.
- nv.tooltip.findTotalOffsetLeft = function ( Elem, initialLeft) {
- var offsetLeft = initialLeft;
-
- do {
- if( !isNaN( Elem.offsetLeft ) ) {
- offsetLeft += (Elem.offsetLeft);
- }
- } while( Elem = Elem.offsetParent );
- return offsetLeft;
- };
-
- //Global utility function to render a tooltip on the DOM.
- //pos = [left,top] coordinates of where to place the tooltip, relative to the SVG chart container.
- //gravity = how to orient the tooltip
- //dist = how far away from the mouse to place tooltip
- //container = tooltip DIV
- nv.tooltip.calcTooltipPosition = function(pos, gravity, dist, container) {
-
- var height = parseInt(container.offsetHeight),
- width = parseInt(container.offsetWidth),
- windowWidth = nv.utils.windowSize().width,
- windowHeight = nv.utils.windowSize().height,
- scrollTop = window.pageYOffset,
- scrollLeft = window.pageXOffset,
- left, top;
-
- windowHeight = window.innerWidth >= document.body.scrollWidth ? windowHeight : windowHeight - 16;
- windowWidth = window.innerHeight >= document.body.scrollHeight ? windowWidth : windowWidth - 16;
-
- gravity = gravity || 's';
- dist = dist || 20;
-
- var tooltipTop = function ( Elem ) {
- return nv.tooltip.findTotalOffsetTop(Elem, top);
- };
-
- var tooltipLeft = function ( Elem ) {
- return nv.tooltip.findTotalOffsetLeft(Elem,left);
- };
-
- switch (gravity) {
- case 'e':
- left = pos[0] - width - dist;
- top = pos[1] - (height / 2);
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft < scrollLeft) left = pos[0] + dist > scrollLeft ? pos[0] + dist : scrollLeft - tLeft + left;
- if (tTop < scrollTop) top = scrollTop - tTop + top;
- if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
- break;
- case 'w':
- left = pos[0] + dist;
- top = pos[1] - (height / 2);
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft + width > windowWidth) left = pos[0] - width - dist;
- if (tTop < scrollTop) top = scrollTop + 5;
- if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
- break;
- case 'n':
- left = pos[0] - (width / 2) - 5;
- top = pos[1] + dist;
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft < scrollLeft) left = scrollLeft + 5;
- if (tLeft + width > windowWidth) left = left - width/2 + 5;
- if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
- break;
- case 's':
- left = pos[0] - (width / 2);
- top = pos[1] - height - dist;
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft < scrollLeft) left = scrollLeft + 5;
- if (tLeft + width > windowWidth) left = left - width/2 + 5;
- if (scrollTop > tTop) top = scrollTop;
- break;
- case 'none':
- left = pos[0];
- top = pos[1] - dist;
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- break;
- }
-
-
- container.style.left = left+'px';
- container.style.top = top+'px';
- container.style.opacity = 1;
- container.style.position = 'absolute';
-
- return container;
- };
-
- //Global utility function to remove tooltips from the DOM.
- nv.tooltip.cleanup = function() {
-
- // Find the tooltips, mark them for removal by this class (so others cleanups won't find it)
- var tooltips = document.getElementsByClassName('nvtooltip');
- var purging = [];
- while(tooltips.length) {
- purging.push(tooltips[0]);
- tooltips[0].style.transitionDelay = '0 !important';
- tooltips[0].style.opacity = 0;
- tooltips[0].className = 'nvtooltip-pending-removal';
- }
-
- setTimeout(function() {
-
- while (purging.length) {
- var removeMe = purging.pop();
- removeMe.parentNode.removeChild(removeMe);
- }
- }, 500);
- };
-
-})();
-
-nv.utils.windowSize = function() {
- // Sane defaults
- var size = {width: 640, height: 480};
-
- // Earlier IE uses Doc.body
- if (document.body && document.body.offsetWidth) {
- size.width = document.body.offsetWidth;
- size.height = document.body.offsetHeight;
- }
-
- // IE can use depending on mode it is in
- if (document.compatMode=='CSS1Compat' &&
- document.documentElement &&
- document.documentElement.offsetWidth ) {
- size.width = document.documentElement.offsetWidth;
- size.height = document.documentElement.offsetHeight;
- }
-
- // Most recent browsers use
- if (window.innerWidth && window.innerHeight) {
- size.width = window.innerWidth;
- size.height = window.innerHeight;
- }
- return (size);
-};
-
-
-
-// Easy way to bind multiple functions to window.onresize
-// TODO: give a way to remove a function after its bound, other than removing all of them
-nv.utils.windowResize = function(fun){
- if (fun === undefined) return;
- var oldresize = window.onresize;
-
- window.onresize = function(e) {
- if (typeof oldresize == 'function') oldresize(e);
- fun(e);
- }
-}
-
-// Backwards compatible way to implement more d3-like coloring of graphs.
-// If passed an array, wrap it in a function which implements the old default
-// behavior
-nv.utils.getColor = function(color) {
- if (!arguments.length) return nv.utils.defaultColor(); //if you pass in nothing, get default colors back
-
- if( Object.prototype.toString.call( color ) === '[object Array]' )
- return function(d, i) { return d.color || color[i % color.length]; };
- else
- return color;
- //can't really help it if someone passes rubbish as color
-}
-
-// Default color chooser uses the index of an object as before.
-nv.utils.defaultColor = function() {
- var colors = d3.scale.category20().range();
- return function(d, i) { return d.color || colors[i % colors.length] };
-}
-
-
-// Returns a color function that takes the result of 'getKey' for each series and
-// looks for a corresponding color from the dictionary,
-nv.utils.customTheme = function(dictionary, getKey, defaultColors) {
- getKey = getKey || function(series) { return series.key }; // use default series.key if getKey is undefined
- defaultColors = defaultColors || d3.scale.category20().range(); //default color function
-
- var defIndex = defaultColors.length; //current default color (going in reverse)
-
- return function(series, index) {
- var key = getKey(series);
-
- if (!defIndex) defIndex = defaultColors.length; //used all the default colors, start over
-
- if (typeof dictionary[key] !== "undefined")
- return (typeof dictionary[key] === "function") ? dictionary[key]() : dictionary[key];
- else
- return defaultColors[--defIndex]; // no match in dictionary, use default color
- }
-}
-
-
-
-// From the PJAX example on d3js.org, while this is not really directly needed
-// it's a very cool method for doing pjax, I may expand upon it a little bit,
-// open to suggestions on anything that may be useful
-nv.utils.pjax = function(links, content) {
- d3.selectAll(links).on("click", function() {
- history.pushState(this.href, this.textContent, this.href);
- load(this.href);
- d3.event.preventDefault();
- });
-
- function load(href) {
- d3.html(href, function(fragment) {
- var target = d3.select(content).node();
- target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
- nv.utils.pjax(links, content);
- });
- }
-
- d3.select(window).on("popstate", function() {
- if (d3.event.state) load(d3.event.state);
- });
-}
-
-/* For situations where we want to approximate the width in pixels for an SVG:text element.
-Most common instance is when the element is in a display:none; container.
-Forumla is : text.length * font-size * constant_factor
-*/
-nv.utils.calcApproxTextWidth = function (svgTextElem) {
- if (svgTextElem instanceof d3.selection) {
- var fontSize = parseInt(svgTextElem.style("font-size").replace("px",""));
- var textLength = svgTextElem.text().length;
-
- return textLength * fontSize * 0.5;
- }
- return 0;
-};
-
-/* Numbers that are undefined, null or NaN, convert them to zeros.
-*/
-nv.utils.NaNtoZero = function(n) {
- if (typeof n !== 'number'
- || isNaN(n)
- || n === null
- || n === Infinity) return 0;
-
- return n;
-};
-
-/*
-Snippet of code you can insert into each nv.models.* to give you the ability to
-do things like:
-chart.options({
- showXAxis: true,
- tooltips: true
-});
-
-To enable in the chart:
-chart.options = nv.utils.optionsFunc.bind(chart);
-*/
-nv.utils.optionsFunc = function(args) {
- if (args) {
- d3.map(args).forEach((function(key,value) {
- if (typeof this[key] === "function") {
- this[key](value);
- }
- }).bind(this));
- }
- return this;
-};nv.models.axis = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var axis = d3.svg.axis()
- ;
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 75 //only used for tickLabel currently
- , height = 60 //only used for tickLabel currently
- , scale = d3.scale.linear()
- , axisLabelText = null
- , showMaxMin = true //TODO: showMaxMin should be disabled on all ordinal scaled axes
- , highlightZero = true
- , rotateLabels = 0
- , rotateYLabel = true
- , staggerLabels = false
- , isOrdinal = false
- , ticks = null
- , axisLabelDistance = 12 //The larger this number is, the closer the axis label is to the axis.
- ;
-
- axis
- .scale(scale)
- .orient('bottom')
- .tickFormat(function(d) { return d })
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var scale0;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-axis').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-axis');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- //------------------------------------------------------------
-
-
- if (ticks !== null)
- axis.ticks(ticks);
- else if (axis.orient() == 'top' || axis.orient() == 'bottom')
- axis.ticks(Math.abs(scale.range()[1] - scale.range()[0]) / 100);
-
-
- //TODO: consider calculating width/height based on whether or not label is added, for reference in charts using this component
-
-
- g.transition().call(axis);
-
- scale0 = scale0 || axis.scale();
-
- var fmt = axis.tickFormat();
- if (fmt == null) {
- fmt = scale0.tickFormat();
- }
-
- var axisLabel = g.selectAll('text.nv-axislabel')
- .data([axisLabelText || null]);
- axisLabel.exit().remove();
- switch (axis.orient()) {
- case 'top':
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
- axisLabel
- .attr('text-anchor', 'middle')
- .attr('y', 0)
- .attr('x', w/2);
- if (showMaxMin) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- .data(scale.domain());
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(' + scale(d) + ',0)'
- })
- .select('text')
- .attr('dy', '-0.5em')
- .attr('y', -axis.tickPadding())
- .attr('text-anchor', 'middle')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- return 'translate(' + scale.range()[i] + ',0)'
- });
- }
- break;
- case 'bottom':
- var xLabelMargin = 36;
- var maxTextWidth = 30;
- var xTicks = g.selectAll('g').select("text");
- if (rotateLabels%360) {
- //Calculate the longest xTick width
- xTicks.each(function(d,i){
- var width = this.getBBox().width;
- if(width > maxTextWidth) maxTextWidth = width;
- });
- //Convert to radians before calculating sin. Add 30 to margin for healthy padding.
- var sin = Math.abs(Math.sin(rotateLabels*Math.PI/180));
- var xLabelMargin = (sin ? sin*maxTextWidth : maxTextWidth)+30;
- //Rotate all xTicks
- xTicks
- .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
- .style('text-anchor', rotateLabels%360 > 0 ? 'start' : 'end');
- }
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
- axisLabel
- .attr('text-anchor', 'middle')
- .attr('y', xLabelMargin)
- .attr('x', w/2);
- if (showMaxMin) {
- //if (showMaxMin && !isOrdinal) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- //.data(scale.domain())
- .data([scale.domain()[0], scale.domain()[scale.domain().length - 1]]);
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
- })
- .select('text')
- .attr('dy', '.71em')
- .attr('y', axis.tickPadding())
- .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
- .style('text-anchor', rotateLabels ? (rotateLabels%360 > 0 ? 'start' : 'end') : 'middle')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- //return 'translate(' + scale.range()[i] + ',0)'
- //return 'translate(' + scale(d) + ',0)'
- return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
- });
- }
- if (staggerLabels)
- xTicks
- .attr('transform', function(d,i) { return 'translate(0,' + (i % 2 == 0 ? '0' : '12') + ')' });
-
- break;
- case 'right':
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- axisLabel
- .style('text-anchor', rotateYLabel ? 'middle' : 'begin')
- .attr('transform', rotateYLabel ? 'rotate(90)' : '')
- .attr('y', rotateYLabel ? (-Math.max(margin.right,width) + 12) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
- .attr('x', rotateYLabel ? (scale.range()[0] / 2) : axis.tickPadding());
- if (showMaxMin) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- .data(scale.domain());
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
- .style('opacity', 0);
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale(d) + ')'
- })
- .select('text')
- .attr('dy', '.32em')
- .attr('y', 0)
- .attr('x', axis.tickPadding())
- .style('text-anchor', 'start')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale.range()[i] + ')'
- })
- .select('text')
- .style('opacity', 1);
- }
- break;
- case 'left':
- /*
- //For dynamically placing the label. Can be used with dynamically-sized chart axis margins
- var yTicks = g.selectAll('g').select("text");
- yTicks.each(function(d,i){
- var labelPadding = this.getBBox().width + axis.tickPadding() + 16;
- if(labelPadding > width) width = labelPadding;
- });
- */
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- axisLabel
- .style('text-anchor', rotateYLabel ? 'middle' : 'end')
- .attr('transform', rotateYLabel ? 'rotate(-90)' : '')
- .attr('y', rotateYLabel ? (-Math.max(margin.left,width) + axisLabelDistance) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
- .attr('x', rotateYLabel ? (-scale.range()[0] / 2) : -axis.tickPadding());
- if (showMaxMin) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- .data(scale.domain());
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
- .style('opacity', 0);
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale0(d) + ')'
- })
- .select('text')
- .attr('dy', '.32em')
- .attr('y', 0)
- .attr('x', -axis.tickPadding())
- .attr('text-anchor', 'end')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale.range()[i] + ')'
- })
- .select('text')
- .style('opacity', 1);
- }
- break;
- }
- axisLabel
- .text(function(d) { return d });
-
-
- if (showMaxMin && (axis.orient() === 'left' || axis.orient() === 'right')) {
- //check if max and min overlap other values, if so, hide the values that overlap
- g.selectAll('g') // the g's wrapping each tick
- .each(function(d,i) {
- d3.select(this).select('text').attr('opacity', 1);
- if (scale(d) < scale.range()[1] + 10 || scale(d) > scale.range()[0] - 10) { // 10 is assuming text height is 16... if d is 0, leave it!
- if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
- d3.select(this).attr('opacity', 0);
-
- d3.select(this).select('text').attr('opacity', 0); // Don't remove the ZERO line!!
- }
- });
-
- //if Max and Min = 0 only show min, Issue #281
- if (scale.domain()[0] == scale.domain()[1] && scale.domain()[0] == 0)
- wrap.selectAll('g.nv-axisMaxMin')
- .style('opacity', function(d,i) { return !i ? 1 : 0 });
-
- }
-
- if (showMaxMin && (axis.orient() === 'top' || axis.orient() === 'bottom')) {
- var maxMinRange = [];
- wrap.selectAll('g.nv-axisMaxMin')
- .each(function(d,i) {
- try {
- if (i) // i== 1, max position
- maxMinRange.push(scale(d) - this.getBBox().width - 4) //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
- else // i==0, min position
- maxMinRange.push(scale(d) + this.getBBox().width + 4)
- }catch (err) {
- if (i) // i== 1, max position
- maxMinRange.push(scale(d) - 4) //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
- else // i==0, min position
- maxMinRange.push(scale(d) + 4)
- }
- });
- g.selectAll('g') // the g's wrapping each tick
- .each(function(d,i) {
- if (scale(d) < maxMinRange[0] || scale(d) > maxMinRange[1]) {
- if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
- d3.select(this).remove();
- else
- d3.select(this).select('text').remove(); // Don't remove the ZERO line!!
- }
- });
- }
-
-
- //highlight zero line ... Maybe should not be an option and should just be in CSS?
- if (highlightZero)
- g.selectAll('.tick')
- .filter(function(d) { return !parseFloat(Math.round(d.__data__*100000)/1000000) && (d.__data__ !== undefined) }) //this is because sometimes the 0 tick is a very small fraction, TODO: think of cleaner technique
- .classed('zero', true);
-
- //store old scales for use in transitions on update
- scale0 = scale.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.axis = axis;
-
- d3.rebind(chart, axis, 'orient', 'tickValues', 'tickSubdivide', 'tickSize', 'tickPadding', 'tickFormat');
- d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands'); //these are also accessible by chart.scale(), but added common ones directly for ease of use
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if(!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- }
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.ticks = function(_) {
- if (!arguments.length) return ticks;
- ticks = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.axisLabel = function(_) {
- if (!arguments.length) return axisLabelText;
- axisLabelText = _;
- return chart;
- }
-
- chart.showMaxMin = function(_) {
- if (!arguments.length) return showMaxMin;
- showMaxMin = _;
- return chart;
- }
-
- chart.highlightZero = function(_) {
- if (!arguments.length) return highlightZero;
- highlightZero = _;
- return chart;
- }
-
- chart.scale = function(_) {
- if (!arguments.length) return scale;
- scale = _;
- axis.scale(scale);
- isOrdinal = typeof scale.rangeBands === 'function';
- d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands');
- return chart;
- }
-
- chart.rotateYLabel = function(_) {
- if(!arguments.length) return rotateYLabel;
- rotateYLabel = _;
- return chart;
- }
-
- chart.rotateLabels = function(_) {
- if(!arguments.length) return rotateLabels;
- rotateLabels = _;
- return chart;
- }
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
- chart.axisLabelDistance = function(_) {
- if (!arguments.length) return axisLabelDistance;
- axisLabelDistance = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-
-nv.models.bullet = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , orient = 'left' // TODO top & bottom
- , reverse = false
- , ranges = function(d) { return d.ranges }
- , markers = function(d) { return d.markers }
- , measures = function(d) { return d.measures }
- , rangeLabels = function(d) { return d.rangeLabels ? d.rangeLabels : [] }
- , markerLabels = function(d) { return d.markerLabels ? d.markerLabels : [] }
- , measureLabels = function(d) { return d.measureLabels ? d.measureLabels : [] }
- , forceX = [0] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
- , width = 380
- , height = 30
- , tickFormat = null
- , color = nv.utils.getColor(['#1f77b4'])
- , dispatch = d3.dispatch('elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(d, i) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
- markerz = markers.call(this, d, i).slice().sort(d3.descending),
- measurez = measures.call(this, d, i).slice().sort(d3.descending),
- rangeLabelz = rangeLabels.call(this, d, i).slice(),
- markerLabelz = markerLabels.call(this, d, i).slice(),
- measureLabelz = measureLabels.call(this, d, i).slice();
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- // Compute the new x-scale.
- var x1 = d3.scale.linear()
- .domain( d3.extent(d3.merge([forceX, rangez])) )
- .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
- // Retrieve the old x-scale, if this is an update.
- var x0 = this.__chart__ || d3.scale.linear()
- .domain([0, Infinity])
- .range(x1.range());
-
- // Stash the new scale.
- this.__chart__ = x1;
-
-
- var rangeMin = d3.min(rangez), //rangez[2]
- rangeMax = d3.max(rangez), //rangez[0]
- rangeAvg = rangez[1];
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-bullet').data([d]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bullet');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('rect').attr('class', 'nv-range nv-rangeMax');
- gEnter.append('rect').attr('class', 'nv-range nv-rangeAvg');
- gEnter.append('rect').attr('class', 'nv-range nv-rangeMin');
- gEnter.append('rect').attr('class', 'nv-measure');
- gEnter.append('path').attr('class', 'nv-markerTriangle');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
- w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
- var xp0 = function(d) { return d < 0 ? x0(d) : x0(0) },
- xp1 = function(d) { return d < 0 ? x1(d) : x1(0) };
-
-
- g.select('rect.nv-rangeMax')
- .attr('height', availableHeight)
- .attr('width', w1(rangeMax > 0 ? rangeMax : rangeMin))
- .attr('x', xp1(rangeMax > 0 ? rangeMax : rangeMin))
- .datum(rangeMax > 0 ? rangeMax : rangeMin)
- /*
- .attr('x', rangeMin < 0 ?
- rangeMax > 0 ?
- x1(rangeMin)
- : x1(rangeMax)
- : x1(0))
- */
-
- g.select('rect.nv-rangeAvg')
- .attr('height', availableHeight)
- .attr('width', w1(rangeAvg))
- .attr('x', xp1(rangeAvg))
- .datum(rangeAvg)
- /*
- .attr('width', rangeMax <= 0 ?
- x1(rangeMax) - x1(rangeAvg)
- : x1(rangeAvg) - x1(rangeMin))
- .attr('x', rangeMax <= 0 ?
- x1(rangeAvg)
- : x1(rangeMin))
- */
-
- g.select('rect.nv-rangeMin')
- .attr('height', availableHeight)
- .attr('width', w1(rangeMax))
- .attr('x', xp1(rangeMax))
- .attr('width', w1(rangeMax > 0 ? rangeMin : rangeMax))
- .attr('x', xp1(rangeMax > 0 ? rangeMin : rangeMax))
- .datum(rangeMax > 0 ? rangeMin : rangeMax)
- /*
- .attr('width', rangeMax <= 0 ?
- x1(rangeAvg) - x1(rangeMin)
- : x1(rangeMax) - x1(rangeAvg))
- .attr('x', rangeMax <= 0 ?
- x1(rangeMin)
- : x1(rangeAvg))
- */
-
- g.select('rect.nv-measure')
- .style('fill', color)
- .attr('height', availableHeight / 3)
- .attr('y', availableHeight / 3)
- .attr('width', measurez < 0 ?
- x1(0) - x1(measurez[0])
- : x1(measurez[0]) - x1(0))
- .attr('x', xp1(measurez))
- .on('mouseover', function() {
- dispatch.elementMouseover({
- value: measurez[0],
- label: measureLabelz[0] || 'Current',
- pos: [x1(measurez[0]), availableHeight/2]
- })
- })
- .on('mouseout', function() {
- dispatch.elementMouseout({
- value: measurez[0],
- label: measureLabelz[0] || 'Current'
- })
- })
-
- var h3 = availableHeight / 6;
- if (markerz[0]) {
- g.selectAll('path.nv-markerTriangle')
- .attr('transform', function(d) { return 'translate(' + x1(markerz[0]) + ',' + (availableHeight / 2) + ')' })
- .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
- .on('mouseover', function() {
- dispatch.elementMouseover({
- value: markerz[0],
- label: markerLabelz[0] || 'Previous',
- pos: [x1(markerz[0]), availableHeight/2]
- })
- })
- .on('mouseout', function() {
- dispatch.elementMouseout({
- value: markerz[0],
- label: markerLabelz[0] || 'Previous'
- })
- });
- } else {
- g.selectAll('path.nv-markerTriangle').remove();
- }
-
-
- wrap.selectAll('.nv-range')
- .on('mouseover', function(d,i) {
- var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
- dispatch.elementMouseover({
- value: d,
- label: label,
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d,i) {
- var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
- dispatch.elementMouseout({
- value: d,
- label: label
- })
- })
-
-/* // THIS IS THE PREVIOUS BULLET IMPLEMENTATION, WILL REMOVE SHORTLY
- // Update the range rects.
- var range = g.selectAll('rect.nv-range')
- .data(rangez);
-
- range.enter().append('rect')
- .attr('class', function(d, i) { return 'nv-range nv-s' + i; })
- .attr('width', w0)
- .attr('height', availableHeight)
- .attr('x', reverse ? x0 : 0)
- .on('mouseover', function(d,i) {
- dispatch.elementMouseover({
- value: d,
- label: (i <= 0) ? 'Maximum' : (i > 1) ? 'Minimum' : 'Mean', //TODO: make these labels a variable
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d,i) {
- dispatch.elementMouseout({
- value: d,
- label: (i <= 0) ? 'Minimum' : (i >=1) ? 'Maximum' : 'Mean' //TODO: make these labels a variable
- })
- })
-
- d3.transition(range)
- .attr('x', reverse ? x1 : 0)
- .attr('width', w1)
- .attr('height', availableHeight);
-
-
- // Update the measure rects.
- var measure = g.selectAll('rect.nv-measure')
- .data(measurez);
-
- measure.enter().append('rect')
- .attr('class', function(d, i) { return 'nv-measure nv-s' + i; })
- .style('fill', function(d,i) { return color(d,i ) })
- .attr('width', w0)
- .attr('height', availableHeight / 3)
- .attr('x', reverse ? x0 : 0)
- .attr('y', availableHeight / 3)
- .on('mouseover', function(d) {
- dispatch.elementMouseover({
- value: d,
- label: 'Current', //TODO: make these labels a variable
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d) {
- dispatch.elementMouseout({
- value: d,
- label: 'Current' //TODO: make these labels a variable
- })
- })
-
- d3.transition(measure)
- .attr('width', w1)
- .attr('height', availableHeight / 3)
- .attr('x', reverse ? x1 : 0)
- .attr('y', availableHeight / 3);
-
-
-
- // Update the marker lines.
- var marker = g.selectAll('path.nv-markerTriangle')
- .data(markerz);
-
- var h3 = availableHeight / 6;
- marker.enter().append('path')
- .attr('class', 'nv-markerTriangle')
- .attr('transform', function(d) { return 'translate(' + x0(d) + ',' + (availableHeight / 2) + ')' })
- .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
- .on('mouseover', function(d,i) {
- dispatch.elementMouseover({
- value: d,
- label: 'Previous',
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d,i) {
- dispatch.elementMouseout({
- value: d,
- label: 'Previous'
- })
- });
-
- d3.transition(marker)
- .attr('transform', function(d) { return 'translate(' + (x1(d) - x1(0)) + ',' + (availableHeight / 2) + ')' });
-
- marker.exit().remove();
-*/
-
- });
-
- // d3.timer.flush(); // Not needed?
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- // left, right, top, bottom
- chart.orient = function(_) {
- if (!arguments.length) return orient;
- orient = _;
- reverse = orient == 'right' || orient == 'bottom';
- return chart;
- };
-
- // ranges (bad, satisfactory, good)
- chart.ranges = function(_) {
- if (!arguments.length) return ranges;
- ranges = _;
- return chart;
- };
-
- // markers (previous, goal)
- chart.markers = function(_) {
- if (!arguments.length) return markers;
- markers = _;
- return chart;
- };
-
- // measures (actual, forecast)
- chart.measures = function(_) {
- if (!arguments.length) return measures;
- measures = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.tickFormat = function(_) {
- if (!arguments.length) return tickFormat;
- tickFormat = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-};
-
-
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-nv.models.bulletChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var bullet = nv.models.bullet()
- ;
-
- var orient = 'left' // TODO top & bottom
- , reverse = false
- , margin = {top: 5, right: 40, bottom: 20, left: 120}
- , ranges = function(d) { return d.ranges }
- , markers = function(d) { return d.markers }
- , measures = function(d) { return d.measures }
- , width = null
- , height = 55
- , tickFormat = null
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + x + '</h3>' +
- '<p>' + y + '</p>'
- }
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ) + margin.left,
- top = e.pos[1] + ( offsetElement.offsetTop || 0) + margin.top,
- content = tooltip(e.key, e.label, e.value, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(d, i) {
- var container = d3.select(this);
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- that = this;
-
-
- chart.update = function() { chart(selection) };
- chart.container = this;
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!d || !ranges.call(this, d, i)) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', 18 + margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
-
- var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
- markerz = markers.call(this, d, i).slice().sort(d3.descending),
- measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-bulletChart').data([d]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bulletChart');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-bulletWrap');
- gEnter.append('g').attr('class', 'nv-titles');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- // Compute the new x-scale.
- var x1 = d3.scale.linear()
- .domain([0, Math.max(rangez[0], markerz[0], measurez[0])]) // TODO: need to allow forceX and forceY, and xDomain, yDomain
- .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
- // Retrieve the old x-scale, if this is an update.
- var x0 = this.__chart__ || d3.scale.linear()
- .domain([0, Infinity])
- .range(x1.range());
-
- // Stash the new scale.
- this.__chart__ = x1;
-
- /*
- // Derive width-scales from the x-scales.
- var w0 = bulletWidth(x0),
- w1 = bulletWidth(x1);
-
- function bulletWidth(x) {
- var x0 = x(0);
- return function(d) {
- return Math.abs(x(d) - x(0));
- };
- }
-
- function bulletTranslate(x) {
- return function(d) {
- return 'translate(' + x(d) + ',0)';
- };
- }
- */
-
- var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
- w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
- var title = gEnter.select('.nv-titles').append('g')
- .attr('text-anchor', 'end')
- .attr('transform', 'translate(-6,' + (height - margin.top - margin.bottom) / 2 + ')');
- title.append('text')
- .attr('class', 'nv-title')
- .text(function(d) { return d.title; });
-
- title.append('text')
- .attr('class', 'nv-subtitle')
- .attr('dy', '1em')
- .text(function(d) { return d.subtitle; });
-
-
-
- bullet
- .width(availableWidth)
- .height(availableHeight)
-
- var bulletWrap = g.select('.nv-bulletWrap');
-
- d3.transition(bulletWrap).call(bullet);
-
-
-
- // Compute the tick format.
- var format = tickFormat || x1.tickFormat( availableWidth / 100 );
-
- // Update the tick groups.
- var tick = g.selectAll('g.nv-tick')
- .data(x1.ticks( availableWidth / 50 ), function(d) {
- return this.textContent || format(d);
- });
-
- // Initialize the ticks with the old scale, x0.
- var tickEnter = tick.enter().append('g')
- .attr('class', 'nv-tick')
- .attr('transform', function(d) { return 'translate(' + x0(d) + ',0)' })
- .style('opacity', 1e-6);
-
- tickEnter.append('line')
- .attr('y1', availableHeight)
- .attr('y2', availableHeight * 7 / 6);
-
- tickEnter.append('text')
- .attr('text-anchor', 'middle')
- .attr('dy', '1em')
- .attr('y', availableHeight * 7 / 6)
- .text(format);
-
-
- // Transition the updating ticks to the new scale, x1.
- var tickUpdate = d3.transition(tick)
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
- .style('opacity', 1);
-
- tickUpdate.select('line')
- .attr('y1', availableHeight)
- .attr('y2', availableHeight * 7 / 6);
-
- tickUpdate.select('text')
- .attr('y', availableHeight * 7 / 6);
-
- // Transition the exiting ticks to the new scale, x1.
- d3.transition(tick.exit())
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
- .style('opacity', 1e-6)
- .remove();
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- dispatch.on('tooltipShow', function(e) {
- e.key = d.title;
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
- });
-
- d3.timer.flush();
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- bullet.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow(e);
- });
-
- bullet.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.bullet = bullet;
-
- d3.rebind(chart, bullet, 'color');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- // left, right, top, bottom
- chart.orient = function(x) {
- if (!arguments.length) return orient;
- orient = x;
- reverse = orient == 'right' || orient == 'bottom';
- return chart;
- };
-
- // ranges (bad, satisfactory, good)
- chart.ranges = function(x) {
- if (!arguments.length) return ranges;
- ranges = x;
- return chart;
- };
-
- // markers (previous, goal)
- chart.markers = function(x) {
- if (!arguments.length) return markers;
- markers = x;
- return chart;
- };
-
- // measures (actual, forecast)
- chart.measures = function(x) {
- if (!arguments.length) return measures;
- measures = x;
- return chart;
- };
-
- chart.width = function(x) {
- if (!arguments.length) return width;
- width = x;
- return chart;
- };
-
- chart.height = function(x) {
- if (!arguments.length) return height;
- height = x;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.tickFormat = function(x) {
- if (!arguments.length) return tickFormat;
- tickFormat = x;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-};
-
-
-
-nv.models.cumulativeLineChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , interactiveLayer = nv.interactiveGuideline()
- ;
-
- var margin = {top: 30, right: 30, bottom: 50, left: 60}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , tooltips = true
- , showControls = true
- , useInteractiveGuideline = false
- , rescaleY = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , id = lines.id()
- , state = { index: 0, rescaleY: rescaleY }
- , defaultState = null
- , noData = 'No Data Available.'
- , average = function(d) { return d.average }
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- ;
-
- //============================================================
- controls.updateState(false);
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var dx = d3.scale.linear()
- , index = {i: 0, x: 0}
- ;
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this).classed('nv-chart-' + id, true),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- var indexDrag = d3.behavior.drag()
- .on('dragstart', dragStart)
- .on('drag', dragMove)
- .on('dragend', dragEnd);
-
-
- function dragStart(d,i) {
- d3.select(chart.container)
- .style('cursor', 'ew-resize');
- }
-
- function dragMove(d,i) {
- index.x = d3.event.x;
- index.i = Math.round(dx.invert(index.x));
- updateZero();
- }
-
- function dragEnd(d,i) {
- d3.select(chart.container)
- .style('cursor', 'auto');
-
- // update state and send stateChange with new index
- state.index = index.i;
- dispatch.stateChange(state);
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = lines.xScale();
- y = lines.yScale();
-
-
- if (!rescaleY) {
- var seriesDomains = data
- .filter(function(series) { return !series.disabled })
- .map(function(series,i) {
- var initialDomain = d3.extent(series.values, lines.y());
-
- //account for series being disabled when losing 95% or more
- if (initialDomain[0] < -.95) initialDomain[0] = -.95;
-
- return [
- (initialDomain[0] - initialDomain[1]) / (1 + initialDomain[1]),
- (initialDomain[1] - initialDomain[0]) / (1 + initialDomain[0])
- ];
- });
-
- var completeDomain = [
- d3.min(seriesDomains, function(d) { return d[0] }),
- d3.max(seriesDomains, function(d) { return d[1] })
- ]
-
- lines.yDomain(completeDomain);
- } else {
- lines.yDomain(null);
- }
-
-
- dx .domain([0, data[0].values.length - 1]) //Assumes all series have same length
- .range([0, availableWidth])
- .clamp(true);
-
- //------------------------------------------------------------
-
-
- var data = indexify(index.i, data);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
- var interactivePointerEvents = (useInteractiveGuideline) ? "none" : "all";
- var wrap = container.selectAll('g.nv-wrap.nv-cumulativeLine').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-cumulativeLine').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-interactive');
- gEnter.append('g').attr('class', 'nv-x nv-axis').style("pointer-events","none");
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-background');
- gEnter.append('g').attr('class', 'nv-linesWrap').style("pointer-events",interactivePointerEvents);
- gEnter.append('g').attr('class', 'nv-avgLinesWrap').style("pointer-events","none");
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- { key: 'Re-scale y-axis', disabled: !rescaleY }
- ];
-
- controls.width(140).color(['#444', '#444', '#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- // Show error if series goes below 100%
- var tempDisabled = data.filter(function(d) { return d.tempDisabled });
-
- wrap.select('.tempDisabled').remove(); //clean-up and prevent duplicates
- if (tempDisabled.length) {
- wrap.append('text').attr('class', 'tempDisabled')
- .attr('x', availableWidth / 2)
- .attr('y', '-.71em')
- .style('text-anchor', 'end')
- .text(tempDisabled.map(function(d) { return d.key }).join(', ') + ' values cannot be calculated for this time period.');
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- //------------------------------------------------------------
- //Set up interactive layer
- if (useInteractiveGuideline) {
- interactiveLayer
- .width(availableWidth)
- .height(availableHeight)
- .margin({left:margin.left,top:margin.top})
- .svgContainer(container)
- .xScale(x);
- wrap.select(".nv-interactive").call(interactiveLayer);
- }
-
- gEnter.select('.nv-background')
- .append('rect');
-
- g.select('.nv-background rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- lines
- //.x(function(d) { return d.x })
- .y(function(d) { return d.display.y })
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].tempDisabled; }));
-
-
-
- var linesWrap = g.select('.nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled && !d.tempDisabled }));
-
- //d3.transition(linesWrap).call(lines);
- linesWrap.call(lines);
-
- /*Handle average lines [AN-612] ----------------------------*/
-
- //Store a series index number in the data array.
- data.forEach(function(d,i) {
- d.seriesIndex = i;
- });
-
- var avgLineData = data.filter(function(d) {
- return !d.disabled && !!average(d);
- });
-
- var avgLines = g.select(".nv-avgLinesWrap").selectAll("line")
- .data(avgLineData, function(d) { return d.key; });
-
- var getAvgLineY = function(d) {
- //If average lines go off the svg element, clamp them to the svg bounds.
- var yVal = y(average(d));
- if (yVal < 0) return 0;
- if (yVal > availableHeight) return availableHeight;
- return yVal;
- };
-
- avgLines.enter()
- .append('line')
- .style('stroke-width',2)
- .style('stroke-dasharray','10,10')
- .style('stroke',function (d,i) {
- return lines.color()(d,d.seriesIndex);
- })
- .attr('x1',0)
- .attr('x2',availableWidth)
- .attr('y1', getAvgLineY)
- .attr('y2', getAvgLineY);
-
- avgLines
- .style('stroke-opacity',function(d){
- //If average lines go offscreen, make them transparent
- var yVal = y(average(d));
- if (yVal < 0 || yVal > availableHeight) return 0;
- return 1;
- })
- .attr('x1',0)
- .attr('x2',availableWidth)
- .attr('y1', getAvgLineY)
- .attr('y2', getAvgLineY);
-
- avgLines.exit().remove();
-
- //Create index line -----------------------------------------
-
- var indexLine = linesWrap.selectAll('.nv-indexLine')
- .data([index]);
- indexLine.enter().append('rect').attr('class', 'nv-indexLine')
- .attr('width', 3)
- .attr('x', -2)
- .attr('fill', 'red')
- .attr('fill-opacity', .5)
- .style("pointer-events","all")
- .call(indexDrag)
-
- indexLine
- .attr('transform', function(d) { return 'translate(' + dx(d.i) + ',0)' })
- .attr('height', availableHeight)
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- //Suggest how many ticks based on the chart width and D3 should listen (70 is the optimal number for MM/DD/YY dates)
- .ticks( Math.min(data[0].values.length,availableWidth/70) )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.nv-x.nv-axis'))
- .call(xAxis);
- }
-
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.nv-y.nv-axis'))
- .call(yAxis);
- }
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
-
- function updateZero() {
- indexLine
- .data([index]);
-
- //When dragging the index line, turn off line transitions.
- // Then turn them back on when done dragging.
- var oldDuration = chart.transitionDuration();
- chart.transitionDuration(0);
- chart.update();
- chart.transitionDuration(oldDuration);
- }
-
- g.select('.nv-background rect')
- .on('click', function() {
- index.x = d3.mouse(this)[0];
- index.i = Math.round(dx.invert(index.x));
-
- // update state and send stateChange with new index
- state.index = index.i;
- dispatch.stateChange(state);
-
- updateZero();
- });
-
- lines.dispatch.on('elementClick', function(e) {
- index.i = e.pointIndex;
- index.x = dx(index.i);
-
- // update state and send stateChange with new index
- state.index = index.i;
- dispatch.stateChange(state);
-
- updateZero();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
- rescaleY = !d.disabled;
-
- state.rescaleY = rescaleY;
- dispatch.stateChange(state);
- chart.update();
- });
-
-
- legend.dispatch.on('stateChange', function(newState) {
- state.disabled = newState.disabled;
- dispatch.stateChange(state);
- chart.update();
- });
-
- interactiveLayer.dispatch.on('elementMousemove', function(e) {
- lines.clearHighlights();
- var singlePoint, pointIndex, pointXLocation, allData = [];
-
-
- data
- .filter(function(series, i) {
- series.seriesIndex = i;
- return !series.disabled;
- })
- .forEach(function(series,i) {
- pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
- lines.highlightPoint(i, pointIndex, true);
- var point = series.values[pointIndex];
- if (typeof point === 'undefined') return;
- if (typeof singlePoint === 'undefined') singlePoint = point;
- if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
- allData.push({
- key: series.key,
- value: chart.y()(point, pointIndex),
- color: color(series,series.seriesIndex)
- });
- });
-
- //Highlight the tooltip entry based on which point the mouse is closest to.
- if (allData.length > 2) {
- var yValue = chart.yScale().invert(e.mouseY);
- var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
- var threshold = 0.03 * domainExtent;
- var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
- if (indexToHighlight !== null)
- allData[indexToHighlight].highlight = true;
- }
-
- var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex), pointIndex);
- interactiveLayer.tooltip
- .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
- .chartContainer(that.parentNode)
- .enabled(tooltips)
- .valueFormatter(function(d,i) {
- return yAxis.tickFormat()(d);
- })
- .data(
- {
- value: xValue,
- series: allData
- }
- )();
-
- interactiveLayer.renderGuideLine(pointXLocation);
-
- });
-
- interactiveLayer.dispatch.on("elementMouseout",function(e) {
- dispatch.tooltipHide();
- lines.clearHighlights();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
-
- if (typeof e.index !== 'undefined') {
- index.i = e.index;
- index.x = dx(index.i);
-
- state.index = e.index;
-
- indexLine
- .data([index]);
- }
-
-
- if (typeof e.rescaleY !== 'undefined') {
- rescaleY = e.rescaleY;
- }
-
- chart.update();
- });
-
- //============================================================
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.lines = lines;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.interactiveLayer = interactiveLayer;
-
- d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'xScale','yScale', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi','useVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.rescaleY = function(_) {
- if (!arguments.length) return rescaleY;
- rescaleY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.useInteractiveGuideline = function(_) {
- if(!arguments.length) return useInteractiveGuideline;
- useInteractiveGuideline = _;
- if (_ === true) {
- chart.interactive(false);
- chart.useVoronoi(false);
- }
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.average = function(_) {
- if(!arguments.length) return average;
- average = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- //============================================================
- // Functions
- //------------------------------------------------------------
-
- /* Normalize the data according to an index point. */
- function indexify(idx, data) {
- return data.map(function(line, i) {
- if (!line.values) {
- return line;
- }
- var v = lines.y()(line.values[idx], idx);
-
- //TODO: implement check below, and disable series if series loses 100% or more cause divide by 0 issue
- if (v < -.95) {
- //if a series loses more than 100%, calculations fail.. anything close can cause major distortion (but is mathematically correct till it hits 100)
- line.tempDisabled = true;
- return line;
- }
-
- line.tempDisabled = false;
-
- line.values = line.values.map(function(point, pointIndex) {
- point.display = {'y': (lines.y()(point, pointIndex) - v) / (1 + v) };
- return point;
- })
-
- return line;
- })
- }
-
- //============================================================
-
-
- return chart;
-}
-//TODO: consider deprecating by adding necessary features to multiBar model
-nv.models.discreteBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.ordinal()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
- , color = nv.utils.defaultColor()
- , showValues = false
- , valueFormat = d3.format(',.2f')
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- , rectClass = 'discreteBar'
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), y0: d.y0 }
- })
- });
-
- x .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands(xRange || [0, availableWidth], .1);
-
- y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(forceY)));
-
-
- // If showValues, pad the Y axis range to account for label height
- if (showValues) y.range(yRange || [availableHeight - (y.domain()[0] < 0 ? 12 : 0), y.domain()[1] > 0 ? 12 : 0]);
- else y.range(yRange || [availableHeight, 0]);
-
- //store old scales if they exist
- x0 = x0 || x;
- y0 = y0 || y.copy().range([y(0),y(0)]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-discretebar').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discretebar');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-groups');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- //TODO: by definition, the discrete bar should not have multiple groups, will modify/remove later
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit()
- .transition()
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover });
- groups
- .transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .75);
-
-
- var bars = groups.selectAll('g.nv-bar')
- .data(function(d) { return d.values });
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('g')
- .attr('transform', function(d,i,j) {
- return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')'
- })
- .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- });
-
- barsEnter.append('rect')
- .attr('height', 0)
- .attr('width', x.rangeBand() * .9 / data.length )
-
- if (showValues) {
- barsEnter.append('text')
- .attr('text-anchor', 'middle')
- ;
-
- bars.select('text')
- .text(function(d,i) { return valueFormat(getY(d,i)) })
- .transition()
- .attr('x', x.rangeBand() * .9 / 2)
- .attr('y', function(d,i) { return getY(d,i) < 0 ? y(getY(d,i)) - y(0) + 12 : -4 })
-
- ;
- } else {
- bars.selectAll('text').remove();
- }
-
- bars
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive' })
- .style('fill', function(d,i) { return d.color || color(d,i) })
- .style('stroke', function(d,i) { return d.color || color(d,i) })
- .select('rect')
- .attr('class', rectClass)
- .transition()
- .attr('width', x.rangeBand() * .9 / data.length);
- bars.transition()
- //.delay(function(d,i) { return i * 1200 / data[0].values.length })
- .attr('transform', function(d,i) {
- var left = x(getX(d,i)) + x.rangeBand() * .05,
- top = getY(d,i) < 0 ?
- y(0) :
- y(0) - y(getY(d,i)) < 1 ?
- y(0) - 1 : //make 1 px positive bars show up above y=0
- y(getY(d,i));
-
- return 'translate(' + left + ', ' + top + ')'
- })
- .select('rect')
- .attr('height', function(d,i) {
- return Math.max(Math.abs(y(getY(d,i)) - y((yDomain && yDomain[0]) || 0)) || 1)
- });
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.showValues = function(_) {
- if (!arguments.length) return showValues;
- showValues = _;
- return chart;
- };
-
- chart.valueFormat= function(_) {
- if (!arguments.length) return valueFormat;
- valueFormat = _;
- return chart;
- };
-
- chart.rectClass= function(_) {
- if (!arguments.length) return rectClass;
- rectClass = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
-
-nv.models.discreteBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var discretebar = nv.models.discreteBar()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- ;
-
- var margin = {top: 15, right: 10, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.getColor()
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , staggerLabels = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + x + '</h3>' +
- '<p>' + y + '</p>'
- }
- , x
- , y
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'beforeUpdate')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .highlightZero(false)
- .showMaxMin(false)
- .tickFormat(function(d) { return d })
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickFormat(d3.format(',.1f'))
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(discretebar.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(discretebar.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() {
- dispatch.beforeUpdate();
- container.transition().duration(transitionDuration).call(chart);
- };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = discretebar.xScale();
- y = discretebar.yScale().clamp(true);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-discreteBarWithAxes').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discreteBarWithAxes').append('g');
- var defsEnter = gEnter.append('defs');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis')
- .append('g').attr('class', 'nv-zeroLine')
- .append('line');
-
- gEnter.append('g').attr('class', 'nv-barsWrap');
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- discretebar
- .width(availableWidth)
- .height(availableHeight);
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(discretebar);
-
- //------------------------------------------------------------
-
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-x-label-clip-' + discretebar.id())
- .append('rect');
-
- g.select('#nv-x-label-clip-' + discretebar.id() + ' rect')
- .attr('width', x.rangeBand() * (staggerLabels ? 2 : 1))
- .attr('height', 16)
- .attr('x', -x.rangeBand() / (staggerLabels ? 1 : 2 ));
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + (y.range()[0] + ((discretebar.showValues() && y.domain()[0] < 0) ? 16 : 0)) + ')');
- //d3.transition(g.select('.nv-x.nv-axis'))
- g.select('.nv-x.nv-axis').transition()
- .call(xAxis);
-
-
- var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
- if (staggerLabels) {
- xTicks
- .selectAll('text')
- .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '5' : '17') + ')' })
- }
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis').transition()
- .call(yAxis);
- }
-
- // Zero line
- g.select(".nv-zeroLine line")
- .attr("x1",0)
- .attr("x2",availableWidth)
- .attr("y1", y(0))
- .attr("y2", y(0))
- ;
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.discretebar = discretebar;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'id', 'showValues', 'valueFormat');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- discretebar.color(color);
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.distribution = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 400 //technically width or height depending on x or y....
- , size = 8
- , axis = 'x' // 'x' or 'y'... horizontal or vertical
- , getData = function(d) { return d[axis] } // defaults d.x or d.y
- , color = nv.utils.defaultColor()
- , scale = d3.scale.linear()
- , domain
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var scale0;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableLength = width - (axis === 'x' ? margin.left + margin.right : margin.top + margin.bottom),
- naxis = axis == 'x' ? 'y' : 'x',
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- scale0 = scale0 || scale;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-distribution').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-distribution');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
- //------------------------------------------------------------
-
-
- var distWrap = g.selectAll('g.nv-dist')
- .data(function(d) { return d }, function(d) { return d.key });
-
- distWrap.enter().append('g');
- distWrap
- .attr('class', function(d,i) { return 'nv-dist nv-series-' + i })
- .style('stroke', function(d,i) { return color(d, i) });
-
- var dist = distWrap.selectAll('line.nv-dist' + axis)
- .data(function(d) { return d.values })
- dist.enter().append('line')
- .attr(axis + '1', function(d,i) { return scale0(getData(d,i)) })
- .attr(axis + '2', function(d,i) { return scale0(getData(d,i)) })
- distWrap.exit().selectAll('line.nv-dist' + axis)
- .transition()
- .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
- .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
- .style('stroke-opacity', 0)
- .remove();
- dist
- .attr('class', function(d,i) { return 'nv-dist' + axis + ' nv-dist' + axis + '-' + i })
- .attr(naxis + '1', 0)
- .attr(naxis + '2', size);
- dist
- .transition()
- .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
- .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
-
-
- scale0 = scale.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.axis = function(_) {
- if (!arguments.length) return axis;
- axis = _;
- return chart;
- };
-
- chart.size = function(_) {
- if (!arguments.length) return size;
- size = _;
- return chart;
- };
-
- chart.getData = function(_) {
- if (!arguments.length) return getData;
- getData = d3.functor(_);
- return chart;
- };
-
- chart.scale = function(_) {
- if (!arguments.length) return scale;
- scale = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
-//TODO: consider deprecating and using multibar with single series for this
-nv.models.historicalBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceX = []
- , forceY = [0]
- , padData = false
- , clipEdge = true
- , color = nv.utils.defaultColor()
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- , interactive = true
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ))
-
- if (padData)
- x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5) / data[0].values.length ]);
- else
- x.range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || d3.extent(data[0].values.map(getY).concat(forceY) ))
- .range(yRange || [availableHeight, 0]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-historicalBar-' + id).data([data[0].values]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBar-' + id);
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-bars');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- container
- .on('click', function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-chart-clip-path-' + id)
- .append('rect');
-
- wrap.select('#nv-chart-clip-path-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
- var bars = wrap.select('.nv-bars').selectAll('.nv-bar')
- .data(function(d) { return d }, function(d,i) {return getX(d,i)});
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('rect')
- //.attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
- .attr('x', 0 )
- .attr('y', function(d,i) { return nv.utils.NaNtoZero(y(Math.max(0, getY(d,i)))) })
- .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.abs(y(getY(d,i)) - y(0))) })
- .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; })
- .on('mouseover', function(d,i) {
- if (!interactive) return;
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- point: d,
- series: data[0],
- pos: [x(getX(d,i)), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
-
- })
- .on('mouseout', function(d,i) {
- if (!interactive) return;
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- point: d,
- series: data[0],
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- if (!interactive) return;
- dispatch.elementClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- if (!interactive) return;
- dispatch.elementDblClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
- bars
- .attr('fill', function(d,i) { return color(d, i); })
- .attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
- .transition()
- .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; })
- //TODO: better width calculations that don't assume always uniform data spacing;w
- .attr('width', (availableWidth / data[0].values.length) * .9 );
-
-
- bars.transition()
- .attr('y', function(d,i) {
- var rval = getY(d,i) < 0 ?
- y(0) :
- y(0) - y(getY(d,i)) < 1 ?
- y(0) - 1 :
- y(getY(d,i));
- return nv.utils.NaNtoZero(rval);
- })
- .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.max(Math.abs(y(getY(d,i)) - y(0)),1)) });
-
- });
-
- return chart;
- }
-
- //Create methods to allow outside functions to highlight a specific bar.
- chart.highlightPoint = function(pointIndex, isHoverOver) {
- d3.select(".nv-historicalBar-" + id)
- .select(".nv-bars .nv-bar-0-" + pointIndex)
- .classed("hover", isHoverOver)
- ;
- };
-
- chart.clearHighlights = function() {
- d3.select(".nv-historicalBar-" + id)
- .select(".nv-bars .nv-bar.hover")
- .classed("hover", false)
- ;
- };
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.padData = function(_) {
- if (!arguments.length) return padData;
- padData = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.interactive = function(_) {
- if(!arguments.length) return interactive;
- interactive = false;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.historicalBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var bars = nv.models.historicalBar()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- ;
-
-
- var margin = {top: 30, right: 90, bottom: 50, left: 90}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , showLegend = false
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , x
- , y
- , state = {}
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient( (rightAlignYAxis) ? 'right' : 'left')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
-
- // New addition to calculate position if SVG is scaled with viewBox, may move TODO: consider implementing everywhere else
- if (offsetElement) {
- var svg = d3.select(offsetElement).select('svg');
- var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
- if (viewBox) {
- viewBox = viewBox.split(' ');
- var ratio = parseInt(svg.style('width')) / viewBox[2];
- e.pos[0] = e.pos[0] * ratio;
- e.pos[1] = e.pos[1] * ratio;
- }
- }
-
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(bars.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(bars.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = bars.xScale();
- y = bars.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-historicalBarChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBarChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- bars
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(bars);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- g.select('.nv-x.nv-axis')
- .transition()
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .transition()
- .call(yAxis);
- }
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.nv-series').classed('disabled', false);
- return d;
- });
- }
-
- state.disabled = data.map(function(d) { return !!d.disabled });
- dispatch.stateChange(state);
-
- selection.transition().call(chart);
- });
-
- legend.dispatch.on('legendDblclick', function(d) {
- //Double clicking should always enable current series, and disabled all others.
- data.forEach(function(d) {
- d.disabled = true;
- });
- d.disabled = false;
-
- state.disabled = data.map(function(d) { return !!d.disabled });
- dispatch.stateChange(state);
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- bars.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.bars = bars;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, bars, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale',
- 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id', 'interpolate','highlightPoint','clearHighlights', 'interactive');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-nv.models.indentedTree = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0} //TODO: implement, maybe as margin on the containing div
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor()
- , id = Math.floor(Math.random() * 10000)
- , header = true
- , filterZero = false
- , noData = "No Data Available."
- , childIndent = 20
- , columns = [{key:'key', label: 'Name', type:'text'}] //TODO: consider functions like chart.addColumn, chart.removeColumn, instead of a block like this
- , tableClass = null
- , iconOpen = 'images/grey-plus.png' //TODO: consider removing this and replacing with a '+' or '-' unless user defines images
- , iconClose = 'images/grey-minus.png'
- , dispatch = d3.dispatch('elementClick', 'elementDblclick', 'elementMouseover', 'elementMouseout')
- , getUrl = function(d) { return d.url }
- ;
-
- //============================================================
-
- var idx = 0;
-
- function chart(selection) {
- selection.each(function(data) {
- var depth = 1,
- container = d3.select(this);
-
- var tree = d3.layout.tree()
- .children(function(d) { return d.values })
- .size([height, childIndent]); //Not sure if this is needed now that the result is HTML
-
- chart.update = function() { container.transition().duration(600).call(chart) };
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
- if (!data[0]) data[0] = {key: noData};
-
- //------------------------------------------------------------
-
-
- var nodes = tree.nodes(data[0]);
-
- // nodes.map(function(d) {
- // d.id = i++;
- // })
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('div').data([[nodes]]);
- var wrapEnter = wrap.enter().append('div').attr('class', 'nvd3 nv-wrap nv-indentedtree');
- var tableEnter = wrapEnter.append('table');
- var table = wrap.select('table').attr('width', '100%').attr('class', tableClass);
-
- //------------------------------------------------------------
-
-
- if (header) {
- var thead = tableEnter.append('thead');
-
- var theadRow1 = thead.append('tr');
-
- columns.forEach(function(column) {
- theadRow1
- .append('th')
- .attr('width', column.width ? column.width : '10%')
- .style('text-align', column.type == 'numeric' ? 'right' : 'left')
- .append('span')
- .text(column.label);
- });
- }
-
-
- var tbody = table.selectAll('tbody')
- .data(function(d) { return d });
- tbody.enter().append('tbody');
-
-
-
- //compute max generations
- depth = d3.max(nodes, function(node) { return node.depth });
- tree.size([height, depth * childIndent]); //TODO: see if this is necessary at all
-
-
- // Update the nodes…
- var node = tbody.selectAll('tr')
- // .data(function(d) { return d; }, function(d) { return d.id || (d.id == ++i)});
- .data(function(d) { return d.filter(function(d) { return (filterZero && !d.children) ? filterZero(d) : true; } )}, function(d,i) { return d.id || (d.id || ++idx)});
- //.style('display', 'table-row'); //TODO: see if this does anything
-
- node.exit().remove();
-
- node.select('img.nv-treeicon')
- .attr('src', icon)
- .classed('folded', folded);
-
- var nodeEnter = node.enter().append('tr');
-
-
- columns.forEach(function(column, index) {
-
- var nodeName = nodeEnter.append('td')
- .style('padding-left', function(d) { return (index ? 0 : d.depth * childIndent + 12 + (icon(d) ? 0 : 16)) + 'px' }, 'important') //TODO: check why I did the ternary here
- .style('text-align', column.type == 'numeric' ? 'right' : 'left');
-
-
- if (index == 0) {
- nodeName.append('img')
- .classed('nv-treeicon', true)
- .classed('nv-folded', folded)
- .attr('src', icon)
- .style('width', '14px')
- .style('height', '14px')
- .style('padding', '0 1px')
- .style('display', function(d) { return icon(d) ? 'inline-block' : 'none'; })
- .on('click', click);
- }
-
-
- nodeName.each(function(d) {
- if (!index && getUrl(d))
- d3.select(this)
- .append('a')
- .attr('href',getUrl)
- .attr('class', d3.functor(column.classes))
- .append('span')
- else
- d3.select(this)
- .append('span')
-
- d3.select(this).select('span')
- .attr('class', d3.functor(column.classes) )
- .text(function(d) { return column.format ? column.format(d) :
- (d[column.key] || '-') });
- });
-
- if (column.showCount) {
- nodeName.append('span')
- .attr('class', 'nv-childrenCount');
-
- node.selectAll('span.nv-childrenCount').text(function(d) {
- return ((d.values && d.values.length) || (d._values && d._values.length)) ? //If this is a parent
- '(' + ((d.values && (d.values.filter(function(d) { return filterZero ? filterZero(d) : true; }).length)) //If children are in values check its children and filter
- || (d._values && d._values.filter(function(d) { return filterZero ? filterZero(d) : true; }).length) //Otherwise, do the same, but with the other name, _values...
- || 0) + ')' //This is the catch-all in case there are no children after a filter
- : '' //If this is not a parent, just give an empty string
- });
- }
-
- // if (column.click)
- // nodeName.select('span').on('click', column.click);
-
- });
-
- node
- .order()
- .on('click', function(d) {
- dispatch.elementClick({
- row: this, //TODO: decide whether or not this should be consistent with scatter/line events or should be an html link (a href)
- data: d,
- pos: [d.x, d.y]
- });
- })
- .on('dblclick', function(d) {
- dispatch.elementDblclick({
- row: this,
- data: d,
- pos: [d.x, d.y]
- });
- })
- .on('mouseover', function(d) {
- dispatch.elementMouseover({
- row: this,
- data: d,
- pos: [d.x, d.y]
- });
- })
- .on('mouseout', function(d) {
- dispatch.elementMouseout({
- row: this,
- data: d,
- pos: [d.x, d.y]
- });
- });
-
-
-
-
- // Toggle children on click.
- function click(d, _, unshift) {
- d3.event.stopPropagation();
-
- if(d3.event.shiftKey && !unshift) {
- //If you shift-click, it'll toggle fold all the children, instead of itself
- d3.event.shiftKey = false;
- d.values && d.values.forEach(function(node){
- if (node.values || node._values) {
- click(node, 0, true);
- }
- });
- return true;
- }
- if(!hasChildren(d)) {
- //download file
- //window.location.href = d.url;
- return true;
- }
- if (d.values) {
- d._values = d.values;
- d.values = null;
- } else {
- d.values = d._values;
- d._values = null;
- }
- chart.update();
- }
-
-
- function icon(d) {
- return (d._values && d._values.length) ? iconOpen : (d.values && d.values.length) ? iconClose : '';
- }
-
- function folded(d) {
- return (d._values && d._values.length);
- }
-
- function hasChildren(d) {
- var values = d.values || d._values;
-
- return (values && values.length);
- }
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- scatter.color(color);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.header = function(_) {
- if (!arguments.length) return header;
- header = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.filterZero = function(_) {
- if (!arguments.length) return filterZero;
- filterZero = _;
- return chart;
- };
-
- chart.columns = function(_) {
- if (!arguments.length) return columns;
- columns = _;
- return chart;
- };
-
- chart.tableClass = function(_) {
- if (!arguments.length) return tableClass;
- tableClass = _;
- return chart;
- };
-
- chart.iconOpen = function(_){
- if (!arguments.length) return iconOpen;
- iconOpen = _;
- return chart;
- }
-
- chart.iconClose = function(_){
- if (!arguments.length) return iconClose;
- iconClose = _;
- return chart;
- }
-
- chart.getUrl = function(_){
- if (!arguments.length) return getUrl;
- getUrl = _;
- return chart;
- }
-
- //============================================================
-
-
- return chart;
-};nv.models.legend = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 5, right: 0, bottom: 5, left: 0}
- , width = 400
- , height = 20
- , getKey = function(d) { return d.key }
- , color = nv.utils.defaultColor()
- , align = true
- , rightAlign = true
- , updateState = true //If true, legend will update data.disabled and trigger a 'stateChange' dispatch.
- , radioButtonMode = false //If true, clicking legend items will cause it to behave like a radio button. (only one can be selected at a time)
- , dispatch = d3.dispatch('legendClick', 'legendDblclick', 'legendMouseover', 'legendMouseout', 'stateChange')
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-legend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-legend').append('g');
- var g = wrap.select('g');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- var series = g.selectAll('.nv-series')
- .data(function(d) { return d });
- var seriesEnter = series.enter().append('g').attr('class', 'nv-series')
- .on('mouseover', function(d,i) {
- dispatch.legendMouseover(d,i); //TODO: Make consistent with other event objects
- })
- .on('mouseout', function(d,i) {
- dispatch.legendMouseout(d,i);
- })
- .on('click', function(d,i) {
- dispatch.legendClick(d,i);
- if (updateState) {
- if (radioButtonMode) {
- //Radio button mode: set every series to disabled,
- // and enable the clicked series.
- data.forEach(function(series) { series.disabled = true});
- d.disabled = false;
- }
- else {
- d.disabled = !d.disabled;
- if (data.every(function(series) { return series.disabled})) {
- //the default behavior of NVD3 legends is, if every single series
- // is disabled, turn all series' back on.
- data.forEach(function(series) { series.disabled = false});
- }
- }
- dispatch.stateChange({
- disabled: data.map(function(d) { return !!d.disabled })
- });
- }
- })
- .on('dblclick', function(d,i) {
- dispatch.legendDblclick(d,i);
- if (updateState) {
- //the default behavior of NVD3 legends, when double clicking one,
- // is to set all other series' to false, and make the double clicked series enabled.
- data.forEach(function(series) {
- series.disabled = true;
- });
- d.disabled = false;
- dispatch.stateChange({
- disabled: data.map(function(d) { return !!d.disabled })
- });
- }
- });
- seriesEnter.append('circle')
- .style('stroke-width', 2)
- .attr('class','nv-legend-symbol')
- .attr('r', 5);
- seriesEnter.append('text')
- .attr('text-anchor', 'start')
- .attr('class','nv-legend-text')
- .attr('dy', '.32em')
- .attr('dx', '8');
- series.classed('disabled', function(d) { return d.disabled });
- series.exit().remove();
- series.select('circle')
- .style('fill', function(d,i) { return d.color || color(d,i)})
- .style('stroke', function(d,i) { return d.color || color(d, i) });
- series.select('text').text(getKey);
-
-
- //TODO: implement fixed-width and max-width options (max-width is especially useful with the align option)
-
- // NEW ALIGNING CODE, TODO: clean up
- if (align) {
-
- var seriesWidths = [];
- series.each(function(d,i) {
- var legendText = d3.select(this).select('text');
- var nodeTextLength;
- try {
- nodeTextLength = legendText.node().getComputedTextLength();
- }
- catch(e) {
- nodeTextLength = nv.utils.calcApproxTextWidth(legendText);
- }
-
- seriesWidths.push(nodeTextLength + 28); // 28 is ~ the width of the circle plus some padding
- });
-
- var seriesPerRow = 0;
- var legendWidth = 0;
- var columnWidths = [];
-
- while ( legendWidth < availableWidth && seriesPerRow < seriesWidths.length) {
- columnWidths[seriesPerRow] = seriesWidths[seriesPerRow];
- legendWidth += seriesWidths[seriesPerRow++];
- }
- if (seriesPerRow === 0) seriesPerRow = 1; //minimum of one series per row
-
-
- while ( legendWidth > availableWidth && seriesPerRow > 1 ) {
- columnWidths = [];
- seriesPerRow--;
-
- for (var k = 0; k < seriesWidths.length; k++) {
- if (seriesWidths[k] > (columnWidths[k % seriesPerRow] || 0) )
- columnWidths[k % seriesPerRow] = seriesWidths[k];
- }
-
- legendWidth = columnWidths.reduce(function(prev, cur, index, array) {
- return prev + cur;
- });
- }
-
- var xPositions = [];
- for (var i = 0, curX = 0; i < seriesPerRow; i++) {
- xPositions[i] = curX;
- curX += columnWidths[i];
- }
-
- series
- .attr('transform', function(d, i) {
- return 'translate(' + xPositions[i % seriesPerRow] + ',' + (5 + Math.floor(i / seriesPerRow) * 20) + ')';
- });
-
- //position legend as far right as possible within the total width
- if (rightAlign) {
- g.attr('transform', 'translate(' + (width - margin.right - legendWidth) + ',' + margin.top + ')');
- }
- else {
- g.attr('transform', 'translate(0' + ',' + margin.top + ')');
- }
-
- height = margin.top + margin.bottom + (Math.ceil(seriesWidths.length / seriesPerRow) * 20);
-
- } else {
-
- var ypos = 5,
- newxpos = 5,
- maxwidth = 0,
- xpos;
- series
- .attr('transform', function(d, i) {
- var length = d3.select(this).select('text').node().getComputedTextLength() + 28;
- xpos = newxpos;
-
- if (width < margin.left + margin.right + xpos + length) {
- newxpos = xpos = 5;
- ypos += 20;
- }
-
- newxpos += length;
- if (newxpos > maxwidth) maxwidth = newxpos;
-
- return 'translate(' + xpos + ',' + ypos + ')';
- });
-
- //position legend as far right as possible within the total width
- g.attr('transform', 'translate(' + (width - margin.right - maxwidth) + ',' + margin.top + ')');
-
- height = margin.top + margin.bottom + ypos + 15;
-
- }
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.key = function(_) {
- if (!arguments.length) return getKey;
- getKey = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.align = function(_) {
- if (!arguments.length) return align;
- align = _;
- return chart;
- };
-
- chart.rightAlign = function(_) {
- if (!arguments.length) return rightAlign;
- rightAlign = _;
- return chart;
- };
-
- chart.updateState = function(_) {
- if (!arguments.length) return updateState;
- updateState = _;
- return chart;
- };
-
- chart.radioButtonMode = function(_) {
- if (!arguments.length) return radioButtonMode;
- radioButtonMode = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.line = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var scatter = nv.models.scatter()
- ;
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor() // a function that returns a color
- , getX = function(d) { return d.x } // accessor to get the x value from a data point
- , getY = function(d) { return d.y } // accessor to get the y value from a data point
- , defined = function(d,i) { return !isNaN(getY(d,i)) && getY(d,i) !== null } // allows a line to be not continuous when it is not defined
- , isArea = function(d) { return d.area } // decides if a line is an area or just a line
- , clipEdge = false // if true, masks lines within x and y scale
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , interpolate = "linear" // controls the line interpolation
- ;
-
- scatter
- .size(16) // default size
- .sizeDomain([16,256]) //set to speed up calculation, needs to be unset if there is a custom size accessor
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0 //used to store previous scales
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = scatter.xScale();
- y = scatter.yScale();
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-line').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-line');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- gEnter.append('g').attr('class', 'nv-groups');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
-
- var scatterWrap = wrap.select('.nv-scatterWrap');
- //.datum(data); // Data automatically trickles down from the wrap
-
- scatterWrap.transition().call(scatter);
-
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + scatter.id())
- .append('rect');
-
- wrap.select('#nv-edge-clip-' + scatter.id() + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
- scatterWrap
- .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
-
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
-
- groups.exit().remove();
-
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i)});
- groups
- .transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .5);
-
-
-
- var areaPaths = groups.selectAll('path.nv-area')
- .data(function(d) { return isArea(d) ? [d] : [] }); // this is done differently than lines because I need to check if series is an area
- areaPaths.enter().append('path')
- .attr('class', 'nv-area')
- .attr('d', function(d) {
- return d3.svg.area()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
- .y0(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
- .y1(function(d,i) { return y0( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
- //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
- .apply(this, [d.values])
- });
- groups.exit().selectAll('path.nv-area')
- .remove();
-
- areaPaths
- .transition()
- .attr('d', function(d) {
- return d3.svg.area()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .y0(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- .y1(function(d,i) { return y( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
- //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
- .apply(this, [d.values])
- });
-
-
-
- var linePaths = groups.selectAll('path.nv-line')
- .data(function(d) { return [d.values] });
- linePaths.enter().append('path')
- .attr('class', 'nv-line')
- .attr('d',
- d3.svg.line()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
- .y(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
- );
-
- linePaths
- .transition()
- .attr('d',
- d3.svg.line()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .y(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- );
-
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = scatter.dispatch;
- chart.scatter = scatter;
-
- d3.rebind(chart, scatter, 'id', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
- 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi', 'clipRadius', 'padData','highlightPoint','clearHighlights');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- scatter.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- scatter.y(_);
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- scatter.color(color);
- return chart;
- };
-
- chart.interpolate = function(_) {
- if (!arguments.length) return interpolate;
- interpolate = _;
- return chart;
- };
-
- chart.defined = function(_) {
- if (!arguments.length) return defined;
- defined = _;
- return chart;
- };
-
- chart.isArea = function(_) {
- if (!arguments.length) return isArea;
- isArea = d3.functor(_);
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.lineChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , interactiveLayer = nv.interactiveGuideline()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , useInteractiveGuideline = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , x
- , y
- , state = {}
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = lines.xScale();
- y = lines.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-lineChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append("rect").style("opacity",0);
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-linesWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-interactive');
-
- g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
-
- //------------------------------------------------------------
- //Set up interactive layer
- if (useInteractiveGuideline) {
- interactiveLayer
- .width(availableWidth)
- .height(availableHeight)
- .margin({left:margin.left, top:margin.top})
- .svgContainer(container)
- .xScale(x);
- wrap.select(".nv-interactive").call(interactiveLayer);
- }
-
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
-
-
- var linesWrap = g.select('.nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- linesWrap.transition().call(lines);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- g.select('.nv-x.nv-axis')
- .transition()
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .transition()
- .call(yAxis);
- }
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- interactiveLayer.dispatch.on('elementMousemove', function(e) {
- lines.clearHighlights();
- var singlePoint, pointIndex, pointXLocation, allData = [];
- data
- .filter(function(series, i) {
- series.seriesIndex = i;
- return !series.disabled;
- })
- .forEach(function(series,i) {
- pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
- lines.highlightPoint(i, pointIndex, true);
- var point = series.values[pointIndex];
- if (typeof point === 'undefined') return;
- if (typeof singlePoint === 'undefined') singlePoint = point;
- if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
- allData.push({
- key: series.key,
- value: chart.y()(point, pointIndex),
- color: color(series,series.seriesIndex)
- });
- });
- //Highlight the tooltip entry based on which point the mouse is closest to.
- if (allData.length > 2) {
- var yValue = chart.yScale().invert(e.mouseY);
- var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
- var threshold = 0.03 * domainExtent;
- var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
- if (indexToHighlight !== null)
- allData[indexToHighlight].highlight = true;
- }
-
- var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
- interactiveLayer.tooltip
- .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
- .chartContainer(that.parentNode)
- .enabled(tooltips)
- .valueFormatter(function(d,i) {
- return yAxis.tickFormat()(d);
- })
- .data(
- {
- value: xValue,
- series: allData
- }
- )();
-
- interactiveLayer.renderGuideLine(pointXLocation);
-
- });
-
- interactiveLayer.dispatch.on("elementMouseout",function(e) {
- dispatch.tooltipHide();
- lines.clearHighlights();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.lines = lines;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.interactiveLayer = interactiveLayer;
-
- d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange'
- , 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'useVoronoi','id', 'interpolate');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.useInteractiveGuideline = function(_) {
- if(!arguments.length) return useInteractiveGuideline;
- useInteractiveGuideline = _;
- if (_ === true) {
- chart.interactive(false);
- chart.useVoronoi(false);
- }
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.linePlusBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , bars = nv.models.historicalBar()
- , xAxis = nv.models.axis()
- , y1Axis = nv.models.axis()
- , y2Axis = nv.models.axis()
- , legend = nv.models.legend()
- ;
-
- var margin = {top: 30, right: 60, bottom: 50, left: 60}
- , width = null
- , height = null
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , color = nv.utils.defaultColor()
- , showLegend = true
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>';
- }
- , x
- , y1
- , y2
- , state = {}
- , defaultState = null
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- ;
-
- bars
- .padData(true)
- ;
- lines
- .clipEdge(false)
- .padData(true)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(7)
- .highlightZero(false)
- ;
- y1Axis
- .orient('left')
- ;
- y2Axis
- .orient('right')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- }
- ;
-
- //------------------------------------------------------------
-
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().call(chart); };
- // chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
- var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
- //x = xAxis.scale();
- x = dataLines.filter(function(d) { return !d.disabled; }).length && dataLines.filter(function(d) { return !d.disabled; })[0].values.length ? lines.xScale() : bars.xScale();
- //x = dataLines.filter(function(d) { return !d.disabled; }).length ? lines.xScale() : bars.xScale(); //old code before change above
- y1 = bars.yScale();
- y2 = lines.yScale();
-
- //------------------------------------------------------------
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y1 nv-axis');
- gEnter.append('g').attr('class', 'nv-y2 nv-axis');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-linesWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- g.select('.nv-legendWrap')
- .datum(data.map(function(series) {
- series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
- series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
- return series;
- }))
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))
-
- bars
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && data[i].bar }))
-
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(dataBars.length ? dataBars : [{values:[]}])
-
- var linesWrap = g.select('.nv-linesWrap')
- .datum(dataLines[0] && !dataLines[0].disabled ? dataLines : [{values:[]}] );
- //.datum(!dataLines[0].disabled ? dataLines : [{values:dataLines[0].values.map(function(d) { return [d[0], null] }) }] );
-
- d3.transition(barsWrap).call(bars);
- d3.transition(linesWrap).call(lines);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y1.range()[0] + ')');
- d3.transition(g.select('.nv-x.nv-axis'))
- .call(xAxis);
-
-
- y1Axis
- .scale(y1)
- .ticks( availableHeight / 36 )
- .tickSize(-availableWidth, 0);
-
- d3.transition(g.select('.nv-y1.nv-axis'))
- .style('opacity', dataBars.length ? 1 : 0)
- .call(y1Axis);
-
-
- y2Axis
- .scale(y2)
- .ticks( availableHeight / 36 )
- .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
- g.select('.nv-y2.nv-axis')
- .style('opacity', dataLines.length ? 1 : 0)
- .attr('transform', 'translate(' + availableWidth + ',0)');
- //.attr('transform', 'translate(' + x.range()[1] + ',0)');
-
- d3.transition(g.select('.nv-y2.nv-axis'))
- .call(y2Axis);
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.lines = lines;
- chart.bars = bars;
- chart.xAxis = xAxis;
- chart.y1Axis = y1Axis;
- chart.y2Axis = y2Axis;
-
- d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
- //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
- //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines.x(_);
- bars.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines.y(_);
- bars.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-nv.models.lineWithFocusChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , lines2 = nv.models.line()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , x2Axis = nv.models.axis()
- , y2Axis = nv.models.axis()
- , legend = nv.models.legend()
- , brush = d3.svg.brush()
- ;
-
- var margin = {top: 30, right: 30, bottom: 30, left: 60}
- , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , height2 = 100
- , x
- , y
- , x2
- , y2
- , showLegend = true
- , brushExtent = null
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
- , transitionDuration = 250
- ;
-
- lines
- .clipEdge(true)
- ;
- lines2
- .interactive(false)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(5)
- ;
- yAxis
- .orient('left')
- ;
- x2Axis
- .orient('bottom')
- .tickPadding(5)
- ;
- y2Axis
- .orient('left')
- ;
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2,
- availableHeight2 = height2 - margin2.top - margin2.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight1 / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = lines.xScale();
- y = lines.yScale();
- x2 = lines2.xScale();
- y2 = lines2.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-lineWithFocusChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineWithFocusChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
- focusEnter.append('g').attr('class', 'nv-x nv-axis');
- focusEnter.append('g').attr('class', 'nv-y nv-axis');
- focusEnter.append('g').attr('class', 'nv-linesWrap');
-
- var contextEnter = gEnter.append('g').attr('class', 'nv-context');
- contextEnter.append('g').attr('class', 'nv-x nv-axis');
- contextEnter.append('g').attr('class', 'nv-y nv-axis');
- contextEnter.append('g').attr('class', 'nv-linesWrap');
- contextEnter.append('g').attr('class', 'nv-brushBackground');
- contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- lines
- .width(availableWidth)
- .height(availableHeight1)
- .color(
- data
- .map(function(d,i) {
- return d.color || color(d, i);
- })
- .filter(function(d,i) {
- return !data[i].disabled;
- })
- );
-
- lines2
- .defined(lines.defined())
- .width(availableWidth)
- .height(availableHeight2)
- .color(
- data
- .map(function(d,i) {
- return d.color || color(d, i);
- })
- .filter(function(d,i) {
- return !data[i].disabled;
- })
- );
-
- g.select('.nv-context')
- .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
- var contextLinesWrap = g.select('.nv-context .nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(contextLinesWrap).call(lines2);
-
- //------------------------------------------------------------
-
-
- /*
- var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(focusLinesWrap).call(lines);
- */
-
-
- //------------------------------------------------------------
- // Setup Main (Focus) Axes
-
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight1, 0);
-
- yAxis
- .scale(y)
- .ticks( availableHeight1 / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-focus .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + availableHeight1 + ')');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Brush
-
- brush
- .x(x2)
- .on('brush', function() {
- //When brushing, turn off transitions because chart needs to change immediately.
- var oldTransition = chart.transitionDuration();
- chart.transitionDuration(0);
- onBrush();
- chart.transitionDuration(oldTransition);
- });
-
- if (brushExtent) brush.extent(brushExtent);
-
- var brushBG = g.select('.nv-brushBackground').selectAll('g')
- .data([brushExtent || brush.extent()])
-
- var brushBGenter = brushBG.enter()
- .append('g');
-
- brushBGenter.append('rect')
- .attr('class', 'left')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- brushBGenter.append('rect')
- .attr('class', 'right')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- var gBrush = g.select('.nv-x.nv-brush')
- .call(brush);
- gBrush.selectAll('rect')
- //.attr('y', -5)
- .attr('height', availableHeight2);
- gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
- onBrush();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Secondary (Context) Axes
-
- x2Axis
- .scale(x2)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight2, 0);
-
- g.select('.nv-context .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y2.range()[0] + ')');
- d3.transition(g.select('.nv-context .nv-x.nv-axis'))
- .call(x2Axis);
-
-
- y2Axis
- .scale(y2)
- .ticks( availableHeight2 / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.nv-context .nv-y.nv-axis'))
- .call(y2Axis);
-
- g.select('.nv-context .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y2.range()[0] + ')');
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
-
- //============================================================
- // Functions
- //------------------------------------------------------------
-
- // Taken from crossfilter (http://square.github.com/crossfilter/)
- function resizePath(d) {
- var e = +(d == 'e'),
- x = e ? 1 : -1,
- y = availableHeight2 / 3;
- return 'M' + (.5 * x) + ',' + y
- + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
- + 'V' + (2 * y - 6)
- + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
- + 'Z'
- + 'M' + (2.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8)
- + 'M' + (4.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8);
- }
-
-
- function updateBrushBG() {
- if (!brush.empty()) brush.extent(brushExtent);
- brushBG
- .data([brush.empty() ? x2.domain() : brushExtent])
- .each(function(d,i) {
- var leftWidth = x2(d[0]) - x.range()[0],
- rightWidth = x.range()[1] - x2(d[1]);
- d3.select(this).select('.left')
- .attr('width', leftWidth < 0 ? 0 : leftWidth);
-
- d3.select(this).select('.right')
- .attr('x', x2(d[1]))
- .attr('width', rightWidth < 0 ? 0 : rightWidth);
- });
- }
-
-
- function onBrush() {
- brushExtent = brush.empty() ? null : brush.extent();
- var extent = brush.empty() ? x2.domain() : brush.extent();
-
- //The brush extent cannot be less than one. If it is, don't update the line chart.
- if (Math.abs(extent[0] - extent[1]) <= 1) {
- return;
- }
-
- dispatch.brush({extent: extent, brush: brush});
-
-
- updateBrushBG();
-
- // Update Main (Focus)
- var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
- .datum(
- data
- .filter(function(d) { return !d.disabled })
- .map(function(d,i) {
- return {
- key: d.key,
- values: d.values.filter(function(d,i) {
- return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
- })
- }
- })
- );
- focusLinesWrap.transition().duration(transitionDuration).call(lines);
-
-
- // Update Main (Focus) Axes
- g.select('.nv-focus .nv-x.nv-axis').transition().duration(transitionDuration)
- .call(xAxis);
- g.select('.nv-focus .nv-y.nv-axis').transition().duration(transitionDuration)
- .call(yAxis);
- }
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.lines = lines;
- chart.lines2 = lines2;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.x2Axis = x2Axis;
- chart.y2Axis = y2Axis;
-
- d3.rebind(chart, lines, 'defined', 'isArea', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return lines.x;
- lines.x(_);
- lines2.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return lines.y;
- lines.y(_);
- lines2.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.margin2 = function(_) {
- if (!arguments.length) return margin2;
- margin2 = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.height2 = function(_) {
- if (!arguments.length) return height2;
- height2 = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color =nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.interpolate = function(_) {
- if (!arguments.length) return lines.interpolate();
- lines.interpolate(_);
- lines2.interpolate(_);
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- // Chart has multiple similar Axes, to prevent code duplication, probably need to link all axis functions manually like below
- chart.xTickFormat = function(_) {
- if (!arguments.length) return xAxis.tickFormat();
- xAxis.tickFormat(_);
- x2Axis.tickFormat(_);
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return yAxis.tickFormat();
- yAxis.tickFormat(_);
- y2Axis.tickFormat(_);
- return chart;
- };
-
- chart.brushExtent = function(_) {
- if (!arguments.length) return brushExtent;
- brushExtent = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.linePlusBarWithFocusChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , lines2 = nv.models.line()
- , bars = nv.models.historicalBar()
- , bars2 = nv.models.historicalBar()
- , xAxis = nv.models.axis()
- , x2Axis = nv.models.axis()
- , y1Axis = nv.models.axis()
- , y2Axis = nv.models.axis()
- , y3Axis = nv.models.axis()
- , y4Axis = nv.models.axis()
- , legend = nv.models.legend()
- , brush = d3.svg.brush()
- ;
-
- var margin = {top: 30, right: 30, bottom: 30, left: 60}
- , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
- , width = null
- , height = null
- , height2 = 100
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , color = nv.utils.defaultColor()
- , showLegend = true
- , extent
- , brushExtent = null
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>';
- }
- , x
- , x2
- , y1
- , y2
- , y3
- , y4
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
- , transitionDuration = 0
- ;
-
- lines
- .clipEdge(true)
- ;
- lines2
- .interactive(false)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(5)
- ;
- y1Axis
- .orient('left')
- ;
- y2Axis
- .orient('right')
- ;
- x2Axis
- .orient('bottom')
- .tickPadding(5)
- ;
- y3Axis
- .orient('left')
- ;
- y4Axis
- .orient('right')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- if (extent) {
- e.pointIndex += Math.ceil(extent[0]);
- }
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //------------------------------------------------------------
-
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2,
- availableHeight2 = height2 - margin2.top - margin2.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight1 / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
- var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
- x = bars.xScale();
- x2 = x2Axis.scale();
- y1 = bars.yScale();
- y2 = lines.yScale();
- y3 = bars2.yScale();
- y4 = lines2.yScale();
-
- var series1 = data
- .filter(function(d) { return !d.disabled && d.bar })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i) }
- })
- });
-
- var series2 = data
- .filter(function(d) { return !d.disabled && !d.bar })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i) }
- })
- });
-
- x .range([0, availableWidth]);
-
- x2 .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
- focusEnter.append('g').attr('class', 'nv-x nv-axis');
- focusEnter.append('g').attr('class', 'nv-y1 nv-axis');
- focusEnter.append('g').attr('class', 'nv-y2 nv-axis');
- focusEnter.append('g').attr('class', 'nv-barsWrap');
- focusEnter.append('g').attr('class', 'nv-linesWrap');
-
- var contextEnter = gEnter.append('g').attr('class', 'nv-context');
- contextEnter.append('g').attr('class', 'nv-x nv-axis');
- contextEnter.append('g').attr('class', 'nv-y1 nv-axis');
- contextEnter.append('g').attr('class', 'nv-y2 nv-axis');
- contextEnter.append('g').attr('class', 'nv-barsWrap');
- contextEnter.append('g').attr('class', 'nv-linesWrap');
- contextEnter.append('g').attr('class', 'nv-brushBackground');
- contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- g.select('.nv-legendWrap')
- .datum(data.map(function(series) {
- series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
- series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
- return series;
- }))
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Context Components
-
- bars2
- .width(availableWidth)
- .height(availableHeight2)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
- lines2
- .width(availableWidth)
- .height(availableHeight2)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-
- var bars2Wrap = g.select('.nv-context .nv-barsWrap')
- .datum(dataBars.length ? dataBars : [{values:[]}]);
-
- var lines2Wrap = g.select('.nv-context .nv-linesWrap')
- .datum(!dataLines[0].disabled ? dataLines : [{values:[]}]);
-
- g.select('.nv-context')
- .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
- bars2Wrap.transition().call(bars2);
- lines2Wrap.transition().call(lines2);
-
- //------------------------------------------------------------
-
-
-
- //------------------------------------------------------------
- // Setup Brush
-
- brush
- .x(x2)
- .on('brush', onBrush);
-
- if (brushExtent) brush.extent(brushExtent);
-
- var brushBG = g.select('.nv-brushBackground').selectAll('g')
- .data([brushExtent || brush.extent()])
-
- var brushBGenter = brushBG.enter()
- .append('g');
-
- brushBGenter.append('rect')
- .attr('class', 'left')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- brushBGenter.append('rect')
- .attr('class', 'right')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- var gBrush = g.select('.nv-x.nv-brush')
- .call(brush);
- gBrush.selectAll('rect')
- //.attr('y', -5)
- .attr('height', availableHeight2);
- gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
- //------------------------------------------------------------
-
- //------------------------------------------------------------
- // Setup Secondary (Context) Axes
-
- x2Axis
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight2, 0);
-
- g.select('.nv-context .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y3.range()[0] + ')');
- g.select('.nv-context .nv-x.nv-axis').transition()
- .call(x2Axis);
-
-
- y3Axis
- .scale(y3)
- .ticks( availableHeight2 / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-context .nv-y1.nv-axis')
- .style('opacity', dataBars.length ? 1 : 0)
- .attr('transform', 'translate(0,' + x2.range()[0] + ')');
-
- g.select('.nv-context .nv-y1.nv-axis').transition()
- .call(y3Axis);
-
-
- y4Axis
- .scale(y4)
- .ticks( availableHeight2 / 36 )
- .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
- g.select('.nv-context .nv-y2.nv-axis')
- .style('opacity', dataLines.length ? 1 : 0)
- .attr('transform', 'translate(' + x2.range()[1] + ',0)');
-
- g.select('.nv-context .nv-y2.nv-axis').transition()
- .call(y4Axis);
-
- //------------------------------------------------------------
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
-
- //============================================================
- // Functions
- //------------------------------------------------------------
-
- // Taken from crossfilter (http://square.github.com/crossfilter/)
- function resizePath(d) {
- var e = +(d == 'e'),
- x = e ? 1 : -1,
- y = availableHeight2 / 3;
- return 'M' + (.5 * x) + ',' + y
- + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
- + 'V' + (2 * y - 6)
- + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
- + 'Z'
- + 'M' + (2.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8)
- + 'M' + (4.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8);
- }
-
-
- function updateBrushBG() {
- if (!brush.empty()) brush.extent(brushExtent);
- brushBG
- .data([brush.empty() ? x2.domain() : brushExtent])
- .each(function(d,i) {
- var leftWidth = x2(d[0]) - x2.range()[0],
- rightWidth = x2.range()[1] - x2(d[1]);
- d3.select(this).select('.left')
- .attr('width', leftWidth < 0 ? 0 : leftWidth);
-
- d3.select(this).select('.right')
- .attr('x', x2(d[1]))
- .attr('width', rightWidth < 0 ? 0 : rightWidth);
- });
- }
-
-
- function onBrush() {
- brushExtent = brush.empty() ? null : brush.extent();
- extent = brush.empty() ? x2.domain() : brush.extent();
-
-
- dispatch.brush({extent: extent, brush: brush});
-
- updateBrushBG();
-
-
- //------------------------------------------------------------
- // Prepare Main (Focus) Bars and Lines
-
- bars
- .width(availableWidth)
- .height(availableHeight1)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
-
- lines
- .width(availableWidth)
- .height(availableHeight1)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-
- var focusBarsWrap = g.select('.nv-focus .nv-barsWrap')
- .datum(!dataBars.length ? [{values:[]}] :
- dataBars
- .map(function(d,i) {
- return {
- key: d.key,
- values: d.values.filter(function(d,i) {
- return bars.x()(d,i) >= extent[0] && bars.x()(d,i) <= extent[1];
- })
- }
- })
- );
-
- var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
- .datum(dataLines[0].disabled ? [{values:[]}] :
- dataLines
- .map(function(d,i) {
- return {
- key: d.key,
- values: d.values.filter(function(d,i) {
- return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
- })
- }
- })
- );
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Update Main (Focus) X Axis
-
- if (dataBars.length) {
- x = bars.xScale();
- } else {
- x = lines.xScale();
- }
-
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight1, 0);
-
- xAxis.domain([Math.ceil(extent[0]), Math.floor(extent[1])]);
-
- g.select('.nv-x.nv-axis').transition().duration(transitionDuration)
- .call(xAxis);
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Update Main (Focus) Bars and Lines
-
- focusBarsWrap.transition().duration(transitionDuration).call(bars);
- focusLinesWrap.transition().duration(transitionDuration).call(lines);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup and Update Main (Focus) Y Axes
-
- g.select('.nv-focus .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y1.range()[0] + ')');
-
-
- y1Axis
- .scale(y1)
- .ticks( availableHeight1 / 36 )
- .tickSize(-availableWidth, 0);
-
- g.select('.nv-focus .nv-y1.nv-axis')
- .style('opacity', dataBars.length ? 1 : 0);
-
-
- y2Axis
- .scale(y2)
- .ticks( availableHeight1 / 36 )
- .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
- g.select('.nv-focus .nv-y2.nv-axis')
- .style('opacity', dataLines.length ? 1 : 0)
- .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
- g.select('.nv-focus .nv-y1.nv-axis').transition().duration(transitionDuration)
- .call(y1Axis);
- g.select('.nv-focus .nv-y2.nv-axis').transition().duration(transitionDuration)
- .call(y2Axis);
- }
-
- //============================================================
-
- onBrush();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.lines = lines;
- chart.lines2 = lines2;
- chart.bars = bars;
- chart.bars2 = bars2;
- chart.xAxis = xAxis;
- chart.x2Axis = x2Axis;
- chart.y1Axis = y1Axis;
- chart.y2Axis = y2Axis;
- chart.y3Axis = y3Axis;
- chart.y4Axis = y4Axis;
-
- d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
- //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
- //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines.x(_);
- bars.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines.y(_);
- bars.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.brushExtent = function(_) {
- if (!arguments.length) return brushExtent;
- brushExtent = _;
- return chart;
- };
-
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.multiBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , x = d3.scale.ordinal()
- , y = d3.scale.linear()
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
- , clipEdge = true
- , stacked = false
- , stackOffset = 'zero' // options include 'silhouette', 'wiggle', 'expand', 'zero', or a custom function
- , color = nv.utils.defaultColor()
- , hideable = false
- , barColor = null // adding the ability to set the color for each rather than the whole group
- , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
- , delay = 1200
- , xDomain
- , yDomain
- , xRange
- , yRange
- , groupSpacing = 0.1
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0 //used to store previous scales
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- if(hideable && data.length) hideable = [{
- values: data[0].values.map(function(d) {
- return {
- x: d.x,
- y: 0,
- series: d.series,
- size: 0.01
- };}
- )}];
-
- if (stacked)
- data = d3.layout.stack()
- .offset(stackOffset)
- .values(function(d){ return d.values })
- .y(getY)
- (!data.length && hideable ? hideable : data);
-
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
-
- //------------------------------------------------------------
- // HACK for negative value stacking
- if (stacked)
- data[0].values.map(function(d,i) {
- var posBase = 0, negBase = 0;
- data.map(function(d) {
- var f = d.values[i]
- f.size = Math.abs(f.y);
- if (f.y<0) {
- f.y1 = negBase;
- negBase = negBase - f.size;
- } else
- {
- f.y1 = f.size + posBase;
- posBase = posBase + f.size;
- }
- });
- });
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
- })
- });
-
- x .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands(xRange || [0, availableWidth], groupSpacing);
-
- //y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y1 : 0) }).concat(forceY)))
- y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 : d.y1 + d.y ) : d.y }).concat(forceY)))
- .range(yRange || [availableHeight, 0]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multibar').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibar');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- gEnter.append('g').attr('class', 'nv-groups');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d,i) { return i });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit()
- .transition()
- .selectAll('rect.nv-bar')
- .delay(function(d,i) {
- return i * delay/ data[0].values.length;
- })
- .attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) })
- .attr('height', 0)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i) });
- groups
- .transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .75);
-
-
- var bars = groups.selectAll('rect.nv-bar')
- .data(function(d) { return (hideable && !data.length) ? hideable.values : d.values });
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('rect')
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
- .attr('x', function(d,i,j) {
- return stacked ? 0 : (j * x.rangeBand() / data.length )
- })
- .attr('y', function(d) { return y0(stacked ? d.y0 : 0) })
- .attr('height', 0)
- .attr('width', x.rangeBand() / (stacked ? 1 : data.length) )
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
- ;
- bars
- .style('fill', function(d,i,j){ return color(d, j, i); })
- .style('stroke', function(d,i,j){ return color(d, j, i); })
- .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- });
- bars
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
- .transition()
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
-
- if (barColor) {
- if (!disabled) disabled = data.map(function() { return true });
- bars
- .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); })
- .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); });
- }
-
-
- if (stacked)
- bars.transition()
- .delay(function(d,i) {
-
- return i * delay / data[0].values.length;
- })
- .attr('y', function(d,i) {
-
- return y((stacked ? d.y1 : 0));
- })
- .attr('height', function(d,i) {
- return Math.max(Math.abs(y(d.y + (stacked ? d.y0 : 0)) - y((stacked ? d.y0 : 0))),1);
- })
- .attr('x', function(d,i) {
- return stacked ? 0 : (d.series * x.rangeBand() / data.length )
- })
- .attr('width', x.rangeBand() / (stacked ? 1 : data.length) );
- else
- bars.transition()
- .delay(function(d,i) {
- return i * delay/ data[0].values.length;
- })
- .attr('x', function(d,i) {
- return d.series * x.rangeBand() / data.length
- })
- .attr('width', x.rangeBand() / data.length)
- .attr('y', function(d,i) {
- return getY(d,i) < 0 ?
- y(0) :
- y(0) - y(getY(d,i)) < 1 ?
- y(0) - 1 :
- y(getY(d,i)) || 0;
- })
- .attr('height', function(d,i) {
- return Math.max(Math.abs(y(getY(d,i)) - y(0)),1) || 0;
- });
-
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.stacked = function(_) {
- if (!arguments.length) return stacked;
- stacked = _;
- return chart;
- };
-
- chart.stackOffset = function(_) {
- if (!arguments.length) return stackOffset;
- stackOffset = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.barColor = function(_) {
- if (!arguments.length) return barColor;
- barColor = nv.utils.getColor(_);
- return chart;
- };
-
- chart.disabled = function(_) {
- if (!arguments.length) return disabled;
- disabled = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.hideable = function(_) {
- if (!arguments.length) return hideable;
- hideable = _;
- return chart;
- };
-
- chart.delay = function(_) {
- if (!arguments.length) return delay;
- delay = _;
- return chart;
- };
-
- chart.groupSpacing = function(_) {
- if (!arguments.length) return groupSpacing;
- groupSpacing = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.multiBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var multibar = nv.models.multiBar()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , showControls = true
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , reduceXTicks = true // if false a tick will show for every data point
- , staggerLabels = false
- , rotateLabels = 0
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' on ' + x + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , state = { stacked: false }
- , defaultState = null
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , controlWidth = function() { return showControls ? 180 : 0 }
- , transitionDuration = 250
- ;
-
- multibar
- .stacked(false)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(7)
- .highlightZero(true)
- .showMaxMin(false)
- .tickFormat(function(d) { return d })
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickFormat(d3.format(',.1f'))
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = multibar.xScale();
- y = multibar.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multiBarWithLegend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarWithLegend').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth - controlWidth());
-
- if (multibar.barColor())
- data.forEach(function(series,i) {
- series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
- })
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- { key: 'Grouped', disabled: multibar.stacked() },
- { key: 'Stacked', disabled: !multibar.stacked() }
- ];
-
- controls.width(controlWidth()).color(['#444', '#444', '#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- multibar
- .disabled(data.map(function(series) { return series.disabled }))
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(multibar);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- g.select('.nv-x.nv-axis').transition()
- .call(xAxis);
-
- var xTicks = g.select('.nv-x.nv-axis > g').selectAll('g');
-
- xTicks
- .selectAll('line, text')
- .style('opacity', 1)
-
- if (staggerLabels) {
- var getTranslate = function(x,y) {
- return "translate(" + x + "," + y + ")";
- };
-
- var staggerUp = 5, staggerDown = 17; //pixels to stagger by
- // Issue #140
- xTicks
- .selectAll("text")
- .attr('transform', function(d,i,j) {
- return getTranslate(0, (j % 2 == 0 ? staggerUp : staggerDown));
- });
-
- var totalInBetweenTicks = d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;
- g.selectAll(".nv-x.nv-axis .nv-axisMaxMin text")
- .attr("transform", function(d,i) {
- return getTranslate(0, (i === 0 || totalInBetweenTicks % 2 !== 0) ? staggerDown : staggerUp);
- });
- }
-
- if (reduceXTicks)
- xTicks
- .filter(function(d,i) {
- return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
- })
- .selectAll('text, line')
- .style('opacity', 0);
-
- if(rotateLabels)
- xTicks
- .selectAll('.tick text')
- .attr('transform', 'rotate(' + rotateLabels + ' 0,0)')
- .style('text-anchor', rotateLabels > 0 ? 'start' : 'end');
-
- g.select('.nv-x.nv-axis').selectAll('g.nv-axisMaxMin text')
- .style('opacity', 1);
- }
-
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis').transition()
- .call(yAxis);
- }
-
-
- //------------------------------------------------------------
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Grouped':
- multibar.stacked(false);
- break;
- case 'Stacked':
- multibar.stacked(true);
- break;
- }
-
- state.stacked = multibar.stacked();
- dispatch.stateChange(state);
-
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode)
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- if (typeof e.stacked !== 'undefined') {
- multibar.stacked(e.stacked);
- state.stacked = e.stacked;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- multibar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- multibar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.multibar = multibar;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'clipEdge',
- 'id', 'stacked', 'stackOffset', 'delay', 'barColor','groupSpacing');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.reduceXTicks= function(_) {
- if (!arguments.length) return reduceXTicks;
- reduceXTicks = _;
- return chart;
- };
-
- chart.rotateLabels = function(_) {
- if (!arguments.length) return rotateLabels;
- rotateLabels = _;
- return chart;
- }
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.multiBarHorizontal = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.ordinal()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
- , color = nv.utils.defaultColor()
- , barColor = null // adding the ability to set the color for each rather than the whole group
- , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
- , stacked = false
- , showValues = false
- , showBarLabels = false
- , valuePadding = 60
- , valueFormat = d3.format(',.2f')
- , delay = 1200
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0 //used to store previous scales
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- if (stacked)
- data = d3.layout.stack()
- .offset('zero')
- .values(function(d){ return d.values })
- .y(getY)
- (data);
-
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
-
-
- //------------------------------------------------------------
- // HACK for negative value stacking
- if (stacked)
- data[0].values.map(function(d,i) {
- var posBase = 0, negBase = 0;
- data.map(function(d) {
- var f = d.values[i]
- f.size = Math.abs(f.y);
- if (f.y<0) {
- f.y1 = negBase - f.size;
- negBase = negBase - f.size;
- } else
- {
- f.y1 = posBase;
- posBase = posBase + f.size;
- }
- });
- });
-
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
- })
- });
-
- x .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands(xRange || [0, availableHeight], .1);
-
- //y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y0 : 0) }).concat(forceY)))
- y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 + d.y : d.y1 ) : d.y }).concat(forceY)))
-
- if (showValues && !stacked)
- y.range(yRange || [(y.domain()[0] < 0 ? valuePadding : 0), availableWidth - (y.domain()[1] > 0 ? valuePadding : 0) ]);
- else
- y.range(yRange || [0, availableWidth]);
-
- x0 = x0 || x;
- y0 = y0 || d3.scale.linear().domain(y.domain()).range([y(0),y(0)]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('g.nv-wrap.nv-multibarHorizontal').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibarHorizontal');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-groups');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d,i) { return i });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit().transition()
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i) });
- groups.transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .75);
-
-
- var bars = groups.selectAll('g.nv-bar')
- .data(function(d) { return d.values });
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('g')
- .attr('transform', function(d,i,j) {
- return 'translate(' + y0(stacked ? d.y0 : 0) + ',' + (stacked ? 0 : (j * x.rangeBand() / data.length ) + x(getX(d,i))) + ')'
- });
-
- barsEnter.append('rect')
- .attr('width', 0)
- .attr('height', x.rangeBand() / (stacked ? 1 : data.length) )
-
- bars
- .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [ y(getY(d,i) + (stacked ? d.y0 : 0)), x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length) ],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- });
-
-
- barsEnter.append('text');
-
- if (showValues && !stacked) {
- bars.select('text')
- .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'end' : 'start' })
- .attr('y', x.rangeBand() / (data.length * 2))
- .attr('dy', '.32em')
- .text(function(d,i) { return valueFormat(getY(d,i)) })
- bars.transition()
- .select('text')
- .attr('x', function(d,i) { return getY(d,i) < 0 ? -4 : y(getY(d,i)) - y(0) + 4 })
- } else {
- bars.selectAll('text').text('');
- }
-
- if (showBarLabels && !stacked) {
- barsEnter.append('text').classed('nv-bar-label',true);
- bars.select('text.nv-bar-label')
- .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'start' : 'end' })
- .attr('y', x.rangeBand() / (data.length * 2))
- .attr('dy', '.32em')
- .text(function(d,i) { return getX(d,i) });
- bars.transition()
- .select('text.nv-bar-label')
- .attr('x', function(d,i) { return getY(d,i) < 0 ? y(0) - y(getY(d,i)) + 4 : -4 });
- }
- else {
- bars.selectAll('text.nv-bar-label').text('');
- }
-
- bars
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-
- if (barColor) {
- if (!disabled) disabled = data.map(function() { return true });
- bars
- .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); })
- .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); });
- }
-
- if (stacked)
- bars.transition()
- .attr('transform', function(d,i) {
- return 'translate(' + y(d.y1) + ',' + x(getX(d,i)) + ')'
- })
- .select('rect')
- .attr('width', function(d,i) {
- return Math.abs(y(getY(d,i) + d.y0) - y(d.y0))
- })
- .attr('height', x.rangeBand() );
- else
- bars.transition()
- .attr('transform', function(d,i) {
- //TODO: stacked must be all positive or all negative, not both?
- return 'translate(' +
- (getY(d,i) < 0 ? y(getY(d,i)) : y(0))
- + ',' +
- (d.series * x.rangeBand() / data.length
- +
- x(getX(d,i)) )
- + ')'
- })
- .select('rect')
- .attr('height', x.rangeBand() / data.length )
- .attr('width', function(d,i) {
- return Math.max(Math.abs(y(getY(d,i)) - y(0)),1)
- });
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.stacked = function(_) {
- if (!arguments.length) return stacked;
- stacked = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.barColor = function(_) {
- if (!arguments.length) return barColor;
- barColor = nv.utils.getColor(_);
- return chart;
- };
-
- chart.disabled = function(_) {
- if (!arguments.length) return disabled;
- disabled = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.delay = function(_) {
- if (!arguments.length) return delay;
- delay = _;
- return chart;
- };
-
- chart.showValues = function(_) {
- if (!arguments.length) return showValues;
- showValues = _;
- return chart;
- };
-
- chart.showBarLabels = function(_) {
- if (!arguments.length) return showBarLabels;
- showBarLabels = _;
- return chart;
- };
-
-
- chart.valueFormat= function(_) {
- if (!arguments.length) return valueFormat;
- valueFormat = _;
- return chart;
- };
-
- chart.valuePadding = function(_) {
- if (!arguments.length) return valuePadding;
- valuePadding = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.multiBarHorizontalChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var multibar = nv.models.multiBarHorizontal()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend().height(30)
- , controls = nv.models.legend().height(30)
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , showControls = true
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , stacked = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + ' - ' + x + '</h3>' +
- '<p>' + y + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , state = { stacked: stacked }
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , controlWidth = function() { return showControls ? 180 : 0 }
- , transitionDuration = 250
- ;
-
- multibar
- .stacked(stacked)
- ;
- xAxis
- .orient('left')
- .tickPadding(5)
- .highlightZero(false)
- .showMaxMin(false)
- .tickFormat(function(d) { return d })
- ;
- yAxis
- .orient('bottom')
- .tickFormat(d3.format(',.1f'))
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = multibar.xScale();
- y = multibar.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multiBarHorizontalChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarHorizontalChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis')
- .append('g').attr('class', 'nv-zeroLine')
- .append('line');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth - controlWidth());
-
- if (multibar.barColor())
- data.forEach(function(series,i) {
- series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
- })
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- { key: 'Grouped', disabled: multibar.stacked() },
- { key: 'Stacked', disabled: !multibar.stacked() }
- ];
-
- controls.width(controlWidth()).color(['#444', '#444', '#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- multibar
- .disabled(data.map(function(series) { return series.disabled }))
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(multibar);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableHeight / 24 )
- .tickSize(-availableWidth, 0);
-
- g.select('.nv-x.nv-axis').transition()
- .call(xAxis);
-
- var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
- xTicks
- .selectAll('line, text');
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight, 0);
-
- g.select('.nv-y.nv-axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
- g.select('.nv-y.nv-axis').transition()
- .call(yAxis);
- }
-
- // Zero line
- g.select(".nv-zeroLine line")
- .attr("x1", y(0))
- .attr("x2", y(0))
- .attr("y1", 0)
- .attr("y2", -availableHeight)
- ;
-
- //------------------------------------------------------------
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Grouped':
- multibar.stacked(false);
- break;
- case 'Stacked':
- multibar.stacked(true);
- break;
- }
-
- state.stacked = multibar.stacked();
- dispatch.stateChange(state);
-
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- if (typeof e.stacked !== 'undefined') {
- multibar.stacked(e.stacked);
- state.stacked = e.stacked;
- }
-
- chart.update();
- });
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- multibar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- multibar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.multibar = multibar;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY',
- 'clipEdge', 'id', 'delay', 'showValues','showBarLabels', 'valueFormat', 'stacked', 'barColor');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
-nv.models.multiChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- color = d3.scale.category20().range(),
- width = null,
- height = null,
- showLegend = true,
- tooltips = true,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- },
- x,
- y,
- yDomain1,
- yDomain2
- ; //can be accessed via chart.lines.[x/y]Scale()
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x = d3.scale.linear(),
- yScale1 = d3.scale.linear(),
- yScale2 = d3.scale.linear(),
-
- lines1 = nv.models.line().yScale(yScale1),
- lines2 = nv.models.line().yScale(yScale2),
-
- bars1 = nv.models.multiBar().stacked(false).yScale(yScale1),
- bars2 = nv.models.multiBar().stacked(false).yScale(yScale2),
-
- stack1 = nv.models.stackedArea().yScale(yScale1),
- stack2 = nv.models.stackedArea().yScale(yScale2),
-
- xAxis = nv.models.axis().scale(x).orient('bottom').tickPadding(5),
- yAxis1 = nv.models.axis().scale(yScale1).orient('left'),
- yAxis2 = nv.models.axis().scale(yScale2).orient('right'),
-
- legend = nv.models.legend().height(30),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines1.x()(e.point, e.pointIndex)),
- y = ((e.series.yAxis == 2) ? yAxis2 : yAxis1).tickFormat()(lines1.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, undefined, undefined, offsetElement.offsetParent);
- };
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- chart.update = function() { container.transition().call(chart); };
- chart.container = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- var dataLines1 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 1})
- var dataLines2 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 2})
- var dataBars1 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 1})
- var dataBars2 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 2})
- var dataStack1 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 1})
- var dataStack2 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 2})
-
- var series1 = data.filter(function(d) {return !d.disabled && d.yAxis == 1})
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: d.x, y: d.y }
- })
- })
-
- var series2 = data.filter(function(d) {return !d.disabled && d.yAxis == 2})
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: d.x, y: d.y }
- })
- })
-
- x .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
- var wrap = container.selectAll('g.wrap.multiChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiChart').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y1 axis');
- gEnter.append('g').attr('class', 'y2 axis');
- gEnter.append('g').attr('class', 'lines1Wrap');
- gEnter.append('g').attr('class', 'lines2Wrap');
- gEnter.append('g').attr('class', 'bars1Wrap');
- gEnter.append('g').attr('class', 'bars2Wrap');
- gEnter.append('g').attr('class', 'stack1Wrap');
- gEnter.append('g').attr('class', 'stack2Wrap');
- gEnter.append('g').attr('class', 'legendWrap');
-
- var g = wrap.select('g');
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- g.select('.legendWrap')
- .datum(data.map(function(series) {
- series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
- series.key = series.originalKey + (series.yAxis == 1 ? '' : ' (right axis)');
- return series;
- }))
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.legendWrap')
- .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
- }
-
-
- lines1
- .width(availableWidth)
- .height(availableHeight)
- .interpolate("monotone")
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'line'}));
-
- lines2
- .width(availableWidth)
- .height(availableHeight)
- .interpolate("monotone")
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'line'}));
-
- bars1
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'bar'}));
-
- bars2
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'bar'}));
-
- stack1
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'area'}));
-
- stack2
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'area'}));
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- var lines1Wrap = g.select('.lines1Wrap')
- .datum(dataLines1)
- var bars1Wrap = g.select('.bars1Wrap')
- .datum(dataBars1)
- var stack1Wrap = g.select('.stack1Wrap')
- .datum(dataStack1)
-
- var lines2Wrap = g.select('.lines2Wrap')
- .datum(dataLines2)
- var bars2Wrap = g.select('.bars2Wrap')
- .datum(dataBars2)
- var stack2Wrap = g.select('.stack2Wrap')
- .datum(dataStack2)
-
- var extraValue1 = dataStack1.length ? dataStack1.map(function(a){return a.values}).reduce(function(a,b){
- return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
- }).concat([{x:0, y:0}]) : []
- var extraValue2 = dataStack2.length ? dataStack2.map(function(a){return a.values}).reduce(function(a,b){
- return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
- }).concat([{x:0, y:0}]) : []
-
- yScale1 .domain(yDomain1 || d3.extent(d3.merge(series1).concat(extraValue1), function(d) { return d.y } ))
- .range([0, availableHeight])
-
- yScale2 .domain(yDomain2 || d3.extent(d3.merge(series2).concat(extraValue2), function(d) { return d.y } ))
- .range([0, availableHeight])
-
- lines1.yDomain(yScale1.domain())
- bars1.yDomain(yScale1.domain())
- stack1.yDomain(yScale1.domain())
-
- lines2.yDomain(yScale2.domain())
- bars2.yDomain(yScale2.domain())
- stack2.yDomain(yScale2.domain())
-
- if(dataStack1.length){d3.transition(stack1Wrap).call(stack1);}
- if(dataStack2.length){d3.transition(stack2Wrap).call(stack2);}
-
- if(dataBars1.length){d3.transition(bars1Wrap).call(bars1);}
- if(dataBars2.length){d3.transition(bars2Wrap).call(bars2);}
-
- if(dataLines1.length){d3.transition(lines1Wrap).call(lines1);}
- if(dataLines2.length){d3.transition(lines2Wrap).call(lines2);}
-
-
-
- xAxis
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- yAxis1
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
-
- d3.transition(g.select('.y1.axis'))
- .call(yAxis1);
-
- yAxis2
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y2.axis'))
- .call(yAxis2);
-
- g.select('.y2.axis')
- .style('opacity', series2.length ? 1 : 0)
- .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
- legend.dispatch.on('stateChange', function(newState) {
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines1.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines1.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- lines2.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines2.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars1.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars1.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars2.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars2.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- stack1.dispatch.on('tooltipShow', function(e) {
- //disable tooltips when value ~= 0
- //// TODO: consider removing points from voronoi that have 0 value instead of this hack
- if (!Math.round(stack1.y()(e.point) * 100)) { // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
- setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
- return false;
- }
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- stack1.dispatch.on('tooltipHide', function(e) {
- dispatch.tooltipHide(e);
- });
-
- stack2.dispatch.on('tooltipShow', function(e) {
- //disable tooltips when value ~= 0
- //// TODO: consider removing points from voronoi that have 0 value instead of this hack
- if (!Math.round(stack2.y()(e.point) * 100)) { // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
- setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
- return false;
- }
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- stack2.dispatch.on('tooltipHide', function(e) {
- dispatch.tooltipHide(e);
- });
-
- lines1.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines1.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- lines2.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines2.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
-
-
- //============================================================
- // Global getters and setters
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.lines1 = lines1;
- chart.lines2 = lines2;
- chart.bars1 = bars1;
- chart.bars2 = bars2;
- chart.stack1 = stack1;
- chart.stack2 = stack2;
- chart.xAxis = xAxis;
- chart.yAxis1 = yAxis1;
- chart.yAxis2 = yAxis2;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines1.x(_);
- bars1.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines1.y(_);
- bars1.y(_);
- return chart;
- };
-
- chart.yDomain1 = function(_) {
- if (!arguments.length) return yDomain1;
- yDomain1 = _;
- return chart;
- };
-
- chart.yDomain2 = function(_) {
- if (!arguments.length) return yDomain2;
- yDomain2 = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- legend.color(_);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- return chart;
-}
-
-
-nv.models.ohlcBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , getOpen = function(d) { return d.open }
- , getClose = function(d) { return d.close }
- , getHigh = function(d) { return d.high }
- , getLow = function(d) { return d.low }
- , forceX = []
- , forceY = []
- , padData = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
- , clipEdge = true
- , color = nv.utils.defaultColor()
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- //TODO: store old scales for transitions
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ));
-
- if (padData)
- x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5) / data[0].values.length ]);
- else
- x.range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || [
- d3.min(data[0].values.map(getLow).concat(forceY)),
- d3.max(data[0].values.map(getHigh).concat(forceY))
- ])
- .range(yRange || [availableHeight, 0]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('g.nv-wrap.nv-ohlcBar').data([data[0].values]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-ohlcBar');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-ticks');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- container
- .on('click', function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-chart-clip-path-' + id)
- .append('rect');
-
- wrap.select('#nv-chart-clip-path-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
- var ticks = wrap.select('.nv-ticks').selectAll('.nv-tick')
- .data(function(d) { return d });
-
- ticks.exit().remove();
-
-
- var ticksEnter = ticks.enter().append('path')
- .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
- .attr('d', function(d,i) {
- var w = (availableWidth / data[0].values.length) * .9;
- return 'm0,0l0,'
- + (y(getOpen(d,i))
- - y(getHigh(d,i)))
- + 'l'
- + (-w/2)
- + ',0l'
- + (w/2)
- + ',0l0,'
- + (y(getLow(d,i)) - y(getOpen(d,i)))
- + 'l0,'
- + (y(getClose(d,i))
- - y(getLow(d,i)))
- + 'l'
- + (w/2)
- + ',0l'
- + (-w/2)
- + ',0z';
- })
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
- //.attr('fill', function(d,i) { return color[0]; })
- //.attr('stroke', function(d,i) { return color[0]; })
- //.attr('x', 0 )
- //.attr('y', function(d,i) { return y(Math.max(0, getY(d,i))) })
- //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) })
- .on('mouseover', function(d,i) {
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- point: d,
- series: data[0],
- pos: [x(getX(d,i)), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
-
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- point: d,
- series: data[0],
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
- ticks
- .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
- d3.transition(ticks)
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
- .attr('d', function(d,i) {
- var w = (availableWidth / data[0].values.length) * .9;
- return 'm0,0l0,'
- + (y(getOpen(d,i))
- - y(getHigh(d,i)))
- + 'l'
- + (-w/2)
- + ',0l'
- + (w/2)
- + ',0l0,'
- + (y(getLow(d,i))
- - y(getOpen(d,i)))
- + 'l0,'
- + (y(getClose(d,i))
- - y(getLow(d,i)))
- + 'l'
- + (w/2)
- + ',0l'
- + (-w/2)
- + ',0z';
- })
- //.attr('width', (availableWidth / data[0].values.length) * .9 )
-
-
- //d3.transition(ticks)
- //.attr('y', function(d,i) { return y(Math.max(0, getY(d,i))) })
- //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) });
- //.order(); // not sure if this makes any sense for this model
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.open = function(_) {
- if (!arguments.length) return getOpen;
- getOpen = _;
- return chart;
- };
-
- chart.close = function(_) {
- if (!arguments.length) return getClose;
- getClose = _;
- return chart;
- };
-
- chart.high = function(_) {
- if (!arguments.length) return getHigh;
- getHigh = _;
- return chart;
- };
-
- chart.low = function(_) {
- if (!arguments.length) return getLow;
- getLow = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.padData = function(_) {
- if (!arguments.length) return padData;
- padData = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-nv.models.pie = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 500
- , height = 500
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , getDescription = function(d) { return d.description }
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , color = nv.utils.defaultColor()
- , valueFormat = d3.format(',.2f')
- , showLabels = true
- , pieLabelsOutside = true
- , donutLabelsOutside = false
- , labelType = "key"
- , labelThreshold = .02 //if slice percentage is under this, don't show label
- , donut = false
- , labelSunbeamLayout = false
- , startAngle = false
- , endAngle = false
- , donutRatio = 0.5
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- radius = Math.min(availableWidth, availableHeight) / 2,
- arcRadius = radius-(radius / 5),
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- //var wrap = container.selectAll('.nv-wrap.nv-pie').data([data]);
- var wrap = container.selectAll('.nv-wrap.nv-pie').data(data);
- var wrapEnter = wrap.enter().append('g').attr('class','nvd3 nv-wrap nv-pie nv-chart-' + id);
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-pie');
- gEnter.append('g').attr('class', 'nv-pieLabels');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
- g.select('.nv-pie').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
- g.select('.nv-pieLabels').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
-
- //------------------------------------------------------------
-
-
- container
- .on('click', function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
- var arc = d3.svg.arc()
- .outerRadius(arcRadius);
-
- if (startAngle) arc.startAngle(startAngle)
- if (endAngle) arc.endAngle(endAngle);
- if (donut) arc.innerRadius(radius * donutRatio);
-
- // Setup the Pie chart and choose the data element
- var pie = d3.layout.pie()
- .sort(null)
- .value(function(d) { return d.disabled ? 0 : getY(d) });
-
- var slices = wrap.select('.nv-pie').selectAll('.nv-slice')
- .data(pie);
-
- var pieLabels = wrap.select('.nv-pieLabels').selectAll('.nv-label')
- .data(pie);
-
- slices.exit().remove();
- pieLabels.exit().remove();
-
- var ae = slices.enter().append('g')
- .attr('class', 'nv-slice')
- .on('mouseover', function(d,i){
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- pointIndex: i,
- pos: [d3.event.pageX, d3.event.pageY],
- id: id
- });
- })
- .on('mouseout', function(d,i){
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- index: i,
- id: id
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
- slices
- .attr('fill', function(d,i) { return color(d, i); })
- .attr('stroke', function(d,i) { return color(d, i); });
-
- var paths = ae.append('path')
- .each(function(d) { this._current = d; });
- //.attr('d', arc);
-
- slices.select('path')
- .transition()
- .attr('d', arc)
- .attrTween('d', arcTween);
-
- if (showLabels) {
- // This does the normal label
- var labelsArc = d3.svg.arc().innerRadius(0);
-
- if (pieLabelsOutside){ labelsArc = arc; }
-
- if (donutLabelsOutside) { labelsArc = d3.svg.arc().outerRadius(arc.outerRadius()); }
-
- pieLabels.enter().append("g").classed("nv-label",true)
- .each(function(d,i) {
- var group = d3.select(this);
-
- group
- .attr('transform', function(d) {
- if (labelSunbeamLayout) {
- d.outerRadius = arcRadius + 10; // Set Outer Coordinate
- d.innerRadius = arcRadius + 15; // Set Inner Coordinate
- var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
- if ((d.startAngle+d.endAngle)/2 < Math.PI) {
- rotateAngle -= 90;
- } else {
- rotateAngle += 90;
- }
- return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
- } else {
- d.outerRadius = radius + 10; // Set Outer Coordinate
- d.innerRadius = radius + 15; // Set Inner Coordinate
- return 'translate(' + labelsArc.centroid(d) + ')'
- }
- });
-
- group.append('rect')
- .style('stroke', '#fff')
- .style('fill', '#fff')
- .attr("rx", 3)
- .attr("ry", 3);
-
- group.append('text')
- .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
- .style('fill', '#000')
-
- });
-
- var labelLocationHash = {};
- var avgHeight = 14;
- var avgWidth = 140;
- var createHashKey = function(coordinates) {
-
- return Math.floor(coordinates[0]/avgWidth) * avgWidth + ',' + Math.floor(coordinates[1]/avgHeight) * avgHeight;
- };
- pieLabels.transition()
- .attr('transform', function(d) {
- if (labelSunbeamLayout) {
- d.outerRadius = arcRadius + 10; // Set Outer Coordinate
- d.innerRadius = arcRadius + 15; // Set Inner Coordinate
- var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
- if ((d.startAngle+d.endAngle)/2 < Math.PI) {
- rotateAngle -= 90;
- } else {
- rotateAngle += 90;
- }
- return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
- } else {
- d.outerRadius = radius + 10; // Set Outer Coordinate
- d.innerRadius = radius + 15; // Set Inner Coordinate
-
- /*
- Overlapping pie labels are not good. What this attempts to do is, prevent overlapping.
- Each label location is hashed, and if a hash collision occurs, we assume an overlap.
- Adjust the label's y-position to remove the overlap.
- */
- var center = labelsArc.centroid(d);
- var hashKey = createHashKey(center);
- if (labelLocationHash[hashKey]) {
- center[1] -= avgHeight;
- }
- labelLocationHash[createHashKey(center)] = true;
- return 'translate(' + center + ')'
- }
- });
- pieLabels.select(".nv-label text")
- .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
- .text(function(d, i) {
- var percent = (d.endAngle - d.startAngle) / (2 * Math.PI);
- var labelTypes = {
- "key" : getX(d.data),
- "value": getY(d.data),
- "percent": d3.format('%')(percent)
- };
- return (d.value && percent > labelThreshold) ? labelTypes[labelType] : '';
- });
- }
-
-
- // Computes the angle of an arc, converting from radians to degrees.
- function angle(d) {
- var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;
- return a > 90 ? a - 180 : a;
- }
-
- function arcTween(a) {
- a.endAngle = isNaN(a.endAngle) ? 0 : a.endAngle;
- a.startAngle = isNaN(a.startAngle) ? 0 : a.startAngle;
- if (!donut) a.innerRadius = 0;
- var i = d3.interpolate(this._current, a);
- this._current = i(0);
- return function(t) {
- return arc(i(t));
- };
- }
-
- function tweenPie(b) {
- b.innerRadius = 0;
- var i = d3.interpolate({startAngle: 0, endAngle: 0}, b);
- return function(t) {
- return arc(i(t));
- };
- }
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.values = function(_) {
- nv.log("pie.values() is no longer supported.");
- return chart;
- };
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- };
-
- chart.description = function(_) {
- if (!arguments.length) return getDescription;
- getDescription = _;
- return chart;
- };
-
- chart.showLabels = function(_) {
- if (!arguments.length) return showLabels;
- showLabels = _;
- return chart;
- };
-
- chart.labelSunbeamLayout = function(_) {
- if (!arguments.length) return labelSunbeamLayout;
- labelSunbeamLayout = _;
- return chart;
- };
-
- chart.donutLabelsOutside = function(_) {
- if (!arguments.length) return donutLabelsOutside;
- donutLabelsOutside = _;
- return chart;
- };
-
- chart.pieLabelsOutside = function(_) {
- if (!arguments.length) return pieLabelsOutside;
- pieLabelsOutside = _;
- return chart;
- };
-
- chart.labelType = function(_) {
- if (!arguments.length) return labelType;
- labelType = _;
- labelType = labelType || "key";
- return chart;
- };
-
- chart.donut = function(_) {
- if (!arguments.length) return donut;
- donut = _;
- return chart;
- };
-
- chart.donutRatio = function(_) {
- if (!arguments.length) return donutRatio;
- donutRatio = _;
- return chart;
- };
-
- chart.startAngle = function(_) {
- if (!arguments.length) return startAngle;
- startAngle = _;
- return chart;
- };
-
- chart.endAngle = function(_) {
- if (!arguments.length) return endAngle;
- endAngle = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.valueFormat = function(_) {
- if (!arguments.length) return valueFormat;
- valueFormat = _;
- return chart;
- };
-
- chart.labelThreshold = function(_) {
- if (!arguments.length) return labelThreshold;
- labelThreshold = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
-nv.models.pieChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var pie = nv.models.pie()
- , legend = nv.models.legend()
- ;
-
- var margin = {top: 30, right: 20, bottom: 20, left: 20}
- , width = null
- , height = null
- , showLegend = true
- , color = nv.utils.defaultColor()
- , tooltips = true
- , tooltip = function(key, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + '</p>'
- }
- , state = {}
- , defaultState = null
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var tooltipLabel = pie.description()(e.point) || pie.x()(e.point)
- var left = e.pos[0] + ( (offsetElement && offsetElement.offsetLeft) || 0 ),
- top = e.pos[1] + ( (offsetElement && offsetElement.offsetTop) || 0),
- y = pie.valueFormat()(pie.y()(e.point)),
- content = tooltip(tooltipLabel, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-pieChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-pieChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-pieWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend
- .width( availableWidth )
- .key(pie.x());
-
- wrap.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- pie
- .width(availableWidth)
- .height(availableHeight);
-
-
- var pieWrap = g.select('.nv-pieWrap')
- .datum([data]);
-
- d3.transition(pieWrap).call(pie);
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- pie.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- pie.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.legend = legend;
- chart.dispatch = dispatch;
- chart.pie = pie;
-
- d3.rebind(chart, pie, 'valueFormat', 'values', 'x', 'y', 'description', 'id', 'showLabels', 'donutLabelsOutside', 'pieLabelsOutside', 'labelType', 'donut', 'donutRatio', 'labelThreshold');
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- pie.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.scatter = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor() // chooses color
- , id = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't select one
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , z = d3.scale.linear() //linear because d3.svg.shape.size is treated as area
- , getX = function(d) { return d.x } // accessor to get the x value
- , getY = function(d) { return d.y } // accessor to get the y value
- , getSize = function(d) { return d.size || 1} // accessor to get the point size
- , getShape = function(d) { return d.shape || 'circle' } // accessor to get point shape
- , onlyCircles = true // Set to false to use shapes
- , forceX = [] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
- , forceY = [] // List of numbers to Force into the Y scale
- , forceSize = [] // List of numbers to Force into the Size scale
- , interactive = true // If true, plots a voronoi overlay for advanced point intersection
- , pointKey = null
- , pointActive = function(d) { return !d.notActive } // any points that return false will be filtered out
- , padData = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
- , padDataOuter = .1 //outerPadding to imitate ordinal scale outer padding
- , clipEdge = false // if true, masks points within x and y scale
- , clipVoronoi = true // if true, masks each point with a circle... can turn off to slightly increase performance
- , clipRadius = function() { return 25 } // function to get the radius for voronoi point clips
- , xDomain = null // Override x domain (skips the calculation from data)
- , yDomain = null // Override y domain
- , xRange = null // Override x range
- , yRange = null // Override y range
- , sizeDomain = null // Override point size domain
- , sizeRange = null
- , singlePoint = false
- , dispatch = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout')
- , useVoronoi = true
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0, z0 // used to store previous scales
- , timeoutID
- , needsUpdate = false // Flag for when the points are visually updating, but the interactive layer is behind, to disable tooltips
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain && sizeDomain) ? [] : // if we know xDomain and yDomain and sizeDomain, no need to calculate.... if Size is constant remember to set sizeDomain to speed up performance
- d3.merge(
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), size: getSize(d,i) }
- })
- })
- );
-
- x .domain(xDomain || d3.extent(seriesData.map(function(d) { return d.x; }).concat(forceX)))
-
- if (padData && data[0])
- x.range(xRange || [(availableWidth * padDataOuter + availableWidth) / (2 *data[0].values.length), availableWidth - availableWidth * (1 + padDataOuter) / (2 * data[0].values.length) ]);
- //x.range([availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5) / data[0].values.length ]);
- else
- x.range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || d3.extent(seriesData.map(function(d) { return d.y }).concat(forceY)))
- .range(yRange || [availableHeight, 0]);
-
- z .domain(sizeDomain || d3.extent(seriesData.map(function(d) { return d.size }).concat(forceSize)))
- .range(sizeRange || [16, 256]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
- if (x.domain()[0] === x.domain()[1] || y.domain()[0] === y.domain()[1]) singlePoint = true;
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] - y.domain()[0] * 0.01, y.domain()[1] + y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
- if ( isNaN(x.domain()[0])) {
- x.domain([-1,1]);
- }
-
- if ( isNaN(y.domain()[0])) {
- y.domain([-1,1]);
- }
-
-
- x0 = x0 || x;
- y0 = y0 || y;
- z0 = z0 || z;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-scatter').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatter nv-chart-' + id + (singlePoint ? ' nv-single-point' : ''));
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-groups');
- gEnter.append('g').attr('class', 'nv-point-paths');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
-
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
- function updateInteractiveLayer() {
-
- if (!interactive) return false;
-
- var eventElements;
-
- var vertices = d3.merge(data.map(function(group, groupIndex) {
- return group.values
- .map(function(point, pointIndex) {
- // *Adding noise to make duplicates very unlikely
- // *Injecting series and point index for reference
- /* *Adding a 'jitter' to the points, because there's an issue in d3.geom.voronoi.
- */
- var pX = getX(point,pointIndex);
- var pY = getY(point,pointIndex);
-
- return [x(pX)+ Math.random() * 1e-7,
- y(pY)+ Math.random() * 1e-7,
- groupIndex,
- pointIndex, point]; //temp hack to add noise untill I think of a better way so there are no duplicates
- })
- .filter(function(pointArray, pointIndex) {
- return pointActive(pointArray[4], pointIndex); // Issue #237.. move filter to after map, so pointIndex is correct!
- })
- })
- );
-
-
-
- //inject series and point index for reference into voronoi
- if (useVoronoi === true) {
-
- if (clipVoronoi) {
- var pointClipsEnter = wrap.select('defs').selectAll('.nv-point-clips')
- .data([id])
- .enter();
-
- pointClipsEnter.append('clipPath')
- .attr('class', 'nv-point-clips')
- .attr('id', 'nv-points-clip-' + id);
-
- var pointClips = wrap.select('#nv-points-clip-' + id).selectAll('circle')
- .data(vertices);
- pointClips.enter().append('circle')
- .attr('r', clipRadius);
- pointClips.exit().remove();
- pointClips
- .attr('cx', function(d) { return d[0] })
- .attr('cy', function(d) { return d[1] });
-
- wrap.select('.nv-point-paths')
- .attr('clip-path', 'url(#nv-points-clip-' + id + ')');
- }
-
-
- if(vertices.length) {
- // Issue #283 - Adding 2 dummy points to the voronoi b/c voronoi requires min 3 points to work
- vertices.push([x.range()[0] - 20, y.range()[0] - 20, null, null]);
- vertices.push([x.range()[1] + 20, y.range()[1] + 20, null, null]);
- vertices.push([x.range()[0] - 20, y.range()[0] + 20, null, null]);
- vertices.push([x.range()[1] + 20, y.range()[1] - 20, null, null]);
- }
-
- var bounds = d3.geom.polygon([
- [-10,-10],
- [-10,height + 10],
- [width + 10,height + 10],
- [width + 10,-10]
- ]);
-
- var voronoi = d3.geom.voronoi(vertices).map(function(d, i) {
- return {
- 'data': bounds.clip(d),
- 'series': vertices[i][2],
- 'point': vertices[i][3]
- }
- });
-
-
- var pointPaths = wrap.select('.nv-point-paths').selectAll('path')
- .data(voronoi);
- pointPaths.enter().append('path')
- .attr('class', function(d,i) { return 'nv-path-'+i; });
- pointPaths.exit().remove();
- pointPaths
- .attr('d', function(d) {
- if (d.data.length === 0)
- return 'M 0 0'
- else
- return 'M' + d.data.join('L') + 'Z';
- });
-
- var mouseEventCallback = function(d,mDispatch) {
- if (needsUpdate) return 0;
- var series = data[d.series];
- if (typeof series === 'undefined') return;
-
- var point = series.values[d.point];
-
- mDispatch({
- point: point,
- series: series,
- pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
- seriesIndex: d.series,
- pointIndex: d.point
- });
- };
-
- pointPaths
- .on('click', function(d) {
- mouseEventCallback(d, dispatch.elementClick);
- })
- .on('mouseover', function(d) {
- mouseEventCallback(d, dispatch.elementMouseover);
- })
- .on('mouseout', function(d, i) {
- mouseEventCallback(d, dispatch.elementMouseout);
- });
-
-
- } else {
- /*
- // bring data in form needed for click handlers
- var dataWithPoints = vertices.map(function(d, i) {
- return {
- 'data': d,
- 'series': vertices[i][2],
- 'point': vertices[i][3]
- }
- });
- */
-
- // add event handlers to points instead voronoi paths
- wrap.select('.nv-groups').selectAll('.nv-group')
- .selectAll('.nv-point')
- //.data(dataWithPoints)
- //.style('pointer-events', 'auto') // recativate events, disabled by css
- .on('click', function(d,i) {
- //nv.log('test', d, i);
- if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
- var series = data[d.series],
- point = series.values[i];
-
- dispatch.elementClick({
- point: point,
- series: series,
- pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
- seriesIndex: d.series,
- pointIndex: i
- });
- })
- .on('mouseover', function(d,i) {
- if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
- var series = data[d.series],
- point = series.values[i];
-
- dispatch.elementMouseover({
- point: point,
- series: series,
- pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
- seriesIndex: d.series,
- pointIndex: i
- });
- })
- .on('mouseout', function(d,i) {
- if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
- var series = data[d.series],
- point = series.values[i];
-
- dispatch.elementMouseout({
- point: point,
- series: series,
- seriesIndex: d.series,
- pointIndex: i
- });
- });
- }
-
- needsUpdate = false;
- }
-
- needsUpdate = true;
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit()
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover });
- groups
- .transition()
- .style('fill', function(d,i) { return color(d, i) })
- .style('stroke', function(d,i) { return color(d, i) })
- .style('stroke-opacity', 1)
- .style('fill-opacity', .5);
-
-
- if (onlyCircles) {
-
- var points = groups.selectAll('circle.nv-point')
- .data(function(d) { return d.values }, pointKey);
- points.enter().append('circle')
- .style('fill', function (d,i) { return d.color })
- .style('stroke', function (d,i) { return d.color })
- .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
- .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
- .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
- points.exit().remove();
- groups.exit().selectAll('path.nv-point').transition()
- .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- .remove();
- points.each(function(d,i) {
- d3.select(this)
- .classed('nv-point', true)
- .classed('nv-point-' + i, true)
- .classed('hover',false)
- ;
- });
- points.transition()
- .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
-
- } else {
-
- var points = groups.selectAll('path.nv-point')
- .data(function(d) { return d.values });
- points.enter().append('path')
- .style('fill', function (d,i) { return d.color })
- .style('stroke', function (d,i) { return d.color })
- .attr('transform', function(d,i) {
- return 'translate(' + x0(getX(d,i)) + ',' + y0(getY(d,i)) + ')'
- })
- .attr('d',
- d3.svg.symbol()
- .type(getShape)
- .size(function(d,i) { return z(getSize(d,i)) })
- );
- points.exit().remove();
- groups.exit().selectAll('path.nv-point')
- .transition()
- .attr('transform', function(d,i) {
- return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
- })
- .remove();
- points.each(function(d,i) {
- d3.select(this)
- .classed('nv-point', true)
- .classed('nv-point-' + i, true)
- .classed('hover',false)
- ;
- });
- points.transition()
- .attr('transform', function(d,i) {
- //nv.log(d,i,getX(d,i), x(getX(d,i)));
- return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
- })
- .attr('d',
- d3.svg.symbol()
- .type(getShape)
- .size(function(d,i) { return z(getSize(d,i)) })
- );
- }
-
-
- // Delay updating the invisible interactive layer for smoother animation
- clearTimeout(timeoutID); // stop repeat calls to updateInteractiveLayer
- timeoutID = setTimeout(updateInteractiveLayer, 300);
- //updateInteractiveLayer();
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
- z0 = z.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
- chart.clearHighlights = function() {
- //Remove the 'hover' class from all highlighted points.
- d3.selectAll(".nv-chart-" + id + " .nv-point.hover").classed("hover",false);
- };
-
- chart.highlightPoint = function(seriesIndex,pointIndex,isHoverOver) {
- d3.select(".nv-chart-" + id + " .nv-series-" + seriesIndex + " .nv-point-" + pointIndex)
- .classed("hover",isHoverOver);
- };
-
-
- dispatch.on('elementMouseover.point', function(d) {
- if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,true);
- });
-
- dispatch.on('elementMouseout.point', function(d) {
- if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,false);
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- };
-
- chart.size = function(_) {
- if (!arguments.length) return getSize;
- getSize = d3.functor(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.zScale = function(_) {
- if (!arguments.length) return z;
- z = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.sizeDomain = function(_) {
- if (!arguments.length) return sizeDomain;
- sizeDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.sizeRange = function(_) {
- if (!arguments.length) return sizeRange;
- sizeRange = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.forceSize = function(_) {
- if (!arguments.length) return forceSize;
- forceSize = _;
- return chart;
- };
-
- chart.interactive = function(_) {
- if (!arguments.length) return interactive;
- interactive = _;
- return chart;
- };
-
- chart.pointKey = function(_) {
- if (!arguments.length) return pointKey;
- pointKey = _;
- return chart;
- };
-
- chart.pointActive = function(_) {
- if (!arguments.length) return pointActive;
- pointActive = _;
- return chart;
- };
-
- chart.padData = function(_) {
- if (!arguments.length) return padData;
- padData = _;
- return chart;
- };
-
- chart.padDataOuter = function(_) {
- if (!arguments.length) return padDataOuter;
- padDataOuter = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.clipVoronoi= function(_) {
- if (!arguments.length) return clipVoronoi;
- clipVoronoi = _;
- return chart;
- };
-
- chart.useVoronoi= function(_) {
- if (!arguments.length) return useVoronoi;
- useVoronoi = _;
- if (useVoronoi === false) {
- clipVoronoi = false;
- }
- return chart;
- };
-
- chart.clipRadius = function(_) {
- if (!arguments.length) return clipRadius;
- clipRadius = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.shape = function(_) {
- if (!arguments.length) return getShape;
- getShape = _;
- return chart;
- };
-
- chart.onlyCircles = function(_) {
- if (!arguments.length) return onlyCircles;
- onlyCircles = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.singlePoint = function(_) {
- if (!arguments.length) return singlePoint;
- singlePoint = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-nv.models.scatterChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var scatter = nv.models.scatter()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , distX = nv.models.distribution()
- , distY = nv.models.distribution()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 75}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , x = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
- , y = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
- , xPadding = 0
- , yPadding = 0
- , showDistX = false
- , showDistY = false
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , showControls = !!d3.fisheye
- , fisheye = 0
- , pauseFisheye = false
- , tooltips = true
- , tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' }
- , tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' }
- , tooltip = null
- , state = {}
- , defaultState = null
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , noData = "No Data Available."
- , transitionDuration = 250
- ;
-
- scatter
- .xScale(x)
- .yScale(y)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(10)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickPadding(10)
- ;
- distX
- .axis('x')
- ;
- distY
- .axis('y')
- ;
-
- controls.updateState(false);
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0;
-
- var showTooltip = function(e, offsetElement) {
- //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
- leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
- topY = e.pos[1] + ( offsetElement.offsetTop || 0),
- xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
- yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
- if( tooltipX != null )
- nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
- if( tooltipY != null )
- nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
- if( tooltip != null )
- nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- var controlsData = [
- { key: 'Magnify', disabled: true }
- ];
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- // background for pointer events
- gEnter.append('rect').attr('class', 'nvd3 nv-background');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
- gEnter.append('g').attr('class', 'nv-distWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- var legendWidth = (showControls) ? availableWidth / 2 : availableWidth;
- legend.width(legendWidth);
-
- wrap.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth - legendWidth) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- controls.width(180).color(['#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
-
- if (xPadding !== 0)
- scatter.xDomain(null);
-
- if (yPadding !== 0)
- scatter.yDomain(null);
-
- wrap.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
-
- //Adjust for x and y padding
- if (xPadding !== 0) {
- var xRange = x.domain()[1] - x.domain()[0];
- scatter.xDomain([x.domain()[0] - (xPadding * xRange), x.domain()[1] + (xPadding * xRange)]);
- }
-
- if (yPadding !== 0) {
- var yRange = y.domain()[1] - y.domain()[0];
- scatter.yDomain([y.domain()[0] - (yPadding * yRange), y.domain()[1] + (yPadding * yRange)]);
- }
-
- //Only need to update the scatter again if x/yPadding changed the domain.
- if (yPadding !== 0 || xPadding !== 0) {
- wrap.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( xAxis.ticks() && xAxis.ticks().length ? xAxis.ticks() : availableWidth / 100 )
- .tickSize( -availableHeight , 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .call(xAxis);
-
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( yAxis.ticks() && yAxis.ticks().length ? yAxis.ticks() : availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .call(yAxis);
- }
-
-
- if (showDistX) {
- distX
- .getData(scatter.x())
- .scale(x)
- .width(availableWidth)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionX');
- g.select('.nv-distributionX')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- }
-
- if (showDistY) {
- distY
- .getData(scatter.y())
- .scale(y)
- .width(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionY');
- g.select('.nv-distributionY')
- .attr('transform',
- 'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
- //------------------------------------------------------------
-
-
-
-
- if (d3.fisheye) {
- g.select('.nv-background')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g.select('.nv-background').on('mousemove', updateFisheye);
- g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
- scatter.dispatch.on('elementClick.freezeFisheye', function() {
- pauseFisheye = !pauseFisheye;
- });
- }
-
-
- function updateFisheye() {
- if (pauseFisheye) {
- g.select('.nv-point-paths').style('pointer-events', 'all');
- return false;
- }
-
- g.select('.nv-point-paths').style('pointer-events', 'none' );
-
- var mouse = d3.mouse(this);
- x.distortion(fisheye).focus(mouse[0]);
- y.distortion(fisheye).focus(mouse[1]);
-
- g.select('.nv-scatterWrap')
- .call(scatter);
-
- if (showXAxis)
- g.select('.nv-x.nv-axis').call(xAxis);
-
- if (showYAxis)
- g.select('.nv-y.nv-axis').call(yAxis);
-
- g.select('.nv-distributionX')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- g.select('.nv-distributionY')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- fisheye = d.disabled ? 0 : 2.5;
- g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
- g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
- if (d.disabled) {
- x.distortion(fisheye).focus(0);
- y.distortion(fisheye).focus(0);
-
- g.select('.nv-scatterWrap').call(scatter);
- g.select('.nv-x.nv-axis').call(xAxis);
- g.select('.nv-y.nv-axis').call(yAxis);
- } else {
- pauseFisheye = false;
- }
-
- chart.update();
- });
-
- legend.dispatch.on('stateChange', function(newState) {
- state.disabled = newState.disabled;
- dispatch.stateChange(state);
- chart.update();
- });
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', function(d,i) { return e.pos[1] - availableHeight;});
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', e.pos[0] + distX.size());
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
-
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', 0);
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', distY.size());
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.scatter = scatter;
- chart.legend = legend;
- chart.controls = controls;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.distX = distX;
- chart.distY = distY;
-
- d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- distX.color(color);
- distY.color(color);
- return chart;
- };
-
- chart.showDistX = function(_) {
- if (!arguments.length) return showDistX;
- showDistX = _;
- return chart;
- };
-
- chart.showDistY = function(_) {
- if (!arguments.length) return showDistY;
- showDistY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
-
- chart.fisheye = function(_) {
- if (!arguments.length) return fisheye;
- fisheye = _;
- return chart;
- };
-
- chart.xPadding = function(_) {
- if (!arguments.length) return xPadding;
- xPadding = _;
- return chart;
- };
-
- chart.yPadding = function(_) {
- if (!arguments.length) return yPadding;
- yPadding = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltipXContent = function(_) {
- if (!arguments.length) return tooltipX;
- tooltipX = _;
- return chart;
- };
-
- chart.tooltipYContent = function(_) {
- if (!arguments.length) return tooltipY;
- tooltipY = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.scatterPlusLineChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var scatter = nv.models.scatter()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , distX = nv.models.distribution()
- , distY = nv.models.distribution()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 75}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , x = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
- , y = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
- , showDistX = false
- , showDistY = false
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , showControls = !!d3.fisheye
- , fisheye = 0
- , pauseFisheye = false
- , tooltips = true
- , tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' }
- , tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' }
- , tooltip = function(key, x, y, date) { return '<h3>' + key + '</h3>'
- + '<p>' + date + '</p>' }
- , state = {}
- , defaultState = null
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , noData = "No Data Available."
- , transitionDuration = 250
- ;
-
- scatter
- .xScale(x)
- .yScale(y)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(10)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickPadding(10)
- ;
- distX
- .axis('x')
- ;
- distY
- .axis('y')
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0;
-
- var showTooltip = function(e, offsetElement) {
- //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
- leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
- topY = e.pos[1] + ( offsetElement.offsetTop || 0),
- xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
- yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
- if( tooltipX != null )
- nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
- if( tooltipY != null )
- nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
- if( tooltip != null )
- nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e.point.tooltip, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- var controlsData = [
- { key: 'Magnify', disabled: true }
- ];
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = scatter.xScale();
- y = scatter.yScale();
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- // background for pointer events
- gEnter.append('rect').attr('class', 'nvd3 nv-background').style("pointer-events","none");
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
- gEnter.append('g').attr('class', 'nv-regressionLinesWrap');
- gEnter.append('g').attr('class', 'nv-distWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- wrap.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- controls.width(180).color(['#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
- wrap.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
-
- wrap.select('.nv-regressionLinesWrap')
- .attr('clip-path', 'url(#nv-edge-clip-' + scatter.id() + ')');
-
- var regWrap = wrap.select('.nv-regressionLinesWrap').selectAll('.nv-regLines')
- .data(function(d) {return d });
-
- regWrap.enter().append('g').attr('class', 'nv-regLines');
-
- var regLine = regWrap.selectAll('.nv-regLine').data(function(d){return [d]});
- var regLineEnter = regLine.enter()
- .append('line').attr('class', 'nv-regLine')
- .style('stroke-opacity', 0);
-
- regLine
- .transition()
- .attr('x1', x.range()[0])
- .attr('x2', x.range()[1])
- .attr('y1', function(d,i) {return y(x.domain()[0] * d.slope + d.intercept) })
- .attr('y2', function(d,i) { return y(x.domain()[1] * d.slope + d.intercept) })
- .style('stroke', function(d,i,j) { return color(d,j) })
- .style('stroke-opacity', function(d,i) {
- return (d.disabled || typeof d.slope === 'undefined' || typeof d.intercept === 'undefined') ? 0 : 1
- });
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( xAxis.ticks() ? xAxis.ticks() : availableWidth / 100 )
- .tickSize( -availableHeight , 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( yAxis.ticks() ? yAxis.ticks() : availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .call(yAxis);
- }
-
-
- if (showDistX) {
- distX
- .getData(scatter.x())
- .scale(x)
- .width(availableWidth)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionX');
- g.select('.nv-distributionX')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- }
-
- if (showDistY) {
- distY
- .getData(scatter.y())
- .scale(y)
- .width(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionY');
- g.select('.nv-distributionY')
- .attr('transform', 'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
- //------------------------------------------------------------
-
-
-
-
- if (d3.fisheye) {
- g.select('.nv-background')
- .attr('width', availableWidth)
- .attr('height', availableHeight)
- ;
-
- g.select('.nv-background').on('mousemove', updateFisheye);
- g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
- scatter.dispatch.on('elementClick.freezeFisheye', function() {
- pauseFisheye = !pauseFisheye;
- });
- }
-
-
- function updateFisheye() {
- if (pauseFisheye) {
- g.select('.nv-point-paths').style('pointer-events', 'all');
- return false;
- }
-
- g.select('.nv-point-paths').style('pointer-events', 'none' );
-
- var mouse = d3.mouse(this);
- x.distortion(fisheye).focus(mouse[0]);
- y.distortion(fisheye).focus(mouse[1]);
-
- g.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
-
- if (showXAxis)
- g.select('.nv-x.nv-axis').call(xAxis);
-
- if (showYAxis)
- g.select('.nv-y.nv-axis').call(yAxis);
-
- g.select('.nv-distributionX')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- g.select('.nv-distributionY')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- fisheye = d.disabled ? 0 : 2.5;
- g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
- g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
- if (d.disabled) {
- x.distortion(fisheye).focus(0);
- y.distortion(fisheye).focus(0);
-
- g.select('.nv-scatterWrap').call(scatter);
- g.select('.nv-x.nv-axis').call(xAxis);
- g.select('.nv-y.nv-axis').call(yAxis);
- } else {
- pauseFisheye = false;
- }
-
- chart.update();
- });
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', e.pos[1] - availableHeight);
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', e.pos[0] + distX.size());
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
-
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', 0);
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', distY.size());
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.scatter = scatter;
- chart.legend = legend;
- chart.controls = controls;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.distX = distX;
- chart.distY = distY;
-
- d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- distX.color(color);
- distY.color(color);
- return chart;
- };
-
- chart.showDistX = function(_) {
- if (!arguments.length) return showDistX;
- showDistX = _;
- return chart;
- };
-
- chart.showDistY = function(_) {
- if (!arguments.length) return showDistY;
- showDistY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.fisheye = function(_) {
- if (!arguments.length) return fisheye;
- fisheye = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltipXContent = function(_) {
- if (!arguments.length) return tooltipX;
- tooltipX = _;
- return chart;
- };
-
- chart.tooltipYContent = function(_) {
- if (!arguments.length) return tooltipY;
- tooltipY = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.sparkline = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 2, right: 0, bottom: 2, left: 0}
- , width = 400
- , height = 32
- , animate = true
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , color = nv.utils.getColor(['#000'])
- , xDomain
- , yDomain
- , xRange
- , yRange
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x .domain(xDomain || d3.extent(data, getX ))
- .range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || d3.extent(data, getY ))
- .range(yRange || [availableHeight, 0]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-sparkline').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparkline');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
- //------------------------------------------------------------
-
-
- var paths = wrap.selectAll('path')
- .data(function(d) { return [d] });
- paths.enter().append('path');
- paths.exit().remove();
- paths
- .style('stroke', function(d,i) { return d.color || color(d, i) })
- .attr('d', d3.svg.line()
- .x(function(d,i) { return x(getX(d,i)) })
- .y(function(d,i) { return y(getY(d,i)) })
- );
-
-
- // TODO: Add CURRENT data point (Need Min, Mac, Current / Most recent)
- var points = wrap.selectAll('circle.nv-point')
- .data(function(data) {
- var yValues = data.map(function(d, i) { return getY(d,i); });
- function pointIndex(index) {
- if (index != -1) {
- var result = data[index];
- result.pointIndex = index;
- return result;
- } else {
- return null;
- }
- }
- var maxPoint = pointIndex(yValues.lastIndexOf(y.domain()[1])),
- minPoint = pointIndex(yValues.indexOf(y.domain()[0])),
- currentPoint = pointIndex(yValues.length - 1);
- return [minPoint, maxPoint, currentPoint].filter(function (d) {return d != null;});
- });
- points.enter().append('circle');
- points.exit().remove();
- points
- .attr('cx', function(d,i) { return x(getX(d,d.pointIndex)) })
- .attr('cy', function(d,i) { return y(getY(d,d.pointIndex)) })
- .attr('r', 2)
- .attr('class', function(d,i) {
- return getX(d, d.pointIndex) == x.domain()[1] ? 'nv-point nv-currentValue' :
- getY(d, d.pointIndex) == y.domain()[0] ? 'nv-point nv-minValue' : 'nv-point nv-maxValue'
- });
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.animate = function(_) {
- if (!arguments.length) return animate;
- animate = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.sparklinePlus = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var sparkline = nv.models.sparkline();
-
- var margin = {top: 15, right: 100, bottom: 10, left: 50}
- , width = null
- , height = null
- , x
- , y
- , index = []
- , paused = false
- , xTickFormat = d3.format(',r')
- , yTickFormat = d3.format(',.2f')
- , showValue = true
- , alignValue = true
- , rightAlignValue = false
- , noData = "No Data Available."
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this);
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
-
- chart.update = function() { chart(selection) };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- var currentValue = sparkline.y()(data[data.length-1], data.length-1);
-
- //------------------------------------------------------------
-
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = sparkline.xScale();
- y = sparkline.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-sparklineplus').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparklineplus');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-sparklineWrap');
- gEnter.append('g').attr('class', 'nv-valueWrap');
- gEnter.append('g').attr('class', 'nv-hoverArea');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- var sparklineWrap = g.select('.nv-sparklineWrap');
-
- sparkline
- .width(availableWidth)
- .height(availableHeight);
-
- sparklineWrap
- .call(sparkline);
-
- //------------------------------------------------------------
-
-
- var valueWrap = g.select('.nv-valueWrap');
-
- var value = valueWrap.selectAll('.nv-currentValue')
- .data([currentValue]);
-
- value.enter().append('text').attr('class', 'nv-currentValue')
- .attr('dx', rightAlignValue ? -8 : 8)
- .attr('dy', '.9em')
- .style('text-anchor', rightAlignValue ? 'end' : 'start');
-
- value
- .attr('x', availableWidth + (rightAlignValue ? margin.right : 0))
- .attr('y', alignValue ? function(d) { return y(d) } : 0)
- .style('fill', sparkline.color()(data[data.length-1], data.length-1))
- .text(yTickFormat(currentValue));
-
-
-
- gEnter.select('.nv-hoverArea').append('rect')
- .on('mousemove', sparklineHover)
- .on('click', function() { paused = !paused })
- .on('mouseout', function() { index = []; updateValueLine(); });
- //.on('mouseout', function() { index = null; updateValueLine(); });
-
- g.select('.nv-hoverArea rect')
- .attr('transform', function(d) { return 'translate(' + -margin.left + ',' + -margin.top + ')' })
- .attr('width', availableWidth + margin.left + margin.right)
- .attr('height', availableHeight + margin.top);
-
-
-
- function updateValueLine() { //index is currently global (within the chart), may or may not keep it that way
- if (paused) return;
-
- var hoverValue = g.selectAll('.nv-hoverValue').data(index)
-
- var hoverEnter = hoverValue.enter()
- .append('g').attr('class', 'nv-hoverValue')
- .style('stroke-opacity', 0)
- .style('fill-opacity', 0);
-
- hoverValue.exit()
- .transition().duration(250)
- .style('stroke-opacity', 0)
- .style('fill-opacity', 0)
- .remove();
-
- hoverValue
- .attr('transform', function(d) { return 'translate(' + x(sparkline.x()(data[d],d)) + ',0)' })
- .transition().duration(250)
- .style('stroke-opacity', 1)
- .style('fill-opacity', 1);
-
- if (!index.length) return;
-
- hoverEnter.append('line')
- .attr('x1', 0)
- .attr('y1', -margin.top)
- .attr('x2', 0)
- .attr('y2', availableHeight);
-
-
- hoverEnter.append('text').attr('class', 'nv-xValue')
- .attr('x', -6)
- .attr('y', -margin.top)
- .attr('text-anchor', 'end')
- .attr('dy', '.9em')
-
-
- g.select('.nv-hoverValue .nv-xValue')
- .text(xTickFormat(sparkline.x()(data[index[0]], index[0])));
-
- hoverEnter.append('text').attr('class', 'nv-yValue')
- .attr('x', 6)
- .attr('y', -margin.top)
- .attr('text-anchor', 'start')
- .attr('dy', '.9em')
-
- g.select('.nv-hoverValue .nv-yValue')
- .text(yTickFormat(sparkline.y()(data[index[0]], index[0])));
-
- }
-
-
- function sparklineHover() {
- if (paused) return;
-
- var pos = d3.mouse(this)[0] - margin.left;
-
- function getClosestIndex(data, x) {
- var distance = Math.abs(sparkline.x()(data[0], 0) - x);
- var closestIndex = 0;
- for (var i = 0; i < data.length; i++){
- if (Math.abs(sparkline.x()(data[i], i) - x) < distance) {
- distance = Math.abs(sparkline.x()(data[i], i) - x);
- closestIndex = i;
- }
- }
- return closestIndex;
- }
-
- index = [getClosestIndex(data, Math.round(x.invert(pos)))];
-
- updateValueLine();
- }
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.sparkline = sparkline;
-
- d3.rebind(chart, sparkline, 'x', 'y', 'xScale', 'yScale', 'color');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xTickFormat = function(_) {
- if (!arguments.length) return xTickFormat;
- xTickFormat = _;
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return yTickFormat;
- yTickFormat = _;
- return chart;
- };
-
- chart.showValue = function(_) {
- if (!arguments.length) return showValue;
- showValue = _;
- return chart;
- };
-
- chart.alignValue = function(_) {
- if (!arguments.length) return alignValue;
- alignValue = _;
- return chart;
- };
-
- chart.rightAlignValue = function(_) {
- if (!arguments.length) return rightAlignValue;
- rightAlignValue = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
-nv.models.stackedArea = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor() // a function that computes the color
- , id = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't selet one
- , getX = function(d) { return d.x } // accessor to get the x value from a data point
- , getY = function(d) { return d.y } // accessor to get the y value from a data point
- , style = 'stack'
- , offset = 'zero'
- , order = 'default'
- , interpolate = 'linear' // controls the line interpolation
- , clipEdge = false // if true, masks lines within x and y scale
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , scatter = nv.models.scatter()
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'areaClick', 'areaMouseover', 'areaMouseout')
- ;
-
- scatter
- .size(2.2) // default size
- .sizeDomain([2.2,2.2]) // all the same size by default
- ;
-
- /************************************
- * offset:
- * 'wiggle' (stream)
- * 'zero' (stacked)
- * 'expand' (normalize to 100%)
- * 'silhouette' (simple centered)
- *
- * order:
- * 'inside-out' (stream)
- * 'default' (input order)
- ************************************/
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = scatter.xScale();
- y = scatter.yScale();
-
- //------------------------------------------------------------
-
- var dataRaw = data;
- // Injecting point index into each point because d3.layout.stack().out does not give index
- data.forEach(function(aseries, i) {
- aseries.seriesIndex = i;
- aseries.values = aseries.values.map(function(d, j) {
- d.index = j;
- d.seriesIndex = i;
- return d;
- });
- });
-
- var dataFiltered = data.filter(function(series) {
- return !series.disabled;
- });
-
- data = d3.layout.stack()
- .order(order)
- .offset(offset)
- .values(function(d) { return d.values }) //TODO: make values customizeable in EVERY model in this fashion
- .x(getX)
- .y(getY)
- .out(function(d, y0, y) {
- var yHeight = (getY(d) === 0) ? 0 : y;
- d.display = {
- y: yHeight,
- y0: y0
- };
- })
- (dataFiltered);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-stackedarea').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedarea');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-areaWrap');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .x(getX)
- .y(function(d) { return d.display.y + d.display.y0 })
- .forceY([0])
- .color(data.map(function(d,i) {
- return d.color || color(d, d.seriesIndex);
- }));
-
-
- var scatterWrap = g.select('.nv-scatterWrap')
- .datum(data);
-
- scatterWrap.call(scatter);
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
-
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
- var area = d3.svg.area()
- .x(function(d,i) { return x(getX(d,i)) })
- .y0(function(d) {
- return y(d.display.y0)
- })
- .y1(function(d) {
- return y(d.display.y + d.display.y0)
- })
- .interpolate(interpolate);
-
- var zeroArea = d3.svg.area()
- .x(function(d,i) { return x(getX(d,i)) })
- .y0(function(d) { return y(d.display.y0) })
- .y1(function(d) { return y(d.display.y0) });
-
-
- var path = g.select('.nv-areaWrap').selectAll('path.nv-area')
- .data(function(d) { return d });
-
- path.enter().append('path').attr('class', function(d,i) { return 'nv-area nv-area-' + i })
- .attr('d', function(d,i){
- return zeroArea(d.values, d.seriesIndex);
- })
- .on('mouseover', function(d,i) {
- d3.select(this).classed('hover', true);
- dispatch.areaMouseover({
- point: d,
- series: d.key,
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: d.seriesIndex
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.areaMouseout({
- point: d,
- series: d.key,
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: d.seriesIndex
- });
- })
- .on('click', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.areaClick({
- point: d,
- series: d.key,
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: d.seriesIndex
- });
- })
-
- path.exit().remove();
-
- path
- .style('fill', function(d,i){
- return d.color || color(d, d.seriesIndex)
- })
- .style('stroke', function(d,i){ return d.color || color(d, d.seriesIndex) });
- path.transition()
- .attr('d', function(d,i) {
- return area(d.values,i)
- });
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementMouseover.area', function(e) {
- g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', true);
- });
- scatter.dispatch.on('elementMouseout.area', function(e) {
- g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', false);
- });
-
- //============================================================
- //Special offset functions
- chart.d3_stackedOffset_stackPercent = function(stackData) {
- var n = stackData.length, //How many series
- m = stackData[0].length, //how many points per series
- k = 1 / n,
- i,
- j,
- o,
- y0 = [];
-
- for (j = 0; j < m; ++j) { //Looping through all points
- for (i = 0, o = 0; i < dataRaw.length; i++) //looping through series'
- o += getY(dataRaw[i].values[j]) //total value of all points at a certian point in time.
-
- if (o) for (i = 0; i < n; i++)
- stackData[i][j][1] /= o;
- else
- for (i = 0; i < n; i++)
- stackData[i][j][1] = k;
- }
- for (j = 0; j < m; ++j) y0[j] = 0;
- return y0;
- };
-
- });
-
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementClick.area', function(e) {
- dispatch.areaClick(e);
- })
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- //============================================================
-
- //============================================================
- // Global getters and setters
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.scatter = scatter;
-
- d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
- 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi','clipRadius','highlightPoint','clearHighlights');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- }
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.offset = function(_) {
- if (!arguments.length) return offset;
- offset = _;
- return chart;
- };
-
- chart.order = function(_) {
- if (!arguments.length) return order;
- order = _;
- return chart;
- };
-
- //shortcut for offset + order
- chart.style = function(_) {
- if (!arguments.length) return style;
- style = _;
-
- switch (style) {
- case 'stack':
- chart.offset('zero');
- chart.order('default');
- break;
- case 'stream':
- chart.offset('wiggle');
- chart.order('inside-out');
- break;
- case 'stream-center':
- chart.offset('silhouette');
- chart.order('inside-out');
- break;
- case 'expand':
- chart.offset('expand');
- chart.order('default');
- break;
- case 'stack_percent':
- chart.offset(chart.d3_stackedOffset_stackPercent);
- chart.order('default');
- break;
- }
-
- return chart;
- };
-
- chart.interpolate = function(_) {
- if (!arguments.length) return interpolate;
- interpolate = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
-
-nv.models.stackedAreaChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var stacked = nv.models.stackedArea()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , interactiveLayer = nv.interactiveGuideline()
- ;
-
- var margin = {top: 30, right: 25, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.defaultColor() // a function that takes in d, i and returns color
- , showControls = true
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , useInteractiveGuideline = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' on ' + x + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , yAxisTickFormat = d3.format(',.2f')
- , state = { style: stacked.style() }
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , controlWidth = 250
- , cData = ['Stacked','Stream','Expanded']
- , controlLabels = {}
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(stacked.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(stacked.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = stacked.xScale();
- y = stacked.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-stackedAreaChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedAreaChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append("rect").style("opacity",0);
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-stackedWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
- gEnter.append('g').attr('class', 'nv-interactive');
-
- g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- var legendWidth = (showControls) ? availableWidth - controlWidth : availableWidth;
- legend
- .width(legendWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth-legendWidth) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- {
- key: controlLabels.stacked || 'Stacked',
- metaKey: 'Stacked',
- disabled: stacked.style() != 'stack',
- style: 'stack'
- },
- {
- key: controlLabels.stream || 'Stream',
- metaKey: 'Stream',
- disabled: stacked.style() != 'stream',
- style: 'stream'
- },
- {
- key: controlLabels.expanded || 'Expanded',
- metaKey: 'Expanded',
- disabled: stacked.style() != 'expand',
- style: 'expand'
- },
- {
- key: controlLabels.stack_percent || 'Stack %',
- metaKey: 'Stack_Percent',
- disabled: stacked.style() != 'stack_percent',
- style: 'stack_percent'
- }
- ];
-
- controlWidth = (cData.length/3) * 260;
-
- controlsData = controlsData.filter(function(d) {
- return cData.indexOf(d.metaKey) !== -1;
- })
-
- controls
- .width( controlWidth )
- .color(['#444', '#444', '#444']);
-
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .call(controls);
-
-
- if ( margin.top != Math.max(controls.height(), legend.height()) ) {
- margin.top = Math.max(controls.height(), legend.height());
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
-
- g.select('.nv-controlsWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- //------------------------------------------------------------
- //Set up interactive layer
- if (useInteractiveGuideline) {
- interactiveLayer
- .width(availableWidth)
- .height(availableHeight)
- .margin({left: margin.left, top: margin.top})
- .svgContainer(container)
- .xScale(x);
- wrap.select(".nv-interactive").call(interactiveLayer);
- }
-
- stacked
- .width(availableWidth)
- .height(availableHeight)
-
- var stackedWrap = g.select('.nv-stackedWrap')
- .datum(data);
-
- stackedWrap.transition().call(stacked);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
-
- g.select('.nv-x.nv-axis')
- .transition().duration(0)
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks(stacked.offset() == 'wiggle' ? 0 : availableHeight / 36)
- .tickSize(-availableWidth, 0)
- .setTickFormat( (stacked.style() == 'expand' || stacked.style() == 'stack_percent')
- ? d3.format('%') : yAxisTickFormat);
-
- g.select('.nv-y.nv-axis')
- .transition().duration(0)
- .call(yAxis);
- }
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- stacked.dispatch.on('areaClick.toggle', function(e) {
- if (data.filter(function(d) { return !d.disabled }).length === 1)
- data.forEach(function(d) {
- d.disabled = false;
- });
- else
- data.forEach(function(d,i) {
- d.disabled = (i != e.seriesIndex);
- });
-
- state.disabled = data.map(function(d) { return !!d.disabled });
- dispatch.stateChange(state);
-
- chart.update();
- });
-
- legend.dispatch.on('stateChange', function(newState) {
- state.disabled = newState.disabled;
- dispatch.stateChange(state);
- chart.update();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
-
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- stacked.style(d.style);
-
-
- state.style = stacked.style();
- dispatch.stateChange(state);
-
- chart.update();
- });
-
-
- interactiveLayer.dispatch.on('elementMousemove', function(e) {
- stacked.clearHighlights();
- var singlePoint, pointIndex, pointXLocation, allData = [];
- data
- .filter(function(series, i) {
- series.seriesIndex = i;
- return !series.disabled;
- })
- .forEach(function(series,i) {
- pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
- stacked.highlightPoint(i, pointIndex, true);
- var point = series.values[pointIndex];
- if (typeof point === 'undefined') return;
- if (typeof singlePoint === 'undefined') singlePoint = point;
- if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-
- //If we are in 'expand' mode, use the stacked percent value instead of raw value.
- var tooltipValue = (stacked.style() == 'expand') ? point.display.y : chart.y()(point,pointIndex);
- allData.push({
- key: series.key,
- value: tooltipValue,
- color: color(series,series.seriesIndex),
- stackedValue: point.display
- });
- });
-
- allData.reverse();
-
- //Highlight the tooltip entry based on which stack the mouse is closest to.
- if (allData.length > 2) {
- var yValue = chart.yScale().invert(e.mouseY);
- var yDistMax = Infinity, indexToHighlight = null;
- allData.forEach(function(series,i) {
-
- //To handle situation where the stacked area chart is negative, we need to use absolute values
- //when checking if the mouse Y value is within the stack area.
- yValue = Math.abs(yValue);
- var stackedY0 = Math.abs(series.stackedValue.y0);
- var stackedY = Math.abs(series.stackedValue.y);
- if ( yValue >= stackedY0 && yValue <= (stackedY + stackedY0))
- {
- indexToHighlight = i;
- return;
- }
- });
- if (indexToHighlight != null)
- allData[indexToHighlight].highlight = true;
- }
-
- var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
-
- //If we are in 'expand' mode, force the format to be a percentage.
- var valueFormatter = (stacked.style() == 'expand') ?
- function(d,i) {return d3.format(".1%")(d);} :
- function(d,i) {return yAxis.tickFormat()(d); };
- interactiveLayer.tooltip
- .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
- .chartContainer(that.parentNode)
- .enabled(tooltips)
- .valueFormatter(valueFormatter)
- .data(
- {
- value: xValue,
- series: allData
- }
- )();
-
- interactiveLayer.renderGuideLine(pointXLocation);
-
- });
-
- interactiveLayer.dispatch.on("elementMouseout",function(e) {
- dispatch.tooltipHide();
- stacked.clearHighlights();
- });
-
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- if (typeof e.style !== 'undefined') {
- stacked.style(e.style);
- }
-
- chart.update();
- });
-
- });
-
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- stacked.dispatch.on('tooltipShow', function(e) {
- //disable tooltips when value ~= 0
- //// TODO: consider removing points from voronoi that have 0 value instead of this hack
- /*
- if (!Math.round(stacked.y()(e.point) * 100)) { // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
- setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
- return false;
- }
- */
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- stacked.dispatch.on('tooltipHide', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.stacked = stacked;
- chart.legend = legend;
- chart.controls = controls;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.interactiveLayer = interactiveLayer;
-
- d3.rebind(chart, stacked, 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'interactive', 'useVoronoi', 'offset', 'order', 'style', 'clipEdge', 'forceX', 'forceY', 'forceSize', 'interpolate');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- stacked.color(color);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.useInteractiveGuideline = function(_) {
- if(!arguments.length) return useInteractiveGuideline;
- useInteractiveGuideline = _;
- if (_ === true) {
- chart.interactive(false);
- chart.useVoronoi(false);
- }
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- chart.controlsData = function(_) {
- if (!arguments.length) return cData;
- cData = _;
- return chart;
- };
-
- chart.controlLabels = function(_) {
- if (!arguments.length) return controlLabels;
- if (typeof _ !== 'object') return controlLabels;
- controlLabels = _;
- return chart;
- };
-
- yAxis.setTickFormat = yAxis.tickFormat;
-
- yAxis.tickFormat = function(_) {
- if (!arguments.length) return yAxisTickFormat;
- yAxisTickFormat = _;
- return yAxis;
- };
-
-
- //============================================================
-
- return chart;
-}
-})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css
+++ /dev/null
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js
deleted file mode 100755
index e6712797..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-(function(){function t(e,t){return(new Date(t,e+1,0)).getDate()}function n(e,t,n){return function(r,i,s){var o=e(r),u=[];o<r&&t(o);if(s>1)while(o<i){var a=new Date(+o);n(a)%s===0&&u.push(a),t(o)}else while(o<i)u.push(new Date(+o)),t(o);return u}}var e=window.nv||{};e.version="1.1.15b",e.dev=!0,window.nv=e,e.tooltip=e.tooltip||{},e.utils=e.utils||{},e.models=e.models||{},e.charts={},e.graphs=[],e.logs={},e.dispatch=d3.dispatch("render_start","render_end"),e.dev&&(e.dispatch.on("render_start",function(t){e.logs.startTime=+(new Date)}),e.dispatch.on("render_end",function(t){e.logs.endTime=+(new Date),e.logs.totalTime=e.logs.endTime-e.logs.startTime,e.log("total",e.logs.totalTime)})),e.log=function(){if(e.dev&&console.log&&console.log.apply)console.log.apply(console,arguments);else if(e.dev&&typeof console.log=="function"&&Function.prototype.bind){var t=Function.prototype.bind.call(console.log,console);t.apply(console,arguments)}return arguments[arguments.length-1]},e.render=function(n){n=n||1,e.render.active=!0,e.dispatch.render_start(),setTimeout(function(){var t,r;for(var i=0;i<n&&(r=e.render.queue[i]);i++)t=r.generate(),typeof r.callback==typeof Function&&r.callback(t),e.graphs.push(t);e.render.queue.splice(0,i),e.render.queue.length?setTimeout(arguments.callee,0):(e.dispatch.render_end(),e.render.active=!1)},0)},e.render.active=!1,e.render.queue=[],e.addGraph=function(t){typeof arguments[0]==typeof Function&&(t={generate:arguments[0],callback:arguments[1]}),e.render.queue.push(t),e.render.active||e.render()},e.identity=function(e){return e},e.strip=function(e){return e.replace(/(\s|&)/g,"")},d3.time.monthEnd=function(e){return new Date(e.getFullYear(),e.getMonth(),0)},d3.time.monthEnds=n(d3.time.monthEnd,function(e){e.setUTCDate(e.getUTCDate()+1),e.setDate(t(e.getMonth()+1,e.getFullYear()))},function(e){return e.getMonth()}),e.interactiveGuideline=function(){"use strict";function c(o){o.each(function(o){function g(){var e=d3.mouse(this),n=e[0],r=e[1],o=!0,a=!1;l&&(n=d3.event.offsetX,r=d3.event.offsetY,d3.event.target.tagName!=="svg"&&(o=!1),d3.event.target.className.baseVal.match("nv-legend")&&(a=!0)),o&&(n-=i.left,r-=i.top);if(n<0||r<0||n>p||r>d||d3.event.relatedTarget&&d3.event.relatedTarget.ownerSVGElement===undefined||a){if(l&&d3.event.relatedTarget&&d3.event.relatedTarget.ownerSVGElement===undefined&&d3.event.relatedTarget.className.match(t.nvPointerEventsClass))return;u.elementMouseout({mouseX:n,mouseY:r}),c.renderGuideLine(null);return}var f=s.invert(n);u.elementMousemove({mouseX:n,mouseY:r,pointXValue:f}),d3.event.type==="dblclick"&&u.elementDblclick({mouseX:n,mouseY:r,pointXValue:f})}var h=d3.select(this),p=n||960,d=r||400,v=h.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([o]),m=v.enter().append("g").attr("class"," nv-wrap nv-interactiveLineLayer");m.append("g").attr("class","nv-interactiveGuideLine");if(!f)return;f.on("mousemove",g,!0).on("mouseout",g,!0).on("dblclick",g),c.renderGuideLine=function(t){if(!a)return;var n=v.select(".nv-interactiveGuideLine").selectAll("line").data(t!=null?[e.utils.NaNtoZero(t)]:[],String);n.enter().append("line").attr("class","nv-guideline").attr("x1",function(e){return e}).attr("x2",function(e){return e}).attr("y1",d).attr("y2",0),n.exit().remove()}})}var t=e.models.tooltip(),n=null,r=null,i={left:0,top:0},s=d3.scale.linear(),o=d3.scale.linear(),u=d3.dispatch("elementMousemove","elementMouseout","elementDblclick"),a=!0,f=null,l=navigator.userAgent.indexOf("MSIE")!==-1;return c.dispatch=u,c.tooltip=t,c.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.left=typeof e.left!="undefined"?e.left:i.left,c):i},c.width=function(e){return arguments.length?(n=e,c):n},c.height=function(e){return arguments.length?(r=e,c):r},c.xScale=function(e){return arguments.length?(s=e,c):s},c.showGuideLine=function(e){return arguments.length?(a=e,c):a},c.svgContainer=function(e){return arguments.length?(f=e,c):f},c},e.interactiveBisect=function(e,t,n){"use strict";if(!e instanceof Array)return null;typeof n!="function"&&(n=function(e,t){return e.x});var r=d3.bisector(n).left,i=d3.max([0,r(e,t)-1]),s=n(e[i],i);typeof s=="undefined"&&(s=i);if(s===t)return i;var o=d3.min([i+1,e.length-1]),u=n(e[o],o);return typeof u=="undefined"&&(u=o),Math.abs(u-t)>=Math.abs(s-t)?i:o},e.nearestValueIndex=function(e,t,n){"use strict";var r=Infinity,i=null;return e.forEach(function(e,s){var o=Math.abs(t-e);o<=r&&o<n&&(r=o,i=s)}),i},function(){"use strict";window.nv.tooltip={},window.nv.models.tooltip=function(){function y(){if(a){var e=d3.select(a);e.node().tagName!=="svg"&&(e=e.select("svg"));var t=e.node()?e.attr("viewBox"):null;if(t){t=t.split(" ");var n=parseInt(e.style("width"))/t[2];l.left=l.left*n,l.top=l.top*n}}}function b(e){var t;a?t=d3.select(a):t=d3.select("body");var n=t.select(".nvtooltip");return n.node()===null&&(n=t.append("div").attr("class","nvtooltip "+(u?u:"xy-tooltip")).attr("id",h)),n.node().innerHTML=e,n.style("top",0).style("left",0).style("opacity",0),n.selectAll("div, table, td, tr").classed(p,!0),n.classed(p,!0),n.node()}function w(){if(!c)return;if(!g(n))return;y();var t=l.left,u=o!=null?o:l.top,h=b(m(n));f=h;if(a){var p=a.getElementsByTagName("svg")[0],d=p?p.getBoundingClientRect():a.getBoundingClientRect(),v={left:0,top:0};if(p){var E=p.getBoundingClientRect(),S=a.getBoundingClientRect(),x=E.top;if(x<0){var T=a.getBoundingClientRect();x=Math.abs(x)>T.height?0:x}v.top=Math.abs(x-S.top),v.left=Math.abs(E.left-S.left)}t+=a.offsetLeft+v.left-2*a.scrollLeft,u+=a.offsetTop+v.top-2*a.scrollTop}return s&&s>0&&(u=Math.floor(u/s)*s),e.tooltip.calcTooltipPosition([t,u],r,i,h),w}var t=null,n=null,r="w",i=50,s=25,o=null,u=null,a=null,f=null,l={left:null,top:null},c=!0,h="nvtooltip-"+Math.floor(Math.random()*1e5),p="nv-pointer-events-none",d=function(e,t){return e},v=function(e){return e},m=function(e){if(t!=null)return t;if(e==null)return"";var n=d3.select(document.createElement("table")),r=n.selectAll("thead").data([e]).enter().append("thead");r.append("tr").append("td").attr("colspan",3).append("strong").classed("x-value",!0).html(v(e.value));var i=n.selectAll("tbody").data([e]).enter().append("tbody"),s=i.selectAll("tr").data(function(e){return e.series}).enter().append("tr").classed("highlight",function(e){return e.highlight});s.append("td").classed("legend-color-guide",!0).append("div").style("background-color",function(e){return e.color}),s.append("td").classed("key",!0).html(function(e){return e.key}),s.append("td").classed("value",!0).html(function(e,t){return d(e.value,t)}),s.selectAll("td").each(function(e){if(e.highlight){var t=d3.scale.linear().domain([0,1]).range(["#fff",e.color]),n=.6;d3.select(this).style("border-bottom-color",t(n)).style("border-top-color",t(n))}});var o=n.node().outerHTML;return e.footer!==undefined&&(o+="<div class='footer'>"+e.footer+"</div>"),o},g=function(e){return e&&e.series&&e.series.length>0?!0:!1};return w.nvPointerEventsClass=p,w.content=function(e){return arguments.length?(t=e,w):t},w.tooltipElem=function(){return f},w.contentGenerator=function(e){return arguments.length?(typeof e=="function"&&(m=e),w):m},w.data=function(e){return arguments.length?(n=e,w):n},w.gravity=function(e){return arguments.length?(r=e,w):r},w.distance=function(e){return arguments.length?(i=e,w):i},w.snapDistance=function(e){return arguments.length?(s=e,w):s},w.classes=function(e){return arguments.length?(u=e,w):u},w.chartContainer=function(e){return arguments.length?(a=e,w):a},w.position=function(e){return arguments.length?(l.left=typeof e.left!="undefined"?e.left:l.left,l.top=typeof e.top!="undefined"?e.top:l.top,w):l},w.fixedTop=function(e){return arguments.length?(o=e,w):o},w.enabled=function(e){return arguments.length?(c=e,w):c},w.valueFormatter=function(e){return arguments.length?(typeof e=="function"&&(d=e),w):d},w.headerFormatter=function(e){return arguments.length?(typeof e=="function"&&(v=e),w):v},w.id=function(){return h},w},e.tooltip.show=function(t,n,r,i,s,o){var u=document.createElement("div");u.className="nvtooltip "+(o?o:"xy-tooltip");var a=s;if(!s||s.tagName.match(/g|svg/i))a=document.getElementsByTagName("body")[0];u.style.left=0,u.style.top=0,u.style.opacity=0,u.innerHTML=n,a.appendChild(u),s&&(t[0]=t[0]-s.scrollLeft,t[1]=t[1]-s.scrollTop),e.tooltip.calcTooltipPosition(t,r,i,u)},e.tooltip.findFirstNonSVGParent=function(e){while(e.tagName.match(/^g|svg$/i)!==null)e=e.parentNode;return e},e.tooltip.findTotalOffsetTop=function(e,t){var n=t;do isNaN(e.offsetTop)||(n+=e.offsetTop);while(e=e.offsetParent);return n},e.tooltip.findTotalOffsetLeft=function(e,t){var n=t;do isNaN(e.offsetLeft)||(n+=e.offsetLeft);while(e=e.offsetParent);return n},e.tooltip.calcTooltipPosition=function(t,n,r,i){var s=parseInt(i.offsetHeight),o=parseInt(i.offsetWidth),u=e.utils.windowSize().width,a=e.utils.windowSize().height,f=window.pageYOffset,l=window.pageXOffset,c,h;a=window.innerWidth>=document.body.scrollWidth?a:a-16,u=window.innerHeight>=document.body.scrollHeight?u:u-16,n=n||"s",r=r||20;var p=function(t){return e.tooltip.findTotalOffsetTop(t,h)},d=function(t){return e.tooltip.findTotalOffsetLeft(t,c)};switch(n){case"e":c=t[0]-o-r,h=t[1]-s/2;var v=d(i),m=p(i);v<l&&(c=t[0]+r>l?t[0]+r:l-v+c),m<f&&(h=f-m+h),m+s>f+a&&(h=f+a-m+h-s);break;case"w":c=t[0]+r,h=t[1]-s/2;var v=d(i),m=p(i);v+o>u&&(c=t[0]-o-r),m<f&&(h=f+5),m+s>f+a&&(h=f+a-m+h-s);break;case"n":c=t[0]-o/2-5,h=t[1]+r;var v=d(i),m=p(i);v<l&&(c=l+5),v+o>u&&(c=c-o/2+5),m+s>f+a&&(h=f+a-m+h-s);break;case"s":c=t[0]-o/2,h=t[1]-s-r;var v=d(i),m=p(i);v<l&&(c=l+5),v+o>u&&(c=c-o/2+5),f>m&&(h=f);break;case"none":c=t[0],h=t[1]-r;var v=d(i),m=p(i)}return i.style.left=c+"px",i.style.top=h+"px",i.style.opacity=1,i.style.position="absolute",i},e.tooltip.cleanup=function(){var e=document.getElementsByClassName("nvtooltip"),t=[];while(e.length)t.push(e[0]),e[0].style.transitionDelay="0 !important",e[0].style.opacity=0,e[0].className="nvtooltip-pending-removal";setTimeout(function(){while(t.length){var e=t.pop();e.parentNode.removeChild(e)}},500)}}(),e.utils.windowSize=function(){var e={width:640,height:480};return document.body&&document.body.offsetWidth&&(e.width=document.body.offsetWidth,e.height=document.body.offsetHeight),document.compatMode=="CSS1Compat"&&document.documentElement&&document.documentElement.offsetWidth&&(e.width=document.documentElement.offsetWidth,e.height=document.documentElement.offsetHeight),window.innerWidth&&window.innerHeight&&(e.width=window.innerWidth,e.height=window.innerHeight),e},e.utils.windowResize=function(e){if(e===undefined)return;var t=window.onresize;window.onresize=function(n){typeof t=="function"&&t(n),e(n)}},e.utils.getColor=function(t){return arguments.length?Object.prototype.toString.call(t)==="[object Array]"?function(e,n){return e.color||t[n%t.length]}:t:e.utils.defaultColor()},e.utils.defaultColor=function(){var e=d3.scale.category20().range();return function(t,n){return t.color||e[n%e.length]}},e.utils.customTheme=function(e,t,n){t=t||function(e){return e.key},n=n||d3.scale.category20().range();var r=n.length;return function(i,s){var o=t(i);return r||(r=n.length),typeof e[o]!="undefined"?typeof e[o]=="function"?e[o]():e[o]:n[--r]}},e.utils.pjax=function(t,n){function r(r){d3.html(r,function(r){var i=d3.select(n).node();i.parentNode.replaceChild(d3.select(r).select(n).node(),i),e.utils.pjax(t,n)})}d3.selectAll(t).on("click",function(){history.pushState(this.href,this.textContent,this.href),r(this.href),d3.event.preventDefault()}),d3.select(window).on("popstate",function(){d3.event.state&&r(d3.event.state)})},e.utils.calcApproxTextWidth=function(e){if(e instanceof d3.selection){var t=parseInt(e.style("font-size").replace("px","")),n=e.text().length;return n*t*.5}return 0},e.utils.NaNtoZero=function(e){return typeof e!="number"||isNaN(e)||e===null||e===Infinity?0:e},e.utils.optionsFunc=function(e){return e&&d3.map(e).forEach(function(e,t){typeof this[e]=="function"&&this[e](t)}.bind(this)),this},e.models.axis=function(){"use strict";function m(e){return e.each(function(e){var i=d3.select(this),m=i.selectAll("g.nv-wrap.nv-axis").data([e]),g=m.enter().append("g").attr("class","nvd3 nv-wrap nv-axis"),y=g.append("g"),b=m.select("g");p!==null?t.ticks(p):(t.orient()=="top"||t.orient()=="bottom")&&t.ticks(Math.abs(s.range()[1]-s.range()[0])/100),b.transition().call(t),v=v||t.scale();var w=t.tickFormat();w==null&&(w=v.tickFormat());var E=b.selectAll("text.nv-axislabel").data([o||null]);E.exit().remove();switch(t.orient()){case"top":E.enter().append("text").attr("class","nv-axislabel");var S=s.range().length==2?s.range()[1]:s.range()[s.range().length-1]+(s.range()[1]-s.range()[0]);E.attr("text-anchor","middle").attr("y",0).attr("x",S/2);if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text"),x.exit().remove(),x.attr("transform",function(e,t){return"translate("+s(e)+",0)"}).select("text").attr("dy","-0.5em").attr("y",-t.tickPadding()).attr("text-anchor","middle").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate("+s.range()[t]+",0)"})}break;case"bottom":var T=36,N=30,C=b.selectAll("g").select("text");if(f%360){C.each(function(e,t){var n=this.getBBox().width;n>N&&(N=n)});var k=Math.abs(Math.sin(f*Math.PI/180)),T=(k?k*N:N)+30;C.attr("transform",function(e,t,n){return"rotate("+f+" 0,0)"}).style("text-anchor",f%360>0?"start":"end")}E.enter().append("text").attr("class","nv-axislabel");var S=s.range().length==2?s.range()[1]:s.range()[s.range().length-1]+(s.range()[1]-s.range()[0]);E.attr("text-anchor","middle").attr("y",T).attr("x",S/2);if(u){var x=m.selectAll("g.nv-axisMaxMin").data([s.domain()[0],s.domain()[s.domain().length-1]]);x.enter().append("g").attr("class","nv-axisMaxMin").append("text"),x.exit().remove(),x.attr("transform",function(e,t){return"translate("+(s(e)+(h?s.rangeBand()/2:0))+",0)"}).select("text").attr("dy",".71em").attr("y",t.tickPadding()).attr("transform",function(e,t,n){return"rotate("+f+" 0,0)"}).style("text-anchor",f?f%360>0?"start":"end":"middle").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate("+(s(e)+(h?s.rangeBand()/2:0))+",0)"})}c&&C.attr("transform",function(e,t){return"translate(0,"+(t%2==0?"0":"12")+")"});break;case"right":E.enter().append("text").attr("class","nv-axislabel"),E.style("text-anchor",l?"middle":"begin").attr("transform",l?"rotate(90)":"").attr("y",l?-Math.max(n.right,r)+12:-10).attr("x",l?s.range()[0]/2:t.tickPadding());if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(e,t){return"translate(0,"+s(e)+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",t.tickPadding()).style("text-anchor","start").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate(0,"+s.range()[t]+")"}).select("text").style("opacity",1)}break;case"left":E.enter().append("text").attr("class","nv-axislabel"),E.style("text-anchor",l?"middle":"end").attr("transform",l?"rotate(-90)":"").attr("y",l?-Math.max(n.left,r)+d:-10).attr("x",l?-s.range()[0]/2:-t.tickPadding());if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(e,t){return"translate(0,"+v(e)+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",-t.tickPadding()).attr("text-anchor","end").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate(0,"+s.range()[t]+")"}).select("text").style("opacity",1)}}E.text(function(e){return e}),u&&(t.orient()==="left"||t.orient()==="right")&&(b.selectAll("g").each(function(e,t){d3.select(this).select("text").attr("opacity",1);if(s(e)<s.range()[1]+10||s(e)>s.range()[0]-10)(e>1e-10||e<-1e-10)&&d3.select(this).attr("opacity",0),d3.select(this).select("text").attr("opacity",0)}),s.domain()[0]==s.domain()[1]&&s.domain()[0]==0&&m.selectAll("g.nv-axisMaxMin").style("opacity",function(e,t){return t?0:1}));if(u&&(t.orient()==="top"||t.orient()==="bottom")){var L=[];m.selectAll("g.nv-axisMaxMin").each(function(e,t){try{t?L.push(s(e)-this.getBBox().width-4):L.push(s(e)+this.getBBox().width+4)}catch(n){t?L.push(s(e)-4):L.push(s(e)+4)}}),b.selectAll("g").each(function(e,t){if(s(e)<L[0]||s(e)>L[1])e>1e-10||e<-1e-10?d3.select(this).remove():d3.select(this).select("text").remove()})}a&&b.selectAll(".tick").filter(function(e){return!parseFloat(Math.round(e.__data__*1e5)/1e6)&&e.__data__!==undefined}).classed("zero",!0),v=s.copy()}),m}var t=d3.svg.axis(),n={top:0,right:0,bottom:0,left:0},r=75,i=60,s=d3.scale.linear(),o=null,u=!0,a=!0,f=0,l=!0,c=!1,h=!1,p=null,d=12;t.scale(s).orient("bottom").tickFormat(function(e){return e});var v;return m.axis=t,d3.rebind(m,t,"orient","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"),d3.rebind(m,s,"domain","range","rangeBand","rangeBands"),m.options=e.utils.optionsFunc.bind(m),m.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,m):n},m.width=function(e){return arguments.length?(r=e,m):r},m.ticks=function(e){return arguments.length?(p=e,m):p},m.height=function(e){return arguments.length?(i=e,m):i},m.axisLabel=function(e){return arguments.length?(o=e,m):o},m.showMaxMin=function(e){return arguments.length?(u=e,m):u},m.highlightZero=function(e){return arguments.length?(a=e,m):a},m.scale=function(e){return arguments.length?(s=e,t.scale(s),h=typeof s.rangeBands=="function",d3.rebind(m,s,"domain","range","rangeBand","rangeBands"),m):s},m.rotateYLabel=function(e){return arguments.length?(l=e,m):l},m.rotateLabels=function(e){return arguments.length?(f=e,m):f},m.staggerLabels=function(e){return arguments.length?(c=e,m):c},m.axisLabelDistance=function(e){return arguments.length?(d=e,m):d},m},e.models.bullet=function(){"use strict";function m(e){return e.each(function(e,n){var p=c-t.left-t.right,m=h-t.top-t.bottom,g=d3.select(this),y=i.call(this,e,n).slice().sort(d3.descending),b=s.call(this,e,n).slice().sort(d3.descending),w=o.call(this,e,n).slice().sort(d3.descending),E=u.call(this,e,n).slice(),S=a.call(this,e,n).slice(),x=f.call(this,e,n).slice(),T=d3.scale.linear().domain(d3.extent(d3.merge([l,y]))).range(r?[p,0]:[0,p]),N=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(T.range());this.__chart__=T;var C=d3.min(y),k=d3.max(y),L=y[1],A=g.selectAll("g.nv-wrap.nv-bullet").data([e]),O=A.enter().append("g").attr("class","nvd3 nv-wrap nv-bullet"),M=O.append("g"),_=A.select("g");M.append("rect").attr("class","nv-range nv-rangeMax"),M.append("rect").attr("class","nv-range nv-rangeAvg"),M.append("rect").attr("class","nv-range nv-rangeMin"),M.append("rect").attr("class","nv-measure"),M.append("path").attr("class","nv-markerTriangle"),A.attr("transform","translate("+t.left+","+t.top+")");var D=function(e){return Math.abs(N(e)-N(0))},P=function(e){return Math.abs(T(e)-T(0))},H=function(e){return e<0?N(e):N(0)},B=function(e){return e<0?T(e):T(0)};_.select("rect.nv-rangeMax").attr("height",m).attr("width",P(k>0?k:C)).attr("x",B(k>0?k:C)).datum(k>0?k:C),_.select("rect.nv-rangeAvg").attr("height",m).attr("width",P(L)).attr("x",B(L)).datum(L),_.select("rect.nv-rangeMin").attr("height",m).attr("width",P(k)).attr("x",B(k)).attr("width",P(k>0?C:k)).attr("x",B(k>0?C:k)).datum(k>0?C:k),_.select("rect.nv-measure").style("fill",d).attr("height",m/3).attr("y",m/3).attr("width",w<0?T(0)-T(w[0]):T(w[0])-T(0)).attr("x",B(w)).on("mouseover",function(){v.elementMouseover({value:w[0],label:x[0]||"Current",pos:[T(w[0]),m/2]})}).on("mouseout",function(){v.elementMouseout({value:w[0],label:x[0]||"Current"})});var j=m/6;b[0]?_.selectAll("path.nv-markerTriangle").attr("transform",function(e){return"translate("+T(b[0])+","+m/2+")"}).attr("d","M0,"+j+"L"+j+","+ -j+" "+ -j+","+ -j+"Z").on("mouseover",function(){v.elementMouseover({value:b[0],label:S[0]||"Previous",pos:[T(b[0]),m/2]})}).on("mouseout",function(){v.elementMouseout({value:b[0],label:S[0]||"Previous"})}):_.selectAll("path.nv-markerTriangle").remove(),A.selectAll(".nv-range").on("mouseover",function(e,t){var n=E[t]||(t?t==1?"Mean":"Minimum":"Maximum");v.elementMouseover({value:e,label:n,pos:[T(e),m/2]})}).on("mouseout",function(e,t){var n=E[t]||(t?t==1?"Mean":"Minimum":"Maximum");v.elementMouseout({value:e,label:n})})}),m}var t={top:0,right:0,bottom:0,left:0},n="left",r=!1,i=function(e){return e.ranges},s=function(e){return e.markers},o=function(e){return e.measures},u=function(e){return e.rangeLabels?e.rangeLabels:[]},a=function(e){return e.markerLabels?e.markerLabels:[]},f=function(e){return e.measureLabels?e.measureLabels:[]},l=[0],c=380,h=30,p=null,d=e.utils.getColor(["#1f77b4"]),v=d3.dispatch("elementMouseover","elementMouseout");return m.dispatch=v,m.options=e.utils.optionsFunc.bind(m),m.orient=function(e){return arguments.length?(n=e,r=n=="right"||n=="bottom",m):n},m.ranges=function(e){return arguments.length?(i=e,m):i},m.markers=function(e){return arguments.length?(s=e,m):s},m.measures=function(e){return arguments.length?(o=e,m):o},m.forceX=function(e){return arguments.length?(l=e,m):l},m.width=function(e){return arguments.length?(c=e,m):c},m.height=function(e){return arguments.length?(h=e,m):h},m.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,m):t},m.tickFormat=function(e){return arguments.length?(p=e,m):p},m.color=function(t){return arguments.length?(d=e.utils.getColor(t),m):d},m},e.models.bulletChart=function(){"use strict";function m(e){return e.each(function(n,h){var g=d3.select(this),y=(a||parseInt(g.style("width"))||960)-i.left-i.right,b=f-i.top-i.bottom,w=this;m.update=function(){m(e)},m.container=this;if(!n||!s.call(this,n,h)){var E=g.selectAll(".nv-noData").data([p]);return E.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),E.attr("x",i.left+y/2).attr("y",18+i.top+b/2).text(function(e){return e}),m}g.selectAll(".nv-noData").remove();var S=s.call(this,n,h).slice().sort(d3.descending),x=o.call(this,n,h).slice().sort(d3.descending),T=u.call(this,n,h).slice().sort(d3.descending),N=g.selectAll("g.nv-wrap.nv-bulletChart").data([n]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-bulletChart"),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-bulletWrap"),k.append("g").attr("class","nv-titles"),N.attr("transform","translate("+i.left+","+i.top+")");var A=d3.scale.linear().domain([0,Math.max(S[0],x[0],T[0])]).range(r?[y,0]:[0,y]),O=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(A.range());this.__chart__=A;var M=function(e){return Math.abs(O(e)-O(0))},_=function(e){return Math.abs(A(e)-A(0))},D=k.select(".nv-titles").append("g").attr("text-anchor","end").attr("transform","translate(-6,"+(f-i.top-i.bottom)/2+")");D.append("text").attr("class","nv-title").text(function(e){return e.title}),D.append("text").attr("class","nv-subtitle").attr("dy","1em").text(function(e){return e.subtitle}),t.width(y).height(b);var P=L.select(".nv-bulletWrap");d3.transition(P).call(t);var H=l||A.tickFormat(y/100),B=L.selectAll("g.nv-tick").data(A.ticks(y/50),function(e){return this.textContent||H(e)}),j=B.enter().append("g").attr("class","nv-tick").attr("transform",function(e){return"translate("+O(e)+",0)"}).style("opacity",1e-6);j.append("line").attr("y1",b).attr("y2",b*7/6),j.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",b*7/6).text(H);var F=d3.transition(B).attr("transform",function(e){return"translate("+A(e)+",0)"}).style("opacity",1);F.select("line").attr("y1",b).attr("y2",b*7/6),F.select("text").attr("y",b*7/6),d3.transition(B.exit()).attr("transform",function(e){return"translate("+A(e)+",0)"}).style("opacity",1e-6).remove(),d.on("tooltipShow",function(e){e.key=n.title,c&&v(e,w.parentNode)})}),d3.timer.flush(),m}var t=e.models.bullet(),n="left",r=!1,i={top:5,right:40,bottom:20,left:120},s=function(e){return e.ranges},o=function(e){return e.markers},u=function(e){return e.measures},a=null,f=55,l=null,c=!0,h=function(e,t,n,r,i){return"<h3>"+t+"</h3>"+"<p>"+n+"</p>"},p="No Data Available.",d=d3.dispatch("tooltipShow","tooltipHide"),v=function(t,n){var r=t.pos[0]+(n.offsetLeft||0)+i.left,s=t.pos[1]+(n.offsetTop||0)+i.top,o=h(t.key,t.label,t.value,t,m);e.tooltip.show([r,s],o,t.value<0?"e":"w",null,n)};return t.dispatch.on("elementMouseover.tooltip",function(e){d.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){d.tooltipHide(e)}),d.on("tooltipHide",function(){c&&e.tooltip.cleanup()}),m.dispatch=d,m.bullet=t,d3.rebind(m,t,"color"),m.options=e.utils.optionsFunc.bind(m),m.orient=function(e){return arguments.length?(n=e,r=n=="right"||n=="bottom",m):n},m.ranges=function(e){return arguments.length?(s=e,m):s},m.markers=function(e){return arguments.length?(o=e,m):o},m.measures=function(e){return arguments.length?(u=e,m):u},m.width=function(e){return arguments.length?(a=e,m):a},m.height=function(e){return arguments.length?(f=e,m):f},m.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.right=typeof e.right!="undefined"?e.right:i.right,i.bottom=typeof e.bottom!="undefined"?e.bottom:i.bottom,i.left=typeof e.left!="undefined"?e.left:i.left,m):i},m.tickFormat=function(e){return arguments.length?(l=e,m):l},m.tooltips=function(e){return arguments.length?(c=e,m):c},m.tooltipContent=function(e){return arguments.length?(h=e,m):h},m.noData=function(e){return arguments.length?(p=e,m):p},m},e.models.cumulativeLineChart=function(){"use strict";function _(b){return b.each(function(b){function q(e,t){d3.select(_.container).style("cursor","ew-resize")}function R(e,t){O.x=d3.event.x,O.i=Math.round(A.invert(O.x)),rt()}function U(e,t){d3.select(_.container).style("cursor","auto"),x.index=O.i,k.stateChange(x)}function rt(){nt.data([O]);var e=_.transitionDuration();_.transitionDuration(0),_.update(),_.transitionDuration(e)}var P=d3.select(this).classed("nv-chart-"+S,!0),H=this,B=(f||parseInt(P.style("width"))||960)-u.left-u.right,j=(l||parseInt(P.style("height"))||400)-u.top-u.bottom;_.update=function(){P.transition().duration(L).call(_)},_.container=this,x.disabled=b.map(function(e){return!!e.disabled});if(!T){var F;T={};for(F in x)x[F]instanceof Array?T[F]=x[F].slice(0):T[F]=x[F]}var I=d3.behavior.drag().on("dragstart",q).on("drag",R).on("dragend",U);if(!b||!b.length||!b.filter(function(e){return e.values.length}).length){var z=P.selectAll(".nv-noData").data([N]);return z.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),z.attr("x",u.left+B/2).attr("y",u.top+j/2).text(function(e){return e}),_}P.selectAll(".nv-noData").remove(),w=t.xScale(),E=t.yScale();if(!y){var W=b.filter(function(e){return!e.disabled}).map(function(e,n){var r=d3.extent(e.values,t.y());return r[0]<-0.95&&(r[0]=-0.95),[(r[0]-r[1])/(1+r[1]),(r[1]-r[0])/(1+r[0])]}),X=[d3.min(W,function(e){return e[0]}),d3.max(W,function(e){return e[1]})];t.yDomain(X)}else t.yDomain(null);A.domain([0,b[0].values.length-1]).range([0,B]).clamp(!0);var b=D(O.i,b),V=g?"none":"all",$=P.selectAll("g.nv-wrap.nv-cumulativeLine").data([b]),J=$.enter().append("g").attr("class","nvd3 nv-wrap nv-cumulativeLine").append("g"),K=$.select("g");J.append("g").attr("class","nv-interactive"),J.append("g").attr("class","nv-x nv-axis").style("pointer-events","none"),J.append("g").attr("class","nv-y nv-axis"),J.append("g").attr("class","nv-background"),J.append("g").attr("class","nv-linesWrap").style("pointer-events",V),J.append("g").attr("class","nv-avgLinesWrap").style("pointer-events","none"),J.append("g").attr("class","nv-legendWrap"),J.append("g").attr("class","nv-controlsWrap"),c&&(i.width(B),K.select(".nv-legendWrap").datum(b).call(i),u.top!=i.height()&&(u.top=i.height(),j=(l||parseInt(P.style("height"))||400)-u.top-u.bottom),K.select(".nv-legendWrap").attr("transform","translate(0,"+ -u.top+")"));if(m){var Q=[{key:"Re-scale y-axis",disabled:!y}];s.width(140).color(["#444","#444","#444"]),K.select(".nv-controlsWrap").datum(Q).attr("transform","translate(0,"+ -u.top+")").call(s)}$.attr("transform","translate("+u.left+","+u.top+")"),d&&K.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)");var G=b.filter(function(e){return e.tempDisabled});$.select(".tempDisabled").remove(),G.length&&$.append("text").attr("class","tempDisabled").attr("x",B/2).attr("y","-.71em").style("text-anchor","end").text(G.map(function(e){return e.key}).join(", ")+" values cannot be calculated for this time period."),g&&(o.width(B).height(j).margin({left:u.left,top:u.top}).svgContainer(P).xScale(w),$.select(".nv-interactive").call(o)),J.select(".nv-background").append("rect"),K.select(".nv-background rect").attr("width",B).attr("height",j),t.y(function(e){return e.display.y}).width(B).height(j).color(b.map(function(e,t){return e.color||a(e,t)}).filter(function(e,t){return!b[t].disabled&&!b[t].tempDisabled}));var Y=K.select(".nv-linesWrap").datum(b.filter(function(e){return!e.disabled&&!e.tempDisabled}));Y.call(t),b.forEach(function(e,t){e.seriesIndex=t});var Z=b.filter(function(e){return!e.disabled&&!!C(e)}),et=K.select(".nv-avgLinesWrap").selectAll("line").data(Z,function(e){return e.key}),tt=function(e){var t=E(C(e));return t<0?0:t>j?j:t};et.enter().append("line").style("stroke-width",2).style("stroke-dasharray","10,10").style("stroke",function(e,n){return t.color()(e,e.seriesIndex)}).attr("x1",0).attr("x2",B).attr("y1",tt).attr("y2",tt),et.style("stroke-opacity",function(e){var t=E(C(e));return t<0||t>j?0:1}).attr("x1",0).attr("x2",B).attr("y1",tt).attr("y2",tt),et.exit().remove();var nt=Y.selectAll(".nv-indexLine").data([O]);nt.enter().append("rect").attr("class","nv-indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).style("pointer-events","all").call(I),nt.attr("transform",function(e){return"translate("+A(e.i)+",0)"}).attr("height",j),h&&(n.scale(w).ticks(Math.min(b[0].values.length,B/70)).tickSize(-j,0),K.select(".nv-x.nv-axis").attr("transform","translate(0,"+E.range()[0]+")"),d3.transition(K.select(".nv-x.nv-axis")).call(n)),p&&(r.scale(E).ticks(j/36).tickSize(-B,0),d3.transition(K.select(".nv-y.nv-axis")).call(r)),K.select(".nv-background rect").on("click",function(){O.x=d3.mouse(this)[0],O.i=Math.round(A.invert(O.x)),x.index=O.i,k.stateChange(x),rt()}),t.dispatch.on("elementClick",function(e){O.i=e.pointIndex,O.x=A(O.i),x.index=O.i,k.stateChange(x),rt()}),s.dispatch.on("legendClick",function(e,t){e.disabled=!e.disabled,y=!e.disabled,x.rescaleY=y,k.stateChange(x),_.update()}),i.dispatch.on("stateChange",function(e){x.disabled=e.disabled,k.stateChange(x),_.update()}),o.dispatch.on("elementMousemove",function(i){t.clearHighlights();var s,f,l,c=[];b.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){f=e.interactiveBisect(n.values,i.pointXValue,_.x()),t.highlightPoint(r,f,!0);var o=n.values[f];if(typeof o=="undefined")return;typeof s=="undefined"&&(s=o),typeof l=="undefined"&&(l=_.xScale()(_.x()(o,f))),c.push({key:n.key,value:_.y()(o,f),color:a(n,n.seriesIndex)})});if(c.length>2){var h=_.yScale().invert(i.mouseY),p=Math.abs(_.yScale().domain()[0]-_.yScale().domain()[1]),d=.03*p,m=e.nearestValueIndex(c.map(function(e){return e.value}),h,d);m!==null&&(c[m].highlight=!0)}var g=n.tickFormat()(_.x()(s,f),f);o.tooltip.position({left:l+u.left,top:i.mouseY+u.top}).chartContainer(H.parentNode).enabled(v).valueFormatter(function(e,t){return r.tickFormat()(e)}).data({value:g,series:c})(),o.renderGuideLine(l)}),o.dispatch.on("elementMouseout",function(e){k.tooltipHide(),t.clearHighlights()}),k.on("tooltipShow",function(e){v&&M(e,H.parentNode)}),k.on("changeState",function(e){typeof e.disabled!="undefined"&&(b.forEach(function(t,n){t.disabled=e.disabled[n]}),x.disabled=e.disabled),typeof e.index!="undefined"&&(O.i=e.index,O.x=A(O.i),x.index=e.index,nt.data([O])),typeof e.rescaleY!="undefined"&&(y=e.rescaleY),_.update()})}),_}function D(e,n){return n.map(function(n,r){if(!n.values)return n;var i=t.y()(n.values[e],e);return i<-0.95?(n.tempDisabled=!0,n):(n.tempDisabled=!1,n.values=n.values.map(function(e,n){return e.display={y:(t.y()(e,n)-i)/(1+i)},e}),n)})}var t=
-e.models.line(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.interactiveGuideline(),u={top:30,right:30,bottom:50,left:60},a=e.utils.defaultColor(),f=null,l=null,c=!0,h=!0,p=!0,d=!1,v=!0,m=!0,g=!1,y=!0,b=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},w,E,S=t.id(),x={index:0,rescaleY:y},T=null,N="No Data Available.",C=function(e){return e.average},k=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),L=250;n.orient("bottom").tickPadding(7),r.orient(d?"right":"left"),s.updateState(!1);var A=d3.scale.linear(),O={i:0,x:0},M=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=b(i.series.key,a,f,i,_);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],k.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){k.tooltipHide(e)}),k.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),_.dispatch=k,_.lines=t,_.legend=i,_.xAxis=n,_.yAxis=r,_.interactiveLayer=o,d3.rebind(_,t,"defined","isArea","x","y","xScale","yScale","size","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","useVoronoi","id"),_.options=e.utils.optionsFunc.bind(_),_.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,_):u},_.width=function(e){return arguments.length?(f=e,_):f},_.height=function(e){return arguments.length?(l=e,_):l},_.color=function(t){return arguments.length?(a=e.utils.getColor(t),i.color(a),_):a},_.rescaleY=function(e){return arguments.length?(y=e,_):y},_.showControls=function(e){return arguments.length?(m=e,_):m},_.useInteractiveGuideline=function(e){return arguments.length?(g=e,e===!0&&(_.interactive(!1),_.useVoronoi(!1)),_):g},_.showLegend=function(e){return arguments.length?(c=e,_):c},_.showXAxis=function(e){return arguments.length?(h=e,_):h},_.showYAxis=function(e){return arguments.length?(p=e,_):p},_.rightAlignYAxis=function(e){return arguments.length?(d=e,r.orient(e?"right":"left"),_):d},_.tooltips=function(e){return arguments.length?(v=e,_):v},_.tooltipContent=function(e){return arguments.length?(b=e,_):b},_.state=function(e){return arguments.length?(x=e,_):x},_.defaultState=function(e){return arguments.length?(T=e,_):T},_.noData=function(e){return arguments.length?(N=e,_):N},_.average=function(e){return arguments.length?(C=e,_):C},_.transitionDuration=function(e){return arguments.length?(L=e,_):L},_},e.models.discreteBar=function(){"use strict";function E(e){return e.each(function(e){var i=n-t.left-t.right,E=r-t.top-t.bottom,S=d3.select(this);e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var T=p&&d?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0}})});s.domain(p||d3.merge(T).map(function(e){return e.x})).rangeBands(v||[0,i],.1),o.domain(d||d3.extent(d3.merge(T).map(function(e){return e.y}).concat(f))),c?o.range(m||[E-(o.domain()[0]<0?12:0),o.domain()[1]>0?12:0]):o.range(m||[E,0]),b=b||s,w=w||o.copy().range([o(0),o(0)]);var N=S.selectAll("g.nv-wrap.nv-discretebar").data([e]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-discretebar"),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-groups"),N.attr("transform","translate("+t.left+","+t.top+")");var A=N.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});A.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),A.exit().transition().style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),A.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),A.transition().style("stroke-opacity",1).style("fill-opacity",.75);var O=A.selectAll("g.nv-bar").data(function(e){return e.values});O.exit().remove();var M=O.enter().append("g").attr("transform",function(e,t,n){return"translate("+(s(u(e,t))+s.rangeBand()*.05)+", "+o(0)+")"}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),g.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),g.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){g.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){g.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()});M.append("rect").attr("height",0).attr("width",s.rangeBand()*.9/e.length),c?(M.append("text").attr("text-anchor","middle"),O.select("text").text(function(e,t){return h(a(e,t))}).transition().attr("x",s.rangeBand()*.9/2).attr("y",function(e,t){return a(e,t)<0?o(a(e,t))-o(0)+12:-4})):O.selectAll("text").remove(),O.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).style("fill",function(e,t){return e.color||l(e,t)}).style("stroke",function(e,t){return e.color||l(e,t)}).select("rect").attr("class",y).transition().attr("width",s.rangeBand()*.9/e.length),O.transition().attr("transform",function(e,t){var n=s(u(e,t))+s.rangeBand()*.05,r=a(e,t)<0?o(0):o(0)-o(a(e,t))<1?o(0)-1:o(a(e,t));return"translate("+n+", "+r+")"}).select("rect").attr("height",function(e,t){return Math.max(Math.abs(o(a(e,t))-o(d&&d[0]||0))||1)}),b=s.copy(),w=o.copy()}),E}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.ordinal(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=e.utils.defaultColor(),c=!1,h=d3.format(",.2f"),p,d,v,m,g=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),y="discreteBar",b,w;return E.dispatch=g,E.options=e.utils.optionsFunc.bind(E),E.x=function(e){return arguments.length?(u=e,E):u},E.y=function(e){return arguments.length?(a=e,E):a},E.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,E):t},E.width=function(e){return arguments.length?(n=e,E):n},E.height=function(e){return arguments.length?(r=e,E):r},E.xScale=function(e){return arguments.length?(s=e,E):s},E.yScale=function(e){return arguments.length?(o=e,E):o},E.xDomain=function(e){return arguments.length?(p=e,E):p},E.yDomain=function(e){return arguments.length?(d=e,E):d},E.xRange=function(e){return arguments.length?(v=e,E):v},E.yRange=function(e){return arguments.length?(m=e,E):m},E.forceY=function(e){return arguments.length?(f=e,E):f},E.color=function(t){return arguments.length?(l=e.utils.getColor(t),E):l},E.id=function(e){return arguments.length?(i=e,E):i},E.showValues=function(e){return arguments.length?(c=e,E):c},E.valueFormat=function(e){return arguments.length?(h=e,E):h},E.rectClass=function(e){return arguments.length?(y=e,E):y},E},e.models.discreteBarChart=function(){"use strict";function w(e){return e.each(function(e){var u=d3.select(this),p=this,E=(s||parseInt(u.style("width"))||960)-i.left-i.right,S=(o||parseInt(u.style("height"))||400)-i.top-i.bottom;w.update=function(){g.beforeUpdate(),u.transition().duration(y).call(w)},w.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var T=u.selectAll(".nv-noData").data([m]);return T.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),T.attr("x",i.left+E/2).attr("y",i.top+S/2).text(function(e){return e}),w}u.selectAll(".nv-noData").remove(),d=t.xScale(),v=t.yScale().clamp(!0);var N=u.selectAll("g.nv-wrap.nv-discreteBarWithAxes").data([e]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-discreteBarWithAxes").append("g"),k=C.append("defs"),L=N.select("g");C.append("g").attr("class","nv-x nv-axis"),C.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),C.append("g").attr("class","nv-barsWrap"),L.attr("transform","translate("+i.left+","+i.top+")"),l&&L.select(".nv-y.nv-axis").attr("transform","translate("+E+",0)"),t.width(E).height(S);var A=L.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));A.transition().call(t),k.append("clipPath").attr("id","nv-x-label-clip-"+t.id()).append("rect"),L.select("#nv-x-label-clip-"+t.id()+" rect").attr("width",d.rangeBand()*(c?2:1)).attr("height",16).attr("x",-d.rangeBand()/(c?1:2));if(a){n.scale(d).ticks(E/100).tickSize(-S,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+(v.range()[0]+(t.showValues()&&v.domain()[0]<0?16:0))+")"),L.select(".nv-x.nv-axis").transition().call(n);var O=L.select(".nv-x.nv-axis").selectAll("g");c&&O.selectAll("text").attr("transform",function(e,t,n){return"translate(0,"+(n%2==0?"5":"17")+")"})}f&&(r.scale(v).ticks(S/36).tickSize(-E,0),L.select(".nv-y.nv-axis").transition().call(r)),L.select(".nv-zeroLine line").attr("x1",0).attr("x2",E).attr("y1",v(0)).attr("y2",v(0)),g.on("tooltipShow",function(e){h&&b(e,p.parentNode)})}),w}var t=e.models.discreteBar(),n=e.models.axis(),r=e.models.axis(),i={top:15,right:10,bottom:50,left:60},s=null,o=null,u=e.utils.getColor(),a=!0,f=!0,l=!1,c=!1,h=!0,p=function(e,t,n,r,i){return"<h3>"+t+"</h3>"+"<p>"+n+"</p>"},d,v,m="No Data Available.",g=d3.dispatch("tooltipShow","tooltipHide","beforeUpdate"),y=250;n.orient("bottom").highlightZero(!1).showMaxMin(!1).tickFormat(function(e){return e}),r.orient(l?"right":"left").tickFormat(d3.format(",.1f"));var b=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=p(i.series.key,a,f,i,w);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+i.left,e.pos[1]+i.top],g.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){g.tooltipHide(e)}),g.on("tooltipHide",function(){h&&e.tooltip.cleanup()}),w.dispatch=g,w.discretebar=t,w.xAxis=n,w.yAxis=r,d3.rebind(w,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","id","showValues","valueFormat"),w.options=e.utils.optionsFunc.bind(w),w.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.right=typeof e.right!="undefined"?e.right:i.right,i.bottom=typeof e.bottom!="undefined"?e.bottom:i.bottom,i.left=typeof e.left!="undefined"?e.left:i.left,w):i},w.width=function(e){return arguments.length?(s=e,w):s},w.height=function(e){return arguments.length?(o=e,w):o},w.color=function(n){return arguments.length?(u=e.utils.getColor(n),t.color(u),w):u},w.showXAxis=function(e){return arguments.length?(a=e,w):a},w.showYAxis=function(e){return arguments.length?(f=e,w):f},w.rightAlignYAxis=function(e){return arguments.length?(l=e,r.orient(e?"right":"left"),w):l},w.staggerLabels=function(e){return arguments.length?(c=e,w):c},w.tooltips=function(e){return arguments.length?(h=e,w):h},w.tooltipContent=function(e){return arguments.length?(p=e,w):p},w.noData=function(e){return arguments.length?(m=e,w):m},w.transitionDuration=function(e){return arguments.length?(y=e,w):y},w},e.models.distribution=function(){"use strict";function l(e){return e.each(function(e){var a=n-(i==="x"?t.left+t.right:t.top+t.bottom),l=i=="x"?"y":"x",c=d3.select(this);f=f||u;var h=c.selectAll("g.nv-distribution").data([e]),p=h.enter().append("g").attr("class","nvd3 nv-distribution"),d=p.append("g"),v=h.select("g");h.attr("transform","translate("+t.left+","+t.top+")");var m=v.selectAll("g.nv-dist").data(function(e){return e},function(e){return e.key});m.enter().append("g"),m.attr("class",function(e,t){return"nv-dist nv-series-"+t}).style("stroke",function(e,t){return o(e,t)});var g=m.selectAll("line.nv-dist"+i).data(function(e){return e.values});g.enter().append("line").attr(i+"1",function(e,t){return f(s(e,t))}).attr(i+"2",function(e,t){return f(s(e,t))}),m.exit().selectAll("line.nv-dist"+i).transition().attr(i+"1",function(e,t){return u(s(e,t))}).attr(i+"2",function(e,t){return u(s(e,t))}).style("stroke-opacity",0).remove(),g.attr("class",function(e,t){return"nv-dist"+i+" nv-dist"+i+"-"+t}).attr(l+"1",0).attr(l+"2",r),g.transition().attr(i+"1",function(e,t){return u(s(e,t))}).attr(i+"2",function(e,t){return u(s(e,t))}),f=u.copy()}),l}var t={top:0,right:0,bottom:0,left:0},n=400,r=8,i="x",s=function(e){return e[i]},o=e.utils.defaultColor(),u=d3.scale.linear(),a,f;return l.options=e.utils.optionsFunc.bind(l),l.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,l):t},l.width=function(e){return arguments.length?(n=e,l):n},l.axis=function(e){return arguments.length?(i=e,l):i},l.size=function(e){return arguments.length?(r=e,l):r},l.getData=function(e){return arguments.length?(s=d3.functor(e),l):s},l.scale=function(e){return arguments.length?(u=e,l):u},l.color=function(t){return arguments.length?(o=e.utils.getColor(t),l):o},l},e.models.historicalBar=function(){"use strict";function w(E){return E.each(function(w){var E=n-t.left-t.right,S=r-t.top-t.bottom,T=d3.select(this);s.domain(d||d3.extent(w[0].values.map(u).concat(f))),c?s.range(m||[E*.5/w[0].values.length,E*(w[0].values.length-.5)/w[0].values.length]):s.range(m||[0,E]),o.domain(v||d3.extent(w[0].values.map(a).concat(l))).range(g||[S,0]),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]-s.domain()[0]*.01,s.domain()[1]+s.domain()[1]*.01]):s.domain([-1,1])),o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]+o.domain()[0]*.01,o.domain()[1]-o.domain()[1]*.01]):o.domain([-1,1]));var N=T.selectAll("g.nv-wrap.nv-historicalBar-"+i).data([w[0].values]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBar-"+i),k=C.append("defs"),L=C.append("g"),A=N.select("g");L.append("g").attr("class","nv-bars"),N.attr("transform","translate("+t.left+","+t.top+")"),T.on("click",function(e,t){y.chartClick({data:e,index:t,pos:d3.event,id:i})}),k.append("clipPath").attr("id","nv-chart-clip-path-"+i).append("rect"),N.select("#nv-chart-clip-path-"+i+" rect").attr("width",E).attr("height",S),A.attr("clip-path",h?"url(#nv-chart-clip-path-"+i+")":"");var O=N.select(".nv-bars").selectAll(".nv-bar").data(function(e){return e},function(e,t){return u(e,t)});O.exit().remove();var M=O.enter().append("rect").attr("x",0).attr("y",function(t,n){return e.utils.NaNtoZero(o(Math.max(0,a(t,n))))}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.abs(o(a(t,n))-o(0)))}).attr("transform",function(e,t){return"translate("+(s(u(e,t))-E/w[0].values.length*.45)+",0)"}).on("mouseover",function(e,t){if(!b)return;d3.select(this).classed("hover",!0),y.elementMouseover({point:e,series:w[0],pos:[s(u(e,t)),o(a(e,t))],pointIndex:t,seriesIndex:0,e:d3.event})}).on("mouseout",function(e,t){if(!b)return;d3.select(this).classed("hover",!1),y.elementMouseout({point:e,series:w[0],pointIndex:t,seriesIndex:0,e:d3.event})}).on("click",function(e,t){if(!b)return;y.elementClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()}).on("dblclick",function(e,t){if(!b)return;y.elementDblClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()});O.attr("fill",function(e,t){return p(e,t)}).attr("class",function(e,t,n){return(a(e,t)<0?"nv-bar negative":"nv-bar positive")+" nv-bar-"+n+"-"+t}).transition().attr("transform",function(e,t){return"translate("+(s(u(e,t))-E/w[0].values.length*.45)+",0)"}).attr("width",E/w[0].values.length*.9),O.transition().attr("y",function(t,n){var r=a(t,n)<0?o(0):o(0)-o(a(t,n))<1?o(0)-1:o(a(t,n));return e.utils.NaNtoZero(r)}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.max(Math.abs(o(a(t,n))-o(0)),1))})}),w}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[],l=[0],c=!1,h=!0,p=e.utils.defaultColor(),d,v,m,g,y=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),b=!0;return w.highlightPoint=function(e,t){d3.select(".nv-historicalBar-"+i).select(".nv-bars .nv-bar-0-"+e).classed("hover",t)},w.clearHighlights=function(){d3.select(".nv-historicalBar-"+i).select(".nv-bars .nv-bar.hover").classed("hover",!1)},w.dispatch=y,w.options=e.utils.optionsFunc.bind(w),w.x=function(e){return arguments.length?(u=e,w):u},w.y=function(e){return arguments.length?(a=e,w):a},w.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,w):t},w.width=function(e){return arguments.length?(n=e,w):n},w.height=function(e){return arguments.length?(r=e,w):r},w.xScale=function(e){return arguments.length?(s=e,w):s},w.yScale=function(e){return arguments.length?(o=e,w):o},w.xDomain=function(e){return arguments.length?(d=e,w):d},w.yDomain=function(e){return arguments.length?(v=e,w):v},w.xRange=function(e){return arguments.length?(m=e,w):m},w.yRange=function(e){return arguments.length?(g=e,w):g},w.forceX=function(e){return arguments.length?(f=e,w):f},w.forceY=function(e){return arguments.length?(l=e,w):l},w.padData=function(e){return arguments.length?(c=e,w):c},w.clipEdge=function(e){return arguments.length?(h=e,w):h},w.color=function(t){return arguments.length?(p=e.utils.getColor(t),w):p},w.id=function(e){return arguments.length?(i=e,w):i},w.interactive=function(e){return arguments.length?(b=!1,w):b},w},e.models.historicalBarChart=function(){"use strict";function x(e){return e.each(function(d){var T=d3.select(this),N=this,C=(u||parseInt(T.style("width"))||960)-s.left-s.right,k=(a||parseInt(T.style("height"))||400)-s.top-s.bottom;x.update=function(){T.transition().duration(E).call(x)},x.container=this,g.disabled=d.map(function(e){return!!e.disabled});if(!y){var L;y={};for(L in g)g[L]instanceof Array?y[L]=g[L].slice(0):y[L]=g[L]}if(!d||!d.length||!d.filter(function(e){return e.values.length}).length){var A=T.selectAll(".nv-noData").data([b]);return A.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),A.attr("x",s.left+C/2).attr("y",s.top+k/2).text(function(e){return e}),x}T.selectAll(".nv-noData").remove(),v=t.xScale(),m=t.yScale();var O=T.selectAll("g.nv-wrap.nv-historicalBarChart").data([d]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBarChart").append("g"),_=O.select("g");M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y nv-axis"),M.append("g").attr("class","nv-barsWrap"),M.append("g").attr("class","nv-legendWrap"),f&&(i.width(C),_.select(".nv-legendWrap").datum(d).call(i),s.top!=i.height()&&(s.top=i.height(),k=(a||parseInt(T.style("height"))||400)-s.top-s.bottom),O.select(".nv-legendWrap").attr("transform","translate(0,"+ -s.top+")")),O.attr("transform","translate("+s.left+","+s.top+")"),h&&_.select(".nv-y.nv-axis").attr("transform","translate("+C+",0)"),t.width(C).height(k).color(d.map(function(e,t){return e.color||o(e,t)}).filter(function(e,t){return!d[t].disabled}));var D=_.select(".nv-barsWrap").datum(d.filter(function(e){return!e.disabled}));D.transition().call(t),l&&(n.scale(v).tickSize(-k,0),_.select(".nv-x.nv-axis").attr("transform","translate(0,"+m.range()[0]+")"),_.select(".nv-x.nv-axis").transition().call(n)),c&&(r.scale(m).ticks(k/36).tickSize(-C,0),_.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("legendClick",function(t,n){t.disabled=!t.disabled,d.filter(function(e){return!e.disabled}).length||d.map(function(e){return e.disabled=!1,O.selectAll(".nv-series").classed("disabled",!1),e}),g.disabled=d.map(function(e){return!!e.disabled}),w.stateChange(g),e.transition().call(x)}),i.dispatch.on("legendDblclick",function(e){d.forEach(function(e){e.disabled=!0}),e.disabled=!1,g.disabled=d.map(function(e){return!!e.disabled}),w.stateChange(g),x.update()}),w.on("tooltipShow",function(e){p&&S(e,N.parentNode)}),w.on("changeState",function(e){typeof e.disabled!="undefined"&&(d.forEach(function(t,n){t.disabled=e.disabled[n]}),g.disabled=e.disabled),x.update()})}),x}var t=e.models.historicalBar(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s={top:30,right:90,bottom:50,left:90},o=e.utils.defaultColor(),u=null,a=null,f=!1,l=!0,c=!0,h=!1,p=!0,d=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},v,m,g={},y=null,b="No Data Available.",w=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),E=250;n.orient("bottom").tickPadding(7),r.orient(h?"right":"left");var S=function(i,s){if(s){var o=d3.select(s).select("svg"),u=o.node()?o.attr("viewBox"):null;if(u){u=u.split(" ");var a=parseInt(o.style("width"))/u[2];i.pos[0]=i.pos[0]*a,i.pos[1]=i.pos[1]*a}}var f=i.pos[0]+(s.offsetLeft||0),l=i.pos[1]+(s.offsetTop||0),c=n.tickFormat()(t.x()(i.point,i.pointIndex)),h=r.tickFormat()(t.y()(i.point,i.pointIndex)),p=d(i.series.key,c,h,i,x);e.tooltip.show([f,l],p,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+s.left,e.pos[1]+s.top],w.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){w.tooltipHide(e)}),w.on("tooltipHide",function(){p&&e.tooltip.cleanup()}),x.dispatch=w,x.bars=t,x.legend=i,x.xAxis=n,x.yAxis=r,d3.rebind(x,t,"defined","isArea","x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","id","interpolate","highlightPoint","clearHighlights","interactive"),x.options=e.utils.optionsFunc.bind(x),x.margin=function(e){return arguments.length?(s.top=typeof e.top!="undefined"?e.top:s.top,s.right=typeof e.right!="undefined"?e.right:s.right,s.bottom=typeof e.bottom!="undefined"?e.bottom:s.bottom,s.left=typeof e.left!="undefined"?e.left:s.left,x):s},x.width=function(e){return arguments.length?(u=e,x):u},x.height=function(e){return arguments.length?(a=e,x):a},x.color=function(t){return arguments.length?(o=e.utils.getColor(t),i.color(o),x):o},x.showLegend=function(e){return arguments.length?(f=e,x):f},x.showXAxis=function(e){return arguments.length?(l=e,x):l},x.showYAxis=function(e){return arguments.length?(c=e,x):c},x.rightAlignYAxis=function(e){return arguments.length?(h=e,r.orient(e?"right":"left"),x):h},x.tooltips=function(e){return arguments.length?(p=e,x):p},x.tooltipContent=function(e){return arguments.length?(d=e,x):d},x.state=function(e){return arguments.length?(g=e,x):g},x.defaultState=function(e){return arguments.length?(y=e,x):y},x.noData=function(e){return arguments.length?(b=e,x):b},x.transitionDuration=function(e){return arguments.length?(E=e,x):E},x},e.models.indentedTree=function(){"use strict";function g(e){return e.each(function(e){function k(e,t,n){d3.event.stopPropagation();if(d3.event.shiftKey&&!n)return d3.event.shiftKey=!1,e.values&&e.values.forEach(function(e){(e.values||e._values)&&k(e,0,!0)}),!0;if(!O(e))return!0;e.values?(e._values=e.values,e.values=null):(e.values=e._values,e._values=null),g.update()}function L(e){return e._values&&e._values.length?h:e.values&&e.values.length?p:""}function A(e){return e._values&&e._values.length}function O(e){var t=e.values||e._values;return t&&t.length}var t=1,n=d3.select(this),i=d3.layout.tree().children(function(e){return e.values}).size([r,f]);g.update=function(){n.transition().duration(600).call(g)},e[0]||(e[0]={key:a});var s=i.nodes(e[0]),y=d3.select(this).selectAll("div").data([[s]]),b=y.enter().append("div").attr("class","nvd3 nv-wrap nv-indentedtree"),w=b.append("table"),E=y.select("table").attr("width","100%").attr("class",c);if(o){var S=w.append("thead"),x=S.append("tr");l.forEach(function(e){x.append("th").attr("width",e.width?e.width:"10%").style("text-align",e.type=="numeric"?"right":"left").append("span").text(e.label)})}var T=E.selectAll("tbody").data(function(e){return e});T.enter().append("tbody"),t=d3.max(s,function(e){return e.depth}),i.size([r,t*f]);var N=T.selectAll("tr").data(function(e){return e.filter(function(e){return u&&!e.children?u(e):!0})},function(e,t){return e.id||e.id||++m});N.exit().remove(),N.select("img.nv-treeicon").attr("src",L).classed("folded",A);var C=N.enter().append("tr");l.forEach(function(e,t){var n=C.append("td").style("padding-left",function(e){return(t?0:e.depth*f+12+(L(e)?0:16))+"px"},"important").style("text-align",e.type=="numeric"?"right":"left");t==0&&n.append("img").classed("nv-treeicon",!0).classed("nv-folded",A).attr("src",L).style("width","14px").style("height","14px").style("padding","0 1px").style("display",function(e){return L(e)?"inline-block":"none"}).on("click",k),n.each(function(n){!t&&v(n)?d3.select(this).append("a").attr("href",v).attr("class",d3.functor(e.classes)).append("span"):d3.select(this).append("span"),d3.select(this).select("span").attr("class",d3.functor(e.classes)).text(function(t){return e.format?e.format(t):t[e.key]||"-"})}),e.showCount&&(n.append("span").attr("class","nv-childrenCount"),N.selectAll("span.nv-childrenCount").text(function(e){return e.values&&e.values.length||e._values&&e._values.length?"("+(e.values&&e.values.filter(function(e){return u?u(e):!0}).length||e._values&&e._values.filter(function(e){return u?u(e):!0}).length||0)+")":""}))}),N.order().on("click",function(e){d.elementClick({row:this,data:e,pos:[e.x,e.y]})}).on("dblclick",function(e){d.elementDblclick({row:this,data:e,pos:[e.x,e.y]})}).on("mouseover",function(e){d.elementMouseover({row:this,data:e,pos:[e.x,e.y]})}).on("mouseout",function(e){d.elementMouseout({row:this,data:e,pos:[e.x,e.y]})})}),g}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e4),o=!0,u=!1,a="No Data Available.",f=20,l=[{key:"key",label:"Name",type:"text"}],c=null,h="images/grey-plus.png",p="images/grey-minus.png",d=d3.dispatch("elementClick","elementDblclick","elementMouseover","elementMouseout"),v=function(e){return e.url},m=0;return g.options=e.utils.optionsFunc.bind(g),g.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,g):t},g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(r=e,g):r},g.color=function(t){return arguments.length?(i=e.utils.getColor(t),scatter.color(i),g):i},g.id=function(e){return arguments.length?(s=e,g):s},g.header=function(e){return arguments.length?(o=e,g):o},g.noData=function(e){return arguments.length?(a=e,g):a},g.filterZero=function(e){return arguments.length?(u=e,g):u},g.columns=function(e){return arguments.length?(l=e,g):l},g.tableClass=function(e){return arguments.length?(c=e,g):c},g.iconOpen=function(e){return arguments.length?(h=e,g):h},g.iconClose=function(e){return arguments.length?(p=e,g):p},g.getUrl=function(e){return arguments.length?(v=e,g):v},g},e.models.legend=function(){"use strict";function c(h){return h.each(function(c){var h=n-t.left-t.right,p=d3.select(this),d=p.selectAll("g.nv-legend").data([c]),v=d.enter().append("g").attr("class","nvd3 nv-legend").append("g"),m=d.select("g");d.attr("transform","translate("+t.left+","+t.top+")");var g=m.selectAll(".nv-series").data(function(e){return e}),y=g.enter().append("g").attr("class","nv-series").on("mouseover",function(e,t){l.legendMouseover(e,t)}).on("mouseout",function(e,t){l.legendMouseout(e,t)}).on("click",function(e,t){l.legendClick(e,t),a&&(f?(c.forEach(function(e){e.disabled=!0}),e.disabled=!1):(e.disabled=!e.disabled,c.every(function(e){return e.disabled})&&c.forEach(function(e){e.disabled=!1})),l.stateChange({disabled:c.map(function(e){return!!e.disabled})}))}).on("dblclick",function(e,t){l.legendDblclick(e,t),a&&(c.forEach(function(e){e.disabled=!0}),e.disabled=!1,l.stateChange({disabled:c.map(function(e){return!!e.disabled})}))});y.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),y.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8"),g.classed("disabled",function(e){return e.disabled}),g.exit().remove(),g.select("circle").style("fill",function(e,t){return e.color||s(e,t)}).style("stroke",function(e,t){return e.color||s(e,t)}),g.select("text").text(i);if(o){var b=[];g.each(function(t,n){var r=d3.select(this).select("text"),i;try{i=r.node().getComputedTextLength()}catch(s){i=e.utils.calcApproxTextWidth(r)}b.push(i+28)});var w=0,E=0,S=[];while(E<h&&w<b.length)S[w]=b[w],E+=b[w++];w===0&&(w=1);while(E>h&&w>1){S=[],w--;for(var x=0;x<b.length;x++)b[x]>(S[x%w]||0)&&(S[x%w]=b[x]);E=S.reduce(function(e,t,n,r){return e+t})}var T=[];for(var N=0,C=0;N<w;N++)T[N]=C,C+=S[N];g.attr("transform",function(e,t){return"translate("+T[t%w]+","+(5+Math.floor(t/w)*20)+")"}),u?m.attr("transform","translate("+(n-t.right-E)+","+t.top+")"):m.attr("transform","translate(0,"+t.top+")"),r=t.top+t.bottom+Math.ceil(b.length/w)*20}else{var k=5,L=5,A=0,O;g.attr("transform",function(e,r){var i=d3.select(this).select("text").node().getComputedTextLength()+28;return O=L,n<t.left+t.right+O+i&&(L=O=5,k+=20),L+=i,L>A&&(A=L),"translate("+O+","+k+")"}),m.attr("transform","translate("+(n-t.right-A)+","+t.top+")"),r=t.top+t.bottom+k+15}}),c}var t={top:5,right:0,bottom:5,left:0},n=400,r=20,i=function(e){return e.key},s=e.utils.defaultColor(),o=!0,u=!0,a=!0,f=!1,l=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange");return c.dispatch=l,c.options=e.utils.optionsFunc.bind(c),c.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,c):t},c.width=function(e){return arguments.length?(n=e,c):n},c.height=function(e){return arguments.length?(r=e,c):r},c.key=function(e){return arguments.length?(i=e,c):i},c.color=function(t){return arguments.length?(s=e.utils.getColor(t),c):s},c.align=function(e){return arguments.length?(o=e,c):o},c.rightAlign=function(e){return arguments.length?(u=e,c):u},c.updateState=function(e){return arguments.length?(a=e,c):a},c.radioButtonMode=function(e){return arguments.length?(f=e,c):f},c},e.models.line=function(){"use strict";function m(g){return g.each(function(m){var g=r-n.left-n.right,b=i-n.top-n.bottom,w=d3.select(this);c=t.xScale(),h=t.yScale(),d=d||c,v=v||h;var E=w.selectAll("g.nv-wrap.nv-line").data([m]),S=E.enter().append("g").attr("class","nvd3 nv-wrap nv-line"),T=S.append("defs"),N=S.append("g"),C=E.select("g");N.append("g").attr("class","nv-groups"),N.append("g").attr("class","nv-scatterWrap"),E.attr("transform","translate("+n.left+","+n.top+")"),t.width(g).height(b);var k=E.select(".nv-scatterWrap");k.transition().call(t),T.append("clipPath").attr("id","nv-edge-clip-"+t.id()).append("rect"),E.select("#nv-edge-clip-"+t.id()+" rect").attr("width",g).attr("height",b),C.attr("clip-path",l?"url(#nv-edge-clip-"+t.id()+")":""),k.attr("clip-path",l?"url(#nv-edge-clip-"+t.id()+")":"");var L=E.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});L.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),L.exit().remove(),L.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return s(e,t)}).style("stroke",function(e,t){return s(e,t)}),L.transition().style("stroke-opacity",1).style("fill-opacity",.5);var A=L.selectAll("path.nv-area").data(function(e){return f(e)?[e]:[]});A.enter().append("path").attr("class","nv-area").attr("d",function(t){return d3.svg.area().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(d(o(t,n)))}).y0(function(t,n){return e.utils.NaNtoZero(v(u(t,n)))}).y1(function(e,t){return v(h.domain()[0]<=0?h.domain()[1]>=0?0:h.domain()[1]:h.domain
-()[0])}).apply(this,[t.values])}),L.exit().selectAll("path.nv-area").remove(),A.transition().attr("d",function(t){return d3.svg.area().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(c(o(t,n)))}).y0(function(t,n){return e.utils.NaNtoZero(h(u(t,n)))}).y1(function(e,t){return h(h.domain()[0]<=0?h.domain()[1]>=0?0:h.domain()[1]:h.domain()[0])}).apply(this,[t.values])});var O=L.selectAll("path.nv-line").data(function(e){return[e.values]});O.enter().append("path").attr("class","nv-line").attr("d",d3.svg.line().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(d(o(t,n)))}).y(function(t,n){return e.utils.NaNtoZero(v(u(t,n)))})),O.transition().attr("d",d3.svg.line().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(c(o(t,n)))}).y(function(t,n){return e.utils.NaNtoZero(h(u(t,n)))})),d=c.copy(),v=h.copy()}),m}var t=e.models.scatter(),n={top:0,right:0,bottom:0,left:0},r=960,i=500,s=e.utils.defaultColor(),o=function(e){return e.x},u=function(e){return e.y},a=function(e,t){return!isNaN(u(e,t))&&u(e,t)!==null},f=function(e){return e.area},l=!1,c,h,p="linear";t.size(16).sizeDomain([16,256]);var d,v;return m.dispatch=t.dispatch,m.scatter=t,d3.rebind(m,t,"id","interactive","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","forceX","forceY","forceSize","clipVoronoi","useVoronoi","clipRadius","padData","highlightPoint","clearHighlights"),m.options=e.utils.optionsFunc.bind(m),m.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,m):n},m.width=function(e){return arguments.length?(r=e,m):r},m.height=function(e){return arguments.length?(i=e,m):i},m.x=function(e){return arguments.length?(o=e,t.x(e),m):o},m.y=function(e){return arguments.length?(u=e,t.y(e),m):u},m.clipEdge=function(e){return arguments.length?(l=e,m):l},m.color=function(n){return arguments.length?(s=e.utils.getColor(n),t.color(s),m):s},m.interpolate=function(e){return arguments.length?(p=e,m):p},m.defined=function(e){return arguments.length?(a=e,m):a},m.isArea=function(e){return arguments.length?(f=d3.functor(e),m):f},m},e.models.lineChart=function(){"use strict";function N(m){return m.each(function(m){var C=d3.select(this),k=this,L=(a||parseInt(C.style("width"))||960)-o.left-o.right,A=(f||parseInt(C.style("height"))||400)-o.top-o.bottom;N.update=function(){C.transition().duration(x).call(N)},N.container=this,b.disabled=m.map(function(e){return!!e.disabled});if(!w){var O;w={};for(O in b)b[O]instanceof Array?w[O]=b[O].slice(0):w[O]=b[O]}if(!m||!m.length||!m.filter(function(e){return e.values.length}).length){var M=C.selectAll(".nv-noData").data([E]);return M.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),M.attr("x",o.left+L/2).attr("y",o.top+A/2).text(function(e){return e}),N}C.selectAll(".nv-noData").remove(),g=t.xScale(),y=t.yScale();var _=C.selectAll("g.nv-wrap.nv-lineChart").data([m]),D=_.enter().append("g").attr("class","nvd3 nv-wrap nv-lineChart").append("g"),P=_.select("g");D.append("rect").style("opacity",0),D.append("g").attr("class","nv-x nv-axis"),D.append("g").attr("class","nv-y nv-axis"),D.append("g").attr("class","nv-linesWrap"),D.append("g").attr("class","nv-legendWrap"),D.append("g").attr("class","nv-interactive"),P.select("rect").attr("width",L).attr("height",A),l&&(i.width(L),P.select(".nv-legendWrap").datum(m).call(i),o.top!=i.height()&&(o.top=i.height(),A=(f||parseInt(C.style("height"))||400)-o.top-o.bottom),_.select(".nv-legendWrap").attr("transform","translate(0,"+ -o.top+")")),_.attr("transform","translate("+o.left+","+o.top+")"),p&&P.select(".nv-y.nv-axis").attr("transform","translate("+L+",0)"),d&&(s.width(L).height(A).margin({left:o.left,top:o.top}).svgContainer(C).xScale(g),_.select(".nv-interactive").call(s)),t.width(L).height(A).color(m.map(function(e,t){return e.color||u(e,t)}).filter(function(e,t){return!m[t].disabled}));var H=P.select(".nv-linesWrap").datum(m.filter(function(e){return!e.disabled}));H.transition().call(t),c&&(n.scale(g).ticks(L/100).tickSize(-A,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),P.select(".nv-x.nv-axis").transition().call(n)),h&&(r.scale(y).ticks(A/36).tickSize(-L,0),P.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),N.update()}),s.dispatch.on("elementMousemove",function(i){t.clearHighlights();var a,f,l,c=[];m.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){f=e.interactiveBisect(n.values,i.pointXValue,N.x()),t.highlightPoint(r,f,!0);var s=n.values[f];if(typeof s=="undefined")return;typeof a=="undefined"&&(a=s),typeof l=="undefined"&&(l=N.xScale()(N.x()(s,f))),c.push({key:n.key,value:N.y()(s,f),color:u(n,n.seriesIndex)})});if(c.length>2){var h=N.yScale().invert(i.mouseY),p=Math.abs(N.yScale().domain()[0]-N.yScale().domain()[1]),d=.03*p,g=e.nearestValueIndex(c.map(function(e){return e.value}),h,d);g!==null&&(c[g].highlight=!0)}var y=n.tickFormat()(N.x()(a,f));s.tooltip.position({left:l+o.left,top:i.mouseY+o.top}).chartContainer(k.parentNode).enabled(v).valueFormatter(function(e,t){return r.tickFormat()(e)}).data({value:y,series:c})(),s.renderGuideLine(l)}),s.dispatch.on("elementMouseout",function(e){S.tooltipHide(),t.clearHighlights()}),S.on("tooltipShow",function(e){v&&T(e,k.parentNode)}),S.on("changeState",function(e){typeof e.disabled!="undefined"&&(m.forEach(function(t,n){t.disabled=e.disabled[n]}),b.disabled=e.disabled),N.update()})}),N}var t=e.models.line(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.interactiveGuideline(),o={top:30,right:20,bottom:50,left:60},u=e.utils.defaultColor(),a=null,f=null,l=!0,c=!0,h=!0,p=!1,d=!1,v=!0,m=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},g,y,b={},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),x=250;n.orient("bottom").tickPadding(7),r.orient(p?"right":"left");var T=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=m(i.series.key,a,f,i,N);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),N.dispatch=S,N.lines=t,N.legend=i,N.xAxis=n,N.yAxis=r,N.interactiveLayer=s,d3.rebind(N,t,"defined","isArea","x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","useVoronoi","id","interpolate"),N.options=e.utils.optionsFunc.bind(N),N.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,N):o},N.width=function(e){return arguments.length?(a=e,N):a},N.height=function(e){return arguments.length?(f=e,N):f},N.color=function(t){return arguments.length?(u=e.utils.getColor(t),i.color(u),N):u},N.showLegend=function(e){return arguments.length?(l=e,N):l},N.showXAxis=function(e){return arguments.length?(c=e,N):c},N.showYAxis=function(e){return arguments.length?(h=e,N):h},N.rightAlignYAxis=function(e){return arguments.length?(p=e,r.orient(e?"right":"left"),N):p},N.useInteractiveGuideline=function(e){return arguments.length?(d=e,e===!0&&(N.interactive(!1),N.useVoronoi(!1)),N):d},N.tooltips=function(e){return arguments.length?(v=e,N):v},N.tooltipContent=function(e){return arguments.length?(m=e,N):m},N.state=function(e){return arguments.length?(b=e,N):b},N.defaultState=function(e){return arguments.length?(w=e,N):w},N.noData=function(e){return arguments.length?(E=e,N):E},N.transitionDuration=function(e){return arguments.length?(x=e,N):x},N},e.models.linePlusBarChart=function(){"use strict";function T(e){return e.each(function(e){var l=d3.select(this),c=this,v=(a||parseInt(l.style("width"))||960)-u.left-u.right,N=(f||parseInt(l.style("height"))||400)-u.top-u.bottom;T.update=function(){l.transition().call(T)},b.disabled=e.map(function(e){return!!e.disabled});if(!w){var C;w={};for(C in b)b[C]instanceof Array?w[C]=b[C].slice(0):w[C]=b[C]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var k=l.selectAll(".nv-noData").data([E]);return k.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),k.attr("x",u.left+v/2).attr("y",u.top+N/2).text(function(e){return e}),T}l.selectAll(".nv-noData").remove();var L=e.filter(function(e){return!e.disabled&&e.bar}),A=e.filter(function(e){return!e.bar});m=A.filter(function(e){return!e.disabled}).length&&A.filter(function(e){return!e.disabled})[0].values.length?t.xScale():n.xScale(),g=n.yScale(),y=t.yScale();var O=d3.select(this).selectAll("g.nv-wrap.nv-linePlusBar").data([e]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),_=O.select("g");M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y1 nv-axis"),M.append("g").attr("class","nv-y2 nv-axis"),M.append("g").attr("class","nv-barsWrap"),M.append("g").attr("class","nv-linesWrap"),M.append("g").attr("class","nv-legendWrap"),p&&(o.width(v/2),_.select(".nv-legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.bar?" (left axis)":" (right axis)"),e})).call(o),u.top!=o.height()&&(u.top=o.height(),N=(f||parseInt(l.style("height"))||400)-u.top-u.bottom),_.select(".nv-legendWrap").attr("transform","translate("+v/2+","+ -u.top+")")),O.attr("transform","translate("+u.left+","+u.top+")"),t.width(v).height(N).color(e.map(function(e,t){return e.color||h(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar})),n.width(v).height(N).color(e.map(function(e,t){return e.color||h(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar}));var D=_.select(".nv-barsWrap").datum(L.length?L:[{values:[]}]),P=_.select(".nv-linesWrap").datum(A[0]&&!A[0].disabled?A:[{values:[]}]);d3.transition(D).call(n),d3.transition(P).call(t),r.scale(m).ticks(v/100).tickSize(-N,0),_.select(".nv-x.nv-axis").attr("transform","translate(0,"+g.range()[0]+")"),d3.transition(_.select(".nv-x.nv-axis")).call(r),i.scale(g).ticks(N/36).tickSize(-v,0),d3.transition(_.select(".nv-y1.nv-axis")).style("opacity",L.length?1:0).call(i),s.scale(y).ticks(N/36).tickSize(L.length?0:-v,0),_.select(".nv-y2.nv-axis").style("opacity",A.length?1:0).attr("transform","translate("+v+",0)"),d3.transition(_.select(".nv-y2.nv-axis")).call(s),o.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),T.update()}),S.on("tooltipShow",function(e){d&&x(e,c.parentNode)}),S.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),b.disabled=t.disabled),T.update()})}),T}var t=e.models.line(),n=e.models.historicalBar(),r=e.models.axis(),i=e.models.axis(),s=e.models.axis(),o=e.models.legend(),u={top:30,right:60,bottom:50,left:60},a=null,f=null,l=function(e){return e.x},c=function(e){return e.y},h=e.utils.defaultColor(),p=!0,d=!0,v=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},m,g,y,b={},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState");n.padData(!0),t.clipEdge(!1).padData(!0),r.orient("bottom").tickPadding(7).highlightZero(!1),i.orient("left"),s.orient("right");var x=function(n,o){var u=n.pos[0]+(o.offsetLeft||0),a=n.pos[1]+(o.offsetTop||0),f=r.tickFormat()(t.x()(n.point,n.pointIndex)),l=(n.series.bar?i:s).tickFormat()(t.y()(n.point,n.pointIndex)),c=v(n.series.key,f,l,n,T);e.tooltip.show([u,a],c,n.value<0?"n":"s",null,o)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),n.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],S.tooltipShow(e)}),n.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){d&&e.tooltip.cleanup()}),T.dispatch=S,T.legend=o,T.lines=t,T.bars=n,T.xAxis=r,T.y1Axis=i,T.y2Axis=s,d3.rebind(T,t,"defined","size","clipVoronoi","interpolate"),T.options=e.utils.optionsFunc.bind(T),T.x=function(e){return arguments.length?(l=e,t.x(e),n.x(e),T):l},T.y=function(e){return arguments.length?(c=e,t.y(e),n.y(e),T):c},T.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,T):u},T.width=function(e){return arguments.length?(a=e,T):a},T.height=function(e){return arguments.length?(f=e,T):f},T.color=function(t){return arguments.length?(h=e.utils.getColor(t),o.color(h),T):h},T.showLegend=function(e){return arguments.length?(p=e,T):p},T.tooltips=function(e){return arguments.length?(d=e,T):d},T.tooltipContent=function(e){return arguments.length?(v=e,T):v},T.state=function(e){return arguments.length?(b=e,T):b},T.defaultState=function(e){return arguments.length?(w=e,T):w},T.noData=function(e){return arguments.length?(E=e,T):E},T},e.models.lineWithFocusChart=function(){"use strict";function k(e){return e.each(function(e){function U(e){var t=+(e=="e"),n=t?1:-1,r=M/3;return"M"+.5*n+","+r+"A6,6 0 0 "+t+" "+6.5*n+","+(r+6)+"V"+(2*r-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*r+"Z"+"M"+2.5*n+","+(r+8)+"V"+(2*r-8)+"M"+4.5*n+","+(r+8)+"V"+(2*r-8)}function z(){a.empty()||a.extent(w),I.data([a.empty()?g.domain():w]).each(function(e,t){var n=g(e[0])-v.range()[0],r=v.range()[1]-g(e[1]);d3.select(this).select(".left").attr("width",n<0?0:n),d3.select(this).select(".right").attr("x",g(e[1])).attr("width",r<0?0:r)})}function W(){w=a.empty()?null:a.extent();var n=a.empty()?g.domain():a.extent();if(Math.abs(n[0]-n[1])<=1)return;T.brush({extent:n,brush:a}),z();var s=H.select(".nv-focus .nv-linesWrap").datum(e.filter(function(e){return!e.disabled}).map(function(e,r){return{key:e.key,values:e.values.filter(function(e,r){return t.x()(e,r)>=n[0]&&t.x()(e,r)<=n[1]})}}));s.transition().duration(N).call(t),H.select(".nv-focus .nv-x.nv-axis").transition().duration(N).call(r),H.select(".nv-focus .nv-y.nv-axis").transition().duration(N).call(i)}var S=d3.select(this),L=this,A=(h||parseInt(S.style("width"))||960)-f.left-f.right,O=(p||parseInt(S.style("height"))||400)-f.top-f.bottom-d,M=d-l.top-l.bottom;k.update=function(){S.transition().duration(N).call(k)},k.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var _=S.selectAll(".nv-noData").data([x]);return _.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),_.attr("x",f.left+A/2).attr("y",f.top+O/2).text(function(e){return e}),k}S.selectAll(".nv-noData").remove(),v=t.xScale(),m=t.yScale(),g=n.xScale(),y=n.yScale();var D=S.selectAll("g.nv-wrap.nv-lineWithFocusChart").data([e]),P=D.enter().append("g").attr("class","nvd3 nv-wrap nv-lineWithFocusChart").append("g"),H=D.select("g");P.append("g").attr("class","nv-legendWrap");var B=P.append("g").attr("class","nv-focus");B.append("g").attr("class","nv-x nv-axis"),B.append("g").attr("class","nv-y nv-axis"),B.append("g").attr("class","nv-linesWrap");var j=P.append("g").attr("class","nv-context");j.append("g").attr("class","nv-x nv-axis"),j.append("g").attr("class","nv-y nv-axis"),j.append("g").attr("class","nv-linesWrap"),j.append("g").attr("class","nv-brushBackground"),j.append("g").attr("class","nv-x nv-brush"),b&&(u.width(A),H.select(".nv-legendWrap").datum(e).call(u),f.top!=u.height()&&(f.top=u.height(),O=(p||parseInt(S.style("height"))||400)-f.top-f.bottom-d),H.select(".nv-legendWrap").attr("transform","translate(0,"+ -f.top+")")),D.attr("transform","translate("+f.left+","+f.top+")"),t.width(A).height(O).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),n.defined(t.defined()).width(A).height(M).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),H.select(".nv-context").attr("transform","translate(0,"+(O+f.bottom+l.top)+")");var F=H.select(".nv-context .nv-linesWrap").datum(e.filter(function(e){return!e.disabled}));d3.transition(F).call(n),r.scale(v).ticks(A/100).tickSize(-O,0),i.scale(m).ticks(O/36).tickSize(-A,0),H.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+O+")"),a.x(g).on("brush",function(){var e=k.transitionDuration();k.transitionDuration(0),W(),k.transitionDuration(e)}),w&&a.extent(w);var I=H.select(".nv-brushBackground").selectAll("g").data([w||a.extent()]),q=I.enter().append("g");q.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",M),q.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",M);var R=H.select(".nv-x.nv-brush").call(a);R.selectAll("rect").attr("height",M),R.selectAll(".resize").append("path").attr("d",U),W(),s.scale(g).ticks(A/100).tickSize(-M,0),H.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),d3.transition(H.select(".nv-context .nv-x.nv-axis")).call(s),o.scale(y).ticks(M/36).tickSize(-A,0),d3.transition(H.select(".nv-context .nv-y.nv-axis")).call(o),H.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),u.dispatch.on("stateChange",function(e){k.update()}),T.on("tooltipShow",function(e){E&&C(e,L.parentNode)})}),k}var t=e.models.line(),n=e.models.line(),r=e.models.axis(),i=e.models.axis(),s=e.models.axis(),o=e.models.axis(),u=e.models.legend(),a=d3.svg.brush(),f={top:30,right:30,bottom:30,left:60},l={top:0,right:30,bottom:20,left:60},c=e.utils.defaultColor(),h=null,p=null,d=100,v,m,g,y,b=!0,w=null,E=!0,S=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},x="No Data Available.",T=d3.dispatch("tooltipShow","tooltipHide","brush"),N=250;t.clipEdge(!0),n.interactive(!1),r.orient("bottom").tickPadding(5),i.orient("left"),s.orient("bottom").tickPadding(5),o.orient("left");var C=function(n,s){var o=n.pos[0]+(s.offsetLeft||0),u=n.pos[1]+(s.offsetTop||0),a=r.tickFormat()(t.x()(n.point,n.pointIndex)),f=i.tickFormat()(t.y()(n.point,n.pointIndex)),l=S(n.series.key,a,f,n,k);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+f.left,e.pos[1]+f.top],T.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),T.on("tooltipHide",function(){E&&e.tooltip.cleanup()}),k.dispatch=T,k.legend=u,k.lines=t,k.lines2=n,k.xAxis=r,k.yAxis=i,k.x2Axis=s,k.y2Axis=o,d3.rebind(k,t,"defined","isArea","size","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","id"),k.options=e.utils.optionsFunc.bind(k),k.x=function(e){return arguments.length?(t.x(e),n.x(e),k):t.x},k.y=function(e){return arguments.length?(t.y(e),n.y(e),k):t.y},k.margin=function(e){return arguments.length?(f.top=typeof e.top!="undefined"?e.top:f.top,f.right=typeof e.right!="undefined"?e.right:f.right,f.bottom=typeof e.bottom!="undefined"?e.bottom:f.bottom,f.left=typeof e.left!="undefined"?e.left:f.left,k):f},k.margin2=function(e){return arguments.length?(l=e,k):l},k.width=function(e){return arguments.length?(h=e,k):h},k.height=function(e){return arguments.length?(p=e,k):p},k.height2=function(e){return arguments.length?(d=e,k):d},k.color=function(t){return arguments.length?(c=e.utils.getColor(t),u.color(c),k):c},k.showLegend=function(e){return arguments.length?(b=e,k):b},k.tooltips=function(e){return arguments.length?(E=e,k):E},k.tooltipContent=function(e){return arguments.length?(S=e,k):S},k.interpolate=function(e){return arguments.length?(t.interpolate(e),n.interpolate(e),k):t.interpolate()},k.noData=function(e){return arguments.length?(x=e,k):x},k.xTickFormat=function(e){return arguments.length?(r.tickFormat(e),s.tickFormat(e),k):r.tickFormat()},k.yTickFormat=function(e){return arguments.length?(i.tickFormat(e),o.tickFormat(e),k):i.tickFormat()},k.brushExtent=function(e){return arguments.length?(w=e,k):w},k.transitionDuration=function(e){return arguments.length?(N=e,k):N},k},e.models.linePlusBarWithFocusChart=function(){"use strict";function B(e){return e.each(function(e){function nt(e){var t=+(e=="e"),n=t?1:-1,r=q/3;return"M"+.5*n+","+r+"A6,6 0 0 "+t+" "+6.5*n+","+(r+6)+"V"+(2*r-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*r+"Z"+"M"+2.5*n+","+(r+8)+"V"+(2*r-8)+"M"+4.5*n+","+(r+8)+"V"+(2*r-8)}function rt(){h.empty()||h.extent(x),Z.data([h.empty()?k.domain():x]).each(function(e,t){var n=k(e[0])-k.range()[0],r=k.range()[1]-k(e[1]);d3.select(this).select(".left").attr("width",n<0?0:n),d3.select(this).select(".right").attr("x",k(e[1])).attr("width",r<0?0:r)})}function it(){x=h.empty()?null:h.extent(),S=h.empty()?k.domain():h.extent(),D.brush({extent:S,brush:h}),rt(),r.width(F).height(I).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar})),t.width(F).height(I).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar}));var n=J.select(".nv-focus .nv-barsWrap").datum(U.length?U.map(function(e,t){return{key:e.key,values:e.values.filter(function(e,t){return r.x()(e,t)>=S[0]&&r.x()(e,t)<=S[1]})}}):[{values:[]}]),i=J.select(".nv-focus .nv-linesWrap").datum(z[0].disabled?[{values:[]}]:z.map(function(e,n){return{key:e.key,values:e.values.filter(function(e,n){return t.x()(e,n)>=S[0]&&t.x()(e,n)<=S[1]})}}));U.length?C=r.xScale():C=t.xScale(),s.scale(C).ticks(F/100).tickSize(-I,0),s.domain([Math.ceil(S[0]),Math.floor(S[1])]),J.select(".nv-x.nv-axis").transition().duration(P).call(s),n.transition().duration(P).call(r),i.transition().duration(P).call(t),J.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+L.range()[0]+")"),u.scale(L).ticks(I/36).tickSize(-F,0),J.select(".nv-focus .nv-y1.nv-axis").style("opacity",U.length?1:0),a.scale(A).ticks(I/36).tickSize(U.length?0:-F,0),J.select(".nv-focus .nv-y2.nv-axis").style("opacity",z.length?1:0).attr("transform","translate("+C.range()[1]+",0)"),J.select(".nv-focus .nv-y1.nv-axis").transition().duration(P).call(u),J.select(".nv-focus .nv-y2.nv-axis").transition().duration(P).call(a)}var N=d3.select(this),j=this,F=(v||parseInt(N.style("width"))||960)-p.left-p.right,I=(m||parseInt(N.style("height"))||400)-p.top-p.bottom-g,q=g-d.top-d.bottom;B.update=function(){N.transition().duration(P).call(B)},B.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var R=N.selectAll(".nv-noData").data([_]);return R.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),R.attr("x",p.left+F/2).attr("y",p.top+I/2).text(function(e){return e}),B}N.selectAll(".nv-noData").remove();var U=e.filter(function(e){return!e.disabled&&e.bar}),z=e.filter(function(e){return!e.bar});C=r.xScale(),k=o.scale(),L=r.yScale(),A=t.yScale(),O=i.yScale(),M=n.yScale();var W=e.filter(function(e){return!e.disabled&&e.bar}).map(function(e){return e.values.map(function(e,t){return{x:y(e,t),y:b(e,t)}})}),X=e.filter(function(e){return!e.disabled&&!e.bar}).map(function(e){return e.values.map(function(e,t){return{x:y(e,t),y:b(e,t)}})});C.range([0,F]),k.domain(d3.extent(d3.merge(W.concat(X)),function(e){return e.x})).range([0,F]);var V=N.selectAll("g.nv-wrap.nv-linePlusBar").data([e]),$=V.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),J=V.select("g");$.append("g").attr("class","nv-legendWrap");var K=$.append("g").attr("class","nv-focus");K.append("g").attr("class","nv-x nv-axis"),K.append("g").attr("class","nv-y1 nv-axis"),K.append("g").attr("class","nv-y2 nv-axis"),K.append("g").attr("class","nv-barsWrap"),K.append("g").attr("class","nv-linesWrap");var Q=$.append("g").attr("class","nv-context");Q.append("g").attr("class","nv-x nv-axis"),Q.append("g").attr("class","nv-y1 nv-axis"),Q.append("g").attr("class","nv-y2 nv-axis"),Q.append("g").attr("class","nv-barsWrap"),Q.append("g").attr("class","nv-linesWrap"),Q.append("g").attr("class","nv-brushBackground"),Q.append("g").attr("class","nv-x nv-brush"),E&&(c.width(F/2),J.select(".nv-legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.bar?" (left axis)":" (right axis)"),e})).call(c),p.top!=c.height()&&(p.top=c.height(),I=(m||parseInt(N.style("height"))||400)-p.top-p.bottom-g),J.select(".nv-legendWrap").attr("transform","translate("+F/2+","+ -p.top+")")),V.attr("transform","translate("+p.left+","+p.top+")"),i.width(F).height(q).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar})),n.width(F).height(q).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar}));var G=J.select(".nv-context .nv-barsWrap").datum(U.length?U:[{values:[]}]),Y=J.select(".nv-context .nv-linesWrap").datum(z[0].disabled?[{values:[]}]:z);J.select(".nv-context").attr("transform","translate(0,"+(I+p.bottom+d.top)+")"),G.transition().call(i),Y.transition().call(n),h.x(k).on("brush",it),x&&h.extent(x);var Z=J.select(".nv-brushBackground").selectAll("g").data([x||h.extent()]),et=Z.enter().append("g");et.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",q),et.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",q);var tt=J.select(".nv-x.nv-brush").call(h);tt.selectAll("rect").attr("height",q),tt.selectAll(".resize").append("path").attr("d",nt),o.ticks(F/100).tickSize(-q,0),J.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+O.range()[0]+")"),J.select(".nv-context .nv-x.nv-axis").transition().call(o),f.scale(O).ticks(q/36).tickSize(-F,0),J.select(".nv-context .nv-y1.nv-axis").style("opacity",U.length?1:0).attr("transform","translate(0,"+k.range()[0]+")"),J.select(".nv-context .nv-y1.nv-axis").transition().call(f),l.scale(M).ticks(q/36).tickSize(U.length?0:-F,0),J.select(".nv-context .nv-y2.nv-axis").style("opacity",z.length?1:0).attr("transform","translate("+k.range()[1]+",0)"),J.select(".nv-context .nv-y2.nv-axis").transition().call(l),c.dispatch.on("stateChange",function(e){B.update()}),D.on("tooltipShow",function(e){T&&H(e,j.parentNode)}),it()}),B}var t=e.models.line(),n=e.models.line(),r=e.models.historicalBar(),i=e.models.historicalBar(),s=e.models.axis(),o=e.models.axis(),u=e.models.axis(),a=e.models.axis(),f=e.models.axis(),l=e.models.axis(),c=e.models.legend(),h=d3.svg.brush(),p={top:30,right:30,bottom:30,left:60},d={top:0,right:30,bottom:20,left:60},v=null,m=null,g=100,y=function(e){return e.x},b=function(e){return e.y},w=e.utils.defaultColor(),E=!0,S,x=null,T=!0,N=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},C,k,L,A,O,M,_="No Data Available.",D=d3.dispatch("tooltipShow","tooltipHide","brush"),P=0;t.clipEdge(!0),n.interactive(!1),s.orient("bottom").tickPadding(5),u.orient("left"),a.orient("right"),o.orient("bottom").tickPadding(5),f.orient("left"),l.orient("right");var H=function(n,r){S&&(n.pointIndex+=Math.ceil(S[0]));var i=n.pos[0]+(r.offsetLeft||0),o=n.pos[1]+(r.offsetTop||0),f=s.tickFormat()(t.x()(n.point,n.pointIndex)),l=(n.series.bar?u:a).tickFormat()(t.y()(n.point,n.pointIndex)),c=N(n.series.key,f,l,n,B);e.tooltip.show([i,o],c,n.value<0?"n":"s",null,r)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+p.left,e.pos[1]+p.top],D.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){D.tooltipHide(e)}),r.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+p.left,e.pos[1]+p.top],D.tooltipShow(e)}),r.dispatch.on("elementMouseout.tooltip",function(e){D.tooltipHide(e)}),D.on("tooltipHide",function(){T&&e.tooltip.cleanup()}),B.dispatch=D,B.legend=c,B.lines=t,B.lines2=n,B.bars=r,B.bars2=i,B.xAxis=s,B.x2Axis=o,B.y1Axis=u,B.y2Axis=a,B.y3Axis=f,B.y4Axis=l,d3.rebind(B,t,"defined","size","clipVoronoi","interpolate"),B.options=e.utils.optionsFunc.bind(B),B.x=function(e){return arguments.length?(y=e,t.x(e),r.x(e),B):y},B.y=function(e){return arguments.length?(b=e,t.y(e),r.y(e),B):b},B.margin=function(e){return arguments.length?(p.top=typeof e.top!="undefined"?e.top:p.top,p.right=typeof e.right!="undefined"?e.right:p.right,p.bottom=typeof e.bottom!="undefined"?e.bottom:p.bottom,p.left=typeof e.left!="undefined"?e.left:p.left,B):p},B.width=function(e){return arguments.length?(v=e,B):v},B.height=function(e){return arguments.length?(m=e,B):m},B.color=function(t){return arguments.length?(w=e.utils.getColor(t),c.color(w),B):w},B.showLegend=function(e){return arguments.length?(E=e,B):E},B.tooltips=function(e){return arguments.length?(T=e,B):T},B.tooltipContent=function(e){return arguments.length?(N=e,B):N},B.noData=function(e){return arguments.length?(_=e,B):_},B.brushExtent=function(e){return arguments.length?(x=e,B):x},B},e.models.multiBar=function(){"use strict";function C(e){return e.each(function(e){var C=n-t.left-t.right,k=r-t.top-t.bottom,L=d3.select(this);d&&e.length&&(d=[{values:e[0].values.map(function(e){return{x:e.x,y:0,series:e.series,size:.01}})}]),c&&(e=d3.layout.stack().offset(h).values(function(e){return e.values}).y(a)(!e.length&&d?d:e)),e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})}),c&&e[0].values.map(function(t,n){var r=0,i=0;e.map(function(e){var t=e.values[n];t.size=Math.abs(t.y),t.y<0?(t.y1=i,i-=t.size):(t.y1=t.size+r,r+=t.size)})});var A=y&&b?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0,y1:e.y1}})});i.domain(y||d3.merge(A).map(function(e){return e.x})).rangeBands(w||[0,C],S),s.domain(b||d3.extent(d3.merge(A).map(function(e){return c?e.y>0?e.y1:e.y1+e.y:e.y}).concat(f))).range(E||[k,0]),i.domain()[0]===i.domain()[1]&&(i.domain()[0]?i.domain([i.domain()[0]-i.domain()[0]*.01,i.domain()[1]+i.domain()[1]*.01]):i.domain([-1,1])),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]+s.domain()[0]*.01,s.domain()[1]-s.domain()[1]*.01]):s.domain([-1,1])),T=T||i,N=N||s;var O=L.selectAll("g.nv-wrap.nv-multibar").data([e]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-multibar"),_=M.append("defs"),D=M.append("g"),P=O.select("g");D.append("g").attr("class","nv-groups"),O.attr("transform","translate("+t.left+","+t.top+")"),_.append("clipPath").attr("id","nv-edge-clip-"+o).append("rect"),O.select("#nv-edge-clip-"+o+" rect").attr("width",C).attr("height",k),P.attr("clip-path",l?"url(#nv-edge-clip-"+o+")":"");var H=O.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});H.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),H.exit().transition().selectAll("rect.nv-bar").delay(function(t,n){return n*g/e[0].values.length}).attr("y",function(e){return c?N(e.y0):N(0)}).attr("height",0).remove(),H.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return p(e,t)}).style("stroke",function(e,t){return p(e,t)}),H.transition().style("stroke-opacity",1).style("fill-opacity",.75);var B=H.selectAll("rect.nv-bar").data(function(t){return d&&!e.length?d.values:t.values});B.exit().remove();var j=B.enter().append("rect").attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).attr("x",function(t,n,r){return c?0:r*i.rangeBand()/e.length}).attr("y",function(e){return N(c?e.y0:0)}).attr("height",0).attr("width",i.rangeBand()/(c?1:e.length)).attr("transform",function(e,t){return"translate("+i(u(e,t))+",0)"});B.style("fill",function(e,t,n){return p(e,n,t)}).style("stroke",function(e,t,n){return p(e,n,t)}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),x.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),x.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){x.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){x.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+
-i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}),B.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).transition().attr("transform",function(e,t){return"translate("+i(u(e,t))+",0)"}),v&&(m||(m=e.map(function(){return!0})),B.style("fill",function(e,t,n){return d3.rgb(v(e,t)).darker(m.map(function(e,t){return t}).filter(function(e,t){return!m[t]})[n]).toString()}).style("stroke",function(e,t,n){return d3.rgb(v(e,t)).darker(m.map(function(e,t){return t}).filter(function(e,t){return!m[t]})[n]).toString()})),c?B.transition().delay(function(t,n){return n*g/e[0].values.length}).attr("y",function(e,t){return s(c?e.y1:0)}).attr("height",function(e,t){return Math.max(Math.abs(s(e.y+(c?e.y0:0))-s(c?e.y0:0)),1)}).attr("x",function(t,n){return c?0:t.series*i.rangeBand()/e.length}).attr("width",i.rangeBand()/(c?1:e.length)):B.transition().delay(function(t,n){return n*g/e[0].values.length}).attr("x",function(t,n){return t.series*i.rangeBand()/e.length}).attr("width",i.rangeBand()/e.length).attr("y",function(e,t){return a(e,t)<0?s(0):s(0)-s(a(e,t))<1?s(0)-1:s(a(e,t))||0}).attr("height",function(e,t){return Math.max(Math.abs(s(a(e,t))-s(0)),1)||0}),T=i.copy(),N=s.copy()}),C}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=d3.scale.ordinal(),s=d3.scale.linear(),o=Math.floor(Math.random()*1e4),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=!0,c=!1,h="zero",p=e.utils.defaultColor(),d=!1,v=null,m,g=1200,y,b,w,E,S=.1,x=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),T,N;return C.dispatch=x,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(u=e,C):u},C.y=function(e){return arguments.length?(a=e,C):a},C.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,C):t},C.width=function(e){return arguments.length?(n=e,C):n},C.height=function(e){return arguments.length?(r=e,C):r},C.xScale=function(e){return arguments.length?(i=e,C):i},C.yScale=function(e){return arguments.length?(s=e,C):s},C.xDomain=function(e){return arguments.length?(y=e,C):y},C.yDomain=function(e){return arguments.length?(b=e,C):b},C.xRange=function(e){return arguments.length?(w=e,C):w},C.yRange=function(e){return arguments.length?(E=e,C):E},C.forceY=function(e){return arguments.length?(f=e,C):f},C.stacked=function(e){return arguments.length?(c=e,C):c},C.stackOffset=function(e){return arguments.length?(h=e,C):h},C.clipEdge=function(e){return arguments.length?(l=e,C):l},C.color=function(t){return arguments.length?(p=e.utils.getColor(t),C):p},C.barColor=function(t){return arguments.length?(v=e.utils.getColor(t),C):v},C.disabled=function(e){return arguments.length?(m=e,C):m},C.id=function(e){return arguments.length?(o=e,C):o},C.hideable=function(e){return arguments.length?(d=e,C):d},C.delay=function(e){return arguments.length?(g=e,C):g},C.groupSpacing=function(e){return arguments.length?(S=e,C):S},C},e.models.multiBarChart=function(){"use strict";function A(e){return e.each(function(e){var b=d3.select(this),O=this,M=(u||parseInt(b.style("width"))||960)-o.left-o.right,_=(a||parseInt(b.style("height"))||400)-o.top-o.bottom;A.update=function(){b.transition().duration(k).call(A)},A.container=this,S.disabled=e.map(function(e){return!!e.disabled});if(!x){var D;x={};for(D in S)S[D]instanceof Array?x[D]=S[D].slice(0):x[D]=S[D]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var P=b.selectAll(".nv-noData").data([T]);return P.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),P.attr("x",o.left+M/2).attr("y",o.top+_/2).text(function(e){return e}),A}b.selectAll(".nv-noData").remove(),w=t.xScale(),E=t.yScale();var H=b.selectAll("g.nv-wrap.nv-multiBarWithLegend").data([e]),B=H.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarWithLegend").append("g"),j=H.select("g");B.append("g").attr("class","nv-x nv-axis"),B.append("g").attr("class","nv-y nv-axis"),B.append("g").attr("class","nv-barsWrap"),B.append("g").attr("class","nv-legendWrap"),B.append("g").attr("class","nv-controlsWrap"),c&&(i.width(M-C()),t.barColor()&&e.forEach(function(e,t){e.color=d3.rgb("#ccc").darker(t*1.5).toString()}),j.select(".nv-legendWrap").datum(e).call(i),o.top!=i.height()&&(o.top=i.height(),_=(a||parseInt(b.style("height"))||400)-o.top-o.bottom),j.select(".nv-legendWrap").attr("transform","translate("+C()+","+ -o.top+")"));if(l){var F=[{key:"Grouped",disabled:t.stacked()},{key:"Stacked",disabled:!t.stacked()}];s.width(C()).color(["#444","#444","#444"]),j.select(".nv-controlsWrap").datum(F).attr("transform","translate(0,"+ -o.top+")").call(s)}H.attr("transform","translate("+o.left+","+o.top+")"),d&&j.select(".nv-y.nv-axis").attr("transform","translate("+M+",0)"),t.disabled(e.map(function(e){return e.disabled})).width(M).height(_).color(e.map(function(e,t){return e.color||f(e,t)}).filter(function(t,n){return!e[n].disabled}));var I=j.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));I.transition().call(t);if(h){n.scale(w).ticks(M/100).tickSize(-_,0),j.select(".nv-x.nv-axis").attr("transform","translate(0,"+E.range()[0]+")"),j.select(".nv-x.nv-axis").transition().call(n);var q=j.select(".nv-x.nv-axis > g").selectAll("g");q.selectAll("line, text").style("opacity",1);if(m){var R=function(e,t){return"translate("+e+","+t+")"},U=5,z=17;q.selectAll("text").attr("transform",function(e,t,n){return R(0,n%2==0?U:z)});var W=d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;j.selectAll(".nv-x.nv-axis .nv-axisMaxMin text").attr("transform",function(e,t){return R(0,t===0||W%2!==0?z:U)})}v&&q.filter(function(t,n){return n%Math.ceil(e[0].values.length/(M/100))!==0}).selectAll("text, line").style("opacity",0),g&&q.selectAll(".tick text").attr("transform","rotate("+g+" 0,0)").style("text-anchor",g>0?"start":"end"),j.select(".nv-x.nv-axis").selectAll("g.nv-axisMaxMin text").style("opacity",1)}p&&(r.scale(E).ticks(_/36).tickSize(-M,0),j.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("stateChange",function(e){S=e,N.stateChange(S),A.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;F=F.map(function(e){return e.disabled=!0,e}),e.disabled=!1;switch(e.key){case"Grouped":t.stacked(!1);break;case"Stacked":t.stacked(!0)}S.stacked=t.stacked(),N.stateChange(S),A.update()}),N.on("tooltipShow",function(e){y&&L(e,O.parentNode)}),N.on("changeState",function(n){typeof n.disabled!="undefined"&&(e.forEach(function(e,t){e.disabled=n.disabled[t]}),S.disabled=n.disabled),typeof n.stacked!="undefined"&&(t.stacked(n.stacked),S.stacked=n.stacked),A.update()})}),A}var t=e.models.multiBar(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o={top:30,right:20,bottom:50,left:60},u=null,a=null,f=e.utils.defaultColor(),l=!0,c=!0,h=!0,p=!0,d=!1,v=!0,m=!1,g=0,y=!0,b=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" on "+t+"</p>"},w,E,S={stacked:!1},x=null,T="No Data Available.",N=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),C=function(){return l?180:0},k=250;t.stacked(!1),n.orient("bottom").tickPadding(7).highlightZero(!0).showMaxMin(!1).tickFormat(function(e){return e}),r.orient(d?"right":"left").tickFormat(d3.format(",.1f")),s.updateState(!1);var L=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=b(i.series.key,a,f,i,A);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],N.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){N.tooltipHide(e)}),N.on("tooltipHide",function(){y&&e.tooltip.cleanup()}),A.dispatch=N,A.multibar=t,A.legend=i,A.xAxis=n,A.yAxis=r,d3.rebind(A,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","clipEdge","id","stacked","stackOffset","delay","barColor","groupSpacing"),A.options=e.utils.optionsFunc.bind(A),A.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,A):o},A.width=function(e){return arguments.length?(u=e,A):u},A.height=function(e){return arguments.length?(a=e,A):a},A.color=function(t){return arguments.length?(f=e.utils.getColor(t),i.color(f),A):f},A.showControls=function(e){return arguments.length?(l=e,A):l},A.showLegend=function(e){return arguments.length?(c=e,A):c},A.showXAxis=function(e){return arguments.length?(h=e,A):h},A.showYAxis=function(e){return arguments.length?(p=e,A):p},A.rightAlignYAxis=function(e){return arguments.length?(d=e,r.orient(e?"right":"left"),A):d},A.reduceXTicks=function(e){return arguments.length?(v=e,A):v},A.rotateLabels=function(e){return arguments.length?(g=e,A):g},A.staggerLabels=function(e){return arguments.length?(m=e,A):m},A.tooltip=function(e){return arguments.length?(b=e,A):b},A.tooltips=function(e){return arguments.length?(y=e,A):y},A.tooltipContent=function(e){return arguments.length?(b=e,A):b},A.state=function(e){return arguments.length?(S=e,A):S},A.defaultState=function(e){return arguments.length?(x=e,A):x},A.noData=function(e){return arguments.length?(T=e,A):T},A.transitionDuration=function(e){return arguments.length?(k=e,A):k},A},e.models.multiBarHorizontal=function(){"use strict";function C(e){return e.each(function(e){var i=n-t.left-t.right,y=r-t.top-t.bottom,C=d3.select(this);p&&(e=d3.layout.stack().offset("zero").values(function(e){return e.values}).y(a)(e)),e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})}),p&&e[0].values.map(function(t,n){var r=0,i=0;e.map(function(e){var t=e.values[n];t.size=Math.abs(t.y),t.y<0?(t.y1=i-t.size,i-=t.size):(t.y1=r,r+=t.size)})});var k=b&&w?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0,y1:e.y1}})});s.domain(b||d3.merge(k).map(function(e){return e.x})).rangeBands(E||[0,y],.1),o.domain(w||d3.extent(d3.merge(k).map(function(e){return p?e.y>0?e.y1+e.y:e.y1:e.y}).concat(f))),d&&!p?o.range(S||[o.domain()[0]<0?m:0,i-(o.domain()[1]>0?m:0)]):o.range(S||[0,i]),T=T||s,N=N||d3.scale.linear().domain(o.domain()).range([o(0),o(0)]);var L=d3.select(this).selectAll("g.nv-wrap.nv-multibarHorizontal").data([e]),A=L.enter().append("g").attr("class","nvd3 nv-wrap nv-multibarHorizontal"),O=A.append("defs"),M=A.append("g"),_=L.select("g");M.append("g").attr("class","nv-groups"),L.attr("transform","translate("+t.left+","+t.top+")");var D=L.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});D.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),D.exit().transition().style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),D.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return l(e,t)}).style("stroke",function(e,t){return l(e,t)}),D.transition().style("stroke-opacity",1).style("fill-opacity",.75);var P=D.selectAll("g.nv-bar").data(function(e){return e.values});P.exit().remove();var H=P.enter().append("g").attr("transform",function(t,n,r){return"translate("+N(p?t.y0:0)+","+(p?0:r*s.rangeBand()/e.length+s(u(t,n)))+")"});H.append("rect").attr("width",0).attr("height",s.rangeBand()/(p?1:e.length)),P.on("mouseover",function(t,n){d3.select(this).classed("hover",!0),x.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[o(a(t,n)+(p?t.y0:0)),s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),x.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){x.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length,o(a(t,n)+(p?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){x.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length,o(a(t,n)+(p?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}),H.append("text"),d&&!p?(P.select("text").attr("text-anchor",function(e,t){return a(e,t)<0?"end":"start"}).attr("y",s.rangeBand()/(e.length*2)).attr("dy",".32em").text(function(e,t){return g(a(e,t))}),P.transition().select("text").attr("x",function(e,t){return a(e,t)<0?-4:o(a(e,t))-o(0)+4})):P.selectAll("text").text(""),v&&!p?(H.append("text").classed("nv-bar-label",!0),P.select("text.nv-bar-label").attr("text-anchor",function(e,t){return a(e,t)<0?"start":"end"}).attr("y",s.rangeBand()/(e.length*2)).attr("dy",".32em").text(function(e,t){return u(e,t)}),P.transition().select("text.nv-bar-label").attr("x",function(e,t){return a(e,t)<0?o(0)-o(a(e,t))+4:-4})):P.selectAll("text.nv-bar-label").text(""),P.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}),c&&(h||(h=e.map(function(){return!0})),P.style("fill",function(e,t,n){return d3.rgb(c(e,t)).darker(h.map(function(e,t){return t}).filter(function(e,t){return!h[t]})[n]).toString()}).style("stroke",function(e,t,n){return d3.rgb(c(e,t)).darker(h.map(function(e,t){return t}).filter(function(e,t){return!h[t]})[n]).toString()})),p?P.transition().attr("transform",function(e,t){return"translate("+o(e.y1)+","+s(u(e,t))+")"}).select("rect").attr("width",function(e,t){return Math.abs(o(a(e,t)+e.y0)-o(e.y0))}).attr("height",s.rangeBand()):P.transition().attr("transform",function(t,n){return"translate("+(a(t,n)<0?o(a(t,n)):o(0))+","+(t.series*s.rangeBand()/e.length+s(u(t,n)))+")"}).select("rect").attr("height",s.rangeBand()/e.length).attr("width",function(e,t){return Math.max(Math.abs(o(a(e,t))-o(0)),1)}),T=s.copy(),N=o.copy()}),C}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.ordinal(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=e.utils.defaultColor(),c=null,h,p=!1,d=!1,v=!1,m=60,g=d3.format(",.2f"),y=1200,b,w,E,S,x=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),T,N;return C.dispatch=x,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(u=e,C):u},C.y=function(e){return arguments.length?(a=e,C):a},C.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,C):t},C.width=function(e){return arguments.length?(n=e,C):n},C.height=function(e){return arguments.length?(r=e,C):r},C.xScale=function(e){return arguments.length?(s=e,C):s},C.yScale=function(e){return arguments.length?(o=e,C):o},C.xDomain=function(e){return arguments.length?(b=e,C):b},C.yDomain=function(e){return arguments.length?(w=e,C):w},C.xRange=function(e){return arguments.length?(E=e,C):E},C.yRange=function(e){return arguments.length?(S=e,C):S},C.forceY=function(e){return arguments.length?(f=e,C):f},C.stacked=function(e){return arguments.length?(p=e,C):p},C.color=function(t){return arguments.length?(l=e.utils.getColor(t),C):l},C.barColor=function(t){return arguments.length?(c=e.utils.getColor(t),C):c},C.disabled=function(e){return arguments.length?(h=e,C):h},C.id=function(e){return arguments.length?(i=e,C):i},C.delay=function(e){return arguments.length?(y=e,C):y},C.showValues=function(e){return arguments.length?(d=e,C):d},C.showBarLabels=function(e){return arguments.length?(v=e,C):v},C.valueFormat=function(e){return arguments.length?(g=e,C):g},C.valuePadding=function(e){return arguments.length?(m=e,C):m},C},e.models.multiBarHorizontalChart=function(){"use strict";function C(e){return e.each(function(e){var d=d3.select(this),m=this,k=(u||parseInt(d.style("width"))||960)-o.left-o.right,L=(a||parseInt(d.style("height"))||400)-o.top-o.bottom;C.update=function(){d.transition().duration(T).call(C)},C.container=this,b.disabled=e.map(function(e){return!!e.disabled});if(!w){var A;w={};for(A in b)b[A]instanceof Array?w[A]=b[A].slice(0):w[A]=b[A]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var O=d.selectAll(".nv-noData").data([E]);return O.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),O.attr("x",o.left+k/2).attr("y",o.top+L/2).text(function(e){return e}),C}d.selectAll(".nv-noData").remove(),g=t.xScale(),y=t.yScale();var M=d.selectAll("g.nv-wrap.nv-multiBarHorizontalChart").data([e]),_=M.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarHorizontalChart").append("g"),D=M.select("g");_.append("g").attr("class","nv-x nv-axis"),_.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),_.append("g").attr("class","nv-barsWrap"),_.append("g").attr("class","nv-legendWrap"),_.append("g").attr("class","nv-controlsWrap"),c&&(i.width(k-x()),t.barColor()&&e.forEach(function(e,t){e.color=d3.rgb("#ccc").darker(t*1.5).toString()}),D.select(".nv-legendWrap").datum(e).call(i),o.top!=i.height()&&(o.top=i.height(),L=(a||parseInt(d.style("height"))||400)-o.top-o.bottom),D.select(".nv-legendWrap").attr("transform","translate("+x()+","+ -o.top+")"));if(l){var P=[{key:"Grouped",disabled:t.stacked()},{key:"Stacked",disabled:!t.stacked()}];s.width(x()).color(["#444","#444","#444"]),D.select(".nv-controlsWrap").datum(P).attr("transform","translate(0,"+ -o.top+")").call(s)}M.attr("transform","translate("+o.left+","+o.top+")"),t.disabled(e.map(function(e){return e.disabled})).width(k).height(L).color(e.map(function(e,t){return e.color||f(e,t)}).filter(function(t,n){return!e[n].disabled}));var H=D.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));H.transition().call(t);if(h){n.scale(g).ticks(L/24).tickSize(-k,0),D.select(".nv-x.nv-axis").transition().call(n);var B=D.select(".nv-x.nv-axis").selectAll("g");B.selectAll("line, text")}p&&(r.scale(y).ticks(k/100).tickSize(-L,0),D.select(".nv-y.nv-axis").attr("transform","translate(0,"+L+")"),D.select(".nv-y.nv-axis").transition().call(r)),D.select(".nv-zeroLine line").attr("x1",y(0)).attr("x2",y(0)).attr("y1",0).attr("y2",-L),i.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),C.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;P=P.map(function(e){return e.disabled=!0,e}),e.disabled=!1;switch(e.key){case"Grouped":t.stacked(!1);break;case"Stacked":t.stacked(!0)}b.stacked=t.stacked(),S.stateChange(b),C.update()}),S.on("tooltipShow",function(e){v&&N(e,m.parentNode)}),S.on("changeState",function(n){typeof n.disabled!="undefined"&&(e.forEach(function(e,t){e.disabled=n.disabled[t]}),b.disabled=n.disabled),typeof n.stacked!="undefined"&&(t.stacked(n.stacked),b.stacked=n.stacked),C.update()})}),C}var t=e.models.multiBarHorizontal(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend().height(30),s=e.models.legend().height(30),o={top:30,right:20,bottom:50,left:60},u=null,a=null,f=e.utils.defaultColor(),l=!0,c=!0,h=!0,p=!0,d=!1,v=!0,m=function(e,t,n,r,i){return"<h3>"+e+" - "+t+"</h3>"+"<p>"+n+"</p>"},g,y,b={stacked:d},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),x=function(){return l?180:0},T=250;t.stacked(d),n.orient("left").tickPadding(5).highlightZero(!1).showMaxMin(!1).tickFormat(function(e){return e}),r.orient("bottom").tickFormat(d3.format(",.1f")),s.updateState(!1);var N=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=m(i.series.key,a,f,i,C);e.tooltip.show([o,u],l,i.value<0?"e":"w",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),C.dispatch=S,C.multibar=t,C.legend=i,C.xAxis=n,C.yAxis=r,d3.rebind(C,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","clipEdge","id","delay","showValues","showBarLabels","valueFormat","stacked","barColor"),C.options=e.utils.optionsFunc.bind(C),C.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,C):o},C.width=function(e){return arguments.length?(u=e,C):u},C.height=function(e){return arguments.length?(a=e,C):a},C.color=function(t){return arguments.length?(f=e.utils.getColor(t),i.color(f),C):f},C.showControls=function(e){return arguments.length?(l=e,C):l},C.showLegend=function(e){return arguments.length?(c=e,C):c},C.showXAxis=function(e){return arguments.length?(h=e,C):h},C.showYAxis=function(e){return arguments.length?(p=e,C):p},C.tooltip=function(e){return arguments.length?(m=e,C):m},C.tooltips=function(e){return arguments.length?(v=e,C):v},C.tooltipContent=function(e){return arguments.length?(m=e,C):m},C.state=function(e){return arguments.length?(b=e,C):b},C.defaultState=function(e){return arguments.length?(w=e,C):w},C.noData=function(e){return arguments.length?(E=e,C):E},C.transitionDuration=function(e){return arguments.length?(T=e,C):T},C},e.models.multiChart=function(){"use strict";function C(e){return e.each(function(e){var u=d3.select(this),f=this;C.update=function(){u.transition().call(C)},C.container=this;var k=(r||parseInt(u.style("width"))||960)-t.left-t.right,L=(i||parseInt(u.style("height"))||400)-t.top-t.bottom,A=e.filter(function(e){return!e.disabled&&e.type=="line"&&e.yAxis==1}),O=e.filter(function(e){return!e.disabled&&e.type=="line"&&e.yAxis==2}),M=e.filter(function(e){return!e.disabled&&e.type=="bar"&&e.yAxis==1}),_=e.filter(function(e){return!e.disabled&&e.type=="bar"&&e.yAxis==2}),D=e.filter(function(e){return!e.disabled&&e.type=="area"&&e.yAxis==1}),P=e.filter(function(e){return!e.disabled&&e.type=="area"&&e.yAxis==2}),H=e.filter(function(e){return!e.disabled&&e.yAxis==1}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})}),B=e.filter(function(e){return!e.disabled&&e.yAxis==2}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})});a.domain(d3.extent(d3.merge(H.concat(B)),function(e){return e.x})).range([0,k]);var j=u.selectAll("g.wrap.multiChart").data([e]),F=j.enter().append("g").attr("class","wrap nvd3 multiChart").append("g");F.append("g").attr("class","x axis"),F.append("g").attr("class","y1 axis"),F.append("g").attr("class","y2 axis"),F.append("g").attr("class","lines1Wrap"),F.append("g").attr("class","lines2Wrap"),F.append("g").attr("class","bars1Wrap"),F.append("g").attr("class","bars2Wrap"),F.append("g").attr("class","stack1Wrap"),F.append("g").attr("class","stack2Wrap"),F.append("g").attr("class","legendWrap");var I=j.select("g");s&&(x.width(k/2),I.select(".legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.yAxis==1?"":" (right axis)"),e})).call(x),t.top!=x.height()&&(t.top=x.height(),L=(i||parseInt(u.style("height"))||400)-t.top-t.bottom),I.select(".legendWrap").attr("transform","translate("+k/2+","+ -t.top+")")),d.width(k).height(L).interpolate("monotone").color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="line"})),v.width(k).height(L).interpolate("monotone").color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="line"})),m.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="bar"})),g.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="bar"})),y.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="area"})),b.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="area"})),I.attr("transform","translate("+t.left+","+t.top+")");var q=I.select(".lines1Wrap").datum(A),R=I.select(".bars1Wrap").datum(M),U=I.select(".stack1Wrap").datum(D),z=I.select(".lines2Wrap").datum(O),W=I.select(".bars2Wrap").datum(_),X=I.select(".stack2Wrap").datum(P),V=D.length?D.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[],$=P.length?P.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[];h.domain(l||d3.extent(d3.merge(H).concat(V),function(e){return e.y})).range([0,L]),p.domain(c||d3.extent(d3.merge(B).concat($),function(e){return e.y})).range([0,L]),d.yDomain(h.domain()),m.yDomain(h.domain()),y.yDomain(h.domain()),v.yDomain(p.domain()),g.yDomain(p.domain()),b.yDomain(p.domain()),D.length&&d3.transition(U).call(y),P.length&&d3.transition(X).call(b),M.length&&d3.transition(R).call(m),_.length&&d3.transition(W).call(g),A.length&&d3.transition(q).call(d),O.length&&d3.transition(z).call(v),w.ticks(k/100).tickSize(-L,0),I.select(".x.axis").attr("transform","translate(0,"+L+")"),d3.transition(I.select(".x.axis")).call(w),E.ticks(L/36).tickSize(-k,0),d3.transition(I.select(".y1.axis")).call(E),S.ticks(L/36).tickSize(-k,0),d3.transition(I.select(".y2.axis")).call(S),I.select(".y2.axis").style("opacity",B.length?1:0).attr("transform","translate("+a.range()[1]+",0)"),x.dispatch.on("stateChange",function(e){C.update()}),T.on("tooltipShow",function(e){o&&N(e,f.parentNode)})}),C}var t={top:30,right:20,bottom:50,left:60},n=d3.scale.category20().range(),r=null,i=null,s=!0,o=!0,u=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},a,f,l,c,a=d3.scale.linear(),h=d3.scale.linear(),p=d3.scale.linear(),d=e.models.line().yScale(h),v=e.models.line().yScale(p),m=e.models.multiBar().stacked(!1).yScale(h),g=e.models.multiBar().stacked(!1).yScale(p),y=e.models.stackedArea().yScale(h),b=e.models.stackedArea().yScale(p),w=e.models.axis().scale(a).orient("bottom").tickPadding(5),E=e.models.axis().scale(h).orient("left"),S=e.models.axis().scale(p).orient("right"),x=e.models.legend().height(30),T=d3.dispatch("tooltipShow","tooltipHide"),N=function(t,n){var r=t.pos[0]+(n.offsetLeft||0),i=t.pos[1]+(n.offsetTop||0),s=w.tickFormat()(d.x()(t.point,t.pointIndex)),o=(t.series.yAxis==2?S:E).tickFormat()(d.y()(t.point,t.pointIndex)),a=u(t.series.key,s,o,t,C);e.tooltip.show([r,i],a,undefined,undefined,n.offsetParent)};return d.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),d.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),m.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),m.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),g.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),g.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),y.dispatch.on("tooltipShow",function(e){if(!Math.round(y.y()(e.point)*100))return setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0),!1;e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),y.dispatch.on("tooltipHide",function(e){T.tooltipHide(e)}),b.dispatch.on("tooltipShow",function(e){if(!Math.round(b.y()(e.point)*100))return setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0),!1;e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),b.dispatch.on("tooltipHide",function(e){T.tooltipHide(e)}),d.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),d.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),T.on("tooltipHide",function(){o&&e.tooltip.cleanup()}),C.dispatch=T,C.lines1=d,C.lines2=v,C.bars1=m,C.bars2=g,C.stack1=y,C.stack2=b,C.xAxis=w,C.yAxis1=E,C.yAxis2=S,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(getX=e,d.x(e),m.x(e),C):getX},C.y=function(e){return arguments.length?(getY=e,d.y(e),m.y(e),C):getY},C.yDomain1=function(e){return arguments.length?(l=e,C):l},C.yDomain2=function(e){return arguments.length?(c=e,C):c},C.margin=function(e){return arguments.length?(t=e,C):t},C.width=function(e){return arguments.length?(r=e,C):r},C.height=function(e){return arguments.length?(i=e,C):i},C.color=function(e){return arguments.length?(n=e,x.color(e),C):n},C.showLegend=function(e){return arguments.length?(s=e,C):s},C.tooltips=function(e){return arguments.length?(o=e,C):o},C.tooltipContent=function(e){return arguments.length?(u=e,C):u},C},e.models.ohlcBar=function(){"use strict";function x(e){return e.each(function(e){var g=n-t.left-t.right,x=r-t.top-t.bottom,T=d3.select(this);s.domain(y||d3.extent(e[0].values.map(u).concat(p))),v?s.range(w||[g*.5/e[0].values.length,g*(e[0].values.length-.5)/e[0].values.length]):s.range(w||[0,g]),o.domain(b||[d3.min(e[0].values.map(h).concat(d)),d3.max(e[0].values.map(c).concat(d))]).range(E||[x,0]),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]-s.domain()[0]*.01,s.domain()[1]+s.domain()[1]*.01]):s.domain([-1,1])),o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]+o.domain()[0]*.01,o.domain()[1]-o.domain()[1]*.01]):o.domain([-1,1]));var N=d3.select(this).selectAll("g.nv-wrap.nv-ohlcBar").data([e[0].values]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-ohlcBar"),k=C.append("defs"),L=C.append("g"),A=N.select("g");L.append("g").attr("class","nv-ticks"),N.attr("transform","translate("+t.left+","+t.top+")"),T.on("click",function(e,t){S.chartClick({data:e,index:t,pos:d3.event,id:i})}),k.append("clipPath").attr("id","nv-chart-clip-path-"+i).append("rect"),N.select("#nv-chart-clip-path-"+i+" rect").attr("width",g).attr("height",x),A.attr("clip-path",m?"url(#nv-chart-clip-path-"+i+")":"");var O=N.select(".nv-ticks").selectAll(".nv-tick").data(function(e){return e});O.exit().remove();var M=O.enter().append("path").attr("class",function(e,t,n){return(f(e,t)>l(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}).attr("d",function(t,n){var r=g/e[0].values.length*.9;return"m0,0l0,"+(o(f(t,n))-o(c(t,n)))+"l"+ -r/2+",0l"+r/2+",0l0,"+(o(h(t,n))-o(f(t,n)))+"l0,"+(o(l(t,n))-o(h(t,n)))+"l"+r/2+",0l"+ -r/2+",0z"}).attr("transform",function(e,t){return"translate("+s(u(e,t))+","+o(c(e,t))+")"}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),S.elementMouseover({point:t,series:e[0],pos:[s(u(t,n)),o(a(t,n))],pointIndex:n,seriesIndex:0,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),S.elementMouseout({point:t,series:e[0],pointIndex:n,seriesIndex:0,e:d3.event})}).on("click",function(e,t){S.elementClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()}).on("dblclick",function(e,t){S.elementDblClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()});O.attr("class",function(e,t,n){return(f(e,t)>l(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}),d3.transition(O).attr("transform",function(e,t){return"translate("+s(u(e,t))+","+o(c(e,t))+")"}).attr("d",function(t,n){var r=g/e[0].values.length*.9;return"m0,0l0,"+(o(f(t,n))-o(c(t,n)))+"l"+ -r/2+",0l"+r/2+",0l0,"+(o(h(t,n))-o(f(t,n)))+"l0,"+(o(l(t,n))-o(h(t,n)))+"l"+r/2+",0l"+ -r/2+",0z"})}),x}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=function(e){return e.open},l=function(
-e){return e.close},c=function(e){return e.high},h=function(e){return e.low},p=[],d=[],v=!1,m=!0,g=e.utils.defaultColor(),y,b,w,E,S=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");return x.dispatch=S,x.options=e.utils.optionsFunc.bind(x),x.x=function(e){return arguments.length?(u=e,x):u},x.y=function(e){return arguments.length?(a=e,x):a},x.open=function(e){return arguments.length?(f=e,x):f},x.close=function(e){return arguments.length?(l=e,x):l},x.high=function(e){return arguments.length?(c=e,x):c},x.low=function(e){return arguments.length?(h=e,x):h},x.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,x):t},x.width=function(e){return arguments.length?(n=e,x):n},x.height=function(e){return arguments.length?(r=e,x):r},x.xScale=function(e){return arguments.length?(s=e,x):s},x.yScale=function(e){return arguments.length?(o=e,x):o},x.xDomain=function(e){return arguments.length?(y=e,x):y},x.yDomain=function(e){return arguments.length?(b=e,x):b},x.xRange=function(e){return arguments.length?(w=e,x):w},x.yRange=function(e){return arguments.length?(E=e,x):E},x.forceX=function(e){return arguments.length?(p=e,x):p},x.forceY=function(e){return arguments.length?(d=e,x):d},x.padData=function(e){return arguments.length?(v=e,x):v},x.clipEdge=function(e){return arguments.length?(m=e,x):m},x.color=function(t){return arguments.length?(g=e.utils.getColor(t),x):g},x.id=function(e){return arguments.length?(i=e,x):i},x},e.models.pie=function(){"use strict";function S(e){return e.each(function(e){function q(e){var t=(e.startAngle+e.endAngle)*90/Math.PI-90;return t>90?t-180:t}function R(e){e.endAngle=isNaN(e.endAngle)?0:e.endAngle,e.startAngle=isNaN(e.startAngle)?0:e.startAngle,m||(e.innerRadius=0);var t=d3.interpolate(this._current,e);return this._current=t(0),function(e){return A(t(e))}}function U(e){e.innerRadius=0;var t=d3.interpolate({startAngle:0,endAngle:0},e);return function(e){return A(t(e))}}var o=n-t.left-t.right,f=r-t.top-t.bottom,S=Math.min(o,f)/2,x=S-S/5,T=d3.select(this),N=T.selectAll(".nv-wrap.nv-pie").data(e),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-pie nv-chart-"+u),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-pie"),k.append("g").attr("class","nv-pieLabels"),N.attr("transform","translate("+t.left+","+t.top+")"),L.select(".nv-pie").attr("transform","translate("+o/2+","+f/2+")"),L.select(".nv-pieLabels").attr("transform","translate("+o/2+","+f/2+")"),T.on("click",function(e,t){E.chartClick({data:e,index:t,pos:d3.event,id:u})});var A=d3.svg.arc().outerRadius(x);y&&A.startAngle(y),b&&A.endAngle(b),m&&A.innerRadius(S*w);var O=d3.layout.pie().sort(null).value(function(e){return e.disabled?0:s(e)}),M=N.select(".nv-pie").selectAll(".nv-slice").data(O),_=N.select(".nv-pieLabels").selectAll(".nv-label").data(O);M.exit().remove(),_.exit().remove();var D=M.enter().append("g").attr("class","nv-slice").on("mouseover",function(e,t){d3.select(this).classed("hover",!0),E.elementMouseover({label:i(e.data),value:s(e.data),point:e.data,pointIndex:t,pos:[d3.event.pageX,d3.event.pageY],id:u})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),E.elementMouseout({label:i(e.data),value:s(e.data),point:e.data,index:t,id:u})}).on("click",function(e,t){E.elementClick({label:i(e.data),value:s(e.data),point:e.data,index:t,pos:d3.event,id:u}),d3.event.stopPropagation()}).on("dblclick",function(e,t){E.elementDblClick({label:i(e.data),value:s(e.data),point:e.data,index:t,pos:d3.event,id:u}),d3.event.stopPropagation()});M.attr("fill",function(e,t){return a(e,t)}).attr("stroke",function(e,t){return a(e,t)});var P=D.append("path").each(function(e){this._current=e});M.select("path").transition().attr("d",A).attrTween("d",R);if(l){var H=d3.svg.arc().innerRadius(0);c&&(H=A),h&&(H=d3.svg.arc().outerRadius(A.outerRadius())),_.enter().append("g").classed("nv-label",!0).each(function(e,t){var n=d3.select(this);n.attr("transform",function(e){if(g){e.outerRadius=x+10,e.innerRadius=x+15;var t=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?t-=90:t+=90,"translate("+H.centroid(e)+") rotate("+t+")"}return e.outerRadius=S+10,e.innerRadius=S+15,"translate("+H.centroid(e)+")"}),n.append("rect").style("stroke","#fff").style("fill","#fff").attr("rx",3).attr("ry",3),n.append("text").style("text-anchor",g?(e.startAngle+e.endAngle)/2<Math.PI?"start":"end":"middle").style("fill","#000")});var B={},j=14,F=140,I=function(e){return Math.floor(e[0]/F)*F+","+Math.floor(e[1]/j)*j};_.transition().attr("transform",function(e){if(g){e.outerRadius=x+10,e.innerRadius=x+15;var t=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?t-=90:t+=90,"translate("+H.centroid(e)+") rotate("+t+")"}e.outerRadius=S+10,e.innerRadius=S+15;var n=H.centroid(e),r=I(n);return B[r]&&(n[1]-=j),B[I(n)]=!0,"translate("+n+")"}),_.select(".nv-label text").style("text-anchor",g?(d.startAngle+d.endAngle)/2<Math.PI?"start":"end":"middle").text(function(e,t){var n=(e.endAngle-e.startAngle)/(2*Math.PI),r={key:i(e.data),value:s(e.data),percent:d3.format("%")(n)};return e.value&&n>v?r[p]:""})}}),S}var t={top:0,right:0,bottom:0,left:0},n=500,r=500,i=function(e){return e.x},s=function(e){return e.y},o=function(e){return e.description},u=Math.floor(Math.random()*1e4),a=e.utils.defaultColor(),f=d3.format(",.2f"),l=!0,c=!0,h=!1,p="key",v=.02,m=!1,g=!1,y=!1,b=!1,w=.5,E=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");return S.dispatch=E,S.options=e.utils.optionsFunc.bind(S),S.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,S):t},S.width=function(e){return arguments.length?(n=e,S):n},S.height=function(e){return arguments.length?(r=e,S):r},S.values=function(t){return e.log("pie.values() is no longer supported."),S},S.x=function(e){return arguments.length?(i=e,S):i},S.y=function(e){return arguments.length?(s=d3.functor(e),S):s},S.description=function(e){return arguments.length?(o=e,S):o},S.showLabels=function(e){return arguments.length?(l=e,S):l},S.labelSunbeamLayout=function(e){return arguments.length?(g=e,S):g},S.donutLabelsOutside=function(e){return arguments.length?(h=e,S):h},S.pieLabelsOutside=function(e){return arguments.length?(c=e,S):c},S.labelType=function(e){return arguments.length?(p=e,p=p||"key",S):p},S.donut=function(e){return arguments.length?(m=e,S):m},S.donutRatio=function(e){return arguments.length?(w=e,S):w},S.startAngle=function(e){return arguments.length?(y=e,S):y},S.endAngle=function(e){return arguments.length?(b=e,S):b},S.id=function(e){return arguments.length?(u=e,S):u},S.color=function(t){return arguments.length?(a=e.utils.getColor(t),S):a},S.valueFormat=function(e){return arguments.length?(f=e,S):f},S.labelThreshold=function(e){return arguments.length?(v=e,S):v},S},e.models.pieChart=function(){"use strict";function v(e){return e.each(function(e){var u=d3.select(this),a=this,f=(i||parseInt(u.style("width"))||960)-r.left-r.right,d=(s||parseInt(u.style("height"))||400)-r.top-r.bottom;v.update=function(){u.transition().call(v)},v.container=this,l.disabled=e.map(function(e){return!!e.disabled});if(!c){var m;c={};for(m in l)l[m]instanceof Array?c[m]=l[m].slice(0):c[m]=l[m]}if(!e||!e.length){var g=u.selectAll(".nv-noData").data([h]);return g.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),g.attr("x",r.left+f/2).attr("y",r.top+d/2).text(function(e){return e}),v}u.selectAll(".nv-noData").remove();var y=u.selectAll("g.nv-wrap.nv-pieChart").data([e]),b=y.enter().append("g").attr("class","nvd3 nv-wrap nv-pieChart").append("g"),w=y.select("g");b.append("g").attr("class","nv-pieWrap"),b.append("g").attr("class","nv-legendWrap"),o&&(n.width(f).key(t.x()),y.select(".nv-legendWrap").datum(e).call(n),r.top!=n.height()&&(r.top=n.height(),d=(s||parseInt(u.style("height"))||400)-r.top-r.bottom),y.select(".nv-legendWrap").attr("transform","translate(0,"+ -r.top+")")),y.attr("transform","translate("+r.left+","+r.top+")"),t.width(f).height(d);var E=w.select(".nv-pieWrap").datum([e]);d3.transition(E).call(t),n.dispatch.on("stateChange",function(e){l=e,p.stateChange(l),v.update()}),t.dispatch.on("elementMouseout.tooltip",function(e){p.tooltipHide(e)}),p.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),l.disabled=t.disabled),v.update()})}),v}var t=e.models.pie(),n=e.models.legend(),r={top:30,right:20,bottom:20,left:20},i=null,s=null,o=!0,u=e.utils.defaultColor(),a=!0,f=function(e,t,n,r){return"<h3>"+e+"</h3>"+"<p>"+t+"</p>"},l={},c=null,h="No Data Available.",p=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),d=function(n,r){var i=t.description()(n.point)||t.x()(n.point),s=n.pos[0]+(r&&r.offsetLeft||0),o=n.pos[1]+(r&&r.offsetTop||0),u=t.valueFormat()(t.y()(n.point)),a=f(i,u,n,v);e.tooltip.show([s,o],a,n.value<0?"n":"s",null,r)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+r.left,e.pos[1]+r.top],p.tooltipShow(e)}),p.on("tooltipShow",function(e){a&&d(e)}),p.on("tooltipHide",function(){a&&e.tooltip.cleanup()}),v.legend=n,v.dispatch=p,v.pie=t,d3.rebind(v,t,"valueFormat","values","x","y","description","id","showLabels","donutLabelsOutside","pieLabelsOutside","labelType","donut","donutRatio","labelThreshold"),v.options=e.utils.optionsFunc.bind(v),v.margin=function(e){return arguments.length?(r.top=typeof e.top!="undefined"?e.top:r.top,r.right=typeof e.right!="undefined"?e.right:r.right,r.bottom=typeof e.bottom!="undefined"?e.bottom:r.bottom,r.left=typeof e.left!="undefined"?e.left:r.left,v):r},v.width=function(e){return arguments.length?(i=e,v):i},v.height=function(e){return arguments.length?(s=e,v):s},v.color=function(r){return arguments.length?(u=e.utils.getColor(r),n.color(u),t.color(u),v):u},v.showLegend=function(e){return arguments.length?(o=e,v):o},v.tooltips=function(e){return arguments.length?(a=e,v):a},v.tooltipContent=function(e){return arguments.length?(f=e,v):f},v.state=function(e){return arguments.length?(l=e,v):l},v.defaultState=function(e){return arguments.length?(c=e,v):c},v.noData=function(e){return arguments.length?(h=e,v):h},v},e.models.scatter=function(){"use strict";function I(q){return q.each(function(I){function Q(){if(!g)return!1;var e,i=d3.merge(I.map(function(e,t){return e.values.map(function(e,n){var r=f(e,n),i=l(e,n);return[o(r)+Math.random()*1e-7,u(i)+Math.random()*1e-7,t,n,e]}).filter(function(e,t){return b(e[4],t)})}));if(D===!0){if(x){var a=X.select("defs").selectAll(".nv-point-clips").data([s]).enter();a.append("clipPath").attr("class","nv-point-clips").attr("id","nv-points-clip-"+s);var c=X.select("#nv-points-clip-"+s).selectAll("circle").data(i);c.enter().append("circle").attr("r",T),c.exit().remove(),c.attr("cx",function(e){return e[0]}).attr("cy",function(e){return e[1]}),X.select(".nv-point-paths").attr("clip-path","url(#nv-points-clip-"+s+")")}i.length&&(i.push([o.range()[0]-20,u.range()[0]-20,null,null]),i.push([o.range()[1]+20,u.range()[1]+20,null,null]),i.push([o.range()[0]-20,u.range()[0]+20,null,null]),i.push([o.range()[1]+20,u.range()[1]-20,null,null]));var h=d3.geom.polygon([[-10,-10],[-10,r+10],[n+10,r+10],[n+10,-10]]),p=d3.geom.voronoi(i).map(function(e,t){return{data:h.clip(e),series:i[t][2],point:i[t][3]}}),d=X.select(".nv-point-paths").selectAll("path").data(p);d.enter().append("path").attr("class",function(e,t){return"nv-path-"+t}),d.exit().remove(),d.attr("d",function(e){return e.data.length===0?"M 0 0":"M"+e.data.join("L")+"Z"});var v=function(e,n){if(F)return 0;var r=I[e.series];if(typeof r=="undefined")return;var i=r.values[e.point];n({point:i,series:r,pos:[o(f(i,e.point))+t.left,u(l(i,e.point))+t.top],seriesIndex:e.series,pointIndex:e.point})};d.on("click",function(e){v(e,_.elementClick)}).on("mouseover",function(e){v(e,_.elementMouseover)}).on("mouseout",function(e,t){v(e,_.elementMouseout)})}else X.select(".nv-groups").selectAll(".nv-group").selectAll(".nv-point").on("click",function(e,n){if(F||!I[e.series])return 0;var r=I[e.series],i=r.values[n];_.elementClick({point:i,series:r,pos:[o(f(i,n))+t.left,u(l(i,n))+t.top],seriesIndex:e.series,pointIndex:n})}).on("mouseover",function(e,n){if(F||!I[e.series])return 0;var r=I[e.series],i=r.values[n];_.elementMouseover({point:i,series:r,pos:[o(f(i,n))+t.left,u(l(i,n))+t.top],seriesIndex:e.series,pointIndex:n})}).on("mouseout",function(e,t){if(F||!I[e.series])return 0;var n=I[e.series],r=n.values[t];_.elementMouseout({point:r,series:n,seriesIndex:e.series,pointIndex:t})});F=!1}var q=n-t.left-t.right,R=r-t.top-t.bottom,U=d3.select(this);I.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var W=N&&C&&A?[]:d3.merge(I.map(function(e){return e.values.map(function(e,t){return{x:f(e,t),y:l(e,t),size:c(e,t)}})}));o.domain(N||d3.extent(W.map(function(e){return e.x}).concat(d))),w&&I[0]?o.range(k||[(q*E+q)/(2*I[0].values.length),q-q*(1+E)/(2*I[0].values.length)]):o.range(k||[0,q]),u.domain(C||d3.extent(W.map(function(e){return e.y}).concat(v))).range(L||[R,0]),a.domain(A||d3.extent(W.map(function(e){return e.size}).concat(m))).range(O||[16,256]);if(o.domain()[0]===o.domain()[1]||u.domain()[0]===u.domain()[1])M=!0;o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]-o.domain()[0]*.01,o.domain()[1]+o.domain()[1]*.01]):o.domain([-1,1])),u.domain()[0]===u.domain()[1]&&(u.domain()[0]?u.domain([u.domain()[0]-u.domain()[0]*.01,u.domain()[1]+u.domain()[1]*.01]):u.domain([-1,1])),isNaN(o.domain()[0])&&o.domain([-1,1]),isNaN(u.domain()[0])&&u.domain([-1,1]),P=P||o,H=H||u,B=B||a;var X=U.selectAll("g.nv-wrap.nv-scatter").data([I]),V=X.enter().append("g").attr("class","nvd3 nv-wrap nv-scatter nv-chart-"+s+(M?" nv-single-point":"")),$=V.append("defs"),J=V.append("g"),K=X.select("g");J.append("g").attr("class","nv-groups"),J.append("g").attr("class","nv-point-paths"),X.attr("transform","translate("+t.left+","+t.top+")"),$.append("clipPath").attr("id","nv-edge-clip-"+s).append("rect"),X.select("#nv-edge-clip-"+s+" rect").attr("width",q).attr("height",R),K.attr("clip-path",S?"url(#nv-edge-clip-"+s+")":""),F=!0;var G=X.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});G.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),G.exit().remove(),G.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),G.transition().style("fill",function(e,t){return i(e,t)}).style("stroke",function(e,t){return i(e,t)}).style("stroke-opacity",1).style("fill-opacity",.5);if(p){var Y=G.selectAll("circle.nv-point").data(function(e){return e.values},y);Y.enter().append("circle").style("fill",function(e,t){return e.color}).style("stroke",function(e,t){return e.color}).attr("cx",function(t,n){return e.utils.NaNtoZero(P(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(H(l(t,n)))}).attr("r",function(e,t){return Math.sqrt(a(c(e,t))/Math.PI)}),Y.exit().remove(),G.exit().selectAll("path.nv-point").transition().attr("cx",function(t,n){return e.utils.NaNtoZero(o(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(u(l(t,n)))}).remove(),Y.each(function(e,t){d3.select(this).classed("nv-point",!0).classed("nv-point-"+t,!0).classed("hover",!1)}),Y.transition().attr("cx",function(t,n){return e.utils.NaNtoZero(o(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(u(l(t,n)))}).attr("r",function(e,t){return Math.sqrt(a(c(e,t))/Math.PI)})}else{var Y=G.selectAll("path.nv-point").data(function(e){return e.values});Y.enter().append("path").style("fill",function(e,t){return e.color}).style("stroke",function(e,t){return e.color}).attr("transform",function(e,t){return"translate("+P(f(e,t))+","+H(l(e,t))+")"}).attr("d",d3.svg.symbol().type(h).size(function(e,t){return a(c(e,t))})),Y.exit().remove(),G.exit().selectAll("path.nv-point").transition().attr("transform",function(e,t){return"translate("+o(f(e,t))+","+u(l(e,t))+")"}).remove(),Y.each(function(e,t){d3.select(this).classed("nv-point",!0).classed("nv-point-"+t,!0).classed("hover",!1)}),Y.transition().attr("transform",function(e,t){return"translate("+o(f(e,t))+","+u(l(e,t))+")"}).attr("d",d3.svg.symbol().type(h).size(function(e,t){return a(c(e,t))}))}clearTimeout(j),j=setTimeout(Q,300),P=o.copy(),H=u.copy(),B=a.copy()}),I}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e5),o=d3.scale.linear(),u=d3.scale.linear(),a=d3.scale.linear(),f=function(e){return e.x},l=function(e){return e.y},c=function(e){return e.size||1},h=function(e){return e.shape||"circle"},p=!0,d=[],v=[],m=[],g=!0,y=null,b=function(e){return!e.notActive},w=!1,E=.1,S=!1,x=!0,T=function(){return 25},N=null,C=null,k=null,L=null,A=null,O=null,M=!1,_=d3.dispatch("elementClick","elementMouseover","elementMouseout"),D=!0,P,H,B,j,F=!1;return I.clearHighlights=function(){d3.selectAll(".nv-chart-"+s+" .nv-point.hover").classed("hover",!1)},I.highlightPoint=function(e,t,n){d3.select(".nv-chart-"+s+" .nv-series-"+e+" .nv-point-"+t).classed("hover",n)},_.on("elementMouseover.point",function(e){g&&I.highlightPoint(e.seriesIndex,e.pointIndex,!0)}),_.on("elementMouseout.point",function(e){g&&I.highlightPoint(e.seriesIndex,e.pointIndex,!1)}),I.dispatch=_,I.options=e.utils.optionsFunc.bind(I),I.x=function(e){return arguments.length?(f=d3.functor(e),I):f},I.y=function(e){return arguments.length?(l=d3.functor(e),I):l},I.size=function(e){return arguments.length?(c=d3.functor(e),I):c},I.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,I):t},I.width=function(e){return arguments.length?(n=e,I):n},I.height=function(e){return arguments.length?(r=e,I):r},I.xScale=function(e){return arguments.length?(o=e,I):o},I.yScale=function(e){return arguments.length?(u=e,I):u},I.zScale=function(e){return arguments.length?(a=e,I):a},I.xDomain=function(e){return arguments.length?(N=e,I):N},I.yDomain=function(e){return arguments.length?(C=e,I):C},I.sizeDomain=function(e){return arguments.length?(A=e,I):A},I.xRange=function(e){return arguments.length?(k=e,I):k},I.yRange=function(e){return arguments.length?(L=e,I):L},I.sizeRange=function(e){return arguments.length?(O=e,I):O},I.forceX=function(e){return arguments.length?(d=e,I):d},I.forceY=function(e){return arguments.length?(v=e,I):v},I.forceSize=function(e){return arguments.length?(m=e,I):m},I.interactive=function(e){return arguments.length?(g=e,I):g},I.pointKey=function(e){return arguments.length?(y=e,I):y},I.pointActive=function(e){return arguments.length?(b=e,I):b},I.padData=function(e){return arguments.length?(w=e,I):w},I.padDataOuter=function(e){return arguments.length?(E=e,I):E},I.clipEdge=function(e){return arguments.length?(S=e,I):S},I.clipVoronoi=function(e){return arguments.length?(x=e,I):x},I.useVoronoi=function(e){return arguments.length?(D=e,D===!1&&(x=!1),I):D},I.clipRadius=function(e){return arguments.length?(T=e,I):T},I.color=function(t){return arguments.length?(i=e.utils.getColor(t),I):i},I.shape=function(e){return arguments.length?(h=e,I):h},I.onlyCircles=function(e){return arguments.length?(p=e,I):p},I.id=function(e){return arguments.length?(s=e,I):s},I.singlePoint=function(e){return arguments.length?(M=e,I):M},I},e.models.scatterChart=function(){"use strict";function F(e){return e.each(function(e){function K(){if(T)return X.select(".nv-point-paths").style("pointer-events","all"),!1;X.select(".nv-point-paths").style("pointer-events","none");var i=d3.mouse(this);h.distortion(x).focus(i[0]),p.distortion(x).focus(i[1]),X.select(".nv-scatterWrap").call(t),b&&X.select(".nv-x.nv-axis").call(n),w&&X.select(".nv-y.nv-axis").call(r),X.select(".nv-distributionX").datum(e.filter(function(e){return!e.disabled})).call(o),X.select(".nv-distributionY").datum(e.filter(function(e){return!e.disabled})).call(u)}var C=d3.select(this),k=this,L=(f||parseInt(C.style("width"))||960)-a.left-a.right,I=(l||parseInt(C.style("height"))||400)-a.top-a.bottom;F.update=function(){C.transition().duration(D).call(F)},F.container=this,A.disabled=e.map(function(e){return!!e.disabled});if(!O){var q;O={};for(q in A)A[q]instanceof Array?O[q]=A[q].slice(0):O[q]=A[q]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var R=C.selectAll(".nv-noData").data([_]);return R.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),R.attr("x",a.left+L/2).attr("y",a.top+I/2).text(function(e){return e}),F}C.selectAll(".nv-noData").remove(),P=P||h,H=H||p;var U=C.selectAll("g.nv-wrap.nv-scatterChart").data([e]),z=U.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+t.id()),W=z.append("g"),X=U.select("g");W.append("rect").attr("class","nvd3 nv-background"),W.append("g").attr("class","nv-x nv-axis"),W.append("g").attr("class","nv-y nv-axis"),W.append("g").attr("class","nv-scatterWrap"),W.append("g").attr("class","nv-distWrap"),W.append("g").attr("class","nv-legendWrap"),W.append("g").attr("class","nv-controlsWrap");if(y){var V=S?L/2:L;i.width(V),U.select(".nv-legendWrap").datum(e).call(i),a.top!=i.height()&&(a.top=i.height(),I=(l||parseInt(C.style("height"))||400)-a.top-a.bottom),U.select(".nv-legendWrap").attr("transform","translate("+(L-V)+","+ -a.top+")")}S&&(s.width(180).color(["#444"]),X.select(".nv-controlsWrap").datum(j).attr("transform","translate(0,"+ -a.top+")").call(s)),U.attr("transform","translate("+a.left+","+a.top+")"),E&&X.select(".nv-y.nv-axis").attr("transform","translate("+L+",0)"),t.width(L).height(I).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),d!==0&&t.xDomain(null),v!==0&&t.yDomain(null),U.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t);if(d!==0){var $=h.domain()[1]-h.domain()[0];t.xDomain([h.domain()[0]-d*$,h.domain()[1]+d*$])}if(v!==0){var J=p.domain()[1]-p.domain()[0];t.yDomain([p.domain()[0]-v*J,p.domain()[1]+v*J])}(v!==0||d!==0)&&U.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),b&&(n.scale(h).ticks(n.ticks()&&n.ticks().length?n.ticks():L/100).tickSize(-I,0),X.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(n)),w&&(r.scale(p).ticks(r.ticks()&&r.ticks().length?r.ticks():I/36).tickSize(-L,0),X.select(".nv-y.nv-axis").call(r)),m&&(o.getData(t.x()).scale(h).width(L).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),W.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),X.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(e.filter(function(e){return!e.disabled})).call(o)),g&&(u.getData(t.y()).scale(p).width(I).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),W.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),X.select(".nv-distributionY").attr("transform","translate("+(E?L:-u.size())+",0)").datum(e.filter(function(e){return!e.disabled})).call(u)),d3.fisheye&&(X.select(".nv-background").attr("width",L).attr("height",I),X.select(".nv-background").on("mousemove",K),X.select(".nv-background").on("click",function(){T=!T}),t.dispatch.on("elementClick.freezeFisheye",function(){T=!T})),s.dispatch.on("legendClick",function(e,i){e.disabled=!e.disabled,x=e.disabled?0:2.5,X.select(".nv-background").style("pointer-events",e.disabled?"none":"all"),X.select(".nv-point-paths").style("pointer-events",e.disabled?"all":"none"),e.disabled?(h.distortion(x).focus(0),p.distortion(x).focus(0),X.select(".nv-scatterWrap").call(t),X.select(".nv-x.nv-axis").call(n),X.select(".nv-y.nv-axis").call(r)):T=!1,F.update()}),i.dispatch.on("stateChange",function(e){A.disabled=e.disabled,M.stateChange(A),F.update()}),t.dispatch.on("elementMouseover.tooltip",function(e){d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",function(t,n){return e.pos[1]-I}),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",e.pos[0]+o.size()),e.pos=[e.pos[0]+a.left,e.pos[1]+a.top],M.tooltipShow(e)}),M.on("tooltipShow",function(e){N&&B(e,k.parentNode)}),M.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),A.disabled=t.disabled),F.update()}),P=h.copy(),H=p.copy()}),F}var t=e.models.scatter(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.models.distribution(),u=e.models.distribution(),a={top:30,right:20,bottom:50,left:75},f=null,l=null,c=e.utils.defaultColor(),h=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.xScale(),p=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.yScale(),d=0,v=0,m=!1,g=!1,y=!0,b=!0,w=!0,E=!1,S=!!d3.fisheye,x=0,T=!1,N=!0,C=function(e,t,n){return"<strong>"+t+"</strong>"},k=function(e,t,n){return"<strong>"+n+"</strong>"},L=null,A={},O=null,M=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),_="No Data Available.",D=250;t.xScale(h).yScale(p),n.orient("bottom").tickPadding(10),r.orient(E?"right":"left").tickPadding(10),o.axis("x"),u.axis("y"),s.updateState(!1);var P,H,B=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),f=i.pos[0]+(s.offsetLeft||0),l=p.range()[0]+a.top+(s.offsetTop||0),c=h.range()[0]+a.left+(s.offsetLeft||0),d=i.pos[1]+(s.offsetTop||0),v=n.tickFormat()(t.x()(i.point,i.pointIndex)),m=r.tickFormat()(t.y()(i.point,i.pointIndex));C!=null&&e.tooltip.show([f,l],C(i.series.key,v,m,i,F),"n",1,s,"x-nvtooltip"),k!=null&&e.tooltip.show([c,d],k(i.series.key,v,m,i,F),"e",1,s,"y-nvtooltip"),L!=null&&e.tooltip.show([o,u],L(i.series.key,v,m,i,F),i.value<0?"n":"s",null,s)},j=[{key:"Magnify",disabled:!0}];return t.dispatch.on("elementMouseout.tooltip",function(e){M.tooltipHide(e),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",0),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",u.size())}),M.on("tooltipHide",function(){N&&e.tooltip.cleanup()}),F.dispatch=M,F.scatter=t,F.legend=i,F.controls=s,F.xAxis=n,F.yAxis=r,F.distX=o,F.distY=u,d3.rebind(F,t,"id","interactive","pointActive","x","y","shape","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","sizeRange","forceX","forceY","forceSize","clipVoronoi","clipRadius","useVoronoi"),F.options=e.utils.optionsFunc.bind(F),F.margin=function(e){return arguments.length?(a.top=typeof e.top!="undefined"?e.top:a.top,a.right=typeof e.right!="undefined"?e.right:a.right,a.bottom=typeof e.bottom!="undefined"?e.bottom:a.bottom,a.left=typeof e.left!="undefined"?e.left:a.left,F):a},F.width=function(e){return arguments.length?(f=e,F):f},F.height=function(e){return arguments.length?(l=e,F):l},F.color=function(t){return arguments.length?(c=e.utils.getColor(t),i.color(c),o.color(c),u.color(c),F):c},F.showDistX=function(e){return arguments.length?(m=e,F):m},F.showDistY=function(e){return arguments.length?(g=e,F):g},F.showControls=function(e){return arguments.length?(S=e,F):S},F.showLegend=function(e){return arguments.length?(y=e,F):y},F.showXAxis=function(e){return arguments.length?(b=e,F):b},F.showYAxis=function(e){return arguments.length?(w=e,F):w},F.rightAlignYAxis=function(e){return arguments.length?(E=e,r.orient(e?"right":"left"),F):E},F.fisheye=function(e){return arguments.length?(x=e,F):x},F.xPadding=function(e){return arguments.length?(d=e,F):d},F.yPadding=function(e){return arguments.length?(v=e,F):v},F.tooltips=function(e){return arguments.length?(N=e,F):N},F.tooltipContent=function(e){return arguments.length?(L=e,F):L},F.tooltipXContent=function(e){return arguments.length?(C=e,F):C},F.tooltipYContent=function(e){return arguments.length?(k=e,F):k},F.state=function(e){return arguments.length?(A=e,F):A},F.defaultState=function(e){return arguments.length?(O=e,F):O},F.noData=function(e){return arguments.length?(_=e,F):_},F.transitionDuration=function(e){return arguments.length?(D=e,F):D},F},e.models.scatterPlusLineChart=function(){"use strict";function B(e){return e.each(function(e){function $(){if(S)return z.select(".nv-point-paths").style("pointer-events","all"),!1;z.select(".nv-point-paths").style("pointer-events","none");var i=d3.mouse(this);h.distortion(E).focus(i[0]),p.distortion(E).focus(i[1]),z.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),g&&z.select(".nv-x.nv-axis").call(n),y&&z.select(".nv-y.nv-axis").call(r),z.select(".nv-distributionX").datum(e.filter(function(e){return!e.disabled})).call(o),z.select(".nv-distributionY").datum(e.filter(function(e){return!e.disabled})).call(u)}var T=d3.select(this),N=this,C=(f||parseInt(T.style("width"))||960)-a.left-a.right,j=(l||parseInt(T.style("height"))||400)-a.top-a.bottom;B.update=function(){T.transition().duration(M).call(B)},B.container=this,k.disabled=e.map(function(e){return!!e.disabled});if(!L){var F;L={};for(F in k)k[F]instanceof Array?L[F]=k[F].slice(0):L[F]=k[F]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var I=T.selectAll(".nv-noData").data([O]);return I.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),I.attr("x",a.left+C/2).attr("y",a.top+j/2).text(function(e){return e}),B}T.selectAll(".nv-noData").remove(),h=t.xScale(),p=t.yScale(),_=_||h,D=D||p;var q=T.selectAll("g.nv-wrap.nv-scatterChart").data([e]),R=q.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+t.id()),U=R.append("g"),z=q.select("g");U.append("rect").attr("class","nvd3 nv-background").style("pointer-events","none"),U.append("g").attr("class","nv-x nv-axis"),U.append("g").attr("class","nv-y nv-axis"),U.append("g").attr("class","nv-scatterWrap"),U.append("g").attr("class","nv-regressionLinesWrap"),U.append("g").attr("class","nv-distWrap"),U.append("g").attr("class","nv-legendWrap"),U.append("g").attr("class","nv-controlsWrap"),q.attr("transform","translate("+a.left+","+a.top+")"),b&&z.select(".nv-y.nv-axis").attr("transform","translate("+C+",0)"),m&&(i.width(C/2),q.select(".nv-legendWrap").datum(e).call(i),a.top!=i.height()&&(a.top=i.height(),j=(l||parseInt(T.style("height"))||400)-a.top-a.bottom),q.select(".nv-legendWrap").attr("transform","translate("+C/2+","+ -a.top+")")),w&&(s.width(180).color(["#444"]),z.select(".nv-controlsWrap").datum(H).attr("transform","translate(0,"+ -a.top+")").call(s)),t.width(C).height(j).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),q.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),q.select(".nv-regressionLinesWrap").attr("clip-path","url(#nv-edge-clip-"+t.id()+")");var W=q.select(".nv-regressionLinesWrap").selectAll(".nv-regLines").data(function(e){return e});W.enter().append("g").attr("class","nv-regLines");var X=W.selectAll(".nv-regLine").data(function(e){return[e]}),V=X.enter().append("line").attr("class","nv-regLine").style("stroke-opacity",0);X.transition().attr("x1",h.range()[0]).attr("x2",h.range()[1]).attr("y1",function(e,t){return p(h.domain()[0]*e.slope+e.intercept)}).attr("y2",function(e,t){return p(h.domain()[1]*e.slope+e.intercept)}).style("stroke",function(e,t,n){return c(e,n)}).style("stroke-opacity",function(e,t){return e.disabled||typeof e.slope=="undefined"||typeof e.intercept=="undefined"?0:1}),g&&(n.scale(h).ticks(n.ticks()?n.ticks():C/100).tickSize(-j,0),z.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(n)),y&&(r.scale(p).ticks(r.ticks()?r.ticks():j/36).tickSize(-C,0),z.select(".nv-y.nv-axis").call(r)),d&&(o.getData(t.x()).scale(h).width(C).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),U.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),z.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(e.filter(function(e){return!e.disabled})).call(o)),v&&(u.getData(t.y()).scale(p).width(j).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),U.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),z.select(".nv-distributionY").attr("transform"
-,"translate("+(b?C:-u.size())+",0)").datum(e.filter(function(e){return!e.disabled})).call(u)),d3.fisheye&&(z.select(".nv-background").attr("width",C).attr("height",j),z.select(".nv-background").on("mousemove",$),z.select(".nv-background").on("click",function(){S=!S}),t.dispatch.on("elementClick.freezeFisheye",function(){S=!S})),s.dispatch.on("legendClick",function(e,i){e.disabled=!e.disabled,E=e.disabled?0:2.5,z.select(".nv-background").style("pointer-events",e.disabled?"none":"all"),z.select(".nv-point-paths").style("pointer-events",e.disabled?"all":"none"),e.disabled?(h.distortion(E).focus(0),p.distortion(E).focus(0),z.select(".nv-scatterWrap").call(t),z.select(".nv-x.nv-axis").call(n),z.select(".nv-y.nv-axis").call(r)):S=!1,B.update()}),i.dispatch.on("stateChange",function(e){k=e,A.stateChange(k),B.update()}),t.dispatch.on("elementMouseover.tooltip",function(e){d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",e.pos[1]-j),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",e.pos[0]+o.size()),e.pos=[e.pos[0]+a.left,e.pos[1]+a.top],A.tooltipShow(e)}),A.on("tooltipShow",function(e){x&&P(e,N.parentNode)}),A.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),k.disabled=t.disabled),B.update()}),_=h.copy(),D=p.copy()}),B}var t=e.models.scatter(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.models.distribution(),u=e.models.distribution(),a={top:30,right:20,bottom:50,left:75},f=null,l=null,c=e.utils.defaultColor(),h=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.xScale(),p=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.yScale(),d=!1,v=!1,m=!0,g=!0,y=!0,b=!1,w=!!d3.fisheye,E=0,S=!1,x=!0,T=function(e,t,n){return"<strong>"+t+"</strong>"},N=function(e,t,n){return"<strong>"+n+"</strong>"},C=function(e,t,n,r){return"<h3>"+e+"</h3>"+"<p>"+r+"</p>"},k={},L=null,A=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),O="No Data Available.",M=250;t.xScale(h).yScale(p),n.orient("bottom").tickPadding(10),r.orient(b?"right":"left").tickPadding(10),o.axis("x"),u.axis("y"),s.updateState(!1);var _,D,P=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),f=i.pos[0]+(s.offsetLeft||0),l=p.range()[0]+a.top+(s.offsetTop||0),c=h.range()[0]+a.left+(s.offsetLeft||0),d=i.pos[1]+(s.offsetTop||0),v=n.tickFormat()(t.x()(i.point,i.pointIndex)),m=r.tickFormat()(t.y()(i.point,i.pointIndex));T!=null&&e.tooltip.show([f,l],T(i.series.key,v,m,i,B),"n",1,s,"x-nvtooltip"),N!=null&&e.tooltip.show([c,d],N(i.series.key,v,m,i,B),"e",1,s,"y-nvtooltip"),C!=null&&e.tooltip.show([o,u],C(i.series.key,v,m,i.point.tooltip,i,B),i.value<0?"n":"s",null,s)},H=[{key:"Magnify",disabled:!0}];return t.dispatch.on("elementMouseout.tooltip",function(e){A.tooltipHide(e),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",0),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",u.size())}),A.on("tooltipHide",function(){x&&e.tooltip.cleanup()}),B.dispatch=A,B.scatter=t,B.legend=i,B.controls=s,B.xAxis=n,B.yAxis=r,B.distX=o,B.distY=u,d3.rebind(B,t,"id","interactive","pointActive","x","y","shape","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","sizeRange","forceX","forceY","forceSize","clipVoronoi","clipRadius","useVoronoi"),B.options=e.utils.optionsFunc.bind(B),B.margin=function(e){return arguments.length?(a.top=typeof e.top!="undefined"?e.top:a.top,a.right=typeof e.right!="undefined"?e.right:a.right,a.bottom=typeof e.bottom!="undefined"?e.bottom:a.bottom,a.left=typeof e.left!="undefined"?e.left:a.left,B):a},B.width=function(e){return arguments.length?(f=e,B):f},B.height=function(e){return arguments.length?(l=e,B):l},B.color=function(t){return arguments.length?(c=e.utils.getColor(t),i.color(c),o.color(c),u.color(c),B):c},B.showDistX=function(e){return arguments.length?(d=e,B):d},B.showDistY=function(e){return arguments.length?(v=e,B):v},B.showControls=function(e){return arguments.length?(w=e,B):w},B.showLegend=function(e){return arguments.length?(m=e,B):m},B.showXAxis=function(e){return arguments.length?(g=e,B):g},B.showYAxis=function(e){return arguments.length?(y=e,B):y},B.rightAlignYAxis=function(e){return arguments.length?(b=e,r.orient(e?"right":"left"),B):b},B.fisheye=function(e){return arguments.length?(E=e,B):E},B.tooltips=function(e){return arguments.length?(x=e,B):x},B.tooltipContent=function(e){return arguments.length?(C=e,B):C},B.tooltipXContent=function(e){return arguments.length?(T=e,B):T},B.tooltipYContent=function(e){return arguments.length?(N=e,B):N},B.state=function(e){return arguments.length?(k=e,B):k},B.defaultState=function(e){return arguments.length?(L=e,B):L},B.noData=function(e){return arguments.length?(O=e,B):O},B.transitionDuration=function(e){return arguments.length?(M=e,B):M},B},e.models.sparkline=function(){"use strict";function d(e){return e.each(function(e){var i=n-t.left-t.right,d=r-t.top-t.bottom,v=d3.select(this);s.domain(l||d3.extent(e,u)).range(h||[0,i]),o.domain(c||d3.extent(e,a)).range(p||[d,0]);var m=v.selectAll("g.nv-wrap.nv-sparkline").data([e]),g=m.enter().append("g").attr("class","nvd3 nv-wrap nv-sparkline"),b=g.append("g"),w=m.select("g");m.attr("transform","translate("+t.left+","+t.top+")");var E=m.selectAll("path").data(function(e){return[e]});E.enter().append("path"),E.exit().remove(),E.style("stroke",function(e,t){return e.color||f(e,t)}).attr("d",d3.svg.line().x(function(e,t){return s(u(e,t))}).y(function(e,t){return o(a(e,t))}));var S=m.selectAll("circle.nv-point").data(function(e){function n(t){if(t!=-1){var n=e[t];return n.pointIndex=t,n}return null}var t=e.map(function(e,t){return a(e,t)}),r=n(t.lastIndexOf(o.domain()[1])),i=n(t.indexOf(o.domain()[0])),s=n(t.length-1);return[i,r,s].filter(function(e){return e!=null})});S.enter().append("circle"),S.exit().remove(),S.attr("cx",function(e,t){return s(u(e,e.pointIndex))}).attr("cy",function(e,t){return o(a(e,e.pointIndex))}).attr("r",2).attr("class",function(e,t){return u(e,e.pointIndex)==s.domain()[1]?"nv-point nv-currentValue":a(e,e.pointIndex)==o.domain()[0]?"nv-point nv-minValue":"nv-point nv-maxValue"})}),d}var t={top:2,right:0,bottom:2,left:0},n=400,r=32,i=!0,s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=e.utils.getColor(["#000"]),l,c,h,p;return d.options=e.utils.optionsFunc.bind(d),d.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,d):t},d.width=function(e){return arguments.length?(n=e,d):n},d.height=function(e){return arguments.length?(r=e,d):r},d.x=function(e){return arguments.length?(u=d3.functor(e),d):u},d.y=function(e){return arguments.length?(a=d3.functor(e),d):a},d.xScale=function(e){return arguments.length?(s=e,d):s},d.yScale=function(e){return arguments.length?(o=e,d):o},d.xDomain=function(e){return arguments.length?(l=e,d):l},d.yDomain=function(e){return arguments.length?(c=e,d):c},d.xRange=function(e){return arguments.length?(h=e,d):h},d.yRange=function(e){return arguments.length?(p=e,d):p},d.animate=function(e){return arguments.length?(i=e,d):i},d.color=function(t){return arguments.length?(f=e.utils.getColor(t),d):f},d},e.models.sparklinePlus=function(){"use strict";function v(e){return e.each(function(c){function O(){if(a)return;var e=C.selectAll(".nv-hoverValue").data(u),r=e.enter().append("g").attr("class","nv-hoverValue").style("stroke-opacity",0).style("fill-opacity",0);e.exit().transition().duration(250).style("stroke-opacity",0).style("fill-opacity",0).remove(),e.attr("transform",function(e){return"translate("+s(t.x()(c[e],e))+",0)"}).transition().duration(250).style("stroke-opacity",1).style("fill-opacity",1);if(!u.length)return;r.append("line").attr("x1",0).attr("y1",-n.top).attr("x2",0).attr("y2",b),r.append("text").attr("class","nv-xValue").attr("x",-6).attr("y",-n.top).attr("text-anchor","end").attr("dy",".9em"),C.select(".nv-hoverValue .nv-xValue").text(f(t.x()(c[u[0]],u[0]))),r.append("text").attr("class","nv-yValue").attr("x",6).attr("y",-n.top).attr("text-anchor","start").attr("dy",".9em"),C.select(".nv-hoverValue .nv-yValue").text(l(t.y()(c[u[0]],u[0])))}function M(){function r(e,n){var r=Math.abs(t.x()(e[0],0)-n),i=0;for(var s=0;s<e.length;s++)Math.abs(t.x()(e[s],s)-n)<r&&(r=Math.abs(t.x()(e[s],s)-n),i=s);return i}if(a)return;var e=d3.mouse(this)[0]-n.left;u=[r(c,Math.round(s.invert(e)))],O()}var m=d3.select(this),g=(r||parseInt(m.style("width"))||960)-n.left-n.right,b=(i||parseInt(m.style("height"))||400)-n.top-n.bottom;v.update=function(){v(e)},v.container=this;if(!c||!c.length){var w=m.selectAll(".nv-noData").data([d]);return w.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),w.attr("x",n.left+g/2).attr("y",n.top+b/2).text(function(e){return e}),v}m.selectAll(".nv-noData").remove();var E=t.y()(c[c.length-1],c.length-1);s=t.xScale(),o=t.yScale();var S=m.selectAll("g.nv-wrap.nv-sparklineplus").data([c]),T=S.enter().append("g").attr("class","nvd3 nv-wrap nv-sparklineplus"),N=T.append("g"),C=S.select("g");N.append("g").attr("class","nv-sparklineWrap"),N.append("g").attr("class","nv-valueWrap"),N.append("g").attr("class","nv-hoverArea"),S.attr("transform","translate("+n.left+","+n.top+")");var k=C.select(".nv-sparklineWrap");t.width(g).height(b),k.call(t);var L=C.select(".nv-valueWrap"),A=L.selectAll(".nv-currentValue").data([E]);A.enter().append("text").attr("class","nv-currentValue").attr("dx",p?-8:8).attr("dy",".9em").style("text-anchor",p?"end":"start"),A.attr("x",g+(p?n.right:0)).attr("y",h?function(e){return o(e)}:0).style("fill",t.color()(c[c.length-1],c.length-1)).text(l(E)),N.select(".nv-hoverArea").append("rect").on("mousemove",M).on("click",function(){a=!a}).on("mouseout",function(){u=[],O()}),C.select(".nv-hoverArea rect").attr("transform",function(e){return"translate("+ -n.left+","+ -n.top+")"}).attr("width",g+n.left+n.right).attr("height",b+n.top)}),v}var t=e.models.sparkline(),n={top:15,right:100,bottom:10,left:50},r=null,i=null,s,o,u=[],a=!1,f=d3.format(",r"),l=d3.format(",.2f"),c=!0,h=!0,p=!1,d="No Data Available.";return v.sparkline=t,d3.rebind(v,t,"x","y","xScale","yScale","color"),v.options=e.utils.optionsFunc.bind(v),v.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,v):n},v.width=function(e){return arguments.length?(r=e,v):r},v.height=function(e){return arguments.length?(i=e,v):i},v.xTickFormat=function(e){return arguments.length?(f=e,v):f},v.yTickFormat=function(e){return arguments.length?(l=e,v):l},v.showValue=function(e){return arguments.length?(c=e,v):c},v.alignValue=function(e){return arguments.length?(h=e,v):h},v.rightAlignValue=function(e){return arguments.length?(p=e,v):p},v.noData=function(e){return arguments.length?(d=e,v):d},v},e.models.stackedArea=function(){"use strict";function g(e){return e.each(function(e){var a=n-t.left-t.right,b=r-t.top-t.bottom,w=d3.select(this);p=v.xScale(),d=v.yScale();var E=e;e.forEach(function(e,t){e.seriesIndex=t,e.values=e.values.map(function(e,n){return e.index=n,e.seriesIndex=t,e})});var S=e.filter(function(e){return!e.disabled});e=d3.layout.stack().order(l).offset(f).values(function(e){return e.values}).x(o).y(u).out(function(e,t,n){var r=u(e)===0?0:n;e.display={y:r,y0:t}})(S);var T=w.selectAll("g.nv-wrap.nv-stackedarea").data([e]),N=T.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedarea"),C=N.append("defs"),k=N.append("g"),L=T.select("g");k.append("g").attr("class","nv-areaWrap"),k.append("g").attr("class","nv-scatterWrap"),T.attr("transform","translate("+t.left+","+t.top+")"),v.width(a).height(b).x(o).y(function(e){return e.display.y+e.display.y0}).forceY([0]).color(e.map(function(e,t){return e.color||i(e,e.seriesIndex)}));var A=L.select(".nv-scatterWrap").datum(e);A.call(v),C.append("clipPath").attr("id","nv-edge-clip-"+s).append("rect"),T.select("#nv-edge-clip-"+s+" rect").attr("width",a).attr("height",b),L.attr("clip-path",h?"url(#nv-edge-clip-"+s+")":"");var O=d3.svg.area().x(function(e,t){return p(o(e,t))}).y0(function(e){return d(e.display.y0)}).y1(function(e){return d(e.display.y+e.display.y0)}).interpolate(c),M=d3.svg.area().x(function(e,t){return p(o(e,t))}).y0(function(e){return d(e.display.y0)}).y1(function(e){return d(e.display.y0)}),_=L.select(".nv-areaWrap").selectAll("path.nv-area").data(function(e){return e});_.enter().append("path").attr("class",function(e,t){return"nv-area nv-area-"+t}).attr("d",function(e,t){return M(e.values,e.seriesIndex)}).on("mouseover",function(e,t){d3.select(this).classed("hover",!0),m.areaMouseover({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),m.areaMouseout({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("click",function(e,t){d3.select(this).classed("hover",!1),m.areaClick({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}),_.exit().remove(),_.style("fill",function(e,t){return e.color||i(e,e.seriesIndex)}).style("stroke",function(e,t){return e.color||i(e,e.seriesIndex)}),_.transition().attr("d",function(e,t){return O(e.values,t)}),v.dispatch.on("elementMouseover.area",function(e){L.select(".nv-chart-"+s+" .nv-area-"+e.seriesIndex).classed("hover",!0)}),v.dispatch.on("elementMouseout.area",function(e){L.select(".nv-chart-"+s+" .nv-area-"+e.seriesIndex).classed("hover",!1)}),g.d3_stackedOffset_stackPercent=function(e){var t=e.length,n=e[0].length,r=1/t,i,s,o,a=[];for(s=0;s<n;++s){for(i=0,o=0;i<E.length;i++)o+=u(E[i].values[s]);if(o)for(i=0;i<t;i++)e[i][s][1]/=o;else for(i=0;i<t;i++)e[i][s][1]=r}for(s=0;s<n;++s)a[s]=0;return a}}),g}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e5),o=function(e){return e.x},u=function(e){return e.y},a="stack",f="zero",l="default",c="linear",h=!1,p,d,v=e.models.scatter(),m=d3.dispatch("tooltipShow","tooltipHide","areaClick","areaMouseover","areaMouseout");return v.size(2.2).sizeDomain([2.2,2.2]),v.dispatch.on("elementClick.area",function(e){m.areaClick(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],m.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){m.tooltipHide(e)}),g.dispatch=m,g.scatter=v,d3.rebind(g,v,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","forceX","forceY","forceSize","clipVoronoi","useVoronoi","clipRadius","highlightPoint","clearHighlights"),g.options=e.utils.optionsFunc.bind(g),g.x=function(e){return arguments.length?(o=d3.functor(e),g):o},g.y=function(e){return arguments.length?(u=d3.functor(e),g):u},g.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,g):t},g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(r=e,g):r},g.clipEdge=function(e){return arguments.length?(h=e,g):h},g.color=function(t){return arguments.length?(i=e.utils.getColor(t),g):i},g.offset=function(e){return arguments.length?(f=e,g):f},g.order=function(e){return arguments.length?(l=e,g):l},g.style=function(e){if(!arguments.length)return a;a=e;switch(a){case"stack":g.offset("zero"),g.order("default");break;case"stream":g.offset("wiggle"),g.order("inside-out");break;case"stream-center":g.offset("silhouette"),g.order("inside-out");break;case"expand":g.offset("expand"),g.order("default");break;case"stack_percent":g.offset(g.d3_stackedOffset_stackPercent),g.order("default")}return g},g.interpolate=function(e){return arguments.length?(c=e,g):c},g},e.models.stackedAreaChart=function(){"use strict";function M(y){return y.each(function(y){var _=d3.select(this),D=this,P=(a||parseInt(_.style("width"))||960)-u.left-u.right,H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom;M.update=function(){_.transition().duration(A).call(M)},M.container=this,S.disabled=y.map(function(e){return!!e.disabled});if(!x){var B;x={};for(B in S)S[B]instanceof Array?x[B]=S[B].slice(0):x[B]=S[B]}if(!y||!y.length||!y.filter(function(e){return e.values.length}).length){var j=_.selectAll(".nv-noData").data([T]);return j.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),j.attr("x",u.left+P/2).attr("y",u.top+H/2).text(function(e){return e}),M}_.selectAll(".nv-noData").remove(),b=t.xScale(),w=t.yScale();var F=_.selectAll("g.nv-wrap.nv-stackedAreaChart").data([y]),I=F.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedAreaChart").append("g"),q=F.select("g");I.append("rect").style("opacity",0),I.append("g").attr("class","nv-x nv-axis"),I.append("g").attr("class","nv-y nv-axis"),I.append("g").attr("class","nv-stackedWrap"),I.append("g").attr("class","nv-legendWrap"),I.append("g").attr("class","nv-controlsWrap"),I.append("g").attr("class","nv-interactive"),q.select("rect").attr("width",P).attr("height",H);if(h){var R=c?P-C:P;i.width(R),q.select(".nv-legendWrap").datum(y).call(i),u.top!=i.height()&&(u.top=i.height(),H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom),q.select(".nv-legendWrap").attr("transform","translate("+(P-R)+","+ -u.top+")")}if(c){var U=[{key:L.stacked||"Stacked",metaKey:"Stacked",disabled:t.style()!="stack",style:"stack"},{key:L.stream||"Stream",metaKey:"Stream",disabled:t.style()!="stream",style:"stream"},{key:L.expanded||"Expanded",metaKey:"Expanded",disabled:t.style()!="expand",style:"expand"},{key:L.stack_percent||"Stack %",metaKey:"Stack_Percent",disabled:t.style()!="stack_percent",style:"stack_percent"}];C=k.length/3*260,U=U.filter(function(e){return k.indexOf(e.metaKey)!==-1}),s.width(C).color(["#444","#444","#444"]),q.select(".nv-controlsWrap").datum(U).call(s),u.top!=Math.max(s.height(),i.height())&&(u.top=Math.max(s.height(),i.height()),H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom),q.select(".nv-controlsWrap").attr("transform","translate(0,"+ -u.top+")")}F.attr("transform","translate("+u.left+","+u.top+")"),v&&q.select(".nv-y.nv-axis").attr("transform","translate("+P+",0)"),m&&(o.width(P).height(H).margin({left:u.left,top:u.top}).svgContainer(_).xScale(b),F.select(".nv-interactive").call(o)),t.width(P).height(H);var z=q.select(".nv-stackedWrap").datum(y);z.transition().call(t),p&&(n.scale(b).ticks(P/100).tickSize(-H,0),q.select(".nv-x.nv-axis").attr("transform","translate(0,"+H+")"),q.select(".nv-x.nv-axis").transition().duration(0).call(n)),d&&(r.scale(w).ticks(t.offset()=="wiggle"?0:H/36).tickSize(-P,0).setTickFormat(t.style()=="expand"||t.style()=="stack_percent"?d3.format("%"):E),q.select(".nv-y.nv-axis").transition().duration(0).call(r)),t.dispatch.on("areaClick.toggle",function(e){y.filter(function(e){return!e.disabled}).length===1?y.forEach(function(e){e.disabled=!1}):y.forEach(function(t,n){t.disabled=n!=e.seriesIndex}),S.disabled=y.map(function(e){return!!e.disabled}),N.stateChange(S),M.update()}),i.dispatch.on("stateChange",function(e){S.disabled=e.disabled,N.stateChange(S),M.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;U=U.map(function(e){return e.disabled=!0,e}),e.disabled=!1,t.style(e.style),S.style=t.style(),N.stateChange(S),M.update()}),o.dispatch.on("elementMousemove",function(i){t.clearHighlights();var s,a,f,c=[];y.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){a=e.interactiveBisect(n.values,i.pointXValue,M.x()),t.highlightPoint(r,a,!0);var o=n.values[a];if(typeof o=="undefined")return;typeof s=="undefined"&&(s=o),typeof f=="undefined"&&(f=M.xScale()(M.x()(o,a)));var u=t.style()=="expand"?o.display.y:M.y()(o,a);c.push({key:n.key,value:u,color:l(n,n.seriesIndex),stackedValue:o.display})}),c.reverse();if(c.length>2){var h=M.yScale().invert(i.mouseY),p=Infinity,d=null;c.forEach(function(e,t){h=Math.abs(h);var n=Math.abs(e.stackedValue.y0),r=Math.abs(e.stackedValue.y);if(h>=n&&h<=r+n){d=t;return}}),d!=null&&(c[d].highlight=!0)}var v=n.tickFormat()(M.x()(s,a)),m=t.style()=="expand"?function(e,t){return d3.format(".1%")(e)}:function(e,t){return r.tickFormat()(e)};o.tooltip.position({left:f+u.left,top:i.mouseY+u.top}).chartContainer(D.parentNode).enabled(g).valueFormatter(m).data({value:v,series:c})(),o.renderGuideLine(f)}),o.dispatch.on("elementMouseout",function(e){N.tooltipHide(),t.clearHighlights()}),N.on("tooltipShow",function(e){g&&O(e,D.parentNode)}),N.on("changeState",function(e){typeof e.disabled!="undefined"&&(y.forEach(function(t,n){t.disabled=e.disabled[n]}),S.disabled=e.disabled),typeof e.style!="undefined"&&t.style(e.style),M.update()})}),M}var t=e.models.stackedArea(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.interactiveGuideline(),u={top:30,right:25,bottom:50,left:60},a=null,f=null,l=e.utils.defaultColor(),c=!0,h=!0,p=!0,d=!0,v=!1,m=!1,g=!0,y=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" on "+t+"</p>"},b,w,E=d3.format(",.2f"),S={style:t.style()},x=null,T="No Data Available.",N=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),C=250,k=["Stacked","Stream","Expanded"],L={},A=250;n.orient("bottom").tickPadding(7),r.orient(v?"right":"left"),s.updateState(!1);var O=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=y(i.series.key,a,f,i,M);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("tooltipShow",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],N.tooltipShow(e)}),t.dispatch.on("tooltipHide",function(e){N.tooltipHide(e)}),N.on("tooltipHide",function(){g&&e.tooltip.cleanup()}),M.dispatch=N,M.stacked=t,M.legend=i,M.controls=s,M.xAxis=n,M.yAxis=r,M.interactiveLayer=o,d3.rebind(M,t,"x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","sizeDomain","interactive","useVoronoi","offset","order","style","clipEdge","forceX","forceY","forceSize","interpolate"),M.options=e.utils.optionsFunc.bind(M),M.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,M):u},M.width=function(e){return arguments.length?(a=e,M):a},M.height=function(e){return arguments.length?(f=e,M):f},M.color=function(n){return arguments.length?(l=e.utils.getColor(n),i.color(l),t.color(l),M):l},M.showControls=function(e){return arguments.length?(c=e,M):c},M.showLegend=function(e){return arguments.length?(h=e,M):h},M.showXAxis=function(e){return arguments.length?(p=e,M):p},M.showYAxis=function(e){return arguments.length?(d=e,M):d},M.rightAlignYAxis=function(e){return arguments.length?(v=e,r.orient(e?"right":"left"),M):v},M.useInteractiveGuideline=function(e){return arguments.length?(m=e,e===!0&&(M.interactive(!1),M.useVoronoi(!1)),M):m},M.tooltip=function(e){return arguments.length?(y=e,M):y},M.tooltips=function(e){return arguments.length?(g=e,M):g},M.tooltipContent=function(e){return arguments.length?(y=e,M):y},M.state=function(e){return arguments.length?(S=e,M):S},M.defaultState=function(e){return arguments.length?(x=e,M):x},M.noData=function(e){return arguments.length?(T=e,M):T},M.transitionDuration=function(e){return arguments.length?(A=e,M):A},M.controlsData=function(e){return arguments.length?(k=e,M):k},M.controlLabels=function(e){return arguments.length?typeof e!="object"?L:(L=e,M):L},r.setTickFormat=r.tickFormat,r.tickFormat=function(e){return arguments.length?(E=e,r):E},M}})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json
deleted file mode 100755
index 6e328d17..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "nvd3",
- "version": "0.0.1",
- "devDependencies": {
- "grunt": "~0.4.1",
- "grunt-contrib-jshint": "~0.3.0",
- "grunt-contrib-watch": "~0.3.1",
- "grunt-contrib-uglify": "~0.2.0",
- "grunt-contrib-concat": "~0.2.0",
- "grunt-contrib-copy": "~0.4.1",
- "grunt-contrib-cssmin": "~0.6.2"
- }
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js
deleted file mode 100755
index b96b071f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js
+++ /dev/null
@@ -1,125 +0,0 @@
-
-var nv = window.nv || {};
-
-
-nv.version = '1.1.15b';
-nv.dev = true //set false when in production
-
-window.nv = nv;
-
-nv.tooltip = nv.tooltip || {}; // For the tooltip system
-nv.utils = nv.utils || {}; // Utility subsystem
-nv.models = nv.models || {}; //stores all the possible models/components
-nv.charts = {}; //stores all the ready to use charts
-nv.graphs = []; //stores all the graphs currently on the page
-nv.logs = {}; //stores some statistics and potential error messages
-
-nv.dispatch = d3.dispatch('render_start', 'render_end');
-
-// *************************************************************************
-// Development render timers - disabled if dev = false
-
-if (nv.dev) {
- nv.dispatch.on('render_start', function(e) {
- nv.logs.startTime = +new Date();
- });
-
- nv.dispatch.on('render_end', function(e) {
- nv.logs.endTime = +new Date();
- nv.logs.totalTime = nv.logs.endTime - nv.logs.startTime;
- nv.log('total', nv.logs.totalTime); // used for development, to keep track of graph generation times
- });
-}
-
-// ********************************************
-// Public Core NV functions
-
-// Logs all arguments, and returns the last so you can test things in place
-// Note: in IE8 console.log is an object not a function, and if modernizr is used
-// then calling Function.prototype.bind with with anything other than a function
-// causes a TypeError to be thrown.
-nv.log = function() {
- if (nv.dev && console.log && console.log.apply)
- console.log.apply(console, arguments)
- else if (nv.dev && typeof console.log == "function" && Function.prototype.bind) {
- var log = Function.prototype.bind.call(console.log, console);
- log.apply(console, arguments);
- }
- return arguments[arguments.length - 1];
-};
-
-
-nv.render = function render(step) {
- step = step || 1; // number of graphs to generate in each timeout loop
-
- nv.render.active = true;
- nv.dispatch.render_start();
-
- setTimeout(function() {
- var chart, graph;
-
- for (var i = 0; i < step && (graph = nv.render.queue[i]); i++) {
- chart = graph.generate();
- if (typeof graph.callback == typeof(Function)) graph.callback(chart);
- nv.graphs.push(chart);
- }
-
- nv.render.queue.splice(0, i);
-
- if (nv.render.queue.length) setTimeout(arguments.callee, 0);
- else {
- nv.dispatch.render_end();
- nv.render.active = false;
- }
- }, 0);
-};
-
-nv.render.active = false;
-nv.render.queue = [];
-
-nv.addGraph = function(obj) {
- if (typeof arguments[0] === typeof(Function))
- obj = {generate: arguments[0], callback: arguments[1]};
-
- nv.render.queue.push(obj);
-
- if (!nv.render.active) nv.render();
-};
-
-nv.identity = function(d) { return d; };
-
-nv.strip = function(s) { return s.replace(/(\s|&)/g,''); };
-
-function daysInMonth(month,year) {
- return (new Date(year, month+1, 0)).getDate();
-}
-
-function d3_time_range(floor, step, number) {
- return function(t0, t1, dt) {
- var time = floor(t0), times = [];
- if (time < t0) step(time);
- if (dt > 1) {
- while (time < t1) {
- var date = new Date(+time);
- if ((number(date) % dt === 0)) times.push(date);
- step(time);
- }
- } else {
- while (time < t1) { times.push(new Date(+time)); step(time); }
- }
- return times;
- };
-}
-
-d3.time.monthEnd = function(date) {
- return new Date(date.getFullYear(), date.getMonth(), 0);
-};
-
-d3.time.monthEnds = d3_time_range(d3.time.monthEnd, function(date) {
- date.setUTCDate(date.getUTCDate() + 1);
- date.setDate(daysInMonth(date.getMonth() + 1, date.getFullYear()));
- }, function(date) {
- return date.getMonth();
- }
-);
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js
deleted file mode 100755
index 4dfb68dc..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Utility class to handle creation of an interactive layer.
-This places a rectangle on top of the chart. When you mouse move over it, it sends a dispatch
-containing the X-coordinate. It can also render a vertical line where the mouse is located.
-
-dispatch.elementMousemove is the important event to latch onto. It is fired whenever the mouse moves over
-the rectangle. The dispatch is given one object which contains the mouseX/Y location.
-It also has 'pointXValue', which is the conversion of mouseX to the x-axis scale.
-*/
-nv.interactiveGuideline = function() {
- "use strict";
- var tooltip = nv.models.tooltip();
- //Public settings
- var width = null
- , height = null
- //Please pass in the bounding chart's top and left margins
- //This is important for calculating the correct mouseX/Y positions.
- , margin = {left: 0, top: 0}
- , xScale = d3.scale.linear()
- , yScale = d3.scale.linear()
- , dispatch = d3.dispatch('elementMousemove', 'elementMouseout','elementDblclick')
- , showGuideLine = true
- , svgContainer = null
- //Must pass in the bounding chart's <svg> container.
- //The mousemove event is attached to this container.
- ;
-
- //Private variables
- var isMSIE = navigator.userAgent.indexOf("MSIE") !== -1 //Check user-agent for Microsoft Internet Explorer.
- ;
-
-
- function layer(selection) {
- selection.each(function(data) {
- var container = d3.select(this);
-
- var availableWidth = (width || 960), availableHeight = (height || 400);
-
- var wrap = container.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([data]);
- var wrapEnter = wrap.enter()
- .append("g").attr("class", " nv-wrap nv-interactiveLineLayer");
-
-
- wrapEnter.append("g").attr("class","nv-interactiveGuideLine");
-
- if (!svgContainer) {
- return;
- }
-
- function mouseHandler() {
- var d3mouse = d3.mouse(this);
- var mouseX = d3mouse[0];
- var mouseY = d3mouse[1];
- var subtractMargin = true;
- var mouseOutAnyReason = false;
- if (isMSIE) {
- /*
- D3.js (or maybe SVG.getScreenCTM) has a nasty bug in Internet Explorer 10.
- d3.mouse() returns incorrect X,Y mouse coordinates when mouse moving
- over a rect in IE 10.
- However, d3.event.offsetX/Y also returns the mouse coordinates
- relative to the triggering <rect>. So we use offsetX/Y on IE.
- */
- mouseX = d3.event.offsetX;
- mouseY = d3.event.offsetY;
-
- /*
- On IE, if you attach a mouse event listener to the <svg> container,
- it will actually trigger it for all the child elements (like <path>, <circle>, etc).
- When this happens on IE, the offsetX/Y is set to where ever the child element
- is located.
- As a result, we do NOT need to subtract margins to figure out the mouse X/Y
- position under this scenario. Removing the line below *will* cause
- the interactive layer to not work right on IE.
- */
- if(d3.event.target.tagName !== "svg")
- subtractMargin = false;
-
- if (d3.event.target.className.baseVal.match("nv-legend"))
- mouseOutAnyReason = true;
-
- }
-
- if(subtractMargin) {
- mouseX -= margin.left;
- mouseY -= margin.top;
- }
-
- /* If mouseX/Y is outside of the chart's bounds,
- trigger a mouseOut event.
- */
- if (mouseX < 0 || mouseY < 0
- || mouseX > availableWidth || mouseY > availableHeight
- || (d3.event.relatedTarget && d3.event.relatedTarget.ownerSVGElement === undefined)
- || mouseOutAnyReason
- )
- {
- if (isMSIE) {
- if (d3.event.relatedTarget
- && d3.event.relatedTarget.ownerSVGElement === undefined
- && d3.event.relatedTarget.className.match(tooltip.nvPointerEventsClass)) {
- return;
- }
- }
- dispatch.elementMouseout({
- mouseX: mouseX,
- mouseY: mouseY
- });
- layer.renderGuideLine(null); //hide the guideline
- return;
- }
-
- var pointXValue = xScale.invert(mouseX);
- dispatch.elementMousemove({
- mouseX: mouseX,
- mouseY: mouseY,
- pointXValue: pointXValue
- });
-
- //If user double clicks the layer, fire a elementDblclick dispatch.
- if (d3.event.type === "dblclick") {
- dispatch.elementDblclick({
- mouseX: mouseX,
- mouseY: mouseY,
- pointXValue: pointXValue
- });
- }
- }
-
- svgContainer
- .on("mousemove",mouseHandler, true)
- .on("mouseout" ,mouseHandler,true)
- .on("dblclick" ,mouseHandler)
- ;
-
- //Draws a vertical guideline at the given X postion.
- layer.renderGuideLine = function(x) {
- if (!showGuideLine) return;
- var line = wrap.select(".nv-interactiveGuideLine")
- .selectAll("line")
- .data((x != null) ? [nv.utils.NaNtoZero(x)] : [], String);
-
- line.enter()
- .append("line")
- .attr("class", "nv-guideline")
- .attr("x1", function(d) { return d;})
- .attr("x2", function(d) { return d;})
- .attr("y1", availableHeight)
- .attr("y2",0)
- ;
- line.exit().remove();
-
- }
- });
- }
-
- layer.dispatch = dispatch;
- layer.tooltip = tooltip;
-
- layer.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return layer;
- };
-
- layer.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return layer;
- };
-
- layer.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return layer;
- };
-
- layer.xScale = function(_) {
- if (!arguments.length) return xScale;
- xScale = _;
- return layer;
- };
-
- layer.showGuideLine = function(_) {
- if (!arguments.length) return showGuideLine;
- showGuideLine = _;
- return layer;
- };
-
- layer.svgContainer = function(_) {
- if (!arguments.length) return svgContainer;
- svgContainer = _;
- return layer;
- };
-
-
- return layer;
-};
-
-/* Utility class that uses d3.bisect to find the index in a given array, where a search value can be inserted.
-This is different from normal bisectLeft; this function finds the nearest index to insert the search value.
-
-For instance, lets say your array is [1,2,3,5,10,30], and you search for 28.
-Normal d3.bisectLeft will return 4, because 28 is inserted after the number 10. But interactiveBisect will return 5
-because 28 is closer to 30 than 10.
-
-Unit tests can be found in: interactiveBisectTest.html
-
-Has the following known issues:
- * Will not work if the data points move backwards (ie, 10,9,8,7, etc) or if the data points are in random order.
- * Won't work if there are duplicate x coordinate values.
-*/
-nv.interactiveBisect = function (values, searchVal, xAccessor) {
- "use strict";
- if (! values instanceof Array) return null;
- if (typeof xAccessor !== 'function') xAccessor = function(d,i) { return d.x;}
-
- var bisect = d3.bisector(xAccessor).left;
- var index = d3.max([0, bisect(values,searchVal) - 1]);
- var currentValue = xAccessor(values[index], index);
- if (typeof currentValue === 'undefined') currentValue = index;
-
- if (currentValue === searchVal) return index; //found exact match
-
- var nextIndex = d3.min([index+1, values.length - 1]);
- var nextValue = xAccessor(values[nextIndex], nextIndex);
- if (typeof nextValue === 'undefined') nextValue = nextIndex;
-
- if (Math.abs(nextValue - searchVal) >= Math.abs(currentValue - searchVal))
- return index;
- else
- return nextIndex
-};
-
-/*
-Returns the index in the array "values" that is closest to searchVal.
-Only returns an index if searchVal is within some "threshold".
-Otherwise, returns null.
-*/
-nv.nearestValueIndex = function (values, searchVal, threshold) {
- "use strict";
- var yDistMax = Infinity, indexToHighlight = null;
- values.forEach(function(d,i) {
- var delta = Math.abs(searchVal - d);
- if ( delta <= yDistMax && delta < threshold) {
- yDistMax = delta;
- indexToHighlight = i;
- }
- });
- return indexToHighlight;
-}; \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js
deleted file mode 100755
index af50383e..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js
deleted file mode 100755
index 37677640..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js
+++ /dev/null
@@ -1,405 +0,0 @@
-nv.models.axis = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var axis = d3.svg.axis()
- ;
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 75 //only used for tickLabel currently
- , height = 60 //only used for tickLabel currently
- , scale = d3.scale.linear()
- , axisLabelText = null
- , showMaxMin = true //TODO: showMaxMin should be disabled on all ordinal scaled axes
- , highlightZero = true
- , rotateLabels = 0
- , rotateYLabel = true
- , staggerLabels = false
- , isOrdinal = false
- , ticks = null
- , axisLabelDistance = 12 //The larger this number is, the closer the axis label is to the axis.
- ;
-
- axis
- .scale(scale)
- .orient('bottom')
- .tickFormat(function(d) { return d })
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var scale0;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-axis').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-axis');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- //------------------------------------------------------------
-
-
- if (ticks !== null)
- axis.ticks(ticks);
- else if (axis.orient() == 'top' || axis.orient() == 'bottom')
- axis.ticks(Math.abs(scale.range()[1] - scale.range()[0]) / 100);
-
-
- //TODO: consider calculating width/height based on whether or not label is added, for reference in charts using this component
-
-
- g.transition().call(axis);
-
- scale0 = scale0 || axis.scale();
-
- var fmt = axis.tickFormat();
- if (fmt == null) {
- fmt = scale0.tickFormat();
- }
-
- var axisLabel = g.selectAll('text.nv-axislabel')
- .data([axisLabelText || null]);
- axisLabel.exit().remove();
- switch (axis.orient()) {
- case 'top':
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
- axisLabel
- .attr('text-anchor', 'middle')
- .attr('y', 0)
- .attr('x', w/2);
- if (showMaxMin) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- .data(scale.domain());
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(' + scale(d) + ',0)'
- })
- .select('text')
- .attr('dy', '-0.5em')
- .attr('y', -axis.tickPadding())
- .attr('text-anchor', 'middle')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- return 'translate(' + scale.range()[i] + ',0)'
- });
- }
- break;
- case 'bottom':
- var xLabelMargin = 36;
- var maxTextWidth = 30;
- var xTicks = g.selectAll('g').select("text");
- if (rotateLabels%360) {
- //Calculate the longest xTick width
- xTicks.each(function(d,i){
- var width = this.getBBox().width;
- if(width > maxTextWidth) maxTextWidth = width;
- });
- //Convert to radians before calculating sin. Add 30 to margin for healthy padding.
- var sin = Math.abs(Math.sin(rotateLabels*Math.PI/180));
- var xLabelMargin = (sin ? sin*maxTextWidth : maxTextWidth)+30;
- //Rotate all xTicks
- xTicks
- .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
- .style('text-anchor', rotateLabels%360 > 0 ? 'start' : 'end');
- }
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
- axisLabel
- .attr('text-anchor', 'middle')
- .attr('y', xLabelMargin)
- .attr('x', w/2);
- if (showMaxMin) {
- //if (showMaxMin && !isOrdinal) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- //.data(scale.domain())
- .data([scale.domain()[0], scale.domain()[scale.domain().length - 1]]);
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
- })
- .select('text')
- .attr('dy', '.71em')
- .attr('y', axis.tickPadding())
- .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
- .style('text-anchor', rotateLabels ? (rotateLabels%360 > 0 ? 'start' : 'end') : 'middle')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- //return 'translate(' + scale.range()[i] + ',0)'
- //return 'translate(' + scale(d) + ',0)'
- return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
- });
- }
- if (staggerLabels)
- xTicks
- .attr('transform', function(d,i) { return 'translate(0,' + (i % 2 == 0 ? '0' : '12') + ')' });
-
- break;
- case 'right':
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- axisLabel
- .style('text-anchor', rotateYLabel ? 'middle' : 'begin')
- .attr('transform', rotateYLabel ? 'rotate(90)' : '')
- .attr('y', rotateYLabel ? (-Math.max(margin.right,width) + 12) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
- .attr('x', rotateYLabel ? (scale.range()[0] / 2) : axis.tickPadding());
- if (showMaxMin) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- .data(scale.domain());
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
- .style('opacity', 0);
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale(d) + ')'
- })
- .select('text')
- .attr('dy', '.32em')
- .attr('y', 0)
- .attr('x', axis.tickPadding())
- .style('text-anchor', 'start')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale.range()[i] + ')'
- })
- .select('text')
- .style('opacity', 1);
- }
- break;
- case 'left':
- /*
- //For dynamically placing the label. Can be used with dynamically-sized chart axis margins
- var yTicks = g.selectAll('g').select("text");
- yTicks.each(function(d,i){
- var labelPadding = this.getBBox().width + axis.tickPadding() + 16;
- if(labelPadding > width) width = labelPadding;
- });
- */
- axisLabel.enter().append('text').attr('class', 'nv-axislabel');
- axisLabel
- .style('text-anchor', rotateYLabel ? 'middle' : 'end')
- .attr('transform', rotateYLabel ? 'rotate(-90)' : '')
- .attr('y', rotateYLabel ? (-Math.max(margin.left,width) + axisLabelDistance) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
- .attr('x', rotateYLabel ? (-scale.range()[0] / 2) : -axis.tickPadding());
- if (showMaxMin) {
- var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
- .data(scale.domain());
- axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
- .style('opacity', 0);
- axisMaxMin.exit().remove();
- axisMaxMin
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale0(d) + ')'
- })
- .select('text')
- .attr('dy', '.32em')
- .attr('y', 0)
- .attr('x', -axis.tickPadding())
- .attr('text-anchor', 'end')
- .text(function(d,i) {
- var v = fmt(d);
- return ('' + v).match('NaN') ? '' : v;
- });
- axisMaxMin.transition()
- .attr('transform', function(d,i) {
- return 'translate(0,' + scale.range()[i] + ')'
- })
- .select('text')
- .style('opacity', 1);
- }
- break;
- }
- axisLabel
- .text(function(d) { return d });
-
-
- if (showMaxMin && (axis.orient() === 'left' || axis.orient() === 'right')) {
- //check if max and min overlap other values, if so, hide the values that overlap
- g.selectAll('g') // the g's wrapping each tick
- .each(function(d,i) {
- d3.select(this).select('text').attr('opacity', 1);
- if (scale(d) < scale.range()[1] + 10 || scale(d) > scale.range()[0] - 10) { // 10 is assuming text height is 16... if d is 0, leave it!
- if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
- d3.select(this).attr('opacity', 0);
-
- d3.select(this).select('text').attr('opacity', 0); // Don't remove the ZERO line!!
- }
- });
-
- //if Max and Min = 0 only show min, Issue #281
- if (scale.domain()[0] == scale.domain()[1] && scale.domain()[0] == 0)
- wrap.selectAll('g.nv-axisMaxMin')
- .style('opacity', function(d,i) { return !i ? 1 : 0 });
-
- }
-
- if (showMaxMin && (axis.orient() === 'top' || axis.orient() === 'bottom')) {
- var maxMinRange = [];
- wrap.selectAll('g.nv-axisMaxMin')
- .each(function(d,i) {
- try {
- if (i) // i== 1, max position
- maxMinRange.push(scale(d) - this.getBBox().width - 4) //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
- else // i==0, min position
- maxMinRange.push(scale(d) + this.getBBox().width + 4)
- }catch (err) {
- if (i) // i== 1, max position
- maxMinRange.push(scale(d) - 4) //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
- else // i==0, min position
- maxMinRange.push(scale(d) + 4)
- }
- });
- g.selectAll('g') // the g's wrapping each tick
- .each(function(d,i) {
- if (scale(d) < maxMinRange[0] || scale(d) > maxMinRange[1]) {
- if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
- d3.select(this).remove();
- else
- d3.select(this).select('text').remove(); // Don't remove the ZERO line!!
- }
- });
- }
-
-
- //highlight zero line ... Maybe should not be an option and should just be in CSS?
- if (highlightZero)
- g.selectAll('.tick')
- .filter(function(d) { return !parseFloat(Math.round(d.__data__*100000)/1000000) && (d.__data__ !== undefined) }) //this is because sometimes the 0 tick is a very small fraction, TODO: think of cleaner technique
- .classed('zero', true);
-
- //store old scales for use in transitions on update
- scale0 = scale.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.axis = axis;
-
- d3.rebind(chart, axis, 'orient', 'tickValues', 'tickSubdivide', 'tickSize', 'tickPadding', 'tickFormat');
- d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands'); //these are also accessible by chart.scale(), but added common ones directly for ease of use
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if(!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- }
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.ticks = function(_) {
- if (!arguments.length) return ticks;
- ticks = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.axisLabel = function(_) {
- if (!arguments.length) return axisLabelText;
- axisLabelText = _;
- return chart;
- }
-
- chart.showMaxMin = function(_) {
- if (!arguments.length) return showMaxMin;
- showMaxMin = _;
- return chart;
- }
-
- chart.highlightZero = function(_) {
- if (!arguments.length) return highlightZero;
- highlightZero = _;
- return chart;
- }
-
- chart.scale = function(_) {
- if (!arguments.length) return scale;
- scale = _;
- axis.scale(scale);
- isOrdinal = typeof scale.rangeBands === 'function';
- d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands');
- return chart;
- }
-
- chart.rotateYLabel = function(_) {
- if(!arguments.length) return rotateYLabel;
- rotateYLabel = _;
- return chart;
- }
-
- chart.rotateLabels = function(_) {
- if(!arguments.length) return rotateLabels;
- rotateLabels = _;
- return chart;
- }
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
- chart.axisLabelDistance = function(_) {
- if (!arguments.length) return axisLabelDistance;
- axisLabelDistance = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js
deleted file mode 100755
index 86ebeb0f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js
+++ /dev/null
@@ -1,250 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-
-nv.models.bullet = function() {
-
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , orient = 'left' // TODO top & bottom
- , reverse = false
- , ranges = function(d) { return d.ranges }
- , markers = function(d) { return d.markers }
- , measures = function(d) { return d.measures }
- , forceX = [0] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
- , width = 380
- , height = 30
- , tickFormat = null
- , dispatch = d3.dispatch('elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(d, i) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this),
- mainGroup = nv.log(this.parentNode.parentNode).getAttribute('transform'),
- heightFromTop = nv.log(parseInt(mainGroup.replace(/.*,(\d+)\)/,"$1"))); //TODO: There should be a smarter way to get this value
-
- var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
- markerz = markers.call(this, d, i).slice().sort(d3.descending),
- measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- // Compute the new x-scale.
- var MaxX = Math.max(rangez[0] ? rangez[0]:0 , markerz[0] ? markerz[0] : 0 , measurez[0] ? measurez[0] : 0)
- var x1 = d3.scale.linear()
- .domain([0, MaxX]).nice() // TODO: need to allow forceX and forceY, and xDomain, yDomain
- .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
- // Retrieve the old x-scale, if this is an update.
- var x0 = this.__chart__ || d3.scale.linear()
- .domain([0, Infinity])
- .range(x1.range());
-
- // Stash the new scale.
- this.__chart__ = x1;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-bullet').data([d]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bullet');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
- w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
- // Update the range rects.
- var range = g.selectAll('rect.nv-range')
- .data(rangez);
-
- range.enter().append('rect')
- .attr('class', function(d, i) { return 'nv-range nv-s' + i; })
- .attr('width', w0)
- .attr('height', availableHeight)
- .attr('x', reverse ? x0 : 0)
- .on('mouseover', function(d,i) {
- dispatch.elementMouseover({
- value: d,
- label: (i <= 0) ? 'Maximum' : (i > 1) ? 'Minimum' : 'Mean', //TODO: make these labels a variable
- pos: [x1(d), heightFromTop]
- })
- })
- .on('mouseout', function(d,i) {
- dispatch.elementMouseout({
- value: d,
- label: (i <= 0) ? 'Minimum' : (i >=1) ? 'Maximum' : 'Mean' //TODO: make these labels a variable
- })
- })
-
- d3.transition(range)
- .attr('x', reverse ? x1 : 0)
- .attr('width', w1)
- .attr('height', availableHeight);
-
-
- // Update the measure rects.
- var measure = g.selectAll('rect.nv-measure')
- .data(measurez);
-
- measure.enter().append('rect')
- .attr('class', function(d, i) { return 'nv-measure nv-s' + i; })
- .attr('width', w0)
- .attr('height', availableHeight / 3)
- .attr('x', reverse ? x0 : 0)
- .attr('y', availableHeight / 3)
- .on('mouseover', function(d) {
- dispatch.elementMouseover({
- value: d,
- label: 'Current', //TODO: make these labels a variable
- pos: [x1(d), heightFromTop]
- })
- })
- .on('mouseout', function(d) {
- dispatch.elementMouseout({
- value: d,
- label: 'Current' //TODO: make these labels a variable
- })
- })
-
- d3.transition(measure)
- .attr('width', w1)
- .attr('height', availableHeight / 3)
- .attr('x', reverse ? x1 : 0)
- .attr('y', availableHeight / 3);
-
-
-
- // Update the marker lines.
- var marker = g.selectAll('path.nv-markerTriangle')
- .data(markerz);
-
- var h3 = availableHeight / 6;
- marker.enter().append('path')
- .attr('class', 'nv-markerTriangle')
- .attr('transform', function(d) { return 'translate(' + x0(d) + ',' + (availableHeight / 2) + ')' })
- .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
- .on('mouseover', function(d,i) {
- dispatch.elementMouseover({
- value: d,
- label: 'Previous',
- pos: [x1(d), heightFromTop]
- })
- })
- .on('mouseout', function(d,i) {
- dispatch.elementMouseout({
- value: d,
- label: 'Previous'
- })
- });
-
- d3.transition(marker)
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',' + (availableHeight / 2) + ')' });
-
- marker.exit().remove();
-
- });
-
- d3.timer.flush();
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- // left, right, top, bottom
- chart.orient = function(_) {
- if (!arguments.length) return orient;
- orient = _;
- reverse = orient == 'right' || orient == 'bottom';
- return chart;
- };
-
- // ranges (bad, satisfactory, good)
- chart.ranges = function(_) {
- if (!arguments.length) return ranges;
- ranges = _;
- return chart;
- };
-
- // markers (previous, goal)
- chart.markers = function(_) {
- if (!arguments.length) return markers;
- markers = _;
- return chart;
- };
-
- // measures (actual, forecast)
- chart.measures = function(_) {
- if (!arguments.length) return measures;
- measures = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.tickFormat = function(_) {
- if (!arguments.length) return tickFormat;
- tickFormat = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js
deleted file mode 100755
index a2a0f077..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js
+++ /dev/null
@@ -1,349 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-nv.models.bulletChart = function() {
-
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var bullet = nv.models.bullet()
- ;
-
- var orient = 'left' // TODO top & bottom
- , reverse = false
- , margin = {top: 5, right: 40, bottom: 20, left: 120}
- , ranges = function(d) { return d.ranges }
- , markers = function(d) { return d.markers }
- , measures = function(d) { return d.measures }
- , width = null
- , height = 55
- , tickFormat = null
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + e.label + '</h3>' +
- '<p>' + e.value + '</p>'
- }
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, parentElement) {
- var offsetElement = parentElement.parentNode.parentNode,
- left = e.pos[0] + offsetElement.offsetLeft + margin.left,
- top = e.pos[1] + offsetElement.offsetTop + margin.top;
-
- var content = '<h3>' + e.label + '</h3>' +
- '<p>' + e.value + '</p>';
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement.parentNode);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(d, i) {
- var container = d3.select(this);
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- that = this;
-
-
- chart.update = function() { chart(selection) };
- chart.container = this;
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- /*
- // Disabled until I figure out a better way to check for no data with the bullet chart
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
- */
-
- //------------------------------------------------------------
-
-
-
- var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
- markerz = markers.call(this, d, i).slice().sort(d3.descending),
- measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-bulletChart').data([d]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bulletChart');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-bulletWrap');
- gEnter.append('g').attr('class', 'nv-titles');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + ( margin.top + i*height )+ ')');
-
- //------------------------------------------------------------
-
-
- // Compute the new x-scale.
- var MaxX = Math.max(rangez[0] ? rangez[0]:0 , markerz[0] ? markerz[0] : 0 , measurez[0] ? measurez[0] : 0)
- var x1 = d3.scale.linear()
- .domain([0, MaxX]).nice() // TODO: need to allow forceX and forceY, and xDomain, yDomain
- .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
- // Retrieve the old x-scale, if this is an update.
- var x0 = this.__chart__ || d3.scale.linear()
- .domain([0, Infinity])
- .range(x1.range());
-
- // Stash the new scale.
- this.__chart__ = x1;
-
- /*
- // Derive width-scales from the x-scales.
- var w0 = bulletWidth(x0),
- w1 = bulletWidth(x1);
-
- function bulletWidth(x) {
- var x0 = x(0);
- return function(d) {
- return Math.abs(x(d) - x(0));
- };
- }
-
- function bulletTranslate(x) {
- return function(d) {
- return 'translate(' + x(d) + ',0)';
- };
- }
- */
-
- var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
- w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
- var title = gEnter.select('.nv-titles').append("g")
- .attr("text-anchor", "end")
- .attr("transform", "translate(-6," + (height - margin.top - margin.bottom) / 2 + ")");
- title.append("text")
- .attr("class", "nv-title")
- .text(function(d) { return d.title; });
-
- title.append("text")
- .attr("class", "nv-subtitle")
- .attr("dy", "1em")
- .text(function(d) { return d.subtitle; });
-
-
-
- bullet
- .width(availableWidth)
- .height(availableHeight)
-
- var bulletWrap = g.select('.nv-bulletWrap');
-
- d3.transition(bulletWrap).call(bullet);
-
-
-
- // Compute the tick format.
- var format = tickFormat || x1.tickFormat(8);
-
- // Update the tick groups.
- var tick = g.selectAll('g.nv-tick')
- .data(x1.ticks(8), function(d) {
- return this.textContent || format(d);
- });
-
- // Initialize the ticks with the old scale, x0.
- var tickEnter = tick.enter().append('g')
- .attr('class', 'nv-tick')
- .attr('transform', function(d) { return 'translate(' + x0(d) + ',0)' })
- .style('opacity', 1e-6);
-
- tickEnter.append('line')
- .attr('y1', availableHeight)
- .attr('y2', availableHeight * 7 / 6);
-
- tickEnter.append('text')
- .attr('text-anchor', 'middle')
- .attr('dy', '1em')
- .attr('y', availableHeight * 7 / 6)
- .text(format);
-
- // Transition the entering ticks to the new scale, x1.
- d3.transition(tickEnter)
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
- .style('opacity', 1);
-
- // Transition the updating ticks to the new scale, x1.
- var tickUpdate = d3.transition(tick)
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
- .style('opacity', 1);
-
- tickUpdate.select('line')
- .attr('y1', availableHeight)
- .attr('y2', availableHeight * 7 / 6);
-
- tickUpdate.select('text')
- .attr('y', availableHeight * 7 / 6);
-
- // Transition the exiting ticks to the new scale, x1.
- d3.transition(tick.exit())
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
- .style('opacity', 1e-6)
- .remove();
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
- });
-
- d3.timer.flush();
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- bullet.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow(e);
- });
-
- bullet.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.bullet = bullet;
-
- // left, right, top, bottom
- chart.orient = function(x) {
- if (!arguments.length) return orient;
- orient = x;
- reverse = orient == 'right' || orient == 'bottom';
- return chart;
- };
-
- // ranges (bad, satisfactory, good)
- chart.ranges = function(x) {
- if (!arguments.length) return ranges;
- ranges = x;
- return chart;
- };
-
- // markers (previous, goal)
- chart.markers = function(x) {
- if (!arguments.length) return markers;
- markers = x;
- return chart;
- };
-
- // measures (actual, forecast)
- chart.measures = function(x) {
- if (!arguments.length) return measures;
- measures = x;
- return chart;
- };
-
- chart.width = function(x) {
- if (!arguments.length) return width;
- width = x;
- return chart;
- };
-
- chart.height = function(x) {
- if (!arguments.length) return height;
- height = x;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.tickFormat = function(x) {
- if (!arguments.length) return tickFormat;
- tickFormat = x;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js
deleted file mode 100755
index 3d2360a6..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js
+++ /dev/null
@@ -1,104 +0,0 @@
-
-nv.models.chartName = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
-
- var margin = {top: 30, right: 10, bottom: 10, left: 10}
- , width = 960
- , height = 500
- , color = nv.utils.getColor(d3.scale.category20c().range())
- , dispatch = d3.dispatch('stateChange', 'changeState')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-chartName').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-chartName');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- gEnter.append('g').attr('class', 'nv-mainWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_)
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js
deleted file mode 100755
index 9b9bf4d1..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js
+++ /dev/null
@@ -1,385 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-
-nv.models.bullet = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , orient = 'left' // TODO top & bottom
- , reverse = false
- , ranges = function(d) { return d.ranges }
- , markers = function(d) { return d.markers }
- , measures = function(d) { return d.measures }
- , rangeLabels = function(d) { return d.rangeLabels ? d.rangeLabels : [] }
- , markerLabels = function(d) { return d.markerLabels ? d.markerLabels : [] }
- , measureLabels = function(d) { return d.measureLabels ? d.measureLabels : [] }
- , forceX = [0] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
- , width = 380
- , height = 30
- , tickFormat = null
- , color = nv.utils.getColor(['#1f77b4'])
- , dispatch = d3.dispatch('elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(d, i) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
- markerz = markers.call(this, d, i).slice().sort(d3.descending),
- measurez = measures.call(this, d, i).slice().sort(d3.descending),
- rangeLabelz = rangeLabels.call(this, d, i).slice(),
- markerLabelz = markerLabels.call(this, d, i).slice(),
- measureLabelz = measureLabels.call(this, d, i).slice();
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- // Compute the new x-scale.
- var x1 = d3.scale.linear()
- .domain( d3.extent(d3.merge([forceX, rangez])) )
- .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
- // Retrieve the old x-scale, if this is an update.
- var x0 = this.__chart__ || d3.scale.linear()
- .domain([0, Infinity])
- .range(x1.range());
-
- // Stash the new scale.
- this.__chart__ = x1;
-
-
- var rangeMin = d3.min(rangez), //rangez[2]
- rangeMax = d3.max(rangez), //rangez[0]
- rangeAvg = rangez[1];
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-bullet').data([d]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bullet');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('rect').attr('class', 'nv-range nv-rangeMax');
- gEnter.append('rect').attr('class', 'nv-range nv-rangeAvg');
- gEnter.append('rect').attr('class', 'nv-range nv-rangeMin');
- gEnter.append('rect').attr('class', 'nv-measure');
- gEnter.append('path').attr('class', 'nv-markerTriangle');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
- w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
- var xp0 = function(d) { return d < 0 ? x0(d) : x0(0) },
- xp1 = function(d) { return d < 0 ? x1(d) : x1(0) };
-
-
- g.select('rect.nv-rangeMax')
- .attr('height', availableHeight)
- .attr('width', w1(rangeMax > 0 ? rangeMax : rangeMin))
- .attr('x', xp1(rangeMax > 0 ? rangeMax : rangeMin))
- .datum(rangeMax > 0 ? rangeMax : rangeMin)
- /*
- .attr('x', rangeMin < 0 ?
- rangeMax > 0 ?
- x1(rangeMin)
- : x1(rangeMax)
- : x1(0))
- */
-
- g.select('rect.nv-rangeAvg')
- .attr('height', availableHeight)
- .attr('width', w1(rangeAvg))
- .attr('x', xp1(rangeAvg))
- .datum(rangeAvg)
- /*
- .attr('width', rangeMax <= 0 ?
- x1(rangeMax) - x1(rangeAvg)
- : x1(rangeAvg) - x1(rangeMin))
- .attr('x', rangeMax <= 0 ?
- x1(rangeAvg)
- : x1(rangeMin))
- */
-
- g.select('rect.nv-rangeMin')
- .attr('height', availableHeight)
- .attr('width', w1(rangeMax))
- .attr('x', xp1(rangeMax))
- .attr('width', w1(rangeMax > 0 ? rangeMin : rangeMax))
- .attr('x', xp1(rangeMax > 0 ? rangeMin : rangeMax))
- .datum(rangeMax > 0 ? rangeMin : rangeMax)
- /*
- .attr('width', rangeMax <= 0 ?
- x1(rangeAvg) - x1(rangeMin)
- : x1(rangeMax) - x1(rangeAvg))
- .attr('x', rangeMax <= 0 ?
- x1(rangeMin)
- : x1(rangeAvg))
- */
-
- g.select('rect.nv-measure')
- .style('fill', color)
- .attr('height', availableHeight / 3)
- .attr('y', availableHeight / 3)
- .attr('width', measurez < 0 ?
- x1(0) - x1(measurez[0])
- : x1(measurez[0]) - x1(0))
- .attr('x', xp1(measurez))
- .on('mouseover', function() {
- dispatch.elementMouseover({
- value: measurez[0],
- label: measureLabelz[0] || 'Current',
- pos: [x1(measurez[0]), availableHeight/2]
- })
- })
- .on('mouseout', function() {
- dispatch.elementMouseout({
- value: measurez[0],
- label: measureLabelz[0] || 'Current'
- })
- })
-
- var h3 = availableHeight / 6;
- if (markerz[0]) {
- g.selectAll('path.nv-markerTriangle')
- .attr('transform', function(d) { return 'translate(' + x1(markerz[0]) + ',' + (availableHeight / 2) + ')' })
- .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
- .on('mouseover', function() {
- dispatch.elementMouseover({
- value: markerz[0],
- label: markerLabelz[0] || 'Previous',
- pos: [x1(markerz[0]), availableHeight/2]
- })
- })
- .on('mouseout', function() {
- dispatch.elementMouseout({
- value: markerz[0],
- label: markerLabelz[0] || 'Previous'
- })
- });
- } else {
- g.selectAll('path.nv-markerTriangle').remove();
- }
-
-
- wrap.selectAll('.nv-range')
- .on('mouseover', function(d,i) {
- var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
- dispatch.elementMouseover({
- value: d,
- label: label,
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d,i) {
- var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
- dispatch.elementMouseout({
- value: d,
- label: label
- })
- })
-
-/* // THIS IS THE PREVIOUS BULLET IMPLEMENTATION, WILL REMOVE SHORTLY
- // Update the range rects.
- var range = g.selectAll('rect.nv-range')
- .data(rangez);
-
- range.enter().append('rect')
- .attr('class', function(d, i) { return 'nv-range nv-s' + i; })
- .attr('width', w0)
- .attr('height', availableHeight)
- .attr('x', reverse ? x0 : 0)
- .on('mouseover', function(d,i) {
- dispatch.elementMouseover({
- value: d,
- label: (i <= 0) ? 'Maximum' : (i > 1) ? 'Minimum' : 'Mean', //TODO: make these labels a variable
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d,i) {
- dispatch.elementMouseout({
- value: d,
- label: (i <= 0) ? 'Minimum' : (i >=1) ? 'Maximum' : 'Mean' //TODO: make these labels a variable
- })
- })
-
- d3.transition(range)
- .attr('x', reverse ? x1 : 0)
- .attr('width', w1)
- .attr('height', availableHeight);
-
-
- // Update the measure rects.
- var measure = g.selectAll('rect.nv-measure')
- .data(measurez);
-
- measure.enter().append('rect')
- .attr('class', function(d, i) { return 'nv-measure nv-s' + i; })
- .style('fill', function(d,i) { return color(d,i ) })
- .attr('width', w0)
- .attr('height', availableHeight / 3)
- .attr('x', reverse ? x0 : 0)
- .attr('y', availableHeight / 3)
- .on('mouseover', function(d) {
- dispatch.elementMouseover({
- value: d,
- label: 'Current', //TODO: make these labels a variable
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d) {
- dispatch.elementMouseout({
- value: d,
- label: 'Current' //TODO: make these labels a variable
- })
- })
-
- d3.transition(measure)
- .attr('width', w1)
- .attr('height', availableHeight / 3)
- .attr('x', reverse ? x1 : 0)
- .attr('y', availableHeight / 3);
-
-
-
- // Update the marker lines.
- var marker = g.selectAll('path.nv-markerTriangle')
- .data(markerz);
-
- var h3 = availableHeight / 6;
- marker.enter().append('path')
- .attr('class', 'nv-markerTriangle')
- .attr('transform', function(d) { return 'translate(' + x0(d) + ',' + (availableHeight / 2) + ')' })
- .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
- .on('mouseover', function(d,i) {
- dispatch.elementMouseover({
- value: d,
- label: 'Previous',
- pos: [x1(d), availableHeight/2]
- })
- })
- .on('mouseout', function(d,i) {
- dispatch.elementMouseout({
- value: d,
- label: 'Previous'
- })
- });
-
- d3.transition(marker)
- .attr('transform', function(d) { return 'translate(' + (x1(d) - x1(0)) + ',' + (availableHeight / 2) + ')' });
-
- marker.exit().remove();
-*/
-
- });
-
- // d3.timer.flush(); // Not needed?
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- // left, right, top, bottom
- chart.orient = function(_) {
- if (!arguments.length) return orient;
- orient = _;
- reverse = orient == 'right' || orient == 'bottom';
- return chart;
- };
-
- // ranges (bad, satisfactory, good)
- chart.ranges = function(_) {
- if (!arguments.length) return ranges;
- ranges = _;
- return chart;
- };
-
- // markers (previous, goal)
- chart.markers = function(_) {
- if (!arguments.length) return markers;
- markers = _;
- return chart;
- };
-
- // measures (actual, forecast)
- chart.measures = function(_) {
- if (!arguments.length) return measures;
- measures = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.tickFormat = function(_) {
- if (!arguments.length) return tickFormat;
- tickFormat = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js
deleted file mode 100755
index fa5bd596..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js
+++ /dev/null
@@ -1,343 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-nv.models.bulletChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var bullet = nv.models.bullet()
- ;
-
- var orient = 'left' // TODO top & bottom
- , reverse = false
- , margin = {top: 5, right: 40, bottom: 20, left: 120}
- , ranges = function(d) { return d.ranges }
- , markers = function(d) { return d.markers }
- , measures = function(d) { return d.measures }
- , width = null
- , height = 55
- , tickFormat = null
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + x + '</h3>' +
- '<p>' + y + '</p>'
- }
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ) + margin.left,
- top = e.pos[1] + ( offsetElement.offsetTop || 0) + margin.top,
- content = tooltip(e.key, e.label, e.value, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(d, i) {
- var container = d3.select(this);
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- that = this;
-
-
- chart.update = function() { chart(selection) };
- chart.container = this;
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!d || !ranges.call(this, d, i)) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', 18 + margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
-
- var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
- markerz = markers.call(this, d, i).slice().sort(d3.descending),
- measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-bulletChart').data([d]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bulletChart');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-bulletWrap');
- gEnter.append('g').attr('class', 'nv-titles');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- // Compute the new x-scale.
- var x1 = d3.scale.linear()
- .domain([0, Math.max(rangez[0], markerz[0], measurez[0])]) // TODO: need to allow forceX and forceY, and xDomain, yDomain
- .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
- // Retrieve the old x-scale, if this is an update.
- var x0 = this.__chart__ || d3.scale.linear()
- .domain([0, Infinity])
- .range(x1.range());
-
- // Stash the new scale.
- this.__chart__ = x1;
-
- /*
- // Derive width-scales from the x-scales.
- var w0 = bulletWidth(x0),
- w1 = bulletWidth(x1);
-
- function bulletWidth(x) {
- var x0 = x(0);
- return function(d) {
- return Math.abs(x(d) - x(0));
- };
- }
-
- function bulletTranslate(x) {
- return function(d) {
- return 'translate(' + x(d) + ',0)';
- };
- }
- */
-
- var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
- w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
- var title = gEnter.select('.nv-titles').append('g')
- .attr('text-anchor', 'end')
- .attr('transform', 'translate(-6,' + (height - margin.top - margin.bottom) / 2 + ')');
- title.append('text')
- .attr('class', 'nv-title')
- .text(function(d) { return d.title; });
-
- title.append('text')
- .attr('class', 'nv-subtitle')
- .attr('dy', '1em')
- .text(function(d) { return d.subtitle; });
-
-
-
- bullet
- .width(availableWidth)
- .height(availableHeight)
-
- var bulletWrap = g.select('.nv-bulletWrap');
-
- d3.transition(bulletWrap).call(bullet);
-
-
-
- // Compute the tick format.
- var format = tickFormat || x1.tickFormat( availableWidth / 100 );
-
- // Update the tick groups.
- var tick = g.selectAll('g.nv-tick')
- .data(x1.ticks( availableWidth / 50 ), function(d) {
- return this.textContent || format(d);
- });
-
- // Initialize the ticks with the old scale, x0.
- var tickEnter = tick.enter().append('g')
- .attr('class', 'nv-tick')
- .attr('transform', function(d) { return 'translate(' + x0(d) + ',0)' })
- .style('opacity', 1e-6);
-
- tickEnter.append('line')
- .attr('y1', availableHeight)
- .attr('y2', availableHeight * 7 / 6);
-
- tickEnter.append('text')
- .attr('text-anchor', 'middle')
- .attr('dy', '1em')
- .attr('y', availableHeight * 7 / 6)
- .text(format);
-
-
- // Transition the updating ticks to the new scale, x1.
- var tickUpdate = d3.transition(tick)
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
- .style('opacity', 1);
-
- tickUpdate.select('line')
- .attr('y1', availableHeight)
- .attr('y2', availableHeight * 7 / 6);
-
- tickUpdate.select('text')
- .attr('y', availableHeight * 7 / 6);
-
- // Transition the exiting ticks to the new scale, x1.
- d3.transition(tick.exit())
- .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
- .style('opacity', 1e-6)
- .remove();
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- dispatch.on('tooltipShow', function(e) {
- e.key = d.title;
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
- });
-
- d3.timer.flush();
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- bullet.dispatch.on('elementMouseover.tooltip', function(e) {
- dispatch.tooltipShow(e);
- });
-
- bullet.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.bullet = bullet;
-
- d3.rebind(chart, bullet, 'color');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- // left, right, top, bottom
- chart.orient = function(x) {
- if (!arguments.length) return orient;
- orient = x;
- reverse = orient == 'right' || orient == 'bottom';
- return chart;
- };
-
- // ranges (bad, satisfactory, good)
- chart.ranges = function(x) {
- if (!arguments.length) return ranges;
- ranges = x;
- return chart;
- };
-
- // markers (previous, goal)
- chart.markers = function(x) {
- if (!arguments.length) return markers;
- markers = x;
- return chart;
- };
-
- // measures (actual, forecast)
- chart.measures = function(x) {
- if (!arguments.length) return measures;
- measures = x;
- return chart;
- };
-
- chart.width = function(x) {
- if (!arguments.length) return width;
- width = x;
- return chart;
- };
-
- chart.height = function(x) {
- if (!arguments.length) return height;
- height = x;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.tickFormat = function(x) {
- if (!arguments.length) return tickFormat;
- tickFormat = x;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js
deleted file mode 100755
index 2a53563b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js
+++ /dev/null
@@ -1,754 +0,0 @@
-
-nv.models.cumulativeLineChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , interactiveLayer = nv.interactiveGuideline()
- ;
-
- var margin = {top: 30, right: 30, bottom: 50, left: 60}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , tooltips = true
- , showControls = true
- , useInteractiveGuideline = false
- , rescaleY = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , id = lines.id()
- , state = { index: 0, rescaleY: rescaleY }
- , defaultState = null
- , noData = 'No Data Available.'
- , average = function(d) { return d.average }
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- ;
-
- //============================================================
- controls.updateState(false);
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var dx = d3.scale.linear()
- , index = {i: 0, x: 0}
- ;
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this).classed('nv-chart-' + id, true),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- var indexDrag = d3.behavior.drag()
- .on('dragstart', dragStart)
- .on('drag', dragMove)
- .on('dragend', dragEnd);
-
-
- function dragStart(d,i) {
- d3.select(chart.container)
- .style('cursor', 'ew-resize');
- }
-
- function dragMove(d,i) {
- index.x = d3.event.x;
- index.i = Math.round(dx.invert(index.x));
- updateZero();
- }
-
- function dragEnd(d,i) {
- d3.select(chart.container)
- .style('cursor', 'auto');
-
- // update state and send stateChange with new index
- state.index = index.i;
- dispatch.stateChange(state);
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = lines.xScale();
- y = lines.yScale();
-
-
- if (!rescaleY) {
- var seriesDomains = data
- .filter(function(series) { return !series.disabled })
- .map(function(series,i) {
- var initialDomain = d3.extent(series.values, lines.y());
-
- //account for series being disabled when losing 95% or more
- if (initialDomain[0] < -.95) initialDomain[0] = -.95;
-
- return [
- (initialDomain[0] - initialDomain[1]) / (1 + initialDomain[1]),
- (initialDomain[1] - initialDomain[0]) / (1 + initialDomain[0])
- ];
- });
-
- var completeDomain = [
- d3.min(seriesDomains, function(d) { return d[0] }),
- d3.max(seriesDomains, function(d) { return d[1] })
- ]
-
- lines.yDomain(completeDomain);
- } else {
- lines.yDomain(null);
- }
-
-
- dx .domain([0, data[0].values.length - 1]) //Assumes all series have same length
- .range([0, availableWidth])
- .clamp(true);
-
- //------------------------------------------------------------
-
-
- var data = indexify(index.i, data);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
- var interactivePointerEvents = (useInteractiveGuideline) ? "none" : "all";
- var wrap = container.selectAll('g.nv-wrap.nv-cumulativeLine').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-cumulativeLine').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-interactive');
- gEnter.append('g').attr('class', 'nv-x nv-axis').style("pointer-events","none");
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-background');
- gEnter.append('g').attr('class', 'nv-linesWrap').style("pointer-events",interactivePointerEvents);
- gEnter.append('g').attr('class', 'nv-avgLinesWrap').style("pointer-events","none");
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- { key: 'Re-scale y-axis', disabled: !rescaleY }
- ];
-
- controls.width(140).color(['#444', '#444', '#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- // Show error if series goes below 100%
- var tempDisabled = data.filter(function(d) { return d.tempDisabled });
-
- wrap.select('.tempDisabled').remove(); //clean-up and prevent duplicates
- if (tempDisabled.length) {
- wrap.append('text').attr('class', 'tempDisabled')
- .attr('x', availableWidth / 2)
- .attr('y', '-.71em')
- .style('text-anchor', 'end')
- .text(tempDisabled.map(function(d) { return d.key }).join(', ') + ' values cannot be calculated for this time period.');
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- //------------------------------------------------------------
- //Set up interactive layer
- if (useInteractiveGuideline) {
- interactiveLayer
- .width(availableWidth)
- .height(availableHeight)
- .margin({left:margin.left,top:margin.top})
- .svgContainer(container)
- .xScale(x);
- wrap.select(".nv-interactive").call(interactiveLayer);
- }
-
- gEnter.select('.nv-background')
- .append('rect');
-
- g.select('.nv-background rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- lines
- //.x(function(d) { return d.x })
- .y(function(d) { return d.display.y })
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].tempDisabled; }));
-
-
-
- var linesWrap = g.select('.nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled && !d.tempDisabled }));
-
- //d3.transition(linesWrap).call(lines);
- linesWrap.call(lines);
-
- /*Handle average lines [AN-612] ----------------------------*/
-
- //Store a series index number in the data array.
- data.forEach(function(d,i) {
- d.seriesIndex = i;
- });
-
- var avgLineData = data.filter(function(d) {
- return !d.disabled && !!average(d);
- });
-
- var avgLines = g.select(".nv-avgLinesWrap").selectAll("line")
- .data(avgLineData, function(d) { return d.key; });
-
- var getAvgLineY = function(d) {
- //If average lines go off the svg element, clamp them to the svg bounds.
- var yVal = y(average(d));
- if (yVal < 0) return 0;
- if (yVal > availableHeight) return availableHeight;
- return yVal;
- };
-
- avgLines.enter()
- .append('line')
- .style('stroke-width',2)
- .style('stroke-dasharray','10,10')
- .style('stroke',function (d,i) {
- return lines.color()(d,d.seriesIndex);
- })
- .attr('x1',0)
- .attr('x2',availableWidth)
- .attr('y1', getAvgLineY)
- .attr('y2', getAvgLineY);
-
- avgLines
- .style('stroke-opacity',function(d){
- //If average lines go offscreen, make them transparent
- var yVal = y(average(d));
- if (yVal < 0 || yVal > availableHeight) return 0;
- return 1;
- })
- .attr('x1',0)
- .attr('x2',availableWidth)
- .attr('y1', getAvgLineY)
- .attr('y2', getAvgLineY);
-
- avgLines.exit().remove();
-
- //Create index line -----------------------------------------
-
- var indexLine = linesWrap.selectAll('.nv-indexLine')
- .data([index]);
- indexLine.enter().append('rect').attr('class', 'nv-indexLine')
- .attr('width', 3)
- .attr('x', -2)
- .attr('fill', 'red')
- .attr('fill-opacity', .5)
- .style("pointer-events","all")
- .call(indexDrag)
-
- indexLine
- .attr('transform', function(d) { return 'translate(' + dx(d.i) + ',0)' })
- .attr('height', availableHeight)
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- //Suggest how many ticks based on the chart width and D3 should listen (70 is the optimal number for MM/DD/YY dates)
- .ticks( Math.min(data[0].values.length,availableWidth/70) )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.nv-x.nv-axis'))
- .call(xAxis);
- }
-
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.nv-y.nv-axis'))
- .call(yAxis);
- }
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
-
- function updateZero() {
- indexLine
- .data([index]);
-
- //When dragging the index line, turn off line transitions.
- // Then turn them back on when done dragging.
- var oldDuration = chart.transitionDuration();
- chart.transitionDuration(0);
- chart.update();
- chart.transitionDuration(oldDuration);
- }
-
- g.select('.nv-background rect')
- .on('click', function() {
- index.x = d3.mouse(this)[0];
- index.i = Math.round(dx.invert(index.x));
-
- // update state and send stateChange with new index
- state.index = index.i;
- dispatch.stateChange(state);
-
- updateZero();
- });
-
- lines.dispatch.on('elementClick', function(e) {
- index.i = e.pointIndex;
- index.x = dx(index.i);
-
- // update state and send stateChange with new index
- state.index = index.i;
- dispatch.stateChange(state);
-
- updateZero();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
- rescaleY = !d.disabled;
-
- state.rescaleY = rescaleY;
- dispatch.stateChange(state);
- chart.update();
- });
-
-
- legend.dispatch.on('stateChange', function(newState) {
- state.disabled = newState.disabled;
- dispatch.stateChange(state);
- chart.update();
- });
-
- interactiveLayer.dispatch.on('elementMousemove', function(e) {
- lines.clearHighlights();
- var singlePoint, pointIndex, pointXLocation, allData = [];
-
-
- data
- .filter(function(series, i) {
- series.seriesIndex = i;
- return !series.disabled;
- })
- .forEach(function(series,i) {
- pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
- lines.highlightPoint(i, pointIndex, true);
- var point = series.values[pointIndex];
- if (typeof point === 'undefined') return;
- if (typeof singlePoint === 'undefined') singlePoint = point;
- if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
- allData.push({
- key: series.key,
- value: chart.y()(point, pointIndex),
- color: color(series,series.seriesIndex)
- });
- });
-
- //Highlight the tooltip entry based on which point the mouse is closest to.
- if (allData.length > 2) {
- var yValue = chart.yScale().invert(e.mouseY);
- var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
- var threshold = 0.03 * domainExtent;
- var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
- if (indexToHighlight !== null)
- allData[indexToHighlight].highlight = true;
- }
-
- var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex), pointIndex);
- interactiveLayer.tooltip
- .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
- .chartContainer(that.parentNode)
- .enabled(tooltips)
- .valueFormatter(function(d,i) {
- return yAxis.tickFormat()(d);
- })
- .data(
- {
- value: xValue,
- series: allData
- }
- )();
-
- interactiveLayer.renderGuideLine(pointXLocation);
-
- });
-
- interactiveLayer.dispatch.on("elementMouseout",function(e) {
- dispatch.tooltipHide();
- lines.clearHighlights();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
-
- if (typeof e.index !== 'undefined') {
- index.i = e.index;
- index.x = dx(index.i);
-
- state.index = e.index;
-
- indexLine
- .data([index]);
- }
-
-
- if (typeof e.rescaleY !== 'undefined') {
- rescaleY = e.rescaleY;
- }
-
- chart.update();
- });
-
- //============================================================
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.lines = lines;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.interactiveLayer = interactiveLayer;
-
- d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'xScale','yScale', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi','useVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.rescaleY = function(_) {
- if (!arguments.length) return rescaleY;
- rescaleY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.useInteractiveGuideline = function(_) {
- if(!arguments.length) return useInteractiveGuideline;
- useInteractiveGuideline = _;
- if (_ === true) {
- chart.interactive(false);
- chart.useVoronoi(false);
- }
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.average = function(_) {
- if(!arguments.length) return average;
- average = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- //============================================================
- // Functions
- //------------------------------------------------------------
-
- /* Normalize the data according to an index point. */
- function indexify(idx, data) {
- return data.map(function(line, i) {
- if (!line.values) {
- return line;
- }
- var v = lines.y()(line.values[idx], idx);
-
- //TODO: implement check below, and disable series if series loses 100% or more cause divide by 0 issue
- if (v < -.95) {
- //if a series loses more than 100%, calculations fail.. anything close can cause major distortion (but is mathematically correct till it hits 100)
- line.tempDisabled = true;
- return line;
- }
-
- line.tempDisabled = false;
-
- line.values = line.values.map(function(point, pointIndex) {
- point.display = {'y': (lines.y()(point, pointIndex) - v) / (1 + v) };
- return point;
- })
-
- return line;
- })
- }
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js
deleted file mode 100755
index a20f5829..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js
+++ /dev/null
@@ -1,349 +0,0 @@
-//TODO: consider deprecating by adding necessary features to multiBar model
-nv.models.discreteBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.ordinal()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
- , color = nv.utils.defaultColor()
- , showValues = false
- , valueFormat = d3.format(',.2f')
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- , rectClass = 'discreteBar'
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), y0: d.y0 }
- })
- });
-
- x .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands(xRange || [0, availableWidth], .1);
-
- y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(forceY)));
-
-
- // If showValues, pad the Y axis range to account for label height
- if (showValues) y.range(yRange || [availableHeight - (y.domain()[0] < 0 ? 12 : 0), y.domain()[1] > 0 ? 12 : 0]);
- else y.range(yRange || [availableHeight, 0]);
-
- //store old scales if they exist
- x0 = x0 || x;
- y0 = y0 || y.copy().range([y(0),y(0)]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-discretebar').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discretebar');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-groups');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- //TODO: by definition, the discrete bar should not have multiple groups, will modify/remove later
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit()
- .transition()
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover });
- groups
- .transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .75);
-
-
- var bars = groups.selectAll('g.nv-bar')
- .data(function(d) { return d.values });
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('g')
- .attr('transform', function(d,i,j) {
- return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')'
- })
- .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- });
-
- barsEnter.append('rect')
- .attr('height', 0)
- .attr('width', x.rangeBand() * .9 / data.length )
-
- if (showValues) {
- barsEnter.append('text')
- .attr('text-anchor', 'middle')
- ;
-
- bars.select('text')
- .text(function(d,i) { return valueFormat(getY(d,i)) })
- .transition()
- .attr('x', x.rangeBand() * .9 / 2)
- .attr('y', function(d,i) { return getY(d,i) < 0 ? y(getY(d,i)) - y(0) + 12 : -4 })
-
- ;
- } else {
- bars.selectAll('text').remove();
- }
-
- bars
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive' })
- .style('fill', function(d,i) { return d.color || color(d,i) })
- .style('stroke', function(d,i) { return d.color || color(d,i) })
- .select('rect')
- .attr('class', rectClass)
- .transition()
- .attr('width', x.rangeBand() * .9 / data.length);
- bars.transition()
- //.delay(function(d,i) { return i * 1200 / data[0].values.length })
- .attr('transform', function(d,i) {
- var left = x(getX(d,i)) + x.rangeBand() * .05,
- top = getY(d,i) < 0 ?
- y(0) :
- y(0) - y(getY(d,i)) < 1 ?
- y(0) - 1 : //make 1 px positive bars show up above y=0
- y(getY(d,i));
-
- return 'translate(' + left + ', ' + top + ')'
- })
- .select('rect')
- .attr('height', function(d,i) {
- return Math.max(Math.abs(y(getY(d,i)) - y((yDomain && yDomain[0]) || 0)) || 1)
- });
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.showValues = function(_) {
- if (!arguments.length) return showValues;
- showValues = _;
- return chart;
- };
-
- chart.valueFormat= function(_) {
- if (!arguments.length) return valueFormat;
- valueFormat = _;
- return chart;
- };
-
- chart.rectClass= function(_) {
- if (!arguments.length) return rectClass;
- rectClass = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js
deleted file mode 100755
index d695576e..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js
+++ /dev/null
@@ -1,344 +0,0 @@
-
-nv.models.discreteBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var discretebar = nv.models.discreteBar()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- ;
-
- var margin = {top: 15, right: 10, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.getColor()
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , staggerLabels = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + x + '</h3>' +
- '<p>' + y + '</p>'
- }
- , x
- , y
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'beforeUpdate')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .highlightZero(false)
- .showMaxMin(false)
- .tickFormat(function(d) { return d })
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickFormat(d3.format(',.1f'))
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(discretebar.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(discretebar.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() {
- dispatch.beforeUpdate();
- container.transition().duration(transitionDuration).call(chart);
- };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = discretebar.xScale();
- y = discretebar.yScale().clamp(true);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-discreteBarWithAxes').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discreteBarWithAxes').append('g');
- var defsEnter = gEnter.append('defs');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis')
- .append('g').attr('class', 'nv-zeroLine')
- .append('line');
-
- gEnter.append('g').attr('class', 'nv-barsWrap');
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- discretebar
- .width(availableWidth)
- .height(availableHeight);
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(discretebar);
-
- //------------------------------------------------------------
-
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-x-label-clip-' + discretebar.id())
- .append('rect');
-
- g.select('#nv-x-label-clip-' + discretebar.id() + ' rect')
- .attr('width', x.rangeBand() * (staggerLabels ? 2 : 1))
- .attr('height', 16)
- .attr('x', -x.rangeBand() / (staggerLabels ? 1 : 2 ));
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + (y.range()[0] + ((discretebar.showValues() && y.domain()[0] < 0) ? 16 : 0)) + ')');
- //d3.transition(g.select('.nv-x.nv-axis'))
- g.select('.nv-x.nv-axis').transition()
- .call(xAxis);
-
-
- var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
- if (staggerLabels) {
- xTicks
- .selectAll('text')
- .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '5' : '17') + ')' })
- }
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis').transition()
- .call(yAxis);
- }
-
- // Zero line
- g.select(".nv-zeroLine line")
- .attr("x1",0)
- .attr("x2",availableWidth)
- .attr("y1", y(0))
- .attr("y2", y(0))
- ;
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.discretebar = discretebar;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'id', 'showValues', 'valueFormat');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- discretebar.color(color);
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js
deleted file mode 100755
index 62a74655..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js
+++ /dev/null
@@ -1,148 +0,0 @@
-
-nv.models.distribution = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 400 //technically width or height depending on x or y....
- , size = 8
- , axis = 'x' // 'x' or 'y'... horizontal or vertical
- , getData = function(d) { return d[axis] } // defaults d.x or d.y
- , color = nv.utils.defaultColor()
- , scale = d3.scale.linear()
- , domain
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var scale0;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableLength = width - (axis === 'x' ? margin.left + margin.right : margin.top + margin.bottom),
- naxis = axis == 'x' ? 'y' : 'x',
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- scale0 = scale0 || scale;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-distribution').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-distribution');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
- //------------------------------------------------------------
-
-
- var distWrap = g.selectAll('g.nv-dist')
- .data(function(d) { return d }, function(d) { return d.key });
-
- distWrap.enter().append('g');
- distWrap
- .attr('class', function(d,i) { return 'nv-dist nv-series-' + i })
- .style('stroke', function(d,i) { return color(d, i) });
-
- var dist = distWrap.selectAll('line.nv-dist' + axis)
- .data(function(d) { return d.values })
- dist.enter().append('line')
- .attr(axis + '1', function(d,i) { return scale0(getData(d,i)) })
- .attr(axis + '2', function(d,i) { return scale0(getData(d,i)) })
- distWrap.exit().selectAll('line.nv-dist' + axis)
- .transition()
- .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
- .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
- .style('stroke-opacity', 0)
- .remove();
- dist
- .attr('class', function(d,i) { return 'nv-dist' + axis + ' nv-dist' + axis + '-' + i })
- .attr(naxis + '1', 0)
- .attr(naxis + '2', size);
- dist
- .transition()
- .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
- .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
-
-
- scale0 = scale.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.axis = function(_) {
- if (!arguments.length) return axis;
- axis = _;
- return chart;
- };
-
- chart.size = function(_) {
- if (!arguments.length) return size;
- size = _;
- return chart;
- };
-
- chart.getData = function(_) {
- if (!arguments.length) return getData;
- getData = d3.functor(_);
- return chart;
- };
-
- chart.scale = function(_) {
- if (!arguments.length) return scale;
- scale = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js
deleted file mode 100755
index 2a6c644d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js
+++ /dev/null
@@ -1,331 +0,0 @@
-//TODO: consider deprecating and using multibar with single series for this
-nv.models.historicalBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceX = []
- , forceY = [0]
- , padData = false
- , clipEdge = true
- , color = nv.utils.defaultColor()
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- , interactive = true
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ))
-
- if (padData)
- x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5) / data[0].values.length ]);
- else
- x.range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || d3.extent(data[0].values.map(getY).concat(forceY) ))
- .range(yRange || [availableHeight, 0]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-historicalBar-' + id).data([data[0].values]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBar-' + id);
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-bars');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- container
- .on('click', function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-chart-clip-path-' + id)
- .append('rect');
-
- wrap.select('#nv-chart-clip-path-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
- var bars = wrap.select('.nv-bars').selectAll('.nv-bar')
- .data(function(d) { return d }, function(d,i) {return getX(d,i)});
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('rect')
- //.attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
- .attr('x', 0 )
- .attr('y', function(d,i) { return nv.utils.NaNtoZero(y(Math.max(0, getY(d,i)))) })
- .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.abs(y(getY(d,i)) - y(0))) })
- .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; })
- .on('mouseover', function(d,i) {
- if (!interactive) return;
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- point: d,
- series: data[0],
- pos: [x(getX(d,i)), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
-
- })
- .on('mouseout', function(d,i) {
- if (!interactive) return;
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- point: d,
- series: data[0],
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- if (!interactive) return;
- dispatch.elementClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- if (!interactive) return;
- dispatch.elementDblClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
- bars
- .attr('fill', function(d,i) { return color(d, i); })
- .attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
- .transition()
- .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; })
- //TODO: better width calculations that don't assume always uniform data spacing;w
- .attr('width', (availableWidth / data[0].values.length) * .9 );
-
-
- bars.transition()
- .attr('y', function(d,i) {
- var rval = getY(d,i) < 0 ?
- y(0) :
- y(0) - y(getY(d,i)) < 1 ?
- y(0) - 1 :
- y(getY(d,i));
- return nv.utils.NaNtoZero(rval);
- })
- .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.max(Math.abs(y(getY(d,i)) - y(0)),1)) });
-
- });
-
- return chart;
- }
-
- //Create methods to allow outside functions to highlight a specific bar.
- chart.highlightPoint = function(pointIndex, isHoverOver) {
- d3.select(".nv-historicalBar-" + id)
- .select(".nv-bars .nv-bar-0-" + pointIndex)
- .classed("hover", isHoverOver)
- ;
- };
-
- chart.clearHighlights = function() {
- d3.select(".nv-historicalBar-" + id)
- .select(".nv-bars .nv-bar.hover")
- .classed("hover", false)
- ;
- };
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.padData = function(_) {
- if (!arguments.length) return padData;
- padData = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.interactive = function(_) {
- if(!arguments.length) return interactive;
- interactive = false;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js
deleted file mode 100755
index 07aab36f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js
+++ /dev/null
@@ -1,419 +0,0 @@
-
-nv.models.historicalBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var bars = nv.models.historicalBar()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- ;
-
-
- var margin = {top: 30, right: 90, bottom: 50, left: 90}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , showLegend = false
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , x
- , y
- , state = {}
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient( (rightAlignYAxis) ? 'right' : 'left')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
-
- // New addition to calculate position if SVG is scaled with viewBox, may move TODO: consider implementing everywhere else
- if (offsetElement) {
- var svg = d3.select(offsetElement).select('svg');
- var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
- if (viewBox) {
- viewBox = viewBox.split(' ');
- var ratio = parseInt(svg.style('width')) / viewBox[2];
- e.pos[0] = e.pos[0] * ratio;
- e.pos[1] = e.pos[1] * ratio;
- }
- }
-
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(bars.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(bars.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = bars.xScale();
- y = bars.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-historicalBarChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBarChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- bars
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(bars);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- g.select('.nv-x.nv-axis')
- .transition()
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .transition()
- .call(yAxis);
- }
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.nv-series').classed('disabled', false);
- return d;
- });
- }
-
- state.disabled = data.map(function(d) { return !!d.disabled });
- dispatch.stateChange(state);
-
- selection.transition().call(chart);
- });
-
- legend.dispatch.on('legendDblclick', function(d) {
- //Double clicking should always enable current series, and disabled all others.
- data.forEach(function(d) {
- d.disabled = true;
- });
- d.disabled = false;
-
- state.disabled = data.map(function(d) { return !!d.disabled });
- dispatch.stateChange(state);
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- bars.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.bars = bars;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, bars, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale',
- 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id', 'interpolate','highlightPoint','clearHighlights', 'interactive');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js
deleted file mode 100755
index 18c2700f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js
+++ /dev/null
@@ -1,337 +0,0 @@
-nv.models.indentedTree = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0} //TODO: implement, maybe as margin on the containing div
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor()
- , id = Math.floor(Math.random() * 10000)
- , header = true
- , filterZero = false
- , noData = "No Data Available."
- , childIndent = 20
- , columns = [{key:'key', label: 'Name', type:'text'}] //TODO: consider functions like chart.addColumn, chart.removeColumn, instead of a block like this
- , tableClass = null
- , iconOpen = 'images/grey-plus.png' //TODO: consider removing this and replacing with a '+' or '-' unless user defines images
- , iconClose = 'images/grey-minus.png'
- , dispatch = d3.dispatch('elementClick', 'elementDblclick', 'elementMouseover', 'elementMouseout')
- , getUrl = function(d) { return d.url }
- ;
-
- //============================================================
-
- var idx = 0;
-
- function chart(selection) {
- selection.each(function(data) {
- var depth = 1,
- container = d3.select(this);
-
- var tree = d3.layout.tree()
- .children(function(d) { return d.values })
- .size([height, childIndent]); //Not sure if this is needed now that the result is HTML
-
- chart.update = function() { container.transition().duration(600).call(chart) };
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
- if (!data[0]) data[0] = {key: noData};
-
- //------------------------------------------------------------
-
-
- var nodes = tree.nodes(data[0]);
-
- // nodes.map(function(d) {
- // d.id = i++;
- // })
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('div').data([[nodes]]);
- var wrapEnter = wrap.enter().append('div').attr('class', 'nvd3 nv-wrap nv-indentedtree');
- var tableEnter = wrapEnter.append('table');
- var table = wrap.select('table').attr('width', '100%').attr('class', tableClass);
-
- //------------------------------------------------------------
-
-
- if (header) {
- var thead = tableEnter.append('thead');
-
- var theadRow1 = thead.append('tr');
-
- columns.forEach(function(column) {
- theadRow1
- .append('th')
- .attr('width', column.width ? column.width : '10%')
- .style('text-align', column.type == 'numeric' ? 'right' : 'left')
- .append('span')
- .text(column.label);
- });
- }
-
-
- var tbody = table.selectAll('tbody')
- .data(function(d) { return d });
- tbody.enter().append('tbody');
-
-
-
- //compute max generations
- depth = d3.max(nodes, function(node) { return node.depth });
- tree.size([height, depth * childIndent]); //TODO: see if this is necessary at all
-
-
- // Update the nodes…
- var node = tbody.selectAll('tr')
- // .data(function(d) { return d; }, function(d) { return d.id || (d.id == ++i)});
- .data(function(d) { return d.filter(function(d) { return (filterZero && !d.children) ? filterZero(d) : true; } )}, function(d,i) { return d.id || (d.id || ++idx)});
- //.style('display', 'table-row'); //TODO: see if this does anything
-
- node.exit().remove();
-
- node.select('img.nv-treeicon')
- .attr('src', icon)
- .classed('folded', folded);
-
- var nodeEnter = node.enter().append('tr');
-
-
- columns.forEach(function(column, index) {
-
- var nodeName = nodeEnter.append('td')
- .style('padding-left', function(d) { return (index ? 0 : d.depth * childIndent + 12 + (icon(d) ? 0 : 16)) + 'px' }, 'important') //TODO: check why I did the ternary here
- .style('text-align', column.type == 'numeric' ? 'right' : 'left');
-
-
- if (index == 0) {
- nodeName.append('img')
- .classed('nv-treeicon', true)
- .classed('nv-folded', folded)
- .attr('src', icon)
- .style('width', '14px')
- .style('height', '14px')
- .style('padding', '0 1px')
- .style('display', function(d) { return icon(d) ? 'inline-block' : 'none'; })
- .on('click', click);
- }
-
-
- nodeName.each(function(d) {
- if (!index && getUrl(d))
- d3.select(this)
- .append('a')
- .attr('href',getUrl)
- .attr('class', d3.functor(column.classes))
- .append('span')
- else
- d3.select(this)
- .append('span')
-
- d3.select(this).select('span')
- .attr('class', d3.functor(column.classes) )
- .text(function(d) { return column.format ? column.format(d) :
- (d[column.key] || '-') });
- });
-
- if (column.showCount) {
- nodeName.append('span')
- .attr('class', 'nv-childrenCount');
-
- node.selectAll('span.nv-childrenCount').text(function(d) {
- return ((d.values && d.values.length) || (d._values && d._values.length)) ? //If this is a parent
- '(' + ((d.values && (d.values.filter(function(d) { return filterZero ? filterZero(d) : true; }).length)) //If children are in values check its children and filter
- || (d._values && d._values.filter(function(d) { return filterZero ? filterZero(d) : true; }).length) //Otherwise, do the same, but with the other name, _values...
- || 0) + ')' //This is the catch-all in case there are no children after a filter
- : '' //If this is not a parent, just give an empty string
- });
- }
-
- // if (column.click)
- // nodeName.select('span').on('click', column.click);
-
- });
-
- node
- .order()
- .on('click', function(d) {
- dispatch.elementClick({
- row: this, //TODO: decide whether or not this should be consistent with scatter/line events or should be an html link (a href)
- data: d,
- pos: [d.x, d.y]
- });
- })
- .on('dblclick', function(d) {
- dispatch.elementDblclick({
- row: this,
- data: d,
- pos: [d.x, d.y]
- });
- })
- .on('mouseover', function(d) {
- dispatch.elementMouseover({
- row: this,
- data: d,
- pos: [d.x, d.y]
- });
- })
- .on('mouseout', function(d) {
- dispatch.elementMouseout({
- row: this,
- data: d,
- pos: [d.x, d.y]
- });
- });
-
-
-
-
- // Toggle children on click.
- function click(d, _, unshift) {
- d3.event.stopPropagation();
-
- if(d3.event.shiftKey && !unshift) {
- //If you shift-click, it'll toggle fold all the children, instead of itself
- d3.event.shiftKey = false;
- d.values && d.values.forEach(function(node){
- if (node.values || node._values) {
- click(node, 0, true);
- }
- });
- return true;
- }
- if(!hasChildren(d)) {
- //download file
- //window.location.href = d.url;
- return true;
- }
- if (d.values) {
- d._values = d.values;
- d.values = null;
- } else {
- d.values = d._values;
- d._values = null;
- }
- chart.update();
- }
-
-
- function icon(d) {
- return (d._values && d._values.length) ? iconOpen : (d.values && d.values.length) ? iconClose : '';
- }
-
- function folded(d) {
- return (d._values && d._values.length);
- }
-
- function hasChildren(d) {
- var values = d.values || d._values;
-
- return (values && values.length);
- }
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- scatter.color(color);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.header = function(_) {
- if (!arguments.length) return header;
- header = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.filterZero = function(_) {
- if (!arguments.length) return filterZero;
- filterZero = _;
- return chart;
- };
-
- chart.columns = function(_) {
- if (!arguments.length) return columns;
- columns = _;
- return chart;
- };
-
- chart.tableClass = function(_) {
- if (!arguments.length) return tableClass;
- tableClass = _;
- return chart;
- };
-
- chart.iconOpen = function(_){
- if (!arguments.length) return iconOpen;
- iconOpen = _;
- return chart;
- }
-
- chart.iconClose = function(_){
- if (!arguments.length) return iconClose;
- iconClose = _;
- return chart;
- }
-
- chart.getUrl = function(_){
- if (!arguments.length) return getUrl;
- getUrl = _;
- return chart;
- }
-
- //============================================================
-
-
- return chart;
-}; \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js
deleted file mode 100755
index 21f9f9a4..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js
+++ /dev/null
@@ -1,270 +0,0 @@
-nv.models.legend = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 5, right: 0, bottom: 5, left: 0}
- , width = 400
- , height = 20
- , getKey = function(d) { return d.key }
- , color = nv.utils.defaultColor()
- , align = true
- , rightAlign = true
- , updateState = true //If true, legend will update data.disabled and trigger a 'stateChange' dispatch.
- , radioButtonMode = false //If true, clicking legend items will cause it to behave like a radio button. (only one can be selected at a time)
- , dispatch = d3.dispatch('legendClick', 'legendDblclick', 'legendMouseover', 'legendMouseout', 'stateChange')
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-legend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-legend').append('g');
- var g = wrap.select('g');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- var series = g.selectAll('.nv-series')
- .data(function(d) { return d });
- var seriesEnter = series.enter().append('g').attr('class', 'nv-series')
- .on('mouseover', function(d,i) {
- dispatch.legendMouseover(d,i); //TODO: Make consistent with other event objects
- })
- .on('mouseout', function(d,i) {
- dispatch.legendMouseout(d,i);
- })
- .on('click', function(d,i) {
- dispatch.legendClick(d,i);
- if (updateState) {
- if (radioButtonMode) {
- //Radio button mode: set every series to disabled,
- // and enable the clicked series.
- data.forEach(function(series) { series.disabled = true});
- d.disabled = false;
- }
- else {
- d.disabled = !d.disabled;
- if (data.every(function(series) { return series.disabled})) {
- //the default behavior of NVD3 legends is, if every single series
- // is disabled, turn all series' back on.
- data.forEach(function(series) { series.disabled = false});
- }
- }
- dispatch.stateChange({
- disabled: data.map(function(d) { return !!d.disabled })
- });
- }
- })
- .on('dblclick', function(d,i) {
- dispatch.legendDblclick(d,i);
- if (updateState) {
- //the default behavior of NVD3 legends, when double clicking one,
- // is to set all other series' to false, and make the double clicked series enabled.
- data.forEach(function(series) {
- series.disabled = true;
- });
- d.disabled = false;
- dispatch.stateChange({
- disabled: data.map(function(d) { return !!d.disabled })
- });
- }
- });
- seriesEnter.append('circle')
- .style('stroke-width', 2)
- .attr('class','nv-legend-symbol')
- .attr('r', 5);
- seriesEnter.append('text')
- .attr('text-anchor', 'start')
- .attr('class','nv-legend-text')
- .attr('dy', '.32em')
- .attr('dx', '8');
- series.classed('disabled', function(d) { return d.disabled });
- series.exit().remove();
- series.select('circle')
- .style('fill', function(d,i) { return d.color || color(d,i)})
- .style('stroke', function(d,i) { return d.color || color(d, i) });
- series.select('text').text(getKey);
-
-
- //TODO: implement fixed-width and max-width options (max-width is especially useful with the align option)
-
- // NEW ALIGNING CODE, TODO: clean up
- if (align) {
-
- var seriesWidths = [];
- series.each(function(d,i) {
- var legendText = d3.select(this).select('text');
- var nodeTextLength;
- try {
- nodeTextLength = legendText.node().getComputedTextLength();
- }
- catch(e) {
- nodeTextLength = nv.utils.calcApproxTextWidth(legendText);
- }
-
- seriesWidths.push(nodeTextLength + 28); // 28 is ~ the width of the circle plus some padding
- });
-
- var seriesPerRow = 0;
- var legendWidth = 0;
- var columnWidths = [];
-
- while ( legendWidth < availableWidth && seriesPerRow < seriesWidths.length) {
- columnWidths[seriesPerRow] = seriesWidths[seriesPerRow];
- legendWidth += seriesWidths[seriesPerRow++];
- }
- if (seriesPerRow === 0) seriesPerRow = 1; //minimum of one series per row
-
-
- while ( legendWidth > availableWidth && seriesPerRow > 1 ) {
- columnWidths = [];
- seriesPerRow--;
-
- for (var k = 0; k < seriesWidths.length; k++) {
- if (seriesWidths[k] > (columnWidths[k % seriesPerRow] || 0) )
- columnWidths[k % seriesPerRow] = seriesWidths[k];
- }
-
- legendWidth = columnWidths.reduce(function(prev, cur, index, array) {
- return prev + cur;
- });
- }
-
- var xPositions = [];
- for (var i = 0, curX = 0; i < seriesPerRow; i++) {
- xPositions[i] = curX;
- curX += columnWidths[i];
- }
-
- series
- .attr('transform', function(d, i) {
- return 'translate(' + xPositions[i % seriesPerRow] + ',' + (5 + Math.floor(i / seriesPerRow) * 20) + ')';
- });
-
- //position legend as far right as possible within the total width
- if (rightAlign) {
- g.attr('transform', 'translate(' + (width - margin.right - legendWidth) + ',' + margin.top + ')');
- }
- else {
- g.attr('transform', 'translate(0' + ',' + margin.top + ')');
- }
-
- height = margin.top + margin.bottom + (Math.ceil(seriesWidths.length / seriesPerRow) * 20);
-
- } else {
-
- var ypos = 5,
- newxpos = 5,
- maxwidth = 0,
- xpos;
- series
- .attr('transform', function(d, i) {
- var length = d3.select(this).select('text').node().getComputedTextLength() + 28;
- xpos = newxpos;
-
- if (width < margin.left + margin.right + xpos + length) {
- newxpos = xpos = 5;
- ypos += 20;
- }
-
- newxpos += length;
- if (newxpos > maxwidth) maxwidth = newxpos;
-
- return 'translate(' + xpos + ',' + ypos + ')';
- });
-
- //position legend as far right as possible within the total width
- g.attr('transform', 'translate(' + (width - margin.right - maxwidth) + ',' + margin.top + ')');
-
- height = margin.top + margin.bottom + ypos + 15;
-
- }
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.key = function(_) {
- if (!arguments.length) return getKey;
- getKey = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.align = function(_) {
- if (!arguments.length) return align;
- align = _;
- return chart;
- };
-
- chart.rightAlign = function(_) {
- if (!arguments.length) return rightAlign;
- rightAlign = _;
- return chart;
- };
-
- chart.updateState = function(_) {
- if (!arguments.length) return updateState;
- updateState = _;
- return chart;
- };
-
- chart.radioButtonMode = function(_) {
- if (!arguments.length) return radioButtonMode;
- radioButtonMode = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js
deleted file mode 100755
index 7203d159..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js
+++ /dev/null
@@ -1,274 +0,0 @@
-
-nv.models.line = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var scatter = nv.models.scatter()
- ;
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor() // a function that returns a color
- , getX = function(d) { return d.x } // accessor to get the x value from a data point
- , getY = function(d) { return d.y } // accessor to get the y value from a data point
- , defined = function(d,i) { return !isNaN(getY(d,i)) && getY(d,i) !== null } // allows a line to be not continuous when it is not defined
- , isArea = function(d) { return d.area } // decides if a line is an area or just a line
- , clipEdge = false // if true, masks lines within x and y scale
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , interpolate = "linear" // controls the line interpolation
- ;
-
- scatter
- .size(16) // default size
- .sizeDomain([16,256]) //set to speed up calculation, needs to be unset if there is a custom size accessor
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0 //used to store previous scales
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = scatter.xScale();
- y = scatter.yScale();
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-line').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-line');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- gEnter.append('g').attr('class', 'nv-groups');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
-
- var scatterWrap = wrap.select('.nv-scatterWrap');
- //.datum(data); // Data automatically trickles down from the wrap
-
- scatterWrap.transition().call(scatter);
-
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + scatter.id())
- .append('rect');
-
- wrap.select('#nv-edge-clip-' + scatter.id() + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
- scatterWrap
- .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
-
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
-
- groups.exit().remove();
-
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i)});
- groups
- .transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .5);
-
-
-
- var areaPaths = groups.selectAll('path.nv-area')
- .data(function(d) { return isArea(d) ? [d] : [] }); // this is done differently than lines because I need to check if series is an area
- areaPaths.enter().append('path')
- .attr('class', 'nv-area')
- .attr('d', function(d) {
- return d3.svg.area()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
- .y0(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
- .y1(function(d,i) { return y0( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
- //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
- .apply(this, [d.values])
- });
- groups.exit().selectAll('path.nv-area')
- .remove();
-
- areaPaths
- .transition()
- .attr('d', function(d) {
- return d3.svg.area()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .y0(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- .y1(function(d,i) { return y( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
- //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
- .apply(this, [d.values])
- });
-
-
-
- var linePaths = groups.selectAll('path.nv-line')
- .data(function(d) { return [d.values] });
- linePaths.enter().append('path')
- .attr('class', 'nv-line')
- .attr('d',
- d3.svg.line()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
- .y(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
- );
-
- linePaths
- .transition()
- .attr('d',
- d3.svg.line()
- .interpolate(interpolate)
- .defined(defined)
- .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .y(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- );
-
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = scatter.dispatch;
- chart.scatter = scatter;
-
- d3.rebind(chart, scatter, 'id', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
- 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi', 'clipRadius', 'padData','highlightPoint','clearHighlights');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- scatter.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- scatter.y(_);
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- scatter.color(color);
- return chart;
- };
-
- chart.interpolate = function(_) {
- if (!arguments.length) return interpolate;
- interpolate = _;
- return chart;
- };
-
- chart.defined = function(_) {
- if (!arguments.length) return defined;
- defined = _;
- return chart;
- };
-
- chart.isArea = function(_) {
- if (!arguments.length) return isArea;
- isArea = d3.functor(_);
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js
deleted file mode 100755
index a4ffcf6a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js
+++ /dev/null
@@ -1,465 +0,0 @@
-
-nv.models.lineChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , interactiveLayer = nv.interactiveGuideline()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , useInteractiveGuideline = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , x
- , y
- , state = {}
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = lines.xScale();
- y = lines.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-lineChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append("rect").style("opacity",0);
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-linesWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-interactive');
-
- g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
-
- //------------------------------------------------------------
- //Set up interactive layer
- if (useInteractiveGuideline) {
- interactiveLayer
- .width(availableWidth)
- .height(availableHeight)
- .margin({left:margin.left, top:margin.top})
- .svgContainer(container)
- .xScale(x);
- wrap.select(".nv-interactive").call(interactiveLayer);
- }
-
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
-
-
- var linesWrap = g.select('.nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- linesWrap.transition().call(lines);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- g.select('.nv-x.nv-axis')
- .transition()
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .transition()
- .call(yAxis);
- }
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- interactiveLayer.dispatch.on('elementMousemove', function(e) {
- lines.clearHighlights();
- var singlePoint, pointIndex, pointXLocation, allData = [];
- data
- .filter(function(series, i) {
- series.seriesIndex = i;
- return !series.disabled;
- })
- .forEach(function(series,i) {
- pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
- lines.highlightPoint(i, pointIndex, true);
- var point = series.values[pointIndex];
- if (typeof point === 'undefined') return;
- if (typeof singlePoint === 'undefined') singlePoint = point;
- if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
- allData.push({
- key: series.key,
- value: chart.y()(point, pointIndex),
- color: color(series,series.seriesIndex)
- });
- });
- //Highlight the tooltip entry based on which point the mouse is closest to.
- if (allData.length > 2) {
- var yValue = chart.yScale().invert(e.mouseY);
- var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
- var threshold = 0.03 * domainExtent;
- var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
- if (indexToHighlight !== null)
- allData[indexToHighlight].highlight = true;
- }
-
- var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
- interactiveLayer.tooltip
- .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
- .chartContainer(that.parentNode)
- .enabled(tooltips)
- .valueFormatter(function(d,i) {
- return yAxis.tickFormat()(d);
- })
- .data(
- {
- value: xValue,
- series: allData
- }
- )();
-
- interactiveLayer.renderGuideLine(pointXLocation);
-
- });
-
- interactiveLayer.dispatch.on("elementMouseout",function(e) {
- dispatch.tooltipHide();
- lines.clearHighlights();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.lines = lines;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.interactiveLayer = interactiveLayer;
-
- d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange'
- , 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'useVoronoi','id', 'interpolate');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.useInteractiveGuideline = function(_) {
- if(!arguments.length) return useInteractiveGuideline;
- useInteractiveGuideline = _;
- if (_ === true) {
- chart.interactive(false);
- chart.useVoronoi(false);
- }
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js
deleted file mode 100755
index 77fcbab7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js
+++ /dev/null
@@ -1,433 +0,0 @@
-
-nv.models.linePlusBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , bars = nv.models.historicalBar()
- , xAxis = nv.models.axis()
- , y1Axis = nv.models.axis()
- , y2Axis = nv.models.axis()
- , legend = nv.models.legend()
- ;
-
- var margin = {top: 30, right: 60, bottom: 50, left: 60}
- , width = null
- , height = null
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , color = nv.utils.defaultColor()
- , showLegend = true
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>';
- }
- , x
- , y1
- , y2
- , state = {}
- , defaultState = null
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- ;
-
- bars
- .padData(true)
- ;
- lines
- .clipEdge(false)
- .padData(true)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(7)
- .highlightZero(false)
- ;
- y1Axis
- .orient('left')
- ;
- y2Axis
- .orient('right')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- }
- ;
-
- //------------------------------------------------------------
-
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().call(chart); };
- // chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
- var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
- //x = xAxis.scale();
- x = dataLines.filter(function(d) { return !d.disabled; }).length && dataLines.filter(function(d) { return !d.disabled; })[0].values.length ? lines.xScale() : bars.xScale();
- //x = dataLines.filter(function(d) { return !d.disabled; }).length ? lines.xScale() : bars.xScale(); //old code before change above
- y1 = bars.yScale();
- y2 = lines.yScale();
-
- //------------------------------------------------------------
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y1 nv-axis');
- gEnter.append('g').attr('class', 'nv-y2 nv-axis');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-linesWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- g.select('.nv-legendWrap')
- .datum(data.map(function(series) {
- series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
- series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
- return series;
- }))
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))
-
- bars
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && data[i].bar }))
-
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(dataBars.length ? dataBars : [{values:[]}])
-
- var linesWrap = g.select('.nv-linesWrap')
- .datum(dataLines[0] && !dataLines[0].disabled ? dataLines : [{values:[]}] );
- //.datum(!dataLines[0].disabled ? dataLines : [{values:dataLines[0].values.map(function(d) { return [d[0], null] }) }] );
-
- d3.transition(barsWrap).call(bars);
- d3.transition(linesWrap).call(lines);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y1.range()[0] + ')');
- d3.transition(g.select('.nv-x.nv-axis'))
- .call(xAxis);
-
-
- y1Axis
- .scale(y1)
- .ticks( availableHeight / 36 )
- .tickSize(-availableWidth, 0);
-
- d3.transition(g.select('.nv-y1.nv-axis'))
- .style('opacity', dataBars.length ? 1 : 0)
- .call(y1Axis);
-
-
- y2Axis
- .scale(y2)
- .ticks( availableHeight / 36 )
- .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
- g.select('.nv-y2.nv-axis')
- .style('opacity', dataLines.length ? 1 : 0)
- .attr('transform', 'translate(' + availableWidth + ',0)');
- //.attr('transform', 'translate(' + x.range()[1] + ',0)');
-
- d3.transition(g.select('.nv-y2.nv-axis'))
- .call(y2Axis);
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.lines = lines;
- chart.bars = bars;
- chart.xAxis = xAxis;
- chart.y1Axis = y1Axis;
- chart.y2Axis = y2Axis;
-
- d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
- //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
- //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines.x(_);
- bars.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines.y(_);
- bars.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js
deleted file mode 100755
index 2ef31137..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js
+++ /dev/null
@@ -1,658 +0,0 @@
-
-nv.models.linePlusBarWithFocusChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , lines2 = nv.models.line()
- , bars = nv.models.historicalBar()
- , bars2 = nv.models.historicalBar()
- , xAxis = nv.models.axis()
- , x2Axis = nv.models.axis()
- , y1Axis = nv.models.axis()
- , y2Axis = nv.models.axis()
- , y3Axis = nv.models.axis()
- , y4Axis = nv.models.axis()
- , legend = nv.models.legend()
- , brush = d3.svg.brush()
- ;
-
- var margin = {top: 30, right: 30, bottom: 30, left: 60}
- , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
- , width = null
- , height = null
- , height2 = 100
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , color = nv.utils.defaultColor()
- , showLegend = true
- , extent
- , brushExtent = null
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>';
- }
- , x
- , x2
- , y1
- , y2
- , y3
- , y4
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
- , transitionDuration = 0
- ;
-
- lines
- .clipEdge(true)
- ;
- lines2
- .interactive(false)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(5)
- ;
- y1Axis
- .orient('left')
- ;
- y2Axis
- .orient('right')
- ;
- x2Axis
- .orient('bottom')
- .tickPadding(5)
- ;
- y3Axis
- .orient('left')
- ;
- y4Axis
- .orient('right')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- if (extent) {
- e.pointIndex += Math.ceil(extent[0]);
- }
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //------------------------------------------------------------
-
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2,
- availableHeight2 = height2 - margin2.top - margin2.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight1 / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
- var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
- x = bars.xScale();
- x2 = x2Axis.scale();
- y1 = bars.yScale();
- y2 = lines.yScale();
- y3 = bars2.yScale();
- y4 = lines2.yScale();
-
- var series1 = data
- .filter(function(d) { return !d.disabled && d.bar })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i) }
- })
- });
-
- var series2 = data
- .filter(function(d) { return !d.disabled && !d.bar })
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i) }
- })
- });
-
- x .range([0, availableWidth]);
-
- x2 .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
- focusEnter.append('g').attr('class', 'nv-x nv-axis');
- focusEnter.append('g').attr('class', 'nv-y1 nv-axis');
- focusEnter.append('g').attr('class', 'nv-y2 nv-axis');
- focusEnter.append('g').attr('class', 'nv-barsWrap');
- focusEnter.append('g').attr('class', 'nv-linesWrap');
-
- var contextEnter = gEnter.append('g').attr('class', 'nv-context');
- contextEnter.append('g').attr('class', 'nv-x nv-axis');
- contextEnter.append('g').attr('class', 'nv-y1 nv-axis');
- contextEnter.append('g').attr('class', 'nv-y2 nv-axis');
- contextEnter.append('g').attr('class', 'nv-barsWrap');
- contextEnter.append('g').attr('class', 'nv-linesWrap');
- contextEnter.append('g').attr('class', 'nv-brushBackground');
- contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- g.select('.nv-legendWrap')
- .datum(data.map(function(series) {
- series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
- series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
- return series;
- }))
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Context Components
-
- bars2
- .width(availableWidth)
- .height(availableHeight2)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
- lines2
- .width(availableWidth)
- .height(availableHeight2)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-
- var bars2Wrap = g.select('.nv-context .nv-barsWrap')
- .datum(dataBars.length ? dataBars : [{values:[]}]);
-
- var lines2Wrap = g.select('.nv-context .nv-linesWrap')
- .datum(!dataLines[0].disabled ? dataLines : [{values:[]}]);
-
- g.select('.nv-context')
- .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
- bars2Wrap.transition().call(bars2);
- lines2Wrap.transition().call(lines2);
-
- //------------------------------------------------------------
-
-
-
- //------------------------------------------------------------
- // Setup Brush
-
- brush
- .x(x2)
- .on('brush', onBrush);
-
- if (brushExtent) brush.extent(brushExtent);
-
- var brushBG = g.select('.nv-brushBackground').selectAll('g')
- .data([brushExtent || brush.extent()])
-
- var brushBGenter = brushBG.enter()
- .append('g');
-
- brushBGenter.append('rect')
- .attr('class', 'left')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- brushBGenter.append('rect')
- .attr('class', 'right')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- var gBrush = g.select('.nv-x.nv-brush')
- .call(brush);
- gBrush.selectAll('rect')
- //.attr('y', -5)
- .attr('height', availableHeight2);
- gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
- //------------------------------------------------------------
-
- //------------------------------------------------------------
- // Setup Secondary (Context) Axes
-
- x2Axis
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight2, 0);
-
- g.select('.nv-context .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y3.range()[0] + ')');
- g.select('.nv-context .nv-x.nv-axis').transition()
- .call(x2Axis);
-
-
- y3Axis
- .scale(y3)
- .ticks( availableHeight2 / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-context .nv-y1.nv-axis')
- .style('opacity', dataBars.length ? 1 : 0)
- .attr('transform', 'translate(0,' + x2.range()[0] + ')');
-
- g.select('.nv-context .nv-y1.nv-axis').transition()
- .call(y3Axis);
-
-
- y4Axis
- .scale(y4)
- .ticks( availableHeight2 / 36 )
- .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
- g.select('.nv-context .nv-y2.nv-axis')
- .style('opacity', dataLines.length ? 1 : 0)
- .attr('transform', 'translate(' + x2.range()[1] + ',0)');
-
- g.select('.nv-context .nv-y2.nv-axis').transition()
- .call(y4Axis);
-
- //------------------------------------------------------------
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
-
- //============================================================
- // Functions
- //------------------------------------------------------------
-
- // Taken from crossfilter (http://square.github.com/crossfilter/)
- function resizePath(d) {
- var e = +(d == 'e'),
- x = e ? 1 : -1,
- y = availableHeight2 / 3;
- return 'M' + (.5 * x) + ',' + y
- + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
- + 'V' + (2 * y - 6)
- + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
- + 'Z'
- + 'M' + (2.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8)
- + 'M' + (4.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8);
- }
-
-
- function updateBrushBG() {
- if (!brush.empty()) brush.extent(brushExtent);
- brushBG
- .data([brush.empty() ? x2.domain() : brushExtent])
- .each(function(d,i) {
- var leftWidth = x2(d[0]) - x2.range()[0],
- rightWidth = x2.range()[1] - x2(d[1]);
- d3.select(this).select('.left')
- .attr('width', leftWidth < 0 ? 0 : leftWidth);
-
- d3.select(this).select('.right')
- .attr('x', x2(d[1]))
- .attr('width', rightWidth < 0 ? 0 : rightWidth);
- });
- }
-
-
- function onBrush() {
- brushExtent = brush.empty() ? null : brush.extent();
- extent = brush.empty() ? x2.domain() : brush.extent();
-
-
- dispatch.brush({extent: extent, brush: brush});
-
- updateBrushBG();
-
-
- //------------------------------------------------------------
- // Prepare Main (Focus) Bars and Lines
-
- bars
- .width(availableWidth)
- .height(availableHeight1)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
-
- lines
- .width(availableWidth)
- .height(availableHeight1)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-
- var focusBarsWrap = g.select('.nv-focus .nv-barsWrap')
- .datum(!dataBars.length ? [{values:[]}] :
- dataBars
- .map(function(d,i) {
- return {
- key: d.key,
- values: d.values.filter(function(d,i) {
- return bars.x()(d,i) >= extent[0] && bars.x()(d,i) <= extent[1];
- })
- }
- })
- );
-
- var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
- .datum(dataLines[0].disabled ? [{values:[]}] :
- dataLines
- .map(function(d,i) {
- return {
- key: d.key,
- values: d.values.filter(function(d,i) {
- return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
- })
- }
- })
- );
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Update Main (Focus) X Axis
-
- if (dataBars.length) {
- x = bars.xScale();
- } else {
- x = lines.xScale();
- }
-
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight1, 0);
-
- xAxis.domain([Math.ceil(extent[0]), Math.floor(extent[1])]);
-
- g.select('.nv-x.nv-axis').transition().duration(transitionDuration)
- .call(xAxis);
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Update Main (Focus) Bars and Lines
-
- focusBarsWrap.transition().duration(transitionDuration).call(bars);
- focusLinesWrap.transition().duration(transitionDuration).call(lines);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup and Update Main (Focus) Y Axes
-
- g.select('.nv-focus .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y1.range()[0] + ')');
-
-
- y1Axis
- .scale(y1)
- .ticks( availableHeight1 / 36 )
- .tickSize(-availableWidth, 0);
-
- g.select('.nv-focus .nv-y1.nv-axis')
- .style('opacity', dataBars.length ? 1 : 0);
-
-
- y2Axis
- .scale(y2)
- .ticks( availableHeight1 / 36 )
- .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
- g.select('.nv-focus .nv-y2.nv-axis')
- .style('opacity', dataLines.length ? 1 : 0)
- .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
- g.select('.nv-focus .nv-y1.nv-axis').transition().duration(transitionDuration)
- .call(y1Axis);
- g.select('.nv-focus .nv-y2.nv-axis').transition().duration(transitionDuration)
- .call(y2Axis);
- }
-
- //============================================================
-
- onBrush();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.lines = lines;
- chart.lines2 = lines2;
- chart.bars = bars;
- chart.bars2 = bars2;
- chart.xAxis = xAxis;
- chart.x2Axis = x2Axis;
- chart.y1Axis = y1Axis;
- chart.y2Axis = y2Axis;
- chart.y3Axis = y3Axis;
- chart.y4Axis = y4Axis;
-
- d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
- //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
- //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines.x(_);
- bars.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines.y(_);
- bars.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.brushExtent = function(_) {
- if (!arguments.length) return brushExtent;
- brushExtent = _;
- return chart;
- };
-
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js
deleted file mode 100755
index 2b411672..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js
+++ /dev/null
@@ -1,200 +0,0 @@
-
-nv.models.line = function() {
- "use strict";
- //Default Settings
- var margin = {top: 0, right: 0, bottom: 0, left: 0},
- width = 960,
- height = 500,
- color = nv.utils.defaultColor(), // function that returns colors
- id = Math.floor(Math.random() * 10000), //Create semi-unique ID incase user doesn't select one
- getX = function(d) { return d.x }, // accessor to get the x value from a data point
- getY = function(d) { return d.y }, // accessor to get the y value from a data point
- clipEdge = false, // if true, masks lines within x and y scale
- interpolate = "linear"; // controls the line interpolation
-
-
- var scatter = nv.models.scatter()
- .id(id)
- .size(16) // default size
- .sizeDomain([16,256]), //set to speed up calculation, needs to be unset if there is a custom size accessor
- //x = scatter.xScale(),
- //y = scatter.yScale(),
- x, y,
- x0, y0, timeoutID;
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom;
-
- //get the scales inscase scatter scale was set manually
- x = x || scatter.xScale();
- y = y || scatter.yScale();
-
- //store old scales if they exist
- x0 = x0 || x;
- y0 = y0 || y;
-
-
- var wrap = d3.select(this).selectAll('g.nv-wrap.nv-line').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-line');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- wrapEnter.append('g').attr('class', 'nv-scatterWrap');
- var scatterWrap = wrap.select('.nv-scatterWrap').datum(data);
-
- gEnter.append('g').attr('class', 'nv-groups');
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
-
- d3.transition(scatterWrap).call(scatter);
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
-
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
- scatterWrap
- .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- d3.transition(groups.exit())
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i) })
- d3.transition(groups)
- .style('stroke-opacity', 1)
- .style('fill-opacity', .5)
-
-
- var paths = groups.selectAll('path')
- .data(function(d, i) { return [d.values] });
- paths.enter().append('path')
- .attr('class', 'nv-line')
- .attr('d', d3.svg.line()
- .interpolate(interpolate)
- .x(function(d,i) { return x0(getX(d,i)) })
- .y(function(d,i) { return y0(getY(d,i)) })
- );
- d3.transition(groups.exit().selectAll('path'))
- .attr('d', d3.svg.line()
- .interpolate(interpolate)
- .x(function(d,i) { return x(getX(d,i)) })
- .y(function(d,i) { return y(getY(d,i)) })
- )
- .remove(); // redundant? line is already being removed
- d3.transition(paths)
- .attr('d', d3.svg.line()
- .interpolate(interpolate)
- .x(function(d,i) { return x(getX(d,i)) })
- .y(function(d,i) { return y(getY(d,i)) })
- );
-
-
- //store old scales for use in transitions on update, to animate from old to new positions
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = scatter.dispatch;
-
- d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- scatter.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- scatter.y(_);
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- scatter.color(color);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.interpolate = function(_) {
- if (!arguments.length) return interpolate;
- interpolate = _;
- return chart;
- };
-
- chart.defined = function(_) {
- if (!arguments.length) return defined;
- defined = _;
- return chart;
- };
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js
deleted file mode 100755
index ad894190..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js
+++ /dev/null
@@ -1,297 +0,0 @@
-
-nv.models.lineChart = function() {
- "use strict";
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- color = nv.utils.defaultColor(),
- width = null,
- height = null,
- showLegend = true,
- showControls = true,
- fisheye = 0,
- pauseFisheye = false,
- tooltips = true,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- },
- noData = "No Data Available."
- ;
-
-
- var x = d3.fisheye.scale(d3.scale.linear).distortion(0);
-
- var lines = nv.models.line().xScale(x),
- //x = lines.xScale(),
- y = lines.yScale(),
- xAxis = nv.models.axis().scale(x).orient('bottom').tickPadding(5),
- yAxis = nv.models.axis().scale(y).orient('left'),
- legend = nv.models.legend().height(30),
- controls = nv.models.legend().height(30).updateState(false),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
-
- var controlsData = [
- { key: 'Magnify', disabled: true }
- ];
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().call(chart) };
- chart.container = this; // I need a reference to the container in order to have outside code check if the chart is visible or not
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- container.append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('x', availableWidth / 2)
- .attr('y', availableHeight / 2)
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle')
- .text(noData);
- return chart;
- } else {
- container.select('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
-
- var wrap = container.selectAll('g.nv-wrap.nv-lineChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineChart').append('g');
-
-
- gEnter.append('rect')
- .attr('class', 'nvd3 nv-background')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-linesWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-
- var g = wrap.select('g');
-
-
-
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- if (showControls) {
- controls.width(180).color(['#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
-
-
- lines
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
-
-
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- var linesWrap = g.select('.nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(linesWrap).call(lines);
-
-
-
- xAxis
- //.scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.nv-x.nv-axis'))
- .call(xAxis);
-
-
- yAxis
- //.scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.nv-y.nv-axis'))
- .call(yAxis);
-
-
-
- g.select('.nv-background').on('mousemove', updateFisheye);
- g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye; });
- //g.select('.point-paths').on('mousemove', updateFisheye);
-
-
- function updateFisheye() {
- if (pauseFisheye) {
- //g.select('.background') .style('pointer-events', 'none');
- g.select('.nv-point-paths').style('pointer-events', 'all');
- return false;
- }
-
- g.select('.nv-background') .style('pointer-events', 'all');
- g.select('.nv-point-paths').style('pointer-events', 'none' );
-
- var mouse = d3.mouse(this);
- linesWrap.call(lines);
- g.select('.nv-x.nv-axis').call(xAxis);
- x.distortion(fisheye).focus(mouse[0]);
- }
-
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- fisheye = d.disabled ? 0 : 5;
- g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
- g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
- //scatter.interactive(d.disabled);
- //tooltips = d.disabled;
-
- if (d.disabled) {
- x.distortion(fisheye).focus(0);
-
- linesWrap.call(lines);
- g.select('.nv-x.nv-axis').call(xAxis);
- } else {
- pauseFisheye = false;
- }
-
- chart.update();
- });
-
-
- legend.dispatch.on('stateChange', function(newState) {
- chart.update();
- });
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
- if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, that.parentNode) } ); // TODO: maybe merge with above?
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
- if (tooltips) dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
- });
-
- return chart;
- }
-
-
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, lines, 'defined', 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id', 'interpolate');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js
deleted file mode 100755
index 0afd28bd..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js
+++ /dev/null
@@ -1,574 +0,0 @@
-nv.models.lineWithFocusChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var lines = nv.models.line()
- , lines2 = nv.models.line()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , x2Axis = nv.models.axis()
- , y2Axis = nv.models.axis()
- , legend = nv.models.legend()
- , brush = d3.svg.brush()
- ;
-
- var margin = {top: 30, right: 30, bottom: 30, left: 60}
- , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
- , color = nv.utils.defaultColor()
- , width = null
- , height = null
- , height2 = 100
- , x
- , y
- , x2
- , y2
- , showLegend = true
- , brushExtent = null
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- }
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
- , transitionDuration = 250
- ;
-
- lines
- .clipEdge(true)
- ;
- lines2
- .interactive(false)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(5)
- ;
- yAxis
- .orient('left')
- ;
- x2Axis
- .orient('bottom')
- .tickPadding(5)
- ;
- y2Axis
- .orient('left')
- ;
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, null, null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2,
- availableHeight2 = height2 - margin2.top - margin2.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight1 / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = lines.xScale();
- y = lines.yScale();
- x2 = lines2.xScale();
- y2 = lines2.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-lineWithFocusChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineWithFocusChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
- focusEnter.append('g').attr('class', 'nv-x nv-axis');
- focusEnter.append('g').attr('class', 'nv-y nv-axis');
- focusEnter.append('g').attr('class', 'nv-linesWrap');
-
- var contextEnter = gEnter.append('g').attr('class', 'nv-context');
- contextEnter.append('g').attr('class', 'nv-x nv-axis');
- contextEnter.append('g').attr('class', 'nv-y nv-axis');
- contextEnter.append('g').attr('class', 'nv-linesWrap');
- contextEnter.append('g').attr('class', 'nv-brushBackground');
- contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight1 = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom - height2;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- lines
- .width(availableWidth)
- .height(availableHeight1)
- .color(
- data
- .map(function(d,i) {
- return d.color || color(d, i);
- })
- .filter(function(d,i) {
- return !data[i].disabled;
- })
- );
-
- lines2
- .defined(lines.defined())
- .width(availableWidth)
- .height(availableHeight2)
- .color(
- data
- .map(function(d,i) {
- return d.color || color(d, i);
- })
- .filter(function(d,i) {
- return !data[i].disabled;
- })
- );
-
- g.select('.nv-context')
- .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
- var contextLinesWrap = g.select('.nv-context .nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(contextLinesWrap).call(lines2);
-
- //------------------------------------------------------------
-
-
- /*
- var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(focusLinesWrap).call(lines);
- */
-
-
- //------------------------------------------------------------
- // Setup Main (Focus) Axes
-
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight1, 0);
-
- yAxis
- .scale(y)
- .ticks( availableHeight1 / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-focus .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + availableHeight1 + ')');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Brush
-
- brush
- .x(x2)
- .on('brush', function() {
- //When brushing, turn off transitions because chart needs to change immediately.
- var oldTransition = chart.transitionDuration();
- chart.transitionDuration(0);
- onBrush();
- chart.transitionDuration(oldTransition);
- });
-
- if (brushExtent) brush.extent(brushExtent);
-
- var brushBG = g.select('.nv-brushBackground').selectAll('g')
- .data([brushExtent || brush.extent()])
-
- var brushBGenter = brushBG.enter()
- .append('g');
-
- brushBGenter.append('rect')
- .attr('class', 'left')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- brushBGenter.append('rect')
- .attr('class', 'right')
- .attr('x', 0)
- .attr('y', 0)
- .attr('height', availableHeight2);
-
- var gBrush = g.select('.nv-x.nv-brush')
- .call(brush);
- gBrush.selectAll('rect')
- //.attr('y', -5)
- .attr('height', availableHeight2);
- gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
- onBrush();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Secondary (Context) Axes
-
- x2Axis
- .scale(x2)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight2, 0);
-
- g.select('.nv-context .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y2.range()[0] + ')');
- d3.transition(g.select('.nv-context .nv-x.nv-axis'))
- .call(x2Axis);
-
-
- y2Axis
- .scale(y2)
- .ticks( availableHeight2 / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.nv-context .nv-y.nv-axis'))
- .call(y2Axis);
-
- g.select('.nv-context .nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y2.range()[0] + ')');
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- //============================================================
-
-
- //============================================================
- // Functions
- //------------------------------------------------------------
-
- // Taken from crossfilter (http://square.github.com/crossfilter/)
- function resizePath(d) {
- var e = +(d == 'e'),
- x = e ? 1 : -1,
- y = availableHeight2 / 3;
- return 'M' + (.5 * x) + ',' + y
- + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
- + 'V' + (2 * y - 6)
- + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
- + 'Z'
- + 'M' + (2.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8)
- + 'M' + (4.5 * x) + ',' + (y + 8)
- + 'V' + (2 * y - 8);
- }
-
-
- function updateBrushBG() {
- if (!brush.empty()) brush.extent(brushExtent);
- brushBG
- .data([brush.empty() ? x2.domain() : brushExtent])
- .each(function(d,i) {
- var leftWidth = x2(d[0]) - x.range()[0],
- rightWidth = x.range()[1] - x2(d[1]);
- d3.select(this).select('.left')
- .attr('width', leftWidth < 0 ? 0 : leftWidth);
-
- d3.select(this).select('.right')
- .attr('x', x2(d[1]))
- .attr('width', rightWidth < 0 ? 0 : rightWidth);
- });
- }
-
-
- function onBrush() {
- brushExtent = brush.empty() ? null : brush.extent();
- var extent = brush.empty() ? x2.domain() : brush.extent();
-
- //The brush extent cannot be less than one. If it is, don't update the line chart.
- if (Math.abs(extent[0] - extent[1]) <= 1) {
- return;
- }
-
- dispatch.brush({extent: extent, brush: brush});
-
-
- updateBrushBG();
-
- // Update Main (Focus)
- var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
- .datum(
- data
- .filter(function(d) { return !d.disabled })
- .map(function(d,i) {
- return {
- key: d.key,
- values: d.values.filter(function(d,i) {
- return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
- })
- }
- })
- );
- focusLinesWrap.transition().duration(transitionDuration).call(lines);
-
-
- // Update Main (Focus) Axes
- g.select('.nv-focus .nv-x.nv-axis').transition().duration(transitionDuration)
- .call(xAxis);
- g.select('.nv-focus .nv-y.nv-axis').transition().duration(transitionDuration)
- .call(yAxis);
- }
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.legend = legend;
- chart.lines = lines;
- chart.lines2 = lines2;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.x2Axis = x2Axis;
- chart.y2Axis = y2Axis;
-
- d3.rebind(chart, lines, 'defined', 'isArea', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return lines.x;
- lines.x(_);
- lines2.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return lines.y;
- lines.y(_);
- lines2.y(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.margin2 = function(_) {
- if (!arguments.length) return margin2;
- margin2 = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.height2 = function(_) {
- if (!arguments.length) return height2;
- height2 = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color =nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.interpolate = function(_) {
- if (!arguments.length) return lines.interpolate();
- lines.interpolate(_);
- lines2.interpolate(_);
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- // Chart has multiple similar Axes, to prevent code duplication, probably need to link all axis functions manually like below
- chart.xTickFormat = function(_) {
- if (!arguments.length) return xAxis.tickFormat();
- xAxis.tickFormat(_);
- x2Axis.tickFormat(_);
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return yAxis.tickFormat();
- yAxis.tickFormat(_);
- y2Axis.tickFormat(_);
- return chart;
- };
-
- chart.brushExtent = function(_) {
- if (!arguments.length) return brushExtent;
- brushExtent = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js
deleted file mode 100755
index 1085919b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js
+++ /dev/null
@@ -1,461 +0,0 @@
-
-nv.models.multiBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , x = d3.scale.ordinal()
- , y = d3.scale.linear()
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
- , clipEdge = true
- , stacked = false
- , stackOffset = 'zero' // options include 'silhouette', 'wiggle', 'expand', 'zero', or a custom function
- , color = nv.utils.defaultColor()
- , hideable = false
- , barColor = null // adding the ability to set the color for each rather than the whole group
- , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
- , delay = 1200
- , xDomain
- , yDomain
- , xRange
- , yRange
- , groupSpacing = 0.1
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0 //used to store previous scales
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- if(hideable && data.length) hideable = [{
- values: data[0].values.map(function(d) {
- return {
- x: d.x,
- y: 0,
- series: d.series,
- size: 0.01
- };}
- )}];
-
- if (stacked)
- data = d3.layout.stack()
- .offset(stackOffset)
- .values(function(d){ return d.values })
- .y(getY)
- (!data.length && hideable ? hideable : data);
-
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
-
- //------------------------------------------------------------
- // HACK for negative value stacking
- if (stacked)
- data[0].values.map(function(d,i) {
- var posBase = 0, negBase = 0;
- data.map(function(d) {
- var f = d.values[i]
- f.size = Math.abs(f.y);
- if (f.y<0) {
- f.y1 = negBase;
- negBase = negBase - f.size;
- } else
- {
- f.y1 = f.size + posBase;
- posBase = posBase + f.size;
- }
- });
- });
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
- })
- });
-
- x .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands(xRange || [0, availableWidth], groupSpacing);
-
- //y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y1 : 0) }).concat(forceY)))
- y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 : d.y1 + d.y ) : d.y }).concat(forceY)))
- .range(yRange || [availableHeight, 0]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multibar').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibar');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- gEnter.append('g').attr('class', 'nv-groups');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d,i) { return i });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit()
- .transition()
- .selectAll('rect.nv-bar')
- .delay(function(d,i) {
- return i * delay/ data[0].values.length;
- })
- .attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) })
- .attr('height', 0)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i) });
- groups
- .transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .75);
-
-
- var bars = groups.selectAll('rect.nv-bar')
- .data(function(d) { return (hideable && !data.length) ? hideable.values : d.values });
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('rect')
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
- .attr('x', function(d,i,j) {
- return stacked ? 0 : (j * x.rangeBand() / data.length )
- })
- .attr('y', function(d) { return y0(stacked ? d.y0 : 0) })
- .attr('height', 0)
- .attr('width', x.rangeBand() / (stacked ? 1 : data.length) )
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
- ;
- bars
- .style('fill', function(d,i,j){ return color(d, j, i); })
- .style('stroke', function(d,i,j){ return color(d, j, i); })
- .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- });
- bars
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
- .transition()
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
-
- if (barColor) {
- if (!disabled) disabled = data.map(function() { return true });
- bars
- .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); })
- .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); });
- }
-
-
- if (stacked)
- bars.transition()
- .delay(function(d,i) {
-
- return i * delay / data[0].values.length;
- })
- .attr('y', function(d,i) {
-
- return y((stacked ? d.y1 : 0));
- })
- .attr('height', function(d,i) {
- return Math.max(Math.abs(y(d.y + (stacked ? d.y0 : 0)) - y((stacked ? d.y0 : 0))),1);
- })
- .attr('x', function(d,i) {
- return stacked ? 0 : (d.series * x.rangeBand() / data.length )
- })
- .attr('width', x.rangeBand() / (stacked ? 1 : data.length) );
- else
- bars.transition()
- .delay(function(d,i) {
- return i * delay/ data[0].values.length;
- })
- .attr('x', function(d,i) {
- return d.series * x.rangeBand() / data.length
- })
- .attr('width', x.rangeBand() / data.length)
- .attr('y', function(d,i) {
- return getY(d,i) < 0 ?
- y(0) :
- y(0) - y(getY(d,i)) < 1 ?
- y(0) - 1 :
- y(getY(d,i)) || 0;
- })
- .attr('height', function(d,i) {
- return Math.max(Math.abs(y(getY(d,i)) - y(0)),1) || 0;
- });
-
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.stacked = function(_) {
- if (!arguments.length) return stacked;
- stacked = _;
- return chart;
- };
-
- chart.stackOffset = function(_) {
- if (!arguments.length) return stackOffset;
- stackOffset = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.barColor = function(_) {
- if (!arguments.length) return barColor;
- barColor = nv.utils.getColor(_);
- return chart;
- };
-
- chart.disabled = function(_) {
- if (!arguments.length) return disabled;
- disabled = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.hideable = function(_) {
- if (!arguments.length) return hideable;
- hideable = _;
- return chart;
- };
-
- chart.delay = function(_) {
- if (!arguments.length) return delay;
- delay = _;
- return chart;
- };
-
- chart.groupSpacing = function(_) {
- if (!arguments.length) return groupSpacing;
- groupSpacing = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js
deleted file mode 100755
index 0323063f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js
+++ /dev/null
@@ -1,524 +0,0 @@
-
-nv.models.multiBarChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var multibar = nv.models.multiBar()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , showControls = true
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , reduceXTicks = true // if false a tick will show for every data point
- , staggerLabels = false
- , rotateLabels = 0
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' on ' + x + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , state = { stacked: false }
- , defaultState = null
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , controlWidth = function() { return showControls ? 180 : 0 }
- , transitionDuration = 250
- ;
-
- multibar
- .stacked(false)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(7)
- .highlightZero(true)
- .showMaxMin(false)
- .tickFormat(function(d) { return d })
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickFormat(d3.format(',.1f'))
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = multibar.xScale();
- y = multibar.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multiBarWithLegend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarWithLegend').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth - controlWidth());
-
- if (multibar.barColor())
- data.forEach(function(series,i) {
- series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
- })
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- { key: 'Grouped', disabled: multibar.stacked() },
- { key: 'Stacked', disabled: !multibar.stacked() }
- ];
-
- controls.width(controlWidth()).color(['#444', '#444', '#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- multibar
- .disabled(data.map(function(series) { return series.disabled }))
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(multibar);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- g.select('.nv-x.nv-axis').transition()
- .call(xAxis);
-
- var xTicks = g.select('.nv-x.nv-axis > g').selectAll('g');
-
- xTicks
- .selectAll('line, text')
- .style('opacity', 1)
-
- if (staggerLabels) {
- var getTranslate = function(x,y) {
- return "translate(" + x + "," + y + ")";
- };
-
- var staggerUp = 5, staggerDown = 17; //pixels to stagger by
- // Issue #140
- xTicks
- .selectAll("text")
- .attr('transform', function(d,i,j) {
- return getTranslate(0, (j % 2 == 0 ? staggerUp : staggerDown));
- });
-
- var totalInBetweenTicks = d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;
- g.selectAll(".nv-x.nv-axis .nv-axisMaxMin text")
- .attr("transform", function(d,i) {
- return getTranslate(0, (i === 0 || totalInBetweenTicks % 2 !== 0) ? staggerDown : staggerUp);
- });
- }
-
- if (reduceXTicks)
- xTicks
- .filter(function(d,i) {
- return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
- })
- .selectAll('text, line')
- .style('opacity', 0);
-
- if(rotateLabels)
- xTicks
- .selectAll('.tick text')
- .attr('transform', 'rotate(' + rotateLabels + ' 0,0)')
- .style('text-anchor', rotateLabels > 0 ? 'start' : 'end');
-
- g.select('.nv-x.nv-axis').selectAll('g.nv-axisMaxMin text')
- .style('opacity', 1);
- }
-
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis').transition()
- .call(yAxis);
- }
-
-
- //------------------------------------------------------------
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Grouped':
- multibar.stacked(false);
- break;
- case 'Stacked':
- multibar.stacked(true);
- break;
- }
-
- state.stacked = multibar.stacked();
- dispatch.stateChange(state);
-
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode)
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- if (typeof e.stacked !== 'undefined') {
- multibar.stacked(e.stacked);
- state.stacked = e.stacked;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- multibar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- multibar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.multibar = multibar;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'clipEdge',
- 'id', 'stacked', 'stackOffset', 'delay', 'barColor','groupSpacing');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.reduceXTicks= function(_) {
- if (!arguments.length) return reduceXTicks;
- reduceXTicks = _;
- return chart;
- };
-
- chart.rotateLabels = function(_) {
- if (!arguments.length) return rotateLabels;
- rotateLabels = _;
- return chart;
- }
-
- chart.staggerLabels = function(_) {
- if (!arguments.length) return staggerLabels;
- staggerLabels = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js
deleted file mode 100755
index d617ae1d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js
+++ /dev/null
@@ -1,447 +0,0 @@
-
-nv.models.multiBarHorizontal = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.ordinal()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
- , color = nv.utils.defaultColor()
- , barColor = null // adding the ability to set the color for each rather than the whole group
- , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
- , stacked = false
- , showValues = false
- , showBarLabels = false
- , valuePadding = 60
- , valueFormat = d3.format(',.2f')
- , delay = 1200
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0 //used to store previous scales
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- if (stacked)
- data = d3.layout.stack()
- .offset('zero')
- .values(function(d){ return d.values })
- .y(getY)
- (data);
-
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
-
-
- //------------------------------------------------------------
- // HACK for negative value stacking
- if (stacked)
- data[0].values.map(function(d,i) {
- var posBase = 0, negBase = 0;
- data.map(function(d) {
- var f = d.values[i]
- f.size = Math.abs(f.y);
- if (f.y<0) {
- f.y1 = negBase - f.size;
- negBase = negBase - f.size;
- } else
- {
- f.y1 = posBase;
- posBase = posBase + f.size;
- }
- });
- });
-
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
- })
- });
-
- x .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
- .rangeBands(xRange || [0, availableHeight], .1);
-
- //y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y0 : 0) }).concat(forceY)))
- y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 + d.y : d.y1 ) : d.y }).concat(forceY)))
-
- if (showValues && !stacked)
- y.range(yRange || [(y.domain()[0] < 0 ? valuePadding : 0), availableWidth - (y.domain()[1] > 0 ? valuePadding : 0) ]);
- else
- y.range(yRange || [0, availableWidth]);
-
- x0 = x0 || x;
- y0 = y0 || d3.scale.linear().domain(y.domain()).range([y(0),y(0)]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('g.nv-wrap.nv-multibarHorizontal').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibarHorizontal');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-groups');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d,i) { return i });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit().transition()
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i) });
- groups.transition()
- .style('stroke-opacity', 1)
- .style('fill-opacity', .75);
-
-
- var bars = groups.selectAll('g.nv-bar')
- .data(function(d) { return d.values });
-
- bars.exit().remove();
-
-
- var barsEnter = bars.enter().append('g')
- .attr('transform', function(d,i,j) {
- return 'translate(' + y0(stacked ? d.y0 : 0) + ',' + (stacked ? 0 : (j * x.rangeBand() / data.length ) + x(getX(d,i))) + ')'
- });
-
- barsEnter.append('rect')
- .attr('width', 0)
- .attr('height', x.rangeBand() / (stacked ? 1 : data.length) )
-
- bars
- .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [ y(getY(d,i) + (stacked ? d.y0 : 0)), x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length) ],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- });
-
-
- barsEnter.append('text');
-
- if (showValues && !stacked) {
- bars.select('text')
- .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'end' : 'start' })
- .attr('y', x.rangeBand() / (data.length * 2))
- .attr('dy', '.32em')
- .text(function(d,i) { return valueFormat(getY(d,i)) })
- bars.transition()
- .select('text')
- .attr('x', function(d,i) { return getY(d,i) < 0 ? -4 : y(getY(d,i)) - y(0) + 4 })
- } else {
- bars.selectAll('text').text('');
- }
-
- if (showBarLabels && !stacked) {
- barsEnter.append('text').classed('nv-bar-label',true);
- bars.select('text.nv-bar-label')
- .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'start' : 'end' })
- .attr('y', x.rangeBand() / (data.length * 2))
- .attr('dy', '.32em')
- .text(function(d,i) { return getX(d,i) });
- bars.transition()
- .select('text.nv-bar-label')
- .attr('x', function(d,i) { return getY(d,i) < 0 ? y(0) - y(getY(d,i)) + 4 : -4 });
- }
- else {
- bars.selectAll('text.nv-bar-label').text('');
- }
-
- bars
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-
- if (barColor) {
- if (!disabled) disabled = data.map(function() { return true });
- bars
- .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); })
- .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker( disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i] })[j] ).toString(); });
- }
-
- if (stacked)
- bars.transition()
- .attr('transform', function(d,i) {
- return 'translate(' + y(d.y1) + ',' + x(getX(d,i)) + ')'
- })
- .select('rect')
- .attr('width', function(d,i) {
- return Math.abs(y(getY(d,i) + d.y0) - y(d.y0))
- })
- .attr('height', x.rangeBand() );
- else
- bars.transition()
- .attr('transform', function(d,i) {
- //TODO: stacked must be all positive or all negative, not both?
- return 'translate(' +
- (getY(d,i) < 0 ? y(getY(d,i)) : y(0))
- + ',' +
- (d.series * x.rangeBand() / data.length
- +
- x(getX(d,i)) )
- + ')'
- })
- .select('rect')
- .attr('height', x.rangeBand() / data.length )
- .attr('width', function(d,i) {
- return Math.max(Math.abs(y(getY(d,i)) - y(0)),1)
- });
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.stacked = function(_) {
- if (!arguments.length) return stacked;
- stacked = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.barColor = function(_) {
- if (!arguments.length) return barColor;
- barColor = nv.utils.getColor(_);
- return chart;
- };
-
- chart.disabled = function(_) {
- if (!arguments.length) return disabled;
- disabled = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.delay = function(_) {
- if (!arguments.length) return delay;
- delay = _;
- return chart;
- };
-
- chart.showValues = function(_) {
- if (!arguments.length) return showValues;
- showValues = _;
- return chart;
- };
-
- chart.showBarLabels = function(_) {
- if (!arguments.length) return showBarLabels;
- showBarLabels = _;
- return chart;
- };
-
-
- chart.valueFormat= function(_) {
- if (!arguments.length) return valueFormat;
- valueFormat = _;
- return chart;
- };
-
- chart.valuePadding = function(_) {
- if (!arguments.length) return valuePadding;
- valuePadding = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js
deleted file mode 100755
index 4b545596..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js
+++ /dev/null
@@ -1,461 +0,0 @@
-
-nv.models.multiBarHorizontalChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var multibar = nv.models.multiBarHorizontal()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend().height(30)
- , controls = nv.models.legend().height(30)
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , showControls = true
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , stacked = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + ' - ' + x + '</h3>' +
- '<p>' + y + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , state = { stacked: stacked }
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , controlWidth = function() { return showControls ? 180 : 0 }
- , transitionDuration = 250
- ;
-
- multibar
- .stacked(stacked)
- ;
- xAxis
- .orient('left')
- .tickPadding(5)
- .highlightZero(false)
- .showMaxMin(false)
- .tickFormat(function(d) { return d })
- ;
- yAxis
- .orient('bottom')
- .tickFormat(d3.format(',.1f'))
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = multibar.xScale();
- y = multibar.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multiBarHorizontalChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarHorizontalChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis')
- .append('g').attr('class', 'nv-zeroLine')
- .append('line');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth - controlWidth());
-
- if (multibar.barColor())
- data.forEach(function(series,i) {
- series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
- })
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- { key: 'Grouped', disabled: multibar.stacked() },
- { key: 'Stacked', disabled: !multibar.stacked() }
- ];
-
- controls.width(controlWidth()).color(['#444', '#444', '#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- multibar
- .disabled(data.map(function(series) { return series.disabled }))
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- barsWrap.transition().call(multibar);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableHeight / 24 )
- .tickSize(-availableWidth, 0);
-
- g.select('.nv-x.nv-axis').transition()
- .call(xAxis);
-
- var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
- xTicks
- .selectAll('line, text');
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight, 0);
-
- g.select('.nv-y.nv-axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
- g.select('.nv-y.nv-axis').transition()
- .call(yAxis);
- }
-
- // Zero line
- g.select(".nv-zeroLine line")
- .attr("x1", y(0))
- .attr("x2", y(0))
- .attr("y1", 0)
- .attr("y2", -availableHeight)
- ;
-
- //------------------------------------------------------------
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Grouped':
- multibar.stacked(false);
- break;
- case 'Stacked':
- multibar.stacked(true);
- break;
- }
-
- state.stacked = multibar.stacked();
- dispatch.stateChange(state);
-
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- if (typeof e.stacked !== 'undefined') {
- multibar.stacked(e.stacked);
- state.stacked = e.stacked;
- }
-
- chart.update();
- });
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- multibar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- multibar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.multibar = multibar;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY',
- 'clipEdge', 'id', 'delay', 'showValues','showBarLabels', 'valueFormat', 'stacked', 'barColor');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js
deleted file mode 100755
index abc062c3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js
+++ /dev/null
@@ -1,384 +0,0 @@
-nv.models.multiBarTimeSeries = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , x = d3.time.scale()
- , y = d3.scale.linear()
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
- , clipEdge = true
- , stacked = false
- , color = nv.utils.defaultColor()
- , delay = 1200
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0 //used to store previous scales
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- if (stacked)
- data = d3.layout.stack()
- .offset('zero')
- .values(function(d){ return d.values })
- .y(getY)
- (data);
-
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), y0: d.y0 }
- })
- });
-
- x .domain(xDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.x })))
- .range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y0 : 0) }).concat(forceY)))
- .range(yRange || [availableHeight, 0]);
-
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multibar').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibar');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- gEnter.append('g').attr('class', 'nv-groups');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- d3.transition(groups.exit())
- //.style('stroke-opacity', 1e-6)
- //.style('fill-opacity', 1e-6)
- .selectAll('rect.nv-bar')
- .delay(function(d,i) { return i * delay/ data[0].values.length })
- .attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) })
- .attr('height', 0)
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover })
- .style('fill', function(d,i){ return color(d, i) })
- .style('stroke', function(d,i){ return color(d, i) });
- d3.transition(groups)
- .style('stroke-opacity', 1)
- .style('fill-opacity', .75);
-
-
- var bars = groups.selectAll('rect.nv-bar')
- .data(function(d) { return d.values });
-
- bars.exit().remove();
-
- var maxElements = 0;
- for(var ei=0; ei<seriesData.length; ei+=1) {
- maxElements = Math.max(seriesData[ei].length, maxElements);
- }
-
- var bandWidth = (availableWidth / maxElements)-0.1;
- var barWidth = bandWidth / data.length;
-
- var barsEnter = bars.enter().append('rect')
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
- .attr('x', function(d,i,j) {
- return stacked ? 0 : (i * bandWidth) + ( j * barWidth )
- })
- .attr('y', function(d) { return y0(stacked ? d.y0 : 0) })
- .attr('height', 0)
- .attr('width', stacked ? bandWidth : barWidth );
- bars
- .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (barWidth * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (barWidth * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- value: getY(d,i),
- point: d,
- series: data[d.series],
- pos: [x(getX(d,i)) + (barWidth * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: d.series,
- e: d3.event
- });
- d3.event.stopPropagation();
- });
- bars
- .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
- if (stacked)
- d3.transition(bars)
- .delay(function(d,i) { return i * delay / data[0].values.length })
- .attr('y', function(d,i) {
- return y(getY(d,i) + (stacked ? d.y0 : 0));
- })
- .attr('height', function(d,i) {
- return Math.abs(y(d.y + (stacked ? d.y0 : 0)) - y((stacked ? d.y0 : 0)))
- })
- .each('end', function() {
- d3.transition(d3.select(this))
- .attr('x', function(d,i) {
- return stacked ? 0 : (i * bandWidth) + ( j * barWidth )
- })
- .attr('width', stacked ? bandWidth : barWidth );
- })
- else
- d3.transition(bars)
- .delay(function(d,i) { return i * delay/ data[0].values.length })
- .attr('x', function(d,i) {
- return d.series * barWidth
- })
- .attr('width', barWidth)
- .each('end', function() {
- d3.transition(d3.select(this))
- .attr('y', function(d,i) {
- return getY(d,i) < 0 ?
- y(0) :
- y(getY(d,i))
- })
- .attr('height', function(d,i) {
- return Math.abs(y(getY(d,i)) - y(0))
- });
- })
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.stacked = function(_) {
- if (!arguments.length) return stacked;
- stacked = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.delay = function(_) {
- if (!arguments.length) return delay;
- delay = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js
deleted file mode 100755
index 5aebafa7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js
+++ /dev/null
@@ -1,405 +0,0 @@
-nv.models.multiBarTimeSeriesChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var multibar = nv.models.multiBarTimeSeries()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , showControls = true
- , showLegend = true
- , reduceXTicks = true // if false a tick will show for every data point
- , rotateLabels = 0
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' on ' + x + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
- ;
-
- multibar
- .stacked(false)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(7)
- .highlightZero(false)
- .showMaxMin(false)
- ;
- yAxis
- .orient('left')
- .tickFormat(d3.format(',.1f'))
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { selection.transition().call(chart) };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = multibar.xScale();
- y = multibar.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-multiBarWithLegend').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarWithLegend').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-barsWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width(availableWidth / 2);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- { key: 'Grouped', disabled: multibar.stacked() },
- { key: 'Stacked', disabled: !multibar.stacked() }
- ];
-
- controls.width(180).color(['#444', '#444', '#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- multibar
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
-
- var barsWrap = g.select('.nv-barsWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
-
- d3.transition(barsWrap).call(multibar);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- xAxis
- .scale(x)
- .ticks(availableWidth / 100)
- .tickSize(-availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')');
- d3.transition(g.select('.nv-x.nv-axis'))
- .call(xAxis);
-
- var xTicks = g.select('.nv-x.nv-axis > g').selectAll('g');
-
- xTicks
- .selectAll('line, text')
- .style('opacity', 1)
-
- if (reduceXTicks)
- xTicks
- .filter(function(d,i) {
- return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
- })
- .selectAll('text, line')
- .style('opacity', 0);
-
- if(rotateLabels)
- xTicks
- .selectAll('text')
- .attr('transform', function(d,i,j) { return 'rotate('+rotateLabels+' 0,0)' })
- .attr('text-transform', rotateLabels > 0 ? 'start' : 'end');
-
- yAxis
- .scale(y)
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.nv-y.nv-axis'))
- .call(yAxis);
-
- //------------------------------------------------------------
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- if (!data.filter(function(d) { return !d.disabled }).length) {
- data.map(function(d) {
- d.disabled = false;
- wrap.selectAll('.nv-series').classed('disabled', false);
- return d;
- });
- }
-
- selection.transition().call(chart);
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- switch (d.key) {
- case 'Grouped':
- multibar.stacked(false);
- break;
- case 'Stacked':
- multibar.stacked(true);
- break;
- }
-
- selection.transition().call(chart);
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode)
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- multibar.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- multibar.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.multibar = multibar;
- chart.legend = legend;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
-
- d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'clipEdge', 'id', 'stacked', 'delay');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.reduceXTicks= function(_) {
- if (!arguments.length) return reduceXTicks;
- reduceXTicks = _;
- return chart;
- };
-
- chart.rotateLabels = function(_) {
- if (!arguments.length) return rotateLabels;
- rotateLabels = _;
- return chart;
- }
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js
deleted file mode 100755
index e3e2c5e8..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js
+++ /dev/null
@@ -1,452 +0,0 @@
-nv.models.multiChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 30, right: 20, bottom: 50, left: 60},
- color = d3.scale.category20().range(),
- width = null,
- height = null,
- showLegend = true,
- tooltips = true,
- tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' at ' + x + '</p>'
- },
- x,
- y,
- yDomain1,
- yDomain2
- ; //can be accessed via chart.lines.[x/y]Scale()
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x = d3.scale.linear(),
- yScale1 = d3.scale.linear(),
- yScale2 = d3.scale.linear(),
-
- lines1 = nv.models.line().yScale(yScale1),
- lines2 = nv.models.line().yScale(yScale2),
-
- bars1 = nv.models.multiBar().stacked(false).yScale(yScale1),
- bars2 = nv.models.multiBar().stacked(false).yScale(yScale2),
-
- stack1 = nv.models.stackedArea().yScale(yScale1),
- stack2 = nv.models.stackedArea().yScale(yScale2),
-
- xAxis = nv.models.axis().scale(x).orient('bottom').tickPadding(5),
- yAxis1 = nv.models.axis().scale(yScale1).orient('left'),
- yAxis2 = nv.models.axis().scale(yScale2).orient('right'),
-
- legend = nv.models.legend().height(30),
- dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(lines1.x()(e.point, e.pointIndex)),
- y = ((e.series.yAxis == 2) ? yAxis2 : yAxis1).tickFormat()(lines1.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, undefined, undefined, offsetElement.offsetParent);
- };
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- chart.update = function() { container.transition().call(chart); };
- chart.container = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- var dataLines1 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 1})
- var dataLines2 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 2})
- var dataBars1 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 1})
- var dataBars2 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 2})
- var dataStack1 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 1})
- var dataStack2 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 2})
-
- var series1 = data.filter(function(d) {return !d.disabled && d.yAxis == 1})
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: d.x, y: d.y }
- })
- })
-
- var series2 = data.filter(function(d) {return !d.disabled && d.yAxis == 2})
- .map(function(d) {
- return d.values.map(function(d,i) {
- return { x: d.x, y: d.y }
- })
- })
-
- x .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
- .range([0, availableWidth]);
-
- var wrap = container.selectAll('g.wrap.multiChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiChart').append('g');
-
- gEnter.append('g').attr('class', 'x axis');
- gEnter.append('g').attr('class', 'y1 axis');
- gEnter.append('g').attr('class', 'y2 axis');
- gEnter.append('g').attr('class', 'lines1Wrap');
- gEnter.append('g').attr('class', 'lines2Wrap');
- gEnter.append('g').attr('class', 'bars1Wrap');
- gEnter.append('g').attr('class', 'bars2Wrap');
- gEnter.append('g').attr('class', 'stack1Wrap');
- gEnter.append('g').attr('class', 'stack2Wrap');
- gEnter.append('g').attr('class', 'legendWrap');
-
- var g = wrap.select('g');
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- g.select('.legendWrap')
- .datum(data.map(function(series) {
- series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
- series.key = series.originalKey + (series.yAxis == 1 ? '' : ' (right axis)');
- return series;
- }))
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.legendWrap')
- .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
- }
-
-
- lines1
- .width(availableWidth)
- .height(availableHeight)
- .interpolate("monotone")
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'line'}));
-
- lines2
- .width(availableWidth)
- .height(availableHeight)
- .interpolate("monotone")
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'line'}));
-
- bars1
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'bar'}));
-
- bars2
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'bar'}));
-
- stack1
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'area'}));
-
- stack2
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color[i % color.length];
- }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'area'}));
-
- g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- var lines1Wrap = g.select('.lines1Wrap')
- .datum(dataLines1)
- var bars1Wrap = g.select('.bars1Wrap')
- .datum(dataBars1)
- var stack1Wrap = g.select('.stack1Wrap')
- .datum(dataStack1)
-
- var lines2Wrap = g.select('.lines2Wrap')
- .datum(dataLines2)
- var bars2Wrap = g.select('.bars2Wrap')
- .datum(dataBars2)
- var stack2Wrap = g.select('.stack2Wrap')
- .datum(dataStack2)
-
- var extraValue1 = dataStack1.length ? dataStack1.map(function(a){return a.values}).reduce(function(a,b){
- return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
- }).concat([{x:0, y:0}]) : []
- var extraValue2 = dataStack2.length ? dataStack2.map(function(a){return a.values}).reduce(function(a,b){
- return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
- }).concat([{x:0, y:0}]) : []
-
- yScale1 .domain(yDomain1 || d3.extent(d3.merge(series1).concat(extraValue1), function(d) { return d.y } ))
- .range([0, availableHeight])
-
- yScale2 .domain(yDomain2 || d3.extent(d3.merge(series2).concat(extraValue2), function(d) { return d.y } ))
- .range([0, availableHeight])
-
- lines1.yDomain(yScale1.domain())
- bars1.yDomain(yScale1.domain())
- stack1.yDomain(yScale1.domain())
-
- lines2.yDomain(yScale2.domain())
- bars2.yDomain(yScale2.domain())
- stack2.yDomain(yScale2.domain())
-
- if(dataStack1.length){d3.transition(stack1Wrap).call(stack1);}
- if(dataStack2.length){d3.transition(stack2Wrap).call(stack2);}
-
- if(dataBars1.length){d3.transition(bars1Wrap).call(bars1);}
- if(dataBars2.length){d3.transition(bars2Wrap).call(bars2);}
-
- if(dataLines1.length){d3.transition(lines1Wrap).call(lines1);}
- if(dataLines2.length){d3.transition(lines2Wrap).call(lines2);}
-
-
-
- xAxis
- .ticks( availableWidth / 100 )
- .tickSize(-availableHeight, 0);
-
- g.select('.x.axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
- d3.transition(g.select('.x.axis'))
- .call(xAxis);
-
- yAxis1
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
-
- d3.transition(g.select('.y1.axis'))
- .call(yAxis1);
-
- yAxis2
- .ticks( availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- d3.transition(g.select('.y2.axis'))
- .call(yAxis2);
-
- g.select('.y2.axis')
- .style('opacity', series2.length ? 1 : 0)
- .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
- legend.dispatch.on('stateChange', function(newState) {
- chart.update();
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- lines1.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines1.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- lines2.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines2.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars1.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars1.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- bars2.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- bars2.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- stack1.dispatch.on('tooltipShow', function(e) {
- //disable tooltips when value ~= 0
- //// TODO: consider removing points from voronoi that have 0 value instead of this hack
- if (!Math.round(stack1.y()(e.point) * 100)) { // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
- setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
- return false;
- }
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- stack1.dispatch.on('tooltipHide', function(e) {
- dispatch.tooltipHide(e);
- });
-
- stack2.dispatch.on('tooltipShow', function(e) {
- //disable tooltips when value ~= 0
- //// TODO: consider removing points from voronoi that have 0 value instead of this hack
- if (!Math.round(stack2.y()(e.point) * 100)) { // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
- setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
- return false;
- }
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- stack2.dispatch.on('tooltipHide', function(e) {
- dispatch.tooltipHide(e);
- });
-
- lines1.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines1.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- lines2.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- lines2.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
-
-
- //============================================================
- // Global getters and setters
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.lines1 = lines1;
- chart.lines2 = lines2;
- chart.bars1 = bars1;
- chart.bars2 = bars2;
- chart.stack1 = stack1;
- chart.stack2 = stack2;
- chart.xAxis = xAxis;
- chart.yAxis1 = yAxis1;
- chart.yAxis2 = yAxis2;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- lines1.x(_);
- bars1.x(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- lines1.y(_);
- bars1.y(_);
- return chart;
- };
-
- chart.yDomain1 = function(_) {
- if (!arguments.length) return yDomain1;
- yDomain1 = _;
- return chart;
- };
-
- chart.yDomain2 = function(_) {
- if (!arguments.length) return yDomain2;
- yDomain2 = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin = _;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = _;
- legend.color(_);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- return chart;
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js
deleted file mode 100755
index 46f2b60c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js
+++ /dev/null
@@ -1,380 +0,0 @@
-
-nv.models.ohlcBar = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , getOpen = function(d) { return d.open }
- , getClose = function(d) { return d.close }
- , getHigh = function(d) { return d.high }
- , getLow = function(d) { return d.low }
- , forceX = []
- , forceY = []
- , padData = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
- , clipEdge = true
- , color = nv.utils.defaultColor()
- , xDomain
- , yDomain
- , xRange
- , yRange
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- //TODO: store old scales for transitions
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ));
-
- if (padData)
- x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5) / data[0].values.length ]);
- else
- x.range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || [
- d3.min(data[0].values.map(getLow).concat(forceY)),
- d3.max(data[0].values.map(getHigh).concat(forceY))
- ])
- .range(yRange || [availableHeight, 0]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = d3.select(this).selectAll('g.nv-wrap.nv-ohlcBar').data([data[0].values]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-ohlcBar');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-ticks');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- container
- .on('click', function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-chart-clip-path-' + id)
- .append('rect');
-
- wrap.select('#nv-chart-clip-path-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
- var ticks = wrap.select('.nv-ticks').selectAll('.nv-tick')
- .data(function(d) { return d });
-
- ticks.exit().remove();
-
-
- var ticksEnter = ticks.enter().append('path')
- .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
- .attr('d', function(d,i) {
- var w = (availableWidth / data[0].values.length) * .9;
- return 'm0,0l0,'
- + (y(getOpen(d,i))
- - y(getHigh(d,i)))
- + 'l'
- + (-w/2)
- + ',0l'
- + (w/2)
- + ',0l0,'
- + (y(getLow(d,i)) - y(getOpen(d,i)))
- + 'l0,'
- + (y(getClose(d,i))
- - y(getLow(d,i)))
- + 'l'
- + (w/2)
- + ',0l'
- + (-w/2)
- + ',0z';
- })
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
- //.attr('fill', function(d,i) { return color[0]; })
- //.attr('stroke', function(d,i) { return color[0]; })
- //.attr('x', 0 )
- //.attr('y', function(d,i) { return y(Math.max(0, getY(d,i))) })
- //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) })
- .on('mouseover', function(d,i) {
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- point: d,
- series: data[0],
- pos: [x(getX(d,i)), y(getY(d,i))], // TODO: Figure out why the value appears to be shifted
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
-
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- point: d,
- series: data[0],
- pointIndex: i,
- seriesIndex: 0,
- e: d3.event
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- //label: d[label],
- value: getY(d,i),
- data: d,
- index: i,
- pos: [x(getX(d,i)), y(getY(d,i))],
- e: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
- ticks
- .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
- d3.transition(ticks)
- .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
- .attr('d', function(d,i) {
- var w = (availableWidth / data[0].values.length) * .9;
- return 'm0,0l0,'
- + (y(getOpen(d,i))
- - y(getHigh(d,i)))
- + 'l'
- + (-w/2)
- + ',0l'
- + (w/2)
- + ',0l0,'
- + (y(getLow(d,i))
- - y(getOpen(d,i)))
- + 'l0,'
- + (y(getClose(d,i))
- - y(getLow(d,i)))
- + 'l'
- + (w/2)
- + ',0l'
- + (-w/2)
- + ',0z';
- })
- //.attr('width', (availableWidth / data[0].values.length) * .9 )
-
-
- //d3.transition(ticks)
- //.attr('y', function(d,i) { return y(Math.max(0, getY(d,i))) })
- //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) });
- //.order(); // not sure if this makes any sense for this model
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = _;
- return chart;
- };
-
- chart.open = function(_) {
- if (!arguments.length) return getOpen;
- getOpen = _;
- return chart;
- };
-
- chart.close = function(_) {
- if (!arguments.length) return getClose;
- getClose = _;
- return chart;
- };
-
- chart.high = function(_) {
- if (!arguments.length) return getHigh;
- getHigh = _;
- return chart;
- };
-
- chart.low = function(_) {
- if (!arguments.length) return getLow;
- getLow = _;
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.padData = function(_) {
- if (!arguments.length) return padData;
- padData = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js
deleted file mode 100755
index 107154f7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js
+++ /dev/null
@@ -1,239 +0,0 @@
-
-//Code adapted from Jason Davies' "Parallel Coordinates"
-// http://bl.ocks.org/jasondavies/1341281
-
-nv.models.parallelCoordinates = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
-
- var margin = {top: 30, right: 10, bottom: 10, left: 10}
- , width = 960
- , height = 500
- , x = d3.scale.ordinal()
- , y = {}
- , dimensions = []
- , color = nv.utils.getColor(d3.scale.category20c().range())
- , axisLabel = function(d) { return d; }
- , filters = []
- , active = []
- , dispatch = d3.dispatch('brush')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- active = data; //set all active before first brush call
-
- chart.update = function() { }; //This is a placeholder until this chart is made resizeable
-
- //------------------------------------------------------------
- // Setup Scales
-
- x
- .rangePoints([0, availableWidth], 1)
- .domain(dimensions);
-
- // Extract the list of dimensions and create a scale for each.
- dimensions.forEach(function(d) {
- y[d] = d3.scale.linear()
- .domain(d3.extent(data, function(p) { return +p[d]; }))
- .range([availableHeight, 0]);
-
- y[d].brush = d3.svg.brush().y(y[d]).on('brush', brush);
-
- return d != 'name';
- })
-
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-parallelCoordinates').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-parallelCoordinates');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- gEnter.append('g').attr('class', 'nv-parallelCoordinatesWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- var line = d3.svg.line(),
- axis = d3.svg.axis().orient('left'),
- background,
- foreground;
-
-
- // Add grey background lines for context.
- background = gEnter.append('g')
- .attr('class', 'background')
- .selectAll('path')
- .data(data)
- .enter().append('path')
- .attr('d', path)
- ;
-
- // Add blue foreground lines for focus.
- foreground = gEnter.append('g')
- .attr('class', 'foreground')
- .selectAll('path')
- .data(data)
- .enter().append('path')
- .attr('d', path)
- ;
-
- // Add a group element for each dimension.
- var dimension = g.selectAll('.dimension')
- .data(dimensions)
- .enter().append('g')
- .attr('class', 'dimension')
- .attr('transform', function(d) { return 'translate(' + x(d) + ',0)'; });
-
- // Add an axis and title.
- dimension.append('g')
- .attr('class', 'axis')
- .each(function(d) { d3.select(this).call(axis.scale(y[d])); })
- .append('text')
- .attr('text-anchor', 'middle')
- .attr('y', -9)
- .text(String);
-
- // Add and store a brush for each axis.
- dimension.append('g')
- .attr('class', 'brush')
- .each(function(d) { d3.select(this).call(y[d].brush); })
- .selectAll('rect')
- .attr('x', -8)
- .attr('width', 16);
-
-
- // Returns the path for a given data point.
- function path(d) {
- return line(dimensions.map(function(p) { return [x(p), y[p](d[p])]; }));
- }
-
- // Handles a brush event, toggling the display of foreground lines.
- function brush() {
- var actives = dimensions.filter(function(p) { return !y[p].brush.empty(); }),
- extents = actives.map(function(p) { return y[p].brush.extent(); });
-
- filters = []; //erase current filters
- actives.forEach(function(d,i) {
- filters[i] = {
- dimension: d,
- extent: extents[i]
- }
- });
-
- active = []; //erase current active list
- foreground.style('display', function(d) {
- var isActive = actives.every(function(p, i) {
- return extents[i][0] <= d[p] && d[p] <= extents[i][1];
- });
- if (isActive) active.push(d);
- return isActive ? null : 'none';
- });
-
- dispatch.brush({
- filters: filters,
- active: active
- });
-
- }
-
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
-
- chart.dispatch = dispatch;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_)
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.dimensions = function(_) {
- if (!arguments.length) return dimensions;
- dimensions = _;
- return chart;
- };
-
- chart.filters = function() {
- return filters;
- };
-
- chart.active = function() {
- return active;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js
deleted file mode 100755
index fa2d4364..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js
+++ /dev/null
@@ -1,409 +0,0 @@
-nv.models.pie = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 500
- , height = 500
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , getDescription = function(d) { return d.description }
- , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
- , color = nv.utils.defaultColor()
- , valueFormat = d3.format(',.2f')
- , showLabels = true
- , pieLabelsOutside = true
- , donutLabelsOutside = false
- , labelType = "key"
- , labelThreshold = .02 //if slice percentage is under this, don't show label
- , donut = false
- , labelSunbeamLayout = false
- , startAngle = false
- , endAngle = false
- , donutRatio = 0.5
- , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- radius = Math.min(availableWidth, availableHeight) / 2,
- arcRadius = radius-(radius / 5),
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- //var wrap = container.selectAll('.nv-wrap.nv-pie').data([data]);
- var wrap = container.selectAll('.nv-wrap.nv-pie').data(data);
- var wrapEnter = wrap.enter().append('g').attr('class','nvd3 nv-wrap nv-pie nv-chart-' + id);
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-pie');
- gEnter.append('g').attr('class', 'nv-pieLabels');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
- g.select('.nv-pie').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
- g.select('.nv-pieLabels').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
-
- //------------------------------------------------------------
-
-
- container
- .on('click', function(d,i) {
- dispatch.chartClick({
- data: d,
- index: i,
- pos: d3.event,
- id: id
- });
- });
-
-
- var arc = d3.svg.arc()
- .outerRadius(arcRadius);
-
- if (startAngle) arc.startAngle(startAngle)
- if (endAngle) arc.endAngle(endAngle);
- if (donut) arc.innerRadius(radius * donutRatio);
-
- // Setup the Pie chart and choose the data element
- var pie = d3.layout.pie()
- .sort(null)
- .value(function(d) { return d.disabled ? 0 : getY(d) });
-
- var slices = wrap.select('.nv-pie').selectAll('.nv-slice')
- .data(pie);
-
- var pieLabels = wrap.select('.nv-pieLabels').selectAll('.nv-label')
- .data(pie);
-
- slices.exit().remove();
- pieLabels.exit().remove();
-
- var ae = slices.enter().append('g')
- .attr('class', 'nv-slice')
- .on('mouseover', function(d,i){
- d3.select(this).classed('hover', true);
- dispatch.elementMouseover({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- pointIndex: i,
- pos: [d3.event.pageX, d3.event.pageY],
- id: id
- });
- })
- .on('mouseout', function(d,i){
- d3.select(this).classed('hover', false);
- dispatch.elementMouseout({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- index: i,
- id: id
- });
- })
- .on('click', function(d,i) {
- dispatch.elementClick({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- })
- .on('dblclick', function(d,i) {
- dispatch.elementDblClick({
- label: getX(d.data),
- value: getY(d.data),
- point: d.data,
- index: i,
- pos: d3.event,
- id: id
- });
- d3.event.stopPropagation();
- });
-
- slices
- .attr('fill', function(d,i) { return color(d, i); })
- .attr('stroke', function(d,i) { return color(d, i); });
-
- var paths = ae.append('path')
- .each(function(d) { this._current = d; });
- //.attr('d', arc);
-
- slices.select('path')
- .transition()
- .attr('d', arc)
- .attrTween('d', arcTween);
-
- if (showLabels) {
- // This does the normal label
- var labelsArc = d3.svg.arc().innerRadius(0);
-
- if (pieLabelsOutside){ labelsArc = arc; }
-
- if (donutLabelsOutside) { labelsArc = d3.svg.arc().outerRadius(arc.outerRadius()); }
-
- pieLabels.enter().append("g").classed("nv-label",true)
- .each(function(d,i) {
- var group = d3.select(this);
-
- group
- .attr('transform', function(d) {
- if (labelSunbeamLayout) {
- d.outerRadius = arcRadius + 10; // Set Outer Coordinate
- d.innerRadius = arcRadius + 15; // Set Inner Coordinate
- var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
- if ((d.startAngle+d.endAngle)/2 < Math.PI) {
- rotateAngle -= 90;
- } else {
- rotateAngle += 90;
- }
- return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
- } else {
- d.outerRadius = radius + 10; // Set Outer Coordinate
- d.innerRadius = radius + 15; // Set Inner Coordinate
- return 'translate(' + labelsArc.centroid(d) + ')'
- }
- });
-
- group.append('rect')
- .style('stroke', '#fff')
- .style('fill', '#fff')
- .attr("rx", 3)
- .attr("ry", 3);
-
- group.append('text')
- .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
- .style('fill', '#000')
-
- });
-
- var labelLocationHash = {};
- var avgHeight = 14;
- var avgWidth = 140;
- var createHashKey = function(coordinates) {
-
- return Math.floor(coordinates[0]/avgWidth) * avgWidth + ',' + Math.floor(coordinates[1]/avgHeight) * avgHeight;
- };
- pieLabels.transition()
- .attr('transform', function(d) {
- if (labelSunbeamLayout) {
- d.outerRadius = arcRadius + 10; // Set Outer Coordinate
- d.innerRadius = arcRadius + 15; // Set Inner Coordinate
- var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
- if ((d.startAngle+d.endAngle)/2 < Math.PI) {
- rotateAngle -= 90;
- } else {
- rotateAngle += 90;
- }
- return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
- } else {
- d.outerRadius = radius + 10; // Set Outer Coordinate
- d.innerRadius = radius + 15; // Set Inner Coordinate
-
- /*
- Overlapping pie labels are not good. What this attempts to do is, prevent overlapping.
- Each label location is hashed, and if a hash collision occurs, we assume an overlap.
- Adjust the label's y-position to remove the overlap.
- */
- var center = labelsArc.centroid(d);
- var hashKey = createHashKey(center);
- if (labelLocationHash[hashKey]) {
- center[1] -= avgHeight;
- }
- labelLocationHash[createHashKey(center)] = true;
- return 'translate(' + center + ')'
- }
- });
- pieLabels.select(".nv-label text")
- .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
- .text(function(d, i) {
- var percent = (d.endAngle - d.startAngle) / (2 * Math.PI);
- var labelTypes = {
- "key" : getX(d.data),
- "value": getY(d.data),
- "percent": d3.format('%')(percent)
- };
- return (d.value && percent > labelThreshold) ? labelTypes[labelType] : '';
- });
- }
-
-
- // Computes the angle of an arc, converting from radians to degrees.
- function angle(d) {
- var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;
- return a > 90 ? a - 180 : a;
- }
-
- function arcTween(a) {
- a.endAngle = isNaN(a.endAngle) ? 0 : a.endAngle;
- a.startAngle = isNaN(a.startAngle) ? 0 : a.startAngle;
- if (!donut) a.innerRadius = 0;
- var i = d3.interpolate(this._current, a);
- this._current = i(0);
- return function(t) {
- return arc(i(t));
- };
- }
-
- function tweenPie(b) {
- b.innerRadius = 0;
- var i = d3.interpolate({startAngle: 0, endAngle: 0}, b);
- return function(t) {
- return arc(i(t));
- };
- }
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.values = function(_) {
- nv.log("pie.values() is no longer supported.");
- return chart;
- };
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = _;
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- };
-
- chart.description = function(_) {
- if (!arguments.length) return getDescription;
- getDescription = _;
- return chart;
- };
-
- chart.showLabels = function(_) {
- if (!arguments.length) return showLabels;
- showLabels = _;
- return chart;
- };
-
- chart.labelSunbeamLayout = function(_) {
- if (!arguments.length) return labelSunbeamLayout;
- labelSunbeamLayout = _;
- return chart;
- };
-
- chart.donutLabelsOutside = function(_) {
- if (!arguments.length) return donutLabelsOutside;
- donutLabelsOutside = _;
- return chart;
- };
-
- chart.pieLabelsOutside = function(_) {
- if (!arguments.length) return pieLabelsOutside;
- pieLabelsOutside = _;
- return chart;
- };
-
- chart.labelType = function(_) {
- if (!arguments.length) return labelType;
- labelType = _;
- labelType = labelType || "key";
- return chart;
- };
-
- chart.donut = function(_) {
- if (!arguments.length) return donut;
- donut = _;
- return chart;
- };
-
- chart.donutRatio = function(_) {
- if (!arguments.length) return donutRatio;
- donutRatio = _;
- return chart;
- };
-
- chart.startAngle = function(_) {
- if (!arguments.length) return startAngle;
- startAngle = _;
- return chart;
- };
-
- chart.endAngle = function(_) {
- if (!arguments.length) return endAngle;
- endAngle = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.valueFormat = function(_) {
- if (!arguments.length) return valueFormat;
- valueFormat = _;
- return chart;
- };
-
- chart.labelThreshold = function(_) {
- if (!arguments.length) return labelThreshold;
- labelThreshold = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js
deleted file mode 100755
index b7346d3f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js
+++ /dev/null
@@ -1,292 +0,0 @@
-nv.models.pieChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var pie = nv.models.pie()
- , legend = nv.models.legend()
- ;
-
- var margin = {top: 30, right: 20, bottom: 20, left: 20}
- , width = null
- , height = null
- , showLegend = true
- , color = nv.utils.defaultColor()
- , tooltips = true
- , tooltip = function(key, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + '</p>'
- }
- , state = {}
- , defaultState = null
- , noData = "No Data Available."
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var tooltipLabel = pie.description()(e.point) || pie.x()(e.point)
- var left = e.pos[0] + ( (offsetElement && offsetElement.offsetLeft) || 0 ),
- top = e.pos[1] + ( (offsetElement && offsetElement.offsetTop) || 0),
- y = pie.valueFormat()(pie.y()(e.point)),
- content = tooltip(tooltipLabel, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-pieChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-pieChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-pieWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend
- .width( availableWidth )
- .key(pie.x());
-
- wrap.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- pie
- .width(availableWidth)
- .height(availableHeight);
-
-
- var pieWrap = g.select('.nv-pieWrap')
- .datum([data]);
-
- d3.transition(pieWrap).call(pie);
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
- pie.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- });
-
- return chart;
- }
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- pie.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.legend = legend;
- chart.dispatch = dispatch;
- chart.pie = pie;
-
- d3.rebind(chart, pie, 'valueFormat', 'values', 'x', 'y', 'description', 'id', 'showLabels', 'donutLabelsOutside', 'pieLabelsOutside', 'labelType', 'donut', 'donutRatio', 'labelThreshold');
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- pie.color(color);
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js
deleted file mode 100755
index 16cbee65..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js
+++ /dev/null
@@ -1,674 +0,0 @@
-
-nv.models.scatter = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor() // chooses color
- , id = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't select one
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , z = d3.scale.linear() //linear because d3.svg.shape.size is treated as area
- , getX = function(d) { return d.x } // accessor to get the x value
- , getY = function(d) { return d.y } // accessor to get the y value
- , getSize = function(d) { return d.size || 1} // accessor to get the point size
- , getShape = function(d) { return d.shape || 'circle' } // accessor to get point shape
- , onlyCircles = true // Set to false to use shapes
- , forceX = [] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
- , forceY = [] // List of numbers to Force into the Y scale
- , forceSize = [] // List of numbers to Force into the Size scale
- , interactive = true // If true, plots a voronoi overlay for advanced point intersection
- , pointKey = null
- , pointActive = function(d) { return !d.notActive } // any points that return false will be filtered out
- , padData = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
- , padDataOuter = .1 //outerPadding to imitate ordinal scale outer padding
- , clipEdge = false // if true, masks points within x and y scale
- , clipVoronoi = true // if true, masks each point with a circle... can turn off to slightly increase performance
- , clipRadius = function() { return 25 } // function to get the radius for voronoi point clips
- , xDomain = null // Override x domain (skips the calculation from data)
- , yDomain = null // Override y domain
- , xRange = null // Override x range
- , yRange = null // Override y range
- , sizeDomain = null // Override point size domain
- , sizeRange = null
- , singlePoint = false
- , dispatch = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout')
- , useVoronoi = true
- ;
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0, z0 // used to store previous scales
- , timeoutID
- , needsUpdate = false // Flag for when the points are visually updating, but the interactive layer is behind, to disable tooltips
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- //add series index to each data point for reference
- data.forEach(function(series, i) {
- series.values.forEach(function(point) {
- point.series = i;
- });
- });
-
- //------------------------------------------------------------
- // Setup Scales
-
- // remap and flatten the data for use in calculating the scales' domains
- var seriesData = (xDomain && yDomain && sizeDomain) ? [] : // if we know xDomain and yDomain and sizeDomain, no need to calculate.... if Size is constant remember to set sizeDomain to speed up performance
- d3.merge(
- data.map(function(d) {
- return d.values.map(function(d,i) {
- return { x: getX(d,i), y: getY(d,i), size: getSize(d,i) }
- })
- })
- );
-
- x .domain(xDomain || d3.extent(seriesData.map(function(d) { return d.x; }).concat(forceX)))
-
- if (padData && data[0])
- x.range(xRange || [(availableWidth * padDataOuter + availableWidth) / (2 *data[0].values.length), availableWidth - availableWidth * (1 + padDataOuter) / (2 * data[0].values.length) ]);
- //x.range([availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5) / data[0].values.length ]);
- else
- x.range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || d3.extent(seriesData.map(function(d) { return d.y }).concat(forceY)))
- .range(yRange || [availableHeight, 0]);
-
- z .domain(sizeDomain || d3.extent(seriesData.map(function(d) { return d.size }).concat(forceSize)))
- .range(sizeRange || [16, 256]);
-
- // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
- if (x.domain()[0] === x.domain()[1] || y.domain()[0] === y.domain()[1]) singlePoint = true;
- if (x.domain()[0] === x.domain()[1])
- x.domain()[0] ?
- x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
- : x.domain([-1,1]);
-
- if (y.domain()[0] === y.domain()[1])
- y.domain()[0] ?
- y.domain([y.domain()[0] - y.domain()[0] * 0.01, y.domain()[1] + y.domain()[1] * 0.01])
- : y.domain([-1,1]);
-
- if ( isNaN(x.domain()[0])) {
- x.domain([-1,1]);
- }
-
- if ( isNaN(y.domain()[0])) {
- y.domain([-1,1]);
- }
-
-
- x0 = x0 || x;
- y0 = y0 || y;
- z0 = z0 || z;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-scatter').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatter nv-chart-' + id + (singlePoint ? ' nv-single-point' : ''));
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-groups');
- gEnter.append('g').attr('class', 'nv-point-paths');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
-
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
- function updateInteractiveLayer() {
-
- if (!interactive) return false;
-
- var eventElements;
-
- var vertices = d3.merge(data.map(function(group, groupIndex) {
- return group.values
- .map(function(point, pointIndex) {
- // *Adding noise to make duplicates very unlikely
- // *Injecting series and point index for reference
- /* *Adding a 'jitter' to the points, because there's an issue in d3.geom.voronoi.
- */
- var pX = getX(point,pointIndex);
- var pY = getY(point,pointIndex);
-
- return [x(pX)+ Math.random() * 1e-7,
- y(pY)+ Math.random() * 1e-7,
- groupIndex,
- pointIndex, point]; //temp hack to add noise untill I think of a better way so there are no duplicates
- })
- .filter(function(pointArray, pointIndex) {
- return pointActive(pointArray[4], pointIndex); // Issue #237.. move filter to after map, so pointIndex is correct!
- })
- })
- );
-
-
-
- //inject series and point index for reference into voronoi
- if (useVoronoi === true) {
-
- if (clipVoronoi) {
- var pointClipsEnter = wrap.select('defs').selectAll('.nv-point-clips')
- .data([id])
- .enter();
-
- pointClipsEnter.append('clipPath')
- .attr('class', 'nv-point-clips')
- .attr('id', 'nv-points-clip-' + id);
-
- var pointClips = wrap.select('#nv-points-clip-' + id).selectAll('circle')
- .data(vertices);
- pointClips.enter().append('circle')
- .attr('r', clipRadius);
- pointClips.exit().remove();
- pointClips
- .attr('cx', function(d) { return d[0] })
- .attr('cy', function(d) { return d[1] });
-
- wrap.select('.nv-point-paths')
- .attr('clip-path', 'url(#nv-points-clip-' + id + ')');
- }
-
-
- if(vertices.length) {
- // Issue #283 - Adding 2 dummy points to the voronoi b/c voronoi requires min 3 points to work
- vertices.push([x.range()[0] - 20, y.range()[0] - 20, null, null]);
- vertices.push([x.range()[1] + 20, y.range()[1] + 20, null, null]);
- vertices.push([x.range()[0] - 20, y.range()[0] + 20, null, null]);
- vertices.push([x.range()[1] + 20, y.range()[1] - 20, null, null]);
- }
-
- var bounds = d3.geom.polygon([
- [-10,-10],
- [-10,height + 10],
- [width + 10,height + 10],
- [width + 10,-10]
- ]);
-
- var voronoi = d3.geom.voronoi(vertices).map(function(d, i) {
- return {
- 'data': bounds.clip(d),
- 'series': vertices[i][2],
- 'point': vertices[i][3]
- }
- });
-
-
- var pointPaths = wrap.select('.nv-point-paths').selectAll('path')
- .data(voronoi);
- pointPaths.enter().append('path')
- .attr('class', function(d,i) { return 'nv-path-'+i; });
- pointPaths.exit().remove();
- pointPaths
- .attr('d', function(d) {
- if (d.data.length === 0)
- return 'M 0 0'
- else
- return 'M' + d.data.join('L') + 'Z';
- });
-
- var mouseEventCallback = function(d,mDispatch) {
- if (needsUpdate) return 0;
- var series = data[d.series];
- if (typeof series === 'undefined') return;
-
- var point = series.values[d.point];
-
- mDispatch({
- point: point,
- series: series,
- pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
- seriesIndex: d.series,
- pointIndex: d.point
- });
- };
-
- pointPaths
- .on('click', function(d) {
- mouseEventCallback(d, dispatch.elementClick);
- })
- .on('mouseover', function(d) {
- mouseEventCallback(d, dispatch.elementMouseover);
- })
- .on('mouseout', function(d, i) {
- mouseEventCallback(d, dispatch.elementMouseout);
- });
-
-
- } else {
- /*
- // bring data in form needed for click handlers
- var dataWithPoints = vertices.map(function(d, i) {
- return {
- 'data': d,
- 'series': vertices[i][2],
- 'point': vertices[i][3]
- }
- });
- */
-
- // add event handlers to points instead voronoi paths
- wrap.select('.nv-groups').selectAll('.nv-group')
- .selectAll('.nv-point')
- //.data(dataWithPoints)
- //.style('pointer-events', 'auto') // recativate events, disabled by css
- .on('click', function(d,i) {
- //nv.log('test', d, i);
- if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
- var series = data[d.series],
- point = series.values[i];
-
- dispatch.elementClick({
- point: point,
- series: series,
- pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
- seriesIndex: d.series,
- pointIndex: i
- });
- })
- .on('mouseover', function(d,i) {
- if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
- var series = data[d.series],
- point = series.values[i];
-
- dispatch.elementMouseover({
- point: point,
- series: series,
- pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
- seriesIndex: d.series,
- pointIndex: i
- });
- })
- .on('mouseout', function(d,i) {
- if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
- var series = data[d.series],
- point = series.values[i];
-
- dispatch.elementMouseout({
- point: point,
- series: series,
- seriesIndex: d.series,
- pointIndex: i
- });
- });
- }
-
- needsUpdate = false;
- }
-
- needsUpdate = true;
-
- var groups = wrap.select('.nv-groups').selectAll('.nv-group')
- .data(function(d) { return d }, function(d) { return d.key });
- groups.enter().append('g')
- .style('stroke-opacity', 1e-6)
- .style('fill-opacity', 1e-6);
- groups.exit()
- .remove();
- groups
- .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
- .classed('hover', function(d) { return d.hover });
- groups
- .transition()
- .style('fill', function(d,i) { return color(d, i) })
- .style('stroke', function(d,i) { return color(d, i) })
- .style('stroke-opacity', 1)
- .style('fill-opacity', .5);
-
-
- if (onlyCircles) {
-
- var points = groups.selectAll('circle.nv-point')
- .data(function(d) { return d.values }, pointKey);
- points.enter().append('circle')
- .style('fill', function (d,i) { return d.color })
- .style('stroke', function (d,i) { return d.color })
- .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
- .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
- .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
- points.exit().remove();
- groups.exit().selectAll('path.nv-point').transition()
- .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- .remove();
- points.each(function(d,i) {
- d3.select(this)
- .classed('nv-point', true)
- .classed('nv-point-' + i, true)
- .classed('hover',false)
- ;
- });
- points.transition()
- .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
- .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
- .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
-
- } else {
-
- var points = groups.selectAll('path.nv-point')
- .data(function(d) { return d.values });
- points.enter().append('path')
- .style('fill', function (d,i) { return d.color })
- .style('stroke', function (d,i) { return d.color })
- .attr('transform', function(d,i) {
- return 'translate(' + x0(getX(d,i)) + ',' + y0(getY(d,i)) + ')'
- })
- .attr('d',
- d3.svg.symbol()
- .type(getShape)
- .size(function(d,i) { return z(getSize(d,i)) })
- );
- points.exit().remove();
- groups.exit().selectAll('path.nv-point')
- .transition()
- .attr('transform', function(d,i) {
- return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
- })
- .remove();
- points.each(function(d,i) {
- d3.select(this)
- .classed('nv-point', true)
- .classed('nv-point-' + i, true)
- .classed('hover',false)
- ;
- });
- points.transition()
- .attr('transform', function(d,i) {
- //nv.log(d,i,getX(d,i), x(getX(d,i)));
- return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
- })
- .attr('d',
- d3.svg.symbol()
- .type(getShape)
- .size(function(d,i) { return z(getSize(d,i)) })
- );
- }
-
-
- // Delay updating the invisible interactive layer for smoother animation
- clearTimeout(timeoutID); // stop repeat calls to updateInteractiveLayer
- timeoutID = setTimeout(updateInteractiveLayer, 300);
- //updateInteractiveLayer();
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
- z0 = z.copy();
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
- chart.clearHighlights = function() {
- //Remove the 'hover' class from all highlighted points.
- d3.selectAll(".nv-chart-" + id + " .nv-point.hover").classed("hover",false);
- };
-
- chart.highlightPoint = function(seriesIndex,pointIndex,isHoverOver) {
- d3.select(".nv-chart-" + id + " .nv-series-" + seriesIndex + " .nv-point-" + pointIndex)
- .classed("hover",isHoverOver);
- };
-
-
- dispatch.on('elementMouseover.point', function(d) {
- if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,true);
- });
-
- dispatch.on('elementMouseout.point', function(d) {
- if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,false);
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- };
-
- chart.size = function(_) {
- if (!arguments.length) return getSize;
- getSize = d3.functor(_);
- return chart;
- };
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.zScale = function(_) {
- if (!arguments.length) return z;
- z = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.sizeDomain = function(_) {
- if (!arguments.length) return sizeDomain;
- sizeDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.sizeRange = function(_) {
- if (!arguments.length) return sizeRange;
- sizeRange = _;
- return chart;
- };
-
- chart.forceX = function(_) {
- if (!arguments.length) return forceX;
- forceX = _;
- return chart;
- };
-
- chart.forceY = function(_) {
- if (!arguments.length) return forceY;
- forceY = _;
- return chart;
- };
-
- chart.forceSize = function(_) {
- if (!arguments.length) return forceSize;
- forceSize = _;
- return chart;
- };
-
- chart.interactive = function(_) {
- if (!arguments.length) return interactive;
- interactive = _;
- return chart;
- };
-
- chart.pointKey = function(_) {
- if (!arguments.length) return pointKey;
- pointKey = _;
- return chart;
- };
-
- chart.pointActive = function(_) {
- if (!arguments.length) return pointActive;
- pointActive = _;
- return chart;
- };
-
- chart.padData = function(_) {
- if (!arguments.length) return padData;
- padData = _;
- return chart;
- };
-
- chart.padDataOuter = function(_) {
- if (!arguments.length) return padDataOuter;
- padDataOuter = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.clipVoronoi= function(_) {
- if (!arguments.length) return clipVoronoi;
- clipVoronoi = _;
- return chart;
- };
-
- chart.useVoronoi= function(_) {
- if (!arguments.length) return useVoronoi;
- useVoronoi = _;
- if (useVoronoi === false) {
- clipVoronoi = false;
- }
- return chart;
- };
-
- chart.clipRadius = function(_) {
- if (!arguments.length) return clipRadius;
- clipRadius = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.shape = function(_) {
- if (!arguments.length) return getShape;
- getShape = _;
- return chart;
- };
-
- chart.onlyCircles = function(_) {
- if (!arguments.length) return onlyCircles;
- onlyCircles = _;
- return chart;
- };
-
- chart.id = function(_) {
- if (!arguments.length) return id;
- id = _;
- return chart;
- };
-
- chart.singlePoint = function(_) {
- if (!arguments.length) return singlePoint;
- singlePoint = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js
deleted file mode 100755
index 65b6e387..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js
+++ /dev/null
@@ -1,628 +0,0 @@
-nv.models.scatterChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var scatter = nv.models.scatter()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , distX = nv.models.distribution()
- , distY = nv.models.distribution()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 75}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , x = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
- , y = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
- , xPadding = 0
- , yPadding = 0
- , showDistX = false
- , showDistY = false
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , showControls = !!d3.fisheye
- , fisheye = 0
- , pauseFisheye = false
- , tooltips = true
- , tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' }
- , tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' }
- , tooltip = null
- , state = {}
- , defaultState = null
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , noData = "No Data Available."
- , transitionDuration = 250
- ;
-
- scatter
- .xScale(x)
- .yScale(y)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(10)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickPadding(10)
- ;
- distX
- .axis('x')
- ;
- distY
- .axis('y')
- ;
-
- controls.updateState(false);
-
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0;
-
- var showTooltip = function(e, offsetElement) {
- //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
- leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
- topY = e.pos[1] + ( offsetElement.offsetTop || 0),
- xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
- yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
- if( tooltipX != null )
- nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
- if( tooltipY != null )
- nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
- if( tooltip != null )
- nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- var controlsData = [
- { key: 'Magnify', disabled: true }
- ];
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- // background for pointer events
- gEnter.append('rect').attr('class', 'nvd3 nv-background');
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
- gEnter.append('g').attr('class', 'nv-distWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- var legendWidth = (showControls) ? availableWidth / 2 : availableWidth;
- legend.width(legendWidth);
-
- wrap.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth - legendWidth) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- controls.width(180).color(['#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
-
- if (xPadding !== 0)
- scatter.xDomain(null);
-
- if (yPadding !== 0)
- scatter.yDomain(null);
-
- wrap.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
-
- //Adjust for x and y padding
- if (xPadding !== 0) {
- var xRange = x.domain()[1] - x.domain()[0];
- scatter.xDomain([x.domain()[0] - (xPadding * xRange), x.domain()[1] + (xPadding * xRange)]);
- }
-
- if (yPadding !== 0) {
- var yRange = y.domain()[1] - y.domain()[0];
- scatter.yDomain([y.domain()[0] - (yPadding * yRange), y.domain()[1] + (yPadding * yRange)]);
- }
-
- //Only need to update the scatter again if x/yPadding changed the domain.
- if (yPadding !== 0 || xPadding !== 0) {
- wrap.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( xAxis.ticks() && xAxis.ticks().length ? xAxis.ticks() : availableWidth / 100 )
- .tickSize( -availableHeight , 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .call(xAxis);
-
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( yAxis.ticks() && yAxis.ticks().length ? yAxis.ticks() : availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .call(yAxis);
- }
-
-
- if (showDistX) {
- distX
- .getData(scatter.x())
- .scale(x)
- .width(availableWidth)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionX');
- g.select('.nv-distributionX')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- }
-
- if (showDistY) {
- distY
- .getData(scatter.y())
- .scale(y)
- .width(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionY');
- g.select('.nv-distributionY')
- .attr('transform',
- 'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
- //------------------------------------------------------------
-
-
-
-
- if (d3.fisheye) {
- g.select('.nv-background')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g.select('.nv-background').on('mousemove', updateFisheye);
- g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
- scatter.dispatch.on('elementClick.freezeFisheye', function() {
- pauseFisheye = !pauseFisheye;
- });
- }
-
-
- function updateFisheye() {
- if (pauseFisheye) {
- g.select('.nv-point-paths').style('pointer-events', 'all');
- return false;
- }
-
- g.select('.nv-point-paths').style('pointer-events', 'none' );
-
- var mouse = d3.mouse(this);
- x.distortion(fisheye).focus(mouse[0]);
- y.distortion(fisheye).focus(mouse[1]);
-
- g.select('.nv-scatterWrap')
- .call(scatter);
-
- if (showXAxis)
- g.select('.nv-x.nv-axis').call(xAxis);
-
- if (showYAxis)
- g.select('.nv-y.nv-axis').call(yAxis);
-
- g.select('.nv-distributionX')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- g.select('.nv-distributionY')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- fisheye = d.disabled ? 0 : 2.5;
- g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
- g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
- if (d.disabled) {
- x.distortion(fisheye).focus(0);
- y.distortion(fisheye).focus(0);
-
- g.select('.nv-scatterWrap').call(scatter);
- g.select('.nv-x.nv-axis').call(xAxis);
- g.select('.nv-y.nv-axis').call(yAxis);
- } else {
- pauseFisheye = false;
- }
-
- chart.update();
- });
-
- legend.dispatch.on('stateChange', function(newState) {
- state.disabled = newState.disabled;
- dispatch.stateChange(state);
- chart.update();
- });
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', function(d,i) { return e.pos[1] - availableHeight;});
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', e.pos[0] + distX.size());
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
-
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', 0);
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', distY.size());
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.scatter = scatter;
- chart.legend = legend;
- chart.controls = controls;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.distX = distX;
- chart.distY = distY;
-
- d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- distX.color(color);
- distY.color(color);
- return chart;
- };
-
- chart.showDistX = function(_) {
- if (!arguments.length) return showDistX;
- showDistX = _;
- return chart;
- };
-
- chart.showDistY = function(_) {
- if (!arguments.length) return showDistY;
- showDistY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
-
- chart.fisheye = function(_) {
- if (!arguments.length) return fisheye;
- fisheye = _;
- return chart;
- };
-
- chart.xPadding = function(_) {
- if (!arguments.length) return xPadding;
- xPadding = _;
- return chart;
- };
-
- chart.yPadding = function(_) {
- if (!arguments.length) return yPadding;
- yPadding = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltipXContent = function(_) {
- if (!arguments.length) return tooltipX;
- tooltipX = _;
- return chart;
- };
-
- chart.tooltipYContent = function(_) {
- if (!arguments.length) return tooltipY;
- tooltipY = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js
deleted file mode 100755
index 23c87853..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js
+++ /dev/null
@@ -1,620 +0,0 @@
-
-nv.models.scatterPlusLineChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var scatter = nv.models.scatter()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , distX = nv.models.distribution()
- , distY = nv.models.distribution()
- ;
-
- var margin = {top: 30, right: 20, bottom: 50, left: 75}
- , width = null
- , height = null
- , color = nv.utils.defaultColor()
- , x = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
- , y = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
- , showDistX = false
- , showDistY = false
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , showControls = !!d3.fisheye
- , fisheye = 0
- , pauseFisheye = false
- , tooltips = true
- , tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' }
- , tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' }
- , tooltip = function(key, x, y, date) { return '<h3>' + key + '</h3>'
- + '<p>' + date + '</p>' }
- , state = {}
- , defaultState = null
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , noData = "No Data Available."
- , transitionDuration = 250
- ;
-
- scatter
- .xScale(x)
- .yScale(y)
- ;
- xAxis
- .orient('bottom')
- .tickPadding(10)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- .tickPadding(10)
- ;
- distX
- .axis('x')
- ;
- distY
- .axis('y')
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var x0, y0;
-
- var showTooltip = function(e, offsetElement) {
- //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
- leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
- topY = e.pos[1] + ( offsetElement.offsetTop || 0),
- xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
- yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
- if( tooltipX != null )
- nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
- if( tooltipY != null )
- nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
- if( tooltip != null )
- nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e.point.tooltip, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- var controlsData = [
- { key: 'Magnify', disabled: true }
- ];
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display noData message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = scatter.xScale();
- y = scatter.yScale();
-
- x0 = x0 || x;
- y0 = y0 || y;
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g')
-
- // background for pointer events
- gEnter.append('rect').attr('class', 'nvd3 nv-background').style("pointer-events","none");
-
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
- gEnter.append('g').attr('class', 'nv-regressionLinesWrap');
- gEnter.append('g').attr('class', 'nv-distWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- legend.width( availableWidth / 2 );
-
- wrap.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- wrap.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- controls.width(180).color(['#444']);
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .attr('transform', 'translate(0,' + (-margin.top) +')')
- .call(controls);
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }))
-
- wrap.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
-
- wrap.select('.nv-regressionLinesWrap')
- .attr('clip-path', 'url(#nv-edge-clip-' + scatter.id() + ')');
-
- var regWrap = wrap.select('.nv-regressionLinesWrap').selectAll('.nv-regLines')
- .data(function(d) {return d });
-
- regWrap.enter().append('g').attr('class', 'nv-regLines');
-
- var regLine = regWrap.selectAll('.nv-regLine').data(function(d){return [d]});
- var regLineEnter = regLine.enter()
- .append('line').attr('class', 'nv-regLine')
- .style('stroke-opacity', 0);
-
- regLine
- .transition()
- .attr('x1', x.range()[0])
- .attr('x2', x.range()[1])
- .attr('y1', function(d,i) {return y(x.domain()[0] * d.slope + d.intercept) })
- .attr('y2', function(d,i) { return y(x.domain()[1] * d.slope + d.intercept) })
- .style('stroke', function(d,i,j) { return color(d,j) })
- .style('stroke-opacity', function(d,i) {
- return (d.disabled || typeof d.slope === 'undefined' || typeof d.intercept === 'undefined') ? 0 : 1
- });
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( xAxis.ticks() ? xAxis.ticks() : availableWidth / 100 )
- .tickSize( -availableHeight , 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks( yAxis.ticks() ? yAxis.ticks() : availableHeight / 36 )
- .tickSize( -availableWidth, 0);
-
- g.select('.nv-y.nv-axis')
- .call(yAxis);
- }
-
-
- if (showDistX) {
- distX
- .getData(scatter.x())
- .scale(x)
- .width(availableWidth)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionX');
- g.select('.nv-distributionX')
- .attr('transform', 'translate(0,' + y.range()[0] + ')')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- }
-
- if (showDistY) {
- distY
- .getData(scatter.y())
- .scale(y)
- .width(availableHeight)
- .color(data.map(function(d,i) {
- return d.color || color(d, i);
- }).filter(function(d,i) { return !data[i].disabled }));
- gEnter.select('.nv-distWrap').append('g')
- .attr('class', 'nv-distributionY');
- g.select('.nv-distributionY')
- .attr('transform', 'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
- //------------------------------------------------------------
-
-
-
-
- if (d3.fisheye) {
- g.select('.nv-background')
- .attr('width', availableWidth)
- .attr('height', availableHeight)
- ;
-
- g.select('.nv-background').on('mousemove', updateFisheye);
- g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
- scatter.dispatch.on('elementClick.freezeFisheye', function() {
- pauseFisheye = !pauseFisheye;
- });
- }
-
-
- function updateFisheye() {
- if (pauseFisheye) {
- g.select('.nv-point-paths').style('pointer-events', 'all');
- return false;
- }
-
- g.select('.nv-point-paths').style('pointer-events', 'none' );
-
- var mouse = d3.mouse(this);
- x.distortion(fisheye).focus(mouse[0]);
- y.distortion(fisheye).focus(mouse[1]);
-
- g.select('.nv-scatterWrap')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(scatter);
-
- if (showXAxis)
- g.select('.nv-x.nv-axis').call(xAxis);
-
- if (showYAxis)
- g.select('.nv-y.nv-axis').call(yAxis);
-
- g.select('.nv-distributionX')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distX);
- g.select('.nv-distributionY')
- .datum(data.filter(function(d) { return !d.disabled }))
- .call(distY);
- }
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- controls.dispatch.on('legendClick', function(d,i) {
- d.disabled = !d.disabled;
-
- fisheye = d.disabled ? 0 : 2.5;
- g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
- g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
- if (d.disabled) {
- x.distortion(fisheye).focus(0);
- y.distortion(fisheye).focus(0);
-
- g.select('.nv-scatterWrap').call(scatter);
- g.select('.nv-x.nv-axis').call(xAxis);
- g.select('.nv-y.nv-axis').call(yAxis);
- } else {
- pauseFisheye = false;
- }
-
- chart.update();
- });
-
- legend.dispatch.on('stateChange', function(newState) {
- state = newState;
- dispatch.stateChange(state);
- chart.update();
- });
-
-
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', e.pos[1] - availableHeight);
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', e.pos[0] + distX.size());
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
- dispatch.tooltipShow(e);
- });
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- chart.update();
- });
-
- //============================================================
-
-
- //store old scales for use in transitions on update
- x0 = x.copy();
- y0 = y.copy();
-
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
-
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
- .attr('y1', 0);
- d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
- .attr('x2', distY.size());
- });
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.scatter = scatter;
- chart.legend = legend;
- chart.controls = controls;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.distX = distX;
- chart.distY = distY;
-
- d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- distX.color(color);
- distY.color(color);
- return chart;
- };
-
- chart.showDistX = function(_) {
- if (!arguments.length) return showDistX;
- showDistX = _;
- return chart;
- };
-
- chart.showDistY = function(_) {
- if (!arguments.length) return showDistY;
- showDistY = _;
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.fisheye = function(_) {
- if (!arguments.length) return fisheye;
- fisheye = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltipXContent = function(_) {
- if (!arguments.length) return tooltipX;
- tooltipX = _;
- return chart;
- };
-
- chart.tooltipYContent = function(_) {
- if (!arguments.length) return tooltipY;
- tooltipY = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js
deleted file mode 100755
index e4c2e87b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js
+++ /dev/null
@@ -1,194 +0,0 @@
-
-nv.models.sparkline = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 2, right: 0, bottom: 2, left: 0}
- , width = 400
- , height = 32
- , animate = true
- , x = d3.scale.linear()
- , y = d3.scale.linear()
- , getX = function(d) { return d.x }
- , getY = function(d) { return d.y }
- , color = nv.utils.getColor(['#000'])
- , xDomain
- , yDomain
- , xRange
- , yRange
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x .domain(xDomain || d3.extent(data, getX ))
- .range(xRange || [0, availableWidth]);
-
- y .domain(yDomain || d3.extent(data, getY ))
- .range(yRange || [availableHeight, 0]);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-sparkline').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparkline');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
- //------------------------------------------------------------
-
-
- var paths = wrap.selectAll('path')
- .data(function(d) { return [d] });
- paths.enter().append('path');
- paths.exit().remove();
- paths
- .style('stroke', function(d,i) { return d.color || color(d, i) })
- .attr('d', d3.svg.line()
- .x(function(d,i) { return x(getX(d,i)) })
- .y(function(d,i) { return y(getY(d,i)) })
- );
-
-
- // TODO: Add CURRENT data point (Need Min, Mac, Current / Most recent)
- var points = wrap.selectAll('circle.nv-point')
- .data(function(data) {
- var yValues = data.map(function(d, i) { return getY(d,i); });
- function pointIndex(index) {
- if (index != -1) {
- var result = data[index];
- result.pointIndex = index;
- return result;
- } else {
- return null;
- }
- }
- var maxPoint = pointIndex(yValues.lastIndexOf(y.domain()[1])),
- minPoint = pointIndex(yValues.indexOf(y.domain()[0])),
- currentPoint = pointIndex(yValues.length - 1);
- return [minPoint, maxPoint, currentPoint].filter(function (d) {return d != null;});
- });
- points.enter().append('circle');
- points.exit().remove();
- points
- .attr('cx', function(d,i) { return x(getX(d,d.pointIndex)) })
- .attr('cy', function(d,i) { return y(getY(d,d.pointIndex)) })
- .attr('r', 2)
- .attr('class', function(d,i) {
- return getX(d, d.pointIndex) == x.domain()[1] ? 'nv-point nv-currentValue' :
- getY(d, d.pointIndex) == y.domain()[0] ? 'nv-point nv-minValue' : 'nv-point nv-maxValue'
- });
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- };
-
- chart.xScale = function(_) {
- if (!arguments.length) return x;
- x = _;
- return chart;
- };
-
- chart.yScale = function(_) {
- if (!arguments.length) return y;
- y = _;
- return chart;
- };
-
- chart.xDomain = function(_) {
- if (!arguments.length) return xDomain;
- xDomain = _;
- return chart;
- };
-
- chart.yDomain = function(_) {
- if (!arguments.length) return yDomain;
- yDomain = _;
- return chart;
- };
-
- chart.xRange = function(_) {
- if (!arguments.length) return xRange;
- xRange = _;
- return chart;
- };
-
- chart.yRange = function(_) {
- if (!arguments.length) return yRange;
- yRange = _;
- return chart;
- };
-
- chart.animate = function(_) {
- if (!arguments.length) return animate;
- animate = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js
deleted file mode 100755
index 1535f8af..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js
+++ /dev/null
@@ -1,295 +0,0 @@
-
-nv.models.sparklinePlus = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var sparkline = nv.models.sparkline();
-
- var margin = {top: 15, right: 100, bottom: 10, left: 50}
- , width = null
- , height = null
- , x
- , y
- , index = []
- , paused = false
- , xTickFormat = d3.format(',r')
- , yTickFormat = d3.format(',.2f')
- , showValue = true
- , alignValue = true
- , rightAlignValue = false
- , noData = "No Data Available."
- ;
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this);
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
-
-
- chart.update = function() { chart(selection) };
- chart.container = this;
-
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- var currentValue = sparkline.y()(data[data.length-1], data.length-1);
-
- //------------------------------------------------------------
-
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = sparkline.xScale();
- y = sparkline.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-sparklineplus').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparklineplus');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-sparklineWrap');
- gEnter.append('g').attr('class', 'nv-valueWrap');
- gEnter.append('g').attr('class', 'nv-hoverArea');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- var sparklineWrap = g.select('.nv-sparklineWrap');
-
- sparkline
- .width(availableWidth)
- .height(availableHeight);
-
- sparklineWrap
- .call(sparkline);
-
- //------------------------------------------------------------
-
-
- var valueWrap = g.select('.nv-valueWrap');
-
- var value = valueWrap.selectAll('.nv-currentValue')
- .data([currentValue]);
-
- value.enter().append('text').attr('class', 'nv-currentValue')
- .attr('dx', rightAlignValue ? -8 : 8)
- .attr('dy', '.9em')
- .style('text-anchor', rightAlignValue ? 'end' : 'start');
-
- value
- .attr('x', availableWidth + (rightAlignValue ? margin.right : 0))
- .attr('y', alignValue ? function(d) { return y(d) } : 0)
- .style('fill', sparkline.color()(data[data.length-1], data.length-1))
- .text(yTickFormat(currentValue));
-
-
-
- gEnter.select('.nv-hoverArea').append('rect')
- .on('mousemove', sparklineHover)
- .on('click', function() { paused = !paused })
- .on('mouseout', function() { index = []; updateValueLine(); });
- //.on('mouseout', function() { index = null; updateValueLine(); });
-
- g.select('.nv-hoverArea rect')
- .attr('transform', function(d) { return 'translate(' + -margin.left + ',' + -margin.top + ')' })
- .attr('width', availableWidth + margin.left + margin.right)
- .attr('height', availableHeight + margin.top);
-
-
-
- function updateValueLine() { //index is currently global (within the chart), may or may not keep it that way
- if (paused) return;
-
- var hoverValue = g.selectAll('.nv-hoverValue').data(index)
-
- var hoverEnter = hoverValue.enter()
- .append('g').attr('class', 'nv-hoverValue')
- .style('stroke-opacity', 0)
- .style('fill-opacity', 0);
-
- hoverValue.exit()
- .transition().duration(250)
- .style('stroke-opacity', 0)
- .style('fill-opacity', 0)
- .remove();
-
- hoverValue
- .attr('transform', function(d) { return 'translate(' + x(sparkline.x()(data[d],d)) + ',0)' })
- .transition().duration(250)
- .style('stroke-opacity', 1)
- .style('fill-opacity', 1);
-
- if (!index.length) return;
-
- hoverEnter.append('line')
- .attr('x1', 0)
- .attr('y1', -margin.top)
- .attr('x2', 0)
- .attr('y2', availableHeight);
-
-
- hoverEnter.append('text').attr('class', 'nv-xValue')
- .attr('x', -6)
- .attr('y', -margin.top)
- .attr('text-anchor', 'end')
- .attr('dy', '.9em')
-
-
- g.select('.nv-hoverValue .nv-xValue')
- .text(xTickFormat(sparkline.x()(data[index[0]], index[0])));
-
- hoverEnter.append('text').attr('class', 'nv-yValue')
- .attr('x', 6)
- .attr('y', -margin.top)
- .attr('text-anchor', 'start')
- .attr('dy', '.9em')
-
- g.select('.nv-hoverValue .nv-yValue')
- .text(yTickFormat(sparkline.y()(data[index[0]], index[0])));
-
- }
-
-
- function sparklineHover() {
- if (paused) return;
-
- var pos = d3.mouse(this)[0] - margin.left;
-
- function getClosestIndex(data, x) {
- var distance = Math.abs(sparkline.x()(data[0], 0) - x);
- var closestIndex = 0;
- for (var i = 0; i < data.length; i++){
- if (Math.abs(sparkline.x()(data[i], i) - x) < distance) {
- distance = Math.abs(sparkline.x()(data[i], i) - x);
- closestIndex = i;
- }
- }
- return closestIndex;
- }
-
- index = [getClosestIndex(data, Math.round(x.invert(pos)))];
-
- updateValueLine();
- }
-
- });
-
- return chart;
- }
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.sparkline = sparkline;
-
- d3.rebind(chart, sparkline, 'x', 'y', 'xScale', 'yScale', 'color');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.xTickFormat = function(_) {
- if (!arguments.length) return xTickFormat;
- xTickFormat = _;
- return chart;
- };
-
- chart.yTickFormat = function(_) {
- if (!arguments.length) return yTickFormat;
- yTickFormat = _;
- return chart;
- };
-
- chart.showValue = function(_) {
- if (!arguments.length) return showValue;
- showValue = _;
- return chart;
- };
-
- chart.alignValue = function(_) {
- if (!arguments.length) return alignValue;
- alignValue = _;
- return chart;
- };
-
- chart.rightAlignValue = function(_) {
- if (!arguments.length) return rightAlignValue;
- rightAlignValue = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js
deleted file mode 100755
index 5c359992..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js
+++ /dev/null
@@ -1,368 +0,0 @@
-
-nv.models.stackedArea = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var margin = {top: 0, right: 0, bottom: 0, left: 0}
- , width = 960
- , height = 500
- , color = nv.utils.defaultColor() // a function that computes the color
- , id = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't selet one
- , getX = function(d) { return d.x } // accessor to get the x value from a data point
- , getY = function(d) { return d.y } // accessor to get the y value from a data point
- , style = 'stack'
- , offset = 'zero'
- , order = 'default'
- , interpolate = 'linear' // controls the line interpolation
- , clipEdge = false // if true, masks lines within x and y scale
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , scatter = nv.models.scatter()
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'areaClick', 'areaMouseover', 'areaMouseout')
- ;
-
- scatter
- .size(2.2) // default size
- .sizeDomain([2.2,2.2]) // all the same size by default
- ;
-
- /************************************
- * offset:
- * 'wiggle' (stream)
- * 'zero' (stacked)
- * 'expand' (normalize to 100%)
- * 'silhouette' (simple centered)
- *
- * order:
- * 'inside-out' (stream)
- * 'default' (input order)
- ************************************/
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var availableWidth = width - margin.left - margin.right,
- availableHeight = height - margin.top - margin.bottom,
- container = d3.select(this);
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = scatter.xScale();
- y = scatter.yScale();
-
- //------------------------------------------------------------
-
- var dataRaw = data;
- // Injecting point index into each point because d3.layout.stack().out does not give index
- data.forEach(function(aseries, i) {
- aseries.seriesIndex = i;
- aseries.values = aseries.values.map(function(d, j) {
- d.index = j;
- d.seriesIndex = i;
- return d;
- });
- });
-
- var dataFiltered = data.filter(function(series) {
- return !series.disabled;
- });
-
- data = d3.layout.stack()
- .order(order)
- .offset(offset)
- .values(function(d) { return d.values }) //TODO: make values customizeable in EVERY model in this fashion
- .x(getX)
- .y(getY)
- .out(function(d, y0, y) {
- var yHeight = (getY(d) === 0) ? 0 : y;
- d.display = {
- y: yHeight,
- y0: y0
- };
- })
- (dataFiltered);
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-stackedarea').data([data]);
- var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedarea');
- var defsEnter = wrapEnter.append('defs');
- var gEnter = wrapEnter.append('g');
- var g = wrap.select('g');
-
- gEnter.append('g').attr('class', 'nv-areaWrap');
- gEnter.append('g').attr('class', 'nv-scatterWrap');
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- //------------------------------------------------------------
-
-
- scatter
- .width(availableWidth)
- .height(availableHeight)
- .x(getX)
- .y(function(d) { return d.display.y + d.display.y0 })
- .forceY([0])
- .color(data.map(function(d,i) {
- return d.color || color(d, d.seriesIndex);
- }));
-
-
- var scatterWrap = g.select('.nv-scatterWrap')
- .datum(data);
-
- scatterWrap.call(scatter);
-
- defsEnter.append('clipPath')
- .attr('id', 'nv-edge-clip-' + id)
- .append('rect');
-
- wrap.select('#nv-edge-clip-' + id + ' rect')
- .attr('width', availableWidth)
- .attr('height', availableHeight);
-
- g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
- var area = d3.svg.area()
- .x(function(d,i) { return x(getX(d,i)) })
- .y0(function(d) {
- return y(d.display.y0)
- })
- .y1(function(d) {
- return y(d.display.y + d.display.y0)
- })
- .interpolate(interpolate);
-
- var zeroArea = d3.svg.area()
- .x(function(d,i) { return x(getX(d,i)) })
- .y0(function(d) { return y(d.display.y0) })
- .y1(function(d) { return y(d.display.y0) });
-
-
- var path = g.select('.nv-areaWrap').selectAll('path.nv-area')
- .data(function(d) { return d });
-
- path.enter().append('path').attr('class', function(d,i) { return 'nv-area nv-area-' + i })
- .attr('d', function(d,i){
- return zeroArea(d.values, d.seriesIndex);
- })
- .on('mouseover', function(d,i) {
- d3.select(this).classed('hover', true);
- dispatch.areaMouseover({
- point: d,
- series: d.key,
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: d.seriesIndex
- });
- })
- .on('mouseout', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.areaMouseout({
- point: d,
- series: d.key,
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: d.seriesIndex
- });
- })
- .on('click', function(d,i) {
- d3.select(this).classed('hover', false);
- dispatch.areaClick({
- point: d,
- series: d.key,
- pos: [d3.event.pageX, d3.event.pageY],
- seriesIndex: d.seriesIndex
- });
- })
-
- path.exit().remove();
-
- path
- .style('fill', function(d,i){
- return d.color || color(d, d.seriesIndex)
- })
- .style('stroke', function(d,i){ return d.color || color(d, d.seriesIndex) });
- path.transition()
- .attr('d', function(d,i) {
- return area(d.values,i)
- });
-
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementMouseover.area', function(e) {
- g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', true);
- });
- scatter.dispatch.on('elementMouseout.area', function(e) {
- g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', false);
- });
-
- //============================================================
- //Special offset functions
- chart.d3_stackedOffset_stackPercent = function(stackData) {
- var n = stackData.length, //How many series
- m = stackData[0].length, //how many points per series
- k = 1 / n,
- i,
- j,
- o,
- y0 = [];
-
- for (j = 0; j < m; ++j) { //Looping through all points
- for (i = 0, o = 0; i < dataRaw.length; i++) //looping through series'
- o += getY(dataRaw[i].values[j]) //total value of all points at a certian point in time.
-
- if (o) for (i = 0; i < n; i++)
- stackData[i][j][1] /= o;
- else
- for (i = 0; i < n; i++)
- stackData[i][j][1] = k;
- }
- for (j = 0; j < m; ++j) y0[j] = 0;
- return y0;
- };
-
- });
-
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- scatter.dispatch.on('elementClick.area', function(e) {
- dispatch.areaClick(e);
- })
- scatter.dispatch.on('elementMouseover.tooltip', function(e) {
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
- scatter.dispatch.on('elementMouseout.tooltip', function(e) {
- dispatch.tooltipHide(e);
- });
-
- //============================================================
-
- //============================================================
- // Global getters and setters
- //------------------------------------------------------------
-
- chart.dispatch = dispatch;
- chart.scatter = scatter;
-
- d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
- 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi','clipRadius','highlightPoint','clearHighlights');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.x = function(_) {
- if (!arguments.length) return getX;
- getX = d3.functor(_);
- return chart;
- };
-
- chart.y = function(_) {
- if (!arguments.length) return getY;
- getY = d3.functor(_);
- return chart;
- }
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.clipEdge = function(_) {
- if (!arguments.length) return clipEdge;
- clipEdge = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- return chart;
- };
-
- chart.offset = function(_) {
- if (!arguments.length) return offset;
- offset = _;
- return chart;
- };
-
- chart.order = function(_) {
- if (!arguments.length) return order;
- order = _;
- return chart;
- };
-
- //shortcut for offset + order
- chart.style = function(_) {
- if (!arguments.length) return style;
- style = _;
-
- switch (style) {
- case 'stack':
- chart.offset('zero');
- chart.order('default');
- break;
- case 'stream':
- chart.offset('wiggle');
- chart.order('inside-out');
- break;
- case 'stream-center':
- chart.offset('silhouette');
- chart.order('inside-out');
- break;
- case 'expand':
- chart.offset('expand');
- chart.order('default');
- break;
- case 'stack_percent':
- chart.offset(chart.d3_stackedOffset_stackPercent);
- chart.order('default');
- break;
- }
-
- return chart;
- };
-
- chart.interpolate = function(_) {
- if (!arguments.length) return interpolate;
- interpolate = _;
- return chart;
- };
- //============================================================
-
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js
deleted file mode 100755
index ff4c6c26..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js
+++ /dev/null
@@ -1,635 +0,0 @@
-
-nv.models.stackedAreaChart = function() {
- "use strict";
- //============================================================
- // Public Variables with Default Settings
- //------------------------------------------------------------
-
- var stacked = nv.models.stackedArea()
- , xAxis = nv.models.axis()
- , yAxis = nv.models.axis()
- , legend = nv.models.legend()
- , controls = nv.models.legend()
- , interactiveLayer = nv.interactiveGuideline()
- ;
-
- var margin = {top: 30, right: 25, bottom: 50, left: 60}
- , width = null
- , height = null
- , color = nv.utils.defaultColor() // a function that takes in d, i and returns color
- , showControls = true
- , showLegend = true
- , showXAxis = true
- , showYAxis = true
- , rightAlignYAxis = false
- , useInteractiveGuideline = false
- , tooltips = true
- , tooltip = function(key, x, y, e, graph) {
- return '<h3>' + key + '</h3>' +
- '<p>' + y + ' on ' + x + '</p>'
- }
- , x //can be accessed via chart.xScale()
- , y //can be accessed via chart.yScale()
- , yAxisTickFormat = d3.format(',.2f')
- , state = { style: stacked.style() }
- , defaultState = null
- , noData = 'No Data Available.'
- , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
- , controlWidth = 250
- , cData = ['Stacked','Stream','Expanded']
- , controlLabels = {}
- , transitionDuration = 250
- ;
-
- xAxis
- .orient('bottom')
- .tickPadding(7)
- ;
- yAxis
- .orient((rightAlignYAxis) ? 'right' : 'left')
- ;
-
- controls.updateState(false);
- //============================================================
-
-
- //============================================================
- // Private Variables
- //------------------------------------------------------------
-
- var showTooltip = function(e, offsetElement) {
- var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
- top = e.pos[1] + ( offsetElement.offsetTop || 0),
- x = xAxis.tickFormat()(stacked.x()(e.point, e.pointIndex)),
- y = yAxis.tickFormat()(stacked.y()(e.point, e.pointIndex)),
- content = tooltip(e.series.key, x, y, e, chart);
-
- nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
- };
-
- //============================================================
-
-
- function chart(selection) {
- selection.each(function(data) {
- var container = d3.select(this),
- that = this;
-
- var availableWidth = (width || parseInt(container.style('width')) || 960)
- - margin.left - margin.right,
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
-
- chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
- chart.container = this;
-
- //set state.disabled
- state.disabled = data.map(function(d) { return !!d.disabled });
-
- if (!defaultState) {
- var key;
- defaultState = {};
- for (key in state) {
- if (state[key] instanceof Array)
- defaultState[key] = state[key].slice(0);
- else
- defaultState[key] = state[key];
- }
- }
-
- //------------------------------------------------------------
- // Display No Data message if there's nothing to show.
-
- if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
- var noDataText = container.selectAll('.nv-noData').data([noData]);
-
- noDataText.enter().append('text')
- .attr('class', 'nvd3 nv-noData')
- .attr('dy', '-.7em')
- .style('text-anchor', 'middle');
-
- noDataText
- .attr('x', margin.left + availableWidth / 2)
- .attr('y', margin.top + availableHeight / 2)
- .text(function(d) { return d });
-
- return chart;
- } else {
- container.selectAll('.nv-noData').remove();
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Scales
-
- x = stacked.xScale();
- y = stacked.yScale();
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup containers and skeleton of chart
-
- var wrap = container.selectAll('g.nv-wrap.nv-stackedAreaChart').data([data]);
- var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedAreaChart').append('g');
- var g = wrap.select('g');
-
- gEnter.append("rect").style("opacity",0);
- gEnter.append('g').attr('class', 'nv-x nv-axis');
- gEnter.append('g').attr('class', 'nv-y nv-axis');
- gEnter.append('g').attr('class', 'nv-stackedWrap');
- gEnter.append('g').attr('class', 'nv-legendWrap');
- gEnter.append('g').attr('class', 'nv-controlsWrap');
- gEnter.append('g').attr('class', 'nv-interactive');
-
- g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
- //------------------------------------------------------------
- // Legend
-
- if (showLegend) {
- var legendWidth = (showControls) ? availableWidth - controlWidth : availableWidth;
- legend
- .width(legendWidth);
-
- g.select('.nv-legendWrap')
- .datum(data)
- .call(legend);
-
- if ( margin.top != legend.height()) {
- margin.top = legend.height();
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
- g.select('.nv-legendWrap')
- .attr('transform', 'translate(' + (availableWidth-legendWidth) + ',' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Controls
-
- if (showControls) {
- var controlsData = [
- {
- key: controlLabels.stacked || 'Stacked',
- metaKey: 'Stacked',
- disabled: stacked.style() != 'stack',
- style: 'stack'
- },
- {
- key: controlLabels.stream || 'Stream',
- metaKey: 'Stream',
- disabled: stacked.style() != 'stream',
- style: 'stream'
- },
- {
- key: controlLabels.expanded || 'Expanded',
- metaKey: 'Expanded',
- disabled: stacked.style() != 'expand',
- style: 'expand'
- },
- {
- key: controlLabels.stack_percent || 'Stack %',
- metaKey: 'Stack_Percent',
- disabled: stacked.style() != 'stack_percent',
- style: 'stack_percent'
- }
- ];
-
- controlWidth = (cData.length/3) * 260;
-
- controlsData = controlsData.filter(function(d) {
- return cData.indexOf(d.metaKey) !== -1;
- })
-
- controls
- .width( controlWidth )
- .color(['#444', '#444', '#444']);
-
- g.select('.nv-controlsWrap')
- .datum(controlsData)
- .call(controls);
-
-
- if ( margin.top != Math.max(controls.height(), legend.height()) ) {
- margin.top = Math.max(controls.height(), legend.height());
- availableHeight = (height || parseInt(container.style('height')) || 400)
- - margin.top - margin.bottom;
- }
-
-
- g.select('.nv-controlsWrap')
- .attr('transform', 'translate(0,' + (-margin.top) +')');
- }
-
- //------------------------------------------------------------
-
-
- wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
- if (rightAlignYAxis) {
- g.select(".nv-y.nv-axis")
- .attr("transform", "translate(" + availableWidth + ",0)");
- }
-
- //------------------------------------------------------------
- // Main Chart Component(s)
-
- //------------------------------------------------------------
- //Set up interactive layer
- if (useInteractiveGuideline) {
- interactiveLayer
- .width(availableWidth)
- .height(availableHeight)
- .margin({left: margin.left, top: margin.top})
- .svgContainer(container)
- .xScale(x);
- wrap.select(".nv-interactive").call(interactiveLayer);
- }
-
- stacked
- .width(availableWidth)
- .height(availableHeight)
-
- var stackedWrap = g.select('.nv-stackedWrap')
- .datum(data);
-
- stackedWrap.transition().call(stacked);
-
- //------------------------------------------------------------
-
-
- //------------------------------------------------------------
- // Setup Axes
-
- if (showXAxis) {
- xAxis
- .scale(x)
- .ticks( availableWidth / 100 )
- .tickSize( -availableHeight, 0);
-
- g.select('.nv-x.nv-axis')
- .attr('transform', 'translate(0,' + availableHeight + ')');
-
- g.select('.nv-x.nv-axis')
- .transition().duration(0)
- .call(xAxis);
- }
-
- if (showYAxis) {
- yAxis
- .scale(y)
- .ticks(stacked.offset() == 'wiggle' ? 0 : availableHeight / 36)
- .tickSize(-availableWidth, 0)
- .setTickFormat( (stacked.style() == 'expand' || stacked.style() == 'stack_percent')
- ? d3.format('%') : yAxisTickFormat);
-
- g.select('.nv-y.nv-axis')
- .transition().duration(0)
- .call(yAxis);
- }
-
- //------------------------------------------------------------
-
-
- //============================================================
- // Event Handling/Dispatching (in chart's scope)
- //------------------------------------------------------------
-
- stacked.dispatch.on('areaClick.toggle', function(e) {
- if (data.filter(function(d) { return !d.disabled }).length === 1)
- data.forEach(function(d) {
- d.disabled = false;
- });
- else
- data.forEach(function(d,i) {
- d.disabled = (i != e.seriesIndex);
- });
-
- state.disabled = data.map(function(d) { return !!d.disabled });
- dispatch.stateChange(state);
-
- chart.update();
- });
-
- legend.dispatch.on('stateChange', function(newState) {
- state.disabled = newState.disabled;
- dispatch.stateChange(state);
- chart.update();
- });
-
- controls.dispatch.on('legendClick', function(d,i) {
- if (!d.disabled) return;
-
- controlsData = controlsData.map(function(s) {
- s.disabled = true;
- return s;
- });
- d.disabled = false;
-
- stacked.style(d.style);
-
-
- state.style = stacked.style();
- dispatch.stateChange(state);
-
- chart.update();
- });
-
-
- interactiveLayer.dispatch.on('elementMousemove', function(e) {
- stacked.clearHighlights();
- var singlePoint, pointIndex, pointXLocation, allData = [];
- data
- .filter(function(series, i) {
- series.seriesIndex = i;
- return !series.disabled;
- })
- .forEach(function(series,i) {
- pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
- stacked.highlightPoint(i, pointIndex, true);
- var point = series.values[pointIndex];
- if (typeof point === 'undefined') return;
- if (typeof singlePoint === 'undefined') singlePoint = point;
- if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-
- //If we are in 'expand' mode, use the stacked percent value instead of raw value.
- var tooltipValue = (stacked.style() == 'expand') ? point.display.y : chart.y()(point,pointIndex);
- allData.push({
- key: series.key,
- value: tooltipValue,
- color: color(series,series.seriesIndex),
- stackedValue: point.display
- });
- });
-
- allData.reverse();
-
- //Highlight the tooltip entry based on which stack the mouse is closest to.
- if (allData.length > 2) {
- var yValue = chart.yScale().invert(e.mouseY);
- var yDistMax = Infinity, indexToHighlight = null;
- allData.forEach(function(series,i) {
-
- //To handle situation where the stacked area chart is negative, we need to use absolute values
- //when checking if the mouse Y value is within the stack area.
- yValue = Math.abs(yValue);
- var stackedY0 = Math.abs(series.stackedValue.y0);
- var stackedY = Math.abs(series.stackedValue.y);
- if ( yValue >= stackedY0 && yValue <= (stackedY + stackedY0))
- {
- indexToHighlight = i;
- return;
- }
- });
- if (indexToHighlight != null)
- allData[indexToHighlight].highlight = true;
- }
-
- var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
-
- //If we are in 'expand' mode, force the format to be a percentage.
- var valueFormatter = (stacked.style() == 'expand') ?
- function(d,i) {return d3.format(".1%")(d);} :
- function(d,i) {return yAxis.tickFormat()(d); };
- interactiveLayer.tooltip
- .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
- .chartContainer(that.parentNode)
- .enabled(tooltips)
- .valueFormatter(valueFormatter)
- .data(
- {
- value: xValue,
- series: allData
- }
- )();
-
- interactiveLayer.renderGuideLine(pointXLocation);
-
- });
-
- interactiveLayer.dispatch.on("elementMouseout",function(e) {
- dispatch.tooltipHide();
- stacked.clearHighlights();
- });
-
-
- dispatch.on('tooltipShow', function(e) {
- if (tooltips) showTooltip(e, that.parentNode);
- });
-
- // Update chart from a state object passed to event handler
- dispatch.on('changeState', function(e) {
-
- if (typeof e.disabled !== 'undefined') {
- data.forEach(function(series,i) {
- series.disabled = e.disabled[i];
- });
-
- state.disabled = e.disabled;
- }
-
- if (typeof e.style !== 'undefined') {
- stacked.style(e.style);
- }
-
- chart.update();
- });
-
- });
-
-
- return chart;
- }
-
-
- //============================================================
- // Event Handling/Dispatching (out of chart's scope)
- //------------------------------------------------------------
-
- stacked.dispatch.on('tooltipShow', function(e) {
- //disable tooltips when value ~= 0
- //// TODO: consider removing points from voronoi that have 0 value instead of this hack
- /*
- if (!Math.round(stacked.y()(e.point) * 100)) { // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
- setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
- return false;
- }
- */
-
- e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
- dispatch.tooltipShow(e);
- });
-
- stacked.dispatch.on('tooltipHide', function(e) {
- dispatch.tooltipHide(e);
- });
-
- dispatch.on('tooltipHide', function() {
- if (tooltips) nv.tooltip.cleanup();
- });
-
- //============================================================
-
-
- //============================================================
- // Expose Public Variables
- //------------------------------------------------------------
-
- // expose chart's sub-components
- chart.dispatch = dispatch;
- chart.stacked = stacked;
- chart.legend = legend;
- chart.controls = controls;
- chart.xAxis = xAxis;
- chart.yAxis = yAxis;
- chart.interactiveLayer = interactiveLayer;
-
- d3.rebind(chart, stacked, 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'interactive', 'useVoronoi', 'offset', 'order', 'style', 'clipEdge', 'forceX', 'forceY', 'forceSize', 'interpolate');
-
- chart.options = nv.utils.optionsFunc.bind(chart);
-
- chart.margin = function(_) {
- if (!arguments.length) return margin;
- margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
- margin.right = typeof _.right != 'undefined' ? _.right : margin.right;
- margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
- margin.left = typeof _.left != 'undefined' ? _.left : margin.left;
- return chart;
- };
-
- chart.width = function(_) {
- if (!arguments.length) return width;
- width = _;
- return chart;
- };
-
- chart.height = function(_) {
- if (!arguments.length) return height;
- height = _;
- return chart;
- };
-
- chart.color = function(_) {
- if (!arguments.length) return color;
- color = nv.utils.getColor(_);
- legend.color(color);
- stacked.color(color);
- return chart;
- };
-
- chart.showControls = function(_) {
- if (!arguments.length) return showControls;
- showControls = _;
- return chart;
- };
-
- chart.showLegend = function(_) {
- if (!arguments.length) return showLegend;
- showLegend = _;
- return chart;
- };
-
- chart.showXAxis = function(_) {
- if (!arguments.length) return showXAxis;
- showXAxis = _;
- return chart;
- };
-
- chart.showYAxis = function(_) {
- if (!arguments.length) return showYAxis;
- showYAxis = _;
- return chart;
- };
-
- chart.rightAlignYAxis = function(_) {
- if(!arguments.length) return rightAlignYAxis;
- rightAlignYAxis = _;
- yAxis.orient( (_) ? 'right' : 'left');
- return chart;
- };
-
- chart.useInteractiveGuideline = function(_) {
- if(!arguments.length) return useInteractiveGuideline;
- useInteractiveGuideline = _;
- if (_ === true) {
- chart.interactive(false);
- chart.useVoronoi(false);
- }
- return chart;
- };
-
- chart.tooltip = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.tooltips = function(_) {
- if (!arguments.length) return tooltips;
- tooltips = _;
- return chart;
- };
-
- chart.tooltipContent = function(_) {
- if (!arguments.length) return tooltip;
- tooltip = _;
- return chart;
- };
-
- chart.state = function(_) {
- if (!arguments.length) return state;
- state = _;
- return chart;
- };
-
- chart.defaultState = function(_) {
- if (!arguments.length) return defaultState;
- defaultState = _;
- return chart;
- };
-
- chart.noData = function(_) {
- if (!arguments.length) return noData;
- noData = _;
- return chart;
- };
-
- chart.transitionDuration = function(_) {
- if (!arguments.length) return transitionDuration;
- transitionDuration = _;
- return chart;
- };
-
- chart.controlsData = function(_) {
- if (!arguments.length) return cData;
- cData = _;
- return chart;
- };
-
- chart.controlLabels = function(_) {
- if (!arguments.length) return controlLabels;
- if (typeof _ !== 'object') return controlLabels;
- controlLabels = _;
- return chart;
- };
-
- yAxis.setTickFormat = yAxis.tickFormat;
-
- yAxis.tickFormat = function(_) {
- if (!arguments.length) return yAxisTickFormat;
- yAxisTickFormat = _;
- return yAxis;
- };
-
-
- //============================================================
-
- return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css
deleted file mode 100755
index cae83482..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css
+++ /dev/null
@@ -1,769 +0,0 @@
-
-/********************
- * HTML CSS
- */
-
-
-.chartWrap {
- margin: 0;
- padding: 0;
- overflow: hidden;
-}
-
-/********************
- Box shadow and border radius styling
-*/
-.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
- -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- box-shadow: 0 5px 10px rgba(0,0,0,.2);
-
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
-}
-
-/********************
- * TOOLTIP CSS
- */
-
-.nvtooltip {
- position: absolute;
- background-color: rgba(255,255,255,1.0);
- padding: 1px;
- border: 1px solid rgba(0,0,0,.2);
- z-index: 10000;
-
- font-family: Arial;
- font-size: 13px;
- text-align: left;
- pointer-events: none;
-
- white-space: nowrap;
-
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-/*Give tooltips that old fade in transition by
- putting a "with-transitions" class on the container div.
-*/
-.nvtooltip.with-transitions, .with-transitions .nvtooltip {
- transition: opacity 250ms linear;
- -moz-transition: opacity 250ms linear;
- -webkit-transition: opacity 250ms linear;
-
- transition-delay: 250ms;
- -moz-transition-delay: 250ms;
- -webkit-transition-delay: 250ms;
-}
-
-.nvtooltip.x-nvtooltip,
-.nvtooltip.y-nvtooltip {
- padding: 8px;
-}
-
-.nvtooltip h3 {
- margin: 0;
- padding: 4px 14px;
- line-height: 18px;
- font-weight: normal;
- background-color: rgba(247,247,247,0.75);
- text-align: center;
-
- border-bottom: 1px solid #ebebeb;
-
- -webkit-border-radius: 5px 5px 0 0;
- -moz-border-radius: 5px 5px 0 0;
- border-radius: 5px 5px 0 0;
-}
-
-.nvtooltip p {
- margin: 0;
- padding: 5px 14px;
- text-align: center;
-}
-
-.nvtooltip span {
- display: inline-block;
- margin: 2px 0;
-}
-
-.nvtooltip table {
- margin: 6px;
- border-spacing:0;
-}
-
-
-.nvtooltip table td {
- padding: 2px 9px 2px 0;
- vertical-align: middle;
-}
-
-.nvtooltip table td.key {
- font-weight:normal;
-}
-.nvtooltip table td.value {
- text-align: right;
- font-weight: bold;
-}
-
-.nvtooltip table tr.highlight td {
- padding: 1px 9px 1px 0;
- border-bottom-style: solid;
- border-bottom-width: 1px;
- border-top-style: solid;
- border-top-width: 1px;
-}
-
-.nvtooltip table td.legend-color-guide div {
- width: 8px;
- height: 8px;
- vertical-align: middle;
-}
-
-.nvtooltip .footer {
- padding: 3px;
- text-align: center;
-}
-
-
-.nvtooltip-pending-removal {
- position: absolute;
- pointer-events: none;
-}
-
-
-/********************
- * SVG CSS
- */
-
-
-svg {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- /* Trying to get SVG to act like a greedy block in all browsers */
- display: block;
- width:100%;
- height:100%;
-}
-
-
-svg text {
- font: normal 12px Arial;
-}
-
-svg .title {
- font: bold 14px Arial;
-}
-
-.nvd3 .nv-background {
- fill: white;
- fill-opacity: 0;
- /*
- pointer-events: none;
- */
-}
-
-.nvd3.nv-noData {
- font-size: 18px;
- font-weight: bold;
-}
-
-
-/**********
-* Brush
-*/
-
-.nv-brush .extent {
- fill-opacity: .125;
- shape-rendering: crispEdges;
-}
-
-
-
-/**********
-* Legend
-*/
-
-.nvd3 .nv-legend .nv-series {
- cursor: pointer;
-}
-
-.nvd3 .nv-legend .disabled circle {
- fill-opacity: 0;
-}
-
-
-
-/**********
-* Axes
-*/
-.nvd3 .nv-axis {
- pointer-events:none;
-}
-
-.nvd3 .nv-axis path {
- fill: none;
- stroke: #000;
- stroke-opacity: .75;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis path.domain {
- stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis.nv-x path.domain {
- stroke-opacity: 0;
-}
-
-.nvd3 .nv-axis line {
- fill: none;
- stroke: #e5e5e5;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis .zero line,
-/*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
- stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis .nv-axisMaxMin text {
- font-weight: bold;
-}
-
-.nvd3 .x .nv-axis .nv-axisMaxMin text,
-.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
-.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
- text-anchor: middle
-}
-
-
-
-/**********
-* Brush
-*/
-
-.nv-brush .resize path {
- fill: #eee;
- stroke: #666;
-}
-
-
-
-/**********
-* Bars
-*/
-
-.nvd3 .nv-bars .negative rect {
- zfill: brown;
-}
-
-.nvd3 .nv-bars rect {
- zfill: steelblue;
- fill-opacity: .75;
-
- transition: fill-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-bars rect.hover {
- fill-opacity: 1;
-}
-
-.nvd3 .nv-bars .hover rect {
- fill: lightblue;
-}
-
-.nvd3 .nv-bars text {
- fill: rgba(0,0,0,0);
-}
-
-.nvd3 .nv-bars .hover text {
- fill: rgba(0,0,0,1);
-}
-
-
-/**********
-* Bars
-*/
-
-.nvd3 .nv-multibar .nv-groups rect,
-.nvd3 .nv-multibarHorizontal .nv-groups rect,
-.nvd3 .nv-discretebar .nv-groups rect {
- stroke-opacity: 0;
-
- transition: fill-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-multibar .nv-groups rect:hover,
-.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
-.nvd3 .nv-discretebar .nv-groups rect:hover {
- fill-opacity: 1;
-}
-
-.nvd3 .nv-discretebar .nv-groups text,
-.nvd3 .nv-multibarHorizontal .nv-groups text {
- font-weight: bold;
- fill: rgba(0,0,0,1);
- stroke: rgba(0,0,0,0);
-}
-
-/***********
-* Pie Chart
-*/
-
-.nvd3.nv-pie path {
- stroke-opacity: 0;
- transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-pie .nv-slice text {
- stroke: #000;
- stroke-width: 0;
-}
-
-.nvd3.nv-pie path {
- stroke: #fff;
- stroke-width: 1px;
- stroke-opacity: 1;
-}
-
-.nvd3.nv-pie .hover path {
- fill-opacity: .7;
-}
-.nvd3.nv-pie .nv-label {
- pointer-events: none;
-}
-.nvd3.nv-pie .nv-label rect {
- fill-opacity: 0;
- stroke-opacity: 0;
-}
-
-/**********
-* Lines
-*/
-
-.nvd3 .nv-groups path.nv-line {
- fill: none;
- stroke-width: 1.5px;
- /*
- stroke-linecap: round;
- shape-rendering: geometricPrecision;
-
- transition: stroke-width 250ms linear;
- -moz-transition: stroke-width 250ms linear;
- -webkit-transition: stroke-width 250ms linear;
-
- transition-delay: 250ms
- -moz-transition-delay: 250ms;
- -webkit-transition-delay: 250ms;
- */
-}
-
-.nvd3 .nv-groups path.nv-line.nv-thin-line {
- stroke-width: 1px;
-}
-
-
-.nvd3 .nv-groups path.nv-area {
- stroke: none;
- /*
- stroke-linecap: round;
- shape-rendering: geometricPrecision;
-
- stroke-width: 2.5px;
- transition: stroke-width 250ms linear;
- -moz-transition: stroke-width 250ms linear;
- -webkit-transition: stroke-width 250ms linear;
-
- transition-delay: 250ms
- -moz-transition-delay: 250ms;
- -webkit-transition-delay: 250ms;
- */
-}
-
-.nvd3 .nv-line.hover path {
- stroke-width: 6px;
-}
-
-/*
-.nvd3.scatter .groups .point {
- fill-opacity: 0.1;
- stroke-opacity: 0.1;
-}
- */
-
-.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
- fill-opacity: 0;
- stroke-opacity: 0;
-}
-
-.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
- fill-opacity: .5 !important;
- stroke-opacity: .5 !important;
-}
-
-
-.with-transitions .nvd3 .nv-groups .nv-point {
- transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
- -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
- -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-scatter .nv-groups .nv-point.hover,
-.nvd3 .nv-groups .nv-point.hover {
- stroke-width: 7px;
- fill-opacity: .95 !important;
- stroke-opacity: .95 !important;
-}
-
-
-.nvd3 .nv-point-paths path {
- stroke: #aaa;
- stroke-opacity: 0;
- fill: #eee;
- fill-opacity: 0;
-}
-
-
-
-.nvd3 .nv-indexLine {
- cursor: ew-resize;
-}
-
-
-/**********
-* Distribution
-*/
-
-.nvd3 .nv-distribution {
- pointer-events: none;
-}
-
-
-
-/**********
-* Scatter
-*/
-
-/* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere
-.nvd3 .nv-groups .nv-point {
- pointer-events: none;
-}
-*/
-
-.nvd3 .nv-groups .nv-point.hover {
- stroke-width: 20px;
- stroke-opacity: .5;
-}
-
-.nvd3 .nv-scatter .nv-point.hover {
- fill-opacity: 1;
-}
-
-/*
-.nv-group.hover .nv-point {
- fill-opacity: 1;
-}
-*/
-
-
-/**********
-* Stacked Area
-*/
-
-.nvd3.nv-stackedarea path.nv-area {
- fill-opacity: .7;
- /*
- stroke-opacity: .65;
- fill-opacity: 1;
- */
- stroke-opacity: 0;
-
- transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
- -moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
- -webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-
- /*
- transition-delay: 500ms;
- -moz-transition-delay: 500ms;
- -webkit-transition-delay: 500ms;
- */
-
-}
-
-.nvd3.nv-stackedarea path.nv-area.hover {
- fill-opacity: .9;
- /*
- stroke-opacity: .85;
- */
-}
-/*
-.d3stackedarea .groups path {
- stroke-opacity: 0;
-}
- */
-
-
-
-.nvd3.nv-stackedarea .nv-groups .nv-point {
- stroke-opacity: 0;
- fill-opacity: 0;
-}
-
-/*
-.nvd3.nv-stackedarea .nv-groups .nv-point.hover {
- stroke-width: 20px;
- stroke-opacity: .75;
- fill-opacity: 1;
-}*/
-
-
-
-/**********
-* Line Plus Bar
-*/
-
-.nvd3.nv-linePlusBar .nv-bar rect {
- fill-opacity: .75;
-}
-
-.nvd3.nv-linePlusBar .nv-bar rect:hover {
- fill-opacity: 1;
-}
-
-
-/**********
-* Bullet
-*/
-
-.nvd3.nv-bullet { font: 10px sans-serif; }
-.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
-.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
-.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
-.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
-.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
-.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
-.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
-.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
-.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
-.nvd3.nv-bullet .nv-subtitle { fill: #999; }
-
-
-.nvd3.nv-bullet .nv-range {
- fill: #bababa;
- fill-opacity: .4;
-}
-.nvd3.nv-bullet .nv-range:hover {
- fill-opacity: .7;
-}
-
-
-
-/**********
-* Sparkline
-*/
-
-.nvd3.nv-sparkline path {
- fill: none;
-}
-
-.nvd3.nv-sparklineplus g.nv-hoverValue {
- pointer-events: none;
-}
-
-.nvd3.nv-sparklineplus .nv-hoverValue line {
- stroke: #333;
- stroke-width: 1.5px;
- }
-
-.nvd3.nv-sparklineplus,
-.nvd3.nv-sparklineplus g {
- pointer-events: all;
-}
-
-.nvd3 .nv-hoverArea {
- fill-opacity: 0;
- stroke-opacity: 0;
-}
-
-.nvd3.nv-sparklineplus .nv-xValue,
-.nvd3.nv-sparklineplus .nv-yValue {
- /*
- stroke: #666;
- */
- stroke-width: 0;
- font-size: .9em;
- font-weight: normal;
-}
-
-.nvd3.nv-sparklineplus .nv-yValue {
- stroke: #f66;
-}
-
-.nvd3.nv-sparklineplus .nv-maxValue {
- stroke: #2ca02c;
- fill: #2ca02c;
-}
-
-.nvd3.nv-sparklineplus .nv-minValue {
- stroke: #d62728;
- fill: #d62728;
-}
-
-.nvd3.nv-sparklineplus .nv-currentValue {
- /*
- stroke: #444;
- fill: #000;
- */
- font-weight: bold;
- font-size: 1.1em;
-}
-
-/**********
-* historical stock
-*/
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
- stroke-width: 2px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
- stroke-width: 4px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
- stroke: #2ca02c;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
- stroke: #d62728;
-}
-
-.nvd3.nv-historicalStockChart .nv-axis .nv-axislabel {
- font-weight: bold;
-}
-
-.nvd3.nv-historicalStockChart .nv-dragTarget {
- fill-opacity: 0;
- stroke: none;
- cursor: move;
-}
-
-.nvd3 .nv-brush .extent {
- /*
- cursor: ew-resize !important;
- */
- fill-opacity: 0 !important;
-}
-
-.nvd3 .nv-brushBackground rect {
- stroke: #000;
- stroke-width: .4;
- fill: #fff;
- fill-opacity: .7;
-}
-
-
-
-/**********
-* Indented Tree
-*/
-
-
-/**
- * TODO: the following 3 selectors are based on classes used in the example. I should either make them standard and leave them here, or move to a CSS file not included in the library
- */
-.nvd3.nv-indentedtree .name {
- margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .clickable {
- color: #08C;
- cursor: pointer;
-}
-
-.nvd3.nv-indentedtree span.clickable:hover {
- color: #005580;
- text-decoration: underline;
-}
-
-
-.nvd3.nv-indentedtree .nv-childrenCount {
- display: inline-block;
- margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .nv-treeicon {
- cursor: pointer;
- /*
- cursor: n-resize;
- */
-}
-
-.nvd3.nv-indentedtree .nv-treeicon.nv-folded {
- cursor: pointer;
- /*
- cursor: s-resize;
- */
-}
-
-/**********
-* Parallel Coordinates
-*/
-
-.nvd3 .background path {
- fill: none;
- stroke: #ccc;
- stroke-opacity: .4;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .foreground path {
- fill: none;
- stroke: steelblue;
- stroke-opacity: .7;
-}
-
-.nvd3 .brush .extent {
- fill-opacity: .3;
- stroke: #fff;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .axis line, .axis path {
- fill: none;
- stroke: #000;
- shape-rendering: crispEdges;
-}
-
-.nvd3 .axis text {
- text-shadow: 0 1px 0 #fff;
-}
-
-/****
-Interactive Layer
-*/
-.nvd3 .nv-interactiveGuideLine {
- pointer-events:none;
-}
-.nvd3 line.nv-guideline {
- stroke: #ccc;
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js
deleted file mode 100755
index 158693a0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js
+++ /dev/null
@@ -1 +0,0 @@
-})(); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js
deleted file mode 100755
index 46e5a816..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js
+++ /dev/null
@@ -1,490 +0,0 @@
-/* Tooltip rendering model for nvd3 charts.
-window.nv.models.tooltip is the updated,new way to render tooltips.
-
-window.nv.tooltip.show is the old tooltip code.
-window.nv.tooltip.* also has various helper methods.
-*/
-(function() {
- "use strict";
- window.nv.tooltip = {};
-
- /* Model which can be instantiated to handle tooltip rendering.
- Example usage:
- var tip = nv.models.tooltip().gravity('w').distance(23)
- .data(myDataObject);
-
- tip(); //just invoke the returned function to render tooltip.
- */
- window.nv.models.tooltip = function() {
- var content = null //HTML contents of the tooltip. If null, the content is generated via the data variable.
- , data = null /* Tooltip data. If data is given in the proper format, a consistent tooltip is generated.
- Format of data:
- {
- key: "Date",
- value: "August 2009",
- series: [
- {
- key: "Series 1",
- value: "Value 1",
- color: "#000"
- },
- {
- key: "Series 2",
- value: "Value 2",
- color: "#00f"
- }
- ]
-
- }
-
- */
- , gravity = 'w' //Can be 'n','s','e','w'. Determines how tooltip is positioned.
- , distance = 50 //Distance to offset tooltip from the mouse location.
- , snapDistance = 25 //Tolerance allowed before tooltip is moved from its current position (creates 'snapping' effect)
- , fixedTop = null //If not null, this fixes the top position of the tooltip.
- , classes = null //Attaches additional CSS classes to the tooltip DIV that is created.
- , chartContainer = null //Parent DIV, of the SVG Container that holds the chart.
- , tooltipElem = null //actual DOM element representing the tooltip.
- , position = {left: null, top: null} //Relative position of the tooltip inside chartContainer.
- , enabled = true //True -> tooltips are rendered. False -> don't render tooltips.
- //Generates a unique id when you create a new tooltip() object
- , id = "nvtooltip-" + Math.floor(Math.random() * 100000)
- ;
-
- //CSS class to specify whether element should not have mouse events.
- var nvPointerEventsClass = "nv-pointer-events-none";
-
- //Format function for the tooltip values column
- var valueFormatter = function(d,i) {
- return d;
- };
-
- //Format function for the tooltip header value.
- var headerFormatter = function(d) {
- return d;
- };
-
- //By default, the tooltip model renders a beautiful table inside a DIV.
- //You can override this function if a custom tooltip is desired.
- var contentGenerator = function(d) {
- if (content != null) return content;
-
- if (d == null) return '';
-
- var table = d3.select(document.createElement("table"));
- var theadEnter = table.selectAll("thead")
- .data([d])
- .enter().append("thead");
- theadEnter.append("tr")
- .append("td")
- .attr("colspan",3)
- .append("strong")
- .classed("x-value",true)
- .html(headerFormatter(d.value));
-
- var tbodyEnter = table.selectAll("tbody")
- .data([d])
- .enter().append("tbody");
- var trowEnter = tbodyEnter.selectAll("tr")
- .data(function(p) { return p.series})
- .enter()
- .append("tr")
- .classed("highlight", function(p) { return p.highlight})
- ;
-
- trowEnter.append("td")
- .classed("legend-color-guide",true)
- .append("div")
- .style("background-color", function(p) { return p.color});
- trowEnter.append("td")
- .classed("key",true)
- .html(function(p) {return p.key});
- trowEnter.append("td")
- .classed("value",true)
- .html(function(p,i) { return valueFormatter(p.value,i) });
-
-
- trowEnter.selectAll("td").each(function(p) {
- if (p.highlight) {
- var opacityScale = d3.scale.linear().domain([0,1]).range(["#fff",p.color]);
- var opacity = 0.6;
- d3.select(this)
- .style("border-bottom-color", opacityScale(opacity))
- .style("border-top-color", opacityScale(opacity))
- ;
- }
- });
-
- var html = table.node().outerHTML;
- if (d.footer !== undefined)
- html += "<div class='footer'>" + d.footer + "</div>";
- return html;
-
- };
-
- var dataSeriesExists = function(d) {
- if (d && d.series && d.series.length > 0) return true;
-
- return false;
- };
-
- //In situations where the chart is in a 'viewBox', re-position the tooltip based on how far chart is zoomed.
- function convertViewBoxRatio() {
- if (chartContainer) {
- var svg = d3.select(chartContainer);
- if (svg.node().tagName !== "svg") {
- svg = svg.select("svg");
- }
- var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
- if (viewBox) {
- viewBox = viewBox.split(' ');
- var ratio = parseInt(svg.style('width')) / viewBox[2];
-
- position.left = position.left * ratio;
- position.top = position.top * ratio;
- }
- }
- }
-
- //Creates new tooltip container, or uses existing one on DOM.
- function getTooltipContainer(newContent) {
- var body;
- if (chartContainer)
- body = d3.select(chartContainer);
- else
- body = d3.select("body");
-
- var container = body.select(".nvtooltip");
- if (container.node() === null) {
- //Create new tooltip div if it doesn't exist on DOM.
- container = body.append("div")
- .attr("class", "nvtooltip " + (classes? classes: "xy-tooltip"))
- .attr("id",id)
- ;
- }
-
-
- container.node().innerHTML = newContent;
- container.style("top",0).style("left",0).style("opacity",0);
- container.selectAll("div, table, td, tr").classed(nvPointerEventsClass,true)
- container.classed(nvPointerEventsClass,true);
- return container.node();
- }
-
-
-
- //Draw the tooltip onto the DOM.
- function nvtooltip() {
- if (!enabled) return;
- if (!dataSeriesExists(data)) return;
-
- convertViewBoxRatio();
-
- var left = position.left;
- var top = (fixedTop != null) ? fixedTop : position.top;
- var container = getTooltipContainer(contentGenerator(data));
- tooltipElem = container;
- if (chartContainer) {
- var svgComp = chartContainer.getElementsByTagName("svg")[0];
- var boundRect = (svgComp) ? svgComp.getBoundingClientRect() : chartContainer.getBoundingClientRect();
- var svgOffset = {left:0,top:0};
- if (svgComp) {
- var svgBound = svgComp.getBoundingClientRect();
- var chartBound = chartContainer.getBoundingClientRect();
- var svgBoundTop = svgBound.top;
-
- //Defensive code. Sometimes, svgBoundTop can be a really negative
- // number, like -134254. That's a bug.
- // If such a number is found, use zero instead. FireFox bug only
- if (svgBoundTop < 0) {
- var containerBound = chartContainer.getBoundingClientRect();
- svgBoundTop = (Math.abs(svgBoundTop) > containerBound.height) ? 0 : svgBoundTop;
- }
- svgOffset.top = Math.abs(svgBoundTop - chartBound.top);
- svgOffset.left = Math.abs(svgBound.left - chartBound.left);
- }
- //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
- //You need to also add any offset between the <svg> element and its containing <div>
- //Finally, add any offset of the containing <div> on the whole page.
- left += chartContainer.offsetLeft + svgOffset.left - 2*chartContainer.scrollLeft;
- top += chartContainer.offsetTop + svgOffset.top - 2*chartContainer.scrollTop;
- }
-
- if (snapDistance && snapDistance > 0) {
- top = Math.floor(top/snapDistance) * snapDistance;
- }
-
- nv.tooltip.calcTooltipPosition([left,top], gravity, distance, container);
- return nvtooltip;
- };
-
- nvtooltip.nvPointerEventsClass = nvPointerEventsClass;
-
- nvtooltip.content = function(_) {
- if (!arguments.length) return content;
- content = _;
- return nvtooltip;
- };
-
- //Returns tooltipElem...not able to set it.
- nvtooltip.tooltipElem = function() {
- return tooltipElem;
- };
-
- nvtooltip.contentGenerator = function(_) {
- if (!arguments.length) return contentGenerator;
- if (typeof _ === 'function') {
- contentGenerator = _;
- }
- return nvtooltip;
- };
-
- nvtooltip.data = function(_) {
- if (!arguments.length) return data;
- data = _;
- return nvtooltip;
- };
-
- nvtooltip.gravity = function(_) {
- if (!arguments.length) return gravity;
- gravity = _;
- return nvtooltip;
- };
-
- nvtooltip.distance = function(_) {
- if (!arguments.length) return distance;
- distance = _;
- return nvtooltip;
- };
-
- nvtooltip.snapDistance = function(_) {
- if (!arguments.length) return snapDistance;
- snapDistance = _;
- return nvtooltip;
- };
-
- nvtooltip.classes = function(_) {
- if (!arguments.length) return classes;
- classes = _;
- return nvtooltip;
- };
-
- nvtooltip.chartContainer = function(_) {
- if (!arguments.length) return chartContainer;
- chartContainer = _;
- return nvtooltip;
- };
-
- nvtooltip.position = function(_) {
- if (!arguments.length) return position;
- position.left = (typeof _.left !== 'undefined') ? _.left : position.left;
- position.top = (typeof _.top !== 'undefined') ? _.top : position.top;
- return nvtooltip;
- };
-
- nvtooltip.fixedTop = function(_) {
- if (!arguments.length) return fixedTop;
- fixedTop = _;
- return nvtooltip;
- };
-
- nvtooltip.enabled = function(_) {
- if (!arguments.length) return enabled;
- enabled = _;
- return nvtooltip;
- };
-
- nvtooltip.valueFormatter = function(_) {
- if (!arguments.length) return valueFormatter;
- if (typeof _ === 'function') {
- valueFormatter = _;
- }
- return nvtooltip;
- };
-
- nvtooltip.headerFormatter = function(_) {
- if (!arguments.length) return headerFormatter;
- if (typeof _ === 'function') {
- headerFormatter = _;
- }
- return nvtooltip;
- };
-
- //id() is a read-only function. You can't use it to set the id.
- nvtooltip.id = function() {
- return id;
- };
-
-
- return nvtooltip;
- };
-
-
- //Original tooltip.show function. Kept for backward compatibility.
- // pos = [left,top]
- nv.tooltip.show = function(pos, content, gravity, dist, parentContainer, classes) {
-
- //Create new tooltip div if it doesn't exist on DOM.
- var container = document.createElement('div');
- container.className = 'nvtooltip ' + (classes ? classes : 'xy-tooltip');
-
- var body = parentContainer;
- if ( !parentContainer || parentContainer.tagName.match(/g|svg/i)) {
- //If the parent element is an SVG element, place tooltip in the <body> element.
- body = document.getElementsByTagName('body')[0];
- }
-
- container.style.left = 0;
- container.style.top = 0;
- container.style.opacity = 0;
- container.innerHTML = content;
- body.appendChild(container);
-
- //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
- if (parentContainer) {
- pos[0] = pos[0] - parentContainer.scrollLeft;
- pos[1] = pos[1] - parentContainer.scrollTop;
- }
- nv.tooltip.calcTooltipPosition(pos, gravity, dist, container);
- };
-
- //Looks up the ancestry of a DOM element, and returns the first NON-svg node.
- nv.tooltip.findFirstNonSVGParent = function(Elem) {
- while(Elem.tagName.match(/^g|svg$/i) !== null) {
- Elem = Elem.parentNode;
- }
- return Elem;
- };
-
- //Finds the total offsetTop of a given DOM element.
- //Looks up the entire ancestry of an element, up to the first relatively positioned element.
- nv.tooltip.findTotalOffsetTop = function ( Elem, initialTop ) {
- var offsetTop = initialTop;
-
- do {
- if( !isNaN( Elem.offsetTop ) ) {
- offsetTop += (Elem.offsetTop);
- }
- } while( Elem = Elem.offsetParent );
- return offsetTop;
- };
-
- //Finds the total offsetLeft of a given DOM element.
- //Looks up the entire ancestry of an element, up to the first relatively positioned element.
- nv.tooltip.findTotalOffsetLeft = function ( Elem, initialLeft) {
- var offsetLeft = initialLeft;
-
- do {
- if( !isNaN( Elem.offsetLeft ) ) {
- offsetLeft += (Elem.offsetLeft);
- }
- } while( Elem = Elem.offsetParent );
- return offsetLeft;
- };
-
- //Global utility function to render a tooltip on the DOM.
- //pos = [left,top] coordinates of where to place the tooltip, relative to the SVG chart container.
- //gravity = how to orient the tooltip
- //dist = how far away from the mouse to place tooltip
- //container = tooltip DIV
- nv.tooltip.calcTooltipPosition = function(pos, gravity, dist, container) {
-
- var height = parseInt(container.offsetHeight),
- width = parseInt(container.offsetWidth),
- windowWidth = nv.utils.windowSize().width,
- windowHeight = nv.utils.windowSize().height,
- scrollTop = window.pageYOffset,
- scrollLeft = window.pageXOffset,
- left, top;
-
- windowHeight = window.innerWidth >= document.body.scrollWidth ? windowHeight : windowHeight - 16;
- windowWidth = window.innerHeight >= document.body.scrollHeight ? windowWidth : windowWidth - 16;
-
- gravity = gravity || 's';
- dist = dist || 20;
-
- var tooltipTop = function ( Elem ) {
- return nv.tooltip.findTotalOffsetTop(Elem, top);
- };
-
- var tooltipLeft = function ( Elem ) {
- return nv.tooltip.findTotalOffsetLeft(Elem,left);
- };
-
- switch (gravity) {
- case 'e':
- left = pos[0] - width - dist;
- top = pos[1] - (height / 2);
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft < scrollLeft) left = pos[0] + dist > scrollLeft ? pos[0] + dist : scrollLeft - tLeft + left;
- if (tTop < scrollTop) top = scrollTop - tTop + top;
- if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
- break;
- case 'w':
- left = pos[0] + dist;
- top = pos[1] - (height / 2);
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft + width > windowWidth) left = pos[0] - width - dist;
- if (tTop < scrollTop) top = scrollTop + 5;
- if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
- break;
- case 'n':
- left = pos[0] - (width / 2) - 5;
- top = pos[1] + dist;
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft < scrollLeft) left = scrollLeft + 5;
- if (tLeft + width > windowWidth) left = left - width/2 + 5;
- if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
- break;
- case 's':
- left = pos[0] - (width / 2);
- top = pos[1] - height - dist;
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- if (tLeft < scrollLeft) left = scrollLeft + 5;
- if (tLeft + width > windowWidth) left = left - width/2 + 5;
- if (scrollTop > tTop) top = scrollTop;
- break;
- case 'none':
- left = pos[0];
- top = pos[1] - dist;
- var tLeft = tooltipLeft(container);
- var tTop = tooltipTop(container);
- break;
- }
-
-
- container.style.left = left+'px';
- container.style.top = top+'px';
- container.style.opacity = 1;
- container.style.position = 'absolute';
-
- return container;
- };
-
- //Global utility function to remove tooltips from the DOM.
- nv.tooltip.cleanup = function() {
-
- // Find the tooltips, mark them for removal by this class (so others cleanups won't find it)
- var tooltips = document.getElementsByClassName('nvtooltip');
- var purging = [];
- while(tooltips.length) {
- purging.push(tooltips[0]);
- tooltips[0].style.transitionDelay = '0 !important';
- tooltips[0].style.opacity = 0;
- tooltips[0].className = 'nvtooltip-pending-removal';
- }
-
- setTimeout(function() {
-
- while (purging.length) {
- var removeMe = purging.pop();
- removeMe.parentNode.removeChild(removeMe);
- }
- }, 500);
- };
-
-})();
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js
deleted file mode 100755
index 7b99e1da..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js
+++ /dev/null
@@ -1,152 +0,0 @@
-
-nv.utils.windowSize = function() {
- // Sane defaults
- var size = {width: 640, height: 480};
-
- // Earlier IE uses Doc.body
- if (document.body && document.body.offsetWidth) {
- size.width = document.body.offsetWidth;
- size.height = document.body.offsetHeight;
- }
-
- // IE can use depending on mode it is in
- if (document.compatMode=='CSS1Compat' &&
- document.documentElement &&
- document.documentElement.offsetWidth ) {
- size.width = document.documentElement.offsetWidth;
- size.height = document.documentElement.offsetHeight;
- }
-
- // Most recent browsers use
- if (window.innerWidth && window.innerHeight) {
- size.width = window.innerWidth;
- size.height = window.innerHeight;
- }
- return (size);
-};
-
-
-
-// Easy way to bind multiple functions to window.onresize
-// TODO: give a way to remove a function after its bound, other than removing all of them
-nv.utils.windowResize = function(fun){
- if (fun === undefined) return;
- var oldresize = window.onresize;
-
- window.onresize = function(e) {
- if (typeof oldresize == 'function') oldresize(e);
- fun(e);
- }
-}
-
-// Backwards compatible way to implement more d3-like coloring of graphs.
-// If passed an array, wrap it in a function which implements the old default
-// behavior
-nv.utils.getColor = function(color) {
- if (!arguments.length) return nv.utils.defaultColor(); //if you pass in nothing, get default colors back
-
- if( Object.prototype.toString.call( color ) === '[object Array]' )
- return function(d, i) { return d.color || color[i % color.length]; };
- else
- return color;
- //can't really help it if someone passes rubbish as color
-}
-
-// Default color chooser uses the index of an object as before.
-nv.utils.defaultColor = function() {
- var colors = d3.scale.category20().range();
- return function(d, i) { return d.color || colors[i % colors.length] };
-}
-
-
-// Returns a color function that takes the result of 'getKey' for each series and
-// looks for a corresponding color from the dictionary,
-nv.utils.customTheme = function(dictionary, getKey, defaultColors) {
- getKey = getKey || function(series) { return series.key }; // use default series.key if getKey is undefined
- defaultColors = defaultColors || d3.scale.category20().range(); //default color function
-
- var defIndex = defaultColors.length; //current default color (going in reverse)
-
- return function(series, index) {
- var key = getKey(series);
-
- if (!defIndex) defIndex = defaultColors.length; //used all the default colors, start over
-
- if (typeof dictionary[key] !== "undefined")
- return (typeof dictionary[key] === "function") ? dictionary[key]() : dictionary[key];
- else
- return defaultColors[--defIndex]; // no match in dictionary, use default color
- }
-}
-
-
-
-// From the PJAX example on d3js.org, while this is not really directly needed
-// it's a very cool method for doing pjax, I may expand upon it a little bit,
-// open to suggestions on anything that may be useful
-nv.utils.pjax = function(links, content) {
- d3.selectAll(links).on("click", function() {
- history.pushState(this.href, this.textContent, this.href);
- load(this.href);
- d3.event.preventDefault();
- });
-
- function load(href) {
- d3.html(href, function(fragment) {
- var target = d3.select(content).node();
- target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
- nv.utils.pjax(links, content);
- });
- }
-
- d3.select(window).on("popstate", function() {
- if (d3.event.state) load(d3.event.state);
- });
-}
-
-/* For situations where we want to approximate the width in pixels for an SVG:text element.
-Most common instance is when the element is in a display:none; container.
-Forumla is : text.length * font-size * constant_factor
-*/
-nv.utils.calcApproxTextWidth = function (svgTextElem) {
- if (svgTextElem instanceof d3.selection) {
- var fontSize = parseInt(svgTextElem.style("font-size").replace("px",""));
- var textLength = svgTextElem.text().length;
-
- return textLength * fontSize * 0.5;
- }
- return 0;
-};
-
-/* Numbers that are undefined, null or NaN, convert them to zeros.
-*/
-nv.utils.NaNtoZero = function(n) {
- if (typeof n !== 'number'
- || isNaN(n)
- || n === null
- || n === Infinity) return 0;
-
- return n;
-};
-
-/*
-Snippet of code you can insert into each nv.models.* to give you the ability to
-do things like:
-chart.options({
- showXAxis: true,
- tooltips: true
-});
-
-To enable in the chart:
-chart.options = nv.utils.optionsFunc.bind(chart);
-*/
-nv.utils.optionsFunc = function(args) {
- if (args) {
- d3.map(args).forEach((function(key,value) {
- if (typeof this[key] === "function") {
- this[key](value);
- }
- }).bind(this));
- }
- return this;
-}; \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html
deleted file mode 100755
index 464453d3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-
-<body>
-<div style='position:relative;' class='with-transitions'>
- <h3>Scatter chart tests</h3>
- <div class='navigation'>
- Tests:
- <a href="lineChartTest.html">Line Chart</a>
- <a href="stackedAreaChartTest.html">Stacked Area</a>
- <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
- <a href="ScatterChartTest.html">Scatter</a>
- <a href="interactiveBisectTest.html">nv.interactiveBisect unit tests</a>
- </div>
- <div id="test1" class="chart third">
- Normal - four series', all random (40 points)
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test2" class="chart third">
- Normal - one series', all random (5 points), zero left margin
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test3" class="chart third">
- Zero right margin, 200 points
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test4" class="chart third">
- Bigger margins
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test5" class="chart third">
- Zero data points
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test6" class="chart third">
- One point.
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test7" class="chart third">
- Two points
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test8" class="chart third">
- Three series', one point each
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test9" class="chart third">
- Three series', first one has zero points
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test10" class="chart third">
- Lots of series
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test11" class="chart third">
- Scatter plus line: y=2x + 0
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test12" class="chart third">
- Scatter plus line: y=2x + 10;
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test13" class="chart third">
- Scatter plus line: y=-0.5x + 1.0;
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test14" class="chart third">
- Scatter chart: duplicate y values
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test15" class="chart third">
- Scatter chart: duplicate x values
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div id="test16" class="chart third">
- Scatter chart: extremely small data points (1e-10)
- <button>Select chart</button>
- <svg></svg>
- </div>
-
-
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<!--<script src="../lib/fisheye.js"></script>-->
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterChart.js"></script>
-<script src="../src/models/scatterPlusLineChart.js"></script>
-<script src="testScript.js"></script>
-<script>
-
-defaultChartTest("test1", randomData(4,40));
-defaultChartTest("test2", randomData(1,5), {left:0});
-defaultChartTest("test3", randomData(2,200), {right: 0});
-defaultChartTest("test4", randomData(2, 8), {top:40, right: 90, bottom: 150, left: 150});
-defaultChartTest("test5", randomData(0,0));
-defaultChartTest("test6", randomData(1,1));
-defaultChartTest("test7", randomData(1,2));
-defaultChartTest("test8", randomData(3,1));
-defaultChartTest("test9", [
- {key: "Group 0", values: []},
- {key: "Group 1", values: [{x:1, y:1}]}
-]);
-
-defaultChartTest("test10", randomData(30,2));
-
-scatterPlusLineTest("test11", randomDataSloped(2,0));
-scatterPlusLineTest("test12", randomDataSloped(2,10));
-scatterPlusLineTest("test13", randomDataSloped(-0.5,1));
-defaultChartTest("test14", [
-{key: "Duplicate Y",
- values: [
- {x: 0, y: 10}, {x:1, y:10},{x:2, y:10},{x:3, y:10}
- ]
- }
-]);
-
-defaultChartTest("test15",[
- {key: "Duplicate X",
- area: true,
- values: [
- {x: 4, y: 10},
- {x: 4, y: 11},
- {x: 4, y: 12},
- {x: 4, y: 13}
- ]
- }
-]);
-
-defaultChartTest("test16",tinyPoints());
-
-function defaultChartTest(container, data, margin) {
- nv.addGraph(function() {
- var chart;
- chart = nv.models.scatterChart()
- .showDistX(true).showDistY(true)
- ;
- chart.xAxis.tickFormat(d3.format('.02f'));
- chart.yAxis.tickFormat(d3.format('.02f'));
- if (margin) {
- chart.margin(margin);
- }
- chart.tooltipContent(function(key) {
- return "<h3>" + key + "</h3>";
- });
- d3.select('#' + container + ' svg').datum(data).transition().duration(500).call(chart);
- nv.utils.windowResize(chart.update);
- return chart;
- });
-}
-
-function scatterPlusLineTest(container, data) {
- nv.addGraph(function() {
- var chart;
- chart = nv.models.scatterPlusLineChart()
- .showDistX(true).showDistY(true);
- chart.xAxis.tickFormat(d3.format('.02f'));
- chart.yAxis.tickFormat(d3.format('.02f'));
- chart.tooltipContent(function(key) {
- return "<h3>" + key + "</h3>";
- });
- d3.select('#' + container + ' svg').datum(data).transition().duration(500).call(chart);
- nv.utils.windowResize(chart.update);
- return chart;
- });
-}
-
-
-function randomData(groups, points) { //# groups,# points per group
- var data = [],
- shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
- random = d3.random.normal();
-
- for (i = 0; i < groups; i++) {
- data.push({
- key: 'Group ' + i,
- values: []
- });
-
- for (j = 0; j < points; j++) {
- data[i].values.push({
- x: random(),
- y: random(),
- size: Math.random(),
- shape: shapes[j % 6]
- });
- }
- }
-
- return data;
-}
-
-
-function randomDataSloped(slope,intercept) { //# groups,# points per group
- var data = [],
- shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
- random = d3.random.normal();
-
- var groups = 2, points = 10;
- for (i = 0; i < groups; i++) {
- data.push({
- key: 'Group ' + i,
- values: [],
- slope: slope,
- intercept: intercept
- });
-
- for (j = 0; j < points; j++) {
- data[i].values.push({
- x: random(),
- y: random(),
- size: Math.random(),
- shape: shapes[j % 6]
- });
- }
- }
-
- return data;
-}
-
-
-function tinyPoints() {
- var rval = {key: "Tiny points", values: []};
- for(var i =1; i < 20; i++) {
- rval.values.push({
- x: Math.random() * 1e-10,
- y: Math.random() * 1e-10
- });
- }
- return [rval];
-}
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html
deleted file mode 100755
index 9cbf5aa9..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-
-<body>
- <h3>Unit tests for nv.interactiveBisect - this function is important for rendering tooltips and the guideline on charts.</h3>
- <div class='navigation'>
- Tests:
- <a href="lineChartTest.html">Line Chart</a>
- <a href="stackedAreaChartTest.html">Stacked Area</a>
- <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-
-<script>
-function runTest(description, dataArray, searchVal, expectedResult, xAccessor) {
- var result = nv.interactiveBisect(dataArray, searchVal, xAccessor);
- var content = "";
- if (result === expectedResult) {
- content = "PASSED: " + description;
- }
- else {
- content = "FAILED: " + description;
- }
-
- var node = document.createElement("div");
- node.innerHTML = content;
- document.getElementsByTagName("body")[0].appendChild(node);
-}
-
-var x = function(d) {return d;};
-
-runTest("Basic test",
- [0,1,2,3,4,5],
- 3,
- 3,
- x
- );
-
-runTest("Basic test - zero bound",
- [0,1,2,3,4,5],
- 0,
- 0,
- x
- );
-
-runTest("Basic test - length bound",
- [0,1,2,3,4,5],
- 5,
- 5,
- x
- );
-
-runTest("Basic test - negative number",
- [0,1,2,3,4,5],
- -4,
- 0,
- x
- );
-
-runTest("Basic test - past the end",
- [0,1,2,3,4,5],
- 10,
- 5,
- x
- );
-
-runTest("Floating point number",
- [0,1,2,3,4,5],
- 0.34,
- 0,
- x
- );
-
-runTest("Floating point number part 2",
- [0,1,2,3,4,5],
- 1.50001,
- 2,
- x
- );
-
-runTest("Fibonacci - existing item search",
- [0,1,1,2,3,5,8,13,21,34],
- 8,
- 6,
- x
- );
-
-runTest("Fibonacci - inbetween item (left)",
- [0,1,1,2,3,5,8,13,21,34],
- 15,
- 7,
- x
- );
-
-runTest("Fibonacci - inbetween item (right)",
- [0,1,1,2,3,5,8,13,21,34],
- 20,
- 8,
- x
- );
-
-x = function(d,i) { return i};
-
-runTest("xAccessor is index mode - existing item",
- [0,1,1,2,3,5,8,13,21,34],
- 7,
- 7,
- x
- );
-
-runTest("xAccessor is index mode - inbetween item",
- [0,1,1,2,3,5,8,13,21,34],
- 7.3,
- 7,
- x
- );
-
-runTest("xAccessor is index mode - inbetween item part 2",
- [0,1,1,2,3,5,8,13,21,34],
- 7.500001,
- 8,
- x
- );
-
-runTest("Empty array",
- [],
- 4,
- 0,
- x
- );
-
-runTest("Single element array",
- [0],
- 0,
- 0,
- x
- );
-
-runTest("Single element array - negative bound",
- [0],
- -10,
- 0,
- x
- );
-
-runTest("Single element array - past the end",
- [0],
- 1,
- 0,
- x
- );
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html
deleted file mode 100755
index 88de3764..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html
+++ /dev/null
@@ -1,475 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<style>
-#chart13, #chart14 {
- overflow: scroll;
- width: 500px;
- height: 300px;
-}
-
-#chart13 svg, #chart14 svg {
- width: 700px;
- height: 400px;
-}
-</style>
-<body>
- <h3>Line chart test cases - feel free to add more tests</h3>
- <div style='position:relative;'>
- <div class='navigation'>
- Tests:
- <a href="lineChartTest.html">Line Chart</a>
- <a href="stackedAreaChartTest.html">Stacked Area</a>
- <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
- <a href="ScatterChartTest.html">Scatter</a>
- <a href="pieChartTest.html">Pie chart</a>
- <a href="realTimeChartTest.html">Real time test</a>
- <a href="polylinearTest.html">Polylinear test</a>
- <a href="interactiveBisectTest.html">nv.interactiveBisect unit tests</a>
- </div>
- <div class='chart full' id='chart1'>
- Example of chart with many series', and new interactive guideline plus tooltip. A chunk of data was purposely removed
- to show how the chart handles it.
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart half with-transitions' id='chart2'>
- Chart with old tooltip style (with-transitions).
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart half' id='chart3'>
- Chart with three data points.
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart4'>
- Chart where two series have different number of points.
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart5'>
- Chart with one point.
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart6'>
- Chart with 1000 points.
- <button>Select chart</button>
- <svg></svg>
- </div>
-
- <div class='chart third' id='chart7'>
- Chart with no data.
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart8'>
- All points random. No order.
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart9'>
- Points do not increase linearly.
- <button>Select chart</button>
- <svg></svg>
- </div>
-
- <div class='chart third' id='chart10'>
- Chart with 15 series'
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart11'>
- Data points go backwards
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart12'>
- Duplicate X coordinate points.
- <button>Select chart</button>
- <svg></svg>
- </div>
-
- <div class='chart third' id='chart16'>
- Duplicate Y coordinate points.
- <button>Select chart</button>
- <svg></svg>
- </div>
-
- <div class='chart third' id='chart13'>
- Chart in a overflow div with scrolls (new tooltips)
- <button>Select chart</button>
- <svg></svg>
- </div>
-
- <div class='chart third' id='chart14'>
- Chart in a overflow div with scrolls (old tooltips)
- <button>Select chart</button>
- <svg></svg>
- </div>
-
- <div style='clear:both;'></div>
- <div class='chart third' id='chart15'>
- What if there are null, Infinity and NaN values in points?
- <button>Select chart</button>
- <svg></svg>
- </div>
- <div class='chart third' id='chart17'>
- Chart with very small, 1e-10, points (old tooltips)
- <button>Select chart</button>
- <svg></svg>
- </div>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script src="testScript.js"></script>
-<script>
-
-d3.select("body").on("keydown",function() {
- if (d3.event.ctrlKey && d3.event.which === 75) {
- alert("keydowned");
- }
-});
-//------------ CHART 1
-defaultChartConfig("chart1", dummyStocks(),true, true, {forceY:false});
-
-//-------------- CHART 2 --- Chart without the interactive guideline.
-nv.addGraph(function() {
- var chart;
- chart = nv.models.lineChart().useInteractiveGuideline(false);
-
- chart
- .x(function(d,i) { return d.x });
-
-
- chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
- .tickFormat(d3.format(',.1f'));
-
- chart.yAxis
- .axisLabel('Voltage (v)')
- .tickFormat(d3.format(',.4f'));
-
- chart.showXAxis(true).showYAxis(true).rightAlignYAxis(true).margin({right: 90});
-
- d3.select('#chart2 svg')
- //.datum([]) //for testing noData
- .datum(dummyStocks(50))
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-defaultChartConfig("chart3", smallDataSet(3));
-defaultChartConfig("chart4", badDataSet());
-defaultChartConfig("chart5", smallDataSet(1));
-defaultChartConfig("chart6", normalDist());
-
-defaultChartConfig("chart7", smallDataSet(0));
-defaultChartConfig("chart8", allRandom(),false);
-defaultChartConfig("chart9", fibonacci());
-
-defaultChartConfig("chart10", lotsofSeries());
-defaultChartConfig("chart11", backwards(),false);
-defaultChartConfig("chart12", duplicateX(),false);
-defaultChartConfig("chart13",hyperbole(), true, false, {width: 700, height: 400});
-defaultChartConfig("chart14",hyperbole(), false, false, {width: 700, height: 400});
-defaultChartConfig("chart15", withNaNs());
-defaultChartConfig("chart16", duplicateY(), false);
-defaultChartConfig("chart17", tinyPoints(), false);
-
-function defaultChartConfig(containerid, data, guideline, useDates, auxOptions) {
- if (auxOptions === undefined) auxOptions = {};
- if (guideline === undefined) guideline = true;
- nv.addGraph(function() {
- var chart;
- chart = nv.models.lineChart().useInteractiveGuideline(guideline);
-
- chart
- .x(function(d,i) {
- return d.x;
- });
-
- if (auxOptions.width)
- chart.width(auxOptions.width);
-
- if (auxOptions.height)
- chart.height(auxOptions.height);
-
- if (auxOptions.forceY)
- chart.forceY([0]);
-
- var formatter;
- if (useDates !== undefined) {
- formatter = function(d,i) {
- var now = (new Date()).getTime() - 86400 * 1000 * 365;
- now = new Date(now + d * 86400 * 1000);
- return d3.time.format('%b %d %Y')(now );
- }
- }
- else {
- formatter = d3.format(",.1f");
- }
- chart.margin({right: 40});
- chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
- .tickFormat(
- formatter
- );
-
- chart.yAxis
- .axisLabel('Voltage (v)')
- .tickFormat(d3.format(',.2f'));
-
-
- d3.select('#' + containerid + ' svg')
- .datum(data)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
- });
-}
-
-function sinAndCos() {
- var sin = [],
- cos = [],
- rand = [],
- rand2 = []
- ;
-
- var now = (new Date()).getTime();
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: i % 10 == 5 ? null : Math.sin(i/10) }); //the nulls are to show how defined works
- cos.push({x: i, y: .5 * Math.cos(i/10)});
- rand.push({x:i, y: Math.random() / 10});
- rand2.push({x: i, y: Math.cos(i/10) + Math.random() / 10 })
- }
-
- return [
- {
- area: true,
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- },
- {
- values: rand,
- key: "Random Points",
- color: "#2222ff"
- }
- ,
- {
- values: rand2,
- key: "Random Cosine",
- color: "#667711"
- }
- ];
-}
-
-function hyperbole() {
- var series1 = [], series2 = [], series3 = [];
- for(var i = 1; i < 100; i++) {
- series1.push({x: i, y: 1 / i});
- series2.push({x: i, y: 5 / i});
- series3.push({x: i, y: -8 / i});
- }
-
- return [
- {values: series1, key: "Series 1"},
- {values: series2, key: "Series 2"},
- {values: series3, key: "Series 3"}
- ];
-}
-
-function smallDataSet(n) {
- var series = [];
- for(var i = 0; i < n; i++) {
- series.push({x: i, y: i * 0.3 + 2})
- }
- return [
- {values: series, key: "Line 1"}
- ];
-}
-
-function badDataSet() {
- var series1 = [], series2 = [];
- for(var i =0; i < 30; i++) {
- series1.push({x:i, y: i*0.3 + 12});
- }
- for(i = 0; i < 30; i += 5) {
- series2.push({x:i, y: i*0.7 + 8});
- }
- return [
- {values: series1, key:"Series 1"},
- {values: series2, key:"Series 2"}
- ];
-}
-
-function normalDist() {
- var series1 = [], series2 = [];
- for(var i = -500; i < 500; i += 1) {
- var x = i / 100;
- var y = 0.3989 * Math.pow(2.71, -0.5*x*x);
- series1.push({x:i, y:y});
- series2.push({x:i, y:y*2});
- }
- return [
- {values: series1, key:"Normal 1", area:true},
- {values: series2, key:"Normal 2"}];
-}
-
-
-function allRandom() {
- var series = [];
- for(var i = 0; i < 20; i++) {
- series.push({x: Math.floor(Math.random()*20), y: Math.floor(Math.random()*20) });
- }
- return [{values: series,area:true, key: "Total Chaos"}];
-}
-
-function fibonacci() {
- var series = [
- {x:1, y:1},
- {x:2, y:2.5},
- {x:3, y:4},
- {x:5, y:6.7},
- {x:8, y:10.1},
- {x:13, y:20.1},
- {x:21, y:35.1},
- {x:34, y:60.0},
- {x:55, y:70.9},
- {x:89, y:100.3}
- ];
-
- return [{values: series,area:true,color: "#22fb88", key: "Fibonacci"}];
-}
-
-function lotsofSeries() {
- var rval = [];
- for(var n = 0; n < 15; n++) {
- var values = [];
- var slope = Math.random() * 5;
- for(var i =0; i < 30; i++) {
- values.push(
- {x: i,
- y: i * slope + Math.random()*5}
- );
- }
- var isArea = (Math.random() > 0.5);
- rval.push({key: "Series " + n, area: isArea, values: values});
- }
- return rval;
-}
-
-function backwards() {
- var series = [];
- for(var i = 30; i >= 1; i--) {
- series.push({x: i, y: Math.sqrt(i) });
- }
- return [{values: series, key: "Backwards series", area:true}];
-}
-
-function duplicateX() {
- return [
- {key: "Duplicate X",
- area: true,
- values: [
- {x: 4, y: 10},
- {x: 4, y: 11},
- {x: 4, y: 12},
- {x: 4, y: 13}
- ]
- }
- ];
-}
-
-function duplicateY() {
- return [
- {key: "Duplicate Y",
- values: [
- {x: 0, y: 10}, {x:1, y:10},{x:2, y:10},{x:3, y:10}
- ]
- }
- ];
-}
-
-function withNaNs() {
- return [
- {key: "NaN Points",
- values: [
- {x: 1, y: NaN},
- {x: 2, y: undefined},
- {x: 3, y: false},
- {x: 4, y: null},
- {x: 5, y: "Hello"},
- {x: NaN, y: NaN},
- {x: null, y: null},
- {x: undefined, y: undefined},
- {x: "Hello", y: "World"},
- {x: Infinity, y: Infinity}
- ]
- }
- ]
-}
-
-function tinyPoints() {
- var rval = {key: "Tiny points", values: []};
- for(var i =1; i < 20; i++) {
- rval.values.push({
- x: i,
- y: Math.random() * 1e-10
- });
- }
- return [rval];
-}
-
-function dummyStocks(numPoints) {
- numPoints = numPoints || 200;
- function volatileChart(key,startPrice, volatility, isArea) {
- var rval = {key: key, values: []};
- if (isArea) rval.area = true;
- for(var i = 1; i < numPoints; i++) {
-
- rval.values.push({x: i, y: (i > 110 && i < 130) ? null : startPrice});
- var rnd = Math.random();
- var changePct = 2 * volatility * rnd;
- if ( changePct > volatility) {
- changePct -= (2*volatility);
- }
-
- startPrice = startPrice + startPrice * changePct;
-
- }
- return rval;
- }
-
- var stocks = [];
- stocks.push(volatileChart("APPL",5.00, 0.02));
- stocks.push(volatileChart("GOOG", 6.01,0.024));
- stocks.push(volatileChart("MSFT", 2.01, 0.012));
- stocks.push(volatileChart("IBM US", 2.5, 0.08, true));
- return stocks;
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html
deleted file mode 100755
index 6242ff84..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html
+++ /dev/null
@@ -1,148 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<body class='with-3d-shadow with-transitions'>
- <h3>Multibar chart test cases - feel free to add more tests</h3>
- <div class='navigation'>
- <a href="../examples/multiBar.html">Multibar Stream example</a>
- </div>
- <div class='chart half' id="chart1">
- Normal chart, with transition delay, and bar color set.
- <svg></svg>
- </div>
- <div class='chart half' id="chart2">
- Normal chart, no transitionDuration or delay, no bar color set.
- <svg></svg>
- </div>
- <div class='chart half' id="chart3">
- Chart with single series, no group spacing.
- <svg></svg>
- </div>
- <div class='chart half' id="chart4">
- Chart with 18 series, 7 data points per series.
- <svg></svg>
- </div>
- <div class='chart third' id="chart5">
- Chart with 1 data point
- <svg></svg>
- </div>
- <div class='chart third' id="chart6">
- Chart with 2 data points
- <svg></svg>
- </div>
- <div class='chart third' id="chart7">
- Chart with 0 data points
- <svg></svg>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiBarChart.js"></script>
-<script>
-
-
-var negative_test_data = new d3.range(0,3).map(function(d,i) { return {
- key: 'Stream ' + i,
- values: new d3.range(0,11).map( function(f,j) {
- return {
- y: 10 + Math.random()*100 * (Math.floor(Math.random()*100)%2 ? 1 : -1),
- x: j
- }
- })
- };
-});
-
-function dataFactory(seriesNum, perSeries) {
- return new d3.range(0,seriesNum).map(function(d,i) { return {
- key: 'Stream ' + i,
- values: new d3.range(0,perSeries).map( function(f,j) {
- return {
- y: 10 + Math.random()*100,
- x: j
- }
- })
- };
- });
-
-}
-
-
-
-defaultChartConfig("chart1", negative_test_data, {
- barColor: d3.scale.category20().range(),
- delay: 1200,
- groupSpacing: 0.1,
- reduceXTicks: false,
- staggerLabels: true
-});
-
-defaultChartConfig("chart2", dataFactory(3,11), {
- delay: 0,
- transitionDuration:0,
- groupSpacing: 0.2
-});
-
-defaultChartConfig("chart3",dataFactory(1,15),{
- groupSpacing: 0,
- delay:0
-});
-
-defaultChartConfig("chart4",dataFactory(18,7),{
- delay:800
-});
-
-defaultChartConfig("chart5",dataFactory(1,1),{
- delay:0
-});
-
-defaultChartConfig("chart6",dataFactory(1,2),{
- delay:0
-});
-
-defaultChartConfig("chart7",dataFactory(0,0),{
- delay:0
-});
-
-function defaultChartConfig(containerId, data, chartOptions) {
- nv.addGraph(function() {
- var chart;
- chart = nv.models.multiBarChart()
- .margin({bottom: 100})
- .transitionDuration(300)
- ;
-
- chart.options(chartOptions);
- chart.multibar
- .hideable(true);
-
- chart.xAxis
- .axisLabel("Current Index")
- .showMaxMin(true)
- .tickFormat(d3.format(',0f'));
-
- chart.yAxis
- .tickFormat(d3.format(',.1f'));
-
- d3.select('#' + containerId + ' svg')
- .datum(data)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
- return chart;
- });
-}
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html
deleted file mode 100755
index 8fef1af7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<style>
-
-body {
- overflow-y:scroll;
- font-family: Arial;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-</style>
-<body class='with-transitions'>
-<div class='navigation'>
- Tests:
- <a href="lineChartTest.html">Line Chart</a>
- <a href="stackedAreaChartTest.html">Stacked Area</a>
- <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
- <a href="ScatterChartTest.html">Scatter</a>
- <a href="realTimeChartTest.html">Real time test</a>
- </div>
-<div class='chart third' id="test1">
- <h2>Standard Pie Chart</h2>
- <svg></svg>
-</div>
-
-<div class='chart third' id="test2">
- <h2>Donut pie chart</h2>
- <svg></svg>
-</div>
-
-<div class='chart third' id="test3">
- <h2>Pie chart with 30 series'</h2>
- <svg></svg>
-</div>
-
-<div class='chart third' id='test7'>
- <h2>Pie chart with percent label type</h2>
- <svg></svg>
-</div>
-
-<div class='chart third' id="test4">
- <h2>Empty array passed in</h2>
- <svg></svg>
-</div>
-
-<div class='chart third' id="test5">
- <h2>Series' have only zero values</h2>
- <svg></svg>
-</div>
-
-<div class='chart third' id="test6">
- <h2>NaN, null, undefined values passed in</h2>
- <svg></svg>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/pie.js"></script>
-<script src="../src/models/pieChart.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-var testdata = [
- {
- key: "One",
- y: 5
- },
- {
- key: "Two",
- y: 2
- },
- {
- key: "Three",
- y: 9
- },
- {
- key: "Four",
- y: 7
- },
- {
- key: "Five",
- y: 4
- },
- {
- key: "Six",
- y: 3
- },
- {
- key: "Seven",
- y: .5
- }
- ];
-
-function thirtySeries() {
- var data = [];
- for(var i =0; i < 30; i++) {
- data.push({
- key: "Series-" + i,
- y: Math.floor(Math.random() * 100)
- });
- }
- return data;
-}
-
-function defaultChart(containerId, data, labelType) {
- nv.addGraph(function() {
- var width = 500,
- height = 500;
-
- var chart = nv.models.pieChart()
- .x(function(d) { return d.key })
- .y(function(d) { return d.y })
- .color(d3.scale.category10().range())
- .width(width)
- .height(height)
- .labelType(labelType)
- ;
-
- d3.select("#" + containerId + " svg")
- .datum(data)
- .transition().duration(1200)
- .attr('width', width)
- .attr('height', height)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
- return chart;
- });
-}
-
-//Adds donut pie chart.
-nv.addGraph(function() {
-
- var width = 500,
- height = 500;
-
- var chart = nv.models.pieChart()
- .x(function(d) { return d.key })
- .color(d3.scale.category10().range())
- .width(width)
- .height(height)
- .donut(true);
-
- chart.pie
- .startAngle(function(d) { return d.startAngle/2 -Math.PI/2 })
- .endAngle(function(d) { return d.endAngle/2 -Math.PI/2 });
-
- d3.select("#test2 svg")
- .datum(testdata)
- .transition().duration(1200)
- .attr('width', width)
- .attr('height', height)
- .call(chart);
- nv.utils.windowResize(chart.update);
- return chart;
-});
-
-defaultChart("test1", testdata);
-defaultChart("test3", thirtySeries());
-defaultChart("test4",[]);
-defaultChart("test5",[{key: "Zero series", y: 0}, {key: "Zero series 2", y: 0}]);
-defaultChart("test6", [
- {key: "Undefined", y: undefined},
- {key: "Nan", y: NaN},
- {key: "null", y: null},
- {key: "zero", y: 0}
- ])
-
-defaultChart("test7",testdata, "percent");
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html
deleted file mode 100755
index eef88b34..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<style>
-
-</style>
-<body>
- <h3>Test cases for Domain and Range overrides - Example of a polylinear scale</h3>
- <div style='position:relative;'>
- <div class='navigation'>
- Tests:
- <a href="lineChartTest.html">Line Chart</a>
- <a href="stackedAreaChartTest.html">Stacked Area</a>
- <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
- <a href="ScatterChartTest.html">Scatter</a>
- <a href="pieChartTest.html">Pie chart</a>
- </div>
- <div class='chart full' id='chart1'>
- Line chart: yDomain = [0,2,200], yRange = [500,50,0]
- <svg></svg>
- </div>
- <div class='chart half with-transitions' id='chart2'>
- Historical bar chart: yDomain = [0,2,130], yRange = [500,50,0]
- <svg></svg>
- </div>
-
- <div class='half'>
- Notes:
- The chart.yRange() and chart.xRange() properties are an advanced feature. They are useful
- in situations where your data has wild extremes: ie, you have lots of smaller numbers, and lots of really big numbers.<br/><br/>
-
- Without a polylinear scale, those really big data points will overwhelm the small points.<br/><br/>
-
- Please look at the examples to understand how polylinear scales work. Comment/uncomment the lines that alter yDomain and yRange
- to see the effect it has on the charts.
- </div>
- </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/historicalBarChart.js"></script>
-<script>
-
-//------------ CHART 1
-lineChartConfig("chart1", sinAndCos(),true, false);
-barChartConfig(dataWithSpikes());
-
-
-function lineChartConfig(containerid, data, guideline, useDates, auxOptions) {
- if (auxOptions === undefined) auxOptions = {};
- if (guideline === undefined) guideline = true;
- nv.addGraph(function() {
- var chart;
- chart = nv.models.lineChart().useInteractiveGuideline(guideline);
-
- var fullChartHeight = 500 - chart.margin().top - chart.margin().bottom;
- chart
- .x(function(d,i) {
- return d.x;
- })
- .yDomain([0,2,200]) //Using a polylinear scale
- .yRange([fullChartHeight,50,0])
- ;
-
- if (auxOptions.width)
- chart.width(auxOptions.width);
-
- if (auxOptions.height)
- chart.height(auxOptions.height);
-
- var formatter;
- if (useDates) {
- formatter = function(d,i) {
- var now = (new Date()).getTime() - 86400 * 1000 * 365;
- now = new Date(now + d * 86400 * 1000);
- return d3.time.format('%b %d %Y')(now );
- }
- }
- else {
- formatter = d3.format(",.1f");
- }
-
- chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
- .tickFormat(
- formatter
- );
-
- chart.yAxis
- .axisLabel('Voltage (v)')
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#' + containerid + ' svg')
- .datum(data)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
- });
-}
-
-function barChartConfig(data) {
- nv.addGraph(function() {
- var chart = nv.models.historicalBarChart();
- var fullChartHeight = 500 - chart.margin().top - chart.margin().bottom;
- chart.color(["#ff7f0e"])
- .yDomain([0,2,130])
- .yRange([fullChartHeight,50,0])
- .transitionDuration(500)
- ;
-
- chart.xAxis
- .tickFormat(d3.format(',.1f'))
- .axisLabel("Time")
- ;
-
- chart.yAxis
- .axisLabel('Random Number')
- .tickFormat(d3.format(',.4f'));
- d3.select("#chart2 svg")
- .datum(data)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
- return chart;
- });
-}
-
-function sinAndCos() {
- var sin = [],
- cos = [],
- higherOrder = []
- ;
-
- var now = (new Date()).getTime();
- for (var i = 0; i < 100; i++) {
- sin.push({x: i, y: Math.abs(Math.sin(i/10)) }); //the nulls are to show how defined works
- cos.push({x: i, y: Math.abs(.5 * Math.cos(i/10)) });
-
- higherOrder.push({x: i, y: Math.cos(i) * 100 + 100});
- }
-
- return [
- {
- values: sin,
- key: "Sine Wave",
- color: "#ff7f0e"
- },
- {
- values: cos,
- key: "Cosine Wave",
- color: "#2ca02c"
- },
- {
- values: higherOrder,
- key: "Higher Order",
- color: "#fc34ff"
- }
- ];
-}
-
-function dataWithSpikes() {
- var rval = [];
- for(var i =0; i < 100; i++) {
-
- var spike = (Math.random() > 0.9);
- rval.push({
- x: i,
- y: (spike) ? Math.random() * 100 + 30 : Math.random()
- });
- }
- return [
- {key: "Series 1",
- color : "orange",
- values: rval}
- ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html
deleted file mode 100755
index d8a8029d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-
-<body>
- <div class='navigation'>
- Tests:
- <a href="lineChartTest.html">Line Chart</a>
- <a href="stackedAreaChartTest.html">Stacked Area</a>
- <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
- <a href="ScatterChartTest.html">Scatter</a>
- </div>
- <h3>Example showing real time chart updating</h3>
- The chart below is a historical bar chart, which is ideal for visualizing time series data.<br/>
- First, you need to update the data model for the chart. In the example, we append a random number
- every half a second. Then, you call <strong>chart.update()</strong>.
-
-<div id='chart' class='chart half with-transitions'>
- <svg></svg>
- <button id='start-stop-button'>Start/Stop Stream</button>
-</div>
-
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/historicalBarChart.js"></script>
-
-<script>
-var chart;
-var data = [{
- key: "Stream 1",
- color: "orange",
- values: [
- {x: 1, y: 1}
- ]
-}];
-nv.addGraph(function() {
-
- chart = nv.models.historicalBarChart();
-
- chart
- .x(function(d,i) { return d.x });
-
- chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
- .tickFormat(d3.format(',.1f'))
- .axisLabel("Time")
- ;
-
- chart.yAxis
- .axisLabel('Random Number')
- .tickFormat(d3.format(',.4f'));
-
- chart.showXAxis(true).showYAxis(true).rightAlignYAxis(true).margin({right: 90});
-
- d3.select('#chart svg')
- .datum(data)
- .transition().duration(500)
- .call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-var x = 2;
-var run = true;
-setInterval(function(){
- if (!run) return;
-
- var spike = (Math.random() > 0.95) ? 10: 1;
- data[0].values.push({
- x: x,
- y: Math.random() * spike
- });
-
- if (data[0].values.length > 70) {
- data[0].values.shift();
- }
- x++;
-
- chart.update();
-}, 500);
-
-d3.select("#start-stop-button").on("click",function() {
- run = !run;
-});
-
-</script>
-
-</body>
-</html> \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html
deleted file mode 100755
index 1bb0a9a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html
+++ /dev/null
@@ -1,322 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<body>
- <h3>Stacked area chart test cases - feel free to add more tests</h3>
- <div class='navigation'>
- Tests:
- <a href="lineChartTest.html">Line Chart</a>
- <a href="stackedAreaChartTest.html">Stacked Area</a>
- <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
- </div>
- <div class='chart full' id='chart1'>Full chart example with new tooltip and guideline<button>Select chart</button><svg></svg></div>
- <div class='chart half with-transitions' id='chart2'>Chart with old tooltips (with-transitions)<button>Select chart</button><svg></svg></div>
- <div class='chart half' id='chart3'>Chart with single point<button>Select chart</button><svg></svg></div>
- <div class='chart half' id='chart4'>Chart with two points<button>Select chart</button><svg></svg></div>
- <div class='chart half' id='chart5'>Chart with 'holes'<button>Select chart</button><svg></svg></div>
- <div class='chart half' id='chart6'>Total random points<button>Select chart</button><svg></svg></div>
- <div class='chart half' id='chart7'>Less than four points, old tooltips<button>Select chart</button><svg></svg></div>
- <div class='chart half' id='chart8'>No data<svg></svg></div>
- <div class='chart half' id='chart9'>Data is all negative<svg></svg></div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaChart.js"></script>
-<script src="testScript.js"></script>
-<script>
-
-
-var histcatexplong = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025298] , [ 1201755600000 , 17.286592443521] , [ 1204261200000 , 16.323141626569] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 29.46138169384] , [ 1283227200000 , 27.357322961862] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0.39001201038526] , [ 1335758400000 , 0.30945472725559] , [ 1338436800000 , 0.31062439305591]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , 13.356778764352] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.895903006119] , [ 1146369600000 , 6.9939633271352] , [ 1149048000000 , 6.7241510257675] , [ 1151640000000 , 5.5611293669516] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169279] , [ 1162270800000 , 7.0016334389777] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.968954653301] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.519182132226] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422456] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234549] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361713] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675084] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.637740867211] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362182] , [ 1314763200000 , 24.778452182432] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.2531374291] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741105] , [ 1333166400000 , 7.1424929577921] , [ 1335758400000 , 7.8076213051482] , [ 1338436800000 , 7.2462684949232]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 14.212410956029] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920665] , [ 1146369600000 , 14.38210972745] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090032] , [ 1154318400000 , 16.244839695188] , [ 1156996800000 , 16.017088850646] , [ 1159588800000 , 14.183951830055] , [ 1162270800000 , 14.148523245697] , [ 1164862800000 , 13.424326059972] , [ 1167541200000 , 12.974450435753] , [ 1170219600000 , 13.23247041802] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.246590583889] , [ 1183176000000 , 17.564505594809] , [ 1185854400000 , 17.872725373165] , [ 1188532800000 , 18.018998508757] , [ 1191124800000 , 15.584518016603] , [ 1193803200000 , 15.480850647181] , [ 1196398800000 , 15.699120036984] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605207] , [ 1204261200000 , 18.982314051295] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929761] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003979] , [ 1217476800000 , 18.929464156258] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.63289219025] , [ 1228021200000 , 14.667835024478] , [ 1230699600000 , 13.946993947308] , [ 1233378000000 , 14.394304684397] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035806] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438287] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670276] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800017] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560787] , [ 1288497600000 , 14.04516285753] , [ 1291093200000 , 13.697412447288] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.961511864531] , [ 1298869200000 , 21.049198298158] , [ 1301544000000 , 22.687631094008] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.883799437121] , [ 1309406400000 , 24.203843814248] , [ 1312084800000 , 22.138760964038] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944556] , [ 1320033600000 , 12.625642461969] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.786018336149] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650734] , [ 1333166400000 , 18.994731295388] , [ 1335758400000 , 18.450055817702] , [ 1338436800000 , 17.863719889669]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , 7.1590087090398] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.136053947247] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925082] , [ 1177905600000 , 5.5191481293345] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474575] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458946] , [ 1243742400000 , 4.7458462454774] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254155] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838003] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 5.1293714074325] , [ 1335758400000 , 5.2586794619016] , [ 1338436800000 , 5.1100853569977]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342042] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618803] , [ 1149048000000 , 21.142678863691] , [ 1151640000000 , 26.568489677529] , [ 1154318400000 , 24.839144939905] , [ 1156996800000 , 25.456187462167] , [ 1159588800000 , 26.350164502826] , [ 1162270800000 , 26.47833320519] , [ 1164862800000 , 26.425979547847] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625832] , [ 1180584000000 , 27.490862424829] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.060480671449] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194127] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664833] , [ 1199077200000 , 30.629727432728] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227842] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288523] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093843] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832098] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618401] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.246007102281] , [ 1241064000000 , 24.530543998509] , [ 1243742400000 , 25.084184918242] , [ 1246334400000 , 16.606166527358] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475753] , [ 1256961600000 , 23.017152085245] , [ 1259557200000 , 25.617745423683] , [ 1262235600000 , 24.061133998642] , [ 1264914000000 , 23.223933318644] , [ 1267333200000 , 24.425887263937] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878676] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450371] , [ 1285819200000 , 30.498967232092] , [ 1288497600000 , 32.403696817912] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.846330510051] , [ 1306814400000 , 39.857316881857] , [ 1309406400000 , 37.675127768208] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702577] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769976] , [ 1333166400000 , 26.434568573937] , [ 1335758400000 , 25.305617871002] , [ 1338436800000 , 24.520919418236]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.1989783050309] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- }
-];
-
-
-// for testing single data point
-var histcatexplong_singledatapoint = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , 27.38478809681]]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 7.2800122043237]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , 1.544303464167]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , 13.356778764352]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 14.212410956029]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , 7.1590087090398]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , 13.242301508051]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , 5.5806167415681]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 3.7056975170243]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0]]
- }
-];
-
-
-// for testing two data point s
-var histcatexplong_twodatapoint = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , 27.38478809681], [ 1141102800000 , 29.4] ]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 7.2800122043237], [ 1141102800000 , 6.7]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , 1.544303464167], [ 1141102800000 , 2.4]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , 13.356778764352], [ 1141102800000 , 19.2]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 14.212410956029], [ 1141102800000 , 15.4]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , 7.1590087090398], [ 1141102800000 , 10.3]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , 13.242301508051], [ 1141102800000 , 14.3]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , 5.5806167415681], [ 1141102800000 , 3.2]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 3.7056975170243], [ 1141102800000 , 1.3]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0], [ 1141102800000 , 2]]
- }
-];
-
-var histcatexplong_withholes = [
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
- } ,
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
- }];
-
-var histcatexpshort = [
- {
- "key" : "Consumer Staples" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , -0.24102139376003] , [ 1170219600000 , -0.69960584365035] , [ 1172638800000 , -0.67365051426185] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.31429312464988] , [ 1185854400000 , -0.90018700397153] , [ 1188532800000 , -0.96926214328714] , [ 1191124800000 , -1.1343386468131] , [ 1193803200000 , -1.1335426595455] , [ 1196398800000 , -1.2327663032424] , [ 1199077200000 , -0.41027135492155] , [ 1201755600000 , -0.41779167524802] , [ 1204261200000 , -0.38133883625885] , [ 1206936000000 , 0] , [ 1209528000000 , -0.32550520320253] , [ 1212206400000 , -0.33185144615505] , [ 1214798400000 , -0.68609668877894] , [ 1217476800000 , -0.70001207744308] , [ 1220155200000 , -0.68378680840919] , [ 1222747200000 , -0.40908783182034] , [ 1225425600000 , -0.39074266525646] , [ 1228021200000 , -0.40358490474562] , [ 1230699600000 , -0.85752207262267] , [ 1233378000000 , -0.74395750438805] , [ 1235797200000 , -0.70718832429489] , [ 1238472000000 , -0.76244465406965] , [ 1241064000000 , -0.67618572591984] , [ 1243742400000 , -0.67649596761402] , [ 1246334400000 , -0.94618002703247] , [ 1249012800000 , -0.95408485581014] , [ 1251691200000 , -0.96272139504276] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , -0.25516420149471] , [ 1272600000000 , -0.24106264576017] , [ 1275278400000 , -0.22802547751448] , [ 1277870400000 , -0.62187524046697] , [ 1280548800000 , -0.72155608677106] , [ 1283227200000 , -0.70221659944774] , [ 1285819200000 , -1.1117002584543] , [ 1288497600000 , -1.190911001336] , [ 1291093200000 , -1.1781082003972] , [ 1293771600000 , -1.2125860264875] , [ 1296450000000 , -1.7748010365657] , [ 1298869200000 , -1.8919594178596] , [ 1301544000000 , -1.7077946421533] , [ 1304136000000 , -2.024238803094] , [ 1306814400000 , -1.9769844081819] , [ 1309406400000 , -2.0730275464065] , [ 1312084800000 , -1.9690128240888] , [ 1314763200000 , -5.5557852269348] , [ 1317355200000 , -7.2527933190641] , [ 1320033600000 , -5.7367677053109] , [ 1322629200000 , -6.0409316206662] , [ 1325307600000 , -4.6511525539195] , [ 1327986000000 , -4.526116059083] , [ 1330491600000 , -4.846292325197] , [ 1333166400000 , -2.2663198779425] , [ 1335758400000 , -2.4172072568564] , [ 1338436800000 , -2.3204729601189]]
- } ,
- {
- "key" : "Consumer Discretionary" ,
- "values" : [ [ 1138683600000 , -0.62238434102863] , [ 1141102800000 , -0.61484565039024] , [ 1143781200000 , -1.0769367918668] , [ 1146369600000 , -1.2221156604129] , [ 1149048000000 , -1.2434858263377] , [ 1151640000000 , -0.58606435489597] , [ 1154318400000 , -0.61478911495141] , [ 1156996800000 , -0.61429362688591] , [ 1159588800000 , -1.1168614112788] , [ 1162270800000 , -1.1510268716612] , [ 1164862800000 , -1.1104724164222] , [ 1167541200000 , -1.2298338563471] , [ 1170219600000 , -1.5053664389104] , [ 1172638800000 , -1.5535266372193] , [ 1175313600000 , -3.1690472535854] , [ 1177905600000 , -3.1273013967041] , [ 1180584000000 , -3.155466271777] , [ 1183176000000 , -3.7158562579437] , [ 1185854400000 , -3.8244546635586] , [ 1188532800000 , -3.5524464859972] , [ 1191124800000 , -3.0472339109128] , [ 1193803200000 , -3.064978140815] , [ 1196398800000 , -3.0818130124986] , [ 1199077200000 , -2.9806791138312] , [ 1201755600000 , -3.7360958775824] , [ 1204261200000 , -3.4687841733263] , [ 1206936000000 , -3.3702018615806] , [ 1209528000000 , -3.1982756208679] , [ 1212206400000 , -3.0489433155104] , [ 1214798400000 , -3.7008275605963] , [ 1217476800000 , -3.8980507260892] , [ 1220155200000 , -3.7680083260241] , [ 1222747200000 , -3.2061890012391] , [ 1225425600000 , -2.6727551440484] , [ 1228021200000 , -2.4469327462935] , [ 1230699600000 , -3.0192419668784] , [ 1233378000000 , -2.892958553476] , [ 1235797200000 , -3.1153570053479] , [ 1238472000000 , -2.9927580570711] , [ 1241064000000 , -3.5061796706294] , [ 1243742400000 , -3.2944159516725] , [ 1246334400000 , -3.4154213240617] , [ 1249012800000 , -3.6492125438171] , [ 1251691200000 , -3.6674164998394] , [ 1254283200000 , -4.6271484977727] , [ 1256961600000 , -4.2433407292676] , [ 1259557200000 , -4.4742625247274] , [ 1262235600000 , -5.2078214612359] , [ 1264914000000 , -5.2209579214469] , [ 1267333200000 , -5.4596395756061] , [ 1270008000000 , -5.6906459276584] , [ 1272600000000 , -6.4981737808665] , [ 1275278400000 , -6.2563044048578] , [ 1277870400000 , -6.175479487959] , [ 1280548800000 , -6.6641002427295] , [ 1283227200000 , -6.3648667745556] , [ 1285819200000 , -5.0270168607884] , [ 1288497600000 , -5.1186072976233] , [ 1291093200000 , -5.1127601587872] , [ 1293771600000 , -5.3015262972641] , [ 1296450000000 , -4.4295728671596] , [ 1298869200000 , -4.5488139745696] , [ 1301544000000 , -2.9021260315957] , [ 1304136000000 , -3.1482096241139] , [ 1306814400000 , -2.8648831814763] , [ 1309406400000 , -2.8149423433441] , [ 1312084800000 , -2.6350669145713] , [ 1314763200000 , -5.9871754759038] , [ 1317355200000 , -8.6127555816399] , [ 1320033600000 , -7.0712887348892] , [ 1322629200000 , -7.3930257999857] , [ 1325307600000 , -6.5183071556304] , [ 1327986000000 , -7.4388913793503] , [ 1330491600000 , -8.2134465182649] , [ 1333166400000 , -7.7836036697105] , [ 1335758400000 , -8.0955053683936] , [ 1338436800000 , -8.0981845818893]]
- } ,
- {
- "key" : "Energy" ,
- "values" : [ [ 1138683600000 , -0.95707527558303] , [ 1141102800000 , -0.78324346694487] , [ 1143781200000 , -1.2905241058019] , [ 1146369600000 , -1.3880880486779] , [ 1149048000000 , -1.3337247185993] , [ 1151640000000 , -1.0342112071924] , [ 1154318400000 , -1.1264764100183] , [ 1156996800000 , -1.0001002640852] , [ 1159588800000 , -0.85341153093953] , [ 1162270800000 , -0.88452017844596] , [ 1164862800000 , -0.84305725300642] , [ 1167541200000 , -1.0874455682301] , [ 1170219600000 , -1.1714969043168] , [ 1172638800000 , -1.1445856467934] , [ 1175313600000 , -1.1928513334073] , [ 1177905600000 , -1.2365691634265] , [ 1180584000000 , -1.2690940962478] , [ 1183176000000 , -1.662233774695] , [ 1185854400000 , -1.745760538781] , [ 1188532800000 , -1.5209200931271] , [ 1191124800000 , -1.7874791820886] , [ 1193803200000 , -1.7755668105117] , [ 1196398800000 , -1.5456069064618] , [ 1199077200000 , -1.7077541586335] , [ 1201755600000 , -1.6462081650757] , [ 1204261200000 , -1.8624735339628] , [ 1206936000000 , -0.71073453533048] , [ 1209528000000 , -0.75380709640219] , [ 1212206400000 , -0.71020554911716] , [ 1214798400000 , -1.2077850914504] , [ 1217476800000 , -1.0505576787644] , [ 1220155200000 , -0.97804595164878] , [ 1222747200000 , -0.34591294663671] , [ 1225425600000 , -0.19958331514025] , [ 1228021200000 , -0.17599782216296] , [ 1230699600000 , -0.49577714121027] , [ 1233378000000 , -0.51644059173978] , [ 1235797200000 , -0.48576859637083] , [ 1238472000000 , -0.75596531126452] , [ 1241064000000 , -0.72073358315801] , [ 1243742400000 , -0.82125996732294] , [ 1246334400000 , -1.4933216860121] , [ 1249012800000 , -1.5003760525933] , [ 1251691200000 , -1.4744921420596] , [ 1254283200000 , -1.8197844060652] , [ 1256961600000 , -1.6558574419626] , [ 1259557200000 , -1.7256149254159] , [ 1262235600000 , -2.7667194124217] , [ 1264914000000 , -2.9113351806903] , [ 1267333200000 , -3.0172806042796] , [ 1270008000000 , -2.8607175559701] , [ 1272600000000 , -2.629226972169] , [ 1275278400000 , -2.1855196883832] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -1.3788733828844] , [ 1288497600000 , -1.4136792139765] , [ 1291093200000 , -1.5176522942901] , [ 1293771600000 , -1.5776651933208] , [ 1296450000000 , -1.7171675182182] , [ 1298869200000 , -1.8121885250566] , [ 1301544000000 , -1.2221934283206] , [ 1304136000000 , -1.2910715239439] , [ 1306814400000 , -1.1492301612576] , [ 1309406400000 , -1.0613891302841] , [ 1312084800000 , -0.99605193205308] , [ 1314763200000 , -1.7324212072278] , [ 1317355200000 , -1.5226856867477] , [ 1320033600000 , -1.3159138896549] , [ 1322629200000 , -1.3925952659299] , [ 1325307600000 , -1.59624913621] , [ 1327986000000 , -1.5235879880296] , [ 1330491600000 , -1.7315573519279] , [ 1333166400000 , -0.86883431220926] , [ 1335758400000 , -0.90144871282829] , [ 1338436800000 , -0.7010492182517]]
- } ,
- {
- "key" : "Financials" ,
- "values" : [ [ 1138683600000 , -0.56797103580254] , [ 1141102800000 , -0.57324319174933] , [ 1143781200000 , -1.1014818753272] , [ 1146369600000 , -1.1480256918118] , [ 1149048000000 , -1.0709335336775] , [ 1151640000000 , -0.84876993929658] , [ 1154318400000 , -0.88122638919979] , [ 1156996800000 , -0.86421146074279] , [ 1159588800000 , -0.95093689377974] , [ 1162270800000 , -0.96646862382248] , [ 1164862800000 , -0.96726919442167] , [ 1167541200000 , -0.99874655234936] , [ 1170219600000 , -1.0004843898938] , [ 1172638800000 , -0.9925349676815] , [ 1175313600000 , -1.1888941931287] , [ 1177905600000 , -1.9402228220929] , [ 1180584000000 , -2.03915987194] , [ 1183176000000 , -2.4620526931074] , [ 1185854400000 , -2.2423544651877] , [ 1188532800000 , -1.8790998536037] , [ 1191124800000 , -0.43246873489492] , [ 1193803200000 , -0.40142684216371] , [ 1196398800000 , -0.35646635110466] , [ 1199077200000 , -0.90385702817642] , [ 1201755600000 , -0.86997575249605] , [ 1204261200000 , -0.80101406775415] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.31816167663298] , [ 1217476800000 , -0.309250081849] , [ 1220155200000 , -0.27723698582762] , [ 1222747200000 , -0.32001379372079] , [ 1225425600000 , -0.1940212908561] , [ 1228021200000 , -0.051964569203423] , [ 1230699600000 , -0.68342686502452] , [ 1233378000000 , -0.57645644730726] , [ 1235797200000 , -0.50860972184555] , [ 1238472000000 , -0.44405217759605] , [ 1241064000000 , -0.45224333626901] , [ 1243742400000 , -0.41691818252313] , [ 1246334400000 , -2.4654561579904] , [ 1249012800000 , -2.5473566378551] , [ 1251691200000 , -2.8340604021307] , [ 1254283200000 , -1.8452445924041] , [ 1256961600000 , -1.5626544265386] , [ 1259557200000 , -1.707842764916] , [ 1262235600000 , -1.2237258567344] , [ 1264914000000 , -1.9756896168227] , [ 1267333200000 , -2.0920321696833] , [ 1270008000000 , -1.9782327706952] , [ 1272600000000 , -2.0416328165753] , [ 1275278400000 , -1.7816736134798] , [ 1277870400000 , -0.66092275437689] , [ 1280548800000 , -0.73608099025756] , [ 1283227200000 , -0.63686713461189] , [ 1285819200000 , -0.0024159482973197] , [ 1288497600000 , -0.0023052643588188] , [ 1291093200000 , -0.0023008251965446] , [ 1293771600000 , -0.002247807834351] , [ 1296450000000 , -0.62004345920743] , [ 1298869200000 , -0.69634926653235] , [ 1301544000000 , -0.76013525555354] , [ 1304136000000 , -1.505368495849] , [ 1306814400000 , -1.3456949237707] , [ 1309406400000 , -1.3013934898695] , [ 1312084800000 , -1.183199519395] , [ 1314763200000 , -0.0074317809719494] , [ 1317355200000 , -0.019430458325379] , [ 1320033600000 , -0.015777413509084] , [ 1322629200000 , -0.016463879837718] , [ 1325307600000 , -0.0031338919976225] , [ 1327986000000 , -0.0029770278967514] , [ 1330491600000 , -0.003048902987439] , [ 1333166400000 , -0.71171545945298] , [ 1335758400000 , -0.72003299240508] , [ 1338436800000 , -0.72961974845039]]
- } ,
- {
- "key" : "Health Care" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16816074963595] , [ 1185854400000 , -0.19318598121302] , [ 1188532800000 , -0.20130864403797] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.30476443991021] , [ 1217476800000 , -0.31836730824777] , [ 1220155200000 , -0.30797427879366] , [ 1222747200000 , -0.48318623977865] , [ 1225425600000 , -0.50834562674351] , [ 1228021200000 , -0.47936068182503] , [ 1230699600000 , -0.61753010081956] , [ 1233378000000 , -0.59493587396819] , [ 1235797200000 , -0.62664324339064] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -1.3076157801726] , [ 1256961600000 , -1.2306204787628] , [ 1259557200000 , -1.4728435992801] , [ 1262235600000 , -1.7729831226837] , [ 1264914000000 , -1.7711733839842] , [ 1267333200000 , -1.8233584472099] , [ 1270008000000 , -1.8505979461969] , [ 1272600000000 , -1.5989071613823] , [ 1275278400000 , -1.6636770720413] , [ 1277870400000 , -1.4523909758725] , [ 1280548800000 , -1.503771584105] , [ 1283227200000 , -1.5458561450475] , [ 1285819200000 , -1.457331837483] , [ 1288497600000 , -1.4217332434071] , [ 1291093200000 , -1.4687927303394] , [ 1293771600000 , -1.437223057967] , [ 1296450000000 , -0.72221871524334] , [ 1298869200000 , -0.7399575414588] , [ 1301544000000 , -1.9712239746745] , [ 1304136000000 , -2.2360949351942] , [ 1306814400000 , -2.2147572530541] , [ 1309406400000 , -2.0440932285023] , [ 1312084800000 , -1.9438209561938] , [ 1314763200000 , -4.9035620630386] , [ 1317355200000 , -4.9036674804213] , [ 1320033600000 , -4.1900706458801] , [ 1322629200000 , -4.5602615827955] , [ 1325307600000 , -1.9194421885814] , [ 1327986000000 , -1.8854470816382] , [ 1330491600000 , -1.9514785018245] , [ 1333166400000 , -0.65282205870454] , [ 1335758400000 , -0.57068368199209] , [ 1338436800000 , -0.55902563384907]]
- } ,
- {
- "key" : "Industrials" ,
- "values" : [ [ 1138683600000 , -0.390983707093] , [ 1141102800000 , -0.38471122730537] , [ 1143781200000 , -0.22897173467143] , [ 1146369600000 , -0.23798946472286] , [ 1149048000000 , -0.20721233428173] , [ 1151640000000 , -0.54577697700394] , [ 1154318400000 , -0.50300252995937] , [ 1156996800000 , -0.49609518628103] , [ 1159588800000 , -0.19582276889273] , [ 1162270800000 , -0.60399139945108] , [ 1164862800000 , -0.61477368082886] , [ 1167541200000 , -0.13665869881705] , [ 1170219600000 , -0.13147565243332] , [ 1172638800000 , -0.11819441593356] , [ 1175313600000 , -0.41610825689528] , [ 1177905600000 , -0.38815419659358] , [ 1180584000000 , -0.3703838943035] , [ 1183176000000 , -1.6193903804534] , [ 1185854400000 , -1.6502660417328] , [ 1188532800000 , -1.481875010149] , [ 1191124800000 , -0.96180099322536] , [ 1193803200000 , -0.97017301394967] , [ 1196398800000 , -0.97432971260093] , [ 1199077200000 , -0.36071934518387] , [ 1201755600000 , -0.42150070991777] , [ 1204261200000 , -0.41784042793202] , [ 1206936000000 , -0.70494708349169] , [ 1209528000000 , -0.73449590911984] , [ 1212206400000 , -0.7400163600788] , [ 1214798400000 , -0.52584502195668] , [ 1217476800000 , -0.56224806965368] , [ 1220155200000 , -0.50830855192741] , [ 1222747200000 , -0.79494637898049] , [ 1225425600000 , -0.70391433947286] , [ 1228021200000 , -0.61420660317009] , [ 1230699600000 , -0.41699636242004] , [ 1233378000000 , -0.3779041158185] , [ 1235797200000 , -0.34282498854047] , [ 1238472000000 , -0.83845630450592] , [ 1241064000000 , -0.85937944918912] , [ 1243742400000 , -0.85530287999615] , [ 1246334400000 , -1.2819866264007] , [ 1249012800000 , -1.4598491663715] , [ 1251691200000 , -1.5261472177779] , [ 1254283200000 , -1.2503948993549] , [ 1256961600000 , -1.1767079775724] , [ 1259557200000 , -1.2585538260386] , [ 1262235600000 , -3.420972598165] , [ 1264914000000 , -3.3381337072954] , [ 1267333200000 , -3.7043129330694] , [ 1270008000000 , -4.6924500756609] , [ 1272600000000 , -4.6880683704908] , [ 1275278400000 , -4.3335249071719] , [ 1277870400000 , -3.6545810416445] , [ 1280548800000 , -4.1639787701262] , [ 1283227200000 , -3.8249597612047] , [ 1285819200000 , -0.33221815335641] , [ 1288497600000 , -0.33346468179047] , [ 1291093200000 , -0.34546911228789] , [ 1293771600000 , -0.36609971997147] , [ 1296450000000 , -0.42502545672607] , [ 1298869200000 , -0.38192733348507] , [ 1301544000000 , -0.01991033447621] , [ 1304136000000 , -0.020319195299659] , [ 1306814400000 , -0.018147820835144] , [ 1309406400000 , -0.017923186209383] , [ 1312084800000 , -0.016133999253684] , [ 1314763200000 , -0.72058656278977] , [ 1317355200000 , -0.42812646564889] , [ 1320033600000 , -0.35896134792589] , [ 1322629200000 , -0.38637896444549] , [ 1325307600000 , -0.31794663984021] , [ 1327986000000 , -0.32220831831888] , [ 1330491600000 , -0.37107872672214] , [ 1333166400000 , -0.81968633933695] , [ 1335758400000 , -0.77148300885994] , [ 1338436800000 , -0.77392261735539]]
- } ,
- {
- "key" : "Information Technology" ,
- "values" : [ [ 1138683600000 , -0.86346955704548] , [ 1141102800000 , -0.88352373534584] , [ 1143781200000 , -1.2630802711685] , [ 1146369600000 , -1.2352593999242] , [ 1149048000000 , -1.2086379045093] , [ 1151640000000 , -1.0416778473647] , [ 1154318400000 , -0.99326278105154] , [ 1156996800000 , -1.0095045907007] , [ 1159588800000 , -2.0762515478576] , [ 1162270800000 , -2.13066829429] , [ 1164862800000 , -2.2458400474235] , [ 1167541200000 , -2.1315262677135] , [ 1170219600000 , -2.4063108252146] , [ 1172638800000 , -2.3753290631454] , [ 1175313600000 , -2.1119577565913] , [ 1177905600000 , -2.1546804750397] , [ 1180584000000 , -2.3768374034303] , [ 1183176000000 , -1.244878330098] , [ 1185854400000 , -1.2233210265236] , [ 1188532800000 , -1.1715073644317] , [ 1191124800000 , -1.0036136395928] , [ 1193803200000 , -0.9510676777939] , [ 1196398800000 , -0.97553526602196] , [ 1199077200000 , -1.9083849411912] , [ 1201755600000 , -1.855965027796] , [ 1204261200000 , -1.7343633512402] , [ 1206936000000 , -2.1847032903649] , [ 1209528000000 , -2.2095446284368] , [ 1212206400000 , -2.2060678671735] , [ 1214798400000 , -1.0941627910924] , [ 1217476800000 , -1.0004352405294] , [ 1220155200000 , -0.93563501378075] , [ 1222747200000 , 0] , [ 1225425600000 , -0.65155092645953] , [ 1228021200000 , -0.66021585164047] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -0.29297573068109] , [ 1256961600000 , -0.75043756379084] , [ 1259557200000 , -0.85690846482745] , [ 1262235600000 , -0.21937480770873] , [ 1264914000000 , -0.93232569935343] , [ 1267333200000 , -0.94180327525084] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -0.21253553193891] , [ 1288497600000 , -0.23178244747722] , [ 1291093200000 , -0.21481706129968] , [ 1293771600000 , -0.23306463011242] , [ 1296450000000 , -0.90244048159158] , [ 1298869200000 , -1.0410052083529] , [ 1301544000000 , -2.209350937089] , [ 1304136000000 , -2.6540796712932] , [ 1306814400000 , -3.2481210590957] , [ 1309406400000 , -3.0717986354635] , [ 1312084800000 , -2.7493296528921] , [ 1314763200000 , -2.1973991293256] , [ 1317355200000 , -0.86403111842659] , [ 1320033600000 , -0.87824756160219] , [ 1322629200000 , -0.80812571482871] , [ 1325307600000 , -1.6419820357151] , [ 1327986000000 , -1.6893790342619] , [ 1330491600000 , -1.8614499455474] , [ 1333166400000 , -1.814727017516] , [ 1335758400000 , -1.8744942128618] , [ 1338436800000 , -1.7880124850882]]
- } ,
- {
- "key" : "Materials" ,
- "values" : [ [ 1138683600000 , -0.26079769654951] , [ 1141102800000 , -0.23368425410881] , [ 1143781200000 , -0.46285283466193] , [ 1146369600000 , -0.4588429059205] , [ 1149048000000 , -0.43055120080853] , [ 1151640000000 , -0.26428963363642] , [ 1154318400000 , -0.26203611963364] , [ 1156996800000 , -0.26706156717825] , [ 1159588800000 , -0.024613610779192] , [ 1162270800000 , -0.024351047945929] , [ 1164862800000 , -0.031497065480344] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , -0.83875613435932] , [ 1209528000000 , -0.84367445572656] , [ 1212206400000 , -0.78928126005463] , [ 1214798400000 , -1.1075954825404] , [ 1217476800000 , -1.2704836497926] , [ 1220155200000 , -1.307504052056] , [ 1222747200000 , -0.70440409992826] , [ 1225425600000 , -0.74122140007729] , [ 1228021200000 , -0.82224393045109] , [ 1230699600000 , -1.8719055314571] , [ 1233378000000 , -1.5200311233975] , [ 1235797200000 , -1.5552386899059] , [ 1238472000000 , -1.1576593040773] , [ 1241064000000 , -1.0757811060575] , [ 1243742400000 , -1.0250125722511] , [ 1246334400000 , -2.2747597224127] , [ 1249012800000 , -2.3125499227974] , [ 1251691200000 , -2.2784386530745] , [ 1254283200000 , -1.1518806233757] , [ 1256961600000 , -1.0075503399018] , [ 1259557200000 , -1.1400577929481] , [ 1262235600000 , -0.50677891891165] , [ 1264914000000 , -0.54332908490051] , [ 1267333200000 , -0.55473181189807] , [ 1270008000000 , -0.3633796157757] , [ 1272600000000 , -0.30361861470847] , [ 1275278400000 , -0.24614951229153] , [ 1277870400000 , -1.0959443687647] , [ 1280548800000 , -1.1881529264637] , [ 1283227200000 , -1.1835349242596] , [ 1285819200000 , -0.92507477884561] , [ 1288497600000 , -0.94531016133473] , [ 1291093200000 , -0.93519433603434] , [ 1293771600000 , -1.009221344252] , [ 1296450000000 , -2.3640716285835] , [ 1298869200000 , -2.4914494188556] , [ 1301544000000 , -1.7979456141716] , [ 1304136000000 , -2.1389760840247] , [ 1306814400000 , -1.9721362241269] , [ 1309406400000 , -1.9170229522382] , [ 1312084800000 , -1.8076246545605] , [ 1314763200000 , -2.1010686108381] , [ 1317355200000 , -2.2396373791195] , [ 1320033600000 , -1.8469012813015] , [ 1322629200000 , -2.0079125997321] , [ 1325307600000 , -1.9170007806182] , [ 1327986000000 , -1.9239118384243] , [ 1330491600000 , -2.0649464738798] , [ 1333166400000 , -0.88385747789351] , [ 1335758400000 , -0.91438087144161] , [ 1338436800000 , -0.96513752020965]]
- } ,
- {
- "key" : "Telecommunication Services" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.077395192503573] , [ 1146369600000 , -0.079342784160835] , [ 1149048000000 , -0.07376956808809] , [ 1151640000000 , -0.041850521681201] , [ 1154318400000 , -0.037598545052499] , [ 1156996800000 , -0.040984079427717] , [ 1159588800000 , -0.19335817797448] , [ 1162270800000 , -0.18578493919925] , [ 1164862800000 , -0.1769473933101] , [ 1167541200000 , -0.57245352054975] , [ 1170219600000 , -0.61554187332911] , [ 1172638800000 , -0.63016714701151] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.12118014109021] , [ 1185854400000 , -0.11085831487208] , [ 1188532800000 , -0.10901265358445] , [ 1191124800000 , -0.17205583275088] , [ 1193803200000 , -0.16573676303991] , [ 1196398800000 , -0.17954841680392] , [ 1199077200000 , -0.82703336198161] , [ 1201755600000 , -0.76741763304227] , [ 1204261200000 , -0.79430844816827] , [ 1206936000000 , -1.0279404050708] , [ 1209528000000 , -1.0342425093761] , [ 1212206400000 , -1.0903083860383] , [ 1214798400000 , -1.0895432841007] , [ 1217476800000 , -1.1392703218146] , [ 1220155200000 , -0.98872086340391] , [ 1222747200000 , -1.227654651568] , [ 1225425600000 , -1.0527419580394] , [ 1228021200000 , -0.84338280322309] , [ 1230699600000 , -0.5982617279246] , [ 1233378000000 , -0.74123723862634] , [ 1235797200000 , -0.81665712408277] , [ 1238472000000 , -0.89868760705228] , [ 1241064000000 , -0.86338472153689] , [ 1243742400000 , -0.85040889603889] , [ 1246334400000 , -0.82872733882926] , [ 1249012800000 , -1.2797824676355] , [ 1251691200000 , -1.152043882336] , [ 1254283200000 , -0.70125890680538] , [ 1256961600000 , -0.69496338525418] , [ 1259557200000 , -0.81982038022784] , [ 1262235600000 , -0.42841700219624] , [ 1264914000000 , -0.43298861575253] , [ 1267333200000 , -0.46951194437705] , [ 1270008000000 , -0.46723980191721] , [ 1272600000000 , -0.43139262322841] , [ 1275278400000 , -0.4052075794202] , [ 1277870400000 , -0.45399431179247] , [ 1280548800000 , -0.50492374473014] , [ 1283227200000 , -0.49032976375464] , [ 1285819200000 , -0.95769381063728] , [ 1288497600000 , -0.92968381683254] , [ 1291093200000 , -0.90984207437415] , [ 1293771600000 , -0.91448295661871] , [ 1296450000000 , -1.3204103334172] , [ 1298869200000 , -1.3896989018] , [ 1301544000000 , -1.8536993972883] , [ 1304136000000 , -1.9901582471947] , [ 1306814400000 , -1.8731097808809] , [ 1309406400000 , -1.8109819859122] , [ 1312084800000 , -1.7946593386661] , [ 1314763200000 , -1.6002716669781] , [ 1317355200000 , -0.056479286204019] , [ 1320033600000 , -0.046232413998891] , [ 1322629200000 , -0.051182355563531] , [ 1325307600000 , -0.032858749040145] , [ 1327986000000 , -0.032326418106178] , [ 1330491600000 , -0.033980477379241] , [ 1333166400000 , -0.053069550536519] , [ 1335758400000 , -0.055741850564434] , [ 1338436800000 , -0.055851808568252]]
- } ,
- {
- "key" : "Utilities" ,
- "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.073769471773675] , [ 1146369600000 , -0.077824496315782] , [ 1149048000000 , -0.080696288096361] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16073291656515] , [ 1185854400000 , -0.1646253606633] , [ 1188532800000 , -0.1655815581449] , [ 1191124800000 , -0.74417496631713] , [ 1193803200000 , -0.76230340423681] , [ 1196398800000 , -0.73882938190048] , [ 1199077200000 , -0.3820573391806] , [ 1201755600000 , -0.360757285179] , [ 1204261200000 , -0.38081058463615] , [ 1206936000000 , -0.92767439811083] , [ 1209528000000 , -0.92774728028789] , [ 1212206400000 , -0.85273481694714] , [ 1214798400000 , -1.69407085613] , [ 1217476800000 , -1.5179726219101] , [ 1220155200000 , -1.3576700600738] , [ 1222747200000 , -1.0404839864076] , [ 1225425600000 , -0.95251478838915] , [ 1228021200000 , -1.0610509118017] , [ 1230699600000 , -0.3316792294278] , [ 1233378000000 , -0.33745002288524] , [ 1235797200000 , -0.28806366796683] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , -0.6338555382785] , [ 1249012800000 , -0.62797265130959] , [ 1251691200000 , -0.60264057253794] , [ 1254283200000 , -0.28687231077181] , [ 1256961600000 , -0.22215649778327] , [ 1259557200000 , -0.24027664555676] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
- }
-];
-
-function totalRandom() {
- var rval = [];
- for(var n=1; n <= 2; n++) {
- var series = [];
- for(var i =0; i < 50; i++) {
- series.push([
- Math.floor(Math.random() * 100),
- Math.random() * 6
- ]);
- }
- rval.push({key: "Random " + n, values: series});
- }
- return rval;
-}
-
-function nPoints() {
- var rval = [
- {key: "Series 1",
- values: [
- [1,2],
- [2,4],
- [3,8]
- ]}
- ];
- return rval;
-
-}
-
-//an example of harmonizing colors between visualizations
-//observe that Consumer Discretionary and Consumer Staples have
-//been flipped in the second chart
-var colors = d3.scale.category20();
-var keyColor = function(d, i) {return colors(d.key)};
-
-function defaultChartConfig(container, data, useGuideline) {
- if (useGuideline === undefined) useGuideline = true;
- nv.addGraph(function() {
- var chart;
- chart = nv.models.stackedAreaChart()
- .useInteractiveGuideline(useGuideline)
- .x(function(d) { return d[0] })
- .y(function(d) { return d[1] })
- .color(keyColor)
- ;
-
- chart.xAxis
- .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#' + container + ' svg')
- .datum(data)
- .transition().duration(500).call(chart);
-
- nv.utils.windowResize(chart.update);
-
- return chart;
- });
-}
-
-//Chart with old tooltip format.
-nv.addGraph(function() {
- var chart = nv.models.stackedAreaChart()
- .x(function(d) { return d[0] })
- .y(function(d) { return d[1] })
- .showControls(false)
- .color(keyColor)
- .margin({right:90})
- .rightAlignYAxis(true)
- ;
-
- chart.xAxis
- .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
- chart.yAxis
- .tickFormat(d3.format(',.2f'));
-
- d3.select('#chart2 svg')
- .datum(histcatexpshort)
- .call(chart);
-
-
-
- nv.utils.windowResize(chart.update);
-
- return chart;
-});
-
-defaultChartConfig("chart1", histcatexplong);
-defaultChartConfig("chart3", histcatexplong_singledatapoint);
-defaultChartConfig("chart4", histcatexplong_twodatapoint);
-defaultChartConfig("chart5", histcatexplong_withholes);
-defaultChartConfig("chart6", totalRandom(), false);
-defaultChartConfig("chart7", nPoints(),false);
-defaultChartConfig("chart8", []);
-defaultChartConfig("chart9", histcatexpshort,true);
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js
deleted file mode 100755
index 2e7dc16e..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js
+++ /dev/null
@@ -1,20 +0,0 @@
-//A little snippet of D3 code that creates a button that lets you toggle whether a chart is the only one visible on a page or not.
-d3.selectAll(".chart button").on("click",function() {
- var thisId = this.parentElement.id;
-
- var chartContainer = d3.select("#" + thisId);
- if (chartContainer.attr("class").match("selected"))
- chartContainer.classed("selected",false);
- else
- chartContainer.classed("selected",true);
-
- d3.selectAll(".chart").style("display",function() {
- if (thisId === this.id) return "block";
-
- if (d3.select(this).style("display") === "none")
- return "block";
- else
- return "none";
- });
- window.onresize();
-}); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css
deleted file mode 100755
index db5bdd09..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css
+++ /dev/null
@@ -1,39 +0,0 @@
-body {
- overflow-y:scroll;
- font-family: arial;
-}
-
-text {
- font: 12px sans-serif;
-}
-
-.chart {
- float:left;
- height: 500px;
- text-align: center;
- font-weight: bold;
- margin-bottom: 2em;
-}
-.chart.full {
- width: 100%;
-}
-
-.chart.half {
- width: 50%;
-}
-
-.chart.third {
- width: 33%;
-}
-
-.chart.selected {
- width: 100% !important;
-}
-
-.navigation a{
- margin-right: 1em;
-}
-
-.navigation {
- margin-bottom: 1em;
-}
diff --git a/wqflask/wqflask/templates/all_results.html b/wqflask/wqflask/templates/all_results.html
deleted file mode 100755
index a42e42d8..00000000
--- a/wqflask/wqflask/templates/all_results.html
+++ /dev/null
@@ -1,134 +0,0 @@
- <ul class="nav nav-tabs">
- {% for species in species_groups %}
- <li> <a href="#tab{{ loop.index }}" data-toggle="tab">{{ species }}</a></li>
- {% endfor %}
- </ul>
- <div class="tab-content">
- {% for species in species_groups %}
- <div class="tab-pane active" id="tab{{ loop.index }}">
- <div class="tabbable tabs-left">
- <ul class="nav nav-tabs">
- {% if species_groups[species]['phenotype'] %}
- <li class="active"> <a href="#tab{{ loop.index }}_1" data-toggle="tab">Phenotype</a></li>
- {% endif %}
- {% if species_groups[species]['mrna_assay'] %}
- <li> <a href="#tab{{ loop.index }}_2" data-toggle="tab">mRNA Assay</a></li>
- {% endif %}
- {% if species_groups[species]['genotype'] %}
- <li> <a href="#tab{{ loop.index }}_3" data-toggle="tab">Genotype</a></li>
- {% endif %}
- </ul>
- <div class="tab-content">
- {% if species_groups[species]['phenotype'] %}
- <div class="tab-pane active" id="tab{{ loop.index }}_1">
- <table id="pheno_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Id</th>
- <th>Species</th>
- <th>Group</th>
- <th>Description</th>
- <th>LRS</th>
- <th>Year</th>
- <th>Authors</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.phenotype %}
- {% if result.result_fields['species'] == species %}
- <tr>
- <td>{{ result.result_fields['phenotype_id'] }}</td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['description'] }}</td>
- <td>{{ result.result_fields['lrs'] }}</td>
- <td>
- <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result.result_fields['pubmed_id'] }}&dopt=Abstract">
- {{ result.result_fields['year'] }}
- </a>
- </td>
- <td>{{ result.result_fields['authors'] }}</td>
- </tr>
- {% endif %}
- {% endfor %}
- </tbody>
- </table>
- </div>
- {% endif %}
- {% if species_groups[species]['mrna_assay'] %}
- <div class="tab-pane" id="tab{{ loop.index }}_2">
- <table id="mrna_assay_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Record ID</th>
- <th>Species</th>
- <th>Group</th>
- <th>Data Set</th>
- <th>Symbol</th>
- <th>Description</th>
- <th>Location</th>
- <th>Mean Expr</th>
- <th>Max LRS</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.mrna_assay %}
- {% if result.result_fields['species'] == species %}
- <tr>
- <td>
- <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"
- {{ result.result_fields['name'] }}
- </a>
- </td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['dataset_name'] }}</td>
- <td>{{ result.result_fields['symbol'] }}</td>
- <td>{{ result.result_fields['description'] }}</td>
- <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>
- <td>{{ result.result_fields['mean'] }}</td>
- <td>{{ result.result_fields['lrs'] }}</td>
- </tr>
- {% endif %}
- {% endfor %}
- </tbody>
- </table>
- </div>
- {% endif %}
- {% if species_groups[species]['genotype'] %}
- <div class="tab-pane" id="tab{{ loop.index }}_3">
- <table id="geno_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Marker</th>
- <th>Species</th>
- <th>Group</th>
- <th>Data Set</th>
- <th>Location</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.genotype %}
- {% if result.result_fields['species'] == species %}
- <tr>
- <td>
- <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['marker_name'] }}&dataset={{ result.result_fields['dataset'] }}">
- {{ result.result_fields['marker_name'] }}
- </a>
- </td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['dataset_name'] }}</td>
- <td>{{ result.result_fields['chr'] }} : {{ result.result_fields['mb'] }}</td>
- </tr>
- {% endif %}
- {% endfor %}
- </tbody>
- </table>
- </div>
- {% endif %}
- </div>
- </div>
- </div>
- {% endfor %}
- </div> \ No newline at end of file
diff --git a/wqflask/wqflask/templates/marker_regression_old.html b/wqflask/wqflask/templates/marker_regression_old.html
deleted file mode 100644
index defcd929..00000000
--- a/wqflask/wqflask/templates/marker_regression_old.html
+++ /dev/null
@@ -1,106 +0,0 @@
-{% extends "base.html" %}
-{% block title %}Marker Regression{% endblock %}
-{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/packages/jqplot/jquery.jqplot.min.css" />
- <link rel="stylesheet" type="text/css" href="/static/new/css/marker_regression.css" />
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
- <link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
- <link rel="stylesheet" type="text/css" href="/static/packages/TableTools/media/css/TableTools.css" />
-{% endblock %}
-{% block content %} <!-- Start of body -->
-
- {{ header("Marker Regression",
- '{}: {}'.format(this_trait.name, this_trait.description_fmt)) }}
-
- <div class="container">
- <div>
- <h2>
- Manhattan Plot
- </h2>
- </div>
- <div id="manhattan_plot_container" class="manhattan_plot_container">
- <div id="manhattan_plot" class="manhattan_plots">
-
- </div>
- </div>
- <div>
- <h2>
- Genome Association Results
- </h2>
- </div>
-
- <table cellpadding="0" cellspacing="0" border="0" id="qtl_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <td>Index</td>
- <td>LOD Score</td>
- <td>Chr</td>
- <td>Mb</td>
- <td>Locus</td>
- </tr>
- </thead>
- <tbody>
- {% for marker in filtered_markers %}
- {% if marker.lod_score > lod_cutoff %}
- <tr>
- <td>{{loop.index}}</td>
- <td>{{marker.lod_score}}</td>
- <td>{{marker.chr}}</td>
- <td>{{marker.Mb}}</td>
- <td>{{marker.name}}</td>
- </tr>
- {% endif %}
- {% endfor %}
- </tbody>
- </table>
- </div>
-
- <!-- End of body -->
-
-{% endblock %}
-
-{% block js %}
- <script>
- js_data = {{ js_data | safe }}
- </script>
-
- <!--[if lt IE 9]>
-<!-- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/excanvas.js"></script>-->
- <![endif]-->
- <script language="javascript" type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/chr_manhattan_plot.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/marker_regression.js"></script>
-
-
- <script type="text/javascript" charset="utf-8">
- $(document).ready( function () {
- console.time("Creating table");
- $('#qtl_results').dataTable( {
- //"sDom": "<<'span3'l><'span3'T><'span4'f>'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p>>",
- "sDom": "lTftipr",
- "oTableTools": {
- "aButtons": [
- "copy",
- "print",
- {
- "sExtends": "collection",
- "sButtonText": 'Save <span class="caret" />',
- "aButtons": [ "csv", "xls", "pdf" ]
- }
- ],
- "sSwfPath": "/static/packages/TableTools/media/swf/copy_csv_xls_pdf.swf"
- },
- "iDisplayLength": 50,
- "bLengthChange": true,
- "bDeferRender": true,
- "bSortClasses": false
- } );
- console.timeEnd("Creating table");
- });
- </script>
-{% endblock %} \ No newline at end of file
diff --git a/wqflask/wqflask/templates/quick_search.html b/wqflask/wqflask/templates/quick_search.html
deleted file mode 100755
index fe6f3f65..00000000
--- a/wqflask/wqflask/templates/quick_search.html
+++ /dev/null
@@ -1,300 +0,0 @@
-{% extends "base.html" %}
-{% block title %}QuickSearch Results{% endblock %}
-{% block content %}
-<!-- Start of body -->
-
- {{ header("QuickSearch Results") }}
-
- <div class="container">
- <div class="page-header">
- <h1>Your Search</h1>
- </div>
-
- <p>We searched across all data sets to find all records that match:</p>
-
- <ul>
- {% if search_terms %}
- <li>
- <strong>{{search_terms}}</strong>
- </li>
- {% endif %}
- </ul>
-
-
- <div class="tabbable"> <!-- Only required for left/right tabs -->
- {% if trait_type == 'all' %}
- {% include 'all_results.html' %}
- {% else %}
- <ul class="nav nav-tabs">
- {% for species in species_groups %}
- <li> <a href="#tab{{ loop.index }}" data-toggle="tab">{{ species }}</a></li>
- {% endfor %}
- </ul>
- <div class="tab-content">
- {% for species in species_groups %}
- <div class="tab-pane active" id="tab{{ loop.index }}">
- <div>
- {#
- <ul class="nav nav-tabs">
- {% if species_groups[species]['phenotype'] %}
- <li class="active"> <a href="#tab{{ loop.index }}_1" data-toggle="tab">Phenotype</a></li>
- {% endif %}
- {% if species_groups[species]['mrna_assay'] %}
- <li> <a href="#tab{{ loop.index }}_2" data-toggle="tab">mRNA Assay</a></li>
- {% endif %}
- {% if species_groups[species]['genotype'] %}
- <li> <a href="#tab{{ loop.index }}_3" data-toggle="tab">Genotype</a></li>
- {% endif %}
- </ul>
- #}
- <div>
- {% if trait_type == 'phenotype' and species_groups[species]['phenotype'] %}
- <table id="pheno_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Id</th>
- <th>Species</th>
- <th>Group</th>
- <th>Description</th>
- <th>LRS</th>
- <th>Year</th>
- <th>Authors</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.phenotype %}
- {% if result.result_fields['species'] == species %}
- <tr>
- <td>{{ result.result_fields['phenotype_id'] }}</td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['description'] }}</td>
- <td>{{ result.result_fields['lrs'] }}</td>
- <td>
- <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result.result_fields['pubmed_id'] }}&dopt=Abstract">
- {{ result.result_fields['year'] }}
- </a>
- </td>
- <td>{{ result.result_fields['authors'] }}</td>
- </tr>
- {% endif %}
- {% endfor %}
- </tbody>
- </table>
- {% endif %}
- {% if trait_type == 'mrna_assay' and species_groups[species]['mrna_assay'] %}
- <table id="mrna_assay_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Record ID</th>
- <th>Species</th>
- <th>Group</th>
- <th>Data Set</th>
- <th>Symbol</th>
- <th>Description</th>
- <th>Location</th>
- <th>Mean Expr</th>
- <th>Max LRS</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.mrna_assay %}
- {% if result.result_fields['species'] == species %}
- <tr>
- <td>
- <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"
- {{ result.result_fields['name'] }}
- </a>
- </td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['dataset_name'] }}</td>
- <td>{{ result.result_fields['symbol'] }}</td>
- <td>{{ result.result_fields['description'] }}</td>
- <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>
- <td>{{ result.result_fields['mean'] }}</td>
- <td>{{ result.result_fields['lrs'] }}</td>
- </tr>
- {% endif %}
- {% endfor %}
- </tbody>
- </table>
- {% endif %}
- {% if trait_type == 'genotype' and species_groups[species]['genotype'] %}
- <table id="geno_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Marker</th>
- <th>Species</th>
- <th>Group</th>
- <th>Data Set</th>
- <th>Location</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.genotype %}
- {% if result.result_fields['species'] == species %}
- <tr>
- <td>
- <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['marker_name'] }}&dataset={{ result.result_fields['dataset'] }}">
- {{ result.result_fields['marker_name'] }}
- </a>
- </td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['dataset_name'] }}</td>
- <td>{{ result.result_fields['chr'] }} : {{ result.result_fields['mb'] }}</td>
- </tr>
- {% endif %}
- {% endfor %}
- </tbody>
- </table>
- {% endif %}
- </div>
- </div>
- </div>
- {% endfor %}
- </div>
- {% endif %}
- </div>
- </div>
-
-<!-- End of body -->
-
-{% endblock %}
-
- {#
- <table id="pheno_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Id</th>
- <th>Species</th>
- <th>Group</th>
- <th>Description</th>
- <th>LRS</th>
- <th>Year</th>
- <th>Authors</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.phenotype %}
- <tr>
- <td>{{ result.result_fields['phenotype_id'] }}</td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['description'] }}</td>
- <td>{{ result.result_fields['lrs'] }}</td>
- <td>
- <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result.result_fields['pubmed_id'] }}&dopt=Abstract">
- {{ result.result_fields['year'] }}
- </a>
- </td>
- <td>{{ result.result_fields['authors'] }}</td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- </div>
- <div class="tab-pane" id="tab2">
- <table id="mrna_assay_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Record ID</th>
- <th>Species</th>
- <th>Group</th>
- <th>Data Set</th>
- <th>Symbol</th>
- <th>Description</th>
- <th>Location</th>
- <th>Mean Expr</th>
- <th>Max LRS</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.mrna_assay %}
- <tr>
- <td>
- <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"
- {{ result.result_fields['name'] }}
- </a>
- </td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['dataset_name'] }}</td>
- <td>{{ result.result_fields['symbol'] }}</td>
- <td>{{ result.result_fields['description'] }}</td>
- <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>
- <td>{{ result.result_fields['mean'] }}</td>
- <td>{{ result.result_fields['lrs'] }}</td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- </div>
- <div class="tab-pane" id="tab3">
- <table id="geno_results" class="table table-hover table-striped table-bordered">
- <thead>
- <tr>
- <th>Marker</th>
- <th>Species</th>
- <th>Group</th>
- <th>Data Set</th>
- <th>Location</th>
- </tr>
- </thead>
- <tbody>
- {% for result in results.genotype %}
- <tr>
- <td>
- <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['marker_name'] }}&dataset={{ result.result_fields['dataset'] }}">
- {{ result.result_fields['marker_name'] }}
- </a>
- </td>
- <td>{{ result.result_fields['species'] }}</td>
- <td>{{ result.result_fields['group_name'] }}</td>
- <td>{{ result.result_fields['dataset_name'] }}</td>
- <td>{{ result.result_fields['chr'] }} : {{ result.result_fields['mb'] }}</td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- </div>
- #}
-
-
-{% block js %}
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
-
-
- <script type="text/javascript" charset="utf-8">
- $(document).ready( function () {
- console.time("Creating table");
- $('#pheno_results, #mrna_assay_results, #geno_results').dataTable( {
- //"sDom": "<<'span3'l><'span3'T><'span4'f>'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p>>",
- //"sDom": "lTftipr",
- "oTableTools": {
- "aButtons": [
- "copy",
- "print",
- {
- "sExtends": "collection",
- "sButtonText": 'Save <span class="caret" />',
- "aButtons": [ "csv", "xls", "pdf" ]
- }
- ],
- "sSwfPath": "/static/packages/TableTools/media/swf/copy_csv_xls_pdf.swf"
- },
- "iDisplayLength": 50,
- "bLengthChange": true,
- "bDeferRender": true,
- "bSortClasses": false
- } );
- console.timeEnd("Creating table");
- });
- </script>
-{% endblock %}
-
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index c2b59c02..b4f5b6c2 100755
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -1,12 +1,10 @@
{% extends "base.html" %}
{% block title %}Trait Data and Analysis{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/css/marker_regression.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/bar_chart.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/box_plot.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/prob_plot.css" />
- <link rel="stylesheet" type="text/css" href="/static/new/css/panelutil.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/scatter-matrix.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/d3-tip.min.css" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/nvd3/nv.d3.min.css" />
@@ -50,7 +48,7 @@
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
- {% include 'show_trait_statistics_new.html' %}
+ {% include 'show_trait_statistics.html' %}
</div>
</div>
</div>
@@ -115,8 +113,6 @@
<script type="text/javascript" src="/static/new/js_external/jstat.min.js"></script>
<script type="text/javascript" src="/static/new/js_external/shapiro-wilk.js"></script>
<script type="text/javascript" src="/static/new/javascript/colorbrewer.js"></script>
- <script type="text/javascript" src="/static/new/packages/ValidationPlugin/dist/jquery.validate.min.js"></script>
- <script type="text/javascript" src="/static/new/javascript/panelutil.js"></script>
<script type="text/javascript" src="/static/new/javascript/stats.js"></script>
<script type="text/javascript" src="/static/new/javascript/box.js"></script>
@@ -136,9 +132,6 @@
<script language="javascript" type="text/javascript" src="/static/new/packages/jsPDF/libs/Blob.js/BlobBuilder.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/jsPDF/jspdf.plugin.standard_fonts_metrics.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/jsPDF/jspdf.plugin.from_html.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/chr_lod_chart.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/create_lodchart.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/lod_chart.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.js"></script>
<script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script>
diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html
index 5b0c74c3..c23cb010 100755
--- a/wqflask/wqflask/templates/show_trait_mapping_tools.html
+++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html
@@ -243,7 +243,7 @@
</div>
<div class="form-group">
<div style="padding-left:15px;" class="controls">
- <button id="interval_mapping_compute" class="btn submit_special btn-primary" data-url="/interval_mapping" title="Compute Interval Mapping">
+ <button id="interval_mapping_compute" class="btn submit_special btn-primary" data-url="/marker_regression" title="Compute Interval Mapping">
<i class="icon-ok-circle icon-white"></i> Compute
</button>
</div>
diff --git a/wqflask/wqflask/templates/show_trait_statistics.html b/wqflask/wqflask/templates/show_trait_statistics.html
index eda5466e..34fa2216 100755
--- a/wqflask/wqflask/templates/show_trait_statistics.html
+++ b/wqflask/wqflask/templates/show_trait_statistics.html
@@ -1,433 +1,155 @@
-<br />
-
<div>
- <h2>Basic Statistics</h2>
-
+ <div class="tabbable"> <!-- Only required for left/right tabs -->
+ <ul class="nav nav-pills">
+ <li class="active">
+ <a href="#stats_tab" data-toggle="tab">Basic Statistics</a>
+ </li>
+ <li>
+ <a href="#histogram_tab" data-toggle="tab">Histogram</a>
+ </li>
+ <li>
+ <a href="#bar_chart_tab" data-toggle="tab">Bar Chart</a>
+ </li>
+ <li>
+ <a href="#probability_plot" data-toggle="tab">Probability Plot</a>
+ </li>
+ {% if g.user_session.user_ob %}
+ <li>
+ <a href="#scatterplot_matrix" data-toggle="tab">Scatterplot Matrix</a>
+ </li>
+ {% endif %}
+ <!--<li>
+ <a href="#box_plot_tab" data-toggle="tab">Box Plot</a>
+ </li>-->
+ </ul>
- <p id="sectionbody2"></p>Include:
- <select name="corr_samples_group" size="1">
+ <div class="tab-content">
+ <div class="tab-pane active" id="stats_tab">
+ <div style="padding: 20px" class="form-horizontal">
+ <table id="stats_table" style="width: 300px; float: left;" class="table table-hover table-striped"></table>
+
+ </div>
+ </div>
+ <div class="tab-pane" id="histogram_tab">
+ <div style="padding: 20px" class="form-horizontal">
+ {% if sample_groups|length != 1 %}
+ <select class="histogram_samples_group">
{% for group, pretty_group in sample_group_types.items() %}
- <option value="{{ group }}">
- {{ pretty_group }}
- </option>
+ <option value="{{ group }}">{{ pretty_group }}</option>
{% endfor %}
- </select><br>
- <br>
- <input type="button" name="Default_Name" class="btn update" value=" Update Figures "><br>
- <br>
-
- {% for sd in stats_data %}
- <div class="ui-tabs" id="{{ 'stats_tabs%i' % loop.index0 }}">
- <ul>
- <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li>
-
- <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li>
-
- <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li>
-
- <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li>
-
- <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li>
- </ul>
-
- <div id="statstabs-1">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td>
- <table cellpadding="20" cellspacing="0">
- <tr>
- <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td>
-
- <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" align="left">N of Samples</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes" id="n_of_samples_value">{{ sd.N }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes" id="mean_value">{{ "%2.3f" % sd.traitmean }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes" id="median_value">{{ "%2.3f" % sd.traitmedian }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitsem }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitstdev }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.min }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.max }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_log2 }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_fold }}</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class=
- "non_bold">Interquartile Range</a></span></td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.interquartile }} </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-5">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/nP_OE9u7BSx.gif" alt="nP_OE9u7BSx.gif" border="0"></td>
- </tr>
-
- <tr>
- <td><br>
- <br>
- This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br>
- <br>
- More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
- about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-2">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td align="left">
- <img src="/image/Box_gUFtEOVI.gif" alt="Box_gUFtEOVI.gif" border="0">
-
- <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p>
- </td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-3">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/Bar_y7L2rYlL.gif" alt="Bar_y7L2rYlL.gif" border="0"></td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-4">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/Bar_1Z4GjYFq.gif" alt="Bar_1Z4GjYFq.gif" border="0"></td>
- </tr>
- </table>
- </div>
- </div>
- {% endfor %}
- {# Not used now - Todo: Delete after we're sure this is right.
- <div class="ui-tabs" id="stats_tabs1">
- <ul>
- <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li>
-
- <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li>
-
- <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li>
-
- <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li>
-
- <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li>
- </ul>
-
- <div id="statstabs-1">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td>
- <table cellpadding="20" cellspacing="0">
- <tr>
- <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td>
-
- <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" align="left">N of Samples</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">71</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">6.109</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">6.084</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">0.022</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">0.187</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">5.782</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">6.579</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">0.797</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">1.74</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class=
- "non_bold">Interquartile Range</a></span></td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">1.13</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-5">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/nP_eSYO7ZQg.gif" alt="nP_eSYO7ZQg.gif" border="0"></td>
- </tr>
-
- <tr>
- <td><br>
- <br>
- This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br>
- <br>
- More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
- about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-2">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td align="left">
- <img src="/image/Box_PWNWQMfj.gif" alt="Box_PWNWQMfj.gif" border="0">
-
- <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p>
- </td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-3">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/Bar_VuPqYbR6.gif" alt="Bar_VuPqYbR6.gif" border="0"></td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-4">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/Bar_9PbdvXZ9.gif" alt="Bar_9PbdvXZ9.gif" border="0"></td>
- </tr>
- </table>
- </div>
- </div>
-
- <div class="ui-tabs" id="stats_tabs2">
-
-
- <ul>
- <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li>
-
- <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li>
-
- <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li>
-
- <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li>
-
- <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li>
- </ul>
-
- <div id="statstabs-1">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td>
- <table cellpadding="20" cellspacing="0">
- <tr>
- <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td>
-
- <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" align="left">N of Samples</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">32</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">6.176</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">6.170</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">0.027</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">0.150</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">5.906</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">6.485</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">0.579</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">1.49</td>
- </tr>
-
- <tr align="right">
- <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class=
- "non_bold">Interquartile Range</a></span></td>
-
- <td class="fs13 b1 cbw c222" nowrap="yes">1.15</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-5">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/nP_swDAFlJy.gif" alt="nP_swDAFlJy.gif" border="0"></td>
- </tr>
-
- <tr>
- <td><br>
- <br>
- This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br>
- <br>
- More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
- about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-2">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td align="left">
- <img src="/image/Box_6sQJ8xhK.gif" alt="Box_6sQJ8xhK.gif" border="0">
-
- <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p>
- </td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-3">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/Bar_QMWE2VEp.gif" alt="Bar_QMWE2VEp.gif" border="0"></td>
- </tr>
- </table>
- </div>
-
- <div id="statstabs-4">
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td><img src="/image/Bar_X07QmgsX.gif" alt="Bar_X07QmgsX.gif" border="0"></td>
- </tr>
- </table>
+ </select>
+ <br><br>
+ {% endif %}
+ <div id="histogram_container">
+ <div id="histogram" class="barchart"></div>
+ </div>
+ </div>
+ </div>
+ <div class="tab-pane" id="bar_chart_tab">
+ <div style="padding: 20px" class="form-horizontal">
+ {% if sample_groups|length != 1 %}
+ <select class="bar_chart_samples_group">
+ {% for group, pretty_group in sample_group_types.items() %}
+ <option value="{{ group }}">{{ pretty_group }}</option>
+ {% endfor %}
+ </select>
+ {% endif %}
+ {% if sample_groups[0].attributes %}
+ <div class="input-append">
+ <select id="color_attribute" size="1">
+ <option value="None">None</option>
+ {% for attribute in sample_groups[0].attributes %}
+ <option value="{{ sample_groups[0].attributes[attribute].name.replace(' ', '_') }}">
+ {{ sample_groups[0].attributes[attribute].name }}</option>
+ {% endfor %}
+ </select>
+ </div>
+ {% endif %}
+ <div id="update_bar_chart" class="btn-group">
+ <button type="button" class="btn btn-default sort_by_name" value="name">
+ <i class="icon-resize-horizontal"></i> Sort By Name
+ </button>
+ <button type="button" class="btn btn-default sort_by_value" value="value">
+ <i class="icon-signal"></i> Sort By Value
+ </button>
+ </div>
+ {% if g.user_session.user_ob %}
+ <div class="btn-group">
+ <button type="button" class="btn btn-default" id="color_by_trait">
+ <i class="icon-tint"></i> Color by Trait
+ </button>
+ </div>
+ {% endif %}
+ </div>
+ <div class="row" style="position:relative">
+ <div id="bar_chart_legend" style="margin-left: 150px; margin-top:20px; position: absolute;">
+ <span id="legend-left"></span>
+ <span id="legend-colors"></span>
+ <span id="legend-right"></span>
+ </div>
+ </div>
+ <div style="margin-left: 20px; margin-right: 20px;" class="row" id="bar_chart_container">
+ <svg></svg>
+ </div>
+ </div>
+ <div class="tab-pane" id="probability_plot">
+ <div style="padding: 20px" class="form-horizontal">
+ {% if sample_groups|length != 1 %}
+ <select class="prob_plot_samples_group">
+ {% for group, pretty_group in sample_group_types.items() %}
+ <option value="{{ group }}">{{ pretty_group }}</option>
+ {% endfor %}
+ </select>
+ <br><br>
+ {% endif %}
+
+ <div id="prob_plot_container">
+ <div id="prob_plot_title"></div>
+ <svg></svg>
+ </div>
+
+ <div>
+ More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
+ about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
+ </div>
+
+ </div>
+
+ </div>
+<!-- <div class="tab-pane" id="box_plot_tab">
+ {% if sample_groups|length > 1 %}
+ <select class="box_plot_samples_group">
+ {% for group, pretty_group in sample_group_types.items() %}
+ <option value="{{ group }}">{{ pretty_group }}</option>
+ {% endfor %}
+ </select>
+ <br><br>
+ {% endif %}
+ <div id="box_plot_container">
+ <div id="box_plot"></div>
+ </div>
+ </div>-->
+ {% if g.user_session.user_ob %}
+ <div class="tab-pane" id="scatterplot_matrix">
+
+ <div style="margin-bottom:40px;" class="btn-group">
+ <button type="button" class="btn btn-default" id="select_compare_trait">
+ <i class="icon-th-large"></i> Select Traits
+ </button>
+ <button type="button" class="btn btn-default" id="clear_compare_trait">
+ <i class="icon-trash"></i> Clear
+ </button>
+ </div>
+ <div id="scatterplot_container">
+ <div id="comparison_scatterplot" class="qtlcharts"></div>
+ </div>
+ </div>
+ {% endif %}
</div>
- </div>
- </td>
- </tr>
- </table>
- #}
+ </div>
+ <!--</div>-->
+ <div id="collections_holder_wrapper" style="display:none;">
+ <div id="collections_holder"></div>
+ </div>
+
+</div>
diff --git a/wqflask/wqflask/templates/show_trait_statistics_new.html b/wqflask/wqflask/templates/show_trait_statistics_new.html
deleted file mode 100755
index 34fa2216..00000000
--- a/wqflask/wqflask/templates/show_trait_statistics_new.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<div>
- <div class="tabbable"> <!-- Only required for left/right tabs -->
- <ul class="nav nav-pills">
- <li class="active">
- <a href="#stats_tab" data-toggle="tab">Basic Statistics</a>
- </li>
- <li>
- <a href="#histogram_tab" data-toggle="tab">Histogram</a>
- </li>
- <li>
- <a href="#bar_chart_tab" data-toggle="tab">Bar Chart</a>
- </li>
- <li>
- <a href="#probability_plot" data-toggle="tab">Probability Plot</a>
- </li>
- {% if g.user_session.user_ob %}
- <li>
- <a href="#scatterplot_matrix" data-toggle="tab">Scatterplot Matrix</a>
- </li>
- {% endif %}
- <!--<li>
- <a href="#box_plot_tab" data-toggle="tab">Box Plot</a>
- </li>-->
- </ul>
-
- <div class="tab-content">
- <div class="tab-pane active" id="stats_tab">
- <div style="padding: 20px" class="form-horizontal">
- <table id="stats_table" style="width: 300px; float: left;" class="table table-hover table-striped"></table>
-
- </div>
- </div>
- <div class="tab-pane" id="histogram_tab">
- <div style="padding: 20px" class="form-horizontal">
- {% if sample_groups|length != 1 %}
- <select class="histogram_samples_group">
- {% for group, pretty_group in sample_group_types.items() %}
- <option value="{{ group }}">{{ pretty_group }}</option>
- {% endfor %}
- </select>
- <br><br>
- {% endif %}
- <div id="histogram_container">
- <div id="histogram" class="barchart"></div>
- </div>
- </div>
- </div>
- <div class="tab-pane" id="bar_chart_tab">
- <div style="padding: 20px" class="form-horizontal">
- {% if sample_groups|length != 1 %}
- <select class="bar_chart_samples_group">
- {% for group, pretty_group in sample_group_types.items() %}
- <option value="{{ group }}">{{ pretty_group }}</option>
- {% endfor %}
- </select>
- {% endif %}
- {% if sample_groups[0].attributes %}
- <div class="input-append">
- <select id="color_attribute" size="1">
- <option value="None">None</option>
- {% for attribute in sample_groups[0].attributes %}
- <option value="{{ sample_groups[0].attributes[attribute].name.replace(' ', '_') }}">
- {{ sample_groups[0].attributes[attribute].name }}</option>
- {% endfor %}
- </select>
- </div>
- {% endif %}
- <div id="update_bar_chart" class="btn-group">
- <button type="button" class="btn btn-default sort_by_name" value="name">
- <i class="icon-resize-horizontal"></i> Sort By Name
- </button>
- <button type="button" class="btn btn-default sort_by_value" value="value">
- <i class="icon-signal"></i> Sort By Value
- </button>
- </div>
- {% if g.user_session.user_ob %}
- <div class="btn-group">
- <button type="button" class="btn btn-default" id="color_by_trait">
- <i class="icon-tint"></i> Color by Trait
- </button>
- </div>
- {% endif %}
- </div>
- <div class="row" style="position:relative">
- <div id="bar_chart_legend" style="margin-left: 150px; margin-top:20px; position: absolute;">
- <span id="legend-left"></span>
- <span id="legend-colors"></span>
- <span id="legend-right"></span>
- </div>
- </div>
- <div style="margin-left: 20px; margin-right: 20px;" class="row" id="bar_chart_container">
- <svg></svg>
- </div>
- </div>
- <div class="tab-pane" id="probability_plot">
- <div style="padding: 20px" class="form-horizontal">
- {% if sample_groups|length != 1 %}
- <select class="prob_plot_samples_group">
- {% for group, pretty_group in sample_group_types.items() %}
- <option value="{{ group }}">{{ pretty_group }}</option>
- {% endfor %}
- </select>
- <br><br>
- {% endif %}
-
- <div id="prob_plot_container">
- <div id="prob_plot_title"></div>
- <svg></svg>
- </div>
-
- <div>
- More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
- about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
- </div>
-
- </div>
-
- </div>
-<!-- <div class="tab-pane" id="box_plot_tab">
- {% if sample_groups|length > 1 %}
- <select class="box_plot_samples_group">
- {% for group, pretty_group in sample_group_types.items() %}
- <option value="{{ group }}">{{ pretty_group }}</option>
- {% endfor %}
- </select>
- <br><br>
- {% endif %}
- <div id="box_plot_container">
- <div id="box_plot"></div>
- </div>
- </div>-->
- {% if g.user_session.user_ob %}
- <div class="tab-pane" id="scatterplot_matrix">
-
- <div style="margin-bottom:40px;" class="btn-group">
- <button type="button" class="btn btn-default" id="select_compare_trait">
- <i class="icon-th-large"></i> Select Traits
- </button>
- <button type="button" class="btn btn-default" id="clear_compare_trait">
- <i class="icon-trash"></i> Clear
- </button>
- </div>
- <div id="scatterplot_container">
- <div id="comparison_scatterplot" class="qtlcharts"></div>
- </div>
- </div>
- {% endif %}
- </div>
- </div>
- <!--</div>-->
- <div id="collections_holder_wrapper" style="display:none;">
- <div id="collections_holder"></div>
- </div>
-
-</div>
diff --git a/wqflask/wqflask/templates/whats_new.html b/wqflask/wqflask/templates/whats_new.html
deleted file mode 100755
index 753c0d7d..00000000
--- a/wqflask/wqflask/templates/whats_new.html
+++ /dev/null
@@ -1,18 +0,0 @@
-{% extends "base.html" %}
-{% block title %}GeneNetwork{% endblock %}
-{% block content %}
-<!-- Start of body -->
-
- <!-- Body Start from Here -->
- <P class="title">Latest Updates and News from Genenetwork </P>
- {% for news_item in news_items %}
- <h4>{{ news_item.title }} ({{ news_item.date }})</h4>
- {{ news_item.details | safe }}
- <br /><br />
- {% endfor %}
-
-
-
-
-<!-- End of body -->
-{% endblock %}
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 73d9ddab..aa303e97 100755
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -43,7 +43,6 @@ from wqflask.show_trait import export_trait_data
from wqflask.heatmap import heatmap
from wqflask.marker_regression import marker_regression
from wqflask.marker_regression import marker_regression_gn1
-from wqflask.interval_mapping import interval_mapping
from wqflask.correlation import show_corr_results
from wqflask.correlation_matrix import show_corr_matrix
from wqflask.correlation import corr_scatter_plot
@@ -411,59 +410,6 @@ def marker_regression_page():
return rendered_template
-@app.route("/interval_mapping", methods=('POST',))
-def interval_mapping_page():
- initial_start_vars = request.form
- temp_uuid = initial_start_vars['temp_uuid']
- wanted = (
- 'trait_id',
- 'dataset',
- 'mapping_method',
- 'chromosome',
- 'num_perm',
- 'manhattan_plot',
- 'do_bootstraps',
- 'display_additive',
- 'default_control_locus',
- 'control_locus'
- )
-
- start_vars = {}
- for key, value in initial_start_vars.iteritems():
- if key in wanted or key.startswith(('value:')):
- start_vars[key] = value
-
- version = "v1"
- key = "interval_mapping:{}:".format(version) + json.dumps(start_vars, sort_keys=True)
- print("key is:", pf(key))
- with Bench("Loading cache"):
- result = Redis.get(key)
-
- if result:
- print("Cache hit!!!")
- with Bench("Loading results"):
- result = pickle.loads(result)
- else:
- print("Cache miss!!!")
- template_vars = interval_mapping.IntervalMapping(start_vars, temp_uuid)
-
- template_vars.js_data = json.dumps(template_vars.js_data,
- default=json_default_handler,
- indent=" ")
-
- result = template_vars.__dict__
-
- for item in template_vars.__dict__.keys():
- print(" ---**--- {}: {}".format(type(template_vars.__dict__[item]), item))
-
- #causeerror
- Redis.set(key, pickle.dumps(result, pickle.HIGHEST_PROTOCOL))
- Redis.expire(key, 60*60)
-
- with Bench("Rendering template"):
- rendered_template = render_template("marker_regression.html", **result)
-
- return rendered_template
@app.route("/export", methods = ('POST',))
def export():
@@ -518,10 +464,6 @@ def corr_scatter_plot_page():
indent=" ")
return render_template("corr_scatterplot.html", **template_vars.__dict__)
-#@app.route("/int_mapping", methods=('POST',))
-#def interval_mapping_page():
-# template_vars = interval_mapping.IntervalMapping(request.args)
-# return render_template("interval_mapping.html", **template_vars.__dict__)
# Todo: Can we simplify this? -Sam
def sharing_info_page():