packages feed

Rlang-QQ 0.1.1.0 → 0.2.0.0

raw patch · 27 files changed

+2700/−360 lines, 27 filesdep +filepathdep +splitdep ~HListdep ~template-haskellbinary-added

Dependencies added: filepath, split

Dependency ranges changed: HList, template-haskell

Files

Rlang-QQ.cabal view
@@ -1,6 +1,6 @@ name: Rlang-QQ-version: 0.1.1.0-cabal-version: >=1.8+version: 0.2.0.0+cabal-version: >=1.10 build-type: Simple license: BSD3 license-file: LICENSE@@ -18,12 +18,11 @@              > R --no-save <<< 'install.packages("knitr")' category: Development author: Adam Vogt <vogt.adam@gmail.com>-tested-with: GHC == 7.6.2+tested-with: GHC == 7.6.2, GHC == 7.8-RC1 data-dir: rsrc data-files: Tree.R parseTreeExample.R extra-source-files: examples/*.hs,                     examples/*.Rmd,-                    examples/*.ref                     examples/*.png                     examples/*.ipynb                     examples/*.html@@ -36,12 +35,34 @@ library     hs-source-dirs: src +    default-language:   Haskell2010+    default-extensions: ConstraintKinds+                        DataKinds+                        FlexibleContexts+                        FlexibleInstances+                        FunctionalDependencies+                        GADTs+                        KindSignatures+                        MultiParamTypeClasses+                        ScopedTypeVariables+                        TypeFamilies+                        TypeOperators+                        ViewPatterns++    other-extensions:   NoMonomorphismRestriction+                        PolyKinds+                        TemplateHaskell+                        UndecidableInstances+    if (impl(ghc > 7.7))+      default-extensions: AllowAmbiguousTypes+     build-depends: base ==4.*, containers,-                   template-haskell ==2.8.*, directory, process,+                   template-haskell <= 3, directory, process,                    trifecta ==1.*, utf8-string ==0.3.*, bytestring,                    Cabal, syb, mtl, MaybeT,-                   binary, vector, HList >= 0.3, temporary,+                   binary, vector, HList >= 0.3.4, temporary,                    text, array, zlib, repa,+                   filepath, split,                    haskell-src-meta      exposed-modules: RlangQQ.Internal@@ -50,6 +71,7 @@                      RlangQQ.FN                      RlangQQ.NatQQ                      RlangQQ.MakeRecord+                     RlangQQ.ParseKnitted                      RlangQQ                      HListExtras 
examples/Makefile view
@@ -6,6 +6,7 @@  default: test6.html test7.html 	cd ../; runghc examples/runexamples.hs+	runghc examples/tests.hs 	ghc -O2 romberg.hs; ./romberg  %.html: %.md@@ -28,5 +29,5 @@  installdeps: 	R --no-save <<< 'install.packages(c("knitr", "lattice", "reshape", "ggplot2", "lattice"))'-	cabal install lens numbers+	cabal install lens numbers hspec 
+ examples/ihaskell3.html view
@@ -0,0 +1,1998 @@+<!DOCTYPE html>+<html>+<head>++<meta charset="utf-8" />+<title>ihaskell2</title>++<style type="text/css">+    .clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}+.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}+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{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}+#map_canvas img,.google-maps 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,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}+label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}+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}+@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important} a,a:visited{text-decoration:underline} a[href]:after{content:" (" attr(href) ")"} abbr[title]:after{content:" (" attr(title) ")"} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""} pre,blockquote{border:1px solid #999;page-break-inside:avoid} thead{display:table-header-group} tr,img{page-break-inside:avoid} img{max-width:100% !important} @page {margin:.5cm}p,h2,h3{orphans:3;widows:3} h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:20px;color:#000;background-color:#fff}+a{color:#08c;text-decoration:none}+a:hover,a:focus{color:#005580;text-decoration:underline}+.img-rounded{border-radius:6px;-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{border-radius:500px;-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}+.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}+.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;content:"";line-height:0}+.row-fluid:after{clear:both}+.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%}+.row-fluid [class*="span"]:first-child{margin-left:0}+.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}+.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;content:"";line-height:0}+.container:after{clear:both}+.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0}+.container-fluid:after{clear:both}+p{margin:0 0 10px}+.lead{margin-bottom:20px;font-size:19.5px;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}+a.muted:hover,a.muted:focus{color:#808080}+.text-warning{color:#c09853}+a.text-warning:hover,a.text-warning:focus{color:#a47e3c}+.text-error{color:#b94a48}+a.text-error:hover,a.text-error:focus{color:#953b39}+.text-info{color:#3a87ad}+a.text-info:hover,a.text-info:focus{color:#2d6987}+.text-success{color:#468847}+a.text-success:hover,a.text-success:focus{color:#356635}+.text-left{text-align:left}+.text-right{text-align:right}+.text-center{text-align:center}+h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;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,h2,h3{line-height:40px}+h1{font-size:35.75px}+h2{font-size:29.25px}+h3{font-size:22.75px}+h4{font-size:16.25px}+h5{font-size:13px}+h6{font-size:11.049999999999999px}+h1 small{font-size:22.75px}+h2 small{font-size:16.25px}+h3 small{font-size:13px}+h4 small{font-size:13px}+.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}+ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px}+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;content:"";line-height:0}+.dl-horizontal:after{clear:both}+.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;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],abbr[data-original-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:16.25px;font-weight:300;line-height:1.25}+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:monospace;font-size:11px;color:#333;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}+code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap}+pre{display:block;padding:9.5px;margin:0 0 10px;font-size:12px;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);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}+pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;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:19.5px;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:13px;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:10px;font-size:13px;line-height:20px;color:#555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle}+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,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)}+input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal}+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;border:1px solid #ccc;background-color:#fff}+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;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);cursor:not-allowed}+.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:20px;padding-left:20px}+.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}+.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;content:"";line-height:0}+.controls-row:after{clear:both}+.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}+.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}+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 .control-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 .control-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 .control-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 .control-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:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus: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;content:"";line-height:0}+.form-actions:after{clear:both}+.help-block,.help-inline{color:#262626}+.help-block{display:block;margin-bottom:10px}+.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}+.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;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,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:13px}+.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;vertical-align:top;border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 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:13px;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,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;border-radius:0;-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{border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}+.input-append input,.input-append select,.input-append .uneditable-input{border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}+.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}+.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}+.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}+.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}+.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}+.input-prepend.input-append .btn-group:first-child{margin-left:0}+input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;border-radius:15px;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}+.form-search .input-append .search-query,.form-search .input-prepend .search-query{border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}+.form-search .input-append .search-query{border-radius:14px 0 0 14px;-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{border-radius:0 14px 14px 0;-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{border-radius:0 14px 14px 0;-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{border-radius:14px 0 0 14px;-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;*zoom:1;margin-bottom:0;vertical-align:middle}+.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;content:"";line-height:0}+.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,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.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 .table{background-color:#fff}+.table-condensed th,.table-condensed td{padding:4px 5px}+.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;border-radius:4px;-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,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}+.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius: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 tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius: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 tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}+.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}+.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}+.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;-moz-border-radius-topleft:4px;border-top-left-radius: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;-moz-border-radius-topright:4px;border-top-right-radius: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 td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}+.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}+.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}+.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}+.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}+.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}+.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}+.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}+.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}+.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}+.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}+.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}+.table td.span12,.table th.span12{float:none;width:924px;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-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px}+.icon-white,.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:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>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{background-position:-216px -120px;width:16px}+.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;width:16px}+.icon-folder-open{background-position:-408px -120px;width:16px}+.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>li>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,.dropdown-submenu:focus>a{text-decoration:none;color:#fff;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,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;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>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}+.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default}+.open{*z-index:1000}.open>.dropdown-menu{display:block}+.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}+.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;border-radius:0 6px 6px 6px;-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}+.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;border-radius:5px 5px 5px 0;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}+.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}+.dropdown-submenu:hover>a:after{border-left-color:#fff}+.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;border-radius:6px 0 6px 6px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}+.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px}+.typeahead{z-index:1051;margin-top:2px;border-radius:4px;-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;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}+.well-small{padding:9px;border-radius:3px;-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,.close:focus{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;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:13px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #fff, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)}.btn:hover,.btn:focus,.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,.btn:focus{color:#333;text-decoration:none;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-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)}+.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}+.btn-large{padding:11px 19px;font-size:16.25px;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}+.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}+.btn-small{padding:2px 10px;font-size:11.049999999999999px;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}+.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}+.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}+.btn-mini{padding:0 6px;font-size:9.75px;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}+.btn-block{display:block;width:100%;padding-left:0;padding-right: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-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);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);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-primary:hover,.btn-primary:focus,.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-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);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);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-warning:hover,.btn-warning:focus,.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-image:-moz-linear-gradient(top, #ee5f5b, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);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);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-danger:hover,.btn-danger:focus,.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-image:-moz-linear-gradient(top, #62c462, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);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);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-success:hover,.btn-success:focus,.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-image:-moz-linear-gradient(top, #5bc0de, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);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);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-info:hover,.btn-info:focus,.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-image:-moz-linear-gradient(top, #444, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);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);*background-color:#222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-inverse:hover,.btn-inverse:focus,.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{border-color:transparent;cursor:pointer;color:#08c;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}+.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}+.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}+.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em}.btn-group:first-child{*margin-left:0}+.btn-group+.btn-group{margin-left:5px}+.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}+.btn-group>.btn{position:relative;border-radius:0;-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,.btn-group>.popover{font-size:13px}+.btn-group>.btn-mini{font-size:9.75px}+.btn-group>.btn-small{font-size:11.049999999999999px}+.btn-group>.btn-large{font-size:16.25px}+.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}+.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}+.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}+.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius: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-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}+.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}+.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}+.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}+.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(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-large .caret{margin-top:6px}+.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px}+.btn-mini .caret,.btn-small .caret{margin-top:8px}+.dropup .btn-large .caret{border-bottom-width:5px}+.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;max-width:100%;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}+.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px}+.btn-group-vertical>.btn:first-child{border-radius:4px 4px 0 0;-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{border-radius:0 0 4px 4px;-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{border-radius:6px 6px 0 0;-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{border-radius:0 0 6px 6px;-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;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}+.alert,.alert h4{color:#c09853}+.alert h4{margin:0}+.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}+.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}+.alert-success h4{color:#468847}+.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}+.alert-danger h4,.alert-error h4{color:#b94a48}+.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}+.alert-info h4{color:#3a87ad}+.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-left:0;margin-bottom:20px;list-style:none}+.nav>li>a{display:block}+.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}+.nav>li>a>img{max-width:none}+.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-left:15px;padding-right:15px;margin-bottom:0}+.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-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,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}+.nav-list [class^="icon-"],.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;content:"";line-height:0}+.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;border-radius:4px 4px 0 0;-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,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}+.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}+.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}+.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{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;border-radius:0;-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;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}+.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}+.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2}+.nav-pills.nav-stacked>li>a{margin-bottom:3px}+.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}+.nav-tabs .dropdown-menu{border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}+.nav-pills .dropdown-menu{border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}+.nav .dropdown-toggle .caret{border-top-color:#08c;border-bottom-color:#08c;margin-top:6px}+.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .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,.nav>.dropdown.active>a:focus{cursor:pointer}+.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{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,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}+.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}+.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0}+.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{border-radius:0 0 4px 4px;-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,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd}+.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{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;border-radius:4px 0 0 4px;-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,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}+.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{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;border-radius:0 4px 4px 0;-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,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}+.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}+.nav>.disabled>a{color:#999}+.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default}+.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2}+.navbar-inner{min-height:36px;padding-left:20px;padding-right: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;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);*zoom:1}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0}+.navbar-inner:after{clear:both}+.navbar .container{width:auto}+.nav-collapse.collapse{height:auto;overflow:visible}+.navbar .brand{float:left;display:block;padding:8px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}+.navbar-text{margin-bottom:0;line-height:36px;color:#777}+.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}+.navbar .divider-vertical{height:36px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #fff}+.navbar .btn,.navbar .btn-group{margin-top:3px}+.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}+.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0}+.navbar-form:after{clear:both}+.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:3px}+.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:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}+.navbar-search{position:relative;float:left;margin-top:3px;margin-bottom:0}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;border-radius:15px;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}+.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{border-radius:0;-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-left:0;padding-right:0;border-radius: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:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1)}+.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(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:8px 15px 8px;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{background-color:transparent;color:#333;text-decoration:none}+.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-left:5px;margin-right:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);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);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.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{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:9px}+.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:10px}+.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0;bottom:-7px;top:auto}+.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #fff;border-bottom:0;bottom:-6px;top:auto}+.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}+.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555}+.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{left:auto;right:0}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px}+.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px}+.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;border-radius:6px 0 6px 6px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}+.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;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525}+.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,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}+.navbar-inverse .brand{color:#999}+.navbar-inverse .navbar-text{color:#999}+.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#fff}+.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,.navbar-inverse .navbar-link:focus{color:#fff}+.navbar-inverse .divider-vertical{border-left-color:#111;border-right-color:#222}+.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{background-color:#111;color:#fff}+.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}+.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,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.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;-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);outline:0}+.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #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-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);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);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.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;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #fff}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}+.breadcrumb>.active{color:#999}+.pagination{margin:20px 0}+.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}+.pagination ul>li>a:hover,.pagination ul>li>a:focus,.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,.pagination ul>.disabled>a:focus{color:#999;background-color:transparent;cursor:default}+.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}+.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}+.pagination-centered{text-align:center}+.pagination-right{text-align:right}+.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:16.25px}+.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}+.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}+.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px}+.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px}+.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.049999999999999px}+.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:9.75px}+.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1}.pager:before,.pager:after{display:table;content:"";line-height:0}+.pager:after{clear:both}+.pager li{display:inline}+.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}+.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}+.pager .next>a,.pager .next>span{float:right}+.pager .previous>a,.pager .previous>span{float:left}+.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:default}+.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:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;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;outline:none}.modal.fade{-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;top:-25%}+.modal.fade.in{top:10%}+.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{position:relative;overflow-y:auto;max-height:400px;padding:15px}+.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;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;*zoom:1}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0}+.modal-footer:after{clear:both}+.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}+.modal-footer .btn-group .btn+.btn{margin-left:-1px}+.modal-footer .btn-block+.btn-block{margin-left:0}+.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}+.tooltip.top{margin-top:-3px;padding:5px 0}+.tooltip.right{margin-left:3px;padding:0 5px}+.tooltip.bottom{margin-top:3px;padding:5px 0}+.tooltip.left{margin-left:-3px;padding:0 5px}+.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px;-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-width:5px 5px 0;border-top-color:#000}+.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}+.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}+.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}+.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;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);white-space:normal}.popover.top{margin-top:-10px}+.popover.right{margin-left:10px}+.popover.bottom{margin-top:10px}+.popover.left{margin-left:-10px}+.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}+.popover-content{padding:9px 14px}+.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}+.popover .arrow{border-width:11px}+.popover .arrow:after{border-width:10px;content:""}+.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}+.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}+.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}+.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}+.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0}+.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,a.thumbnail:focus{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-left:auto;margin-right:auto}+.thumbnail .caption{padding:9px;color:#555}+.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}+.media,.media .media{margin-top:15px}+.media:first-child{margin-top:0}+.media-object{display:block}+.media-heading{margin:0 0 5px}+.media>.pull-left{margin-right:10px}+.media>.pull-right{margin-left:10px}+.media-list{margin-left:0;list-style:none}+.label,.badge{display:inline-block;padding:2px 4px;font-size:10.998px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999}+.label{border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}+.badge{padding-left:9px;padding-right:9px;border-radius:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}+.label:empty,.badge:empty{display:none}+a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{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{overflow:hidden;height:20px;margin-bottom:20px;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;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);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}+.progress .bar{width:0;height:100%;color:#fff;float:left;font-size:12px;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,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)}+.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.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(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.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(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.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(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.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(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.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;border-radius:4px;-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{overflow:hidden;width:100%;position:relative}+.carousel-inner>.item{display:none;position:relative;-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-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}+.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}+.carousel-inner>.active{left:0}+.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}+.carousel-inner>.next{left:100%}+.carousel-inner>.prev{left:-100%}+.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}+.carousel-inner>.active.left{left:-100%}+.carousel-inner>.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{left:auto;right:15px}+.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}+.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}+.carousel-indicators .active{background-color:#fff}+.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}+.carousel-caption h4,.carousel-caption p{color:#fff;line-height:20px}+.carousel-caption h4{margin:0 0 5px}+.carousel-caption p{margin-bottom:0}+.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px}+.hero-unit li{line-height:30px}+.pull-right{float:right}+.pull-left{float:left}+.hide{display:none}+.show{display:block}+.invisible{visibility:hidden}+.affix{position:fixed}+@-ms-viewport{width:device-width}.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}}.visible-print{display:none !important}+@media print{.visible-print{display:inherit !important} .hidden-print{display:none !important}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0} .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;content:"";line-height:0} .row-fluid:after{clear:both} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%} .row-fluid [class*="span"]:first-child{margin-left:0} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%} .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;content:"";line-height:0} .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;content:"";line-height:0} .row-fluid:after{clear:both} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%} .row-fluid [class*="span"]:first-child{margin-left:0} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%} .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-left:20px;padding-right:20px} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px} .container-fluid{padding:0} .dl-horizontal dt{float:none;clear:none;width:auto;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"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;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} .row-fluid [class*="offset"]:first-child{margin-left:0} .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;left:20px;right:20px;width:auto;margin:0}.modal.fade{top:-100px} .modal.fade.in{top:20px}}@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-left:10px;padding-right:10px} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px} .media-object{margin-right:0;margin-left:0} .modal{top:10px;left:10px;right: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-left:10px;padding-right: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;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;border-radius:4px;-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 .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111} .nav-collapse.in .btn-group{margin-top:5px;padding:0} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;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 .open>.dropdown-menu{display:block} .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,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.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{overflow:hidden;height:0} .navbar .btn-navbar{display:block} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px}}@media (min-width:979px + 1){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}@font-face{font-family:'FontAwesome';src:url('../components/font-awesome/font/fontawesome-webfont.eot?v=3.2.1');src:url('../components/font-awesome/font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../components/font-awesome/font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../components/font-awesome/font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../components/font-awesome/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}+[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}+.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}+a [class^="icon-"],a [class*=" icon-"]{display:inline}+[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:.2857142857142857em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em}+.icons-ul{margin-left:2.142857142857143em;list-style-type:none}.icons-ul>li{position:relative}+.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit}+[class^="icon-"].hide,[class*=" icon-"].hide{display:none}+.icon-muted{color:#eee}+.icon-light{color:#fff}+.icon-dark{color:#333}+.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}+.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}+.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}+.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}+.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;border-radius:7px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}+.pull-right{float:right}+.pull-left{float:left}+[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}+[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}+[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat;margin-top:0}+.icon-white,.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-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}+.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em}+.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}+.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em}+.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em}+.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em}+.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em}+.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em}+.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em}+.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em}+.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit}+.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}+.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}+.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}+a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none}+@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)} 100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)} 100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)} 100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)} 100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}+.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}+.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}+.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}+.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}+a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}+.icon-glass:before{content:"\f000"}+.icon-music:before{content:"\f001"}+.icon-search:before{content:"\f002"}+.icon-envelope-alt:before{content:"\f003"}+.icon-heart:before{content:"\f004"}+.icon-star:before{content:"\f005"}+.icon-star-empty:before{content:"\f006"}+.icon-user:before{content:"\f007"}+.icon-film:before{content:"\f008"}+.icon-th-large:before{content:"\f009"}+.icon-th:before{content:"\f00a"}+.icon-th-list:before{content:"\f00b"}+.icon-ok:before{content:"\f00c"}+.icon-remove:before{content:"\f00d"}+.icon-zoom-in:before{content:"\f00e"}+.icon-zoom-out:before{content:"\f010"}+.icon-power-off:before,.icon-off:before{content:"\f011"}+.icon-signal:before{content:"\f012"}+.icon-gear:before,.icon-cog:before{content:"\f013"}+.icon-trash:before{content:"\f014"}+.icon-home:before{content:"\f015"}+.icon-file-alt:before{content:"\f016"}+.icon-time:before{content:"\f017"}+.icon-road:before{content:"\f018"}+.icon-download-alt:before{content:"\f019"}+.icon-download:before{content:"\f01a"}+.icon-upload:before{content:"\f01b"}+.icon-inbox:before{content:"\f01c"}+.icon-play-circle:before{content:"\f01d"}+.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}+.icon-refresh:before{content:"\f021"}+.icon-list-alt:before{content:"\f022"}+.icon-lock:before{content:"\f023"}+.icon-flag:before{content:"\f024"}+.icon-headphones:before{content:"\f025"}+.icon-volume-off:before{content:"\f026"}+.icon-volume-down:before{content:"\f027"}+.icon-volume-up:before{content:"\f028"}+.icon-qrcode:before{content:"\f029"}+.icon-barcode:before{content:"\f02a"}+.icon-tag:before{content:"\f02b"}+.icon-tags:before{content:"\f02c"}+.icon-book:before{content:"\f02d"}+.icon-bookmark:before{content:"\f02e"}+.icon-print:before{content:"\f02f"}+.icon-camera:before{content:"\f030"}+.icon-font:before{content:"\f031"}+.icon-bold:before{content:"\f032"}+.icon-italic:before{content:"\f033"}+.icon-text-height:before{content:"\f034"}+.icon-text-width:before{content:"\f035"}+.icon-align-left:before{content:"\f036"}+.icon-align-center:before{content:"\f037"}+.icon-align-right:before{content:"\f038"}+.icon-align-justify:before{content:"\f039"}+.icon-list:before{content:"\f03a"}+.icon-indent-left:before{content:"\f03b"}+.icon-indent-right:before{content:"\f03c"}+.icon-facetime-video:before{content:"\f03d"}+.icon-picture:before{content:"\f03e"}+.icon-pencil:before{content:"\f040"}+.icon-map-marker:before{content:"\f041"}+.icon-adjust:before{content:"\f042"}+.icon-tint:before{content:"\f043"}+.icon-edit:before{content:"\f044"}+.icon-share:before{content:"\f045"}+.icon-check:before{content:"\f046"}+.icon-move:before{content:"\f047"}+.icon-step-backward:before{content:"\f048"}+.icon-fast-backward:before{content:"\f049"}+.icon-backward:before{content:"\f04a"}+.icon-play:before{content:"\f04b"}+.icon-pause:before{content:"\f04c"}+.icon-stop:before{content:"\f04d"}+.icon-forward:before{content:"\f04e"}+.icon-fast-forward:before{content:"\f050"}+.icon-step-forward:before{content:"\f051"}+.icon-eject:before{content:"\f052"}+.icon-chevron-left:before{content:"\f053"}+.icon-chevron-right:before{content:"\f054"}+.icon-plus-sign:before{content:"\f055"}+.icon-minus-sign:before{content:"\f056"}+.icon-remove-sign:before{content:"\f057"}+.icon-ok-sign:before{content:"\f058"}+.icon-question-sign:before{content:"\f059"}+.icon-info-sign:before{content:"\f05a"}+.icon-screenshot:before{content:"\f05b"}+.icon-remove-circle:before{content:"\f05c"}+.icon-ok-circle:before{content:"\f05d"}+.icon-ban-circle:before{content:"\f05e"}+.icon-arrow-left:before{content:"\f060"}+.icon-arrow-right:before{content:"\f061"}+.icon-arrow-up:before{content:"\f062"}+.icon-arrow-down:before{content:"\f063"}+.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}+.icon-resize-full:before{content:"\f065"}+.icon-resize-small:before{content:"\f066"}+.icon-plus:before{content:"\f067"}+.icon-minus:before{content:"\f068"}+.icon-asterisk:before{content:"\f069"}+.icon-exclamation-sign:before{content:"\f06a"}+.icon-gift:before{content:"\f06b"}+.icon-leaf:before{content:"\f06c"}+.icon-fire:before{content:"\f06d"}+.icon-eye-open:before{content:"\f06e"}+.icon-eye-close:before{content:"\f070"}+.icon-warning-sign:before{content:"\f071"}+.icon-plane:before{content:"\f072"}+.icon-calendar:before{content:"\f073"}+.icon-random:before{content:"\f074"}+.icon-comment:before{content:"\f075"}+.icon-magnet:before{content:"\f076"}+.icon-chevron-up:before{content:"\f077"}+.icon-chevron-down:before{content:"\f078"}+.icon-retweet:before{content:"\f079"}+.icon-shopping-cart:before{content:"\f07a"}+.icon-folder-close:before{content:"\f07b"}+.icon-folder-open:before{content:"\f07c"}+.icon-resize-vertical:before{content:"\f07d"}+.icon-resize-horizontal:before{content:"\f07e"}+.icon-bar-chart:before{content:"\f080"}+.icon-twitter-sign:before{content:"\f081"}+.icon-facebook-sign:before{content:"\f082"}+.icon-camera-retro:before{content:"\f083"}+.icon-key:before{content:"\f084"}+.icon-gears:before,.icon-cogs:before{content:"\f085"}+.icon-comments:before{content:"\f086"}+.icon-thumbs-up-alt:before{content:"\f087"}+.icon-thumbs-down-alt:before{content:"\f088"}+.icon-star-half:before{content:"\f089"}+.icon-heart-empty:before{content:"\f08a"}+.icon-signout:before{content:"\f08b"}+.icon-linkedin-sign:before{content:"\f08c"}+.icon-pushpin:before{content:"\f08d"}+.icon-external-link:before{content:"\f08e"}+.icon-signin:before{content:"\f090"}+.icon-trophy:before{content:"\f091"}+.icon-github-sign:before{content:"\f092"}+.icon-upload-alt:before{content:"\f093"}+.icon-lemon:before{content:"\f094"}+.icon-phone:before{content:"\f095"}+.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}+.icon-bookmark-empty:before{content:"\f097"}+.icon-phone-sign:before{content:"\f098"}+.icon-twitter:before{content:"\f099"}+.icon-facebook:before{content:"\f09a"}+.icon-github:before{content:"\f09b"}+.icon-unlock:before{content:"\f09c"}+.icon-credit-card:before{content:"\f09d"}+.icon-rss:before{content:"\f09e"}+.icon-hdd:before{content:"\f0a0"}+.icon-bullhorn:before{content:"\f0a1"}+.icon-bell:before{content:"\f0a2"}+.icon-certificate:before{content:"\f0a3"}+.icon-hand-right:before{content:"\f0a4"}+.icon-hand-left:before{content:"\f0a5"}+.icon-hand-up:before{content:"\f0a6"}+.icon-hand-down:before{content:"\f0a7"}+.icon-circle-arrow-left:before{content:"\f0a8"}+.icon-circle-arrow-right:before{content:"\f0a9"}+.icon-circle-arrow-up:before{content:"\f0aa"}+.icon-circle-arrow-down:before{content:"\f0ab"}+.icon-globe:before{content:"\f0ac"}+.icon-wrench:before{content:"\f0ad"}+.icon-tasks:before{content:"\f0ae"}+.icon-filter:before{content:"\f0b0"}+.icon-briefcase:before{content:"\f0b1"}+.icon-fullscreen:before{content:"\f0b2"}+.icon-group:before{content:"\f0c0"}+.icon-link:before{content:"\f0c1"}+.icon-cloud:before{content:"\f0c2"}+.icon-beaker:before{content:"\f0c3"}+.icon-cut:before{content:"\f0c4"}+.icon-copy:before{content:"\f0c5"}+.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}+.icon-save:before{content:"\f0c7"}+.icon-sign-blank:before{content:"\f0c8"}+.icon-reorder:before{content:"\f0c9"}+.icon-list-ul:before{content:"\f0ca"}+.icon-list-ol:before{content:"\f0cb"}+.icon-strikethrough:before{content:"\f0cc"}+.icon-underline:before{content:"\f0cd"}+.icon-table:before{content:"\f0ce"}+.icon-magic:before{content:"\f0d0"}+.icon-truck:before{content:"\f0d1"}+.icon-pinterest:before{content:"\f0d2"}+.icon-pinterest-sign:before{content:"\f0d3"}+.icon-google-plus-sign:before{content:"\f0d4"}+.icon-google-plus:before{content:"\f0d5"}+.icon-money:before{content:"\f0d6"}+.icon-caret-down:before{content:"\f0d7"}+.icon-caret-up:before{content:"\f0d8"}+.icon-caret-left:before{content:"\f0d9"}+.icon-caret-right:before{content:"\f0da"}+.icon-columns:before{content:"\f0db"}+.icon-sort:before{content:"\f0dc"}+.icon-sort-down:before{content:"\f0dd"}+.icon-sort-up:before{content:"\f0de"}+.icon-envelope:before{content:"\f0e0"}+.icon-linkedin:before{content:"\f0e1"}+.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}+.icon-legal:before{content:"\f0e3"}+.icon-dashboard:before{content:"\f0e4"}+.icon-comment-alt:before{content:"\f0e5"}+.icon-comments-alt:before{content:"\f0e6"}+.icon-bolt:before{content:"\f0e7"}+.icon-sitemap:before{content:"\f0e8"}+.icon-umbrella:before{content:"\f0e9"}+.icon-paste:before{content:"\f0ea"}+.icon-lightbulb:before{content:"\f0eb"}+.icon-exchange:before{content:"\f0ec"}+.icon-cloud-download:before{content:"\f0ed"}+.icon-cloud-upload:before{content:"\f0ee"}+.icon-user-md:before{content:"\f0f0"}+.icon-stethoscope:before{content:"\f0f1"}+.icon-suitcase:before{content:"\f0f2"}+.icon-bell-alt:before{content:"\f0f3"}+.icon-coffee:before{content:"\f0f4"}+.icon-food:before{content:"\f0f5"}+.icon-file-text-alt:before{content:"\f0f6"}+.icon-building:before{content:"\f0f7"}+.icon-hospital:before{content:"\f0f8"}+.icon-ambulance:before{content:"\f0f9"}+.icon-medkit:before{content:"\f0fa"}+.icon-fighter-jet:before{content:"\f0fb"}+.icon-beer:before{content:"\f0fc"}+.icon-h-sign:before{content:"\f0fd"}+.icon-plus-sign-alt:before{content:"\f0fe"}+.icon-double-angle-left:before{content:"\f100"}+.icon-double-angle-right:before{content:"\f101"}+.icon-double-angle-up:before{content:"\f102"}+.icon-double-angle-down:before{content:"\f103"}+.icon-angle-left:before{content:"\f104"}+.icon-angle-right:before{content:"\f105"}+.icon-angle-up:before{content:"\f106"}+.icon-angle-down:before{content:"\f107"}+.icon-desktop:before{content:"\f108"}+.icon-laptop:before{content:"\f109"}+.icon-tablet:before{content:"\f10a"}+.icon-mobile-phone:before{content:"\f10b"}+.icon-circle-blank:before{content:"\f10c"}+.icon-quote-left:before{content:"\f10d"}+.icon-quote-right:before{content:"\f10e"}+.icon-spinner:before{content:"\f110"}+.icon-circle:before{content:"\f111"}+.icon-mail-reply:before,.icon-reply:before{content:"\f112"}+.icon-github-alt:before{content:"\f113"}+.icon-folder-close-alt:before{content:"\f114"}+.icon-folder-open-alt:before{content:"\f115"}+.icon-expand-alt:before{content:"\f116"}+.icon-collapse-alt:before{content:"\f117"}+.icon-smile:before{content:"\f118"}+.icon-frown:before{content:"\f119"}+.icon-meh:before{content:"\f11a"}+.icon-gamepad:before{content:"\f11b"}+.icon-keyboard:before{content:"\f11c"}+.icon-flag-alt:before{content:"\f11d"}+.icon-flag-checkered:before{content:"\f11e"}+.icon-terminal:before{content:"\f120"}+.icon-code:before{content:"\f121"}+.icon-reply-all:before{content:"\f122"}+.icon-mail-reply-all:before{content:"\f122"}+.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}+.icon-location-arrow:before{content:"\f124"}+.icon-crop:before{content:"\f125"}+.icon-code-fork:before{content:"\f126"}+.icon-unlink:before{content:"\f127"}+.icon-question:before{content:"\f128"}+.icon-info:before{content:"\f129"}+.icon-exclamation:before{content:"\f12a"}+.icon-superscript:before{content:"\f12b"}+.icon-subscript:before{content:"\f12c"}+.icon-eraser:before{content:"\f12d"}+.icon-puzzle-piece:before{content:"\f12e"}+.icon-microphone:before{content:"\f130"}+.icon-microphone-off:before{content:"\f131"}+.icon-shield:before{content:"\f132"}+.icon-calendar-empty:before{content:"\f133"}+.icon-fire-extinguisher:before{content:"\f134"}+.icon-rocket:before{content:"\f135"}+.icon-maxcdn:before{content:"\f136"}+.icon-chevron-sign-left:before{content:"\f137"}+.icon-chevron-sign-right:before{content:"\f138"}+.icon-chevron-sign-up:before{content:"\f139"}+.icon-chevron-sign-down:before{content:"\f13a"}+.icon-html5:before{content:"\f13b"}+.icon-css3:before{content:"\f13c"}+.icon-anchor:before{content:"\f13d"}+.icon-unlock-alt:before{content:"\f13e"}+.icon-bullseye:before{content:"\f140"}+.icon-ellipsis-horizontal:before{content:"\f141"}+.icon-ellipsis-vertical:before{content:"\f142"}+.icon-rss-sign:before{content:"\f143"}+.icon-play-sign:before{content:"\f144"}+.icon-ticket:before{content:"\f145"}+.icon-minus-sign-alt:before{content:"\f146"}+.icon-check-minus:before{content:"\f147"}+.icon-level-up:before{content:"\f148"}+.icon-level-down:before{content:"\f149"}+.icon-check-sign:before{content:"\f14a"}+.icon-edit-sign:before{content:"\f14b"}+.icon-external-link-sign:before{content:"\f14c"}+.icon-share-sign:before{content:"\f14d"}+.icon-compass:before{content:"\f14e"}+.icon-collapse:before{content:"\f150"}+.icon-collapse-top:before{content:"\f151"}+.icon-expand:before{content:"\f152"}+.icon-euro:before,.icon-eur:before{content:"\f153"}+.icon-gbp:before{content:"\f154"}+.icon-dollar:before,.icon-usd:before{content:"\f155"}+.icon-rupee:before,.icon-inr:before{content:"\f156"}+.icon-yen:before,.icon-jpy:before{content:"\f157"}+.icon-renminbi:before,.icon-cny:before{content:"\f158"}+.icon-won:before,.icon-krw:before{content:"\f159"}+.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}+.icon-file:before{content:"\f15b"}+.icon-file-text:before{content:"\f15c"}+.icon-sort-by-alphabet:before{content:"\f15d"}+.icon-sort-by-alphabet-alt:before{content:"\f15e"}+.icon-sort-by-attributes:before{content:"\f160"}+.icon-sort-by-attributes-alt:before{content:"\f161"}+.icon-sort-by-order:before{content:"\f162"}+.icon-sort-by-order-alt:before{content:"\f163"}+.icon-thumbs-up:before{content:"\f164"}+.icon-thumbs-down:before{content:"\f165"}+.icon-youtube-sign:before{content:"\f166"}+.icon-youtube:before{content:"\f167"}+.icon-xing:before{content:"\f168"}+.icon-xing-sign:before{content:"\f169"}+.icon-youtube-play:before{content:"\f16a"}+.icon-dropbox:before{content:"\f16b"}+.icon-stackexchange:before{content:"\f16c"}+.icon-instagram:before{content:"\f16d"}+.icon-flickr:before{content:"\f16e"}+.icon-adn:before{content:"\f170"}+.icon-bitbucket:before{content:"\f171"}+.icon-bitbucket-sign:before{content:"\f172"}+.icon-tumblr:before{content:"\f173"}+.icon-tumblr-sign:before{content:"\f174"}+.icon-long-arrow-down:before{content:"\f175"}+.icon-long-arrow-up:before{content:"\f176"}+.icon-long-arrow-left:before{content:"\f177"}+.icon-long-arrow-right:before{content:"\f178"}+.icon-apple:before{content:"\f179"}+.icon-windows:before{content:"\f17a"}+.icon-android:before{content:"\f17b"}+.icon-linux:before{content:"\f17c"}+.icon-dribbble:before{content:"\f17d"}+.icon-skype:before{content:"\f17e"}+.icon-foursquare:before{content:"\f180"}+.icon-trello:before{content:"\f181"}+.icon-female:before{content:"\f182"}+.icon-male:before{content:"\f183"}+.icon-gittip:before{content:"\f184"}+.icon-sun:before{content:"\f185"}+.icon-moon:before{content:"\f186"}+.icon-archive:before{content:"\f187"}+.icon-bug:before{content:"\f188"}+.icon-vk:before{content:"\f189"}+.icon-weibo:before{content:"\f18a"}+.icon-renren:before{content:"\f18b"}+.border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}+.corner-all{border-radius:4px}+.hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}+.hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}+.vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}+.vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}+.reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;flex-direction:row-reverse}+.box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none;width:auto}+.box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}+.box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}+.box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2}+.box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1}+.box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2}+.start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start}+.end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end}+.center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;justify-content:center}+.align-start{-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}+.align-end{-webkit-box-align:end;-moz-box-align:end;box-align:end;align-items:flex-end}+.align-center{-webkit-box-align:center;-moz-box-align:center;box-align:center;align-items:center}+div.error{margin:2em;text-align:center}+div.error>h1{font-size:500%;line-height:normal}+div.error>p{font-size:200%;line-height:normal}+div.traceback-wrapper{text-align:left;max-width:800px;margin:auto}+body{background-color:#fff;position:absolute;left:0;right:0;top:0;bottom:0;overflow:visible}+div#header{display:none}+#ipython_notebook{padding-left:16px}+#noscript{width:auto;padding-top:16px;padding-bottom:16px;text-align:center;font-size:22px;color:#f00;font-weight:bold}+#ipython_notebook img{font-family:Verdana,"Helvetica Neue",Arial,Helvetica,Geneva,sans-serif;height:24px;text-decoration:none;color:#000}+#site{width:100%;display:none}+.ui-button .ui-button-text{padding:.2em .8em;font-size:77%}+input.ui-button{padding:.3em .9em}+.navbar span{margin-top:3px}+span#login_widget{float:right}+.nav-header{text-transform:none}+.navbar-nobg{background-color:transparent;background-image:none}+#header>span{margin-top:10px}+.modal-body{max-height:500px}+.center-nav{display:inline-block;margin-bottom:-4px}+.alternate_upload{background-color:none;display:inline}+.alternate_upload.form{padding:0;margin:0}+.alternate_upload input.fileinput{background-color:#f00;position:relative;opacity:0;z-index:2;width:295px;margin-left:163px;cursor:pointer;height:26px}+ul#tabs{margin-bottom:4px}+ul#tabs a{padding-top:4px;padding-bottom:4px}+ul.breadcrumb a:focus,ul.breadcrumb a:hover{text-decoration:none}+ul.breadcrumb i.icon-home{font-size:16px;margin-right:4px}+ul.breadcrumb span{color:#5e5e5e}+.list_toolbar{padding:4px 0 4px 0}+.list_toolbar [class*="span"]{min-height:26px}+.list_header{font-weight:bold}+.list_container{margin-top:4px;margin-bottom:20px;border:1px solid #ababab;border-radius:4px}+.list_container>div{border-bottom:1px solid #ababab}.list_container>div:hover .list-item{background-color:#f00}+.list_container>div:last-child{border:none}+.list_item:hover .list_item{background-color:#ddd}+.list_item a{text-decoration:none}+.list_header>div,.list_item>div{padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px;height:22px;line-height:22px}+.item_name{line-height:22px;height:26px}+.item_icon{font-size:14px;color:#5e5e5e;margin-right:7px}+.item_buttons{line-height:1em}+.toolbar_info{height:26px;line-height:26px}+input.nbname_input,input.engine_num_input{padding-top:3px;padding-bottom:3px;height:14px;line-height:14px;margin:0}+input.engine_num_input{width:60px}+.highlight_text{color:#00f}+#project_name>.breadcrumb{padding:0;margin-bottom:0;background-color:transparent;font-weight:bold}+.ansibold{font-weight:bold}+.ansiblack{color:#000}+.ansired{color:#8b0000}+.ansigreen{color:#006400}+.ansiyellow{color:#a52a2a}+.ansiblue{color:#00008b}+.ansipurple{color:#9400d3}+.ansicyan{color:#4682b4}+.ansigray{color:#808080}+.ansibgblack{background-color:#000}+.ansibgred{background-color:#f00}+.ansibggreen{background-color:#008000}+.ansibgyellow{background-color:#ff0}+.ansibgblue{background-color:#00f}+.ansibgpurple{background-color:#f0f}+.ansibgcyan{background-color:#0ff}+.ansibggray{background-color:#808080}+div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}div.cell.selected{border-radius:4px;border:thin #ababab solid}+div.cell.edit_mode{border-radius:4px;border:thin #008000 solid}+div.cell{width:100%;padding:5px 5px 5px 0;margin:0;outline:none}+div.prompt{min-width:11ex;padding:.4em;margin:0;font-family:monospace;text-align:right;line-height:1.231em}+div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}+div.prompt:empty{padding-top:0;padding-bottom:0}+div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}+div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7}+div.input_prompt{color:#000080;border-top:1px solid transparent}+.CodeMirror{line-height:1.231em;height:auto;background:none;}+.CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}+@-moz-document {.CodeMirror-scroll{overflow-x:hidden}}.CodeMirror-lines{padding:.4em}+.CodeMirror-linenumber{padding:0 8px 0 4px}+.CodeMirror-gutters{border-bottom-left-radius:4px;border-top-left-radius:4px}+.CodeMirror pre{padding:0;border:0;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}+pre code{display:block;padding:.5em}+.highlight-base,pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:#000}+.highlight-string,pre .string,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .markdown .header{color:#ba2121}+.highlight-comment,pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .markdown .blockquote{color:#408080;font-style:italic}+.highlight-number,pre .number,pre .date,pre .regexp,pre .literal,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .markdown .bullet,pre .markdown .link_url{color:#080}+pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .coffeescript .property{color:#88f}+.highlight-keyword,pre .keyword,pre .id,pre .phpdoc,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .markdown .strong,pre .request,pre .status{color:#008000;font-weight:bold}+.highlight-builtin,pre .built_in{color:#008000}+pre .markdown .emphasis{font-style:italic}+pre .nginx .built_in{font-weight:normal}+pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:.5}+.cm-s-ipython span.cm-variable{color:#000}+.cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold}+.cm-s-ipython span.cm-number{color:#080}+.cm-s-ipython span.cm-comment{color:#408080;font-style:italic}+.cm-s-ipython span.cm-string{color:#ba2121}+.cm-s-ipython span.cm-builtin{color:#008000}+.cm-s-ipython span.cm-error{color:#f00}+.cm-s-ipython span.cm-operator{color:#a2f;font-weight:bold}+.cm-s-ipython span.cm-meta{color:#a2f}+.cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat}+div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}+div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);-moz-box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);display:block}+div.output_collapsed{margin:0;padding:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}+div.out_prompt_overlay{height:100%;padding:0 .4em;position:absolute;border-radius:4px}+div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000;-moz-box-shadow:inset 0 0 1px #000;box-shadow:inset 0 0 1px #000;background:rgba(240,240,240,0.5)}+div.output_prompt{color:#8b0000}+div.output_area{padding:0;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.output_area .MathJax_Display{text-align:left !important}+div.output_area .rendered_html table{margin-left:0;margin-right:0}+div.output_area .rendered_html img{margin-left:0;margin-right:0}+.output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}+div.output_area pre{font-family:monospace;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;color:#000;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;line-height:inherit}+div.output_subarea{padding:.4em .4em 0 .4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}+div.output_text{text-align:left;color:#000;font-family:monospace;line-height:1.231em}+div.output_stderr{background:#fdd;}+div.output_latex{text-align:left}+div.output_javascript:empty{padding:0}+.js-error{color:#8b0000}+div.raw_input{padding-top:0;padding-bottom:0;height:1em;line-height:1em;font-family:monospace}+span.input_prompt{font-family:inherit}+input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;margin:-2px 0 0 1px;padding-left:1px;padding-top:2px;height:1em}+p.p-space{margin-bottom:10px}+.rendered_html{color:#000;}.rendered_html em{font-style:italic}+.rendered_html strong{font-weight:bold}+.rendered_html u{text-decoration:underline}+.rendered_html :link{text-decoration:underline}+.rendered_html :visited{text-decoration:underline}+.rendered_html h1{font-size:185.7%;margin:1.08em 0 0 0;font-weight:bold;line-height:1}+.rendered_html h2{font-size:157.1%;margin:1.27em 0 0 0;font-weight:bold;line-height:1}+.rendered_html h3{font-size:128.6%;margin:1.55em 0 0 0;font-weight:bold;line-height:1}+.rendered_html h4{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1}+.rendered_html h5{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic}+.rendered_html h6{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic}+.rendered_html h1:first-child{margin-top:.538em}+.rendered_html h2:first-child{margin-top:.636em}+.rendered_html h3:first-child{margin-top:.777em}+.rendered_html h4:first-child{margin-top:1em}+.rendered_html h5:first-child{margin-top:1em}+.rendered_html h6:first-child{margin-top:1em}+.rendered_html ul{list-style:disc;margin:0 2em}+.rendered_html ul ul{list-style:square;margin:0 2em}+.rendered_html ul ul ul{list-style:circle;margin:0 2em}+.rendered_html ol{list-style:decimal;margin:0 2em}+.rendered_html ol ol{list-style:upper-alpha;margin:0 2em}+.rendered_html ol ol ol{list-style:lower-alpha;margin:0 2em}+.rendered_html ol ol ol ol{list-style:lower-roman;margin:0 2em}+.rendered_html ol ol ol ol ol{list-style:decimal;margin:0 2em}+.rendered_html *+ul{margin-top:1em}+.rendered_html *+ol{margin-top:1em}+.rendered_html hr{color:#000;background-color:#000}+.rendered_html pre{margin:1em 2em}+.rendered_html pre,.rendered_html code{border:0;background-color:#fff;color:#000;font-size:100%;padding:0}+.rendered_html blockquote{margin:1em 2em}+.rendered_html table{margin-left:auto;margin-right:auto;border:1px solid #000;border-collapse:collapse}+.rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid #000;border-collapse:collapse;margin:1em 2em}+.rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px}+.rendered_html th{font-weight:bold}+.rendered_html *+table{margin-top:1em}+.rendered_html p{text-align:justify}+.rendered_html *+p{margin-top:1em}+.rendered_html img{display:block;margin-left:auto;margin-right:auto}+.rendered_html *+img{margin-top:1em}+div.text_cell{padding:5px 5px 5px 0;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}+div.text_cell_input{color:#000;border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7}+div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:.5em .5em .5em .4em;color:#000}+a.anchor-link:link{text-decoration:none;padding:0 20px;visibility:hidden}+h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible}+div.cell.text_cell.rendered{padding:0}+.widget-area{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-area .widget-subarea{padding:.44em .4em .4em 1px;margin-left:6px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}+.widget-hlabel{min-width:10ex;padding-right:8px;padding-top:3px;text-align:right;vertical-align:text-top}+.widget-vlabel{padding-bottom:5px;text-align:center;vertical-align:text-bottom}+.widget-hreadout{padding-left:8px;padding-top:3px;text-align:left;vertical-align:text-top}+.widget-vreadout{padding-top:5px;text-align:center;vertical-align:text-top}+.slide-track{border:1px solid #ccc;background:#fff;border-radius:4px;}+.widget-hslider{padding-left:8px;padding-right:5px;overflow:visible;width:348px;height:5px;max-height:5px;margin-top:11px;border:1px solid #ccc;background:#fff;border-radius:4px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-hslider .ui-slider{border:0 !important;background:none !important;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-hslider .ui-slider .ui-slider-handle{width:14px !important;height:28px !important;margin-top:-8px !important}+.widget-vslider{padding-bottom:8px;overflow:visible;width:5px;max-width:5px;height:250px;margin-left:12px;border:1px solid #ccc;background:#fff;border-radius:4px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}.widget-vslider .ui-slider{border:0 !important;background:none !important;margin-left:-4px;margin-top:5px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-vslider .ui-slider .ui-slider-handle{width:28px !important;height:14px !important;margin-left:-9px}+.widget-text{width:350px;margin-bottom:0}+.widget-listbox{width:364px;margin-bottom:0}+.widget-numeric-text{width:150px}+.widget-progress{width:363px}.widget-progress .bar{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}+.widget-combo-btn{min-width:138px;}+.widget-box{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}+.widget-hbox{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}+.widget-hbox-single{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;height:30px}+.widget-vbox{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}+.widget-vbox-single{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;width:30px}+.widget-modal{overflow:hidden;position:absolute !important;top:0;left:0;margin-left:0 !important}+.widget-modal-body{max-height:none !important}+.widget-container{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}+.docked-widget-modal{overflow:hidden;position:relative !important;top:0 !important;left:0 !important;margin-left:0 !important}+body{background-color:#fff}+body.notebook_app{overflow:hidden}+span#notebook_name{height:1em;line-height:1em;padding:3px;border:none;font-size:146.5%}+div#notebook_panel{margin:0 0 0 0;padding:0;-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}+div#notebook{overflow-y:scroll;overflow-x:auto;width:100%;padding:1em 0 1em 0;margin:0;border-top:1px solid #ababab;outline:none;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}+div.ui-widget-content{border:1px solid #ababab;outline:none}+pre.dialog{background-color:#f7f7f7;border:1px solid #ddd;border-radius:4px;padding:.4em;padding-left:2em}+p.dialog{padding:.2em}+pre,code,kbd,samp{white-space:pre-wrap}+#fonttest{font-family:monospace}+p{margin-bottom:0}+.end_space{height:200px}+.celltoolbar{border:thin solid #cfcfcf;border-bottom:none;background:#eee;border-radius:3px 3px 0 0;width:100%;-webkit-box-pack:end;height:22px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;flex-direction:row-reverse}+.ctb_hideshow{display:none;vertical-align:bottom;padding-right:2px}+.celltoolbar>div{padding-top:0}+.ctb_global_show .ctb_show.ctb_hideshow{display:block}+.ctb_global_show .ctb_show+.input_area,.ctb_global_show .ctb_show+div.text_cell_input{border-top-right-radius:0;border-top-left-radius:0}+.celltoolbar .button_container select{margin:10px;margin-top:1px;margin-bottom:0;padding:0;font-size:87%;width:auto;display:inline-block;height:18px;line-height:18px;vertical-align:top}+.celltoolbar label{display:inline-block;height:15px;line-height:15px;vertical-align:top}+.celltoolbar label span{font-size:85%}+.celltoolbar input[type=checkbox]{margin:0;margin-left:4px;margin-right:4px}+.celltoolbar .ui-button{border:none;vertical-align:top;height:20px;min-width:30px}+.completions{position:absolute;z-index:10;overflow:hidden;border:1px solid #ababab;border-radius:4px;-webkit-box-shadow:0 6px 10px -1px #adadad;-moz-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad}+.completions select{background:#fff;outline:none;border:none;padding:0;margin:0;overflow:auto;font-family:monospace;font-size:110%;color:#000}+.completions select option.context{color:#0064cd}+#menubar .navbar-inner{min-height:28px;border-top:1px;border-radius:0 0 4px 4px}+#menubar .navbar{margin-bottom:8px}+.nav-wrapper{border-bottom:1px solid #d4d4d4}+#menubar li.dropdown{line-height:12px}+i.menu-icon{padding-top:4px}+ul#help_menu li a{overflow:hidden;padding-right:2.2em}ul#help_menu li a i{margin-right:-1.2em}+#notification_area{z-index:10}+.indicator_area{color:#777;padding:4px 3px;margin:0;width:11px;z-index:10;text-align:center}+#kernel_indicator{margin-right:-16px}+.notification_widget{color:#777;padding:1px 12px;margin:2px 4px;z-index:10;border:1px solid #ccc;border-radius:4px;background:rgba(240,240,240,0.5)}.notification_widget.span{padding-right:2px}+div#pager_splitter{height:8px}+#pager-container{position:relative;padding:15px 0}+div#pager{overflow:auto;display:none}div#pager pre{font-size:13px;line-height:1.231em;color:#000;background-color:#f7f7f7;padding:.4em}+.shortcut_key{display:inline-block;width:15ex;text-align:right;font-family:monospace}+.shortcut_descr{display:inline-block}+span#save_widget{padding:0 5px;margin-top:12px}+span#checkpoint_status,span#autosave_status{font-size:small}+@media (max-width:767px){span#save_widget{font-size:small} span#checkpoint_status,span#autosave_status{font-size:x-small}}@media (max-width:767px){span#checkpoint_status,span#autosave_status{display:none}}@media (min-width:768px) and (max-width:979px){span#checkpoint_status{display:none} span#autosave_status{font-size:x-small}}.toolbar{padding:0 10px;margin-top:-5px}.toolbar select,.toolbar label{width:auto;height:26px;vertical-align:middle;margin-right:2px;margin-bottom:0;display:inline;font-size:92%;margin-left:.3em;margin-right:.3em;padding:0;padding-top:3px}+.toolbar .btn{padding:2px 8px}+.toolbar .btn-group{margin-top:0}+.toolbar-inner{border:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important;box-shadow:none !important}+#maintoolbar{margin-bottom:0}+@-moz-keyframes fadeOut{from{opacity:1} to{opacity:0}}@-webkit-keyframes fadeOut{from{opacity:1} to{opacity:0}}@-moz-keyframes fadeIn{from{opacity:0} to{opacity:1}}@-webkit-keyframes fadeIn{from{opacity:0} to{opacity:1}}.bigtooltip{overflow:auto;height:200px;-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms}+.smalltooltip{-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;text-overflow:ellipsis;overflow:hidden;height:80px}+.tooltipbuttons{position:absolute;padding-right:15px;top:0;right:0}+.tooltiptext{padding-right:30px}+.ipython_tooltip{max-width:700px;-webkit-animation:fadeOut 400ms;-moz-animation:fadeOut 400ms;animation:fadeOut 400ms;-webkit-animation:fadeIn 400ms;-moz-animation:fadeIn 400ms;animation:fadeIn 400ms;vertical-align:middle;background-color:#f7f7f7;overflow:visible;border:#ababab 1px solid;outline:none;padding:3px;margin:0;padding-left:7px;font-family:monospace;min-height:50px;-moz-box-shadow:0 6px 10px -1px #adadad;-webkit-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad;border-radius:4px;position:absolute;z-index:2}.ipython_tooltip a{float:right}+.ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7}+.pretooltiparrow{left:0;margin:0;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute}+.pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}++    </style>+<style type="text/css">+    .highlight .hll { background-color: #ffffcc }+.highlight  { background: #f8f8f8; }+.highlight .c { color: #408080; font-style: italic } /* Comment */+.highlight .err { border: 1px solid #FF0000 } /* Error */+.highlight .k { color: #008000; font-weight: bold } /* Keyword */+.highlight .o { color: #666666 } /* Operator */+.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */+.highlight .cp { color: #BC7A00 } /* Comment.Preproc */+.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */+.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */+.highlight .gd { color: #A00000 } /* Generic.Deleted */+.highlight .ge { font-style: italic } /* Generic.Emph */+.highlight .gr { color: #FF0000 } /* Generic.Error */+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */+.highlight .gi { color: #00A000 } /* Generic.Inserted */+.highlight .go { color: #888888 } /* Generic.Output */+.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */+.highlight .gs { font-weight: bold } /* Generic.Strong */+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */+.highlight .gt { color: #0044DD } /* Generic.Traceback */+.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */+.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */+.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */+.highlight .kp { color: #008000 } /* Keyword.Pseudo */+.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */+.highlight .kt { color: #B00040 } /* Keyword.Type */+.highlight .m { color: #666666 } /* Literal.Number */+.highlight .s { color: #BA2121 } /* Literal.String */+.highlight .na { color: #7D9029 } /* Name.Attribute */+.highlight .nb { color: #008000 } /* Name.Builtin */+.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */+.highlight .no { color: #880000 } /* Name.Constant */+.highlight .nd { color: #AA22FF } /* Name.Decorator */+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */+.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */+.highlight .nf { color: #0000FF } /* Name.Function */+.highlight .nl { color: #A0A000 } /* Name.Label */+.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */+.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */+.highlight .nv { color: #19177C } /* Name.Variable */+.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */+.highlight .w { color: #bbbbbb } /* Text.Whitespace */+.highlight .mf { color: #666666 } /* Literal.Number.Float */+.highlight .mh { color: #666666 } /* Literal.Number.Hex */+.highlight .mi { color: #666666 } /* Literal.Number.Integer */+.highlight .mo { color: #666666 } /* Literal.Number.Oct */+.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */+.highlight .sc { color: #BA2121 } /* Literal.String.Char */+.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */+.highlight .s2 { color: #BA2121 } /* Literal.String.Double */+.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */+.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */+.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */+.highlight .sx { color: #008000 } /* Literal.String.Other */+.highlight .sr { color: #BB6688 } /* Literal.String.Regex */+.highlight .s1 { color: #BA2121 } /* Literal.String.Single */+.highlight .ss { color: #19177C } /* Literal.String.Symbol */+.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */+.highlight .vc { color: #19177C } /* Name.Variable.Class */+.highlight .vg { color: #19177C } /* Name.Variable.Global */+.highlight .vi { color: #19177C } /* Name.Variable.Instance */+.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */+    </style>+++<style type="text/css">+/* Overrides of notebook CSS for static HTML export */+body {+  overflow: visible;+  padding: 8px;+}+.input_area {+  padding: 0.2em;+}++pre {+  padding: 0.2em;+  border: none;+  margin: 0px;+  font-size: 13px;+}+</style>++<!-- Custom stylesheet, it must be in the same directory as the html file -->+<link rel="stylesheet" href="custom.css">++<!-- Loading mathjax macro -->+<!-- MathJax configuration -->+    <script type="text/x-mathjax-config">+    MathJax.Hub.Config({+        tex2jax: {+            inlineMath: [ ['$','$'], ["\\(","\\)"] ],+            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],+            processEscapes: true,+            processEnvironments: true+        },+        // Center justify equations in code and markdown cells. Elsewhere+        // we use CSS to left justify single line equations in code cells.+        displayAlign: 'center',+        "HTML-CSS": {+            styles: {'.MathJax_Display': {"margin": 0}},+            linebreaks: { automatic: true }+        }+    });+    </script>+    <!-- End of mathjax configuration -->++    <script>+    //  We wait for the onload function to load MathJax after the page is completely loaded.+    //  MathJax is loaded 1 unit of time after the page is ready.+    //  This hack prevent problems when you load multiple js files.++    window.onload = function () {+      setTimeout(function () {+        var script = document.createElement("script");+        script.type = "text/javascript";+        script.src  = "https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML";+        document.getElementsByTagName("head")[0].appendChild(script);+      },1)+    }+    </script>++</head>+<body>++<div class="input">+<div class="prompt input_prompt">+</div>+<div class="inner_cell">+<div class="text_cell_render border-box-sizing rendered_html">+<h1 id="multiple-plots-with-rlang-qq">Multiple plots with Rlang-QQ</h1>+<p>An example of <code>Rlang-QQ-0.1.2.0</code>, which supports multiple figures.</p>+<p>First a pile of imports needed:</p>+</div>+</div>+</div>+<div class="cell border-box-sizing code_cell">+<div class="input">+<div class="prompt input_prompt">+In&nbsp;[1]:+</div>+<div class="input_area box-flex1">+<div class="highlight"><pre><span class="kt">:</span><span class="n">set</span> <span class="o">-</span><span class="kt">XQuasiQuotes</span> <span class="o">-</span><span class="kt">XTupleSections</span> <span class="o">-</span><span class="kt">XViewPatterns</span>+<span class="kr">import</span> <span class="nn">IHaskell.Display</span> <span class="c1">-- shouldn&#39;t be needed but it turns out that it is essential</span>+<span class="kr">import</span> <span class="nn">IHaskell.Display.Rlangqq</span> <span class="p">()</span> <span class="c1">-- to check it&#39;s installed</span>+<span class="kr">import</span> <span class="nn">Data.Monoid</span>+<span class="kr">import</span> <span class="nn">Control.Applicative</span>+<span class="kr">import</span> <span class="nn">Data.List</span>+</pre></div>++</div>+</div>++</div>+<div class="input">+<div class="prompt input_prompt">+</div>+<div class="inner_cell">+<div class="text_cell_render border-box-sizing rendered_html">+<p>Rlang-QQ saves intermediate files. There is some code hidden in <code>IHaskell.Display.RlangQQ</code> and <code>RlangQQ.ParseKnitted</code> which gets those messages/warnings/plots.</p>+</div>+</div>+</div>+<div class="input">+<div class="prompt input_prompt">+</div>+<div class="inner_cell">+<div class="text_cell_render border-box-sizing rendered_html">+<p>Just some more of the same integration stuff that may be easier to think about because it's written in haskell</p>+</div>+</div>+</div>+<div class="cell border-box-sizing code_cell">+<div class="input">+<div class="prompt input_prompt">+In&nbsp;[2]:+</div>+<div class="input_area box-flex1">+<div class="highlight"><pre><span class="c1">-- | trapezoid rule. doesn&#39;t reuse previous values</span>+<span class="nf">trap</span> <span class="ow">::</span> <span class="kt">Fractional</span> <span class="n">a</span>+    <span class="ow">=&gt;</span> <span class="p">(</span><span class="n">a</span> <span class="ow">-&gt;</span> <span class="n">a</span><span class="p">)</span> <span class="c1">-- ^ function</span>+    <span class="ow">-&gt;</span> <span class="n">a</span> <span class="c1">-- ^ lower bound</span>+    <span class="ow">-&gt;</span> <span class="n">a</span> <span class="c1">-- ^ upepr bound</span>+    <span class="ow">-&gt;</span> <span class="kt">Int</span> <span class="c1">-- ^ number of panels to divide the interval into</span>+    <span class="ow">-&gt;</span> <span class="n">a</span> <span class="c1">-- ^ integral approximation</span>+<span class="nf">trap</span> <span class="n">f</span> <span class="n">a</span> <span class="n">b</span> <span class="n">n</span> <span class="ow">=</span>+    <span class="kr">let</span> <span class="n">h</span> <span class="ow">=</span> <span class="p">(</span><span class="n">b</span> <span class="o">-</span> <span class="n">a</span><span class="p">)</span> <span class="o">/</span> <span class="n">fromIntegral</span> <span class="n">n</span>+        <span class="n">xs</span> <span class="ow">=</span> <span class="n">take</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">$</span> <span class="n">iterate</span> <span class="p">(</span><span class="n">h</span><span class="o">+</span><span class="p">)</span> <span class="p">(</span><span class="n">a</span><span class="o">+</span><span class="n">h</span><span class="p">)</span>+            <span class="c1">-- easier to see as [a+h, a+2*h .. b-h])</span>+            <span class="c1">-- but some interval arithmetic doesn&#39;t support [a..b]</span>+    <span class="kr">in</span> <span class="n">h</span> <span class="o">*</span> <span class="n">foldl&#39;</span> <span class="p">(</span><span class="nf">\</span><span class="n">s</span> <span class="n">x</span> <span class="ow">-&gt;</span> <span class="n">s</span> <span class="o">+</span> <span class="n">f</span> <span class="n">x</span><span class="p">)</span> <span class="p">((</span><span class="n">f</span> <span class="n">a</span> <span class="o">+</span> <span class="n">f</span> <span class="n">b</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="n">xs</span>+</pre></div>++</div>+</div>++</div>+<div class="cell border-box-sizing code_cell">+<div class="input">+<div class="prompt input_prompt">+In&nbsp;[7]:+</div>+<div class="input_area box-flex1">+<div class="highlight"><pre><span class="nf">improve</span> <span class="ow">::</span> <span class="kt">Fractional</span> <span class="n">a</span>+    <span class="ow">=&gt;</span> <span class="kt">Int</span> <span class="c1">-- n</span>+    <span class="ow">-&gt;</span> <span class="n">a</span> <span class="c1">-- O(h^n) estimate with step size h/2</span>+    <span class="ow">-&gt;</span> <span class="n">a</span> <span class="c1">-- O(h^n) estimate with step size h</span>+    <span class="ow">-&gt;</span> <span class="n">a</span> <span class="c1">-- O(h^(n+1)) estimate</span>+<span class="nf">improve</span> <span class="n">n</span> <span class="n">x</span> <span class="n">y</span> <span class="ow">=</span> <span class="kr">let</span> <span class="n">c</span> <span class="ow">=</span> <span class="mi">4</span><span class="o">^</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="kr">in</span> <span class="p">(</span><span class="n">c</span><span class="o">*</span><span class="n">x</span> <span class="o">-</span> <span class="n">y</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">c</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>++<span class="nf">rombM</span> <span class="ow">::</span> <span class="kt">Fractional</span> <span class="n">a</span>+    <span class="ow">=&gt;</span> <span class="p">(</span><span class="n">a</span> <span class="ow">-&gt;</span> <span class="n">a</span><span class="p">)</span>+    <span class="ow">-&gt;</span> <span class="n">a</span>+    <span class="ow">-&gt;</span> <span class="n">a</span>+    <span class="ow">-&gt;</span> <span class="p">[[</span><span class="n">a</span><span class="p">]]</span>+<span class="nf">rombM</span> <span class="n">f</span> <span class="n">a</span> <span class="n">b</span> <span class="ow">=</span>+    <span class="kr">let</span> <span class="n">is</span> <span class="ow">=</span> <span class="n">map</span> <span class="p">(</span><span class="nf">\</span><span class="n">n</span> <span class="ow">-&gt;</span> <span class="n">trap</span> <span class="n">f</span> <span class="n">a</span> <span class="n">b</span> <span class="p">(</span><span class="mi">2</span><span class="o">^</span><span class="n">n</span><span class="p">))</span> <span class="p">[</span><span class="mi">0</span><span class="o">..</span><span class="p">]</span>+    <span class="kr">in</span> <span class="n">map</span> <span class="n">snd</span>+        <span class="o">$</span> <span class="n">iterate</span>+            <span class="p">(</span><span class="nf">\</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">s</span><span class="p">)</span> <span class="ow">-&gt;</span> <span class="p">(</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">zipWith</span> <span class="p">(</span><span class="n">improve</span> <span class="n">n</span><span class="p">)</span> <span class="p">(</span><span class="n">tail</span> <span class="n">s</span><span class="p">)</span> <span class="n">s</span><span class="p">))</span>+            <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">is</span><span class="p">)</span>++<span class="nf">romb</span> <span class="ow">::</span> <span class="kt">Fractional</span> <span class="n">a</span>+    <span class="ow">=&gt;</span> <span class="p">(</span><span class="n">a</span> <span class="ow">-&gt;</span> <span class="n">a</span><span class="p">)</span>+    <span class="ow">-&gt;</span> <span class="n">a</span>+    <span class="ow">-&gt;</span> <span class="n">a</span>+    <span class="ow">-&gt;</span> <span class="p">[</span><span class="n">a</span><span class="p">]</span> <span class="c1">-- successive approximations</span>+<span class="nf">romb</span> <span class="n">f</span> <span class="n">a</span> <span class="n">b</span> <span class="ow">=</span> <span class="n">map</span> <span class="n">head</span> <span class="o">$</span> <span class="n">rombM</span> <span class="n">f</span> <span class="n">a</span> <span class="n">b</span>+</pre></div>++</div>+</div>++</div>+<div class="cell border-box-sizing code_cell">+<div class="input">+<div class="prompt input_prompt">+In&nbsp;[3]:+</div>+<div class="input_area box-flex1">+<div class="highlight"><pre><span class="nf">xs</span> <span class="ow">=</span> <span class="n">take</span> <span class="mi">5</span> <span class="o">$</span> <span class="n">romb</span> <span class="n">exp</span> <span class="mi">0</span> <span class="mi">1</span> <span class="ow">::</span> <span class="p">[</span><span class="kt">Double</span><span class="p">]</span>++<span class="nf">print</span> <span class="n">xs</span>+</pre></div>++</div>+</div>++<div class="output_wrapper">+<div class="output">+++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>+[1.8591409142295225,1.7188611518765928,1.7182826879247577,1.7182818287945305,1.7182818284590786]+</pre>++</div>+</div>++</div>+</div>++</div>+<div class="cell border-box-sizing code_cell">+<div class="input">+<div class="prompt input_prompt">+In&nbsp;[4]:+</div>+<div class="input_area box-flex1">+<div class="highlight"><pre><span class="nf">sse</span> <span class="ow">&lt;-</span> <span class="kr">do</span>+ <span class="p">[</span><span class="n">pun</span><span class="o">|</span> <span class="p">(</span><span class="n">sse</span><span class="p">)</span> <span class="o">|</span><span class="p">]</span> <span class="ow">&lt;-</span> <span class="p">[</span><span class="n">rDisp</span><span class="o">|</span>+    <span class="n">m</span> <span class="ow">&lt;-</span> <span class="n">lm</span><span class="p">(</span> <span class="n">log</span><span class="p">(</span><span class="o">$</span><span class="p">(</span><span class="n">xs</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">exp</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">~</span> <span class="kt">I</span><span class="p">(</span><span class="mi">1</span><span class="kt">:</span><span class="n">length</span><span class="p">(</span><span class="o">$</span><span class="p">(</span><span class="n">xs</span><span class="p">))))</span>+    <span class="n">plot</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="n">which</span><span class="ow">=</span><span class="mi">1</span><span class="kt">:</span><span class="mi">2</span><span class="p">)</span>+    <span class="n">print</span><span class="p">(</span><span class="n">predict</span><span class="p">(</span><span class="n">m</span><span class="p">))</span>+    <span class="n">hs_sse</span> <span class="ow">&lt;-</span> <span class="n">sum</span><span class="p">(</span> <span class="n">resid</span><span class="p">(</span><span class="n">m</span><span class="p">)</span><span class="o">^</span><span class="mi">2</span> <span class="p">)</span>+    <span class="o">|</span><span class="p">]</span>+ <span class="n">return</span> <span class="p">(</span><span class="n">sse</span> <span class="ow">::</span> <span class="kt">Double</span><span class="p">)</span>+<span class="nb">()</span> <span class="c1">-- needed to force a display</span>+</pre></div>++</div>+</div>++<div class="output_wrapper">+<div class="output">+++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>+()+</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>++</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">++<div class="output_html rendered_html">+<img src="data:image/png;base64,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">++</div>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">++<div class="output_html rendered_html">+<img src="data:image/png;base64,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">++</div>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>++</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>++</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>+         1          2          3          4          5 + 4.741e-02  3.162e-02  1.583e-02  3.381e-05 -1.576e-02+</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>++</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>++</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>++</pre>++</div>+</div>++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">++++</div>+</div>++</div>+</div>++</div>+<div class="cell border-box-sizing code_cell">+<div class="input">+<div class="prompt input_prompt">+In&nbsp;[5]:+</div>+<div class="input_area box-flex1">+<div class="highlight"><pre><span class="nf">sse</span>+</pre></div>++</div>+</div>++<div class="output_wrapper">+<div class="output">+++<div class="output_area"><div class="prompt"></div>+<div class="box-flex1 output_subarea output_display_data">+++<pre>+2.4619397033555017e-3+</pre>++</div>+</div>++</div>+</div>++</div>+<div class="cell border-box-sizing code_cell">+<div class="input">+<div class="prompt input_prompt">+In&nbsp;[]:+</div>+<div class="input_area box-flex1">+<div class="highlight"><pre>+</pre></div>++</div>+</div>++</div>+</body>+</html>
+ examples/ihaskell3.ipynb view
@@ -0,0 +1,253 @@+{+ "metadata": {+  "language": "haskell",+  "name": "",+  "signature": "sha256:77784b243dcc073ca234e267b10dd773decbb010b9dbb529bf20bf1714830221"+ },+ "nbformat": 3,+ "nbformat_minor": 0,+ "worksheets": [+  {+   "cells": [+    {+     "cell_type": "markdown",+     "metadata": {},+     "source": [+      "# Multiple plots with Rlang-QQ\n",+      "An example of `Rlang-QQ-0.1.2.0`, which supports multiple figures.\n",+      "\n",+      "First a pile of imports needed:"+     ]+    },+    {+     "cell_type": "code",+     "collapsed": false,+     "input": [+      ":set -XQuasiQuotes -XTupleSections -XViewPatterns\n",+      "import IHaskell.Display -- shouldn't be needed but it turns out that it is essential\n",+      "import IHaskell.Display.Rlangqq () -- to check it's installed\n",+      "import Data.Monoid\n",+      "import Control.Applicative\n",+      "import Data.List"+     ],+     "language": "python",+     "metadata": {},+     "outputs": [],+     "prompt_number": 1+    },+    {+     "cell_type": "markdown",+     "metadata": {},+     "source": [+      "Rlang-QQ saves intermediate files. There is some code\n",+      "hidden in `IHaskell.Display.RlangQQ` and `RlangQQ.ParseKnitted`\n",+      "which gets those messages/warnings/plots."+     ]+    },+    {+     "cell_type": "markdown",+     "metadata": {},+     "source": [+      "Just some more of the same integration stuff that may be easier to think about because it's written in haskell"+     ]+    },+    {+     "cell_type": "code",+     "collapsed": false,+     "input": [+      "-- | trapezoid rule. doesn't reuse previous values\n",+      "trap :: Fractional a\n",+      "    => (a -> a) -- ^ function\n",+      "    -> a -- ^ lower bound\n",+      "    -> a -- ^ upepr bound\n",+      "    -> Int -- ^ number of panels to divide the interval into\n",+      "    -> a -- ^ integral approximation\n",+      "trap f a b n =\n",+      "    let h = (b - a) / fromIntegral n\n",+      "        xs = take (n-1) $ iterate (h+) (a+h)\n",+      "            -- easier to see as [a+h, a+2*h .. b-h])\n",+      "            -- but some interval arithmetic doesn't support [a..b]\n",+      "    in h * foldl' (\\s x -> s + f x) ((f a + f b) / 2) xs"+     ],+     "language": "python",+     "metadata": {},+     "outputs": [],+     "prompt_number": 2+    },+    {+     "cell_type": "code",+     "collapsed": false,+     "input": [+      "improve :: Fractional a\n",+      "    => Int -- n\n",+      "    -> a -- O(h^n) estimate with step size h/2\n",+      "    -> a -- O(h^n) estimate with step size h\n",+      "    -> a -- O(h^(n+1)) estimate\n",+      "improve n x y = let c = 4^(n-1) in (c*x - y) / (c - 1)\n",+      "\n",+      "rombM :: Fractional a\n",+      "    => (a -> a)\n",+      "    -> a\n",+      "    -> a\n",+      "    -> [[a]]\n",+      "rombM f a b =\n",+      "    let is = map (\\n -> trap f a b (2^n)) [0..]\n",+      "    in map snd\n",+      "        $ iterate\n",+      "            (\\(n,s) -> (n+1, zipWith (improve n) (tail s) s))\n",+      "            (2,is)\n",+      "\n",+      "romb :: Fractional a\n",+      "    => (a -> a)\n",+      "    -> a\n",+      "    -> a\n",+      "    -> [a] -- successive approximations\n",+      "romb f a b = map head $ rombM f a b"+     ],+     "language": "python",+     "metadata": {},+     "outputs": [],+     "prompt_number": 7+    },+    {+     "cell_type": "code",+     "collapsed": false,+     "input": [+      "xs = take 5 $ romb exp 0 1 :: [Double]\n",+      "\n",+      "print xs"+     ],+     "language": "python",+     "metadata": {},+     "outputs": [+      {+       "metadata": {},+       "output_type": "display_data",+       "text": [+        "[1.8591409142295225,1.7188611518765928,1.7182826879247577,1.7182818287945305,1.7182818284590786]"+       ]+      }+     ],+     "prompt_number": 3+    },+    {+     "cell_type": "code",+     "collapsed": false,+     "input": [+      "sse <- do\n",+      " [pun| (sse) |] <- [rDisp|\n",+      "    m <- lm( log($(xs) / (exp(1)-1)) ~ I(1:length($(xs))))\n",+      "    plot(m, which=1:2)\n",+      "    print(predict(m))\n",+      "    hs_sse <- sum( resid(m)^2 )\n",+      "    |]\n",+      " return (sse :: Double)\n",+      "() -- needed to force a display"+     ],+     "language": "python",+     "metadata": {},+     "outputs": [+      {+       "metadata": {},+       "output_type": "display_data",+       "text": [+        "()"+       ]+      },+      {+       "metadata": {},+       "output_type": "display_data",+       "text": []+      },+      {+       "html": [+        "<img src=\"data:image/png;base64,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\">\n"+       ],+       "metadata": {},+       "output_type": "display_data",+       "text": [+        "<img src=\"data:image/png;base64,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\">"+       ]+      },+      {+       "html": [+        "<img src=\"data:image/png;base64,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\">\n"+       ],+       "metadata": {},+       "output_type": "display_data",+       "text": [+        "<img src=\"data:image/png;base64,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\">"+       ]+      },+      {+       "metadata": {},+       "output_type": "display_data",+       "text": []+      },+      {+       "metadata": {},+       "output_type": "display_data",+       "text": []+      },+      {+       "metadata": {},+       "output_type": "display_data",+       "text": [+        "         1          2          3          4          5 \n",+        " 4.741e-02  3.162e-02  1.583e-02  3.381e-05 -1.576e-02"+       ]+      },+      {+       "metadata": {},+       "output_type": "display_data",+       "text": []+      },+      {+       "metadata": {},+       "output_type": "display_data",+       "text": []+      },+      {+       "metadata": {},+       "output_type": "display_data",+       "text": []+      },+      {+       "metadata": {},+       "output_type": "display_data"+      }+     ],+     "prompt_number": 4+    },+    {+     "cell_type": "code",+     "collapsed": false,+     "input": [+      "sse"+     ],+     "language": "python",+     "metadata": {},+     "outputs": [+      {+       "metadata": {},+       "output_type": "display_data",+       "text": [+        "2.4619397033555017e-3"+       ]+      }+     ],+     "prompt_number": 5+    },+    {+     "cell_type": "code",+     "collapsed": false,+     "input": [],+     "language": "python",+     "metadata": {},+     "outputs": []+    }+   ],+   "metadata": {}+  }+ ]+}
examples/runexamples.hs view
@@ -1,4 +1,4 @@--- same test runner as in HList+-- similar to the test runner as in HList module Main where  import Control.Exception@@ -16,18 +16,19 @@   es <- getDirectoryContents "examples"  +  putStrLn "Candidate tests"   print es   -- very dumb   es <- filterM (\e -> allM     [return (takeExtension e == ".hs"),-     doesFileExist (dropExtension ("examples"</>e) ++ ".ref") ]) es+     doesFileExist (dropExtension ("examples"</>e) ++ ".ref")]) es +  putStrLn "\nSelected tests"   print es    hspec $ do     mapM_ runghcwith es - runghcwith f = describe f $ it "ok" $ checkResult $   do     let ex = ("examples" </>)@@ -37,7 +38,9 @@      (ec, stdout, stderr) <- readProcessWithExitCode "cabal" ["repl","-v0",         "--ghc-options", "-w -fcontext-stack=50 -iexamples -v0 "]-        (":set -package lens\n:load " ++ inFile ++ "\nmain")+        (":set -package lens\n\+         \:load " ++ inFile +++         "\nmain\n")      writeFile outFile stdout 
examples/test.png view

binary file changed (8518 → 8085 bytes)

− examples/test2.hs
@@ -1,25 +0,0 @@-{-# LANGUAGE NoMonomorphismRestriction #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE QuasiQuotes #-}-module Main where-import RlangQQ-import Data.HList---x = [0 .. 10  :: Double]-y = map (sin . (*pi) . (/10)) x---test = [r| print('hi'); hs_z <- hs_x + hs_y |]--test2 = fmap (.!. (Label :: Label "z")) test--test3 = print =<< (test2 :: IO [Double])---main = do-    test3-    let hs = zipWith (+) x y-    let sse x y = sum $ zipWith (\a b -> (a-b)^2) x y-    fmap (sse hs) test2
− examples/test2.ref
@@ -1,2 +0,0 @@-[0.0,1.3090169943749475,2.5877852522924734,3.8090169943749475,4.951056516295154,6.0,6.951056516295154,7.8090169943749475,8.587785252292473,9.309016994374948,10.0]-0.0
− examples/test3.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE ViewPatterns #-} -- for pun-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}-module Main where-import RlangQQ-import GHC.TypeLits--makeLabels6 (words "x y z")--inRec = x .=. "xlabel" .*.  y .=. [1,2,3::Double] .*. z .=. [3,2,1 :: Double] .*. emptyRecord---- fixity is bad for .!. see test3_lens.hs for something better?-main = do-    o <- [r|-                print(hs_inRec)-                hs_inRec <- within(hs_inRec, y <- y + z) |]-    print ((o .!. (Label :: Label "inRec")) .!. y)---    -- alternative to the above (shadows the label y)-    let [pun| inRec{ y } |] = o-    print y
− examples/test3.ref
@@ -1,2 +0,0 @@-[4.0,4.0,4.0]-[4.0,4.0,4.0]
− examples/test3_lens.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}-module Main where-import RlangQQ-import GHC.TypeLits-import Control.Lens--makeLabelable "x y z"--inRec = x .==. "xlabel" .*.  y .==. [1,2,3::Double] .*. z .==. [3,2,1 :: Double] .*. emptyRecord--main = do-    o <- [r|-                print(hs_inRec)-                hs_inRec <- within(hs_inRec, y <- y + z) |]-    let inR = hLens' (Label :: Label "inRec")-    print (o ^.inR.y)
− examples/test3_lens.ref
@@ -1,1 +0,0 @@-[4.0,4.0,4.0]
− examples/test4.hs
@@ -1,52 +0,0 @@-{-# LANGUAGE DataKinds, TemplateHaskell, QuasiQuotes #-}-module Main where-import RlangQQ-import GHC.TypeLits -- ghc7.6 workaround-import Control.Monad--makeLabels6 (words "x y z")--inRec = x .=. "xlabel" .*.  y .=. [1,2,3::Double] .*. z .=. [3,2,1 :: Double] .*. emptyRecord--inRecL = Label :: Label "inRec"--{- $test--note that the same R-session is run for all calls to f1,-that is why the results differ between f1 and f2:-->>> f1-[5.0,5.0,5.0]-[10.0,9.0,8.0]-[16.0,14.0,12.0]-[23.0,20.0,17.0]--->>> f2-[5.0,5.0,5.0]-[6.0,6.0,6.0]-[7.0,7.0,7.0]-[8.0,8.0,8.0]---}-f1 = do--    w <- newRChan--    [r|-        print(hs_inRec) # this shouldn't be necessary to force INOUT-        hs_inRec <- within(hs_inRec, y <- y + z + ch_w) |]---    forM_ [1,2,3,4 :: Double] $ \n -> do-            o' <- sendRcv w n-            print ((o' .!. inRecL) .!. y)--f2 = forM_ [1,2,3,4 :: Double] $ \n -> do-            o' <- [r|-                        print(hs_inRec) # this shouldn't be necessary to force INOUT-                        hs_inRec <- within(hs_inRec, y <- y + z + hs_n) |]-            print ((o' .!. inRecL) .!. y)---main = do f1;f2
− examples/test4.ref
@@ -1,8 +0,0 @@-[5.0,5.0,5.0]-[10.0,9.0,8.0]-[16.0,14.0,12.0]-[23.0,20.0,17.0]-[5.0,5.0,5.0]-[6.0,6.0,6.0]-[7.0,7.0,7.0]-[8.0,8.0,8.0]
− examples/test5.hs
@@ -1,31 +0,0 @@-{-# LANGUAGE DataKinds, TemplateHaskell, QuasiQuotes #-}-module Main where-import RlangQQ-import GHC.TypeLits -- ghc7.6 workaround-import Control.Monad--makeLabels6 (words "x y z")--inRec = x .=. "xlabel" .*.  y .=. [1,2,3::Double] .*. z .=. [3,2,1 :: Double] .*. emptyRecord--inRecL = Label :: Label "inRec"--f2 = forM_ [1,2,3,4 :: Double] $ \n -> do-            o' <- [r| # this shouldn't be necessary to force INOUT-                        print(hs_inRec)-                        hs_inRec <- within(hs_inRec, y <- y + z + $(n+1)  ) |]-            print ((o' .!. inRecL) .!. y)---{- $output--->>> f2-[6.0,6.0,6.0]-[7.0,7.0,7.0]-[8.0,8.0,8.0]-[9.0,9.0,9.0]---}--main = f2
− examples/test5.ref
@@ -1,4 +0,0 @@-[6.0,6.0,6.0]-[7.0,7.0,7.0]-[8.0,8.0,8.0]-[9.0,9.0,9.0]
+ examples/test6.html view
@@ -0,0 +1,48 @@+<!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=utf-8" />+  <meta http-equiv="Content-Style-Type" content="text/css" />+  <meta name="generator" content="pandoc" />+  <title></title>+  <style type="text/css">+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {+  margin: 0; padding: 0; vertical-align: baseline; border: none; }+table.sourceCode { width: 100%; }+td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }+td.sourceCode { padding-left: 5px; }+code > span.kw { color: #007020; font-weight: bold; }+code > span.dt { color: #902000; }+code > span.dv { color: #40a070; }+code > span.bn { color: #40a070; }+code > span.fl { color: #40a070; }+code > span.ch { color: #4070a0; }+code > span.st { color: #4070a0; }+code > span.co { color: #60a0b0; font-style: italic; }+code > span.ot { color: #007020; }+code > span.al { color: #ff0000; font-weight: bold; }+code > span.fu { color: #06287e; }+code > span.er { color: #ff0000; font-weight: bold; }+  </style>+</head>+<body>+<h1 id="test-6">test 6</h1>+<p>This file can be loaded into whatever editor you like to use for knitr. ghc is called for the second code block.</p>+<pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(knitr)+opts_chunk$<span class="kw">set</span>(<span class="dt">engine =</span> <span class="st">&quot;haskell&quot;</span>, <span class="dt">engine.path =</span> <span class="st">&quot;ghc&quot;</span>)</code></pre>+<pre class="sourceCode haskell"><code class="sourceCode haskell"><span class="fu">:</span>set <span class="fu">-</span><span class="dt">XQuasiQuotes</span>+<span class="fu">:</span><span class="kw">module</span> <span class="fu">+</span><span class="dt">RlangQQ</span>+<span class="kw">let</span> fibs <span class="fu">=</span> <span class="fl">0.0</span><span class="fu">:</span><span class="dv">1</span><span class="fu">:</span> <span class="fu">zipWith</span> (<span class="fu">+</span>) fibs (<span class="fu">drop</span> <span class="dv">1</span> fibs)+[r<span class="fu">|</span> png(<span class="ch">&#39;test6_fig1.png&#39;</span>); plot(<span class="dv">1</span><span class="fu">:</span><span class="dv">20</span>, <span class="fu">$</span>(<span class="fu">take</span> <span class="dv">20</span> fibs)); dev<span class="fu">.</span>off() <span class="fu">|</span>]</code></pre>+<div class="figure">+<img src="test6_fig1.png" alt="test6 caption here" /><p class="caption">test6 caption here</p>+</div>+<h2 id="limitations">limitations</h2>+<ul>+<li>This simple example works but unfortunately the haskell knitr engine doesn't allow newlines instead of semicolons in the quasiquote (<code>[r| |]</code>)</li>+<li><p>Also note a comment from here <a href="http://yihui.name/knitr/demo/engines/"><code class="url">http://yihui.name/knitr/demo/engines/</code></a>:</p>+<pre><code>Except engine=&#39;R&#39; (default), all chunks are executed in separate sessions, so the variables cannot be directly shared. If we want to make use of objects created in previous chunks, we usually have to write them to files (as side effects). For the bash engine, we can use Sys.setenv() to export variables from R to bash (example).</code></pre></li>+<li><p>Graphical output from haskell chunks has to be manually included.</p></li>+</ul>+</body>+</html>
+ examples/test7.html view
@@ -0,0 +1,58 @@+<!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=utf-8" />+  <meta http-equiv="Content-Style-Type" content="text/css" />+  <meta name="generator" content="pandoc" />+  <title></title>+  <style type="text/css">+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {+  margin: 0; padding: 0; vertical-align: baseline; border: none; }+table.sourceCode { width: 100%; }+td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }+td.sourceCode { padding-left: 5px; }+code > span.kw { color: #007020; font-weight: bold; }+code > span.dt { color: #902000; }+code > span.dv { color: #40a070; }+code > span.bn { color: #40a070; }+code > span.fl { color: #40a070; }+code > span.ch { color: #4070a0; }+code > span.st { color: #4070a0; }+code > span.co { color: #60a0b0; font-style: italic; }+code > span.ot { color: #007020; }+code > span.al { color: #ff0000; font-weight: bold; }+code > span.fu { color: #06287e; }+code > span.er { color: #ff0000; font-weight: bold; }+  </style>+</head>+<body>+<h1 id="test-7">test 7</h1>+<p>Same as test6, except needs a change to knitr as of October 2013 (ie. 1.5 is not good enough). <a href="https://github.com/yihui/knitr/pull/633">This commit is needed</a>.</p>+<p>This file can be loaded into whatever editor you like to use for knitr. I use <a href="http://www.vim.org/scripts/script.php?script_id=2628">vim-r-plugin</a>, but perhaps ESS or Rstudio can also work. After some set-up in the first block. ghc is called for the second code block.</p>+<pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(knitr)+opts_chunk$<span class="kw">set</span>(<span class="dt">engine =</span> <span class="st">&quot;haskell&quot;</span>, <span class="dt">engine.path =</span> <span class="st">&quot;ghc&quot;</span>, <span class="dt">engine.opts =</span> <span class="st">&quot;-e </span><span class="ch">\&quot;</span><span class="st">:set -XQuasiQuotes</span><span class="ch">\&quot;</span><span class="st"> -e </span><span class="ch">\&quot;</span><span class="st">import RlangQQ</span><span class="ch">\&quot;</span><span class="st">&quot;</span>)</code></pre>+<pre class="sourceCode haskell"><code class="sourceCode haskell">+<span class="kw">let</span> fibs <span class="fu">=</span> <span class="fl">0.0</span><span class="fu">:</span><span class="dv">1</span><span class="fu">:</span> <span class="fu">zipWith</span> (<span class="fu">+</span>) fibs (<span class="fu">drop</span> <span class="dv">1</span> fibs)++[r<span class="fu">|</span> png(<span class="ch">&#39;test6_fig1.png&#39;</span>)+    plot(<span class="dv">1</span><span class="fu">:</span><span class="dv">20</span>, <span class="fu">$</span>(<span class="fu">take</span> <span class="dv">20</span> fibs))+    dev<span class="fu">.</span>off() <span class="fu">|</span>]</code></pre>+<pre class="sourceCode haskell"><code class="sourceCode haskell">+<span class="kw">do</span> <span class="kw">let</span> x <span class="fu">=</span> <span class="dv">1</span>+   <span class="fu">print</span>(<span class="dv">1</span><span class="fu">+</span>x)+   <span class="fu">print</span>(<span class="dv">2</span><span class="fu">+</span>x)</code></pre>+<pre><code>## 2+## 3</code></pre>+<div class="figure">+<img src="test6_fig1.png" alt="test6 caption here" /><p class="caption">test6 caption here</p>+</div>+<h2 id="limitations">limitations</h2>+<ul>+<li><p>each block is a separate session. You would have to manually save/load variables defined in the previous chunk to make things work as they do for R.</p></li>+<li><p>code is interpreted, not compiled</p></li>+<li><p>graphical output from haskell chunks has to be manually included</p></li>+</ul>+<h2 id="raw-code">raw code</h2>+<p>See <a href="test7.Rmd.html">here</a></p>+</body>+</html>
+ examples/testplot.png view

binary file changed (absent → 8085 bytes)

+ examples/tests.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# LANGUAGE DataKinds, PolyKinds, FlexibleContexts, TemplateHaskell, QuasiQuotes #-}+module Main where+import Test.Hspec++import System.Directory+import RlangQQ+import GHC.TypeLits+import Control.Lens++import Control.Monad+import qualified Data.Vector as V++makeLabelable "x y z"++inRecL = hLens' (Label :: Label "inRec")++inRec = [pun| x y z |] where+    x = "xlabel"+    y,z :: [Double]+    y = [1,2,3]+    z = [3,2,1]+++main = hspec $ describe "rlangqq" $ do+  it "can read a tsv file" $ do+      [pun| x@(a b) s |] <- [r|+        # find the file whether we runghc tests.hs+        # runghc examples/tests.hs+        fname <- c(Sys.glob('*.tsv'), Sys.glob('examples/*.tsv'))[1]+        hs_x <- as.list(read.delim(fname, sep=' '))+        hs_s <- as.numeric(with(hs_x, t(a) %*% b))+        |]+      (V.sum (V.zipWith (*) a b) :: Double, s :: Double)+        `shouldBe` (93.783, 93.783)++  it "does the same as zipWith" $ do++      o <- [r| print(hs_inRec) # should be unnecessary+               hs_inRec <- within(hs_inRec, y <- y + z) |]+      let inR = hLens' (Label :: Label "inRec")+      (o ^.inR.y) `shouldBe` zipWith (+) (inRec^.y) (inRec^.z)+  +  it "accumulates when variables are ch_" $ do+        w <- newRChan+        [r|+            print(hs_inRec) # this shouldn't be necessary to force INOUT+            hs_inRec <- within(hs_inRec, y <- y + z + ch_w) |]++        out <- forM [1,2,3,4 :: Double] $ \n -> do+                sendRcv w n <&> view (inRecL . y)+        out `shouldBe`+          tail (scanl+                    (\ accum n -> map (+n) $ zipWith (+) (inRec^.z) accum)+                    (inRec^.y)+                    [1 .. 4])++  it "repeats when variables are not ch_" $ do+      out <- forM [1,2,3,4 :: Double] $ \n -> do+          [r| print(hs_inRec) # this shouldn't be necessary to force INOUT+              hs_inRec <- within(hs_inRec, y <- y + z + hs_n) |]+            <&> view (inRecL . y)+      out `shouldBe`+       map (\n -> map (+n) (zipWith (+) (inRec^.y) (inRec^.z))) [1 .. 4]+    +  it "interpolates haskell expressions" $ do+        ys <- forM [1,2,3,4 :: Double] $ \n -> do+            [pun| inRec{y} |] <- [r| # this shouldn't be necessary to force INOUT+                        print(hs_inRec)+                        hs_inRec <- within(hs_inRec, y <- y + z + $(n+1)  ) |]+            return y+        ys `shouldBe` map (\n -> map (+(1+n)) (zipWith (+) (inRec^.y) (inRec^.z))) [1 .. 4]++  it "can make a plot where you ask it to" $ do+      let x = [0 .. 10  :: Double]+          y = map (sin . (*pi) . (/10)) x+      b <- doesFileExist "testplot.png"+      when b (removeFile "testplot.png")+      -- normally you would just call qplot, and find a plot in Rtmp/figN/...+      [r| library(ggplot2)+          print('blahh')+          png(file='testplot.png')+          plot(qplot( hs_x, hs_y ))+          dev.off()+          |]+      doesFileExist "testplot.png" `shouldReturn` True
src/HListExtras.hs view
@@ -1,18 +1,7 @@-{-# LANGUAGE FunctionalDependencies #-}-{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoMonomorphismRestriction #-}-{-# LANGUAGE ConstraintKinds #-}-{-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE PolyKinds #-}-{-# LANGUAGE KindSignatures #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE GADTs #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE UndecidableInstances #-}  module HListExtras where import Data.HList.CommonMain@@ -22,65 +11,4 @@ instance (ApplyAB f a b, ab ~ (a -> b)) =>  ApplyAB FApply f ab where     applyAB _ = applyAB -class HReplicate2 (n ::HNat) e l | n e -> l, l -> n-    where hReplicate2 :: Proxy n -> e -> HList l-instance HReplicate2 HZero e '[] where-    hReplicate2 _ _ = HNil-instance (HReplicate2 n e es') => HReplicate2 (HSucc n) e (e ': es') where-    hReplicate2 n e = e `HCons` hReplicate2 (hPred n) e---- hReplicateApp :: HReplicate2 (HLength r) e r' => e -> HList r-hReplicateApp e = let r = hMap FApply (hReplicate2 (hLength r) e) in r---- | splitAt-hSplitAt n xs = hSplitAtAux n xs HNil--class HSplitAtAux (n :: HNat) l a0 a b | n -> l a0 a b where-    hSplitAtAux :: Proxy n -> HList l -> HList a0 -> (HList a, HList b)--instance (l ~ b, a ~ HRevApp a0 '[]) => HSplitAtAux HZero l a0 a b where-    hSplitAtAux _ l acc = (hReverse acc, l)--instance  (  (x ': xs) ~ ls, acc' ~ (x ': acc),-    HSplitAtAux n xs acc' a b) => HSplitAtAux (HSucc n) ls acc a b where-    hSplitAtAux n (HCons x xs) acc = hSplitAtAux (hPred n) xs (HCons x acc)---hEnumFromTo :: Proxy a -> Proxy b -> Proxy (HEnumFromTo a b)-hEnumFromTo a b = proxy---- |  [n1 .. n1 + n2]--type family HEnumFromTo (from::HNat) (to::HNat) :: [HNat]-type instance HEnumFromTo a HZero = '[a]-type instance HEnumFromTo a (HSucc b) = a ': HEnumFromTo (HSucc a) b----- this doesn't work any better... want ghc to be able to simplify--- that (hReverse (hReverse x) `asTypeOf` x)-class (SameLength a b, SameLength b a) => HReverse2 a b | a -> b, b -> a where-    hReverse2 :: HList a -> HList b--instance (SameLength a b, SameLength b a, HRevApp a '[] ~ b, HRevApp b '[] ~ a) =>  HReverse2 a b where-    hReverse2 = hReverse---class HMap1 f a b where hMap1 :: f -> HList a -> HList b--instance (a ~ '[]) => HMap1  f a '[] where-    hMap1 _ _ = HNil--instance (ApplyAB f a b, (a ': as) ~ aas, HMap1 f as bs) =>-    HMap1 f aas (b ': bs) where-    hMap1 f (HCons a as) = HCons (applyAB f a) (hMap1 f as)---class HMap2 f a b where hMap2 :: f -> HList a -> HList b--instance (a ~ '[]) => HMap2  f '[] a where-    hMap2 _ _ = HNil--instance (ApplyAB f a b, (b ': bs) ~ bbs, HMap2 f as bs) =>-    HMap2 f (a ': as) bbs where-    hMap2 f (HCons a as) = HCons (applyAB f a) (hMap2 f as) 
src/RlangQQ.hs view
@@ -36,15 +36,10 @@ import Language.Haskell.TH.Quote  import Data.HList.CommonMain- import GHC.TypeLits-- import Control.Concurrent  -- {- | Calls R with the supplied string. Variables in R prefixed hs_ cause the corresponding (un-prefixed) variable to be converted. The variable(s) must be in at least one class 'FromRDS' or 'ToRDS'. Currently the relation between@@ -74,24 +69,22 @@  While it is only somewhat usable, you can have Rnw/Rmd documents (knitr) that include haskell code. One example is given-<http://code.haskell.org/~aavogt/Rlang-QQ/examples/test7.html here>+<http://code.haskell.org/~aavogt/Rlang-QQ/examples/test7.Rmd here>. A second+option is to use <http://hackage.haskell.org/package/ihaskell IHaskell>, for+which there are two example notebooks in the same <http://code.haskell.org/~aavogt/Rlang-QQ/examples>  -} r = QuasiQuoter { quoteExp = \s -> do         n <- getRlangQQ_n-        quoteRExpression2 n False ("print('');"++ s)-            -- the first expression gets dropped somewhere else-            -- this hack is easiest+        quoteRExpression2 n False s          }  --- | same as @[rChan| |]@ does the same as [r|  |], except the+-- | @[rChan| |]@ does the same as [r|  |], except the -- return value will be a @Chan (Record a)@. rChan = QuasiQuoter { quoteExp = \s -> do         n <- getRlangQQ_n-        quoteRExpression2 n True ("print('');"++ s)-            -- the first expression gets dropped somewhere else-            -- this hack is easiest+        quoteRExpression2 n True s         }  {- $records@@ -149,6 +142,8 @@ -- | @y <- sendRcv c x@ sends the value @x@ using the chan @c@. -- Provided that an @[r| |]@ quasiquote above refers to a @ch_c@, -- the call to 'sendRcv' will eventually produce a 'Record' @y@+-- which provides a reference to all the output variables that+-- R calculated with the given @x@.  sendRcv :: Chan (t, b -> IO ()) -> t -> IO b sendRcv ch e = do     v <- newEmptyMVar@@ -164,7 +159,7 @@ also, return R's stdout / stderr / exitcode in the HList. This won't be practical for the Chan option since the stdout is getting consumed? -[@antiquote@] doesn't do escapes, so a string '$( blah )' might end badly+[@antiquote@] doesn't do escapes, so a string \'$( blah )\' might end badly  [@more examples@] conversion both ways etc. @@ -173,7 +168,7 @@ [@more datatypes@] support things like ??, ...  [@call R functions as if they were defined in haskell@]-This can be achievede already by doing something like+This can be achieved already by doing something like  > x <- newRChan > [r| hs_f <- ch_x + 1 |]@@ -188,8 +183,10 @@ Can this be made to work without looking at whether there is a function() after the <-?  [@call hs functions as if they were defined in R@]-we might like to be able to have values like @f x = x + 1@-be callable by.+Likewise, we might like values like @f x = x + 1@ to be callable from+R (for example by defining a foreign export ccall f :: Int32 -> Int32), and+dyn.load('something'); .C('f', x=1L). Alternatively the R interpreter might+have a way to communicate some other way.  [@use libR.so@] there is a <http://hackage.haskell.org/package/hR-0.1.1 hR package> which might@@ -218,5 +215,7 @@  or run the code first with some dummy inputs (say vectors of length 10 or so), and assume those types will continue to be the same.++<http://cran.r-project.org/web/packages/lambda.r/index.html>  -}
src/RlangQQ/Binary.hs view
@@ -1,19 +1,7 @@-{-# LANGUAGE FunctionalDependencies #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE PolyKinds #-} {-# LANGUAGE NoMonomorphismRestriction #-}-{-# LANGUAGE ConstraintKinds #-}-{-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE PolyKinds #-}-{-# LANGUAGE KindSignatures #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE GADTs #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleInstances #-}-+{-# LANGUAGE UndecidableInstances #-} {- | Conversions between R's RDS/RDA format and haskell data types.  tested with R 3.0.1@@ -53,6 +41,8 @@ import Data.Int import Data.HList.CommonMain import qualified Data.Vector as V+import qualified Data.Vector.Storable as VS+import qualified Data.Vector.Generic as VG import qualified Data.Map as M  import Data.Binary@@ -77,12 +67,12 @@ import HListExtras  data FLVPair = FLVPair-instance (LVPair l a ~ b) => ApplyAB FLVPair a b where-    applyAB FLVPair x = LVPair x+instance (Tagged l a ~ b) => ApplyAB FLVPair a b where+    applyAB FLVPair x = Tagged x  -- this should not be necessary type family UnHMapFLVPair (a :: [*]) :: [*]-type instance UnHMapFLVPair (LVPair l a ': as) = a ': UnHMapFLVPair as+type instance UnHMapFLVPair (Tagged l a ': as) = a ': UnHMapFLVPair as type instance UnHMapFLVPair '[] = '[]  -- | this seems to be a magic number. Corresponds to R 3.0.1@@ -103,30 +93,42 @@ putDouble = put . (unsafeCoerce :: Double -> Int64) getDouble = fmap (unsafeCoerce :: Int64 -> Double) get +getVectorDouble = do+  14 <- get :: Get Int32+  len <- get :: Get Int32+  VG.replicateM (fromIntegral len) getDouble++putVectorDouble x = do+  put (14 :: Int32)+  put (fromIntegral $ VG.length x :: Int32)+  VG.mapM_ putDouble x++getVectorInt = do+  13 <- get :: Get Int32+  len <- get :: Get Int32+  VG.replicateM (fromIntegral len) get++putVectorInt x = do+  put (13 :: Int32)+  put (fromIntegral $ VG.length x :: Int32)+  VG.mapM_ put x+ -- | becomes a numeric vector-instance ToRDS (V.Vector Double) where-    toRDS x = do-        put (14 :: Int32)-        put (fromIntegral $ V.length x :: Int32)-        V.mapM_ putDouble x-instance FromRDS (V.Vector Double) where-    fromRDS = do-        14 <- get :: Get Int32-        len <- get :: Get Int32-        V.mapM (const getDouble) $ V.replicate (fromIntegral len) ()+instance ToRDS (V.Vector Double) where toRDS = putVectorDouble +-- | becomes a numeric vector+instance ToRDS (VS.Vector Double) where toRDS = putVectorDouble++instance FromRDS (V.Vector Double) where fromRDS = getVectorDouble+instance FromRDS (VS.Vector Double) where fromRDS = getVectorDouble+ -- | integer vector-instance ToRDS (V.Vector Int32) where-    toRDS x = do-        put (13 :: Int32)-        put (fromIntegral $ V.length x :: Int32)-        V.mapM_ put x-instance FromRDS (V.Vector Int32) where-    fromRDS = do-        13 <- get :: Get Int32-        len <- get-        V.mapM (const get) $ V.replicate len ()+instance ToRDS (V.Vector Int32) where toRDS = putVectorInt+instance FromRDS (V.Vector Int32) where fromRDS = getVectorInt +instance ToRDS (VS.Vector Int32) where toRDS = putVectorInt+instance FromRDS (VS.Vector Int32) where fromRDS = getVectorInt+ -- | character vector @c(\'ab\',\'cd\')@ instance ToRDS (V.Vector T.Text) where     toRDS x = do@@ -183,7 +185,7 @@ instance  (RDSHLIST xs' xs) => ToRDS (LST xs) where     toRDS (LST xs) = do         put (531::Int32)-        let [(len,"")] = reads (drop 1 $ show (proxy :: Proxy (HLength xs)))+        let len = hNat2Integral (Proxy :: Proxy (HLength xs))         put (fromIntegral (len - 2 :: Int) :: Int32)         hFoldr (HSeq FToRDS) (return () :: Put) xs :: Put         put (254::Int32)@@ -198,7 +200,7 @@ instance (RDSHLIST2 ___ __ l) => FromRDS (LST l) where     fromRDS = withSelf $ \(self) -> do         531 <- get :: Get Int32-        let [(len,"")] = reads (drop 1 $ show (hLength self))+        let len = hNat2Integral (hLength self)          len2 <- get :: Get Int32         when (len /= len2) $ error $ "fromRDS expected length: " ++ show len ++ " rds file has length: " ++ show len2         r <- hSequence (hSequence (hMap FApply $ hReplicate (hLength self) FFromRDS) ())@@ -223,9 +225,9 @@  type ToRDSRecord __ ___ xs = (RDSHLIST __ ___, ToRDS (LST ___),             RecordValues xs,-            HList ___ ~ (HList (RecordValuesR xs) `HAppendR` HList '[ListStart, LVPair "names" [String]]),+            HList ___ ~ (HList (RecordValuesR xs) `HAppendR` HList '[ListStart, Tagged "names" [String]]),             RecordLabelsString (RecordLabels xs),-            HAppend (HList (RecordValuesR xs)) (HList '[ ListStart, LVPair "names" [String]]))+            HAppend (HList (RecordValuesR xs)) (HList '[ ListStart, Tagged "names" [String]]))   @@ -233,7 +235,6 @@ -- functions called type FromRDSRec a b as' as'2 bs' = (HSequence Get b as',                 HSequence ((->) ()) a b,-                -- HMap1 FLVPair as' bs',                 HMapAux FLVPair as' bs',                 SameLength as' bs',                 SameLength bs' as',@@ -245,19 +246,32 @@                 HMapOut (HComp FShowLabel FLabelLVPair) bs' String,                 RecordLabelsString (RecordLabels bs'),                 HNat2Integral (HLength bs'),-                HReplicate2 (HLength bs') FFromRDS as'2)+                HReplicate (HLength bs') FFromRDS,+                HReplicateR (HLength bs')FFromRDS ~ as'2) +{- | R lists become HList records. @list(x=1,y='b')@ parses to something+like++> let x = Label :: Label "x"+>     y = Label :: Label "y"+> in    x .=. 1+>   .*. y .=. "b"+>   .*. emptyRecord++You have to get the result type right+(ie. @Record [Tagged \"x\" Double, Tagged \"y\" String]@) for things to parse+-} instance FromRDSRec a b as' as'2 bs' => FromRDS (Record bs') where     fromRDS = do         531 <- get :: Get Int32-        let len = hNat2Integral (proxy :: Proxy (HLength bs'))+        let len = hNat2Integral (Proxy :: Proxy (HLength bs'))         len2 <- get :: Get Int32         when (len /= len2) $ error $ "fromRDS expected length: " ++ show len ++ " rds file has length: " ++ show len2          r <- hSequence                 (hSequence                     (hMap FApply-                        (hReplicate2 (proxy :: Proxy (HLength bs')) FFromRDS) )+                        (hReplicate (Proxy :: Proxy (HLength bs')) FFromRDS) )                     ())         getListHdr         "names" <- getString@@ -269,7 +283,7 @@                     ++ " rds file has names attribute : " ++ show names          254 <- get :: Get Int32-        return (Record (hMap FLVPair (r :: HList as')))+        return (Record (hMap FLVPair (r :: HList as') :: HList bs'))         -- this hMap1 can't be replaced by hMap?  class RecordLabelsString (a :: [Symbol]) where@@ -280,14 +294,14 @@  instance (ShowLabel x, RecordLabelsString xs)         => RecordLabelsString (x ': xs) where-    recordLabelsString _ = showLabel (Label :: Label x) : recordLabelsString (proxy :: Proxy xs)+    recordLabelsString _ = showLabel (Label :: Label x) : recordLabelsString (Proxy :: Proxy xs)  -- same as recordLabelsString, but less lazy recLabs (Record xs) = hMapOut (HComp FShowLabel FLabelLVPair) xs  data FLabelLVPair = FLabelLVPair-instance(LVPair l a ~ x, y ~ Label l) => ApplyAB FLabelLVPair x y where-    applyAB FLabelLVPair = labelLVPair+instance(Tagged l a ~ x, y ~ Label l) => ApplyAB FLabelLVPair x y where+    applyAB FLabelLVPair _ = (Label :: Label l)  data FShowLabel = FShowLabel instance (string ~ String, ShowLabel l, ll ~ Label l) => ApplyAB FShowLabel ll string@@ -302,6 +316,8 @@  instance ToRDS Double where toRDS = toRDS . (:[]) instance ToRDS Int32  where toRDS = toRDS . (:[])+instance ToRDS Integer  where toRDS = toRDS . (fromIntegral :: Integer -> Int32)+instance ToRDS Int      where toRDS = toRDS . (fromIntegral :: Int     -> Int32)  instance FromRDS Int32 where     fromRDS = do@@ -313,13 +329,30 @@         [x] <- fromRDS         return x +instance FromRDS Int where+    fromRDS = fromIntegral <$> (fromRDS :: Get Int32) +instance FromRDS Integer where+    fromRDS = fromIntegral <$> (fromRDS :: Get Int32)++ instance ToRDS [Int32] where     toRDS = toRDS . V.fromList instance FromRDS [Int32] where     fromRDS = fmap V.toList $ fromRDS +-- | converts to an 'Int32', which is bad on 64 bit systems where+-- @maxBound :: Int@ is a bigger number than @maxBound :: Int32@+instance ToRDS [Int] where+    toRDS = toRDS . V.fromList . map (fromIntegral :: Int -> Int32)+instance FromRDS [Int] where+    fromRDS = map (fromIntegral :: Int32 -> Int) . V.toList <$> fromRDS +-- | converts to an 'Int32' first+instance ToRDS [Integer] where+    toRDS = toRDS . V.fromList . map (fromIntegral :: Integer -> Int32)+instance FromRDS [Integer] where+    fromRDS = map (fromIntegral :: Int32 -> Integer) . V.toList <$> fromRDS   putString s = do@@ -355,12 +388,12 @@   -- | probably internal-instance forall t l. (ToRDS t, ShowLabel l) => ToRDS (LVPair l t) where-    toRDS (LVPair x) = do+instance forall t l. (ToRDS t, ShowLabel l) => ToRDS (Tagged l t) where+    toRDS (Tagged x) = do         putString (showLabel (undefined :: Label l))         toRDS x -- | probably internal-instance forall t l. (FromRDS t, ShowLabel l) => FromRDS (LVPair l t) where+instance forall t l. (FromRDS t, ShowLabel l) => FromRDS (Tagged l t) where     fromRDS = do         varName <- getString @@ -368,24 +401,24 @@         unless (varName == s) $ fail $ unwords ["FromRDS: expecting label  `", s , "', but got: `" , varName , "'"]          x <- fromRDS-        return (LVPair x)+        return (Tagged x)  -- | labels are stored with the variables here. compare with the instance for 'Record' / 'LST' which collects -- the labels and saves them as an attribute called \"names\" newtype RDA a = RDA (HList a)  -- | internal-instance forall rs l2 t. (ToRDS t, ToRDS (RDA rs), ShowLabel l2) => ToRDS (RDA (LVPair l2 t ': rs)) where+instance forall rs l2 t. (ToRDS t, ToRDS (RDA rs), ShowLabel l2) => ToRDS (RDA (Tagged l2 t ': rs)) where     toRDS (RDA (x `HCons` xs)) = do         putListHdr         toRDS x         toRDS (RDA xs)  -- | internal-instance forall rs l2 t. (FromRDS t, FromRDS (RDA rs), ShowLabel l2) => FromRDS (RDA (LVPair l2 t ': rs)) where+instance forall rs l2 t. (FromRDS t, FromRDS (RDA rs), ShowLabel l2) => FromRDS (RDA (Tagged l2 t ': rs)) where     fromRDS = do         getListHdr-        x <- fromRDS :: Get (LVPair l2 t)+        x <- fromRDS :: Get (Tagged l2 t)         RDA xs <- fromRDS :: Get (RDA rs)         return (RDA (x `HCons` xs)) @@ -592,7 +625,7 @@  A typical type would be -> Record '[LVPair l1 (LVPair m1 x), LVPair l2 (LVPair m2 x)]+> Record '[Tagged l1 (Tagged m1 x), Tagged l2 (Tagged m2 x)]  The outer labels (@l1@, @l2@) are the haskell-side. The inner labels are the @m1@ @m2@ which are the names of the variables on the R side.@@ -608,9 +641,9 @@     hdr' <- fmap (BS.toString) $ getByteString (BS.length (BS.fromString hdr))     unless (hdr == hdr') $ fail "wrong header"     [{- 2 , 196609, 131840 -} _, _, _ :: Int32 ] <- replicateM 3 get-    fmap (\(RDA a) -> Record (hMap1 FLVPair (a::HList __) )) fromRDS+    fmap (\(RDA a) -> Record (hMap FLVPair (a::HList __) )) fromRDS -type FromRDA a r = (HMap1 FLVPair a r, FromRDS (RDA a))+type FromRDA a r = (HMapCxt FLVPair (HList a) (HList r) a r, FromRDS (RDA a))  -- * tests 
src/RlangQQ/FN.hs view
@@ -4,7 +4,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE MultiParamTypeClasses #-}--- | 'hMap' 'FN' drops the inner LVPair, which was+-- | 'hMap' 'FN' drops the inner Tagged, which was -- just used to keep track of the variable name on the -- R side. --@@ -15,10 +15,10 @@ import GHC.TypeLits data FN = FN -instance (a ~ (LVPair (t :: k) (LVPair (t2::k) x)), b ~LVPair t x) => ApplyAB FN a b where-    applyAB _ (LVPair (LVPair x)) = LVPair x+instance (a ~ (Tagged (t :: k) (Tagged (t2::k) x)), b ~Tagged t x) => ApplyAB FN a b where+    applyAB _ (Tagged (Tagged x)) = Tagged x  data NoLabel = NoLabel-instance (la ~ LVPair "" a) => ApplyAB NoLabel a la where-    applyAB _ x = LVPair x+instance (la ~ Tagged "" a) => ApplyAB NoLabel a la where+    applyAB _ x = Tagged x 
src/RlangQQ/Internal.hs view
@@ -1,7 +1,3 @@-{-# LANGUAGE ViewPatterns #-}-{-# LANGUAGE PatternGuards #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TemplateHaskell #-} module RlangQQ.Internal where @@ -23,6 +19,7 @@  import qualified Data.ByteString.Lazy.UTF8 as B import qualified Data.ByteString.Lazy as B+import qualified Data.ByteString.Lazy import qualified Data.ByteString.Lazy.Char8 as B8  import Control.Monad.State@@ -32,12 +29,14 @@ import qualified Data.Map as M import Data.Foldable (foldMap) +import System.FilePath  import Paths_Rlang_QQ  import RlangQQ.Binary import RlangQQ.Antiquote import RlangQQ.FN+-- import RlangQQ.ParseKnitted  import Control.Concurrent.Chan import Control.Concurrent.MVar@@ -51,21 +50,26 @@ -- | going via binary serialization (classes from "RlangQQ.Binary"). This is used in 'RlangQQ.r' quoteRExpression2 i returnChan str0 = do     let rawFile, mdFile, rmdFile, inputFile, inputFile2, outputFile, figPath :: String-        rawFile = printf "Rtmp/raw%d.R" (i :: Int)-        rmdFile = printf "Rtmp/raw%d.Rmd" i-        mdFile = printf "Rtmp/raw%d.md" i-        figPath = printf "Rtmp/fig%d/" i-        inputFile = printf "Rtmp/%d_hs.rdx" i+        rawFile    = printf "Rtmp/raw%d.R" (i :: Int)+        rmdFile    = printf "Rtmp/raw%d.Rmd" i+        rmdFile2   = printf "Rtmp/raw%d_.Rmd" i+        mdFile     = printf "Rtmp/raw%d.md" i+        figPath    = printf "Rtmp/fig%d/" i+        inputFile  = printf "Rtmp/%d_hs.rdx" i         inputFile2 = printf "Rtmp/%d_hs2.rdx" i         outputFile = printf "Rtmp/%d_r.rdx" i -        (knitrHdr, (str, addAntiquotes)) = fmap withRawFile (splitKnitrHdr str0)+        -- the print('') is to fix a bug that somehow drops the first+        -- expression sent to R+        (knitrHdr, withRawFile -> (("setwd('../');"++) -> str, addAntiquotes))+            = splitKnitrHdr str0+    let inRmdChunk s = unlines ["```{r " ++ knitrHdr ++ "}", s, "```"]      variables <- runIO $ do         t <- getDataFileName "Tree.R"         createDirectoryIfMissing False "Rtmp"         writeFile rawFile str-        writeFile rmdFile (unlines ["```{r " ++ knitrHdr ++ "}", str, "```"])+        writeFile rmdFile (inRmdChunk str)         rt <- readProcess "R" ["--no-save","--quiet"]             $ printf "source('%s'); rlangQQ_toTree(parse('%s'))" t rawFile         case parseString parseTree mempty rt of@@ -132,26 +136,33 @@             let mapSnd (Record x) = Record (hMap FN x)                 fixTy x = x `asTypeOf` Record $sampOutput                 fixTy2 x = x `asTypeOf` Record $sampOutput2-            in fixTy2 . mapSnd . fixTy . fromRDA <$> B.readFile outputFile |]+            in do+              cts <- B.readFile outputFile+              -- lazy IO makes for confusings: possibly better to switch+              -- over to strict BS instead of this+              Data.ByteString.Lazy.length cts `seq` return ()+              return . fixTy2 . mapSnd . fixTy $ fromRDA cts  |]          outVars :: [String]         outVars = [ s  | (s, intent) <- M.toList variables                         ++ M.toList chanVars {- necessary? -}, notIn intent ] --        writeOutputFile | [] <- outVars = [| "" |]-            | otherwise = stringE (printf "save(%s, file='%s', compress='gzip');"+        saveRVars :: String+        saveRVars+            | [] <- outVars = ""+            | otherwise = printf "save(%s, file='%s', compress='gzip');"                                     (intercalate "," $ reverse outVars)-                                    outputFile)+                                    (takeFileName outputFile)+        rmd2Content :: String+        rmd2Content = inRmdChunk str ++ inRmdChunk saveRVars          runRNoChan :: ExpQ         runRNoChan  = do             [| readProcess "R" ["--no-save", "--quiet"] $ concat                     [ $(stringE (printf "library(knitr);\-                                       \opts_chunk$set(fig.path='%s');\+                                       \opts_chunk$set(fig.path='%s',tidy=F);\                                        \load('%s');" figPath inputFile)),-                      $(stringE (printf "knit('%s', output='%s', quiet=TRUE);" rmdFile mdFile)),-                      $writeOutputFile ]+                      $(stringE (printf "knit('%s', output='%s', quiet=TRUE);" rmdFile2 mdFile))]                     |]  @@ -178,8 +189,8 @@                                         \ string that will never happen by chance\""                 forkIO $ forever $ do                     withOutputFn <- $writeChanInput-                    hPutStrLn i $ printf "load('%s'); knit('%s', output='%s', quiet=TRUE); %s %s"-                                        inputFile2 rmdFile mdFile $writeOutputFile+                    hPutStrLn i $ printf "load('%s'); knit('%s', output='%s', quiet=TRUE); %s"+                                        inputFile2 rmdFile2 mdFile                                         uniqueDoneString                     hFlush i                     $(whenOutVars [|  putMVar outVar withOutputFn |] )@@ -200,17 +211,18 @@                                     -- but that doesn't typecheck here...                                     )                                 |])-             return chOut            |] +    runIO $ writeFile rmdFile2 rmd2Content+     addAntiquotes [| do         {- already done, but Rtmp could have moved            since compile time -}         createDirectoryIfMissing False "Rtmp"         do-            f <- doesFileExist rawFile-            unless f $ writeFile rawFile str+            f <- doesFileExist rmdFile2+            unless f $ writeFile rmdFile2 rmd2Content          $writeInputFile         $(if M.size chanVars == 0 then [| do
src/RlangQQ/MakeRecord.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE ConstraintKinds, DataKinds,GADTs,FlexibleContexts, FlexibleInstances,KindSignatures,MultiParamTypeClasses #-} -- | functions to help making lists for consumption on the R side module RlangQQ.MakeRecord where @@ -11,7 +10,7 @@ -- | convert a haskell list into a record with labels all of type \"\". The length -- of the list is decided by the (type of the) first argument which is a 'HNat' listToRecN :: ListToRecN __ (n :: HNat) x r => Proxy n -> [x] -> Record r-listToRecN n xs = Record $ hMap2 NoLabel $ flip evalState xs $ hSequence $ hReplicate n comp+listToRecN n xs = Record $ hMap NoLabel $ flip evalState xs $ hSequence $ hReplicate n comp     where comp = do                 x : xs' <- get                 return () :: State [x] ()@@ -20,11 +19,11 @@  type ListToRecN __ (n :: HNat) x r = (HReplicate n (StateT [x] Identity x),     HSequence (StateT [x] Identity) (HReplicateR n (StateT [x] Identity x)) __,-    HMap2 NoLabel __ r)+    HMapCxt NoLabel (HList __) (HList r) __ r)    data NoLabel = NoLabel-instance (LVPair "" a ~ la) => ApplyAB NoLabel a la where-    applyAB _ x = LVPair x+instance (Tagged "" a ~ la) => ApplyAB NoLabel a la where+    applyAB _ x = Tagged x 
+ src/RlangQQ/ParseKnitted.hs view
@@ -0,0 +1,64 @@+{-# LANGUAGE ViewPatterns #-}+module RlangQQ.ParseKnitted+  (parseKnitted,+   KnitInteraction(..),+   KnitOutput(..)) where+import Data.List.Split hiding (chunk)+import Data.List+import Data.Maybe+import Data.Char++-- | splits up the contents of the .md file generated by @knitr::knit@+parseKnitted file = grp . chunk . lines $ file++data KnitInteraction = KnitInteraction String [KnitOutput]+  deriving (Show)++data KnitOutput+    = KnitAsIs String -- ^ has markup to be interpreted+    | KnitPrint String+    | KnitWarning String+    | KnitError String+    | KnitImage String FilePath -- ^ @![caption](pathToImage)@+  deriving (Show)+++chunk ( (stripPrefix "```" -> Just x) : xs) = +    let (a,b) = break (isPrefixOf "```") xs+    in (x,a) : chunk b+chunk ("" : xs) = chunk xs+chunk [] = []++-- | depends on knitr's default opts_chunk$get(comment) = "##"+classify :: [String] -> [KnitOutput]+classify (x:xs) | Just r <- stripPrefix "## Warning: " x =+    [KnitWarning (unlines $ r : map (tryStripPrefix "## ") xs)]+classify (x:xs) | Just r <- stripPrefix "## Error: " x =+    [KnitError (unlines $ r : map (tryStripPrefix "## ") xs)]+classify xs = splitImg xs++splitImg (x:xs) | Just r <- stripPrefix "![" x =+  let end s = case splitOn "](" s of+              [a,b] -> Just (KnitImage a b)+              _ -> Nothing+      -- plot(lm(y ~ x)) comes out as ![caption1](a) ![caption2](b)+      getCaps [] = []+      getCaps s = mapMaybe end $ splitOn ") ![" (r ++ "![")+  in getCaps r ++ splitImg xs+splitImg [] = []+splitImg xs @ (x : _) | "## " `isPrefixOf` x =+  let (a,b) = span (isPrefixOf "## ") xs+  in KnitPrint (unlines $ map (tryStripPrefix "## ") a) : splitImg b+splitImg xs =+  let (a,b) = break (\x -> any (`isPrefixOf` x) ["![","## "]) xs+  in KnitAsIs (unlines a) : splitImg b++tryStripPrefix p x = fromMaybe x $ stripPrefix p x ++grp (((/= "") -> True, a) : xs) =+    let (b,c) = span ((== "") . fst) xs+    in KnitInteraction (unlines a) (filter notBlank $ concatMap (classify . snd) b) : grp c+grp [] = []++notBlank (KnitPrint x) = not (all isSpace x)+notBlank _ = True