diff --git a/app/javascripts/components/main.js b/app/javascripts/components/main.js index 6ef5f67..4e285c5 100644 --- a/app/javascripts/components/main.js +++ b/app/javascripts/components/main.js @@ -402,22 +402,14 @@ const App = React.createClass({ diff --git a/app/javascripts/components/teamspeak.js b/app/javascripts/components/teamspeak.js index 05e9703..f69f90a 100644 --- a/app/javascripts/components/teamspeak.js +++ b/app/javascripts/components/teamspeak.js @@ -13,71 +13,69 @@ const teamspeakDefaults = { } }; -var TeamSpeakButton = exports.TeamSpeakButton = React.createClass({ +const TeamSpeakButton = exports.TeamSpeakButton = React.createClass({ + getInitialState() { + return { + open: false + }; + }, + + toggleOpen(e) { + e.preventDefault(); + this.setState({ open: !this.state.open }); + }, getDefaultProps() { return teamspeakDefaults }, + marineUrl() { return this.teamSpeakUrl(this.props.marine); }, + alienUrl() { return this.teamSpeakUrl(this.props.alien); }, + teamSpeakUrl(conn) { let params = `channel=${encodeURIComponent(conn.channel)}& channelpassword=${encodeURIComponent(conn.password)}`; return (`${this.props.url}?${params}`); }, + + chevron() { + if (this.state.open) { + return ; + } else { + return ; + } + }, + render() { - return ( - + const open = this.state.open; + let componentClass = ["treeview"]; + let dropdown; + if (open) { + componentClass.push("active"); + dropdown = ( + + ); + } + + return ( +
  • + + Teamspeak + {this.chevron()} + + {dropdown} +
  • ); } }); -var TeamSpeakModal = exports.TeamSpeakModal = React.createClass({ - getDefaultProps() { - return teamspeakDefaults; - }, - - render() { - return
    -
    -
    -
    - -

    Teamspeak Server Information

    -
    -
    -
    -
    Server
    -
    {this.props.url}
    -
    Password
    -
    {this.props.password}
    -
    Marine Channel
    -
    {this.props.marine.channel}
    -
    Alien Channel
    -
    {this.props.alien.channel}
    -
    -
    -
    -
    -
    - } -}); diff --git a/public/app.css b/public/app.css deleted file mode 100644 index c98e0dc..0000000 --- a/public/app.css +++ /dev/null @@ -1,11488 +0,0 @@ -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -@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) ")"; - } - 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; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .table td, - .table th { - background-color: #fff !important; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: 'Helvetica Neue', Helvetica, Arial; - font-size: 14px; - line-height: 1.428571429; - color: #839496; - background-color: #002b36; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #428bca; - text-decoration: none; -} -a:hover, -a:focus { - color: #2a6496; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - padding: 4px; - line-height: 1.428571429; - background-color: #002b36; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #657b83; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: "HelveticaNeue-CondensedBold", "Helvetica Neue", "Arial Narrow", Arial, sans-serif; - font-weight: 500; - line-height: 1.1; - color: #93a1a1; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #eee8d5; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 23px; -} -h4, -.h4 { - font-size: 17px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 11px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -cite { - font-style: normal; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-muted { - color: #eee8d5; -} -.text-primary { - color: #428bca; -} -a.text-primary:hover { - color: #3071a9; -} -.text-success { - color: #468847; -} -a.text-success:hover { - color: #356635; -} -.text-info { - color: #3a87ad; -} -a.text-info:hover { - color: #2d6987; -} -.text-warning { - color: #c09853; -} -a.text-warning:hover { - color: #a47e3c; -} -.text-danger { - color: #b94a48; -} -a.text-danger:hover { - color: #953b39; -} -.bg-primary { - color: #fff; - background-color: #428bca; -} -a.bg-primary:hover { - background-color: #3071a9; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #586e75; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -.list-inline > li:first-child { - padding-left: 0; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.428571429; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .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; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #eee8d5; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #586e75; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.428571429; - color: #eee8d5; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #586e75; - border-left: 0; - text-align: right; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -blockquote:before, -blockquote:after { - content: ""; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.428571429; -} -code, -kbd, -pre, -samp { - font-family: Monaco; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #d33682; - background-color: #073642; - white-space: nowrap; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.428571429; - word-break: break-all; - word-wrap: break-word; - color: #586e75; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -.row { - margin-left: -15px; - margin-right: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666666666666%; -} -.col-xs-10 { - width: 83.33333333333334%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666666666666%; -} -.col-xs-7 { - width: 58.333333333333336%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666666666667%; -} -.col-xs-4 { - width: 33.33333333333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.666666666666664%; -} -.col-xs-1 { - width: 8.333333333333332%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666666666666%; -} -.col-xs-pull-10 { - right: 83.33333333333334%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666666666666%; -} -.col-xs-pull-7 { - right: 58.333333333333336%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666666666667%; -} -.col-xs-pull-4 { - right: 33.33333333333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.666666666666664%; -} -.col-xs-pull-1 { - right: 8.333333333333332%; -} -.col-xs-pull-0 { - right: 0%; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666666666666%; -} -.col-xs-push-10 { - left: 83.33333333333334%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666666666666%; -} -.col-xs-push-7 { - left: 58.333333333333336%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666666666667%; -} -.col-xs-push-4 { - left: 33.33333333333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.666666666666664%; -} -.col-xs-push-1 { - left: 8.333333333333332%; -} -.col-xs-push-0 { - left: 0%; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666666666666%; -} -.col-xs-offset-10 { - margin-left: 83.33333333333334%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666666666666%; -} -.col-xs-offset-7 { - margin-left: 58.333333333333336%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666666666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.666666666666664%; -} -.col-xs-offset-1 { - margin-left: 8.333333333333332%; -} -.col-xs-offset-0 { - margin-left: 0%; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666666666666%; - } - .col-sm-10 { - width: 83.33333333333334%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666666666666%; - } - .col-sm-7 { - width: 58.333333333333336%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666666666667%; - } - .col-sm-4 { - width: 33.33333333333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.666666666666664%; - } - .col-sm-1 { - width: 8.333333333333332%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666666666666%; - } - .col-sm-pull-10 { - right: 83.33333333333334%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666666666666%; - } - .col-sm-pull-7 { - right: 58.333333333333336%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666666666667%; - } - .col-sm-pull-4 { - right: 33.33333333333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.666666666666664%; - } - .col-sm-pull-1 { - right: 8.333333333333332%; - } - .col-sm-pull-0 { - right: 0%; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666666666666%; - } - .col-sm-push-10 { - left: 83.33333333333334%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666666666666%; - } - .col-sm-push-7 { - left: 58.333333333333336%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666666666667%; - } - .col-sm-push-4 { - left: 33.33333333333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.666666666666664%; - } - .col-sm-push-1 { - left: 8.333333333333332%; - } - .col-sm-push-0 { - left: 0%; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666666666666%; - } - .col-sm-offset-10 { - margin-left: 83.33333333333334%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666666666666%; - } - .col-sm-offset-7 { - margin-left: 58.333333333333336%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666666666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.666666666666664%; - } - .col-sm-offset-1 { - margin-left: 8.333333333333332%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666666666666%; - } - .col-md-10 { - width: 83.33333333333334%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666666666666%; - } - .col-md-7 { - width: 58.333333333333336%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666666666667%; - } - .col-md-4 { - width: 33.33333333333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.666666666666664%; - } - .col-md-1 { - width: 8.333333333333332%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666666666666%; - } - .col-md-pull-10 { - right: 83.33333333333334%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666666666666%; - } - .col-md-pull-7 { - right: 58.333333333333336%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666666666667%; - } - .col-md-pull-4 { - right: 33.33333333333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.666666666666664%; - } - .col-md-pull-1 { - right: 8.333333333333332%; - } - .col-md-pull-0 { - right: 0%; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666666666666%; - } - .col-md-push-10 { - left: 83.33333333333334%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666666666666%; - } - .col-md-push-7 { - left: 58.333333333333336%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666666666667%; - } - .col-md-push-4 { - left: 33.33333333333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.666666666666664%; - } - .col-md-push-1 { - left: 8.333333333333332%; - } - .col-md-push-0 { - left: 0%; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666666666666%; - } - .col-md-offset-10 { - margin-left: 83.33333333333334%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666666666666%; - } - .col-md-offset-7 { - margin-left: 58.333333333333336%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666666666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.666666666666664%; - } - .col-md-offset-1 { - margin-left: 8.333333333333332%; - } - .col-md-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666666666666%; - } - .col-lg-10 { - width: 83.33333333333334%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666666666666%; - } - .col-lg-7 { - width: 58.333333333333336%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666666666667%; - } - .col-lg-4 { - width: 33.33333333333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.666666666666664%; - } - .col-lg-1 { - width: 8.333333333333332%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666666666666%; - } - .col-lg-pull-10 { - right: 83.33333333333334%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666666666666%; - } - .col-lg-pull-7 { - right: 58.333333333333336%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666666666667%; - } - .col-lg-pull-4 { - right: 33.33333333333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.666666666666664%; - } - .col-lg-pull-1 { - right: 8.333333333333332%; - } - .col-lg-pull-0 { - right: 0%; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666666666666%; - } - .col-lg-push-10 { - left: 83.33333333333334%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666666666666%; - } - .col-lg-push-7 { - left: 58.333333333333336%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666666666667%; - } - .col-lg-push-4 { - left: 33.33333333333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.666666666666664%; - } - .col-lg-push-1 { - left: 8.333333333333332%; - } - .col-lg-push-0 { - left: 0%; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666666666666%; - } - .col-lg-offset-10 { - margin-left: 83.33333333333334%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666666666666%; - } - .col-lg-offset-7 { - margin-left: 58.333333333333336%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666666666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.666666666666664%; - } - .col-lg-offset-1 { - margin-left: 8.333333333333332%; - } - .col-lg-offset-0 { - margin-left: 0%; - } -} -table { - max-width: 100%; - background-color: transparent; -} -th { - text-align: left; -} -.table { - width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.428571429; - vertical-align: top; - border-top: 1px solid #586e75; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #586e75; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #586e75; -} -.table .table { - background-color: #002b36; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #586e75; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #586e75; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: #073642; -} -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { - background-color: #073642; -} -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #073642; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr.active:hover > th { - background-color: #05232b; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -@media (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - overflow-x: scroll; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #586e75; - -webkit-overflow-scrolling: touch; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #586e75; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.428571429; - color: #eee8d5; -} -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.428571429; - color: #eee8d5; - background-color: #073642; - background-image: none; - border: 1px solid #586e75; - border-radius: 4px; - -webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} -.form-control::-moz-placeholder { - color: #eee8d5; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #eee8d5; -} -.form-control::-webkit-input-placeholder { - color: #eee8d5; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #586e75; - opacity: 1; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -input[type="date"] { - line-height: 34px; -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - display: block; - min-height: 20px; - margin-top: 10px; - margin-bottom: 10px; - padding-left: 20px; -} -.radio label, -.checkbox label { - display: inline; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - float: left; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -.radio[disabled], -.radio-inline[disabled], -.checkbox[disabled], -.checkbox-inline[disabled], -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"], -fieldset[disabled] .radio, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.input-lg { - height: 45px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-lg { - height: 45px; - line-height: 45px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.has-feedback .form-control-feedback { - position: absolute; - top: 25px; - right: 0; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline { - color: #468847; -} -.has-success .form-control { - border-color: #468847; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #356635; - -webkit-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; -} -.has-success .input-group-addon { - color: #468847; - border-color: #468847; - background-color: #dff0d8; -} -.has-success .form-control-feedback { - color: #468847; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline { - color: #c09853; -} -.has-warning .form-control { - border-color: #c09853; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #a47e3c; - -webkit-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; -} -.has-warning .input-group-addon { - color: #c09853; - border-color: #c09853; - background-color: #fcf8e3; -} -.has-warning .form-control-feedback { - color: #c09853; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline { - color: #b94a48; -} -.has-error .form-control { - border-color: #b94a48; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #953b39; - -webkit-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; -} -.has-error .input-group-addon { - color: #b94a48; - border-color: #b94a48; - background-color: #f2dede; -} -.has-error .form-control-feedback { - color: #b94a48; -} -.form-control-static { - margin-bottom: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #c8d0d0; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - padding-left: 0; - vertical-align: middle; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .control-label, -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 7px; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} -.form-horizontal .form-control-static { - padding-top: 7px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - top: 0; - right: 15px; -} -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 12px; - font-size: 14px; - line-height: 1.428571429; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; -} -.btn:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus { - color: #93a1a1; - text-decoration: none; -} -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-default { - color: #93a1a1; - background-color: #073642; - border-color: #586e75; -} -.btn-default:hover, -.btn-default:focus, -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - color: #93a1a1; - background-color: #03181d; - border-color: #3e4d52; -} -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #073642; - border-color: #586e75; -} -.btn-default .badge { - color: #073642; - background-color: #93a1a1; -} -.btn-primary { - color: #ffffff; - background-color: #428bca; - border-color: #357ebd; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #3276b1; - border-color: #285e8e; -} -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #428bca; - border-color: #357ebd; -} -.btn-primary .badge { - color: #428bca; - background-color: #ffffff; -} -.btn-success { - color: #ffffff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #47a447; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #ffffff; -} -.btn-info { - color: #ffffff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #39b3d7; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #ffffff; -} -.btn-warning { - color: #ffffff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #ed9c28; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #ffffff; -} -.btn-danger { - color: #ffffff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #d2322d; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #ffffff; -} -.btn-link { - color: #428bca; - font-weight: normal; - cursor: pointer; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #2a6496; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #eee8d5; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - transition: height 0.35s ease; -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('../app/fonts/glyphicons-halflings-regular.eot'); - src: url('../app/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../app/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../app/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../app/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.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; - font-size: 14px; - background-color: #073642; - border: 1px solid #cccccc; - border: 1px solid #586e75; - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #586e75; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.428571429; - color: #586e75; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - color: #ffffff; - background-color: #428bca; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #428bca; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #eee8d5; -} -.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: not-allowed; -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - left: auto; - right: 0; -} -.dropdown-menu-left { - left: 0; - right: auto; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.428571429; - color: #eee8d5; -} -.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; - content: ""; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus { - outline: none; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn-group:last-child > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-bottom-left-radius: 4px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} -.input-group .form-control { - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 45px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 45px; - line-height: 45px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #eee8d5; - text-align: center; - background-color: #586e75; - border: 1px solid #586e75; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; -} -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #fdf6e3; -} -.nav > li.disabled > a { - color: #eee8d5; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #eee8d5; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #fdf6e3; - border-color: #428bca; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #586e75; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.428571429; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #657b83 #657b83 #586e75; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #93a1a1; - background-color: #002b36; - border: 1px solid #586e75; - border-bottom-color: transparent; - cursor: default; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #586e75; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #586e75; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #002b36; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #428bca; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #586e75; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #586e75; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #002b36; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - max-height: 340px; - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; - height: 50px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: none; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } - .navbar-nav.navbar-right:last-child { - margin-right: -15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - } -} -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 8px; - margin-bottom: 8px; -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - padding-left: 0; - vertical-align: middle; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-form.navbar-right:last-child { - margin-right: -15px; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; - } - .navbar-text.navbar-right:last-child { - margin-right: 0; - } -} -.navbar-default { - background-color: #073642; - border-color: #586e75; -} -.navbar-default .navbar-brand { - color: #eee8d5; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #2aa198; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #93a1a1; -} -.navbar-default .navbar-nav > li > a { - color: #93a1a1; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #2aa198; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #586e75; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #586e75; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - background-color: #e7e7e7; - color: #555555; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777777; -} -.navbar-default .navbar-link:hover { - color: #333333; -} -.navbar-inverse { - background-color: #222222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #eee8d5; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #eee8d5; -} -.navbar-inverse .navbar-nav > li > a { - color: #eee8d5; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: #080808; - color: #ffffff; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #eee8d5; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #eee8d5; -} -.navbar-inverse .navbar-link:hover { - color: #ffffff; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #073642; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - content: "\00a0"; - padding: 0 5px; - color: #cccccc; -} -.breadcrumb > .active { - color: #eee8d5; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - line-height: 1.428571429; - text-decoration: none; - color: #428bca; - background-color: #073642; - border: 1px solid #586e75; - margin-left: -1px; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #2a6496; - background-color: #fdf6e3; - border-color: #dddddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #ffffff; - background-color: #428bca; - border-color: #428bca; - cursor: default; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #eee8d5; - background-color: #586e75; - border-color: #586e75; - cursor: not-allowed; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 6px; - border-top-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - list-style: none; - text-align: center; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #073642; - border: 1px solid #586e75; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #fdf6e3; -} -.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: #eee8d5; - background-color: #073642; - cursor: not-allowed; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -.label[href]:hover, -.label[href]:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #586e75; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #dfd4b1; -} -.label-primary { - background-color: #428bca; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #3071a9; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: : #fff; - line-height: 1; - vertical-align: baseline; - white-space: nowrap; - text-align: center; - background-color: #586e75; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -a.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #428bca; - background-color: #ffffff; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #073642; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.container .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.428571429; - background-color: #002b36; - border: 1px solid #586e75; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #428bca; -} -.thumbnail .caption { - padding: 9px; - color: #839496; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable { - padding-right: 35px; -} -.alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #468847; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #356635; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #3a87ad; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #2d6987; -} -.alert-warning { - background-color: #fcf8e3; - border-color: #fbeed5; - color: #c09853; -} -.alert-warning hr { - border-top-color: #f8e5be; -} -.alert-warning .alert-link { - color: #a47e3c; -} -.alert-danger { - background-color: #f2dede; - border-color: #eed3d7; - color: #b94a48; -} -.alert-danger hr { - border-top-color: #e6c1c7; -} -.alert-danger .alert-link { - color: #953b39; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 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: #073642; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #ffffff; - text-align: center; - background-color: #428bca; - -webkit-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-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar { - 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: 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-size: 40px 40px; -} -.progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - 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: 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-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - 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: 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-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - 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: 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-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - 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: 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); -} -.media, -.media-body { - overflow: hidden; - 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 { - padding-left: 0; - list-style: none; -} -.list-group { - margin-bottom: 20px; - padding-left: 0; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #073642; - border: 1px solid #586e75; -} -.list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -a.list-group-item { - color: #555555; -} -a.list-group-item .list-group-item-heading { - color: #586e75; -} -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - background-color: #f5f5f5; -} -a.list-group-item.active, -a.list-group-item.active:hover, -a.list-group-item.active:focus { - z-index: 2; - color: #586e75; - background-color: #428bca; - border-color: #428bca; -} -a.list-group-item.active .list-group-item-heading, -a.list-group-item.active:hover .list-group-item-heading, -a.list-group-item.active:focus .list-group-item-heading { - color: inherit; -} -a.list-group-item.active .list-group-item-text, -a.list-group-item.active:hover .list-group-item-text, -a.list-group-item.active:focus .list-group-item-text { - color: #e1edf7; -} -.list-group-item-success { - color: #468847; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #468847; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #468847; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #468847; - border-color: #468847; -} -.list-group-item-info { - color: #3a87ad; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #3a87ad; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #3a87ad; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #3a87ad; - border-color: #3a87ad; -} -.list-group-item-warning { - color: #c09853; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #c09853; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #c09853; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #c09853; - border-color: #c09853; -} -.list-group-item-danger { - color: #b94a48; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #b94a48; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #b94a48; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #b94a48; - border-color: #b94a48; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #002b36; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #073642; - border-top: 1px solid #586e75; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group .list-group-item:first-child { - border-top: 0; -} -.panel > .list-group .list-group-item:last-child { - border-bottom: 0; -} -.panel > .list-group:first-child .list-group-item:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table { - margin-bottom: 0; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive { - border-top: 1px solid #586e75; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; - overflow: hidden; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 1px solid #586e75; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #586e75; -} -.panel-default { - border-color: #586e75; -} -.panel-default > .panel-heading { - color: #586e75; - background-color: #073642; - border-color: #586e75; -} -.panel-default > .panel-heading + .panel-collapse .panel-body { - border-top-color: #586e75; -} -.panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #586e75; -} -.panel-primary { - border-color: #428bca; -} -.panel-primary > .panel-heading { - color: #ffffff; - background-color: #428bca; - border-color: #428bca; -} -.panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: #428bca; -} -.panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #428bca; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #fbeed5; -} -.panel-warning > .panel-heading { - color: #c09853; - background-color: #fcf8e3; - border-color: #fbeed5; -} -.panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: #fbeed5; -} -.panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #fbeed5; -} -.panel-danger { - border-color: #eed3d7; -} -.panel-danger > .panel-heading { - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7; -} -.panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: #eed3d7; -} -.panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #eed3d7; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #073642; - border: 1px solid #586e75; - border-radius: 4px; - -webkit-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-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #93a1a1; - text-shadow: 0 0 0; - opacity: 0.5; - filter: alpha(opacity=50); -} -.close:hover, -.close:focus { - color: #d33682; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.modal-open { - overflow: hidden; -} -.modal { - display: none; - overflow: auto; - overflow-y: scroll; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #073642; - border: 1px solid #586e75; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; - outline: none; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} -.modal-header { - padding: 15px; - border-bottom: 1px solid #586e75; - min-height: 16.428571429px; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.428571429; -} -.modal-body { - position: relative; - padding: 20px; -} -.modal-footer { - margin-top: 15px; - padding: 19px 20px 20px; - text-align: right; - border-top: 1px solid #586e75; -} -.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; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1030; - display: block; - visibility: visible; - font-size: 12px; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} -.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: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - 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: #000000; -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - left: 5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - right: 5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - left: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - right: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - background-color: #073642; - background-clip: padding-box; - border: 1px solid #cccccc; - border: 1px solid #586e75; - border-radius: 6px; - -webkit-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: #062b34; - border-bottom: 1px solid #03181d; - border-radius: 5px 5px 0 0; -} -.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: #586e75; - bottom: -11px; -} -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #073642; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #586e75; -} -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #073642; -} -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #586e75; - top: -11px; -} -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #073642; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #586e75; -} -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #073642; - bottom: -10px; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} -.carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - 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: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} -.carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} -.carousel-control:hover, -.carousel-control:focus { - outline: none; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); -} -.carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; -} -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicons-chevron-left, - .carousel-control .glyphicons-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - margin-left: -15px; - font-size: 30px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} -.clearfix:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; - visibility: hidden !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} - -html, body { - height: 100%; -} - -#side-menu { - margin-top: 1em; -} - -/*Chat*/ - -.wordwrap { - white-space: pre-wrap; /* CSS3 */ - white-space: -moz-pre-wrap; /* Firefox */ - white-space: -pre-wrap; /* Opera <7 */ - white-space: -o-pre-wrap; /* Opera 7 */ - word-wrap: break-word; /* IE */ -} - -#chatroom { - margin-top: 1em; -} - -#chatmessage-container { -} - -#chatmessages { - height: 480px; - overflow-y: scroll; - padding-right: 20px; -} - -.signin { - margin: 0px 10px; -} - -.admin-panel { - margin: 10px 10px; -} - -.imgur-container { - text-align: center; - margin: 5px 0; -} - -.imgur-chat { - max-height: 280px; - max-width: 80%; -} - -/*Splash Page*/ - -.join-hero { - padding: 80px 0px; -} - -.jumbo-auth { - margin-top: 30px; -} - -.jumbo-img { - max-height: 150px; -} - -.spinner { - max-height: 30px !important; -} - -/*Gather Styles*/ - -.vote-button { - min-width: 60px; -} - -.team-label { - min-width: 70px; - display: inline-block; -} - -.label-padding { - padding: 5px 0; -} - -.lifeform-icon { - width: 20px; - margin: 0 3px; -} - -.gather-voting { - font-size: 90%; -} - -.progress-bar { - min-width: 6em; -} - -#gatherers-panel > .panel { - margin-bottom: 1px; -} - -.gather-actions { - margin-top: 0.5em; -} - -#gathers { - margin-top: 1em; -} - -.gatherer { - margin-bottom: 5px; - padding: 0px; -} - -.gatherer-panel { - box-shadow: none; -} - -.panel-alien { - border-color: #186845; -} -.panel-alien>.panel-heading { - color: #B7DCCC; - background-color: #569F80; - border-color: #186845; -} -.panel-alien>.panel-heading+.panel-collapse .panel-body { - border-top-color: #186845; -} -.panel-alien>.panel-footer+.panel-collapse .panel-body { - border-bottom-color: #186845; -} -.label-alien { - color: #B7DCCC; - background-color: #186845; -} - -.panel-marine { - border-color: #1B4362; -} -.panel-marine>.panel-heading { - color: #B6C9D7; - background-color: #557995; - border-color: #1B4362; -} -.panel-marine>.panel-heading+.panel-collapse .panel-body { - border-top-color: #1B4362; -} -.panel-marine>.panel-footer+.panel-collapse .panel-body { - border-bottom-color: #1B4362; -} -.label-marine { - color: #B7C6D8; - background-color: #1B4362; -} - -/*Utility Styles*/ - -.add-left { - margin-left: 0.5em; -} - -.add-right { - margin-right: 0.5em; -} - -.max-width { - width: 100%; -} - -.add-top { - margin-top: 0.5em; -} - -.add-bottom { - margin-bottom: 0.5em; -} - -.no-bottom { - margin-bottom: 0px !important; - padding-bottom: 0px !important; -} - -.headline { - padding-bottom: 0.5em; - border-bottom: 1px solid #CFCFCF; - margin-bottom: 20px; -} - -.pointer { - cursor: pointer; -} - -.panel-light-background { - background-color: #d9edf7; -} - -/* Sound */ - -.volume-slide { - padding: 0 15px; -} - -.music-select { - padding: 0 15px; -} - -/* Events */ - -.events-panel { - max-height: 150px; - background-color: #002b36; - border: 1px solid transparent; - color: #839496; - border-color: #428bca; - border-radius: 4px; -} - -/* Fix for solarize theme */ - -.badge { - color: #fff; -} - -.gather-voting { - color: #fff !important; -} - -.flag { - width: 16px; - height: 11px; - background:url(/images/flags.png) no-repeat -} - -.flag.flag-ad {background-position: -16px 0} -.flag.flag-ae {background-position: -32px 0} -.flag.flag-af {background-position: -48px 0} -.flag.flag-ag {background-position: -64px 0} -.flag.flag-ai {background-position: -80px 0} -.flag.flag-al {background-position: -96px 0} -.flag.flag-am {background-position: -112px 0} -.flag.flag-an {background-position: -128px 0} -.flag.flag-ao {background-position: -144px 0} -.flag.flag-ar {background-position: -160px 0} -.flag.flag-as {background-position: -176px 0} -.flag.flag-at {background-position: -192px 0} -.flag.flag-au {background-position: -208px 0} -.flag.flag-aw {background-position: -224px 0} -.flag.flag-az {background-position: -240px 0} -.flag.flag-ba {background-position: 0 -11px} -.flag.flag-bb {background-position: -16px -11px} -.flag.flag-bd {background-position: -32px -11px} -.flag.flag-be {background-position: -48px -11px} -.flag.flag-bf {background-position: -64px -11px} -.flag.flag-bg {background-position: -80px -11px} -.flag.flag-bh {background-position: -96px -11px} -.flag.flag-bi {background-position: -112px -11px} -.flag.flag-bj {background-position: -128px -11px} -.flag.flag-bm {background-position: -144px -11px} -.flag.flag-bn {background-position: -160px -11px} -.flag.flag-bo {background-position: -176px -11px} -.flag.flag-br {background-position: -192px -11px} -.flag.flag-bs {background-position: -208px -11px} -.flag.flag-bt {background-position: -224px -11px} -.flag.flag-bv {background-position: -240px -11px} -.flag.flag-bw {background-position: 0 -22px} -.flag.flag-by {background-position: -16px -22px} -.flag.flag-bz {background-position: -32px -22px} -.flag.flag-ca {background-position: -48px -22px} -.flag.flag-catalonia {background-position: -64px -22px} -.flag.flag-cd {background-position: -80px -22px} -.flag.flag-cf {background-position: -96px -22px} -.flag.flag-cg {background-position: -112px -22px} -.flag.flag-ch {background-position: -128px -22px} -.flag.flag-ci {background-position: -144px -22px} -.flag.flag-ck {background-position: -160px -22px} -.flag.flag-cl {background-position: -176px -22px} -.flag.flag-cm {background-position: -192px -22px} -.flag.flag-cn {background-position: -208px -22px} -.flag.flag-co {background-position: -224px -22px} -.flag.flag-cr {background-position: -240px -22px} -.flag.flag-cu {background-position: 0 -33px} -.flag.flag-cv {background-position: -16px -33px} -.flag.flag-cw {background-position: -32px -33px} -.flag.flag-cy {background-position: -48px -33px} -.flag.flag-cz {background-position: -64px -33px} -.flag.flag-de {background-position: -80px -33px} -.flag.flag-dj {background-position: -96px -33px} -.flag.flag-dk {background-position: -112px -33px} -.flag.flag-dm {background-position: -128px -33px} -.flag.flag-do {background-position: -144px -33px} -.flag.flag-dz {background-position: -160px -33px} -.flag.flag-ec {background-position: -176px -33px} -.flag.flag-ee {background-position: -192px -33px} -.flag.flag-eg {background-position: -208px -33px} -.flag.flag-eh {background-position: -224px -33px} -.flag.flag-england {background-position: -240px -33px} -.flag.flag-er {background-position: 0 -44px} -.flag.flag-es {background-position: -16px -44px} -.flag.flag-et {background-position: -32px -44px} -.flag.flag-eu {background-position: -48px -44px} -.flag.flag-fi {background-position: -64px -44px} -.flag.flag-fj {background-position: -80px -44px} -.flag.flag-fk {background-position: -96px -44px} -.flag.flag-fm {background-position: -112px -44px} -.flag.flag-fo {background-position: -128px -44px} -.flag.flag-fr {background-position: -144px -44px} -.flag.flag-ga {background-position: -160px -44px} -.flag.flag-gb {background-position: -176px -44px} -.flag.flag-gd {background-position: -192px -44px} -.flag.flag-ge {background-position: -208px -44px} -.flag.flag-gf {background-position: -224px -44px} -.flag.flag-gg {background-position: -240px -44px} -.flag.flag-gh {background-position: 0 -55px} -.flag.flag-gi {background-position: -16px -55px} -.flag.flag-gl {background-position: -32px -55px} -.flag.flag-gm {background-position: -48px -55px} -.flag.flag-gn {background-position: -64px -55px} -.flag.flag-gp {background-position: -80px -55px} -.flag.flag-gq {background-position: -96px -55px} -.flag.flag-gr {background-position: -112px -55px} -.flag.flag-gs {background-position: -128px -55px} -.flag.flag-gt {background-position: -144px -55px} -.flag.flag-gu {background-position: -160px -55px} -.flag.flag-gw {background-position: -176px -55px} -.flag.flag-gy {background-position: -192px -55px} -.flag.flag-hk {background-position: -208px -55px} -.flag.flag-hm {background-position: -224px -55px} -.flag.flag-hn {background-position: -240px -55px} -.flag.flag-hr {background-position: 0 -66px} -.flag.flag-ht {background-position: -16px -66px} -.flag.flag-hu {background-position: -32px -66px} -.flag.flag-ic {background-position: -48px -66px} -.flag.flag-id {background-position: -64px -66px} -.flag.flag-ie {background-position: -80px -66px} -.flag.flag-il {background-position: -96px -66px} -.flag.flag-im {background-position: -112px -66px} -.flag.flag-in {background-position: -128px -66px} -.flag.flag-io {background-position: -144px -66px} -.flag.flag-iq {background-position: -160px -66px} -.flag.flag-ir {background-position: -176px -66px} -.flag.flag-is {background-position: -192px -66px} -.flag.flag-it {background-position: -208px -66px} -.flag.flag-je {background-position: -224px -66px} -.flag.flag-jm {background-position: -240px -66px} -.flag.flag-jo {background-position: 0 -77px} -.flag.flag-jp {background-position: -16px -77px} -.flag.flag-ke {background-position: -32px -77px} -.flag.flag-kg {background-position: -48px -77px} -.flag.flag-kh {background-position: -64px -77px} -.flag.flag-ki {background-position: -80px -77px} -.flag.flag-km {background-position: -96px -77px} -.flag.flag-kn {background-position: -112px -77px} -.flag.flag-kp {background-position: -128px -77px} -.flag.flag-kr {background-position: -144px -77px} -.flag.flag-kurdistan {background-position: -160px -77px} -.flag.flag-kw {background-position: -176px -77px} -.flag.flag-ky {background-position: -192px -77px} -.flag.flag-kz {background-position: -208px -77px} -.flag.flag-la {background-position: -224px -77px} -.flag.flag-lb {background-position: -240px -77px} -.flag.flag-lc {background-position: 0 -88px} -.flag.flag-li {background-position: -16px -88px} -.flag.flag-lk {background-position: -32px -88px} -.flag.flag-lr {background-position: -48px -88px} -.flag.flag-ls {background-position: -64px -88px} -.flag.flag-lt {background-position: -80px -88px} -.flag.flag-lu {background-position: -96px -88px} -.flag.flag-lv {background-position: -112px -88px} -.flag.flag-ly {background-position: -128px -88px} -.flag.flag-ma {background-position: -144px -88px} -.flag.flag-mc {background-position: -160px -88px} -.flag.flag-md {background-position: -176px -88px} -.flag.flag-me {background-position: -192px -88px} -.flag.flag-mg {background-position: -208px -88px} -.flag.flag-mh {background-position: -224px -88px} -.flag.flag-mk {background-position: -240px -88px} -.flag.flag-ml {background-position: 0 -99px} -.flag.flag-mm {background-position: -16px -99px} -.flag.flag-mn {background-position: -32px -99px} -.flag.flag-mo {background-position: -48px -99px} -.flag.flag-mp {background-position: -64px -99px} -.flag.flag-mq {background-position: -80px -99px} -.flag.flag-mr {background-position: -96px -99px} -.flag.flag-ms {background-position: -112px -99px} -.flag.flag-mt {background-position: -128px -99px} -.flag.flag-mu {background-position: -144px -99px} -.flag.flag-mv {background-position: -160px -99px} -.flag.flag-mw {background-position: -176px -99px} -.flag.flag-mx {background-position: -192px -99px} -.flag.flag-my {background-position: -208px -99px} -.flag.flag-mz {background-position: -224px -99px} -.flag.flag-na {background-position: -240px -99px} -.flag.flag-nc {background-position: 0 -110px} -.flag.flag-ne {background-position: -16px -110px} -.flag.flag-nf {background-position: -32px -110px} -.flag.flag-ng {background-position: -48px -110px} -.flag.flag-ni {background-position: -64px -110px} -.flag.flag-nl {background-position: -80px -110px} -.flag.flag-no {background-position: -96px -110px} -.flag.flag-np {background-position: -112px -110px} -.flag.flag-nr {background-position: -128px -110px} -.flag.flag-nu {background-position: -144px -110px} -.flag.flag-nz {background-position: -160px -110px} -.flag.flag-om {background-position: -176px -110px} -.flag.flag-pa {background-position: -192px -110px} -.flag.flag-pe {background-position: -208px -110px} -.flag.flag-pf {background-position: -224px -110px} -.flag.flag-pg {background-position: -240px -110px} -.flag.flag-ph {background-position: 0 -121px} -.flag.flag-pk {background-position: -16px -121px} -.flag.flag-pl {background-position: -32px -121px} -.flag.flag-pm {background-position: -48px -121px} -.flag.flag-pn {background-position: -64px -121px} -.flag.flag-pr {background-position: -80px -121px} -.flag.flag-ps {background-position: -96px -121px} -.flag.flag-pt {background-position: -112px -121px} -.flag.flag-pw {background-position: -128px -121px} -.flag.flag-py {background-position: -144px -121px} -.flag.flag-qa {background-position: -160px -121px} -.flag.flag-re {background-position: -176px -121px} -.flag.flag-ro {background-position: -192px -121px} -.flag.flag-rs {background-position: -208px -121px} -.flag.flag-ru {background-position: -224px -121px} -.flag.flag-rw {background-position: -240px -121px} -.flag.flag-sa {background-position: 0 -132px} -.flag.flag-sb {background-position: -16px -132px} -.flag.flag-sc {background-position: -32px -132px} -.flag.flag-scotland {background-position: -48px -132px} -.flag.flag-sd {background-position: -64px -132px} -.flag.flag-se {background-position: -80px -132px} -.flag.flag-sg {background-position: -96px -132px} -.flag.flag-sh {background-position: -112px -132px} -.flag.flag-si {background-position: -128px -132px} -.flag.flag-sk {background-position: -144px -132px} -.flag.flag-sl {background-position: -160px -132px} -.flag.flag-sm {background-position: -176px -132px} -.flag.flag-sn {background-position: -192px -132px} -.flag.flag-so {background-position: -208px -132px} -.flag.flag-somaliland {background-position: -224px -132px} -.flag.flag-sr {background-position: -240px -132px} -.flag.flag-ss {background-position: 0 -143px} -.flag.flag-st {background-position: -16px -143px} -.flag.flag-sv {background-position: -32px -143px} -.flag.flag-sx {background-position: -48px -143px} -.flag.flag-sy {background-position: -64px -143px} -.flag.flag-sz {background-position: -80px -143px} -.flag.flag-tc {background-position: -96px -143px} -.flag.flag-td {background-position: -112px -143px} -.flag.flag-tf {background-position: -128px -143px} -.flag.flag-tg {background-position: -144px -143px} -.flag.flag-th {background-position: -160px -143px} -.flag.flag-tibet {background-position: -176px -143px} -.flag.flag-tj {background-position: -192px -143px} -.flag.flag-tk {background-position: -208px -143px} -.flag.flag-tl {background-position: -224px -143px} -.flag.flag-tm {background-position: -240px -143px} -.flag.flag-tn {background-position: 0 -154px} -.flag.flag-to {background-position: -16px -154px} -.flag.flag-tr {background-position: -32px -154px} -.flag.flag-tt {background-position: -48px -154px} -.flag.flag-tv {background-position: -64px -154px} -.flag.flag-tw {background-position: -80px -154px} -.flag.flag-tz {background-position: -96px -154px} -.flag.flag-ua {background-position: -112px -154px} -.flag.flag-ug {background-position: -128px -154px} -.flag.flag-um {background-position: -144px -154px} -.flag.flag-us {background-position: -160px -154px} -.flag.flag-uy {background-position: -176px -154px} -.flag.flag-uz {background-position: -192px -154px} -.flag.flag-va {background-position: -208px -154px} -.flag.flag-vc {background-position: -224px -154px} -.flag.flag-ve {background-position: -240px -154px} -.flag.flag-vg {background-position: 0 -165px} -.flag.flag-vi {background-position: -16px -165px} -.flag.flag-vn {background-position: -32px -165px} -.flag.flag-vu {background-position: -48px -165px} -.flag.flag-wales {background-position: -64px -165px} -.flag.flag-wf {background-position: -80px -165px} -.flag.flag-ws {background-position: -96px -165px} -.flag.flag-xk {background-position: -112px -165px} -.flag.flag-ye {background-position: -128px -165px} -.flag.flag-yt {background-position: -144px -165px} -.flag.flag-za {background-position: -160px -165px} -.flag.flag-zanzibar {background-position: -176px -165px} -.flag.flag-zm {background-position: -192px -165px} -.flag.flag-zw {background-position: -208px -165px} - -/*! - * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"} -/* perfect-scrollbar v0.6.5 */ -.ps-container{-ms-touch-action:none;overflow:hidden !important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:0.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:0.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0;height:8px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0;width:8px}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:0.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:0.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:0.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:0.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:0.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999} -/* - * Skin: Blue - * ---------- - */ -.skin-blue .main-header .navbar { - background-color: #3c8dbc; -} -.skin-blue .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-blue .main-header .navbar .nav > li > a:hover, -.skin-blue .main-header .navbar .nav > li > a:active, -.skin-blue .main-header .navbar .nav > li > a:focus, -.skin-blue .main-header .navbar .nav .open > a, -.skin-blue .main-header .navbar .nav .open > a:hover, -.skin-blue .main-header .navbar .nav .open > a:focus, -.skin-blue .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - background-color: #367fa9; -} -@media (max-width: 767px) { - .skin-blue .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-blue .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-blue .main-header .navbar .dropdown-menu li a:hover { - background: #367fa9; - } -} -.skin-blue .main-header .logo { - background-color: #367fa9; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-blue .main-header .logo:hover { - background-color: #357ca5; -} -.skin-blue .main-header li.user-header { - background-color: #3c8dbc; -} -.skin-blue .content-header { - background: transparent; -} -.skin-blue .wrapper, -.skin-blue .main-sidebar, -.skin-blue .left-side { - background-color: #222d32; -} -.skin-blue .user-panel > .info, -.skin-blue .user-panel > .info > a { - color: #fff; -} -.skin-blue .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-blue .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-blue .sidebar-menu > li:hover > a, -.skin-blue .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #3c8dbc; -} -.skin-blue .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-blue .sidebar a { - color: #b8c7ce; -} -.skin-blue .sidebar a:hover { - text-decoration: none; -} -.skin-blue .treeview-menu > li > a { - color: #8aa4af; -} -.skin-blue .treeview-menu > li.active > a, -.skin-blue .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-blue .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-blue .sidebar-form input[type="text"], -.skin-blue .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-blue .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-blue .sidebar-form input[type="text"]:focus, -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-blue .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -.skin-blue.layout-top-nav .main-header > .logo { - background-color: #3c8dbc; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-blue.layout-top-nav .main-header > .logo:hover { - background-color: #3b8ab8; -} - -.slider{display:inline-block;vertical-align:middle;position:relative}.slider.slider-horizontal{width:210px;height:20px}.slider.slider-horizontal .slider-track{height:10px;width:100%;margin-top:-5px;top:50%;left:0}.slider.slider-horizontal .slider-selection,.slider.slider-horizontal .slider-track-low,.slider.slider-horizontal .slider-track-high{height:100%;top:0;bottom:0}.slider.slider-horizontal .slider-tick,.slider.slider-horizontal .slider-handle{margin-left:-10px;margin-top:-5px}.slider.slider-horizontal .slider-tick.triangle,.slider.slider-horizontal .slider-handle.triangle{border-width:0 10px 10px 10px;width:0;height:0;border-bottom-color:#0480be;margin-top:0}.slider.slider-horizontal .slider-tick-label-container{white-space:nowrap;margin-top:20px}.slider.slider-horizontal .slider-tick-label-container .slider-tick-label{padding-top:4px;display:inline-block;text-align:center}.slider.slider-vertical{height:210px;width:20px}.slider.slider-vertical .slider-track{width:10px;height:100%;margin-left:-5px;left:50%;top:0}.slider.slider-vertical .slider-selection{width:100%;left:0;top:0;bottom:0}.slider.slider-vertical .slider-track-low,.slider.slider-vertical .slider-track-high{width:100%;left:0;right:0}.slider.slider-vertical .slider-tick,.slider.slider-vertical .slider-handle{margin-left:-5px;margin-top:-10px}.slider.slider-vertical .slider-tick.triangle,.slider.slider-vertical .slider-handle.triangle{border-width:10px 0 10px 10px;width:1px;height:1px;border-left-color:#0480be;margin-left:0}.slider.slider-disabled .slider-handle{background-image:-webkit-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:-o-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:linear-gradient(to bottom,#dfdfdf 0,#bebebe 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf',endColorstr='#ffbebebe',GradientType=0)}.slider.slider-disabled .slider-track{background-image:-webkit-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:-o-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:linear-gradient(to bottom,#e5e5e5 0,#e9e9e9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5',endColorstr='#ffe9e9e9',GradientType=0);cursor:not-allowed}.slider input{display:none}.slider .tooltip.top{margin-top:-36px}.slider .tooltip-inner{white-space:nowrap}.slider .hide{display:none}.slider-track{position:absolute;cursor:pointer;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#f9f9f9 100%);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);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);border-radius:4px}.slider-selection{position:absolute;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);-webkit-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;border-radius:4px}.slider-selection.tick-slider-selection{background-image:-webkit-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:-o-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:linear-gradient(to bottom,#89cdef 0,#81bfde 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef',endColorstr='#ff81bfde',GradientType=0)}.slider-track-low,.slider-track-high{position:absolute;background:transparent;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px}.slider-handle{position:absolute;width:20px;height:20px;background-color:#337ab7;background-image:-webkit-linear-gradient(top,#149bdf 0,#0480be 100%);background-image:-o-linear-gradient(top,#149bdf 0,#0480be 100%);background-image:linear-gradient(to bottom,#149bdf 0,#0480be 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);filter:none;-webkit-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);border:0 solid transparent}.slider-handle.round{border-radius:50%}.slider-handle.triangle{background:transparent none}.slider-handle.custom{background:transparent none}.slider-handle.custom::before{line-height:20px;font-size:20px;content:'\2605';color:#726204}.slider-tick{position:absolute;width:20px;height:20px;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);-webkit-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;filter:none;opacity:.8;border:0 solid transparent}.slider-tick.round{border-radius:50%}.slider-tick.triangle{background:transparent none}.slider-tick.custom{background:transparent none}.slider-tick.custom::before{line-height:20px;font-size:20px;content:'\2605';color:#726204}.slider-tick.in-selection{background-image:-webkit-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:-o-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:linear-gradient(to bottom,#89cdef 0,#81bfde 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef',endColorstr='#ff81bfde',GradientType=0);opacity:1} -@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic); -/*! - * AdminLTE v2.3.2 - * Author: Almsaeed Studio - * Website: Almsaeed Studio - * License: Open source - MIT - * Please visit http://opensource.org/licenses/MIT for more information -!*/ -/* - * Core: General Layout Style - * ------------------------- - */ -html, -body { - min-height: 100%; -} -.layout-boxed html, -.layout-boxed body { - height: 100%; -} -body { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-weight: 400; - overflow-x: hidden; - overflow-y: auto; -} -/* Layout */ -.wrapper { - min-height: 100%; - position: relative; - overflow: hidden; -} -.wrapper:before, -.wrapper:after { - content: " "; - display: table; -} -.wrapper:after { - clear: both; -} -.layout-boxed .wrapper { - max-width: 1250px; - margin: 0 auto; - min-height: 100%; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.5); - position: relative; -} -.layout-boxed { - background: url('../img/boxed-bg.jpg') repeat fixed; -} -/* - * Content Wrapper - contains the main content - * ```.right-side has been deprecated as of v2.0.0 in favor of .content-wrapper ``` - */ -.content-wrapper, -.right-side, -.main-footer { - -webkit-transition: -webkit-transform 0.3s ease-in-out, margin 0.3s ease-in-out; - -moz-transition: -moz-transform 0.3s ease-in-out, margin 0.3s ease-in-out; - -o-transition: -o-transform 0.3s ease-in-out, margin 0.3s ease-in-out; - transition: transform 0.3s ease-in-out, margin 0.3s ease-in-out; - margin-left: 230px; - z-index: 820; -} -.layout-top-nav .content-wrapper, -.layout-top-nav .right-side, -.layout-top-nav .main-footer { - margin-left: 0; -} -@media (max-width: 767px) { - .content-wrapper, - .right-side, - .main-footer { - margin-left: 0; - } -} -@media (min-width: 768px) { - .sidebar-collapse .content-wrapper, - .sidebar-collapse .right-side, - .sidebar-collapse .main-footer { - margin-left: 0; - } -} -@media (max-width: 767px) { - .sidebar-open .content-wrapper, - .sidebar-open .right-side, - .sidebar-open .main-footer { - -webkit-transform: translate(230px, 0); - -ms-transform: translate(230px, 0); - -o-transform: translate(230px, 0); - transform: translate(230px, 0); - } -} -.content-wrapper, -.right-side { - min-height: 100%; - z-index: 800; -} -.main-footer { - background: #fff; - padding: 15px; - color: #444; - border-top: 1px solid #d2d6de; -} -/* Fixed layout */ -.fixed .main-header, -.fixed .main-sidebar, -.fixed .left-side { - position: fixed; -} -.fixed .main-header { - top: 0; - right: 0; - left: 0; -} -.fixed .content-wrapper, -.fixed .right-side { - padding-top: 50px; -} -@media (max-width: 767px) { - .fixed .content-wrapper, - .fixed .right-side { - padding-top: 100px; - } -} -.fixed.layout-boxed .wrapper { - max-width: 100%; -} -body.hold-transition .content-wrapper, -body.hold-transition .right-side, -body.hold-transition .main-footer, -body.hold-transition .main-sidebar, -body.hold-transition .left-side, -body.hold-transition .main-header > .navbar, -body.hold-transition .main-header .logo { - /* Fix for IE */ - -webkit-transition: none; - -o-transition: none; - transition: none; -} -/* Content */ -.content { - min-height: 250px; - padding: 15px; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -/* H1 - H6 font */ -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Source Sans Pro', sans-serif; -} -/* General Links */ -a { - color: #3c8dbc; -} -a:hover, -a:active, -a:focus { - outline: none; - text-decoration: none; - color: #72afd2; -} -/* Page Header */ -.page-header { - margin: 10px 0 20px 0; - font-size: 22px; -} -.page-header > small { - color: #666; - display: block; - margin-top: 5px; -} -/* - * Component: Main Header - * ---------------------- - */ -.main-header { - position: relative; - max-height: 100px; - z-index: 1030; -} -.main-header > .navbar { - -webkit-transition: margin-left 0.3s ease-in-out; - -o-transition: margin-left 0.3s ease-in-out; - transition: margin-left 0.3s ease-in-out; - margin-bottom: 0; - margin-left: 230px; - border: none; - min-height: 50px; - border-radius: 0; -} -.layout-top-nav .main-header > .navbar { - margin-left: 0; -} -.main-header #navbar-search-input.form-control { - background: rgba(255, 255, 255, 0.2); - border-color: transparent; -} -.main-header #navbar-search-input.form-control:focus, -.main-header #navbar-search-input.form-control:active { - border-color: rgba(0, 0, 0, 0.1); - background: rgba(255, 255, 255, 0.9); -} -.main-header #navbar-search-input.form-control::-moz-placeholder { - color: #ccc; - opacity: 1; -} -.main-header #navbar-search-input.form-control:-ms-input-placeholder { - color: #ccc; -} -.main-header #navbar-search-input.form-control::-webkit-input-placeholder { - color: #ccc; -} -.main-header .navbar-custom-menu, -.main-header .navbar-right { - float: right; -} -@media (max-width: 991px) { - .main-header .navbar-custom-menu a, - .main-header .navbar-right a { - color: inherit; - background: transparent; - } -} -@media (max-width: 767px) { - .main-header .navbar-right { - float: none; - } - .navbar-collapse .main-header .navbar-right { - margin: 7.5px -15px; - } - .main-header .navbar-right > li { - color: inherit; - border: 0; - } -} -.main-header .sidebar-toggle { - float: left; - background-color: transparent; - background-image: none; - padding: 15px 15px; - font-family: fontAwesome; -} -.main-header .sidebar-toggle:before { - content: "\f0c9"; -} -.main-header .sidebar-toggle:hover { - color: #fff; -} -.main-header .sidebar-toggle:focus, -.main-header .sidebar-toggle:active { - background: transparent; -} -.main-header .sidebar-toggle .icon-bar { - display: none; -} -.main-header .navbar .nav > li.user > a > .fa, -.main-header .navbar .nav > li.user > a > .glyphicon, -.main-header .navbar .nav > li.user > a > .ion { - margin-right: 5px; -} -.main-header .navbar .nav > li > a > .label { - position: absolute; - top: 9px; - right: 7px; - text-align: center; - font-size: 9px; - padding: 2px 3px; - line-height: .9; -} -.main-header .logo { - -webkit-transition: width 0.3s ease-in-out; - -o-transition: width 0.3s ease-in-out; - transition: width 0.3s ease-in-out; - display: block; - float: left; - height: 50px; - font-size: 20px; - line-height: 50px; - text-align: center; - width: 230px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - padding: 0 15px; - font-weight: 300; - overflow: hidden; -} -.main-header .logo .logo-lg { - display: block; -} -.main-header .logo .logo-mini { - display: none; -} -.main-header .navbar-brand { - color: #fff; -} -.content-header { - position: relative; - padding: 15px 15px 0 15px; -} -.content-header > h1 { - margin: 0; - font-size: 24px; -} -.content-header > h1 > small { - font-size: 15px; - display: inline-block; - padding-left: 4px; - font-weight: 300; -} -.content-header > .breadcrumb { - float: right; - background: transparent; - margin-top: 0; - margin-bottom: 0; - font-size: 12px; - padding: 7px 5px; - position: absolute; - top: 15px; - right: 10px; - border-radius: 2px; -} -.content-header > .breadcrumb > li > a { - color: #444; - text-decoration: none; - display: inline-block; -} -.content-header > .breadcrumb > li > a > .fa, -.content-header > .breadcrumb > li > a > .glyphicon, -.content-header > .breadcrumb > li > a > .ion { - margin-right: 5px; -} -.content-header > .breadcrumb > li + li:before { - content: '>\00a0'; -} -@media (max-width: 991px) { - .content-header > .breadcrumb { - position: relative; - margin-top: 5px; - top: 0; - right: 0; - float: none; - background: #d2d6de; - padding-left: 10px; - } - .content-header > .breadcrumb li:before { - color: #97a0b3; - } -} -.navbar-toggle { - color: #fff; - border: 0; - margin: 0; - padding: 15px 15px; -} -@media (max-width: 991px) { - .navbar-custom-menu .navbar-nav > li { - float: left; - } - .navbar-custom-menu .navbar-nav { - margin: 0; - float: left; - } - .navbar-custom-menu .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - line-height: 20px; - } -} -@media (max-width: 767px) { - .main-header { - position: relative; - } - .main-header .logo, - .main-header .navbar { - width: 100%; - float: none; - } - .main-header .navbar { - margin: 0; - } - .main-header .navbar-custom-menu { - float: right; - } -} -@media (max-width: 991px) { - .navbar-collapse.pull-left { - float: none !important; - } - .navbar-collapse.pull-left + .navbar-custom-menu { - display: block; - position: absolute; - top: 0; - right: 40px; - } -} -/* - * Component: Sidebar - * ------------------ - */ -.main-sidebar, -.left-side { - position: absolute; - top: 0; - left: 0; - padding-top: 50px; - min-height: 100%; - width: 230px; - z-index: 810; - -webkit-transition: -webkit-transform 0.3s ease-in-out, width 0.3s ease-in-out; - -moz-transition: -moz-transform 0.3s ease-in-out, width 0.3s ease-in-out; - -o-transition: -o-transform 0.3s ease-in-out, width 0.3s ease-in-out; - transition: transform 0.3s ease-in-out, width 0.3s ease-in-out; -} -@media (max-width: 767px) { - .main-sidebar, - .left-side { - padding-top: 100px; - } -} -@media (max-width: 767px) { - .main-sidebar, - .left-side { - -webkit-transform: translate(-230px, 0); - -ms-transform: translate(-230px, 0); - -o-transform: translate(-230px, 0); - transform: translate(-230px, 0); - } -} -@media (min-width: 768px) { - .sidebar-collapse .main-sidebar, - .sidebar-collapse .left-side { - -webkit-transform: translate(-230px, 0); - -ms-transform: translate(-230px, 0); - -o-transform: translate(-230px, 0); - transform: translate(-230px, 0); - } -} -@media (max-width: 767px) { - .sidebar-open .main-sidebar, - .sidebar-open .left-side { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); - } -} -.sidebar { - padding-bottom: 10px; -} -.sidebar-form input:focus { - border-color: transparent; -} -.user-panel { - position: relative; - width: 100%; - padding: 10px; - overflow: hidden; -} -.user-panel:before, -.user-panel:after { - content: " "; - display: table; -} -.user-panel:after { - clear: both; -} -.user-panel > .image > img { - width: 100%; - max-width: 45px; - height: auto; -} -.user-panel > .info { - padding: 5px 5px 5px 15px; - line-height: 1; - position: absolute; - left: 55px; -} -.user-panel > .info > p { - font-weight: 600; - margin-bottom: 9px; -} -.user-panel > .info > a { - text-decoration: none; - padding-right: 5px; - margin-top: 3px; - font-size: 11px; -} -.user-panel > .info > a > .fa, -.user-panel > .info > a > .ion, -.user-panel > .info > a > .glyphicon { - margin-right: 3px; -} -.sidebar-menu { - list-style: none; - margin: 0; - padding: 0; -} -.sidebar-menu > li { - position: relative; - margin: 0; - padding: 0; -} -.sidebar-menu > li > a { - padding: 12px 5px 12px 15px; - display: block; -} -.sidebar-menu > li > a > .fa, -.sidebar-menu > li > a > .glyphicon, -.sidebar-menu > li > a > .ion { - width: 20px; -} -.sidebar-menu > li .label, -.sidebar-menu > li .badge { - margin-top: 3px; - margin-right: 5px; -} -.sidebar-menu li.header { - padding: 10px 25px 10px 15px; - font-size: 12px; -} -.sidebar-menu li > a > .fa-angle-left { - width: auto; - height: auto; - padding: 0; - margin-right: 10px; - margin-top: 3px; -} -.sidebar-menu li.active > a > .fa-angle-left { - -webkit-transform: rotate(-90deg); - -ms-transform: rotate(-90deg); - -o-transform: rotate(-90deg); - transform: rotate(-90deg); -} -.sidebar-menu li.active > .treeview-menu { - display: block; -} -.sidebar-menu .treeview-menu { - display: none; - list-style: none; - padding: 0; - margin: 0; - padding-left: 5px; -} -.sidebar-menu .treeview-menu .treeview-menu { - padding-left: 20px; -} -.sidebar-menu .treeview-menu > li { - margin: 0; -} -.sidebar-menu .treeview-menu > li > a { - padding: 5px 5px 5px 15px; - display: block; - font-size: 14px; -} -.sidebar-menu .treeview-menu > li > a > .fa, -.sidebar-menu .treeview-menu > li > a > .glyphicon, -.sidebar-menu .treeview-menu > li > a > .ion { - width: 20px; -} -.sidebar-menu .treeview-menu > li > a > .fa-angle-left, -.sidebar-menu .treeview-menu > li > a > .fa-angle-down { - width: auto; -} -/* - * Component: Sidebar Mini - */ -@media (min-width: 768px) { - .sidebar-mini.sidebar-collapse .content-wrapper, - .sidebar-mini.sidebar-collapse .right-side, - .sidebar-mini.sidebar-collapse .main-footer { - margin-left: 50px !important; - z-index: 840; - } - .sidebar-mini.sidebar-collapse .main-sidebar { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); - width: 50px !important; - z-index: 850; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li { - position: relative; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li > a { - margin-right: 0; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span { - border-top-right-radius: 4px; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li:not(.treeview) > a > span { - border-bottom-right-radius: 4px; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - padding-top: 5px; - padding-bottom: 5px; - border-bottom-right-radius: 4px; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right), - .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu { - display: block !important; - position: absolute; - width: 180px; - left: 50px; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span { - top: 0; - margin-left: -3px; - padding: 12px 5px 12px 20px; - background-color: inherit; - } - .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu { - top: 44px; - margin-left: 0; - } - .sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info, - .sidebar-mini.sidebar-collapse .sidebar-form, - .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span, - .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu, - .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .pull-right, - .sidebar-mini.sidebar-collapse .sidebar-menu li.header { - display: none !important; - -webkit-transform: translateZ(0); - } - .sidebar-mini.sidebar-collapse .main-header .logo { - width: 50px; - } - .sidebar-mini.sidebar-collapse .main-header .logo > .logo-mini { - display: block; - margin-left: -15px; - margin-right: -15px; - font-size: 18px; - } - .sidebar-mini.sidebar-collapse .main-header .logo > .logo-lg { - display: none; - } - .sidebar-mini.sidebar-collapse .main-header .navbar { - margin-left: 50px; - } -} -.sidebar-menu, -.main-sidebar .user-panel, -.sidebar-menu > li.header { - white-space: nowrap; - overflow: hidden; -} -.sidebar-menu:hover { - overflow: visible; -} -.sidebar-form, -.sidebar-menu > li.header { - overflow: hidden; - text-overflow: clip; -} -.sidebar-menu li > a { - position: relative; -} -.sidebar-menu li > a > .pull-right { - position: absolute; - right: 10px; - top: 50%; - margin-top: -7px; -} -/* - * Component: Control sidebar. By default, this is the right sidebar. - */ -.control-sidebar-bg { - position: fixed; - z-index: 1000; - bottom: 0; -} -.control-sidebar-bg, -.control-sidebar { - top: 0; - right: -230px; - width: 230px; - -webkit-transition: right 0.3s ease-in-out; - -o-transition: right 0.3s ease-in-out; - transition: right 0.3s ease-in-out; -} -.control-sidebar { - position: absolute; - padding-top: 50px; - z-index: 1010; -} -@media (max-width: 768px) { - .control-sidebar { - padding-top: 100px; - } -} -.control-sidebar > .tab-content { - padding: 10px 15px; -} -.control-sidebar.control-sidebar-open, -.control-sidebar.control-sidebar-open + .control-sidebar-bg { - right: 0; -} -.control-sidebar-open .control-sidebar-bg, -.control-sidebar-open .control-sidebar { - right: 0; -} -@media (min-width: 768px) { - .control-sidebar-open .content-wrapper, - .control-sidebar-open .right-side, - .control-sidebar-open .main-footer { - margin-right: 230px; - } -} -.nav-tabs.control-sidebar-tabs > li:first-of-type > a, -.nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover, -.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus { - border-left-width: 0; -} -.nav-tabs.control-sidebar-tabs > li > a { - border-radius: 0; -} -.nav-tabs.control-sidebar-tabs > li > a, -.nav-tabs.control-sidebar-tabs > li > a:hover { - border-top: none; - border-right: none; - border-left: 1px solid transparent; - border-bottom: 1px solid transparent; -} -.nav-tabs.control-sidebar-tabs > li > a .icon { - font-size: 16px; -} -.nav-tabs.control-sidebar-tabs > li.active > a, -.nav-tabs.control-sidebar-tabs > li.active > a:hover, -.nav-tabs.control-sidebar-tabs > li.active > a:focus, -.nav-tabs.control-sidebar-tabs > li.active > a:active { - border-top: none; - border-right: none; - border-bottom: none; -} -@media (max-width: 768px) { - .nav-tabs.control-sidebar-tabs { - display: table; - } - .nav-tabs.control-sidebar-tabs > li { - display: table-cell; - } -} -.control-sidebar-heading { - font-weight: 400; - font-size: 16px; - padding: 10px 0; - margin-bottom: 10px; -} -.control-sidebar-subheading { - display: block; - font-weight: 400; - font-size: 14px; -} -.control-sidebar-menu { - list-style: none; - padding: 0; - margin: 0 -15px; -} -.control-sidebar-menu > li > a { - display: block; - padding: 10px 15px; -} -.control-sidebar-menu > li > a:before, -.control-sidebar-menu > li > a:after { - content: " "; - display: table; -} -.control-sidebar-menu > li > a:after { - clear: both; -} -.control-sidebar-menu > li > a > .control-sidebar-subheading { - margin-top: 0; -} -.control-sidebar-menu .menu-icon { - float: left; - width: 35px; - height: 35px; - border-radius: 50%; - text-align: center; - line-height: 35px; -} -.control-sidebar-menu .menu-info { - margin-left: 45px; - margin-top: 3px; -} -.control-sidebar-menu .menu-info > .control-sidebar-subheading { - margin: 0; -} -.control-sidebar-menu .menu-info > p { - margin: 0; - font-size: 11px; -} -.control-sidebar-menu .progress { - margin: 0; -} -.control-sidebar-dark { - color: #b8c7ce; -} -.control-sidebar-dark, -.control-sidebar-dark + .control-sidebar-bg { - background: #222d32; -} -.control-sidebar-dark .nav-tabs.control-sidebar-tabs { - border-bottom: #1c2529; -} -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a { - background: #181f23; - color: #b8c7ce; -} -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a, -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover, -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus { - border-left-color: #141a1d; - border-bottom-color: #141a1d; -} -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover, -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus, -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:active { - background: #1c2529; -} -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover { - color: #fff; -} -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a, -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:hover, -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:focus, -.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:active { - background: #222d32; - color: #fff; -} -.control-sidebar-dark .control-sidebar-heading, -.control-sidebar-dark .control-sidebar-subheading { - color: #fff; -} -.control-sidebar-dark .control-sidebar-menu > li > a:hover { - background: #1e282c; -} -.control-sidebar-dark .control-sidebar-menu > li > a .menu-info > p { - color: #b8c7ce; -} -.control-sidebar-light { - color: #5e5e5e; -} -.control-sidebar-light, -.control-sidebar-light + .control-sidebar-bg { - background: #f9fafc; - border-left: 1px solid #d2d6de; -} -.control-sidebar-light .nav-tabs.control-sidebar-tabs { - border-bottom: #d2d6de; -} -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a { - background: #e8ecf4; - color: #444444; -} -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a, -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover, -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus { - border-left-color: #d2d6de; - border-bottom-color: #d2d6de; -} -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover, -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus, -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:active { - background: #eff1f7; -} -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a, -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:hover, -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:focus, -.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:active { - background: #f9fafc; - color: #111; -} -.control-sidebar-light .control-sidebar-heading, -.control-sidebar-light .control-sidebar-subheading { - color: #111; -} -.control-sidebar-light .control-sidebar-menu { - margin-left: -14px; -} -.control-sidebar-light .control-sidebar-menu > li > a:hover { - background: #f4f4f5; -} -.control-sidebar-light .control-sidebar-menu > li > a .menu-info > p { - color: #5e5e5e; -} -/* - * Component: Dropdown menus - * ------------------------- - */ -/*Dropdowns in general*/ -.dropdown-menu { - box-shadow: none; - border-color: #eee; -} -.dropdown-menu > li > a { - color: #777; -} -.dropdown-menu > li > a > .glyphicon, -.dropdown-menu > li > a > .fa, -.dropdown-menu > li > a > .ion { - margin-right: 10px; -} -.dropdown-menu > li > a:hover { - background-color: #e1e3e9; - color: #333; -} -.dropdown-menu > .divider { - background-color: #eee; -} -.navbar-nav > .notifications-menu > .dropdown-menu, -.navbar-nav > .messages-menu > .dropdown-menu, -.navbar-nav > .tasks-menu > .dropdown-menu { - width: 280px; - padding: 0 0 0 0; - margin: 0; - top: 100%; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li, -.navbar-nav > .messages-menu > .dropdown-menu > li, -.navbar-nav > .tasks-menu > .dropdown-menu > li { - position: relative; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.header, -.navbar-nav > .messages-menu > .dropdown-menu > li.header, -.navbar-nav > .tasks-menu > .dropdown-menu > li.header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - background-color: #ffffff; - padding: 7px 10px; - border-bottom: 1px solid #f4f4f4; - color: #444444; - font-size: 14px; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, -.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, -.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; - font-size: 12px; - background-color: #fff; - padding: 7px 10px; - border-bottom: 1px solid #eeeeee; - color: #444 !important; - text-align: center; -} -@media (max-width: 991px) { - .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, - .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, - .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { - background: #fff !important; - color: #444 !important; - } -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover, -.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover, -.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover { - text-decoration: none; - font-weight: normal; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu { - max-height: 200px; - margin: 0; - padding: 0; - list-style: none; - overflow-x: hidden; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { - display: block; - white-space: nowrap; - /* Prevent text from breaking */ - border-bottom: 1px solid #f4f4f4; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover { - background: #f4f4f4; - text-decoration: none; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a { - color: #444444; - overflow: hidden; - text-overflow: ellipsis; - padding: 10px; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion { - width: 20px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a { - margin: 0; - padding: 10px 10px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img { - margin: auto 10px auto auto; - width: 40px; - height: 40px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 { - padding: 0; - margin: 0 0 0 45px; - color: #444444; - font-size: 15px; - position: relative; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small { - color: #999999; - font-size: 10px; - position: absolute; - top: 0; - right: 0; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p { - margin: 0 0 0 45px; - font-size: 12px; - color: #888888; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { - content: " "; - display: table; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { - clear: both; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { - padding: 10px; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 { - font-size: 14px; - padding: 0; - margin: 0 0 10px 0; - color: #666666; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress { - padding: 0; - margin: 0; -} -.navbar-nav > .user-menu > .dropdown-menu { - border-top-right-radius: 0; - border-top-left-radius: 0; - padding: 1px 0 0 0; - border-top-width: 0; - width: 280px; -} -.navbar-nav > .user-menu > .dropdown-menu, -.navbar-nav > .user-menu > .dropdown-menu > .user-body { - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header { - height: 175px; - padding: 10px; - text-align: center; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { - z-index: 5; - height: 90px; - width: 90px; - border: 3px solid; - border-color: transparent; - border-color: rgba(255, 255, 255, 0.2); -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { - z-index: 5; - color: #fff; - color: rgba(255, 255, 255, 0.8); - font-size: 17px; - margin-top: 10px; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small { - display: block; - font-size: 12px; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body { - padding: 15px; - border-bottom: 1px solid #f4f4f4; - border-top: 1px solid #dddddd; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body:before, -.navbar-nav > .user-menu > .dropdown-menu > .user-body:after { - content: " "; - display: table; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body:after { - clear: both; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body a { - color: #444 !important; -} -@media (max-width: 991px) { - .navbar-nav > .user-menu > .dropdown-menu > .user-body a { - background: #fff !important; - color: #444 !important; - } -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer { - background-color: #f9f9f9; - padding: 10px; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer:before, -.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after { - content: " "; - display: table; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after { - clear: both; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default { - color: #666666; -} -@media (max-width: 991px) { - .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover { - background-color: #f9f9f9; - } -} -.navbar-nav > .user-menu .user-image { - float: left; - width: 25px; - height: 25px; - border-radius: 50%; - margin-right: 10px; - margin-top: -2px; -} -@media (max-width: 767px) { - .navbar-nav > .user-menu .user-image { - float: none; - margin-right: 0; - margin-top: -8px; - line-height: 10px; - } -} -/* Add fade animation to dropdown menus by appending - the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)*/ -.open:not(.dropup) > .animated-dropdown-menu { - backface-visibility: visible !important; - -webkit-animation: flipInX 0.7s both; - -o-animation: flipInX 0.7s both; - animation: flipInX 0.7s both; -} -@keyframes flipInX { - 0% { - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transition-timing-function: ease-in; - opacity: 0; - } - 40% { - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - transition-timing-function: ease-in; - } - 60% { - transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - opacity: 1; - } - 80% { - transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - } - 100% { - transform: perspective(400px); - } -} -@-webkit-keyframes flipInX { - 0% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - -webkit-transition-timing-function: ease-in; - opacity: 0; - } - 40% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - -webkit-transition-timing-function: ease-in; - } - 60% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - opacity: 1; - } - 80% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - } - 100% { - -webkit-transform: perspective(400px); - } -} -/* Fix dropdown menu in navbars */ -.navbar-custom-menu > .navbar-nav > li { - position: relative; -} -.navbar-custom-menu > .navbar-nav > li > .dropdown-menu { - position: absolute; - right: 0; - left: auto; -} -@media (max-width: 991px) { - .navbar-custom-menu > .navbar-nav { - float: right; - } - .navbar-custom-menu > .navbar-nav > li { - position: static; - } - .navbar-custom-menu > .navbar-nav > li > .dropdown-menu { - position: absolute; - right: 5%; - left: auto; - border: 1px solid #ddd; - background: #fff; - } -} -/* - * Component: Form - * --------------- - */ -.form-control { - border-radius: 0; - box-shadow: none; - border-color: #d2d6de; -} -.form-control:focus { - border-color: #3c8dbc; - box-shadow: none; -} -.form-control::-moz-placeholder, -.form-control:-ms-input-placeholder, -.form-control::-webkit-input-placeholder { - color: #bbb; - opacity: 1; -} -.form-control:not(select) { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} -.form-group.has-success label { - color: #00a65a; -} -.form-group.has-success .form-control { - border-color: #00a65a; - box-shadow: none; -} -.form-group.has-warning label { - color: #f39c12; -} -.form-group.has-warning .form-control { - border-color: #f39c12; - box-shadow: none; -} -.form-group.has-error label { - color: #dd4b39; -} -.form-group.has-error .form-control { - border-color: #dd4b39; - box-shadow: none; -} -/* Input group */ -.input-group .input-group-addon { - border-radius: 0; - border-color: #d2d6de; - background-color: #fff; -} -/* button groups */ -.btn-group-vertical .btn.btn-flat:first-of-type, -.btn-group-vertical .btn.btn-flat:last-of-type { - border-radius: 0; -} -.icheck > label { - padding-left: 0; -} -/* support Font Awesome icons in form-control */ -.form-control-feedback.fa { - line-height: 34px; -} -.input-lg + .form-control-feedback.fa, -.input-group-lg + .form-control-feedback.fa, -.form-group-lg .form-control + .form-control-feedback.fa { - line-height: 46px; -} -.input-sm + .form-control-feedback.fa, -.input-group-sm + .form-control-feedback.fa, -.form-group-sm .form-control + .form-control-feedback.fa { - line-height: 30px; -} -/* - * Component: Progress Bar - * ----------------------- - */ -.progress, -.progress > .progress-bar { - -webkit-box-shadow: none; - box-shadow: none; -} -.progress, -.progress > .progress-bar, -.progress .progress-bar, -.progress > .progress-bar .progress-bar { - border-radius: 1px; -} -/* size variation */ -.progress.sm, -.progress-sm { - height: 10px; -} -.progress.sm, -.progress-sm, -.progress.sm .progress-bar, -.progress-sm .progress-bar { - border-radius: 1px; -} -.progress.xs, -.progress-xs { - height: 7px; -} -.progress.xs, -.progress-xs, -.progress.xs .progress-bar, -.progress-xs .progress-bar { - border-radius: 1px; -} -.progress.xxs, -.progress-xxs { - height: 3px; -} -.progress.xxs, -.progress-xxs, -.progress.xxs .progress-bar, -.progress-xxs .progress-bar { - border-radius: 1px; -} -/* Vertical bars */ -.progress.vertical { - position: relative; - width: 30px; - height: 200px; - display: inline-block; - margin-right: 10px; -} -.progress.vertical > .progress-bar { - width: 100%; - position: absolute; - bottom: 0; -} -.progress.vertical.sm, -.progress.vertical.progress-sm { - width: 20px; -} -.progress.vertical.xs, -.progress.vertical.progress-xs { - width: 10px; -} -.progress.vertical.xxs, -.progress.vertical.progress-xxs { - width: 3px; -} -.progress-group .progress-text { - font-weight: 600; -} -.progress-group .progress-number { - float: right; -} -/* Remove margins from progress bars when put in a table */ -.table tr > td .progress { - margin: 0; -} -.progress-bar-light-blue, -.progress-bar-primary { - background-color: #3c8dbc; -} -.progress-striped .progress-bar-light-blue, -.progress-striped .progress-bar-primary { - 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: -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-bar-green, -.progress-bar-success { - background-color: #00a65a; -} -.progress-striped .progress-bar-green, -.progress-striped .progress-bar-success { - 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: -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-bar-aqua, -.progress-bar-info { - background-color: #00c0ef; -} -.progress-striped .progress-bar-aqua, -.progress-striped .progress-bar-info { - 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: -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-bar-yellow, -.progress-bar-warning { - background-color: #f39c12; -} -.progress-striped .progress-bar-yellow, -.progress-striped .progress-bar-warning { - 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: -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-bar-red, -.progress-bar-danger { - background-color: #dd4b39; -} -.progress-striped .progress-bar-red, -.progress-striped .progress-bar-danger { - 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: -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); -} -/* - * Component: Small Box - * -------------------- - */ -.small-box { - border-radius: 2px; - position: relative; - display: block; - margin-bottom: 20px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} -.small-box > .inner { - padding: 10px; -} -.small-box > .small-box-footer { - position: relative; - text-align: center; - padding: 3px 0; - color: #fff; - color: rgba(255, 255, 255, 0.8); - display: block; - z-index: 10; - background: rgba(0, 0, 0, 0.1); - text-decoration: none; -} -.small-box > .small-box-footer:hover { - color: #fff; - background: rgba(0, 0, 0, 0.15); -} -.small-box h3 { - font-size: 38px; - font-weight: bold; - margin: 0 0 10px 0; - white-space: nowrap; - padding: 0; -} -.small-box p { - font-size: 15px; -} -.small-box p > small { - display: block; - color: #f9f9f9; - font-size: 13px; - margin-top: 5px; -} -.small-box h3, -.small-box p { - z-index: 5; -} -.small-box .icon { - -webkit-transition: all 0.3s linear; - -o-transition: all 0.3s linear; - transition: all 0.3s linear; - position: absolute; - top: -10px; - right: 10px; - z-index: 0; - font-size: 90px; - color: rgba(0, 0, 0, 0.15); -} -.small-box:hover { - text-decoration: none; - color: #f9f9f9; -} -.small-box:hover .icon { - font-size: 95px; -} -@media (max-width: 767px) { - .small-box { - text-align: center; - } - .small-box .icon { - display: none; - } - .small-box p { - font-size: 12px; - } -} -/* - * Component: Box - * -------------- - */ -.box { - position: relative; - border-radius: 3px; - background: #ffffff; - border-top: 3px solid #d2d6de; - margin-bottom: 20px; - width: 100%; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} -.box.box-primary { - border-top-color: #3c8dbc; -} -.box.box-info { - border-top-color: #00c0ef; -} -.box.box-danger { - border-top-color: #dd4b39; -} -.box.box-warning { - border-top-color: #f39c12; -} -.box.box-success { - border-top-color: #00a65a; -} -.box.box-default { - border-top-color: #d2d6de; -} -.box.collapsed-box .box-body, -.box.collapsed-box .box-footer { - display: none; -} -.box .nav-stacked > li { - border-bottom: 1px solid #f4f4f4; - margin: 0; -} -.box .nav-stacked > li:last-of-type { - border-bottom: none; -} -.box.height-control .box-body { - max-height: 300px; - overflow: auto; -} -.box .border-right { - border-right: 1px solid #f4f4f4; -} -.box .border-left { - border-left: 1px solid #f4f4f4; -} -.box.box-solid { - border-top: 0; -} -.box.box-solid > .box-header .btn.btn-default { - background: transparent; -} -.box.box-solid > .box-header .btn:hover, -.box.box-solid > .box-header a:hover { - background: rgba(0, 0, 0, 0.1); -} -.box.box-solid.box-default { - border: 1px solid #d2d6de; -} -.box.box-solid.box-default > .box-header { - color: #444444; - background: #d2d6de; - background-color: #d2d6de; -} -.box.box-solid.box-default > .box-header a, -.box.box-solid.box-default > .box-header .btn { - color: #444444; -} -.box.box-solid.box-primary { - border: 1px solid #3c8dbc; -} -.box.box-solid.box-primary > .box-header { - color: #ffffff; - background: #3c8dbc; - background-color: #3c8dbc; -} -.box.box-solid.box-primary > .box-header a, -.box.box-solid.box-primary > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-info { - border: 1px solid #00c0ef; -} -.box.box-solid.box-info > .box-header { - color: #ffffff; - background: #00c0ef; - background-color: #00c0ef; -} -.box.box-solid.box-info > .box-header a, -.box.box-solid.box-info > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-danger { - border: 1px solid #dd4b39; -} -.box.box-solid.box-danger > .box-header { - color: #ffffff; - background: #dd4b39; - background-color: #dd4b39; -} -.box.box-solid.box-danger > .box-header a, -.box.box-solid.box-danger > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-warning { - border: 1px solid #f39c12; -} -.box.box-solid.box-warning > .box-header { - color: #ffffff; - background: #f39c12; - background-color: #f39c12; -} -.box.box-solid.box-warning > .box-header a, -.box.box-solid.box-warning > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-success { - border: 1px solid #00a65a; -} -.box.box-solid.box-success > .box-header { - color: #ffffff; - background: #00a65a; - background-color: #00a65a; -} -.box.box-solid.box-success > .box-header a, -.box.box-solid.box-success > .box-header .btn { - color: #ffffff; -} -.box.box-solid > .box-header > .box-tools .btn { - border: 0; - box-shadow: none; -} -.box.box-solid[class*='bg'] > .box-header { - color: #fff; -} -.box .box-group > .box { - margin-bottom: 5px; -} -.box .knob-label { - text-align: center; - color: #333; - font-weight: 100; - font-size: 12px; - margin-bottom: 0.3em; -} -.box > .overlay, -.overlay-wrapper > .overlay, -.box > .loading-img, -.overlay-wrapper > .loading-img { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.box .overlay, -.overlay-wrapper .overlay { - z-index: 50; - background: rgba(255, 255, 255, 0.7); - border-radius: 3px; -} -.box .overlay > .fa, -.overlay-wrapper .overlay > .fa { - position: absolute; - top: 50%; - left: 50%; - margin-left: -15px; - margin-top: -15px; - color: #000; - font-size: 30px; -} -.box .overlay.dark, -.overlay-wrapper .overlay.dark { - background: rgba(0, 0, 0, 0.5); -} -.box-header:before, -.box-body:before, -.box-footer:before, -.box-header:after, -.box-body:after, -.box-footer:after { - content: " "; - display: table; -} -.box-header:after, -.box-body:after, -.box-footer:after { - clear: both; -} -.box-header { - color: #444; - display: block; - padding: 10px; - position: relative; -} -.box-header.with-border { - border-bottom: 1px solid #f4f4f4; -} -.collapsed-box .box-header.with-border { - border-bottom: none; -} -.box-header > .fa, -.box-header > .glyphicon, -.box-header > .ion, -.box-header .box-title { - display: inline-block; - font-size: 18px; - margin: 0; - line-height: 1; -} -.box-header > .fa, -.box-header > .glyphicon, -.box-header > .ion { - margin-right: 5px; -} -.box-header > .box-tools { - position: absolute; - right: 10px; - top: 5px; -} -.box-header > .box-tools [data-toggle="tooltip"] { - position: relative; -} -.box-header > .box-tools.pull-right .dropdown-menu { - right: 0; - left: auto; -} -.btn-box-tool { - padding: 5px; - font-size: 12px; - background: transparent; - color: #97a0b3; -} -.open .btn-box-tool, -.btn-box-tool:hover { - color: #606c84; -} -.btn-box-tool.btn:active { - box-shadow: none; -} -.box-body { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - padding: 10px; -} -.no-header .box-body { - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.box-body > .table { - margin-bottom: 0; -} -.box-body .fc { - margin-top: 5px; -} -.box-body .full-width-chart { - margin: -19px; -} -.box-body.no-padding .full-width-chart { - margin: -9px; -} -.box-body .box-pane { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 3px; -} -.box-body .box-pane-right { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 0; -} -.box-footer { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - border-top: 1px solid #f4f4f4; - padding: 10px; - background-color: #ffffff; -} -.chart-legend { - margin: 10px 0; -} -@media (max-width: 991px) { - .chart-legend > li { - float: left; - margin-right: 10px; - } -} -.box-comments { - background: #f7f7f7; -} -.box-comments .box-comment { - padding: 8px 0; - border-bottom: 1px solid #eee; -} -.box-comments .box-comment:before, -.box-comments .box-comment:after { - content: " "; - display: table; -} -.box-comments .box-comment:after { - clear: both; -} -.box-comments .box-comment:last-of-type { - border-bottom: 0; -} -.box-comments .box-comment:first-of-type { - padding-top: 0; -} -.box-comments .box-comment img { - float: left; -} -.box-comments .comment-text { - margin-left: 40px; - color: #555; -} -.box-comments .username { - color: #444; - display: block; - font-weight: 600; -} -.box-comments .text-muted { - font-weight: 400; - font-size: 12px; -} -/* Widget: TODO LIST */ -.todo-list { - margin: 0; - padding: 0; - list-style: none; - overflow: auto; -} -.todo-list > li { - border-radius: 2px; - padding: 10px; - background: #f4f4f4; - margin-bottom: 2px; - border-left: 2px solid #e6e7e8; - color: #444; -} -.todo-list > li:last-of-type { - margin-bottom: 0; -} -.todo-list > li > input[type='checkbox'] { - margin: 0 10px 0 5px; -} -.todo-list > li .text { - display: inline-block; - margin-left: 5px; - font-weight: 600; -} -.todo-list > li .label { - margin-left: 10px; - font-size: 9px; -} -.todo-list > li .tools { - display: none; - float: right; - color: #dd4b39; -} -.todo-list > li .tools > .fa, -.todo-list > li .tools > .glyphicon, -.todo-list > li .tools > .ion { - margin-right: 5px; - cursor: pointer; -} -.todo-list > li:hover .tools { - display: inline-block; -} -.todo-list > li.done { - color: #999; -} -.todo-list > li.done .text { - text-decoration: line-through; - font-weight: 500; -} -.todo-list > li.done .label { - background: #d2d6de !important; -} -.todo-list .danger { - border-left-color: #dd4b39; -} -.todo-list .warning { - border-left-color: #f39c12; -} -.todo-list .info { - border-left-color: #00c0ef; -} -.todo-list .success { - border-left-color: #00a65a; -} -.todo-list .primary { - border-left-color: #3c8dbc; -} -.todo-list .handle { - display: inline-block; - cursor: move; - margin: 0 5px; -} -/* Chat widget (DEPRECATED - this will be removed in the next major release. Use Direct Chat instead)*/ -.chat { - padding: 5px 20px 5px 10px; -} -.chat .item { - margin-bottom: 10px; -} -.chat .item:before, -.chat .item:after { - content: " "; - display: table; -} -.chat .item:after { - clear: both; -} -.chat .item > img { - width: 40px; - height: 40px; - border: 2px solid transparent; - border-radius: 50%; -} -.chat .item > .online { - border: 2px solid #00a65a; -} -.chat .item > .offline { - border: 2px solid #dd4b39; -} -.chat .item > .message { - margin-left: 55px; - margin-top: -40px; -} -.chat .item > .message > .name { - display: block; - font-weight: 600; -} -.chat .item > .attachment { - border-radius: 3px; - background: #f4f4f4; - margin-left: 65px; - margin-right: 15px; - padding: 10px; -} -.chat .item > .attachment > h4 { - margin: 0 0 5px 0; - font-weight: 600; - font-size: 14px; -} -.chat .item > .attachment > p, -.chat .item > .attachment > .filename { - font-weight: 600; - font-size: 13px; - font-style: italic; - margin: 0; -} -.chat .item > .attachment:before, -.chat .item > .attachment:after { - content: " "; - display: table; -} -.chat .item > .attachment:after { - clear: both; -} -.box-input { - max-width: 200px; -} -.modal .panel-body { - color: #444; -} -/* - * Component: Info Box - * ------------------- - */ -.info-box { - display: block; - min-height: 90px; - background: #fff; - width: 100%; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 2px; - margin-bottom: 15px; -} -.info-box small { - font-size: 14px; -} -.info-box .progress { - background: rgba(0, 0, 0, 0.2); - margin: 5px -10px 5px -10px; - height: 2px; -} -.info-box .progress, -.info-box .progress .progress-bar { - border-radius: 0; -} -.info-box .progress .progress-bar { - background: #fff; -} -.info-box-icon { - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; - display: block; - float: left; - height: 90px; - width: 90px; - text-align: center; - font-size: 45px; - line-height: 90px; - background: rgba(0, 0, 0, 0.2); -} -.info-box-icon > img { - max-width: 100%; -} -.info-box-content { - padding: 5px 10px; - margin-left: 90px; -} -.info-box-number { - display: block; - font-weight: bold; - font-size: 18px; -} -.progress-description, -.info-box-text { - display: block; - font-size: 14px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.info-box-text { - text-transform: uppercase; -} -.info-box-more { - display: block; -} -.progress-description { - margin: 0; -} -/* - * Component: Timeline - * ------------------- - */ -.timeline { - position: relative; - margin: 0 0 30px 0; - padding: 0; - list-style: none; -} -.timeline:before { - content: ''; - position: absolute; - top: 0; - bottom: 0; - width: 4px; - background: #ddd; - left: 31px; - margin: 0; - border-radius: 2px; -} -.timeline > li { - position: relative; - margin-right: 10px; - margin-bottom: 15px; -} -.timeline > li:before, -.timeline > li:after { - content: " "; - display: table; -} -.timeline > li:after { - clear: both; -} -.timeline > li > .timeline-item { - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 3px; - margin-top: 0; - background: #fff; - color: #444; - margin-left: 60px; - margin-right: 15px; - padding: 0; - position: relative; -} -.timeline > li > .timeline-item > .time { - color: #999; - float: right; - padding: 10px; - font-size: 12px; -} -.timeline > li > .timeline-item > .timeline-header { - margin: 0; - color: #555; - border-bottom: 1px solid #f4f4f4; - padding: 10px; - font-size: 16px; - line-height: 1.1; -} -.timeline > li > .timeline-item > .timeline-header > a { - font-weight: 600; -} -.timeline > li > .timeline-item > .timeline-body, -.timeline > li > .timeline-item > .timeline-footer { - padding: 10px; -} -.timeline > li > .fa, -.timeline > li > .glyphicon, -.timeline > li > .ion { - width: 30px; - height: 30px; - font-size: 15px; - line-height: 30px; - position: absolute; - color: #666; - background: #d2d6de; - border-radius: 50%; - text-align: center; - left: 18px; - top: 0; -} -.timeline > .time-label > span { - font-weight: 600; - padding: 5px; - display: inline-block; - background-color: #fff; - border-radius: 4px; -} -.timeline-inverse > li > .timeline-item { - background: #f0f0f0; - border: 1px solid #ddd; - -webkit-box-shadow: none; - box-shadow: none; -} -.timeline-inverse > li > .timeline-item > .timeline-header { - border-bottom-color: #ddd; -} -/* - * Component: Button - * ----------------- - */ -.btn { - border-radius: 3px; - -webkit-box-shadow: none; - box-shadow: none; - border: 1px solid transparent; -} -.btn.uppercase { - text-transform: uppercase; -} -.btn.btn-flat { - border-radius: 0; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - border-width: 1px; -} -.btn:active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn:focus { - outline: none; -} -.btn.btn-file { - position: relative; - overflow: hidden; -} -.btn.btn-file > input[type='file'] { - position: absolute; - top: 0; - right: 0; - min-width: 100%; - min-height: 100%; - font-size: 100px; - text-align: right; - opacity: 0; - filter: alpha(opacity=0); - outline: none; - background: white; - cursor: inherit; - display: block; -} -.btn-default { - background-color: #f4f4f4; - color: #444; - border-color: #ddd; -} -.btn-default:hover, -.btn-default:active, -.btn-default.hover { - background-color: #e7e7e7; -} -.btn-primary { - background-color: #3c8dbc; - border-color: #367fa9; -} -.btn-primary:hover, -.btn-primary:active, -.btn-primary.hover { - background-color: #367fa9; -} -.btn-success { - background-color: #00a65a; - border-color: #008d4c; -} -.btn-success:hover, -.btn-success:active, -.btn-success.hover { - background-color: #008d4c; -} -.btn-info { - background-color: #00c0ef; - border-color: #00acd6; -} -.btn-info:hover, -.btn-info:active, -.btn-info.hover { - background-color: #00acd6; -} -.btn-danger { - background-color: #dd4b39; - border-color: #d73925; -} -.btn-danger:hover, -.btn-danger:active, -.btn-danger.hover { - background-color: #d73925; -} -.btn-warning { - background-color: #f39c12; - border-color: #e08e0b; -} -.btn-warning:hover, -.btn-warning:active, -.btn-warning.hover { - background-color: #e08e0b; -} -.btn-outline { - border: 1px solid #fff; - background: transparent; - color: #fff; -} -.btn-outline:hover, -.btn-outline:focus, -.btn-outline:active { - color: rgba(255, 255, 255, 0.7); - border-color: rgba(255, 255, 255, 0.7); -} -.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn[class*='bg-']:hover { - -webkit-box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2); -} -.btn-app { - border-radius: 3px; - position: relative; - padding: 15px 5px; - margin: 0 0 10px 10px; - min-width: 80px; - height: 60px; - text-align: center; - color: #666; - border: 1px solid #ddd; - background-color: #f4f4f4; - font-size: 12px; -} -.btn-app > .fa, -.btn-app > .glyphicon, -.btn-app > .ion { - font-size: 20px; - display: block; -} -.btn-app:hover { - background: #f4f4f4; - color: #444; - border-color: #aaa; -} -.btn-app:active, -.btn-app:focus { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-app > .badge { - position: absolute; - top: -3px; - right: -10px; - font-size: 10px; - font-weight: 400; -} -/* - * Component: Callout - * ------------------ - */ -.callout { - border-radius: 3px; - margin: 0 0 20px 0; - padding: 15px 30px 15px 15px; - border-left: 5px solid #eee; -} -.callout a { - color: #fff; - text-decoration: underline; -} -.callout a:hover { - color: #eee; -} -.callout h4 { - margin-top: 0; - font-weight: 600; -} -.callout p:last-child { - margin-bottom: 0; -} -.callout code, -.callout .highlight { - background-color: #fff; -} -.callout.callout-danger { - border-color: #c23321; -} -.callout.callout-warning { - border-color: #c87f0a; -} -.callout.callout-info { - border-color: #0097bc; -} -.callout.callout-success { - border-color: #00733e; -} -/* - * Component: alert - * ---------------- - */ -.alert { - border-radius: 3px; -} -.alert h4 { - font-weight: 600; -} -.alert .icon { - margin-right: 10px; -} -.alert .close { - color: #000; - opacity: 0.2; - filter: alpha(opacity=20); -} -.alert .close:hover { - opacity: 0.5; - filter: alpha(opacity=50); -} -.alert a { - color: #fff; - text-decoration: underline; -} -.alert-success { - border-color: #008d4c; -} -.alert-danger, -.alert-error { - border-color: #d73925; -} -.alert-warning { - border-color: #e08e0b; -} -.alert-info { - border-color: #00acd6; -} -/* - * Component: Nav - * -------------- - */ -.nav > li > a:hover, -.nav > li > a:active, -.nav > li > a:focus { - color: #444; - background: #f7f7f7; -} -/* NAV PILLS */ -.nav-pills > li > a { - border-radius: 0; - border-top: 3px solid transparent; - color: #444; -} -.nav-pills > li > a > .fa, -.nav-pills > li > a > .glyphicon, -.nav-pills > li > a > .ion { - margin-right: 5px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - border-top-color: #3c8dbc; -} -.nav-pills > li.active > a { - font-weight: 600; -} -/* NAV STACKED */ -.nav-stacked > li > a { - border-radius: 0; - border-top: 0; - border-left: 3px solid transparent; - color: #444; -} -.nav-stacked > li.active > a, -.nav-stacked > li.active > a:hover { - background: transparent; - color: #444; - border-top: 0; - border-left-color: #3c8dbc; -} -.nav-stacked > li.header { - border-bottom: 1px solid #ddd; - color: #777; - margin-bottom: 10px; - padding: 5px 10px; - text-transform: uppercase; -} -/* NAV TABS */ -.nav-tabs-custom { - margin-bottom: 20px; - background: #fff; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 3px; -} -.nav-tabs-custom > .nav-tabs { - margin: 0; - border-bottom-color: #f4f4f4; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.nav-tabs-custom > .nav-tabs > li { - border-top: 3px solid transparent; - margin-bottom: -2px; - margin-right: 5px; -} -.nav-tabs-custom > .nav-tabs > li > a { - color: #444; - border-radius: 0; -} -.nav-tabs-custom > .nav-tabs > li > a.text-muted { - color: #999; -} -.nav-tabs-custom > .nav-tabs > li > a, -.nav-tabs-custom > .nav-tabs > li > a:hover { - background: transparent; - margin: 0; -} -.nav-tabs-custom > .nav-tabs > li > a:hover { - color: #999; -} -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover, -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus, -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active { - border-color: transparent; -} -.nav-tabs-custom > .nav-tabs > li.active { - border-top-color: #3c8dbc; -} -.nav-tabs-custom > .nav-tabs > li.active > a, -.nav-tabs-custom > .nav-tabs > li.active:hover > a { - background-color: #fff; - color: #444; -} -.nav-tabs-custom > .nav-tabs > li.active > a { - border-top-color: transparent; - border-left-color: #f4f4f4; - border-right-color: #f4f4f4; -} -.nav-tabs-custom > .nav-tabs > li:first-of-type { - margin-left: 0; -} -.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a { - border-left-color: transparent; -} -.nav-tabs-custom > .nav-tabs.pull-right { - float: none !important; -} -.nav-tabs-custom > .nav-tabs.pull-right > li { - float: right; -} -.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type { - margin-right: 0; -} -.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type > a { - border-left-width: 1px; -} -.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a { - border-left-color: #f4f4f4; - border-right-color: transparent; -} -.nav-tabs-custom > .nav-tabs > li.header { - line-height: 35px; - padding: 0 10px; - font-size: 20px; - color: #444; -} -.nav-tabs-custom > .nav-tabs > li.header > .fa, -.nav-tabs-custom > .nav-tabs > li.header > .glyphicon, -.nav-tabs-custom > .nav-tabs > li.header > .ion { - margin-right: 5px; -} -.nav-tabs-custom > .tab-content { - background: #fff; - padding: 10px; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.nav-tabs-custom .dropdown.open > a:active, -.nav-tabs-custom .dropdown.open > a:focus { - background: transparent; - color: #999; -} -.nav-tabs-custom.tab-primary > .nav-tabs > li.active { - border-top-color: #3c8dbc; -} -.nav-tabs-custom.tab-info > .nav-tabs > li.active { - border-top-color: #00c0ef; -} -.nav-tabs-custom.tab-danger > .nav-tabs > li.active { - border-top-color: #dd4b39; -} -.nav-tabs-custom.tab-warning > .nav-tabs > li.active { - border-top-color: #f39c12; -} -.nav-tabs-custom.tab-success > .nav-tabs > li.active { - border-top-color: #00a65a; -} -.nav-tabs-custom.tab-default > .nav-tabs > li.active { - border-top-color: #d2d6de; -} -/* PAGINATION */ -.pagination > li > a { - background: #fafafa; - color: #666; -} -.pagination.pagination-flat > li > a { - border-radius: 0 !important; -} -/* - * Component: Products List - * ------------------------ - */ -.products-list { - list-style: none; - margin: 0; - padding: 0; -} -.products-list > .item { - border-radius: 3px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - padding: 10px 0; - background: #fff; -} -.products-list > .item:before, -.products-list > .item:after { - content: " "; - display: table; -} -.products-list > .item:after { - clear: both; -} -.products-list .product-img { - float: left; -} -.products-list .product-img img { - width: 50px; - height: 50px; -} -.products-list .product-info { - margin-left: 60px; -} -.products-list .product-title { - font-weight: 600; -} -.products-list .product-description { - display: block; - color: #999; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.product-list-in-box > .item { - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 0; - border-bottom: 1px solid #f4f4f4; -} -.product-list-in-box > .item:last-of-type { - border-bottom-width: 0; -} -/* - * Component: Table - * ---------------- - */ -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - border-top: 1px solid #f4f4f4; -} -.table > thead > tr > th { - border-bottom: 2px solid #f4f4f4; -} -.table tr td .progress { - margin-top: 5px; -} -.table-bordered { - border: 1px solid #f4f4f4; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #f4f4f4; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table.no-border, -.table.no-border td, -.table.no-border th { - border: 0; -} -/* .text-center in tables */ -table.text-center, -table.text-center td, -table.text-center th { - text-align: center; -} -.table.align th { - text-align: left; -} -.table.align td { - text-align: right; -} -/* - * Component: Label - * ---------------- - */ -.label-default { - background-color: #d2d6de; - color: #444; -} -/* - * Component: Direct Chat - * ---------------------- - */ -.direct-chat .box-body { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - position: relative; - overflow-x: hidden; - padding: 0; -} -.direct-chat.chat-pane-open .direct-chat-contacts { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.direct-chat-messages { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); - padding: 10px; - height: 250px; - overflow: auto; -} -.direct-chat-msg, -.direct-chat-text { - display: block; -} -.direct-chat-msg { - margin-bottom: 10px; -} -.direct-chat-msg:before, -.direct-chat-msg:after { - content: " "; - display: table; -} -.direct-chat-msg:after { - clear: both; -} -.direct-chat-messages, -.direct-chat-contacts { - -webkit-transition: -webkit-transform 0.5s ease-in-out; - -moz-transition: -moz-transform 0.5s ease-in-out; - -o-transition: -o-transform 0.5s ease-in-out; - transition: transform 0.5s ease-in-out; -} -.direct-chat-text { - border-radius: 5px; - position: relative; - padding: 5px 10px; - background: #d2d6de; - border: 1px solid #d2d6de; - margin: 5px 0 0 50px; - color: #444444; -} -.direct-chat-text:after, -.direct-chat-text:before { - position: absolute; - right: 100%; - top: 15px; - border: solid transparent; - border-right-color: #d2d6de; - content: ' '; - height: 0; - width: 0; - pointer-events: none; -} -.direct-chat-text:after { - border-width: 5px; - margin-top: -5px; -} -.direct-chat-text:before { - border-width: 6px; - margin-top: -6px; -} -.right .direct-chat-text { - margin-right: 50px; - margin-left: 0; -} -.right .direct-chat-text:after, -.right .direct-chat-text:before { - right: auto; - left: 100%; - border-right-color: transparent; - border-left-color: #d2d6de; -} -.direct-chat-img { - border-radius: 50%; - float: left; - width: 40px; - height: 40px; -} -.right .direct-chat-img { - float: right; -} -.direct-chat-info { - display: block; - margin-bottom: 2px; - font-size: 12px; -} -.direct-chat-name { - font-weight: 600; -} -.direct-chat-timestamp { - color: #999; -} -.direct-chat-contacts-open .direct-chat-contacts { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.direct-chat-contacts { - -webkit-transform: translate(101%, 0); - -ms-transform: translate(101%, 0); - -o-transform: translate(101%, 0); - transform: translate(101%, 0); - position: absolute; - top: 0; - bottom: 0; - height: 250px; - width: 100%; - background: #222d32; - color: #fff; - overflow: auto; -} -.contacts-list > li { - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - padding: 10px; - margin: 0; -} -.contacts-list > li:before, -.contacts-list > li:after { - content: " "; - display: table; -} -.contacts-list > li:after { - clear: both; -} -.contacts-list > li:last-of-type { - border-bottom: none; -} -.contacts-list-img { - border-radius: 50%; - width: 40px; - float: left; -} -.contacts-list-info { - margin-left: 45px; - color: #fff; -} -.contacts-list-name, -.contacts-list-status { - display: block; -} -.contacts-list-name { - font-weight: 600; -} -.contacts-list-status { - font-size: 12px; -} -.contacts-list-date { - color: #aaa; - font-weight: normal; -} -.contacts-list-msg { - color: #999; -} -.direct-chat-danger .right > .direct-chat-text { - background: #dd4b39; - border-color: #dd4b39; - color: #ffffff; -} -.direct-chat-danger .right > .direct-chat-text:after, -.direct-chat-danger .right > .direct-chat-text:before { - border-left-color: #dd4b39; -} -.direct-chat-primary .right > .direct-chat-text { - background: #3c8dbc; - border-color: #3c8dbc; - color: #ffffff; -} -.direct-chat-primary .right > .direct-chat-text:after, -.direct-chat-primary .right > .direct-chat-text:before { - border-left-color: #3c8dbc; -} -.direct-chat-warning .right > .direct-chat-text { - background: #f39c12; - border-color: #f39c12; - color: #ffffff; -} -.direct-chat-warning .right > .direct-chat-text:after, -.direct-chat-warning .right > .direct-chat-text:before { - border-left-color: #f39c12; -} -.direct-chat-info .right > .direct-chat-text { - background: #00c0ef; - border-color: #00c0ef; - color: #ffffff; -} -.direct-chat-info .right > .direct-chat-text:after, -.direct-chat-info .right > .direct-chat-text:before { - border-left-color: #00c0ef; -} -.direct-chat-success .right > .direct-chat-text { - background: #00a65a; - border-color: #00a65a; - color: #ffffff; -} -.direct-chat-success .right > .direct-chat-text:after, -.direct-chat-success .right > .direct-chat-text:before { - border-left-color: #00a65a; -} -/* - * Component: Users List - * --------------------- - */ -.users-list > li { - width: 25%; - float: left; - padding: 10px; - text-align: center; -} -.users-list > li img { - border-radius: 50%; - max-width: 100%; - height: auto; -} -.users-list > li > a:hover, -.users-list > li > a:hover .users-list-name { - color: #999; -} -.users-list-name, -.users-list-date { - display: block; -} -.users-list-name { - font-weight: 600; - color: #444; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.users-list-date { - color: #999; - font-size: 12px; -} -/* - * Component: Carousel - * ------------------- - */ -.carousel-control.left, -.carousel-control.right { - background-image: none; -} -.carousel-control > .fa { - font-size: 40px; - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - margin-top: -20px; -} -/* - * Component: modal - * ---------------- - */ -.modal { - background: rgba(0, 0, 0, 0.3); -} -.modal-content { - border-radius: 0; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125); - border: 0; -} -@media (min-width: 768px) { - .modal-content { - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125); - } -} -.modal-header { - border-bottom-color: #f4f4f4; -} -.modal-footer { - border-top-color: #f4f4f4; -} -.modal-primary .modal-header, -.modal-primary .modal-footer { - border-color: #307095; -} -.modal-warning .modal-header, -.modal-warning .modal-footer { - border-color: #c87f0a; -} -.modal-info .modal-header, -.modal-info .modal-footer { - border-color: #0097bc; -} -.modal-success .modal-header, -.modal-success .modal-footer { - border-color: #00733e; -} -.modal-danger .modal-header, -.modal-danger .modal-footer { - border-color: #c23321; -} -/* - * Component: Social Widgets - * ------------------------- - */ -.box-widget { - border: none; - position: relative; -} -.widget-user .widget-user-header { - padding: 20px; - height: 120px; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.widget-user .widget-user-username { - margin-top: 0; - margin-bottom: 5px; - font-size: 25px; - font-weight: 300; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); -} -.widget-user .widget-user-desc { - margin-top: 0; -} -.widget-user .widget-user-image { - position: absolute; - top: 65px; - left: 50%; - margin-left: -45px; -} -.widget-user .widget-user-image > img { - width: 90px; - height: auto; - border: 3px solid #fff; -} -.widget-user .box-footer { - padding-top: 30px; -} -.widget-user-2 .widget-user-header { - padding: 20px; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.widget-user-2 .widget-user-username { - margin-top: 5px; - margin-bottom: 5px; - font-size: 25px; - font-weight: 300; -} -.widget-user-2 .widget-user-desc { - margin-top: 0; -} -.widget-user-2 .widget-user-username, -.widget-user-2 .widget-user-desc { - margin-left: 75px; -} -.widget-user-2 .widget-user-image > img { - width: 65px; - height: auto; - float: left; -} -/* - * Page: Mailbox - * ------------- - */ -.mailbox-messages > .table { - margin: 0; -} -.mailbox-controls { - padding: 5px; -} -.mailbox-controls.with-border { - border-bottom: 1px solid #f4f4f4; -} -.mailbox-read-info { - border-bottom: 1px solid #f4f4f4; - padding: 10px; -} -.mailbox-read-info h3 { - font-size: 20px; - margin: 0; -} -.mailbox-read-info h5 { - margin: 0; - padding: 5px 0 0 0; -} -.mailbox-read-time { - color: #999; - font-size: 13px; -} -.mailbox-read-message { - padding: 10px; -} -.mailbox-attachments li { - float: left; - width: 200px; - border: 1px solid #eee; - margin-bottom: 10px; - margin-right: 10px; -} -.mailbox-attachment-name { - font-weight: bold; - color: #666; -} -.mailbox-attachment-icon, -.mailbox-attachment-info, -.mailbox-attachment-size { - display: block; -} -.mailbox-attachment-info { - padding: 10px; - background: #f4f4f4; -} -.mailbox-attachment-size { - color: #999; - font-size: 12px; -} -.mailbox-attachment-icon { - text-align: center; - font-size: 65px; - color: #666; - padding: 20px 10px; -} -.mailbox-attachment-icon.has-img { - padding: 0; -} -.mailbox-attachment-icon.has-img > img { - max-width: 100%; - height: auto; -} -/* - * Page: Lock Screen - * ----------------- - */ -/* ADD THIS CLASS TO THE TAG */ -.lockscreen { - background: #d2d6de; -} -.lockscreen-logo { - font-size: 35px; - text-align: center; - margin-bottom: 25px; - font-weight: 300; -} -.lockscreen-logo a { - color: #444; -} -.lockscreen-wrapper { - max-width: 400px; - margin: 0 auto; - margin-top: 10%; -} -/* User name [optional] */ -.lockscreen .lockscreen-name { - text-align: center; - font-weight: 600; -} -/* Will contain the image and the sign in form */ -.lockscreen-item { - border-radius: 4px; - padding: 0; - background: #fff; - position: relative; - margin: 10px auto 30px auto; - width: 290px; -} -/* User image */ -.lockscreen-image { - border-radius: 50%; - position: absolute; - left: -10px; - top: -25px; - background: #fff; - padding: 5px; - z-index: 10; -} -.lockscreen-image > img { - border-radius: 50%; - width: 70px; - height: 70px; -} -/* Contains the password input and the login button */ -.lockscreen-credentials { - margin-left: 70px; -} -.lockscreen-credentials .form-control { - border: 0; -} -.lockscreen-credentials .btn { - background-color: #fff; - border: 0; - padding: 0 10px; -} -.lockscreen-footer { - margin-top: 10px; -} -/* - * Page: Login & Register - * ---------------------- - */ -.login-logo, -.register-logo { - font-size: 35px; - text-align: center; - margin-bottom: 25px; - font-weight: 300; -} -.login-logo a, -.register-logo a { - color: #444; -} -.login-page, -.register-page { - background: #d2d6de; -} -.login-box, -.register-box { - width: 360px; - margin: 7% auto; -} -@media (max-width: 768px) { - .login-box, - .register-box { - width: 90%; - margin-top: 20px; - } -} -.login-box-body, -.register-box-body { - background: #fff; - padding: 20px; - border-top: 0; - color: #666; -} -.login-box-body .form-control-feedback, -.register-box-body .form-control-feedback { - color: #777; -} -.login-box-msg, -.register-box-msg { - margin: 0; - text-align: center; - padding: 0 20px 20px 20px; -} -.social-auth-links { - margin: 10px 0; -} -/* - * Page: 400 and 500 error pages - * ------------------------------ - */ -.error-page { - width: 600px; - margin: 20px auto 0 auto; -} -@media (max-width: 991px) { - .error-page { - width: 100%; - } -} -.error-page > .headline { - float: left; - font-size: 100px; - font-weight: 300; -} -@media (max-width: 991px) { - .error-page > .headline { - float: none; - text-align: center; - } -} -.error-page > .error-content { - margin-left: 190px; - display: block; -} -@media (max-width: 991px) { - .error-page > .error-content { - margin-left: 0; - } -} -.error-page > .error-content > h3 { - font-weight: 300; - font-size: 25px; -} -@media (max-width: 991px) { - .error-page > .error-content > h3 { - text-align: center; - } -} -/* - * Page: Invoice - * ------------- - */ -.invoice { - position: relative; - background: #fff; - border: 1px solid #f4f4f4; - padding: 20px; - margin: 10px 25px; -} -.invoice-title { - margin-top: 0; -} -/* - * Page: Profile - * ------------- - */ -.profile-user-img { - margin: 0 auto; - width: 100px; - padding: 3px; - border: 3px solid #d2d6de; -} -.profile-username { - font-size: 21px; - margin-top: 5px; -} -.post { - border-bottom: 1px solid #d2d6de; - margin-bottom: 15px; - padding-bottom: 15px; - color: #666; -} -.post:last-of-type { - border-bottom: 0; - margin-bottom: 0; - padding-bottom: 0; -} -.post .user-block { - margin-bottom: 15px; -} -/* - * Social Buttons for Bootstrap - * - * Copyright 2013-2015 Panayiotis Lipiridis - * Licensed under the MIT License - * - * https://github.com/lipis/bootstrap-social - */ -.btn-social { - position: relative; - padding-left: 44px; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.btn-social > :first-child { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: 32px; - line-height: 34px; - font-size: 1.6em; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.2); -} -.btn-social.btn-lg { - padding-left: 61px; -} -.btn-social.btn-lg > :first-child { - line-height: 45px; - width: 45px; - font-size: 1.8em; -} -.btn-social.btn-sm { - padding-left: 38px; -} -.btn-social.btn-sm > :first-child { - line-height: 28px; - width: 28px; - font-size: 1.4em; -} -.btn-social.btn-xs { - padding-left: 30px; -} -.btn-social.btn-xs > :first-child { - line-height: 20px; - width: 20px; - font-size: 1.2em; -} -.btn-social-icon { - position: relative; - padding-left: 44px; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - height: 34px; - width: 34px; - padding: 0; -} -.btn-social-icon > :first-child { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: 32px; - line-height: 34px; - font-size: 1.6em; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.2); -} -.btn-social-icon.btn-lg { - padding-left: 61px; -} -.btn-social-icon.btn-lg > :first-child { - line-height: 45px; - width: 45px; - font-size: 1.8em; -} -.btn-social-icon.btn-sm { - padding-left: 38px; -} -.btn-social-icon.btn-sm > :first-child { - line-height: 28px; - width: 28px; - font-size: 1.4em; -} -.btn-social-icon.btn-xs { - padding-left: 30px; -} -.btn-social-icon.btn-xs > :first-child { - line-height: 20px; - width: 20px; - font-size: 1.2em; -} -.btn-social-icon > :first-child { - border: none; - text-align: center; - width: 100%; -} -.btn-social-icon.btn-lg { - height: 45px; - width: 45px; - padding-left: 0; - padding-right: 0; -} -.btn-social-icon.btn-sm { - height: 30px; - width: 30px; - padding-left: 0; - padding-right: 0; -} -.btn-social-icon.btn-xs { - height: 22px; - width: 22px; - padding-left: 0; - padding-right: 0; -} -.btn-adn { - color: #ffffff; - background-color: #d87a68; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-adn:focus, -.btn-adn.focus { - color: #ffffff; - background-color: #ce563f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-adn:hover { - color: #ffffff; - background-color: #ce563f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-adn:active, -.btn-adn.active, -.open > .dropdown-toggle.btn-adn { - color: #ffffff; - background-color: #ce563f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-adn:active, -.btn-adn.active, -.open > .dropdown-toggle.btn-adn { - background-image: none; -} -.btn-adn .badge { - color: #d87a68; - background-color: #ffffff; -} -.btn-bitbucket { - color: #ffffff; - background-color: #205081; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:focus, -.btn-bitbucket.focus { - color: #ffffff; - background-color: #163758; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:hover { - color: #ffffff; - background-color: #163758; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:active, -.btn-bitbucket.active, -.open > .dropdown-toggle.btn-bitbucket { - color: #ffffff; - background-color: #163758; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:active, -.btn-bitbucket.active, -.open > .dropdown-toggle.btn-bitbucket { - background-image: none; -} -.btn-bitbucket .badge { - color: #205081; - background-color: #ffffff; -} -.btn-dropbox { - color: #ffffff; - background-color: #1087dd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:focus, -.btn-dropbox.focus { - color: #ffffff; - background-color: #0d6aad; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:hover { - color: #ffffff; - background-color: #0d6aad; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:active, -.btn-dropbox.active, -.open > .dropdown-toggle.btn-dropbox { - color: #ffffff; - background-color: #0d6aad; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:active, -.btn-dropbox.active, -.open > .dropdown-toggle.btn-dropbox { - background-image: none; -} -.btn-dropbox .badge { - color: #1087dd; - background-color: #ffffff; -} -.btn-facebook { - color: #ffffff; - background-color: #3b5998; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:focus, -.btn-facebook.focus { - color: #ffffff; - background-color: #2d4373; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:hover { - color: #ffffff; - background-color: #2d4373; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:active, -.btn-facebook.active, -.open > .dropdown-toggle.btn-facebook { - color: #ffffff; - background-color: #2d4373; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:active, -.btn-facebook.active, -.open > .dropdown-toggle.btn-facebook { - background-image: none; -} -.btn-facebook .badge { - color: #3b5998; - background-color: #ffffff; -} -.btn-flickr { - color: #ffffff; - background-color: #ff0084; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:focus, -.btn-flickr.focus { - color: #ffffff; - background-color: #cc006a; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:hover { - color: #ffffff; - background-color: #cc006a; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:active, -.btn-flickr.active, -.open > .dropdown-toggle.btn-flickr { - color: #ffffff; - background-color: #cc006a; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:active, -.btn-flickr.active, -.open > .dropdown-toggle.btn-flickr { - background-image: none; -} -.btn-flickr .badge { - color: #ff0084; - background-color: #ffffff; -} -.btn-foursquare { - color: #ffffff; - background-color: #f94877; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:focus, -.btn-foursquare.focus { - color: #ffffff; - background-color: #f71752; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:hover { - color: #ffffff; - background-color: #f71752; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:active, -.btn-foursquare.active, -.open > .dropdown-toggle.btn-foursquare { - color: #ffffff; - background-color: #f71752; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:active, -.btn-foursquare.active, -.open > .dropdown-toggle.btn-foursquare { - background-image: none; -} -.btn-foursquare .badge { - color: #f94877; - background-color: #ffffff; -} -.btn-github { - color: #ffffff; - background-color: #444444; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:focus, -.btn-github.focus { - color: #ffffff; - background-color: #2b2b2b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:hover { - color: #ffffff; - background-color: #2b2b2b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:active, -.btn-github.active, -.open > .dropdown-toggle.btn-github { - color: #ffffff; - background-color: #2b2b2b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:active, -.btn-github.active, -.open > .dropdown-toggle.btn-github { - background-image: none; -} -.btn-github .badge { - color: #444444; - background-color: #ffffff; -} -.btn-google { - color: #ffffff; - background-color: #dd4b39; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google:focus, -.btn-google.focus { - color: #ffffff; - background-color: #c23321; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google:hover { - color: #ffffff; - background-color: #c23321; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google:active, -.btn-google.active, -.open > .dropdown-toggle.btn-google { - color: #ffffff; - background-color: #c23321; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google:active, -.btn-google.active, -.open > .dropdown-toggle.btn-google { - background-image: none; -} -.btn-google .badge { - color: #dd4b39; - background-color: #ffffff; -} -.btn-instagram { - color: #ffffff; - background-color: #3f729b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:focus, -.btn-instagram.focus { - color: #ffffff; - background-color: #305777; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:hover { - color: #ffffff; - background-color: #305777; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:active, -.btn-instagram.active, -.open > .dropdown-toggle.btn-instagram { - color: #ffffff; - background-color: #305777; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:active, -.btn-instagram.active, -.open > .dropdown-toggle.btn-instagram { - background-image: none; -} -.btn-instagram .badge { - color: #3f729b; - background-color: #ffffff; -} -.btn-linkedin { - color: #ffffff; - background-color: #007bb6; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:focus, -.btn-linkedin.focus { - color: #ffffff; - background-color: #005983; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:hover { - color: #ffffff; - background-color: #005983; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:active, -.btn-linkedin.active, -.open > .dropdown-toggle.btn-linkedin { - color: #ffffff; - background-color: #005983; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:active, -.btn-linkedin.active, -.open > .dropdown-toggle.btn-linkedin { - background-image: none; -} -.btn-linkedin .badge { - color: #007bb6; - background-color: #ffffff; -} -.btn-microsoft { - color: #ffffff; - background-color: #2672ec; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-microsoft:focus, -.btn-microsoft.focus { - color: #ffffff; - background-color: #125acd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-microsoft:hover { - color: #ffffff; - background-color: #125acd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-microsoft:active, -.btn-microsoft.active, -.open > .dropdown-toggle.btn-microsoft { - color: #ffffff; - background-color: #125acd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-microsoft:active, -.btn-microsoft.active, -.open > .dropdown-toggle.btn-microsoft { - background-image: none; -} -.btn-microsoft .badge { - color: #2672ec; - background-color: #ffffff; -} -.btn-openid { - color: #ffffff; - background-color: #f7931e; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-openid:focus, -.btn-openid.focus { - color: #ffffff; - background-color: #da7908; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-openid:hover { - color: #ffffff; - background-color: #da7908; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-openid:active, -.btn-openid.active, -.open > .dropdown-toggle.btn-openid { - color: #ffffff; - background-color: #da7908; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-openid:active, -.btn-openid.active, -.open > .dropdown-toggle.btn-openid { - background-image: none; -} -.btn-openid .badge { - color: #f7931e; - background-color: #ffffff; -} -.btn-pinterest { - color: #ffffff; - background-color: #cb2027; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-pinterest:focus, -.btn-pinterest.focus { - color: #ffffff; - background-color: #9f191f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-pinterest:hover { - color: #ffffff; - background-color: #9f191f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-pinterest:active, -.btn-pinterest.active, -.open > .dropdown-toggle.btn-pinterest { - color: #ffffff; - background-color: #9f191f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-pinterest:active, -.btn-pinterest.active, -.open > .dropdown-toggle.btn-pinterest { - background-image: none; -} -.btn-pinterest .badge { - color: #cb2027; - background-color: #ffffff; -} -.btn-reddit { - color: #000000; - background-color: #eff7ff; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-reddit:focus, -.btn-reddit.focus { - color: #000000; - background-color: #bcddff; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-reddit:hover { - color: #000000; - background-color: #bcddff; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-reddit:active, -.btn-reddit.active, -.open > .dropdown-toggle.btn-reddit { - color: #000000; - background-color: #bcddff; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-reddit:active, -.btn-reddit.active, -.open > .dropdown-toggle.btn-reddit { - background-image: none; -} -.btn-reddit .badge { - color: #eff7ff; - background-color: #000000; -} -.btn-soundcloud { - color: #ffffff; - background-color: #ff5500; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-soundcloud:focus, -.btn-soundcloud.focus { - color: #ffffff; - background-color: #cc4400; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-soundcloud:hover { - color: #ffffff; - background-color: #cc4400; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-soundcloud:active, -.btn-soundcloud.active, -.open > .dropdown-toggle.btn-soundcloud { - color: #ffffff; - background-color: #cc4400; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-soundcloud:active, -.btn-soundcloud.active, -.open > .dropdown-toggle.btn-soundcloud { - background-image: none; -} -.btn-soundcloud .badge { - color: #ff5500; - background-color: #ffffff; -} -.btn-tumblr { - color: #ffffff; - background-color: #2c4762; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:focus, -.btn-tumblr.focus { - color: #ffffff; - background-color: #1c2d3f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:hover { - color: #ffffff; - background-color: #1c2d3f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:active, -.btn-tumblr.active, -.open > .dropdown-toggle.btn-tumblr { - color: #ffffff; - background-color: #1c2d3f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:active, -.btn-tumblr.active, -.open > .dropdown-toggle.btn-tumblr { - background-image: none; -} -.btn-tumblr .badge { - color: #2c4762; - background-color: #ffffff; -} -.btn-twitter { - color: #ffffff; - background-color: #55acee; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:focus, -.btn-twitter.focus { - color: #ffffff; - background-color: #2795e9; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:hover { - color: #ffffff; - background-color: #2795e9; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:active, -.btn-twitter.active, -.open > .dropdown-toggle.btn-twitter { - color: #ffffff; - background-color: #2795e9; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:active, -.btn-twitter.active, -.open > .dropdown-toggle.btn-twitter { - background-image: none; -} -.btn-twitter .badge { - color: #55acee; - background-color: #ffffff; -} -.btn-vimeo { - color: #ffffff; - background-color: #1ab7ea; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vimeo:focus, -.btn-vimeo.focus { - color: #ffffff; - background-color: #1295bf; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vimeo:hover { - color: #ffffff; - background-color: #1295bf; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vimeo:active, -.btn-vimeo.active, -.open > .dropdown-toggle.btn-vimeo { - color: #ffffff; - background-color: #1295bf; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vimeo:active, -.btn-vimeo.active, -.open > .dropdown-toggle.btn-vimeo { - background-image: none; -} -.btn-vimeo .badge { - color: #1ab7ea; - background-color: #ffffff; -} -.btn-vk { - color: #ffffff; - background-color: #587ea3; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:focus, -.btn-vk.focus { - color: #ffffff; - background-color: #466482; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:hover { - color: #ffffff; - background-color: #466482; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:active, -.btn-vk.active, -.open > .dropdown-toggle.btn-vk { - color: #ffffff; - background-color: #466482; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:active, -.btn-vk.active, -.open > .dropdown-toggle.btn-vk { - background-image: none; -} -.btn-vk .badge { - color: #587ea3; - background-color: #ffffff; -} -.btn-yahoo { - color: #ffffff; - background-color: #720e9e; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-yahoo:focus, -.btn-yahoo.focus { - color: #ffffff; - background-color: #500a6f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-yahoo:hover { - color: #ffffff; - background-color: #500a6f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-yahoo:active, -.btn-yahoo.active, -.open > .dropdown-toggle.btn-yahoo { - color: #ffffff; - background-color: #500a6f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-yahoo:active, -.btn-yahoo.active, -.open > .dropdown-toggle.btn-yahoo { - background-image: none; -} -.btn-yahoo .badge { - color: #720e9e; - background-color: #ffffff; -} -/* - * Plugin: Full Calendar - * --------------------- - */ -.fc-button { - background: #f4f4f4; - background-image: none; - color: #444; - border-color: #ddd; - border-bottom-color: #ddd; -} -.fc-button:hover, -.fc-button:active, -.fc-button.hover { - background-color: #e9e9e9; -} -.fc-header-title h2 { - font-size: 15px; - line-height: 1.6em; - color: #666; - margin-left: 10px; -} -.fc-header-right { - padding-right: 10px; -} -.fc-header-left { - padding-left: 10px; -} -.fc-widget-header { - background: #fafafa; -} -.fc-grid { - width: 100%; - border: 0; -} -.fc-widget-header:first-of-type, -.fc-widget-content:first-of-type { - border-left: 0; - border-right: 0; -} -.fc-widget-header:last-of-type, -.fc-widget-content:last-of-type { - border-right: 0; -} -.fc-toolbar { - padding: 10px; - margin: 0; -} -.fc-day-number { - font-size: 20px; - font-weight: 300; - padding-right: 10px; -} -.fc-color-picker { - list-style: none; - margin: 0; - padding: 0; -} -.fc-color-picker > li { - float: left; - font-size: 30px; - margin-right: 5px; - line-height: 30px; -} -.fc-color-picker > li .fa { - -webkit-transition: -webkit-transform linear 0.3s; - -moz-transition: -moz-transform linear 0.3s; - -o-transition: -o-transform linear 0.3s; - transition: transform linear 0.3s; -} -.fc-color-picker > li .fa:hover { - -webkit-transform: rotate(30deg); - -ms-transform: rotate(30deg); - -o-transform: rotate(30deg); - transform: rotate(30deg); -} -#add-new-event { - -webkit-transition: all linear 0.3s; - -o-transition: all linear 0.3s; - transition: all linear 0.3s; -} -.external-event { - padding: 5px 10px; - font-weight: bold; - margin-bottom: 4px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 3px; - cursor: move; -} -.external-event:hover { - box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2); -} -/* - * Plugin: Select2 - * --------------- - */ -.select2-container--default.select2-container--focus, -.select2-selection.select2-container--focus, -.select2-container--default:focus, -.select2-selection:focus, -.select2-container--default:active, -.select2-selection:active { - outline: none; -} -.select2-container--default .select2-selection--single, -.select2-selection .select2-selection--single { - border: 1px solid #d2d6de; - border-radius: 0; - padding: 6px 12px; - height: 34px; -} -.select2-container--default.select2-container--open { - border-color: #3c8dbc; -} -.select2-dropdown { - border: 1px solid #d2d6de; - border-radius: 0; -} -.select2-container--default .select2-results__option--highlighted[aria-selected] { - background-color: #3c8dbc; - color: white; -} -.select2-results__option { - padding: 6px 12px; - user-select: none; - -webkit-user-select: none; -} -.select2-container .select2-selection--single .select2-selection__rendered { - padding-left: 0; - padding-right: 0; - height: auto; - margin-top: -4px; -} -.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { - padding-right: 6px; - padding-left: 20px; -} -.select2-container--default .select2-selection--single .select2-selection__arrow { - height: 28px; - right: 3px; -} -.select2-container--default .select2-selection--single .select2-selection__arrow b { - margin-top: 0; -} -.select2-dropdown .select2-search__field, -.select2-search--inline .select2-search__field { - border: 1px solid #d2d6de; -} -.select2-dropdown .select2-search__field:focus, -.select2-search--inline .select2-search__field:focus { - outline: none; - border: 1px solid #3c8dbc; -} -.select2-container--default .select2-results__option[aria-disabled=true] { - color: #999; -} -.select2-container--default .select2-results__option[aria-selected=true] { - background-color: #ddd; -} -.select2-container--default .select2-results__option[aria-selected=true], -.select2-container--default .select2-results__option[aria-selected=true]:hover { - color: #444; -} -.select2-container--default .select2-selection--multiple { - border: 1px solid #d2d6de; - border-radius: 0; -} -.select2-container--default .select2-selection--multiple:focus { - border-color: #3c8dbc; -} -.select2-container--default.select2-container--focus .select2-selection--multiple { - border-color: #d2d6de; -} -.select2-container--default .select2-selection--multiple .select2-selection__choice { - background-color: #3c8dbc; - border-color: #367fa9; - padding: 1px 10px; - color: #fff; -} -.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { - margin-right: 5px; - color: rgba(255, 255, 255, 0.7); -} -.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #fff; -} -.select2-container .select2-selection--single .select2-selection__rendered { - padding-right: 10px; -} -/* - * General: Miscellaneous - * ---------------------- - */ -.pad { - padding: 10px; -} -.margin { - margin: 10px; -} -.margin-bottom { - margin-bottom: 20px; -} -.margin-bottom-none { - margin-bottom: 0; -} -.margin-r-5 { - margin-right: 5px; -} -.inline { - display: inline; -} -.description-block { - display: block; - margin: 10px 0; - text-align: center; -} -.description-block.margin-bottom { - margin-bottom: 25px; -} -.description-block > .description-header { - margin: 0; - padding: 0; - font-weight: 600; - font-size: 16px; -} -.description-block > .description-text { - text-transform: uppercase; -} -.bg-red, -.bg-yellow, -.bg-aqua, -.bg-blue, -.bg-light-blue, -.bg-green, -.bg-navy, -.bg-teal, -.bg-olive, -.bg-lime, -.bg-orange, -.bg-fuchsia, -.bg-purple, -.bg-maroon, -.bg-black, -.bg-red-active, -.bg-yellow-active, -.bg-aqua-active, -.bg-blue-active, -.bg-light-blue-active, -.bg-green-active, -.bg-navy-active, -.bg-teal-active, -.bg-olive-active, -.bg-lime-active, -.bg-orange-active, -.bg-fuchsia-active, -.bg-purple-active, -.bg-maroon-active, -.bg-black-active, -.callout.callout-danger, -.callout.callout-warning, -.callout.callout-info, -.callout.callout-success, -.alert-success, -.alert-danger, -.alert-error, -.alert-warning, -.alert-info, -.label-danger, -.label-info, -.label-warning, -.label-primary, -.label-success, -.modal-primary .modal-body, -.modal-primary .modal-header, -.modal-primary .modal-footer, -.modal-warning .modal-body, -.modal-warning .modal-header, -.modal-warning .modal-footer, -.modal-info .modal-body, -.modal-info .modal-header, -.modal-info .modal-footer, -.modal-success .modal-body, -.modal-success .modal-header, -.modal-success .modal-footer, -.modal-danger .modal-body, -.modal-danger .modal-header, -.modal-danger .modal-footer { - color: #fff !important; -} -.bg-gray { - color: #000; - background-color: #d2d6de !important; -} -.bg-gray-light { - background-color: #f7f7f7; -} -.bg-black { - background-color: #111111 !important; -} -.bg-red, -.callout.callout-danger, -.alert-danger, -.alert-error, -.label-danger, -.modal-danger .modal-body { - background-color: #dd4b39 !important; -} -.bg-yellow, -.callout.callout-warning, -.alert-warning, -.label-warning, -.modal-warning .modal-body { - background-color: #f39c12 !important; -} -.bg-aqua, -.callout.callout-info, -.alert-info, -.label-info, -.modal-info .modal-body { - background-color: #00c0ef !important; -} -.bg-blue { - background-color: #0073b7 !important; -} -.bg-light-blue, -.label-primary, -.modal-primary .modal-body { - background-color: #3c8dbc !important; -} -.bg-green, -.callout.callout-success, -.alert-success, -.label-success, -.modal-success .modal-body { - background-color: #00a65a !important; -} -.bg-navy { - background-color: #001f3f !important; -} -.bg-teal { - background-color: #39cccc !important; -} -.bg-olive { - background-color: #3d9970 !important; -} -.bg-lime { - background-color: #01ff70 !important; -} -.bg-orange { - background-color: #ff851b !important; -} -.bg-fuchsia { - background-color: #f012be !important; -} -.bg-purple { - background-color: #605ca8 !important; -} -.bg-maroon { - background-color: #d81b60 !important; -} -.bg-gray-active { - color: #000; - background-color: #b5bbc8 !important; -} -.bg-black-active { - background-color: #000000 !important; -} -.bg-red-active, -.modal-danger .modal-header, -.modal-danger .modal-footer { - background-color: #d33724 !important; -} -.bg-yellow-active, -.modal-warning .modal-header, -.modal-warning .modal-footer { - background-color: #db8b0b !important; -} -.bg-aqua-active, -.modal-info .modal-header, -.modal-info .modal-footer { - background-color: #00a7d0 !important; -} -.bg-blue-active { - background-color: #005384 !important; -} -.bg-light-blue-active, -.modal-primary .modal-header, -.modal-primary .modal-footer { - background-color: #357ca5 !important; -} -.bg-green-active, -.modal-success .modal-header, -.modal-success .modal-footer { - background-color: #008d4c !important; -} -.bg-navy-active { - background-color: #001a35 !important; -} -.bg-teal-active { - background-color: #30bbbb !important; -} -.bg-olive-active { - background-color: #368763 !important; -} -.bg-lime-active { - background-color: #00e765 !important; -} -.bg-orange-active { - background-color: #ff7701 !important; -} -.bg-fuchsia-active { - background-color: #db0ead !important; -} -.bg-purple-active { - background-color: #555299 !important; -} -.bg-maroon-active { - background-color: #ca195a !important; -} -[class^="bg-"].disabled { - opacity: 0.65; - filter: alpha(opacity=65); -} -.text-red { - color: #dd4b39 !important; -} -.text-yellow { - color: #f39c12 !important; -} -.text-aqua { - color: #00c0ef !important; -} -.text-blue { - color: #0073b7 !important; -} -.text-black { - color: #111111 !important; -} -.text-light-blue { - color: #3c8dbc !important; -} -.text-green { - color: #00a65a !important; -} -.text-gray { - color: #d2d6de !important; -} -.text-navy { - color: #001f3f !important; -} -.text-teal { - color: #39cccc !important; -} -.text-olive { - color: #3d9970 !important; -} -.text-lime { - color: #01ff70 !important; -} -.text-orange { - color: #ff851b !important; -} -.text-fuchsia { - color: #f012be !important; -} -.text-purple { - color: #605ca8 !important; -} -.text-maroon { - color: #d81b60 !important; -} -.link-muted { - color: #7a869d; -} -.link-muted:hover, -.link-muted:focus { - color: #606c84; -} -.link-black { - color: #666; -} -.link-black:hover, -.link-black:focus { - color: #999; -} -.hide { - display: none !important; -} -.no-border { - border: 0 !important; -} -.no-padding { - padding: 0 !important; -} -.no-margin { - margin: 0 !important; -} -.no-shadow { - box-shadow: none !important; -} -.list-unstyled, -.chart-legend, -.contacts-list, -.users-list, -.mailbox-attachments { - list-style: none; - margin: 0; - padding: 0; -} -.list-group-unbordered > .list-group-item { - border-left: 0; - border-right: 0; - border-radius: 0; - padding-left: 0; - padding-right: 0; -} -.flat { - border-radius: 0 !important; -} -.text-bold, -.text-bold.table td, -.text-bold.table th { - font-weight: 700; -} -.text-sm { - font-size: 12px; -} -.jqstooltip { - padding: 5px !important; - width: auto !important; - height: auto !important; -} -.bg-teal-gradient { - background: #39cccc !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important; - background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important; - background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important; - background: -o-linear-gradient(#7adddd, #39cccc) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important; - color: #fff; -} -.bg-light-blue-gradient { - background: #3c8dbc !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important; - background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important; - background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important; - background: -o-linear-gradient(#67a8ce, #3c8dbc) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important; - color: #fff; -} -.bg-blue-gradient { - background: #0073b7 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important; - background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important; - background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important; - background: -o-linear-gradient(#0089db, #0073b7) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important; - color: #fff; -} -.bg-aqua-gradient { - background: #00c0ef !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important; - background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important; - background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important; - background: -o-linear-gradient(#14d1ff, #00c0ef) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important; - color: #fff; -} -.bg-yellow-gradient { - background: #f39c12 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important; - background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important; - background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important; - background: -o-linear-gradient(#f7bc60, #f39c12) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important; - color: #fff; -} -.bg-purple-gradient { - background: #605ca8 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important; - background: -ms-linear-gradient(bottom, #605ca8, #9491c4) !important; - background: -moz-linear-gradient(center bottom, #605ca8 0%, #9491c4 100%) !important; - background: -o-linear-gradient(#9491c4, #605ca8) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important; - color: #fff; -} -.bg-green-gradient { - background: #00a65a !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important; - background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important; - background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important; - background: -o-linear-gradient(#00ca6d, #00a65a) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important; - color: #fff; -} -.bg-red-gradient { - background: #dd4b39 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important; - background: -ms-linear-gradient(bottom, #dd4b39, #e47365) !important; - background: -moz-linear-gradient(center bottom, #dd4b39 0%, #e47365 100%) !important; - background: -o-linear-gradient(#e47365, #dd4b39) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important; - color: #fff; -} -.bg-black-gradient { - background: #111111 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #111111), color-stop(1, #2b2b2b)) !important; - background: -ms-linear-gradient(bottom, #111111, #2b2b2b) !important; - background: -moz-linear-gradient(center bottom, #111111 0%, #2b2b2b 100%) !important; - background: -o-linear-gradient(#2b2b2b, #111111) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important; - color: #fff; -} -.bg-maroon-gradient { - background: #d81b60 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important; - background: -ms-linear-gradient(bottom, #d81b60, #e73f7c) !important; - background: -moz-linear-gradient(center bottom, #d81b60 0%, #e73f7c 100%) !important; - background: -o-linear-gradient(#e73f7c, #d81b60) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important; - color: #fff; -} -.description-block .description-icon { - font-size: 16px; -} -.no-pad-top { - padding-top: 0; -} -.position-static { - position: static !important; -} -.list-header { - font-size: 15px; - padding: 10px 4px; - font-weight: bold; - color: #666; -} -.list-seperator { - height: 1px; - background: #f4f4f4; - margin: 15px 0 9px 0; -} -.list-link > a { - padding: 4px; - color: #777; -} -.list-link > a:hover { - color: #222; -} -.font-light { - font-weight: 300; -} -.user-block:before, -.user-block:after { - content: " "; - display: table; -} -.user-block:after { - clear: both; -} -.user-block img { - width: 40px; - height: 40px; - float: left; -} -.user-block .username, -.user-block .description, -.user-block .comment { - display: block; - margin-left: 50px; -} -.user-block .username { - font-size: 16px; - font-weight: 600; -} -.user-block .description { - color: #999; - font-size: 13px; -} -.user-block.user-block-sm .username, -.user-block.user-block-sm .description, -.user-block.user-block-sm .comment { - margin-left: 40px; -} -.user-block.user-block-sm .username { - font-size: 14px; -} -.img-sm, -.img-md, -.img-lg, -.box-comments .box-comment img, -.user-block.user-block-sm img { - float: left; -} -.img-sm, -.box-comments .box-comment img, -.user-block.user-block-sm img { - width: 30px !important; - height: 30px !important; -} -.img-sm + .img-push { - margin-left: 40px; -} -.img-md { - width: 60px; - height: 60px; -} -.img-md + .img-push { - margin-left: 70px; -} -.img-lg { - width: 100px; - height: 100px; -} -.img-lg + .img-push { - margin-left: 110px; -} -.img-bordered { - border: 3px solid #d2d6de; - padding: 3px; -} -.img-bordered-sm { - border: 2px solid #d2d6de; - padding: 2px; -} -.attachment-block { - border: 1px solid #f4f4f4; - padding: 5px; - margin-bottom: 10px; - background: #f7f7f7; -} -.attachment-block .attachment-img { - max-width: 100px; - max-height: 100px; - height: auto; - float: left; -} -.attachment-block .attachment-pushed { - margin-left: 110px; -} -.attachment-block .attachment-heading { - margin: 0; -} -.attachment-block .attachment-text { - color: #555; -} -.connectedSortable { - min-height: 100px; -} -.ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.sort-highlight { - background: #f4f4f4; - border: 1px dashed #ddd; - margin-bottom: 10px; -} -.full-opacity-hover { - opacity: 0.65; - filter: alpha(opacity=65); -} -.full-opacity-hover:hover { - opacity: 1; - filter: alpha(opacity=100); -} -.chart { - position: relative; - overflow: hidden; - width: 100%; -} -.chart svg, -.chart canvas { - width: 100% !important; -} -/* - * Misc: print - * ----------- - */ -@media print { - .no-print, - .main-sidebar, - .left-side, - .main-header, - .content-header { - display: none !important; - } - .content-wrapper, - .right-side, - .main-footer { - margin-left: 0 !important; - min-height: 0 !important; - -webkit-transform: translate(0, 0) !important; - -ms-transform: translate(0, 0) !important; - -o-transform: translate(0, 0) !important; - transform: translate(0, 0) !important; - } - .fixed .content-wrapper, - .fixed .right-side { - padding-top: 0 !important; - } - .invoice { - width: 100%; - border: 0; - margin: 0; - padding: 0; - } - .invoice-col { - float: left; - width: 33.3333333%; - } - .table-responsive { - overflow: auto; - } - .table-responsive > .table tr th, - .table-responsive > .table tr td { - white-space: normal !important; - } -} -.timeline { - position: relative; - padding: 20px 0 20px; - list-style: none; -} - -.timeline:before { - content: " "; - position: absolute; - top: 0; - bottom: 0; - left: 50%; - width: 3px; - margin-left: -1.5px; - background-color: #eeeeee; -} - -.timeline > li { - position: relative; - margin-bottom: 20px; -} - -.timeline > li:before, -.timeline > li:after { - content: " "; - display: table; -} - -.timeline > li:after { - clear: both; -} - -.timeline > li:before, -.timeline > li:after { - content: " "; - display: table; -} - -.timeline > li:after { - clear: both; -} - -.timeline > li > .timeline-panel { - float: left; - position: relative; - width: 46%; - padding: 20px; - border: 1px solid #d4d4d4; - border-radius: 2px; - -webkit-box-shadow: 0 1px 6px rgba(0,0,0,0.175); - box-shadow: 0 1px 6px rgba(0,0,0,0.175); -} - -.timeline > li > .timeline-panel:before { - content: " "; - display: inline-block; - position: absolute; - top: 26px; - right: -15px; - border-top: 15px solid transparent; - border-right: 0 solid #ccc; - border-bottom: 15px solid transparent; - border-left: 15px solid #ccc; -} - -.timeline > li > .timeline-panel:after { - content: " "; - display: inline-block; - position: absolute; - top: 27px; - right: -14px; - border-top: 14px solid transparent; - border-right: 0 solid #fff; - border-bottom: 14px solid transparent; - border-left: 14px solid #fff; -} - -.timeline > li > .timeline-badge { - z-index: 100; - position: absolute; - top: 16px; - left: 50%; - width: 50px; - height: 50px; - margin-left: -25px; - border-radius: 50% 50% 50% 50%; - text-align: center; - font-size: 1.4em; - line-height: 50px; - color: #fff; - background-color: #999999; -} - -.timeline > li.timeline-inverted > .timeline-panel { - float: right; -} - -.timeline > li.timeline-inverted > .timeline-panel:before { - right: auto; - left: -15px; - border-right-width: 15px; - border-left-width: 0; -} - -.timeline > li.timeline-inverted > .timeline-panel:after { - right: auto; - left: -14px; - border-right-width: 14px; - border-left-width: 0; -} - -.timeline-badge.primary { - background-color: #2e6da4 !important; -} - -.timeline-badge.success { - background-color: #3f903f !important; -} - -.timeline-badge.warning { - background-color: #f0ad4e !important; -} - -.timeline-badge.danger { - background-color: #d9534f !important; -} - -.timeline-badge.info { - background-color: #5bc0de !important; -} - -.timeline-title { - margin-top: 0; - color: inherit; -} - -.timeline-body > p, -.timeline-body > ul { - margin-bottom: 0; -} - -.timeline-body > p + p { - margin-top: 5px; -} - -@media(max-width:767px) { - ul.timeline:before { - left: 40px; - } - - ul.timeline > li > .timeline-panel { - width: calc(100% - 90px); - width: -moz-calc(100% - 90px); - width: -webkit-calc(100% - 90px); - } - - ul.timeline > li > .timeline-badge { - top: 16px; - left: 15px; - margin-left: 0; - } - - ul.timeline > li > .timeline-panel { - float: right; - } - - ul.timeline > li > .timeline-panel:before { - right: auto; - left: -15px; - border-right-width: 15px; - border-left-width: 0; - } - - ul.timeline > li > .timeline-panel:after { - right: auto; - left: -14px; - border-right-width: 14px; - border-left-width: 0; - } -} - -/*# sourceMappingURL=app.css.map*/ \ No newline at end of file diff --git a/public/app.css.map b/public/app.css.map deleted file mode 100644 index a28e4d9..0000000 --- a/public/app.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["node_modules/bootstrap-solarized/bootstrap-solarized-dark.css","app/stylesheets/app.css","app/stylesheets/flags.css","app/stylesheets/font-awesome.min.css","app/stylesheets/perfect-scrollbar.min.css","app/stylesheets/skin.css","app/stylesheets/slider.min.css","app/stylesheets/theme.css","app/stylesheets/timeline.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpoLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnQA;AACA;AACA;AACA;ACHA;AACA;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9IA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxyJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"public/app.css","sourcesContent":["/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\r\nhtml {\r\n font-family: sans-serif;\r\n -ms-text-size-adjust: 100%;\r\n -webkit-text-size-adjust: 100%;\r\n}\r\nbody {\r\n margin: 0;\r\n}\r\narticle,\r\naside,\r\ndetails,\r\nfigcaption,\r\nfigure,\r\nfooter,\r\nheader,\r\nhgroup,\r\nmain,\r\nnav,\r\nsection,\r\nsummary {\r\n display: block;\r\n}\r\naudio,\r\ncanvas,\r\nprogress,\r\nvideo {\r\n display: inline-block;\r\n vertical-align: baseline;\r\n}\r\naudio:not([controls]) {\r\n display: none;\r\n height: 0;\r\n}\r\n[hidden],\r\ntemplate {\r\n display: none;\r\n}\r\na {\r\n background: transparent;\r\n}\r\na:active,\r\na:hover {\r\n outline: 0;\r\n}\r\nabbr[title] {\r\n border-bottom: 1px dotted;\r\n}\r\nb,\r\nstrong {\r\n font-weight: bold;\r\n}\r\ndfn {\r\n font-style: italic;\r\n}\r\nh1 {\r\n font-size: 2em;\r\n margin: 0.67em 0;\r\n}\r\nmark {\r\n background: #ff0;\r\n color: #000;\r\n}\r\nsmall {\r\n font-size: 80%;\r\n}\r\nsub,\r\nsup {\r\n font-size: 75%;\r\n line-height: 0;\r\n position: relative;\r\n vertical-align: baseline;\r\n}\r\nsup {\r\n top: -0.5em;\r\n}\r\nsub {\r\n bottom: -0.25em;\r\n}\r\nimg {\r\n border: 0;\r\n}\r\nsvg:not(:root) {\r\n overflow: hidden;\r\n}\r\nfigure {\r\n margin: 1em 40px;\r\n}\r\nhr {\r\n -moz-box-sizing: content-box;\r\n box-sizing: content-box;\r\n height: 0;\r\n}\r\npre {\r\n overflow: auto;\r\n}\r\ncode,\r\nkbd,\r\npre,\r\nsamp {\r\n font-family: monospace, monospace;\r\n font-size: 1em;\r\n}\r\nbutton,\r\ninput,\r\noptgroup,\r\nselect,\r\ntextarea {\r\n color: inherit;\r\n font: inherit;\r\n margin: 0;\r\n}\r\nbutton {\r\n overflow: visible;\r\n}\r\nbutton,\r\nselect {\r\n text-transform: none;\r\n}\r\nbutton,\r\nhtml input[type=\"button\"],\r\ninput[type=\"reset\"],\r\ninput[type=\"submit\"] {\r\n -webkit-appearance: button;\r\n cursor: pointer;\r\n}\r\nbutton[disabled],\r\nhtml input[disabled] {\r\n cursor: default;\r\n}\r\nbutton::-moz-focus-inner,\r\ninput::-moz-focus-inner {\r\n border: 0;\r\n padding: 0;\r\n}\r\ninput {\r\n line-height: normal;\r\n}\r\ninput[type=\"checkbox\"],\r\ninput[type=\"radio\"] {\r\n box-sizing: border-box;\r\n padding: 0;\r\n}\r\ninput[type=\"number\"]::-webkit-inner-spin-button,\r\ninput[type=\"number\"]::-webkit-outer-spin-button {\r\n height: auto;\r\n}\r\ninput[type=\"search\"] {\r\n -webkit-appearance: textfield;\r\n -moz-box-sizing: content-box;\r\n -webkit-box-sizing: content-box;\r\n box-sizing: content-box;\r\n}\r\ninput[type=\"search\"]::-webkit-search-cancel-button,\r\ninput[type=\"search\"]::-webkit-search-decoration {\r\n -webkit-appearance: none;\r\n}\r\nfieldset {\r\n border: 1px solid #c0c0c0;\r\n margin: 0 2px;\r\n padding: 0.35em 0.625em 0.75em;\r\n}\r\nlegend {\r\n border: 0;\r\n padding: 0;\r\n}\r\ntextarea {\r\n overflow: auto;\r\n}\r\noptgroup {\r\n font-weight: bold;\r\n}\r\ntable {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n}\r\ntd,\r\nth {\r\n padding: 0;\r\n}\r\n@media print {\r\n * {\r\n text-shadow: none !important;\r\n color: #000 !important;\r\n background: transparent !important;\r\n box-shadow: none !important;\r\n }\r\n a,\r\n a:visited {\r\n text-decoration: underline;\r\n }\r\n a[href]:after {\r\n content: \" (\" attr(href) \")\";\r\n }\r\n abbr[title]:after {\r\n content: \" (\" attr(title) \")\";\r\n }\r\n a[href^=\"javascript:\"]:after,\r\n a[href^=\"#\"]:after {\r\n content: \"\";\r\n }\r\n pre,\r\n blockquote {\r\n border: 1px solid #999;\r\n page-break-inside: avoid;\r\n }\r\n thead {\r\n display: table-header-group;\r\n }\r\n tr,\r\n img {\r\n page-break-inside: avoid;\r\n }\r\n img {\r\n max-width: 100% !important;\r\n }\r\n p,\r\n h2,\r\n h3 {\r\n orphans: 3;\r\n widows: 3;\r\n }\r\n h2,\r\n h3 {\r\n page-break-after: avoid;\r\n }\r\n select {\r\n background: #fff !important;\r\n }\r\n .navbar {\r\n display: none;\r\n }\r\n .table td,\r\n .table th {\r\n background-color: #fff !important;\r\n }\r\n .btn > .caret,\r\n .dropup > .btn > .caret {\r\n border-top-color: #000 !important;\r\n }\r\n .label {\r\n border: 1px solid #000;\r\n }\r\n .table {\r\n border-collapse: collapse !important;\r\n }\r\n .table-bordered th,\r\n .table-bordered td {\r\n border: 1px solid #ddd !important;\r\n }\r\n}\r\n* {\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n*:before,\r\n*:after {\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\nhtml {\r\n font-size: 62.5%;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n}\r\nbody {\r\n font-family: 'Helvetica Neue', Helvetica, Arial;\r\n font-size: 14px;\r\n line-height: 1.428571429;\r\n color: #839496;\r\n background-color: #002b36;\r\n}\r\ninput,\r\nbutton,\r\nselect,\r\ntextarea {\r\n font-family: inherit;\r\n font-size: inherit;\r\n line-height: inherit;\r\n}\r\na {\r\n color: #428bca;\r\n text-decoration: none;\r\n}\r\na:hover,\r\na:focus {\r\n color: #2a6496;\r\n text-decoration: underline;\r\n}\r\na:focus {\r\n outline: thin dotted;\r\n outline: 5px auto -webkit-focus-ring-color;\r\n outline-offset: -2px;\r\n}\r\nfigure {\r\n margin: 0;\r\n}\r\nimg {\r\n vertical-align: middle;\r\n}\r\n.img-responsive,\r\n.thumbnail > img,\r\n.thumbnail a > img,\r\n.carousel-inner > .item > img,\r\n.carousel-inner > .item > a > img {\r\n display: block;\r\n max-width: 100%;\r\n height: auto;\r\n}\r\n.img-rounded {\r\n border-radius: 6px;\r\n}\r\n.img-thumbnail {\r\n padding: 4px;\r\n line-height: 1.428571429;\r\n background-color: #002b36;\r\n border: 1px solid #dddddd;\r\n border-radius: 4px;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n display: inline-block;\r\n max-width: 100%;\r\n height: auto;\r\n}\r\n.img-circle {\r\n border-radius: 50%;\r\n}\r\nhr {\r\n margin-top: 20px;\r\n margin-bottom: 20px;\r\n border: 0;\r\n border-top: 1px solid #657b83;\r\n}\r\n.sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n margin: -1px;\r\n padding: 0;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n border: 0;\r\n}\r\nh1,\r\nh2,\r\nh3,\r\nh4,\r\nh5,\r\nh6,\r\n.h1,\r\n.h2,\r\n.h3,\r\n.h4,\r\n.h5,\r\n.h6 {\r\n font-family: \"HelveticaNeue-CondensedBold\", \"Helvetica Neue\", \"Arial Narrow\", Arial, sans-serif;\r\n font-weight: 500;\r\n line-height: 1.1;\r\n color: #93a1a1;\r\n}\r\nh1 small,\r\nh2 small,\r\nh3 small,\r\nh4 small,\r\nh5 small,\r\nh6 small,\r\n.h1 small,\r\n.h2 small,\r\n.h3 small,\r\n.h4 small,\r\n.h5 small,\r\n.h6 small,\r\nh1 .small,\r\nh2 .small,\r\nh3 .small,\r\nh4 .small,\r\nh5 .small,\r\nh6 .small,\r\n.h1 .small,\r\n.h2 .small,\r\n.h3 .small,\r\n.h4 .small,\r\n.h5 .small,\r\n.h6 .small {\r\n font-weight: normal;\r\n line-height: 1;\r\n color: #eee8d5;\r\n}\r\nh1,\r\n.h1,\r\nh2,\r\n.h2,\r\nh3,\r\n.h3 {\r\n margin-top: 20px;\r\n margin-bottom: 10px;\r\n}\r\nh1 small,\r\n.h1 small,\r\nh2 small,\r\n.h2 small,\r\nh3 small,\r\n.h3 small,\r\nh1 .small,\r\n.h1 .small,\r\nh2 .small,\r\n.h2 .small,\r\nh3 .small,\r\n.h3 .small {\r\n font-size: 65%;\r\n}\r\nh4,\r\n.h4,\r\nh5,\r\n.h5,\r\nh6,\r\n.h6 {\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n}\r\nh4 small,\r\n.h4 small,\r\nh5 small,\r\n.h5 small,\r\nh6 small,\r\n.h6 small,\r\nh4 .small,\r\n.h4 .small,\r\nh5 .small,\r\n.h5 .small,\r\nh6 .small,\r\n.h6 .small {\r\n font-size: 75%;\r\n}\r\nh1,\r\n.h1 {\r\n font-size: 36px;\r\n}\r\nh2,\r\n.h2 {\r\n font-size: 30px;\r\n}\r\nh3,\r\n.h3 {\r\n font-size: 23px;\r\n}\r\nh4,\r\n.h4 {\r\n font-size: 17px;\r\n}\r\nh5,\r\n.h5 {\r\n font-size: 14px;\r\n}\r\nh6,\r\n.h6 {\r\n font-size: 11px;\r\n}\r\np {\r\n margin: 0 0 10px;\r\n}\r\n.lead {\r\n margin-bottom: 20px;\r\n font-size: 16px;\r\n font-weight: 200;\r\n line-height: 1.4;\r\n}\r\n@media (min-width: 768px) {\r\n .lead {\r\n font-size: 21px;\r\n }\r\n}\r\nsmall,\r\n.small {\r\n font-size: 85%;\r\n}\r\ncite {\r\n font-style: normal;\r\n}\r\n.text-left {\r\n text-align: left;\r\n}\r\n.text-right {\r\n text-align: right;\r\n}\r\n.text-center {\r\n text-align: center;\r\n}\r\n.text-justify {\r\n text-align: justify;\r\n}\r\n.text-muted {\r\n color: #eee8d5;\r\n}\r\n.text-primary {\r\n color: #428bca;\r\n}\r\na.text-primary:hover {\r\n color: #3071a9;\r\n}\r\n.text-success {\r\n color: #468847;\r\n}\r\na.text-success:hover {\r\n color: #356635;\r\n}\r\n.text-info {\r\n color: #3a87ad;\r\n}\r\na.text-info:hover {\r\n color: #2d6987;\r\n}\r\n.text-warning {\r\n color: #c09853;\r\n}\r\na.text-warning:hover {\r\n color: #a47e3c;\r\n}\r\n.text-danger {\r\n color: #b94a48;\r\n}\r\na.text-danger:hover {\r\n color: #953b39;\r\n}\r\n.bg-primary {\r\n color: #fff;\r\n background-color: #428bca;\r\n}\r\na.bg-primary:hover {\r\n background-color: #3071a9;\r\n}\r\n.bg-success {\r\n background-color: #dff0d8;\r\n}\r\na.bg-success:hover {\r\n background-color: #c1e2b3;\r\n}\r\n.bg-info {\r\n background-color: #d9edf7;\r\n}\r\na.bg-info:hover {\r\n background-color: #afd9ee;\r\n}\r\n.bg-warning {\r\n background-color: #fcf8e3;\r\n}\r\na.bg-warning:hover {\r\n background-color: #f7ecb5;\r\n}\r\n.bg-danger {\r\n background-color: #f2dede;\r\n}\r\na.bg-danger:hover {\r\n background-color: #e4b9b9;\r\n}\r\n.page-header {\r\n padding-bottom: 9px;\r\n margin: 40px 0 20px;\r\n border-bottom: 1px solid #586e75;\r\n}\r\nul,\r\nol {\r\n margin-top: 0;\r\n margin-bottom: 10px;\r\n}\r\nul ul,\r\nol ul,\r\nul ol,\r\nol ol {\r\n margin-bottom: 0;\r\n}\r\n.list-unstyled {\r\n padding-left: 0;\r\n list-style: none;\r\n}\r\n.list-inline {\r\n padding-left: 0;\r\n list-style: none;\r\n}\r\n.list-inline > li {\r\n display: inline-block;\r\n padding-left: 5px;\r\n padding-right: 5px;\r\n}\r\n.list-inline > li:first-child {\r\n padding-left: 0;\r\n}\r\ndl {\r\n margin-top: 0;\r\n margin-bottom: 20px;\r\n}\r\ndt,\r\ndd {\r\n line-height: 1.428571429;\r\n}\r\ndt {\r\n font-weight: bold;\r\n}\r\ndd {\r\n margin-left: 0;\r\n}\r\n@media (min-width: 768px) {\r\n .dl-horizontal dt {\r\n float: left;\r\n width: 160px;\r\n clear: left;\r\n text-align: right;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n .dl-horizontal dd {\r\n margin-left: 180px;\r\n }\r\n}\r\nabbr[title],\r\nabbr[data-original-title] {\r\n cursor: help;\r\n border-bottom: 1px dotted #eee8d5;\r\n}\r\n.initialism {\r\n font-size: 90%;\r\n text-transform: uppercase;\r\n}\r\nblockquote {\r\n padding: 10px 20px;\r\n margin: 0 0 20px;\r\n font-size: 17.5px;\r\n border-left: 5px solid #586e75;\r\n}\r\nblockquote p:last-child,\r\nblockquote ul:last-child,\r\nblockquote ol:last-child {\r\n margin-bottom: 0;\r\n}\r\nblockquote footer,\r\nblockquote small,\r\nblockquote .small {\r\n display: block;\r\n font-size: 80%;\r\n line-height: 1.428571429;\r\n color: #eee8d5;\r\n}\r\nblockquote footer:before,\r\nblockquote small:before,\r\nblockquote .small:before {\r\n content: '\\2014 \\00A0';\r\n}\r\n.blockquote-reverse,\r\nblockquote.pull-right {\r\n padding-right: 15px;\r\n padding-left: 0;\r\n border-right: 5px solid #586e75;\r\n border-left: 0;\r\n text-align: right;\r\n}\r\n.blockquote-reverse footer:before,\r\nblockquote.pull-right footer:before,\r\n.blockquote-reverse small:before,\r\nblockquote.pull-right small:before,\r\n.blockquote-reverse .small:before,\r\nblockquote.pull-right .small:before {\r\n content: '';\r\n}\r\n.blockquote-reverse footer:after,\r\nblockquote.pull-right footer:after,\r\n.blockquote-reverse small:after,\r\nblockquote.pull-right small:after,\r\n.blockquote-reverse .small:after,\r\nblockquote.pull-right .small:after {\r\n content: '\\00A0 \\2014';\r\n}\r\nblockquote:before,\r\nblockquote:after {\r\n content: \"\";\r\n}\r\naddress {\r\n margin-bottom: 20px;\r\n font-style: normal;\r\n line-height: 1.428571429;\r\n}\r\ncode,\r\nkbd,\r\npre,\r\nsamp {\r\n font-family: Monaco;\r\n}\r\ncode {\r\n padding: 2px 4px;\r\n font-size: 90%;\r\n color: #d33682;\r\n background-color: #073642;\r\n white-space: nowrap;\r\n border-radius: 4px;\r\n}\r\nkbd {\r\n padding: 2px 4px;\r\n font-size: 90%;\r\n color: #ffffff;\r\n background-color: #333333;\r\n border-radius: 3px;\r\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\r\n}\r\npre {\r\n display: block;\r\n padding: 9.5px;\r\n margin: 0 0 10px;\r\n font-size: 13px;\r\n line-height: 1.428571429;\r\n word-break: break-all;\r\n word-wrap: break-word;\r\n color: #586e75;\r\n background-color: #f5f5f5;\r\n border: 1px solid #cccccc;\r\n border-radius: 4px;\r\n}\r\npre code {\r\n padding: 0;\r\n font-size: inherit;\r\n color: inherit;\r\n white-space: pre-wrap;\r\n background-color: transparent;\r\n border-radius: 0;\r\n}\r\n.pre-scrollable {\r\n max-height: 340px;\r\n overflow-y: scroll;\r\n}\r\n.container {\r\n margin-right: auto;\r\n margin-left: auto;\r\n padding-left: 15px;\r\n padding-right: 15px;\r\n}\r\n@media (min-width: 768px) {\r\n .container {\r\n width: 750px;\r\n }\r\n}\r\n@media (min-width: 992px) {\r\n .container {\r\n width: 970px;\r\n }\r\n}\r\n@media (min-width: 1200px) {\r\n .container {\r\n width: 1170px;\r\n }\r\n}\r\n.container-fluid {\r\n margin-right: auto;\r\n margin-left: auto;\r\n padding-left: 15px;\r\n padding-right: 15px;\r\n}\r\n.row {\r\n margin-left: -15px;\r\n margin-right: -15px;\r\n}\r\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\r\n position: relative;\r\n min-height: 1px;\r\n padding-left: 15px;\r\n padding-right: 15px;\r\n}\r\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\r\n float: left;\r\n}\r\n.col-xs-12 {\r\n width: 100%;\r\n}\r\n.col-xs-11 {\r\n width: 91.66666666666666%;\r\n}\r\n.col-xs-10 {\r\n width: 83.33333333333334%;\r\n}\r\n.col-xs-9 {\r\n width: 75%;\r\n}\r\n.col-xs-8 {\r\n width: 66.66666666666666%;\r\n}\r\n.col-xs-7 {\r\n width: 58.333333333333336%;\r\n}\r\n.col-xs-6 {\r\n width: 50%;\r\n}\r\n.col-xs-5 {\r\n width: 41.66666666666667%;\r\n}\r\n.col-xs-4 {\r\n width: 33.33333333333333%;\r\n}\r\n.col-xs-3 {\r\n width: 25%;\r\n}\r\n.col-xs-2 {\r\n width: 16.666666666666664%;\r\n}\r\n.col-xs-1 {\r\n width: 8.333333333333332%;\r\n}\r\n.col-xs-pull-12 {\r\n right: 100%;\r\n}\r\n.col-xs-pull-11 {\r\n right: 91.66666666666666%;\r\n}\r\n.col-xs-pull-10 {\r\n right: 83.33333333333334%;\r\n}\r\n.col-xs-pull-9 {\r\n right: 75%;\r\n}\r\n.col-xs-pull-8 {\r\n right: 66.66666666666666%;\r\n}\r\n.col-xs-pull-7 {\r\n right: 58.333333333333336%;\r\n}\r\n.col-xs-pull-6 {\r\n right: 50%;\r\n}\r\n.col-xs-pull-5 {\r\n right: 41.66666666666667%;\r\n}\r\n.col-xs-pull-4 {\r\n right: 33.33333333333333%;\r\n}\r\n.col-xs-pull-3 {\r\n right: 25%;\r\n}\r\n.col-xs-pull-2 {\r\n right: 16.666666666666664%;\r\n}\r\n.col-xs-pull-1 {\r\n right: 8.333333333333332%;\r\n}\r\n.col-xs-pull-0 {\r\n right: 0%;\r\n}\r\n.col-xs-push-12 {\r\n left: 100%;\r\n}\r\n.col-xs-push-11 {\r\n left: 91.66666666666666%;\r\n}\r\n.col-xs-push-10 {\r\n left: 83.33333333333334%;\r\n}\r\n.col-xs-push-9 {\r\n left: 75%;\r\n}\r\n.col-xs-push-8 {\r\n left: 66.66666666666666%;\r\n}\r\n.col-xs-push-7 {\r\n left: 58.333333333333336%;\r\n}\r\n.col-xs-push-6 {\r\n left: 50%;\r\n}\r\n.col-xs-push-5 {\r\n left: 41.66666666666667%;\r\n}\r\n.col-xs-push-4 {\r\n left: 33.33333333333333%;\r\n}\r\n.col-xs-push-3 {\r\n left: 25%;\r\n}\r\n.col-xs-push-2 {\r\n left: 16.666666666666664%;\r\n}\r\n.col-xs-push-1 {\r\n left: 8.333333333333332%;\r\n}\r\n.col-xs-push-0 {\r\n left: 0%;\r\n}\r\n.col-xs-offset-12 {\r\n margin-left: 100%;\r\n}\r\n.col-xs-offset-11 {\r\n margin-left: 91.66666666666666%;\r\n}\r\n.col-xs-offset-10 {\r\n margin-left: 83.33333333333334%;\r\n}\r\n.col-xs-offset-9 {\r\n margin-left: 75%;\r\n}\r\n.col-xs-offset-8 {\r\n margin-left: 66.66666666666666%;\r\n}\r\n.col-xs-offset-7 {\r\n margin-left: 58.333333333333336%;\r\n}\r\n.col-xs-offset-6 {\r\n margin-left: 50%;\r\n}\r\n.col-xs-offset-5 {\r\n margin-left: 41.66666666666667%;\r\n}\r\n.col-xs-offset-4 {\r\n margin-left: 33.33333333333333%;\r\n}\r\n.col-xs-offset-3 {\r\n margin-left: 25%;\r\n}\r\n.col-xs-offset-2 {\r\n margin-left: 16.666666666666664%;\r\n}\r\n.col-xs-offset-1 {\r\n margin-left: 8.333333333333332%;\r\n}\r\n.col-xs-offset-0 {\r\n margin-left: 0%;\r\n}\r\n@media (min-width: 768px) {\r\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\r\n float: left;\r\n }\r\n .col-sm-12 {\r\n width: 100%;\r\n }\r\n .col-sm-11 {\r\n width: 91.66666666666666%;\r\n }\r\n .col-sm-10 {\r\n width: 83.33333333333334%;\r\n }\r\n .col-sm-9 {\r\n width: 75%;\r\n }\r\n .col-sm-8 {\r\n width: 66.66666666666666%;\r\n }\r\n .col-sm-7 {\r\n width: 58.333333333333336%;\r\n }\r\n .col-sm-6 {\r\n width: 50%;\r\n }\r\n .col-sm-5 {\r\n width: 41.66666666666667%;\r\n }\r\n .col-sm-4 {\r\n width: 33.33333333333333%;\r\n }\r\n .col-sm-3 {\r\n width: 25%;\r\n }\r\n .col-sm-2 {\r\n width: 16.666666666666664%;\r\n }\r\n .col-sm-1 {\r\n width: 8.333333333333332%;\r\n }\r\n .col-sm-pull-12 {\r\n right: 100%;\r\n }\r\n .col-sm-pull-11 {\r\n right: 91.66666666666666%;\r\n }\r\n .col-sm-pull-10 {\r\n right: 83.33333333333334%;\r\n }\r\n .col-sm-pull-9 {\r\n right: 75%;\r\n }\r\n .col-sm-pull-8 {\r\n right: 66.66666666666666%;\r\n }\r\n .col-sm-pull-7 {\r\n right: 58.333333333333336%;\r\n }\r\n .col-sm-pull-6 {\r\n right: 50%;\r\n }\r\n .col-sm-pull-5 {\r\n right: 41.66666666666667%;\r\n }\r\n .col-sm-pull-4 {\r\n right: 33.33333333333333%;\r\n }\r\n .col-sm-pull-3 {\r\n right: 25%;\r\n }\r\n .col-sm-pull-2 {\r\n right: 16.666666666666664%;\r\n }\r\n .col-sm-pull-1 {\r\n right: 8.333333333333332%;\r\n }\r\n .col-sm-pull-0 {\r\n right: 0%;\r\n }\r\n .col-sm-push-12 {\r\n left: 100%;\r\n }\r\n .col-sm-push-11 {\r\n left: 91.66666666666666%;\r\n }\r\n .col-sm-push-10 {\r\n left: 83.33333333333334%;\r\n }\r\n .col-sm-push-9 {\r\n left: 75%;\r\n }\r\n .col-sm-push-8 {\r\n left: 66.66666666666666%;\r\n }\r\n .col-sm-push-7 {\r\n left: 58.333333333333336%;\r\n }\r\n .col-sm-push-6 {\r\n left: 50%;\r\n }\r\n .col-sm-push-5 {\r\n left: 41.66666666666667%;\r\n }\r\n .col-sm-push-4 {\r\n left: 33.33333333333333%;\r\n }\r\n .col-sm-push-3 {\r\n left: 25%;\r\n }\r\n .col-sm-push-2 {\r\n left: 16.666666666666664%;\r\n }\r\n .col-sm-push-1 {\r\n left: 8.333333333333332%;\r\n }\r\n .col-sm-push-0 {\r\n left: 0%;\r\n }\r\n .col-sm-offset-12 {\r\n margin-left: 100%;\r\n }\r\n .col-sm-offset-11 {\r\n margin-left: 91.66666666666666%;\r\n }\r\n .col-sm-offset-10 {\r\n margin-left: 83.33333333333334%;\r\n }\r\n .col-sm-offset-9 {\r\n margin-left: 75%;\r\n }\r\n .col-sm-offset-8 {\r\n margin-left: 66.66666666666666%;\r\n }\r\n .col-sm-offset-7 {\r\n margin-left: 58.333333333333336%;\r\n }\r\n .col-sm-offset-6 {\r\n margin-left: 50%;\r\n }\r\n .col-sm-offset-5 {\r\n margin-left: 41.66666666666667%;\r\n }\r\n .col-sm-offset-4 {\r\n margin-left: 33.33333333333333%;\r\n }\r\n .col-sm-offset-3 {\r\n margin-left: 25%;\r\n }\r\n .col-sm-offset-2 {\r\n margin-left: 16.666666666666664%;\r\n }\r\n .col-sm-offset-1 {\r\n margin-left: 8.333333333333332%;\r\n }\r\n .col-sm-offset-0 {\r\n margin-left: 0%;\r\n }\r\n}\r\n@media (min-width: 992px) {\r\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\r\n float: left;\r\n }\r\n .col-md-12 {\r\n width: 100%;\r\n }\r\n .col-md-11 {\r\n width: 91.66666666666666%;\r\n }\r\n .col-md-10 {\r\n width: 83.33333333333334%;\r\n }\r\n .col-md-9 {\r\n width: 75%;\r\n }\r\n .col-md-8 {\r\n width: 66.66666666666666%;\r\n }\r\n .col-md-7 {\r\n width: 58.333333333333336%;\r\n }\r\n .col-md-6 {\r\n width: 50%;\r\n }\r\n .col-md-5 {\r\n width: 41.66666666666667%;\r\n }\r\n .col-md-4 {\r\n width: 33.33333333333333%;\r\n }\r\n .col-md-3 {\r\n width: 25%;\r\n }\r\n .col-md-2 {\r\n width: 16.666666666666664%;\r\n }\r\n .col-md-1 {\r\n width: 8.333333333333332%;\r\n }\r\n .col-md-pull-12 {\r\n right: 100%;\r\n }\r\n .col-md-pull-11 {\r\n right: 91.66666666666666%;\r\n }\r\n .col-md-pull-10 {\r\n right: 83.33333333333334%;\r\n }\r\n .col-md-pull-9 {\r\n right: 75%;\r\n }\r\n .col-md-pull-8 {\r\n right: 66.66666666666666%;\r\n }\r\n .col-md-pull-7 {\r\n right: 58.333333333333336%;\r\n }\r\n .col-md-pull-6 {\r\n right: 50%;\r\n }\r\n .col-md-pull-5 {\r\n right: 41.66666666666667%;\r\n }\r\n .col-md-pull-4 {\r\n right: 33.33333333333333%;\r\n }\r\n .col-md-pull-3 {\r\n right: 25%;\r\n }\r\n .col-md-pull-2 {\r\n right: 16.666666666666664%;\r\n }\r\n .col-md-pull-1 {\r\n right: 8.333333333333332%;\r\n }\r\n .col-md-pull-0 {\r\n right: 0%;\r\n }\r\n .col-md-push-12 {\r\n left: 100%;\r\n }\r\n .col-md-push-11 {\r\n left: 91.66666666666666%;\r\n }\r\n .col-md-push-10 {\r\n left: 83.33333333333334%;\r\n }\r\n .col-md-push-9 {\r\n left: 75%;\r\n }\r\n .col-md-push-8 {\r\n left: 66.66666666666666%;\r\n }\r\n .col-md-push-7 {\r\n left: 58.333333333333336%;\r\n }\r\n .col-md-push-6 {\r\n left: 50%;\r\n }\r\n .col-md-push-5 {\r\n left: 41.66666666666667%;\r\n }\r\n .col-md-push-4 {\r\n left: 33.33333333333333%;\r\n }\r\n .col-md-push-3 {\r\n left: 25%;\r\n }\r\n .col-md-push-2 {\r\n left: 16.666666666666664%;\r\n }\r\n .col-md-push-1 {\r\n left: 8.333333333333332%;\r\n }\r\n .col-md-push-0 {\r\n left: 0%;\r\n }\r\n .col-md-offset-12 {\r\n margin-left: 100%;\r\n }\r\n .col-md-offset-11 {\r\n margin-left: 91.66666666666666%;\r\n }\r\n .col-md-offset-10 {\r\n margin-left: 83.33333333333334%;\r\n }\r\n .col-md-offset-9 {\r\n margin-left: 75%;\r\n }\r\n .col-md-offset-8 {\r\n margin-left: 66.66666666666666%;\r\n }\r\n .col-md-offset-7 {\r\n margin-left: 58.333333333333336%;\r\n }\r\n .col-md-offset-6 {\r\n margin-left: 50%;\r\n }\r\n .col-md-offset-5 {\r\n margin-left: 41.66666666666667%;\r\n }\r\n .col-md-offset-4 {\r\n margin-left: 33.33333333333333%;\r\n }\r\n .col-md-offset-3 {\r\n margin-left: 25%;\r\n }\r\n .col-md-offset-2 {\r\n margin-left: 16.666666666666664%;\r\n }\r\n .col-md-offset-1 {\r\n margin-left: 8.333333333333332%;\r\n }\r\n .col-md-offset-0 {\r\n margin-left: 0%;\r\n }\r\n}\r\n@media (min-width: 1200px) {\r\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\r\n float: left;\r\n }\r\n .col-lg-12 {\r\n width: 100%;\r\n }\r\n .col-lg-11 {\r\n width: 91.66666666666666%;\r\n }\r\n .col-lg-10 {\r\n width: 83.33333333333334%;\r\n }\r\n .col-lg-9 {\r\n width: 75%;\r\n }\r\n .col-lg-8 {\r\n width: 66.66666666666666%;\r\n }\r\n .col-lg-7 {\r\n width: 58.333333333333336%;\r\n }\r\n .col-lg-6 {\r\n width: 50%;\r\n }\r\n .col-lg-5 {\r\n width: 41.66666666666667%;\r\n }\r\n .col-lg-4 {\r\n width: 33.33333333333333%;\r\n }\r\n .col-lg-3 {\r\n width: 25%;\r\n }\r\n .col-lg-2 {\r\n width: 16.666666666666664%;\r\n }\r\n .col-lg-1 {\r\n width: 8.333333333333332%;\r\n }\r\n .col-lg-pull-12 {\r\n right: 100%;\r\n }\r\n .col-lg-pull-11 {\r\n right: 91.66666666666666%;\r\n }\r\n .col-lg-pull-10 {\r\n right: 83.33333333333334%;\r\n }\r\n .col-lg-pull-9 {\r\n right: 75%;\r\n }\r\n .col-lg-pull-8 {\r\n right: 66.66666666666666%;\r\n }\r\n .col-lg-pull-7 {\r\n right: 58.333333333333336%;\r\n }\r\n .col-lg-pull-6 {\r\n right: 50%;\r\n }\r\n .col-lg-pull-5 {\r\n right: 41.66666666666667%;\r\n }\r\n .col-lg-pull-4 {\r\n right: 33.33333333333333%;\r\n }\r\n .col-lg-pull-3 {\r\n right: 25%;\r\n }\r\n .col-lg-pull-2 {\r\n right: 16.666666666666664%;\r\n }\r\n .col-lg-pull-1 {\r\n right: 8.333333333333332%;\r\n }\r\n .col-lg-pull-0 {\r\n right: 0%;\r\n }\r\n .col-lg-push-12 {\r\n left: 100%;\r\n }\r\n .col-lg-push-11 {\r\n left: 91.66666666666666%;\r\n }\r\n .col-lg-push-10 {\r\n left: 83.33333333333334%;\r\n }\r\n .col-lg-push-9 {\r\n left: 75%;\r\n }\r\n .col-lg-push-8 {\r\n left: 66.66666666666666%;\r\n }\r\n .col-lg-push-7 {\r\n left: 58.333333333333336%;\r\n }\r\n .col-lg-push-6 {\r\n left: 50%;\r\n }\r\n .col-lg-push-5 {\r\n left: 41.66666666666667%;\r\n }\r\n .col-lg-push-4 {\r\n left: 33.33333333333333%;\r\n }\r\n .col-lg-push-3 {\r\n left: 25%;\r\n }\r\n .col-lg-push-2 {\r\n left: 16.666666666666664%;\r\n }\r\n .col-lg-push-1 {\r\n left: 8.333333333333332%;\r\n }\r\n .col-lg-push-0 {\r\n left: 0%;\r\n }\r\n .col-lg-offset-12 {\r\n margin-left: 100%;\r\n }\r\n .col-lg-offset-11 {\r\n margin-left: 91.66666666666666%;\r\n }\r\n .col-lg-offset-10 {\r\n margin-left: 83.33333333333334%;\r\n }\r\n .col-lg-offset-9 {\r\n margin-left: 75%;\r\n }\r\n .col-lg-offset-8 {\r\n margin-left: 66.66666666666666%;\r\n }\r\n .col-lg-offset-7 {\r\n margin-left: 58.333333333333336%;\r\n }\r\n .col-lg-offset-6 {\r\n margin-left: 50%;\r\n }\r\n .col-lg-offset-5 {\r\n margin-left: 41.66666666666667%;\r\n }\r\n .col-lg-offset-4 {\r\n margin-left: 33.33333333333333%;\r\n }\r\n .col-lg-offset-3 {\r\n margin-left: 25%;\r\n }\r\n .col-lg-offset-2 {\r\n margin-left: 16.666666666666664%;\r\n }\r\n .col-lg-offset-1 {\r\n margin-left: 8.333333333333332%;\r\n }\r\n .col-lg-offset-0 {\r\n margin-left: 0%;\r\n }\r\n}\r\ntable {\r\n max-width: 100%;\r\n background-color: transparent;\r\n}\r\nth {\r\n text-align: left;\r\n}\r\n.table {\r\n width: 100%;\r\n margin-bottom: 20px;\r\n}\r\n.table > thead > tr > th,\r\n.table > tbody > tr > th,\r\n.table > tfoot > tr > th,\r\n.table > thead > tr > td,\r\n.table > tbody > tr > td,\r\n.table > tfoot > tr > td {\r\n padding: 8px;\r\n line-height: 1.428571429;\r\n vertical-align: top;\r\n border-top: 1px solid #586e75;\r\n}\r\n.table > thead > tr > th {\r\n vertical-align: bottom;\r\n border-bottom: 2px solid #586e75;\r\n}\r\n.table > caption + thead > tr:first-child > th,\r\n.table > colgroup + thead > tr:first-child > th,\r\n.table > thead:first-child > tr:first-child > th,\r\n.table > caption + thead > tr:first-child > td,\r\n.table > colgroup + thead > tr:first-child > td,\r\n.table > thead:first-child > tr:first-child > td {\r\n border-top: 0;\r\n}\r\n.table > tbody + tbody {\r\n border-top: 2px solid #586e75;\r\n}\r\n.table .table {\r\n background-color: #002b36;\r\n}\r\n.table-condensed > thead > tr > th,\r\n.table-condensed > tbody > tr > th,\r\n.table-condensed > tfoot > tr > th,\r\n.table-condensed > thead > tr > td,\r\n.table-condensed > tbody > tr > td,\r\n.table-condensed > tfoot > tr > td {\r\n padding: 5px;\r\n}\r\n.table-bordered {\r\n border: 1px solid #586e75;\r\n}\r\n.table-bordered > thead > tr > th,\r\n.table-bordered > tbody > tr > th,\r\n.table-bordered > tfoot > tr > th,\r\n.table-bordered > thead > tr > td,\r\n.table-bordered > tbody > tr > td,\r\n.table-bordered > tfoot > tr > td {\r\n border: 1px solid #586e75;\r\n}\r\n.table-bordered > thead > tr > th,\r\n.table-bordered > thead > tr > td {\r\n border-bottom-width: 2px;\r\n}\r\n.table-striped > tbody > tr:nth-child(odd) > td,\r\n.table-striped > tbody > tr:nth-child(odd) > th {\r\n background-color: #073642;\r\n}\r\n.table-hover > tbody > tr:hover > td,\r\n.table-hover > tbody > tr:hover > th {\r\n background-color: #073642;\r\n}\r\ntable col[class*=\"col-\"] {\r\n position: static;\r\n float: none;\r\n display: table-column;\r\n}\r\ntable td[class*=\"col-\"],\r\ntable th[class*=\"col-\"] {\r\n position: static;\r\n float: none;\r\n display: table-cell;\r\n}\r\n.table > thead > tr > td.active,\r\n.table > tbody > tr > td.active,\r\n.table > tfoot > tr > td.active,\r\n.table > thead > tr > th.active,\r\n.table > tbody > tr > th.active,\r\n.table > tfoot > tr > th.active,\r\n.table > thead > tr.active > td,\r\n.table > tbody > tr.active > td,\r\n.table > tfoot > tr.active > td,\r\n.table > thead > tr.active > th,\r\n.table > tbody > tr.active > th,\r\n.table > tfoot > tr.active > th {\r\n background-color: #073642;\r\n}\r\n.table-hover > tbody > tr > td.active:hover,\r\n.table-hover > tbody > tr > th.active:hover,\r\n.table-hover > tbody > tr.active:hover > td,\r\n.table-hover > tbody > tr.active:hover > th {\r\n background-color: #05232b;\r\n}\r\n.table > thead > tr > td.success,\r\n.table > tbody > tr > td.success,\r\n.table > tfoot > tr > td.success,\r\n.table > thead > tr > th.success,\r\n.table > tbody > tr > th.success,\r\n.table > tfoot > tr > th.success,\r\n.table > thead > tr.success > td,\r\n.table > tbody > tr.success > td,\r\n.table > tfoot > tr.success > td,\r\n.table > thead > tr.success > th,\r\n.table > tbody > tr.success > th,\r\n.table > tfoot > tr.success > th {\r\n background-color: #dff0d8;\r\n}\r\n.table-hover > tbody > tr > td.success:hover,\r\n.table-hover > tbody > tr > th.success:hover,\r\n.table-hover > tbody > tr.success:hover > td,\r\n.table-hover > tbody > tr.success:hover > th {\r\n background-color: #d0e9c6;\r\n}\r\n.table > thead > tr > td.info,\r\n.table > tbody > tr > td.info,\r\n.table > tfoot > tr > td.info,\r\n.table > thead > tr > th.info,\r\n.table > tbody > tr > th.info,\r\n.table > tfoot > tr > th.info,\r\n.table > thead > tr.info > td,\r\n.table > tbody > tr.info > td,\r\n.table > tfoot > tr.info > td,\r\n.table > thead > tr.info > th,\r\n.table > tbody > tr.info > th,\r\n.table > tfoot > tr.info > th {\r\n background-color: #d9edf7;\r\n}\r\n.table-hover > tbody > tr > td.info:hover,\r\n.table-hover > tbody > tr > th.info:hover,\r\n.table-hover > tbody > tr.info:hover > td,\r\n.table-hover > tbody > tr.info:hover > th {\r\n background-color: #c4e3f3;\r\n}\r\n.table > thead > tr > td.warning,\r\n.table > tbody > tr > td.warning,\r\n.table > tfoot > tr > td.warning,\r\n.table > thead > tr > th.warning,\r\n.table > tbody > tr > th.warning,\r\n.table > tfoot > tr > th.warning,\r\n.table > thead > tr.warning > td,\r\n.table > tbody > tr.warning > td,\r\n.table > tfoot > tr.warning > td,\r\n.table > thead > tr.warning > th,\r\n.table > tbody > tr.warning > th,\r\n.table > tfoot > tr.warning > th {\r\n background-color: #fcf8e3;\r\n}\r\n.table-hover > tbody > tr > td.warning:hover,\r\n.table-hover > tbody > tr > th.warning:hover,\r\n.table-hover > tbody > tr.warning:hover > td,\r\n.table-hover > tbody > tr.warning:hover > th {\r\n background-color: #faf2cc;\r\n}\r\n.table > thead > tr > td.danger,\r\n.table > tbody > tr > td.danger,\r\n.table > tfoot > tr > td.danger,\r\n.table > thead > tr > th.danger,\r\n.table > tbody > tr > th.danger,\r\n.table > tfoot > tr > th.danger,\r\n.table > thead > tr.danger > td,\r\n.table > tbody > tr.danger > td,\r\n.table > tfoot > tr.danger > td,\r\n.table > thead > tr.danger > th,\r\n.table > tbody > tr.danger > th,\r\n.table > tfoot > tr.danger > th {\r\n background-color: #f2dede;\r\n}\r\n.table-hover > tbody > tr > td.danger:hover,\r\n.table-hover > tbody > tr > th.danger:hover,\r\n.table-hover > tbody > tr.danger:hover > td,\r\n.table-hover > tbody > tr.danger:hover > th {\r\n background-color: #ebcccc;\r\n}\r\n@media (max-width: 767px) {\r\n .table-responsive {\r\n width: 100%;\r\n margin-bottom: 15px;\r\n overflow-y: hidden;\r\n overflow-x: scroll;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n border: 1px solid #586e75;\r\n -webkit-overflow-scrolling: touch;\r\n }\r\n .table-responsive > .table {\r\n margin-bottom: 0;\r\n }\r\n .table-responsive > .table > thead > tr > th,\r\n .table-responsive > .table > tbody > tr > th,\r\n .table-responsive > .table > tfoot > tr > th,\r\n .table-responsive > .table > thead > tr > td,\r\n .table-responsive > .table > tbody > tr > td,\r\n .table-responsive > .table > tfoot > tr > td {\r\n white-space: nowrap;\r\n }\r\n .table-responsive > .table-bordered {\r\n border: 0;\r\n }\r\n .table-responsive > .table-bordered > thead > tr > th:first-child,\r\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\r\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\r\n .table-responsive > .table-bordered > thead > tr > td:first-child,\r\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\r\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\r\n border-left: 0;\r\n }\r\n .table-responsive > .table-bordered > thead > tr > th:last-child,\r\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\r\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\r\n .table-responsive > .table-bordered > thead > tr > td:last-child,\r\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\r\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\r\n border-right: 0;\r\n }\r\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\r\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\r\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\r\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\r\n border-bottom: 0;\r\n }\r\n}\r\nfieldset {\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n min-width: 0;\r\n}\r\nlegend {\r\n display: block;\r\n width: 100%;\r\n padding: 0;\r\n margin-bottom: 20px;\r\n font-size: 21px;\r\n line-height: inherit;\r\n color: #586e75;\r\n border: 0;\r\n border-bottom: 1px solid #e5e5e5;\r\n}\r\nlabel {\r\n display: inline-block;\r\n margin-bottom: 5px;\r\n font-weight: bold;\r\n}\r\ninput[type=\"search\"] {\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\ninput[type=\"radio\"],\r\ninput[type=\"checkbox\"] {\r\n margin: 4px 0 0;\r\n margin-top: 1px \\9;\r\n /* IE8-9 */\r\n\r\n line-height: normal;\r\n}\r\ninput[type=\"file\"] {\r\n display: block;\r\n}\r\ninput[type=\"range\"] {\r\n display: block;\r\n width: 100%;\r\n}\r\nselect[multiple],\r\nselect[size] {\r\n height: auto;\r\n}\r\ninput[type=\"file\"]:focus,\r\ninput[type=\"radio\"]:focus,\r\ninput[type=\"checkbox\"]:focus {\r\n outline: thin dotted;\r\n outline: 5px auto -webkit-focus-ring-color;\r\n outline-offset: -2px;\r\n}\r\noutput {\r\n display: block;\r\n padding-top: 7px;\r\n font-size: 14px;\r\n line-height: 1.428571429;\r\n color: #eee8d5;\r\n}\r\n.form-control {\r\n display: block;\r\n width: 100%;\r\n height: 34px;\r\n padding: 6px 12px;\r\n font-size: 14px;\r\n line-height: 1.428571429;\r\n color: #eee8d5;\r\n background-color: #073642;\r\n background-image: none;\r\n border: 1px solid #586e75;\r\n border-radius: 4px;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\r\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\r\n}\r\n.form-control:focus {\r\n border-color: #66afe9;\r\n outline: 0;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\r\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\r\n}\r\n.form-control::-moz-placeholder {\r\n color: #eee8d5;\r\n opacity: 1;\r\n}\r\n.form-control:-ms-input-placeholder {\r\n color: #eee8d5;\r\n}\r\n.form-control::-webkit-input-placeholder {\r\n color: #eee8d5;\r\n}\r\n.form-control[disabled],\r\n.form-control[readonly],\r\nfieldset[disabled] .form-control {\r\n cursor: not-allowed;\r\n background-color: #586e75;\r\n opacity: 1;\r\n}\r\ntextarea.form-control {\r\n height: auto;\r\n}\r\ninput[type=\"search\"] {\r\n -webkit-appearance: none;\r\n}\r\ninput[type=\"date\"] {\r\n line-height: 34px;\r\n}\r\n.form-group {\r\n margin-bottom: 15px;\r\n}\r\n.radio,\r\n.checkbox {\r\n display: block;\r\n min-height: 20px;\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n padding-left: 20px;\r\n}\r\n.radio label,\r\n.checkbox label {\r\n display: inline;\r\n font-weight: normal;\r\n cursor: pointer;\r\n}\r\n.radio input[type=\"radio\"],\r\n.radio-inline input[type=\"radio\"],\r\n.checkbox input[type=\"checkbox\"],\r\n.checkbox-inline input[type=\"checkbox\"] {\r\n float: left;\r\n margin-left: -20px;\r\n}\r\n.radio + .radio,\r\n.checkbox + .checkbox {\r\n margin-top: -5px;\r\n}\r\n.radio-inline,\r\n.checkbox-inline {\r\n display: inline-block;\r\n padding-left: 20px;\r\n margin-bottom: 0;\r\n vertical-align: middle;\r\n font-weight: normal;\r\n cursor: pointer;\r\n}\r\n.radio-inline + .radio-inline,\r\n.checkbox-inline + .checkbox-inline {\r\n margin-top: 0;\r\n margin-left: 10px;\r\n}\r\ninput[type=\"radio\"][disabled],\r\ninput[type=\"checkbox\"][disabled],\r\n.radio[disabled],\r\n.radio-inline[disabled],\r\n.checkbox[disabled],\r\n.checkbox-inline[disabled],\r\nfieldset[disabled] input[type=\"radio\"],\r\nfieldset[disabled] input[type=\"checkbox\"],\r\nfieldset[disabled] .radio,\r\nfieldset[disabled] .radio-inline,\r\nfieldset[disabled] .checkbox,\r\nfieldset[disabled] .checkbox-inline {\r\n cursor: not-allowed;\r\n}\r\n.input-sm {\r\n height: 30px;\r\n padding: 5px 10px;\r\n font-size: 12px;\r\n line-height: 1.5;\r\n border-radius: 3px;\r\n}\r\nselect.input-sm {\r\n height: 30px;\r\n line-height: 30px;\r\n}\r\ntextarea.input-sm,\r\nselect[multiple].input-sm {\r\n height: auto;\r\n}\r\n.input-lg {\r\n height: 45px;\r\n padding: 10px 16px;\r\n font-size: 18px;\r\n line-height: 1.33;\r\n border-radius: 6px;\r\n}\r\nselect.input-lg {\r\n height: 45px;\r\n line-height: 45px;\r\n}\r\ntextarea.input-lg,\r\nselect[multiple].input-lg {\r\n height: auto;\r\n}\r\n.has-feedback {\r\n position: relative;\r\n}\r\n.has-feedback .form-control {\r\n padding-right: 42.5px;\r\n}\r\n.has-feedback .form-control-feedback {\r\n position: absolute;\r\n top: 25px;\r\n right: 0;\r\n display: block;\r\n width: 34px;\r\n height: 34px;\r\n line-height: 34px;\r\n text-align: center;\r\n}\r\n.has-success .help-block,\r\n.has-success .control-label,\r\n.has-success .radio,\r\n.has-success .checkbox,\r\n.has-success .radio-inline,\r\n.has-success .checkbox-inline {\r\n color: #468847;\r\n}\r\n.has-success .form-control {\r\n border-color: #468847;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n}\r\n.has-success .form-control:focus {\r\n border-color: #356635;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\r\n}\r\n.has-success .input-group-addon {\r\n color: #468847;\r\n border-color: #468847;\r\n background-color: #dff0d8;\r\n}\r\n.has-success .form-control-feedback {\r\n color: #468847;\r\n}\r\n.has-warning .help-block,\r\n.has-warning .control-label,\r\n.has-warning .radio,\r\n.has-warning .checkbox,\r\n.has-warning .radio-inline,\r\n.has-warning .checkbox-inline {\r\n color: #c09853;\r\n}\r\n.has-warning .form-control {\r\n border-color: #c09853;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n}\r\n.has-warning .form-control:focus {\r\n border-color: #a47e3c;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\r\n}\r\n.has-warning .input-group-addon {\r\n color: #c09853;\r\n border-color: #c09853;\r\n background-color: #fcf8e3;\r\n}\r\n.has-warning .form-control-feedback {\r\n color: #c09853;\r\n}\r\n.has-error .help-block,\r\n.has-error .control-label,\r\n.has-error .radio,\r\n.has-error .checkbox,\r\n.has-error .radio-inline,\r\n.has-error .checkbox-inline {\r\n color: #b94a48;\r\n}\r\n.has-error .form-control {\r\n border-color: #b94a48;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n}\r\n.has-error .form-control:focus {\r\n border-color: #953b39;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\r\n}\r\n.has-error .input-group-addon {\r\n color: #b94a48;\r\n border-color: #b94a48;\r\n background-color: #f2dede;\r\n}\r\n.has-error .form-control-feedback {\r\n color: #b94a48;\r\n}\r\n.form-control-static {\r\n margin-bottom: 0;\r\n}\r\n.help-block {\r\n display: block;\r\n margin-top: 5px;\r\n margin-bottom: 10px;\r\n color: #c8d0d0;\r\n}\r\n@media (min-width: 768px) {\r\n .form-inline .form-group {\r\n display: inline-block;\r\n margin-bottom: 0;\r\n vertical-align: middle;\r\n }\r\n .form-inline .form-control {\r\n display: inline-block;\r\n width: auto;\r\n vertical-align: middle;\r\n }\r\n .form-inline .input-group > .form-control {\r\n width: 100%;\r\n }\r\n .form-inline .control-label {\r\n margin-bottom: 0;\r\n vertical-align: middle;\r\n }\r\n .form-inline .radio,\r\n .form-inline .checkbox {\r\n display: inline-block;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n padding-left: 0;\r\n vertical-align: middle;\r\n }\r\n .form-inline .radio input[type=\"radio\"],\r\n .form-inline .checkbox input[type=\"checkbox\"] {\r\n float: none;\r\n margin-left: 0;\r\n }\r\n .form-inline .has-feedback .form-control-feedback {\r\n top: 0;\r\n }\r\n}\r\n.form-horizontal .control-label,\r\n.form-horizontal .radio,\r\n.form-horizontal .checkbox,\r\n.form-horizontal .radio-inline,\r\n.form-horizontal .checkbox-inline {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n padding-top: 7px;\r\n}\r\n.form-horizontal .radio,\r\n.form-horizontal .checkbox {\r\n min-height: 27px;\r\n}\r\n.form-horizontal .form-group {\r\n margin-left: -15px;\r\n margin-right: -15px;\r\n}\r\n.form-horizontal .form-control-static {\r\n padding-top: 7px;\r\n}\r\n@media (min-width: 768px) {\r\n .form-horizontal .control-label {\r\n text-align: right;\r\n }\r\n}\r\n.form-horizontal .has-feedback .form-control-feedback {\r\n top: 0;\r\n right: 15px;\r\n}\r\n.btn {\r\n display: inline-block;\r\n margin-bottom: 0;\r\n font-weight: normal;\r\n text-align: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n background-image: none;\r\n border: 1px solid transparent;\r\n white-space: nowrap;\r\n padding: 6px 12px;\r\n font-size: 14px;\r\n line-height: 1.428571429;\r\n border-radius: 4px;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n -o-user-select: none;\r\n user-select: none;\r\n}\r\n.btn:focus {\r\n outline: thin dotted;\r\n outline: 5px auto -webkit-focus-ring-color;\r\n outline-offset: -2px;\r\n}\r\n.btn:hover,\r\n.btn:focus {\r\n color: #93a1a1;\r\n text-decoration: none;\r\n}\r\n.btn:active,\r\n.btn.active {\r\n outline: 0;\r\n background-image: none;\r\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\r\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\r\n}\r\n.btn.disabled,\r\n.btn[disabled],\r\nfieldset[disabled] .btn {\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n opacity: 0.65;\r\n filter: alpha(opacity=65);\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n}\r\n.btn-default {\r\n color: #93a1a1;\r\n background-color: #073642;\r\n border-color: #586e75;\r\n}\r\n.btn-default:hover,\r\n.btn-default:focus,\r\n.btn-default:active,\r\n.btn-default.active,\r\n.open .dropdown-toggle.btn-default {\r\n color: #93a1a1;\r\n background-color: #03181d;\r\n border-color: #3e4d52;\r\n}\r\n.btn-default:active,\r\n.btn-default.active,\r\n.open .dropdown-toggle.btn-default {\r\n background-image: none;\r\n}\r\n.btn-default.disabled,\r\n.btn-default[disabled],\r\nfieldset[disabled] .btn-default,\r\n.btn-default.disabled:hover,\r\n.btn-default[disabled]:hover,\r\nfieldset[disabled] .btn-default:hover,\r\n.btn-default.disabled:focus,\r\n.btn-default[disabled]:focus,\r\nfieldset[disabled] .btn-default:focus,\r\n.btn-default.disabled:active,\r\n.btn-default[disabled]:active,\r\nfieldset[disabled] .btn-default:active,\r\n.btn-default.disabled.active,\r\n.btn-default[disabled].active,\r\nfieldset[disabled] .btn-default.active {\r\n background-color: #073642;\r\n border-color: #586e75;\r\n}\r\n.btn-default .badge {\r\n color: #073642;\r\n background-color: #93a1a1;\r\n}\r\n.btn-primary {\r\n color: #ffffff;\r\n background-color: #428bca;\r\n border-color: #357ebd;\r\n}\r\n.btn-primary:hover,\r\n.btn-primary:focus,\r\n.btn-primary:active,\r\n.btn-primary.active,\r\n.open .dropdown-toggle.btn-primary {\r\n color: #ffffff;\r\n background-color: #3276b1;\r\n border-color: #285e8e;\r\n}\r\n.btn-primary:active,\r\n.btn-primary.active,\r\n.open .dropdown-toggle.btn-primary {\r\n background-image: none;\r\n}\r\n.btn-primary.disabled,\r\n.btn-primary[disabled],\r\nfieldset[disabled] .btn-primary,\r\n.btn-primary.disabled:hover,\r\n.btn-primary[disabled]:hover,\r\nfieldset[disabled] .btn-primary:hover,\r\n.btn-primary.disabled:focus,\r\n.btn-primary[disabled]:focus,\r\nfieldset[disabled] .btn-primary:focus,\r\n.btn-primary.disabled:active,\r\n.btn-primary[disabled]:active,\r\nfieldset[disabled] .btn-primary:active,\r\n.btn-primary.disabled.active,\r\n.btn-primary[disabled].active,\r\nfieldset[disabled] .btn-primary.active {\r\n background-color: #428bca;\r\n border-color: #357ebd;\r\n}\r\n.btn-primary .badge {\r\n color: #428bca;\r\n background-color: #ffffff;\r\n}\r\n.btn-success {\r\n color: #ffffff;\r\n background-color: #5cb85c;\r\n border-color: #4cae4c;\r\n}\r\n.btn-success:hover,\r\n.btn-success:focus,\r\n.btn-success:active,\r\n.btn-success.active,\r\n.open .dropdown-toggle.btn-success {\r\n color: #ffffff;\r\n background-color: #47a447;\r\n border-color: #398439;\r\n}\r\n.btn-success:active,\r\n.btn-success.active,\r\n.open .dropdown-toggle.btn-success {\r\n background-image: none;\r\n}\r\n.btn-success.disabled,\r\n.btn-success[disabled],\r\nfieldset[disabled] .btn-success,\r\n.btn-success.disabled:hover,\r\n.btn-success[disabled]:hover,\r\nfieldset[disabled] .btn-success:hover,\r\n.btn-success.disabled:focus,\r\n.btn-success[disabled]:focus,\r\nfieldset[disabled] .btn-success:focus,\r\n.btn-success.disabled:active,\r\n.btn-success[disabled]:active,\r\nfieldset[disabled] .btn-success:active,\r\n.btn-success.disabled.active,\r\n.btn-success[disabled].active,\r\nfieldset[disabled] .btn-success.active {\r\n background-color: #5cb85c;\r\n border-color: #4cae4c;\r\n}\r\n.btn-success .badge {\r\n color: #5cb85c;\r\n background-color: #ffffff;\r\n}\r\n.btn-info {\r\n color: #ffffff;\r\n background-color: #5bc0de;\r\n border-color: #46b8da;\r\n}\r\n.btn-info:hover,\r\n.btn-info:focus,\r\n.btn-info:active,\r\n.btn-info.active,\r\n.open .dropdown-toggle.btn-info {\r\n color: #ffffff;\r\n background-color: #39b3d7;\r\n border-color: #269abc;\r\n}\r\n.btn-info:active,\r\n.btn-info.active,\r\n.open .dropdown-toggle.btn-info {\r\n background-image: none;\r\n}\r\n.btn-info.disabled,\r\n.btn-info[disabled],\r\nfieldset[disabled] .btn-info,\r\n.btn-info.disabled:hover,\r\n.btn-info[disabled]:hover,\r\nfieldset[disabled] .btn-info:hover,\r\n.btn-info.disabled:focus,\r\n.btn-info[disabled]:focus,\r\nfieldset[disabled] .btn-info:focus,\r\n.btn-info.disabled:active,\r\n.btn-info[disabled]:active,\r\nfieldset[disabled] .btn-info:active,\r\n.btn-info.disabled.active,\r\n.btn-info[disabled].active,\r\nfieldset[disabled] .btn-info.active {\r\n background-color: #5bc0de;\r\n border-color: #46b8da;\r\n}\r\n.btn-info .badge {\r\n color: #5bc0de;\r\n background-color: #ffffff;\r\n}\r\n.btn-warning {\r\n color: #ffffff;\r\n background-color: #f0ad4e;\r\n border-color: #eea236;\r\n}\r\n.btn-warning:hover,\r\n.btn-warning:focus,\r\n.btn-warning:active,\r\n.btn-warning.active,\r\n.open .dropdown-toggle.btn-warning {\r\n color: #ffffff;\r\n background-color: #ed9c28;\r\n border-color: #d58512;\r\n}\r\n.btn-warning:active,\r\n.btn-warning.active,\r\n.open .dropdown-toggle.btn-warning {\r\n background-image: none;\r\n}\r\n.btn-warning.disabled,\r\n.btn-warning[disabled],\r\nfieldset[disabled] .btn-warning,\r\n.btn-warning.disabled:hover,\r\n.btn-warning[disabled]:hover,\r\nfieldset[disabled] .btn-warning:hover,\r\n.btn-warning.disabled:focus,\r\n.btn-warning[disabled]:focus,\r\nfieldset[disabled] .btn-warning:focus,\r\n.btn-warning.disabled:active,\r\n.btn-warning[disabled]:active,\r\nfieldset[disabled] .btn-warning:active,\r\n.btn-warning.disabled.active,\r\n.btn-warning[disabled].active,\r\nfieldset[disabled] .btn-warning.active {\r\n background-color: #f0ad4e;\r\n border-color: #eea236;\r\n}\r\n.btn-warning .badge {\r\n color: #f0ad4e;\r\n background-color: #ffffff;\r\n}\r\n.btn-danger {\r\n color: #ffffff;\r\n background-color: #d9534f;\r\n border-color: #d43f3a;\r\n}\r\n.btn-danger:hover,\r\n.btn-danger:focus,\r\n.btn-danger:active,\r\n.btn-danger.active,\r\n.open .dropdown-toggle.btn-danger {\r\n color: #ffffff;\r\n background-color: #d2322d;\r\n border-color: #ac2925;\r\n}\r\n.btn-danger:active,\r\n.btn-danger.active,\r\n.open .dropdown-toggle.btn-danger {\r\n background-image: none;\r\n}\r\n.btn-danger.disabled,\r\n.btn-danger[disabled],\r\nfieldset[disabled] .btn-danger,\r\n.btn-danger.disabled:hover,\r\n.btn-danger[disabled]:hover,\r\nfieldset[disabled] .btn-danger:hover,\r\n.btn-danger.disabled:focus,\r\n.btn-danger[disabled]:focus,\r\nfieldset[disabled] .btn-danger:focus,\r\n.btn-danger.disabled:active,\r\n.btn-danger[disabled]:active,\r\nfieldset[disabled] .btn-danger:active,\r\n.btn-danger.disabled.active,\r\n.btn-danger[disabled].active,\r\nfieldset[disabled] .btn-danger.active {\r\n background-color: #d9534f;\r\n border-color: #d43f3a;\r\n}\r\n.btn-danger .badge {\r\n color: #d9534f;\r\n background-color: #ffffff;\r\n}\r\n.btn-link {\r\n color: #428bca;\r\n font-weight: normal;\r\n cursor: pointer;\r\n border-radius: 0;\r\n}\r\n.btn-link,\r\n.btn-link:active,\r\n.btn-link[disabled],\r\nfieldset[disabled] .btn-link {\r\n background-color: transparent;\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n}\r\n.btn-link,\r\n.btn-link:hover,\r\n.btn-link:focus,\r\n.btn-link:active {\r\n border-color: transparent;\r\n}\r\n.btn-link:hover,\r\n.btn-link:focus {\r\n color: #2a6496;\r\n text-decoration: underline;\r\n background-color: transparent;\r\n}\r\n.btn-link[disabled]:hover,\r\nfieldset[disabled] .btn-link:hover,\r\n.btn-link[disabled]:focus,\r\nfieldset[disabled] .btn-link:focus {\r\n color: #eee8d5;\r\n text-decoration: none;\r\n}\r\n.btn-lg,\r\n.btn-group-lg > .btn {\r\n padding: 10px 16px;\r\n font-size: 18px;\r\n line-height: 1.33;\r\n border-radius: 6px;\r\n}\r\n.btn-sm,\r\n.btn-group-sm > .btn {\r\n padding: 5px 10px;\r\n font-size: 12px;\r\n line-height: 1.5;\r\n border-radius: 3px;\r\n}\r\n.btn-xs,\r\n.btn-group-xs > .btn {\r\n padding: 1px 5px;\r\n font-size: 12px;\r\n line-height: 1.5;\r\n border-radius: 3px;\r\n}\r\n.btn-block {\r\n display: block;\r\n width: 100%;\r\n padding-left: 0;\r\n padding-right: 0;\r\n}\r\n.btn-block + .btn-block {\r\n margin-top: 5px;\r\n}\r\ninput[type=\"submit\"].btn-block,\r\ninput[type=\"reset\"].btn-block,\r\ninput[type=\"button\"].btn-block {\r\n width: 100%;\r\n}\r\n.fade {\r\n opacity: 0;\r\n -webkit-transition: opacity 0.15s linear;\r\n transition: opacity 0.15s linear;\r\n}\r\n.fade.in {\r\n opacity: 1;\r\n}\r\n.collapse {\r\n display: none;\r\n}\r\n.collapse.in {\r\n display: block;\r\n}\r\n.collapsing {\r\n position: relative;\r\n height: 0;\r\n overflow: hidden;\r\n -webkit-transition: height 0.35s ease;\r\n transition: height 0.35s ease;\r\n}\r\n@font-face {\r\n font-family: 'Glyphicons Halflings';\r\n src: url('../app/fonts/glyphicons-halflings-regular.eot');\r\n src: url('../app/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../app/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../app/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../app/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\r\n}\r\n.glyphicon {\r\n position: relative;\r\n top: 1px;\r\n display: inline-block;\r\n font-family: 'Glyphicons Halflings';\r\n font-style: normal;\r\n font-weight: normal;\r\n line-height: 1;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n.glyphicon-asterisk:before {\r\n content: \"\\2a\";\r\n}\r\n.glyphicon-plus:before {\r\n content: \"\\2b\";\r\n}\r\n.glyphicon-euro:before {\r\n content: \"\\20ac\";\r\n}\r\n.glyphicon-minus:before {\r\n content: \"\\2212\";\r\n}\r\n.glyphicon-cloud:before {\r\n content: \"\\2601\";\r\n}\r\n.glyphicon-envelope:before {\r\n content: \"\\2709\";\r\n}\r\n.glyphicon-pencil:before {\r\n content: \"\\270f\";\r\n}\r\n.glyphicon-glass:before {\r\n content: \"\\e001\";\r\n}\r\n.glyphicon-music:before {\r\n content: \"\\e002\";\r\n}\r\n.glyphicon-search:before {\r\n content: \"\\e003\";\r\n}\r\n.glyphicon-heart:before {\r\n content: \"\\e005\";\r\n}\r\n.glyphicon-star:before {\r\n content: \"\\e006\";\r\n}\r\n.glyphicon-star-empty:before {\r\n content: \"\\e007\";\r\n}\r\n.glyphicon-user:before {\r\n content: \"\\e008\";\r\n}\r\n.glyphicon-film:before {\r\n content: \"\\e009\";\r\n}\r\n.glyphicon-th-large:before {\r\n content: \"\\e010\";\r\n}\r\n.glyphicon-th:before {\r\n content: \"\\e011\";\r\n}\r\n.glyphicon-th-list:before {\r\n content: \"\\e012\";\r\n}\r\n.glyphicon-ok:before {\r\n content: \"\\e013\";\r\n}\r\n.glyphicon-remove:before {\r\n content: \"\\e014\";\r\n}\r\n.glyphicon-zoom-in:before {\r\n content: \"\\e015\";\r\n}\r\n.glyphicon-zoom-out:before {\r\n content: \"\\e016\";\r\n}\r\n.glyphicon-off:before {\r\n content: \"\\e017\";\r\n}\r\n.glyphicon-signal:before {\r\n content: \"\\e018\";\r\n}\r\n.glyphicon-cog:before {\r\n content: \"\\e019\";\r\n}\r\n.glyphicon-trash:before {\r\n content: \"\\e020\";\r\n}\r\n.glyphicon-home:before {\r\n content: \"\\e021\";\r\n}\r\n.glyphicon-file:before {\r\n content: \"\\e022\";\r\n}\r\n.glyphicon-time:before {\r\n content: \"\\e023\";\r\n}\r\n.glyphicon-road:before {\r\n content: \"\\e024\";\r\n}\r\n.glyphicon-download-alt:before {\r\n content: \"\\e025\";\r\n}\r\n.glyphicon-download:before {\r\n content: \"\\e026\";\r\n}\r\n.glyphicon-upload:before {\r\n content: \"\\e027\";\r\n}\r\n.glyphicon-inbox:before {\r\n content: \"\\e028\";\r\n}\r\n.glyphicon-play-circle:before {\r\n content: \"\\e029\";\r\n}\r\n.glyphicon-repeat:before {\r\n content: \"\\e030\";\r\n}\r\n.glyphicon-refresh:before {\r\n content: \"\\e031\";\r\n}\r\n.glyphicon-list-alt:before {\r\n content: \"\\e032\";\r\n}\r\n.glyphicon-lock:before {\r\n content: \"\\e033\";\r\n}\r\n.glyphicon-flag:before {\r\n content: \"\\e034\";\r\n}\r\n.glyphicon-headphones:before {\r\n content: \"\\e035\";\r\n}\r\n.glyphicon-volume-off:before {\r\n content: \"\\e036\";\r\n}\r\n.glyphicon-volume-down:before {\r\n content: \"\\e037\";\r\n}\r\n.glyphicon-volume-up:before {\r\n content: \"\\e038\";\r\n}\r\n.glyphicon-qrcode:before {\r\n content: \"\\e039\";\r\n}\r\n.glyphicon-barcode:before {\r\n content: \"\\e040\";\r\n}\r\n.glyphicon-tag:before {\r\n content: \"\\e041\";\r\n}\r\n.glyphicon-tags:before {\r\n content: \"\\e042\";\r\n}\r\n.glyphicon-book:before {\r\n content: \"\\e043\";\r\n}\r\n.glyphicon-bookmark:before {\r\n content: \"\\e044\";\r\n}\r\n.glyphicon-print:before {\r\n content: \"\\e045\";\r\n}\r\n.glyphicon-camera:before {\r\n content: \"\\e046\";\r\n}\r\n.glyphicon-font:before {\r\n content: \"\\e047\";\r\n}\r\n.glyphicon-bold:before {\r\n content: \"\\e048\";\r\n}\r\n.glyphicon-italic:before {\r\n content: \"\\e049\";\r\n}\r\n.glyphicon-text-height:before {\r\n content: \"\\e050\";\r\n}\r\n.glyphicon-text-width:before {\r\n content: \"\\e051\";\r\n}\r\n.glyphicon-align-left:before {\r\n content: \"\\e052\";\r\n}\r\n.glyphicon-align-center:before {\r\n content: \"\\e053\";\r\n}\r\n.glyphicon-align-right:before {\r\n content: \"\\e054\";\r\n}\r\n.glyphicon-align-justify:before {\r\n content: \"\\e055\";\r\n}\r\n.glyphicon-list:before {\r\n content: \"\\e056\";\r\n}\r\n.glyphicon-indent-left:before {\r\n content: \"\\e057\";\r\n}\r\n.glyphicon-indent-right:before {\r\n content: \"\\e058\";\r\n}\r\n.glyphicon-facetime-video:before {\r\n content: \"\\e059\";\r\n}\r\n.glyphicon-picture:before {\r\n content: \"\\e060\";\r\n}\r\n.glyphicon-map-marker:before {\r\n content: \"\\e062\";\r\n}\r\n.glyphicon-adjust:before {\r\n content: \"\\e063\";\r\n}\r\n.glyphicon-tint:before {\r\n content: \"\\e064\";\r\n}\r\n.glyphicon-edit:before {\r\n content: \"\\e065\";\r\n}\r\n.glyphicon-share:before {\r\n content: \"\\e066\";\r\n}\r\n.glyphicon-check:before {\r\n content: \"\\e067\";\r\n}\r\n.glyphicon-move:before {\r\n content: \"\\e068\";\r\n}\r\n.glyphicon-step-backward:before {\r\n content: \"\\e069\";\r\n}\r\n.glyphicon-fast-backward:before {\r\n content: \"\\e070\";\r\n}\r\n.glyphicon-backward:before {\r\n content: \"\\e071\";\r\n}\r\n.glyphicon-play:before {\r\n content: \"\\e072\";\r\n}\r\n.glyphicon-pause:before {\r\n content: \"\\e073\";\r\n}\r\n.glyphicon-stop:before {\r\n content: \"\\e074\";\r\n}\r\n.glyphicon-forward:before {\r\n content: \"\\e075\";\r\n}\r\n.glyphicon-fast-forward:before {\r\n content: \"\\e076\";\r\n}\r\n.glyphicon-step-forward:before {\r\n content: \"\\e077\";\r\n}\r\n.glyphicon-eject:before {\r\n content: \"\\e078\";\r\n}\r\n.glyphicon-chevron-left:before {\r\n content: \"\\e079\";\r\n}\r\n.glyphicon-chevron-right:before {\r\n content: \"\\e080\";\r\n}\r\n.glyphicon-plus-sign:before {\r\n content: \"\\e081\";\r\n}\r\n.glyphicon-minus-sign:before {\r\n content: \"\\e082\";\r\n}\r\n.glyphicon-remove-sign:before {\r\n content: \"\\e083\";\r\n}\r\n.glyphicon-ok-sign:before {\r\n content: \"\\e084\";\r\n}\r\n.glyphicon-question-sign:before {\r\n content: \"\\e085\";\r\n}\r\n.glyphicon-info-sign:before {\r\n content: \"\\e086\";\r\n}\r\n.glyphicon-screenshot:before {\r\n content: \"\\e087\";\r\n}\r\n.glyphicon-remove-circle:before {\r\n content: \"\\e088\";\r\n}\r\n.glyphicon-ok-circle:before {\r\n content: \"\\e089\";\r\n}\r\n.glyphicon-ban-circle:before {\r\n content: \"\\e090\";\r\n}\r\n.glyphicon-arrow-left:before {\r\n content: \"\\e091\";\r\n}\r\n.glyphicon-arrow-right:before {\r\n content: \"\\e092\";\r\n}\r\n.glyphicon-arrow-up:before {\r\n content: \"\\e093\";\r\n}\r\n.glyphicon-arrow-down:before {\r\n content: \"\\e094\";\r\n}\r\n.glyphicon-share-alt:before {\r\n content: \"\\e095\";\r\n}\r\n.glyphicon-resize-full:before {\r\n content: \"\\e096\";\r\n}\r\n.glyphicon-resize-small:before {\r\n content: \"\\e097\";\r\n}\r\n.glyphicon-exclamation-sign:before {\r\n content: \"\\e101\";\r\n}\r\n.glyphicon-gift:before {\r\n content: \"\\e102\";\r\n}\r\n.glyphicon-leaf:before {\r\n content: \"\\e103\";\r\n}\r\n.glyphicon-fire:before {\r\n content: \"\\e104\";\r\n}\r\n.glyphicon-eye-open:before {\r\n content: \"\\e105\";\r\n}\r\n.glyphicon-eye-close:before {\r\n content: \"\\e106\";\r\n}\r\n.glyphicon-warning-sign:before {\r\n content: \"\\e107\";\r\n}\r\n.glyphicon-plane:before {\r\n content: \"\\e108\";\r\n}\r\n.glyphicon-calendar:before {\r\n content: \"\\e109\";\r\n}\r\n.glyphicon-random:before {\r\n content: \"\\e110\";\r\n}\r\n.glyphicon-comment:before {\r\n content: \"\\e111\";\r\n}\r\n.glyphicon-magnet:before {\r\n content: \"\\e112\";\r\n}\r\n.glyphicon-chevron-up:before {\r\n content: \"\\e113\";\r\n}\r\n.glyphicon-chevron-down:before {\r\n content: \"\\e114\";\r\n}\r\n.glyphicon-retweet:before {\r\n content: \"\\e115\";\r\n}\r\n.glyphicon-shopping-cart:before {\r\n content: \"\\e116\";\r\n}\r\n.glyphicon-folder-close:before {\r\n content: \"\\e117\";\r\n}\r\n.glyphicon-folder-open:before {\r\n content: \"\\e118\";\r\n}\r\n.glyphicon-resize-vertical:before {\r\n content: \"\\e119\";\r\n}\r\n.glyphicon-resize-horizontal:before {\r\n content: \"\\e120\";\r\n}\r\n.glyphicon-hdd:before {\r\n content: \"\\e121\";\r\n}\r\n.glyphicon-bullhorn:before {\r\n content: \"\\e122\";\r\n}\r\n.glyphicon-bell:before {\r\n content: \"\\e123\";\r\n}\r\n.glyphicon-certificate:before {\r\n content: \"\\e124\";\r\n}\r\n.glyphicon-thumbs-up:before {\r\n content: \"\\e125\";\r\n}\r\n.glyphicon-thumbs-down:before {\r\n content: \"\\e126\";\r\n}\r\n.glyphicon-hand-right:before {\r\n content: \"\\e127\";\r\n}\r\n.glyphicon-hand-left:before {\r\n content: \"\\e128\";\r\n}\r\n.glyphicon-hand-up:before {\r\n content: \"\\e129\";\r\n}\r\n.glyphicon-hand-down:before {\r\n content: \"\\e130\";\r\n}\r\n.glyphicon-circle-arrow-right:before {\r\n content: \"\\e131\";\r\n}\r\n.glyphicon-circle-arrow-left:before {\r\n content: \"\\e132\";\r\n}\r\n.glyphicon-circle-arrow-up:before {\r\n content: \"\\e133\";\r\n}\r\n.glyphicon-circle-arrow-down:before {\r\n content: \"\\e134\";\r\n}\r\n.glyphicon-globe:before {\r\n content: \"\\e135\";\r\n}\r\n.glyphicon-wrench:before {\r\n content: \"\\e136\";\r\n}\r\n.glyphicon-tasks:before {\r\n content: \"\\e137\";\r\n}\r\n.glyphicon-filter:before {\r\n content: \"\\e138\";\r\n}\r\n.glyphicon-briefcase:before {\r\n content: \"\\e139\";\r\n}\r\n.glyphicon-fullscreen:before {\r\n content: \"\\e140\";\r\n}\r\n.glyphicon-dashboard:before {\r\n content: \"\\e141\";\r\n}\r\n.glyphicon-paperclip:before {\r\n content: \"\\e142\";\r\n}\r\n.glyphicon-heart-empty:before {\r\n content: \"\\e143\";\r\n}\r\n.glyphicon-link:before {\r\n content: \"\\e144\";\r\n}\r\n.glyphicon-phone:before {\r\n content: \"\\e145\";\r\n}\r\n.glyphicon-pushpin:before {\r\n content: \"\\e146\";\r\n}\r\n.glyphicon-usd:before {\r\n content: \"\\e148\";\r\n}\r\n.glyphicon-gbp:before {\r\n content: \"\\e149\";\r\n}\r\n.glyphicon-sort:before {\r\n content: \"\\e150\";\r\n}\r\n.glyphicon-sort-by-alphabet:before {\r\n content: \"\\e151\";\r\n}\r\n.glyphicon-sort-by-alphabet-alt:before {\r\n content: \"\\e152\";\r\n}\r\n.glyphicon-sort-by-order:before {\r\n content: \"\\e153\";\r\n}\r\n.glyphicon-sort-by-order-alt:before {\r\n content: \"\\e154\";\r\n}\r\n.glyphicon-sort-by-attributes:before {\r\n content: \"\\e155\";\r\n}\r\n.glyphicon-sort-by-attributes-alt:before {\r\n content: \"\\e156\";\r\n}\r\n.glyphicon-unchecked:before {\r\n content: \"\\e157\";\r\n}\r\n.glyphicon-expand:before {\r\n content: \"\\e158\";\r\n}\r\n.glyphicon-collapse-down:before {\r\n content: \"\\e159\";\r\n}\r\n.glyphicon-collapse-up:before {\r\n content: \"\\e160\";\r\n}\r\n.glyphicon-log-in:before {\r\n content: \"\\e161\";\r\n}\r\n.glyphicon-flash:before {\r\n content: \"\\e162\";\r\n}\r\n.glyphicon-log-out:before {\r\n content: \"\\e163\";\r\n}\r\n.glyphicon-new-window:before {\r\n content: \"\\e164\";\r\n}\r\n.glyphicon-record:before {\r\n content: \"\\e165\";\r\n}\r\n.glyphicon-save:before {\r\n content: \"\\e166\";\r\n}\r\n.glyphicon-open:before {\r\n content: \"\\e167\";\r\n}\r\n.glyphicon-saved:before {\r\n content: \"\\e168\";\r\n}\r\n.glyphicon-import:before {\r\n content: \"\\e169\";\r\n}\r\n.glyphicon-export:before {\r\n content: \"\\e170\";\r\n}\r\n.glyphicon-send:before {\r\n content: \"\\e171\";\r\n}\r\n.glyphicon-floppy-disk:before {\r\n content: \"\\e172\";\r\n}\r\n.glyphicon-floppy-saved:before {\r\n content: \"\\e173\";\r\n}\r\n.glyphicon-floppy-remove:before {\r\n content: \"\\e174\";\r\n}\r\n.glyphicon-floppy-save:before {\r\n content: \"\\e175\";\r\n}\r\n.glyphicon-floppy-open:before {\r\n content: \"\\e176\";\r\n}\r\n.glyphicon-credit-card:before {\r\n content: \"\\e177\";\r\n}\r\n.glyphicon-transfer:before {\r\n content: \"\\e178\";\r\n}\r\n.glyphicon-cutlery:before {\r\n content: \"\\e179\";\r\n}\r\n.glyphicon-header:before {\r\n content: \"\\e180\";\r\n}\r\n.glyphicon-compressed:before {\r\n content: \"\\e181\";\r\n}\r\n.glyphicon-earphone:before {\r\n content: \"\\e182\";\r\n}\r\n.glyphicon-phone-alt:before {\r\n content: \"\\e183\";\r\n}\r\n.glyphicon-tower:before {\r\n content: \"\\e184\";\r\n}\r\n.glyphicon-stats:before {\r\n content: \"\\e185\";\r\n}\r\n.glyphicon-sd-video:before {\r\n content: \"\\e186\";\r\n}\r\n.glyphicon-hd-video:before {\r\n content: \"\\e187\";\r\n}\r\n.glyphicon-subtitles:before {\r\n content: \"\\e188\";\r\n}\r\n.glyphicon-sound-stereo:before {\r\n content: \"\\e189\";\r\n}\r\n.glyphicon-sound-dolby:before {\r\n content: \"\\e190\";\r\n}\r\n.glyphicon-sound-5-1:before {\r\n content: \"\\e191\";\r\n}\r\n.glyphicon-sound-6-1:before {\r\n content: \"\\e192\";\r\n}\r\n.glyphicon-sound-7-1:before {\r\n content: \"\\e193\";\r\n}\r\n.glyphicon-copyright-mark:before {\r\n content: \"\\e194\";\r\n}\r\n.glyphicon-registration-mark:before {\r\n content: \"\\e195\";\r\n}\r\n.glyphicon-cloud-download:before {\r\n content: \"\\e197\";\r\n}\r\n.glyphicon-cloud-upload:before {\r\n content: \"\\e198\";\r\n}\r\n.glyphicon-tree-conifer:before {\r\n content: \"\\e199\";\r\n}\r\n.glyphicon-tree-deciduous:before {\r\n content: \"\\e200\";\r\n}\r\n.caret {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n margin-left: 2px;\r\n vertical-align: middle;\r\n border-top: 4px solid;\r\n border-right: 4px solid transparent;\r\n border-left: 4px solid transparent;\r\n}\r\n.dropdown {\r\n position: relative;\r\n}\r\n.dropdown-toggle:focus {\r\n outline: 0;\r\n}\r\n.dropdown-menu {\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n z-index: 1000;\r\n display: none;\r\n float: left;\r\n min-width: 160px;\r\n padding: 5px 0;\r\n margin: 2px 0 0;\r\n list-style: none;\r\n font-size: 14px;\r\n background-color: #073642;\r\n border: 1px solid #cccccc;\r\n border: 1px solid #586e75;\r\n border-radius: 4px;\r\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\r\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\r\n background-clip: padding-box;\r\n}\r\n.dropdown-menu.pull-right {\r\n right: 0;\r\n left: auto;\r\n}\r\n.dropdown-menu .divider {\r\n height: 1px;\r\n margin: 9px 0;\r\n overflow: hidden;\r\n background-color: #586e75;\r\n}\r\n.dropdown-menu > li > a {\r\n display: block;\r\n padding: 3px 20px;\r\n clear: both;\r\n font-weight: normal;\r\n line-height: 1.428571429;\r\n color: #586e75;\r\n white-space: nowrap;\r\n}\r\n.dropdown-menu > li > a:hover,\r\n.dropdown-menu > li > a:focus {\r\n text-decoration: none;\r\n color: #ffffff;\r\n background-color: #428bca;\r\n}\r\n.dropdown-menu > .active > a,\r\n.dropdown-menu > .active > a:hover,\r\n.dropdown-menu > .active > a:focus {\r\n color: #ffffff;\r\n text-decoration: none;\r\n outline: 0;\r\n background-color: #428bca;\r\n}\r\n.dropdown-menu > .disabled > a,\r\n.dropdown-menu > .disabled > a:hover,\r\n.dropdown-menu > .disabled > a:focus {\r\n color: #eee8d5;\r\n}\r\n.dropdown-menu > .disabled > a:hover,\r\n.dropdown-menu > .disabled > a:focus {\r\n text-decoration: none;\r\n background-color: transparent;\r\n background-image: none;\r\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\r\n cursor: not-allowed;\r\n}\r\n.open > .dropdown-menu {\r\n display: block;\r\n}\r\n.open > a {\r\n outline: 0;\r\n}\r\n.dropdown-menu-right {\r\n left: auto;\r\n right: 0;\r\n}\r\n.dropdown-menu-left {\r\n left: 0;\r\n right: auto;\r\n}\r\n.dropdown-header {\r\n display: block;\r\n padding: 3px 20px;\r\n font-size: 12px;\r\n line-height: 1.428571429;\r\n color: #eee8d5;\r\n}\r\n.dropdown-backdrop {\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n top: 0;\r\n z-index: 990;\r\n}\r\n.pull-right > .dropdown-menu {\r\n right: 0;\r\n left: auto;\r\n}\r\n.dropup .caret,\r\n.navbar-fixed-bottom .dropdown .caret {\r\n border-top: 0;\r\n border-bottom: 4px solid;\r\n content: \"\";\r\n}\r\n.dropup .dropdown-menu,\r\n.navbar-fixed-bottom .dropdown .dropdown-menu {\r\n top: auto;\r\n bottom: 100%;\r\n margin-bottom: 1px;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-right .dropdown-menu {\r\n left: auto;\r\n right: 0;\r\n }\r\n .navbar-right .dropdown-menu-left {\r\n left: 0;\r\n right: auto;\r\n }\r\n}\r\n.btn-group,\r\n.btn-group-vertical {\r\n position: relative;\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n.btn-group > .btn,\r\n.btn-group-vertical > .btn {\r\n position: relative;\r\n float: left;\r\n}\r\n.btn-group > .btn:hover,\r\n.btn-group-vertical > .btn:hover,\r\n.btn-group > .btn:focus,\r\n.btn-group-vertical > .btn:focus,\r\n.btn-group > .btn:active,\r\n.btn-group-vertical > .btn:active,\r\n.btn-group > .btn.active,\r\n.btn-group-vertical > .btn.active {\r\n z-index: 2;\r\n}\r\n.btn-group > .btn:focus,\r\n.btn-group-vertical > .btn:focus {\r\n outline: none;\r\n}\r\n.btn-group .btn + .btn,\r\n.btn-group .btn + .btn-group,\r\n.btn-group .btn-group + .btn,\r\n.btn-group .btn-group + .btn-group {\r\n margin-left: -1px;\r\n}\r\n.btn-toolbar {\r\n margin-left: -5px;\r\n}\r\n.btn-toolbar .btn-group,\r\n.btn-toolbar .input-group {\r\n float: left;\r\n}\r\n.btn-toolbar > .btn,\r\n.btn-toolbar > .btn-group,\r\n.btn-toolbar > .input-group {\r\n margin-left: 5px;\r\n}\r\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\r\n border-radius: 0;\r\n}\r\n.btn-group > .btn:first-child {\r\n margin-left: 0;\r\n}\r\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\r\n border-bottom-right-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n.btn-group > .btn:last-child:not(:first-child),\r\n.btn-group > .dropdown-toggle:not(:first-child) {\r\n border-bottom-left-radius: 0;\r\n border-top-left-radius: 0;\r\n}\r\n.btn-group > .btn-group {\r\n float: left;\r\n}\r\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\r\n border-radius: 0;\r\n}\r\n.btn-group > .btn-group:first-child > .btn:last-child,\r\n.btn-group > .btn-group:first-child > .dropdown-toggle {\r\n border-bottom-right-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n.btn-group > .btn-group:last-child > .btn:first-child {\r\n border-bottom-left-radius: 0;\r\n border-top-left-radius: 0;\r\n}\r\n.btn-group .dropdown-toggle:active,\r\n.btn-group.open .dropdown-toggle {\r\n outline: 0;\r\n}\r\n.btn-group > .btn + .dropdown-toggle {\r\n padding-left: 8px;\r\n padding-right: 8px;\r\n}\r\n.btn-group > .btn-lg + .dropdown-toggle {\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n}\r\n.btn-group.open .dropdown-toggle {\r\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\r\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\r\n}\r\n.btn-group.open .dropdown-toggle.btn-link {\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n}\r\n.btn .caret {\r\n margin-left: 0;\r\n}\r\n.btn-lg .caret {\r\n border-width: 5px 5px 0;\r\n border-bottom-width: 0;\r\n}\r\n.dropup .btn-lg .caret {\r\n border-width: 0 5px 5px;\r\n}\r\n.btn-group-vertical > .btn,\r\n.btn-group-vertical > .btn-group,\r\n.btn-group-vertical > .btn-group > .btn {\r\n display: block;\r\n float: none;\r\n width: 100%;\r\n max-width: 100%;\r\n}\r\n.btn-group-vertical > .btn-group > .btn {\r\n float: none;\r\n}\r\n.btn-group-vertical > .btn + .btn,\r\n.btn-group-vertical > .btn + .btn-group,\r\n.btn-group-vertical > .btn-group + .btn,\r\n.btn-group-vertical > .btn-group + .btn-group {\r\n margin-top: -1px;\r\n margin-left: 0;\r\n}\r\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\r\n border-radius: 0;\r\n}\r\n.btn-group-vertical > .btn:first-child:not(:last-child) {\r\n border-top-right-radius: 4px;\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n.btn-group-vertical > .btn:last-child:not(:first-child) {\r\n border-bottom-left-radius: 4px;\r\n border-top-right-radius: 0;\r\n border-top-left-radius: 0;\r\n}\r\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\r\n border-radius: 0;\r\n}\r\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\r\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\r\n border-top-right-radius: 0;\r\n border-top-left-radius: 0;\r\n}\r\n.btn-group-justified {\r\n display: table;\r\n width: 100%;\r\n table-layout: fixed;\r\n border-collapse: separate;\r\n}\r\n.btn-group-justified > .btn,\r\n.btn-group-justified > .btn-group {\r\n float: none;\r\n display: table-cell;\r\n width: 1%;\r\n}\r\n.btn-group-justified > .btn-group .btn {\r\n width: 100%;\r\n}\r\n[data-toggle=\"buttons\"] > .btn > input[type=\"radio\"],\r\n[data-toggle=\"buttons\"] > .btn > input[type=\"checkbox\"] {\r\n display: none;\r\n}\r\n.input-group {\r\n position: relative;\r\n display: table;\r\n border-collapse: separate;\r\n}\r\n.input-group[class*=\"col-\"] {\r\n float: none;\r\n padding-left: 0;\r\n padding-right: 0;\r\n}\r\n.input-group .form-control {\r\n float: left;\r\n width: 100%;\r\n margin-bottom: 0;\r\n}\r\n.input-group-lg > .form-control,\r\n.input-group-lg > .input-group-addon,\r\n.input-group-lg > .input-group-btn > .btn {\r\n height: 45px;\r\n padding: 10px 16px;\r\n font-size: 18px;\r\n line-height: 1.33;\r\n border-radius: 6px;\r\n}\r\nselect.input-group-lg > .form-control,\r\nselect.input-group-lg > .input-group-addon,\r\nselect.input-group-lg > .input-group-btn > .btn {\r\n height: 45px;\r\n line-height: 45px;\r\n}\r\ntextarea.input-group-lg > .form-control,\r\ntextarea.input-group-lg > .input-group-addon,\r\ntextarea.input-group-lg > .input-group-btn > .btn,\r\nselect[multiple].input-group-lg > .form-control,\r\nselect[multiple].input-group-lg > .input-group-addon,\r\nselect[multiple].input-group-lg > .input-group-btn > .btn {\r\n height: auto;\r\n}\r\n.input-group-sm > .form-control,\r\n.input-group-sm > .input-group-addon,\r\n.input-group-sm > .input-group-btn > .btn {\r\n height: 30px;\r\n padding: 5px 10px;\r\n font-size: 12px;\r\n line-height: 1.5;\r\n border-radius: 3px;\r\n}\r\nselect.input-group-sm > .form-control,\r\nselect.input-group-sm > .input-group-addon,\r\nselect.input-group-sm > .input-group-btn > .btn {\r\n height: 30px;\r\n line-height: 30px;\r\n}\r\ntextarea.input-group-sm > .form-control,\r\ntextarea.input-group-sm > .input-group-addon,\r\ntextarea.input-group-sm > .input-group-btn > .btn,\r\nselect[multiple].input-group-sm > .form-control,\r\nselect[multiple].input-group-sm > .input-group-addon,\r\nselect[multiple].input-group-sm > .input-group-btn > .btn {\r\n height: auto;\r\n}\r\n.input-group-addon,\r\n.input-group-btn,\r\n.input-group .form-control {\r\n display: table-cell;\r\n}\r\n.input-group-addon:not(:first-child):not(:last-child),\r\n.input-group-btn:not(:first-child):not(:last-child),\r\n.input-group .form-control:not(:first-child):not(:last-child) {\r\n border-radius: 0;\r\n}\r\n.input-group-addon,\r\n.input-group-btn {\r\n width: 1%;\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n}\r\n.input-group-addon {\r\n padding: 6px 12px;\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 1;\r\n color: #eee8d5;\r\n text-align: center;\r\n background-color: #586e75;\r\n border: 1px solid #586e75;\r\n border-radius: 4px;\r\n}\r\n.input-group-addon.input-sm {\r\n padding: 5px 10px;\r\n font-size: 12px;\r\n border-radius: 3px;\r\n}\r\n.input-group-addon.input-lg {\r\n padding: 10px 16px;\r\n font-size: 18px;\r\n border-radius: 6px;\r\n}\r\n.input-group-addon input[type=\"radio\"],\r\n.input-group-addon input[type=\"checkbox\"] {\r\n margin-top: 0;\r\n}\r\n.input-group .form-control:first-child,\r\n.input-group-addon:first-child,\r\n.input-group-btn:first-child > .btn,\r\n.input-group-btn:first-child > .btn-group > .btn,\r\n.input-group-btn:first-child > .dropdown-toggle,\r\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\r\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\r\n border-bottom-right-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n.input-group-addon:first-child {\r\n border-right: 0;\r\n}\r\n.input-group .form-control:last-child,\r\n.input-group-addon:last-child,\r\n.input-group-btn:last-child > .btn,\r\n.input-group-btn:last-child > .btn-group > .btn,\r\n.input-group-btn:last-child > .dropdown-toggle,\r\n.input-group-btn:first-child > .btn:not(:first-child),\r\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\r\n border-bottom-left-radius: 0;\r\n border-top-left-radius: 0;\r\n}\r\n.input-group-addon:last-child {\r\n border-left: 0;\r\n}\r\n.input-group-btn {\r\n position: relative;\r\n font-size: 0;\r\n white-space: nowrap;\r\n}\r\n.input-group-btn > .btn {\r\n position: relative;\r\n}\r\n.input-group-btn > .btn + .btn {\r\n margin-left: -1px;\r\n}\r\n.input-group-btn > .btn:hover,\r\n.input-group-btn > .btn:focus,\r\n.input-group-btn > .btn:active {\r\n z-index: 2;\r\n}\r\n.input-group-btn:first-child > .btn,\r\n.input-group-btn:first-child > .btn-group {\r\n margin-right: -1px;\r\n}\r\n.input-group-btn:last-child > .btn,\r\n.input-group-btn:last-child > .btn-group {\r\n margin-left: -1px;\r\n}\r\n.nav {\r\n margin-bottom: 0;\r\n padding-left: 0;\r\n list-style: none;\r\n}\r\n.nav > li {\r\n position: relative;\r\n display: block;\r\n}\r\n.nav > li > a {\r\n position: relative;\r\n display: block;\r\n padding: 10px 15px;\r\n}\r\n.nav > li > a:hover,\r\n.nav > li > a:focus {\r\n text-decoration: none;\r\n background-color: #fdf6e3;\r\n}\r\n.nav > li.disabled > a {\r\n color: #eee8d5;\r\n}\r\n.nav > li.disabled > a:hover,\r\n.nav > li.disabled > a:focus {\r\n color: #eee8d5;\r\n text-decoration: none;\r\n background-color: transparent;\r\n cursor: not-allowed;\r\n}\r\n.nav .open > a,\r\n.nav .open > a:hover,\r\n.nav .open > a:focus {\r\n background-color: #fdf6e3;\r\n border-color: #428bca;\r\n}\r\n.nav .nav-divider {\r\n height: 1px;\r\n margin: 9px 0;\r\n overflow: hidden;\r\n background-color: #e5e5e5;\r\n}\r\n.nav > li > a > img {\r\n max-width: none;\r\n}\r\n.nav-tabs {\r\n border-bottom: 1px solid #586e75;\r\n}\r\n.nav-tabs > li {\r\n float: left;\r\n margin-bottom: -1px;\r\n}\r\n.nav-tabs > li > a {\r\n margin-right: 2px;\r\n line-height: 1.428571429;\r\n border: 1px solid transparent;\r\n border-radius: 4px 4px 0 0;\r\n}\r\n.nav-tabs > li > a:hover {\r\n border-color: #657b83 #657b83 #586e75;\r\n}\r\n.nav-tabs > li.active > a,\r\n.nav-tabs > li.active > a:hover,\r\n.nav-tabs > li.active > a:focus {\r\n color: #93a1a1;\r\n background-color: #002b36;\r\n border: 1px solid #586e75;\r\n border-bottom-color: transparent;\r\n cursor: default;\r\n}\r\n.nav-tabs.nav-justified {\r\n width: 100%;\r\n border-bottom: 0;\r\n}\r\n.nav-tabs.nav-justified > li {\r\n float: none;\r\n}\r\n.nav-tabs.nav-justified > li > a {\r\n text-align: center;\r\n margin-bottom: 5px;\r\n}\r\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\r\n top: auto;\r\n left: auto;\r\n}\r\n@media (min-width: 768px) {\r\n .nav-tabs.nav-justified > li {\r\n display: table-cell;\r\n width: 1%;\r\n }\r\n .nav-tabs.nav-justified > li > a {\r\n margin-bottom: 0;\r\n }\r\n}\r\n.nav-tabs.nav-justified > li > a {\r\n margin-right: 0;\r\n border-radius: 4px;\r\n}\r\n.nav-tabs.nav-justified > .active > a,\r\n.nav-tabs.nav-justified > .active > a:hover,\r\n.nav-tabs.nav-justified > .active > a:focus {\r\n border: 1px solid #586e75;\r\n}\r\n@media (min-width: 768px) {\r\n .nav-tabs.nav-justified > li > a {\r\n border-bottom: 1px solid #586e75;\r\n border-radius: 4px 4px 0 0;\r\n }\r\n .nav-tabs.nav-justified > .active > a,\r\n .nav-tabs.nav-justified > .active > a:hover,\r\n .nav-tabs.nav-justified > .active > a:focus {\r\n border-bottom-color: #002b36;\r\n }\r\n}\r\n.nav-pills > li {\r\n float: left;\r\n}\r\n.nav-pills > li > a {\r\n border-radius: 4px;\r\n}\r\n.nav-pills > li + li {\r\n margin-left: 2px;\r\n}\r\n.nav-pills > li.active > a,\r\n.nav-pills > li.active > a:hover,\r\n.nav-pills > li.active > a:focus {\r\n color: #ffffff;\r\n background-color: #428bca;\r\n}\r\n.nav-stacked > li {\r\n float: none;\r\n}\r\n.nav-stacked > li + li {\r\n margin-top: 2px;\r\n margin-left: 0;\r\n}\r\n.nav-justified {\r\n width: 100%;\r\n}\r\n.nav-justified > li {\r\n float: none;\r\n}\r\n.nav-justified > li > a {\r\n text-align: center;\r\n margin-bottom: 5px;\r\n}\r\n.nav-justified > .dropdown .dropdown-menu {\r\n top: auto;\r\n left: auto;\r\n}\r\n@media (min-width: 768px) {\r\n .nav-justified > li {\r\n display: table-cell;\r\n width: 1%;\r\n }\r\n .nav-justified > li > a {\r\n margin-bottom: 0;\r\n }\r\n}\r\n.nav-tabs-justified {\r\n border-bottom: 0;\r\n}\r\n.nav-tabs-justified > li > a {\r\n margin-right: 0;\r\n border-radius: 4px;\r\n}\r\n.nav-tabs-justified > .active > a,\r\n.nav-tabs-justified > .active > a:hover,\r\n.nav-tabs-justified > .active > a:focus {\r\n border: 1px solid #586e75;\r\n}\r\n@media (min-width: 768px) {\r\n .nav-tabs-justified > li > a {\r\n border-bottom: 1px solid #586e75;\r\n border-radius: 4px 4px 0 0;\r\n }\r\n .nav-tabs-justified > .active > a,\r\n .nav-tabs-justified > .active > a:hover,\r\n .nav-tabs-justified > .active > a:focus {\r\n border-bottom-color: #002b36;\r\n }\r\n}\r\n.tab-content > .tab-pane {\r\n display: none;\r\n}\r\n.tab-content > .active {\r\n display: block;\r\n}\r\n.nav-tabs .dropdown-menu {\r\n margin-top: -1px;\r\n border-top-right-radius: 0;\r\n border-top-left-radius: 0;\r\n}\r\n.navbar {\r\n position: relative;\r\n min-height: 50px;\r\n margin-bottom: 20px;\r\n border: 1px solid transparent;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar {\r\n border-radius: 4px;\r\n }\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-header {\r\n float: left;\r\n }\r\n}\r\n.navbar-collapse {\r\n max-height: 340px;\r\n overflow-x: visible;\r\n padding-right: 15px;\r\n padding-left: 15px;\r\n border-top: 1px solid transparent;\r\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\r\n -webkit-overflow-scrolling: touch;\r\n}\r\n.navbar-collapse.in {\r\n overflow-y: auto;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-collapse {\r\n width: auto;\r\n border-top: 0;\r\n box-shadow: none;\r\n }\r\n .navbar-collapse.collapse {\r\n display: block !important;\r\n height: auto !important;\r\n padding-bottom: 0;\r\n overflow: visible !important;\r\n }\r\n .navbar-collapse.in {\r\n overflow-y: visible;\r\n }\r\n .navbar-fixed-top .navbar-collapse,\r\n .navbar-static-top .navbar-collapse,\r\n .navbar-fixed-bottom .navbar-collapse {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n}\r\n.container > .navbar-header,\r\n.container-fluid > .navbar-header,\r\n.container > .navbar-collapse,\r\n.container-fluid > .navbar-collapse {\r\n margin-right: -15px;\r\n margin-left: -15px;\r\n}\r\n@media (min-width: 768px) {\r\n .container > .navbar-header,\r\n .container-fluid > .navbar-header,\r\n .container > .navbar-collapse,\r\n .container-fluid > .navbar-collapse {\r\n margin-right: 0;\r\n margin-left: 0;\r\n }\r\n}\r\n.navbar-static-top {\r\n z-index: 1000;\r\n border-width: 0 0 1px;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-static-top {\r\n border-radius: 0;\r\n }\r\n}\r\n.navbar-fixed-top,\r\n.navbar-fixed-bottom {\r\n position: fixed;\r\n right: 0;\r\n left: 0;\r\n z-index: 1030;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-fixed-top,\r\n .navbar-fixed-bottom {\r\n border-radius: 0;\r\n }\r\n}\r\n.navbar-fixed-top {\r\n top: 0;\r\n border-width: 0 0 1px;\r\n}\r\n.navbar-fixed-bottom {\r\n bottom: 0;\r\n margin-bottom: 0;\r\n border-width: 1px 0 0;\r\n}\r\n.navbar-brand {\r\n float: left;\r\n padding: 15px 15px;\r\n font-size: 18px;\r\n line-height: 20px;\r\n height: 50px;\r\n}\r\n.navbar-brand:hover,\r\n.navbar-brand:focus {\r\n text-decoration: none;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar > .container .navbar-brand,\r\n .navbar > .container-fluid .navbar-brand {\r\n margin-left: -15px;\r\n }\r\n}\r\n.navbar-toggle {\r\n position: relative;\r\n float: right;\r\n margin-right: 15px;\r\n padding: 9px 10px;\r\n margin-top: 8px;\r\n margin-bottom: 8px;\r\n background-color: transparent;\r\n background-image: none;\r\n border: 1px solid transparent;\r\n border-radius: 4px;\r\n}\r\n.navbar-toggle:focus {\r\n outline: none;\r\n}\r\n.navbar-toggle .icon-bar {\r\n display: block;\r\n width: 22px;\r\n height: 2px;\r\n border-radius: 1px;\r\n}\r\n.navbar-toggle .icon-bar + .icon-bar {\r\n margin-top: 4px;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-toggle {\r\n display: none;\r\n }\r\n}\r\n.navbar-nav {\r\n margin: 7.5px -15px;\r\n}\r\n.navbar-nav > li > a {\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n line-height: 20px;\r\n}\r\n@media (max-width: 767px) {\r\n .navbar-nav .open .dropdown-menu {\r\n position: static;\r\n float: none;\r\n width: auto;\r\n margin-top: 0;\r\n background-color: transparent;\r\n border: 0;\r\n box-shadow: none;\r\n }\r\n .navbar-nav .open .dropdown-menu > li > a,\r\n .navbar-nav .open .dropdown-menu .dropdown-header {\r\n padding: 5px 15px 5px 25px;\r\n }\r\n .navbar-nav .open .dropdown-menu > li > a {\r\n line-height: 20px;\r\n }\r\n .navbar-nav .open .dropdown-menu > li > a:hover,\r\n .navbar-nav .open .dropdown-menu > li > a:focus {\r\n background-image: none;\r\n }\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-nav {\r\n float: left;\r\n margin: 0;\r\n }\r\n .navbar-nav > li {\r\n float: left;\r\n }\r\n .navbar-nav > li > a {\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n }\r\n .navbar-nav.navbar-right:last-child {\r\n margin-right: -15px;\r\n }\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-left {\r\n float: left !important;\r\n }\r\n .navbar-right {\r\n float: right !important;\r\n }\r\n}\r\n.navbar-form {\r\n margin-left: -15px;\r\n margin-right: -15px;\r\n padding: 10px 15px;\r\n border-top: 1px solid transparent;\r\n border-bottom: 1px solid transparent;\r\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\r\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\r\n margin-top: 8px;\r\n margin-bottom: 8px;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-form .form-group {\r\n display: inline-block;\r\n margin-bottom: 0;\r\n vertical-align: middle;\r\n }\r\n .navbar-form .form-control {\r\n display: inline-block;\r\n width: auto;\r\n vertical-align: middle;\r\n }\r\n .navbar-form .input-group > .form-control {\r\n width: 100%;\r\n }\r\n .navbar-form .control-label {\r\n margin-bottom: 0;\r\n vertical-align: middle;\r\n }\r\n .navbar-form .radio,\r\n .navbar-form .checkbox {\r\n display: inline-block;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n padding-left: 0;\r\n vertical-align: middle;\r\n }\r\n .navbar-form .radio input[type=\"radio\"],\r\n .navbar-form .checkbox input[type=\"checkbox\"] {\r\n float: none;\r\n margin-left: 0;\r\n }\r\n .navbar-form .has-feedback .form-control-feedback {\r\n top: 0;\r\n }\r\n}\r\n@media (max-width: 767px) {\r\n .navbar-form .form-group {\r\n margin-bottom: 5px;\r\n }\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-form {\r\n width: auto;\r\n border: 0;\r\n margin-left: 0;\r\n margin-right: 0;\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n }\r\n .navbar-form.navbar-right:last-child {\r\n margin-right: -15px;\r\n }\r\n}\r\n.navbar-nav > li > .dropdown-menu {\r\n margin-top: 0;\r\n border-top-right-radius: 0;\r\n border-top-left-radius: 0;\r\n}\r\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n.navbar-btn {\r\n margin-top: 8px;\r\n margin-bottom: 8px;\r\n}\r\n.navbar-btn.btn-sm {\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n}\r\n.navbar-btn.btn-xs {\r\n margin-top: 14px;\r\n margin-bottom: 14px;\r\n}\r\n.navbar-text {\r\n margin-top: 15px;\r\n margin-bottom: 15px;\r\n}\r\n@media (min-width: 768px) {\r\n .navbar-text {\r\n float: left;\r\n margin-left: 15px;\r\n margin-right: 15px;\r\n }\r\n .navbar-text.navbar-right:last-child {\r\n margin-right: 0;\r\n }\r\n}\r\n.navbar-default {\r\n background-color: #073642;\r\n border-color: #586e75;\r\n}\r\n.navbar-default .navbar-brand {\r\n color: #eee8d5;\r\n}\r\n.navbar-default .navbar-brand:hover,\r\n.navbar-default .navbar-brand:focus {\r\n color: #2aa198;\r\n background-color: transparent;\r\n}\r\n.navbar-default .navbar-text {\r\n color: #93a1a1;\r\n}\r\n.navbar-default .navbar-nav > li > a {\r\n color: #93a1a1;\r\n}\r\n.navbar-default .navbar-nav > li > a:hover,\r\n.navbar-default .navbar-nav > li > a:focus {\r\n color: #2aa198;\r\n background-color: transparent;\r\n}\r\n.navbar-default .navbar-nav > .active > a,\r\n.navbar-default .navbar-nav > .active > a:hover,\r\n.navbar-default .navbar-nav > .active > a:focus {\r\n color: #555555;\r\n background-color: #e7e7e7;\r\n}\r\n.navbar-default .navbar-nav > .disabled > a,\r\n.navbar-default .navbar-nav > .disabled > a:hover,\r\n.navbar-default .navbar-nav > .disabled > a:focus {\r\n color: #cccccc;\r\n background-color: transparent;\r\n}\r\n.navbar-default .navbar-toggle {\r\n border-color: #586e75;\r\n}\r\n.navbar-default .navbar-toggle:hover,\r\n.navbar-default .navbar-toggle:focus {\r\n background-color: #586e75;\r\n}\r\n.navbar-default .navbar-toggle .icon-bar {\r\n background-color: #888888;\r\n}\r\n.navbar-default .navbar-collapse,\r\n.navbar-default .navbar-form {\r\n border-color: #e7e7e7;\r\n}\r\n.navbar-default .navbar-nav > .open > a,\r\n.navbar-default .navbar-nav > .open > a:hover,\r\n.navbar-default .navbar-nav > .open > a:focus {\r\n background-color: #e7e7e7;\r\n color: #555555;\r\n}\r\n@media (max-width: 767px) {\r\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\r\n color: #777777;\r\n }\r\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\r\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\r\n color: #333333;\r\n background-color: transparent;\r\n }\r\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\r\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\r\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\r\n color: #555555;\r\n background-color: #e7e7e7;\r\n }\r\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\r\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\r\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\r\n color: #cccccc;\r\n background-color: transparent;\r\n }\r\n}\r\n.navbar-default .navbar-link {\r\n color: #777777;\r\n}\r\n.navbar-default .navbar-link:hover {\r\n color: #333333;\r\n}\r\n.navbar-inverse {\r\n background-color: #222222;\r\n border-color: #080808;\r\n}\r\n.navbar-inverse .navbar-brand {\r\n color: #eee8d5;\r\n}\r\n.navbar-inverse .navbar-brand:hover,\r\n.navbar-inverse .navbar-brand:focus {\r\n color: #ffffff;\r\n background-color: transparent;\r\n}\r\n.navbar-inverse .navbar-text {\r\n color: #eee8d5;\r\n}\r\n.navbar-inverse .navbar-nav > li > a {\r\n color: #eee8d5;\r\n}\r\n.navbar-inverse .navbar-nav > li > a:hover,\r\n.navbar-inverse .navbar-nav > li > a:focus {\r\n color: #ffffff;\r\n background-color: transparent;\r\n}\r\n.navbar-inverse .navbar-nav > .active > a,\r\n.navbar-inverse .navbar-nav > .active > a:hover,\r\n.navbar-inverse .navbar-nav > .active > a:focus {\r\n color: #ffffff;\r\n background-color: #080808;\r\n}\r\n.navbar-inverse .navbar-nav > .disabled > a,\r\n.navbar-inverse .navbar-nav > .disabled > a:hover,\r\n.navbar-inverse .navbar-nav > .disabled > a:focus {\r\n color: #444444;\r\n background-color: transparent;\r\n}\r\n.navbar-inverse .navbar-toggle {\r\n border-color: #333333;\r\n}\r\n.navbar-inverse .navbar-toggle:hover,\r\n.navbar-inverse .navbar-toggle:focus {\r\n background-color: #333333;\r\n}\r\n.navbar-inverse .navbar-toggle .icon-bar {\r\n background-color: #ffffff;\r\n}\r\n.navbar-inverse .navbar-collapse,\r\n.navbar-inverse .navbar-form {\r\n border-color: #101010;\r\n}\r\n.navbar-inverse .navbar-nav > .open > a,\r\n.navbar-inverse .navbar-nav > .open > a:hover,\r\n.navbar-inverse .navbar-nav > .open > a:focus {\r\n background-color: #080808;\r\n color: #ffffff;\r\n}\r\n@media (max-width: 767px) {\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\r\n border-color: #080808;\r\n }\r\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\r\n background-color: #080808;\r\n }\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\r\n color: #eee8d5;\r\n }\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\r\n color: #ffffff;\r\n background-color: transparent;\r\n }\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\r\n color: #ffffff;\r\n background-color: #080808;\r\n }\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\r\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\r\n color: #444444;\r\n background-color: transparent;\r\n }\r\n}\r\n.navbar-inverse .navbar-link {\r\n color: #eee8d5;\r\n}\r\n.navbar-inverse .navbar-link:hover {\r\n color: #ffffff;\r\n}\r\n.breadcrumb {\r\n padding: 8px 15px;\r\n margin-bottom: 20px;\r\n list-style: none;\r\n background-color: #073642;\r\n border-radius: 4px;\r\n}\r\n.breadcrumb > li {\r\n display: inline-block;\r\n}\r\n.breadcrumb > li + li:before {\r\n content: \"\\00a0\";\r\n padding: 0 5px;\r\n color: #cccccc;\r\n}\r\n.breadcrumb > .active {\r\n color: #eee8d5;\r\n}\r\n.pagination {\r\n display: inline-block;\r\n padding-left: 0;\r\n margin: 20px 0;\r\n border-radius: 4px;\r\n}\r\n.pagination > li {\r\n display: inline;\r\n}\r\n.pagination > li > a,\r\n.pagination > li > span {\r\n position: relative;\r\n float: left;\r\n padding: 6px 12px;\r\n line-height: 1.428571429;\r\n text-decoration: none;\r\n color: #428bca;\r\n background-color: #073642;\r\n border: 1px solid #586e75;\r\n margin-left: -1px;\r\n}\r\n.pagination > li:first-child > a,\r\n.pagination > li:first-child > span {\r\n margin-left: 0;\r\n border-bottom-left-radius: 4px;\r\n border-top-left-radius: 4px;\r\n}\r\n.pagination > li:last-child > a,\r\n.pagination > li:last-child > span {\r\n border-bottom-right-radius: 4px;\r\n border-top-right-radius: 4px;\r\n}\r\n.pagination > li > a:hover,\r\n.pagination > li > span:hover,\r\n.pagination > li > a:focus,\r\n.pagination > li > span:focus {\r\n color: #2a6496;\r\n background-color: #fdf6e3;\r\n border-color: #dddddd;\r\n}\r\n.pagination > .active > a,\r\n.pagination > .active > span,\r\n.pagination > .active > a:hover,\r\n.pagination > .active > span:hover,\r\n.pagination > .active > a:focus,\r\n.pagination > .active > span:focus {\r\n z-index: 2;\r\n color: #ffffff;\r\n background-color: #428bca;\r\n border-color: #428bca;\r\n cursor: default;\r\n}\r\n.pagination > .disabled > span,\r\n.pagination > .disabled > span:hover,\r\n.pagination > .disabled > span:focus,\r\n.pagination > .disabled > a,\r\n.pagination > .disabled > a:hover,\r\n.pagination > .disabled > a:focus {\r\n color: #eee8d5;\r\n background-color: #586e75;\r\n border-color: #586e75;\r\n cursor: not-allowed;\r\n}\r\n.pagination-lg > li > a,\r\n.pagination-lg > li > span {\r\n padding: 10px 16px;\r\n font-size: 18px;\r\n}\r\n.pagination-lg > li:first-child > a,\r\n.pagination-lg > li:first-child > span {\r\n border-bottom-left-radius: 6px;\r\n border-top-left-radius: 6px;\r\n}\r\n.pagination-lg > li:last-child > a,\r\n.pagination-lg > li:last-child > span {\r\n border-bottom-right-radius: 6px;\r\n border-top-right-radius: 6px;\r\n}\r\n.pagination-sm > li > a,\r\n.pagination-sm > li > span {\r\n padding: 5px 10px;\r\n font-size: 12px;\r\n}\r\n.pagination-sm > li:first-child > a,\r\n.pagination-sm > li:first-child > span {\r\n border-bottom-left-radius: 3px;\r\n border-top-left-radius: 3px;\r\n}\r\n.pagination-sm > li:last-child > a,\r\n.pagination-sm > li:last-child > span {\r\n border-bottom-right-radius: 3px;\r\n border-top-right-radius: 3px;\r\n}\r\n.pager {\r\n padding-left: 0;\r\n margin: 20px 0;\r\n list-style: none;\r\n text-align: center;\r\n}\r\n.pager li {\r\n display: inline;\r\n}\r\n.pager li > a,\r\n.pager li > span {\r\n display: inline-block;\r\n padding: 5px 14px;\r\n background-color: #073642;\r\n border: 1px solid #586e75;\r\n border-radius: 15px;\r\n}\r\n.pager li > a:hover,\r\n.pager li > a:focus {\r\n text-decoration: none;\r\n background-color: #fdf6e3;\r\n}\r\n.pager .next > a,\r\n.pager .next > span {\r\n float: right;\r\n}\r\n.pager .previous > a,\r\n.pager .previous > span {\r\n float: left;\r\n}\r\n.pager .disabled > a,\r\n.pager .disabled > a:hover,\r\n.pager .disabled > a:focus,\r\n.pager .disabled > span {\r\n color: #eee8d5;\r\n background-color: #073642;\r\n cursor: not-allowed;\r\n}\r\n.label {\r\n display: inline;\r\n padding: .2em .6em .3em;\r\n font-size: 75%;\r\n font-weight: bold;\r\n line-height: 1;\r\n color: #ffffff;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: baseline;\r\n border-radius: .25em;\r\n}\r\n.label[href]:hover,\r\n.label[href]:focus {\r\n color: #ffffff;\r\n text-decoration: none;\r\n cursor: pointer;\r\n}\r\n.label:empty {\r\n display: none;\r\n}\r\n.btn .label {\r\n position: relative;\r\n top: -1px;\r\n}\r\n.label-default {\r\n background-color: #586e75;\r\n}\r\n.label-default[href]:hover,\r\n.label-default[href]:focus {\r\n background-color: #dfd4b1;\r\n}\r\n.label-primary {\r\n background-color: #428bca;\r\n}\r\n.label-primary[href]:hover,\r\n.label-primary[href]:focus {\r\n background-color: #3071a9;\r\n}\r\n.label-success {\r\n background-color: #5cb85c;\r\n}\r\n.label-success[href]:hover,\r\n.label-success[href]:focus {\r\n background-color: #449d44;\r\n}\r\n.label-info {\r\n background-color: #5bc0de;\r\n}\r\n.label-info[href]:hover,\r\n.label-info[href]:focus {\r\n background-color: #31b0d5;\r\n}\r\n.label-warning {\r\n background-color: #f0ad4e;\r\n}\r\n.label-warning[href]:hover,\r\n.label-warning[href]:focus {\r\n background-color: #ec971f;\r\n}\r\n.label-danger {\r\n background-color: #d9534f;\r\n}\r\n.label-danger[href]:hover,\r\n.label-danger[href]:focus {\r\n background-color: #c9302c;\r\n}\r\n.badge {\r\n display: inline-block;\r\n min-width: 10px;\r\n padding: 3px 7px;\r\n font-size: 12px;\r\n font-weight: bold;\r\n color: : #fff;\r\n line-height: 1;\r\n vertical-align: baseline;\r\n white-space: nowrap;\r\n text-align: center;\r\n background-color: #586e75;\r\n border-radius: 10px;\r\n}\r\n.badge:empty {\r\n display: none;\r\n}\r\n.btn .badge {\r\n position: relative;\r\n top: -1px;\r\n}\r\n.btn-xs .badge {\r\n top: 0;\r\n padding: 1px 5px;\r\n}\r\na.badge:hover,\r\na.badge:focus {\r\n color: #ffffff;\r\n text-decoration: none;\r\n cursor: pointer;\r\n}\r\na.list-group-item.active > .badge,\r\n.nav-pills > .active > a > .badge {\r\n color: #428bca;\r\n background-color: #ffffff;\r\n}\r\n.nav-pills > li > a > .badge {\r\n margin-left: 3px;\r\n}\r\n.jumbotron {\r\n padding: 30px;\r\n margin-bottom: 30px;\r\n color: inherit;\r\n background-color: #073642;\r\n}\r\n.jumbotron h1,\r\n.jumbotron .h1 {\r\n color: inherit;\r\n}\r\n.jumbotron p {\r\n margin-bottom: 15px;\r\n font-size: 21px;\r\n font-weight: 200;\r\n}\r\n.container .jumbotron {\r\n border-radius: 6px;\r\n}\r\n.jumbotron .container {\r\n max-width: 100%;\r\n}\r\n@media screen and (min-width: 768px) {\r\n .jumbotron {\r\n padding-top: 48px;\r\n padding-bottom: 48px;\r\n }\r\n .container .jumbotron {\r\n padding-left: 60px;\r\n padding-right: 60px;\r\n }\r\n .jumbotron h1,\r\n .jumbotron .h1 {\r\n font-size: 63px;\r\n }\r\n}\r\n.thumbnail {\r\n display: block;\r\n padding: 4px;\r\n margin-bottom: 20px;\r\n line-height: 1.428571429;\r\n background-color: #002b36;\r\n border: 1px solid #586e75;\r\n border-radius: 4px;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n}\r\n.thumbnail > img,\r\n.thumbnail a > img {\r\n margin-left: auto;\r\n margin-right: auto;\r\n}\r\na.thumbnail:hover,\r\na.thumbnail:focus,\r\na.thumbnail.active {\r\n border-color: #428bca;\r\n}\r\n.thumbnail .caption {\r\n padding: 9px;\r\n color: #839496;\r\n}\r\n.alert {\r\n padding: 15px;\r\n margin-bottom: 20px;\r\n border: 1px solid transparent;\r\n border-radius: 4px;\r\n}\r\n.alert h4 {\r\n margin-top: 0;\r\n color: inherit;\r\n}\r\n.alert .alert-link {\r\n font-weight: bold;\r\n}\r\n.alert > p,\r\n.alert > ul {\r\n margin-bottom: 0;\r\n}\r\n.alert > p + p {\r\n margin-top: 5px;\r\n}\r\n.alert-dismissable {\r\n padding-right: 35px;\r\n}\r\n.alert-dismissable .close {\r\n position: relative;\r\n top: -2px;\r\n right: -21px;\r\n color: inherit;\r\n}\r\n.alert-success {\r\n background-color: #dff0d8;\r\n border-color: #d6e9c6;\r\n color: #468847;\r\n}\r\n.alert-success hr {\r\n border-top-color: #c9e2b3;\r\n}\r\n.alert-success .alert-link {\r\n color: #356635;\r\n}\r\n.alert-info {\r\n background-color: #d9edf7;\r\n border-color: #bce8f1;\r\n color: #3a87ad;\r\n}\r\n.alert-info hr {\r\n border-top-color: #a6e1ec;\r\n}\r\n.alert-info .alert-link {\r\n color: #2d6987;\r\n}\r\n.alert-warning {\r\n background-color: #fcf8e3;\r\n border-color: #fbeed5;\r\n color: #c09853;\r\n}\r\n.alert-warning hr {\r\n border-top-color: #f8e5be;\r\n}\r\n.alert-warning .alert-link {\r\n color: #a47e3c;\r\n}\r\n.alert-danger {\r\n background-color: #f2dede;\r\n border-color: #eed3d7;\r\n color: #b94a48;\r\n}\r\n.alert-danger hr {\r\n border-top-color: #e6c1c7;\r\n}\r\n.alert-danger .alert-link {\r\n color: #953b39;\r\n}\r\n@-webkit-keyframes progress-bar-stripes {\r\n from {\r\n background-position: 40px 0;\r\n }\r\n to {\r\n background-position: 0 0;\r\n }\r\n}\r\n@keyframes progress-bar-stripes {\r\n from {\r\n background-position: 40px 0;\r\n }\r\n to {\r\n background-position: 0 0;\r\n }\r\n}\r\n.progress {\r\n overflow: hidden;\r\n height: 20px;\r\n margin-bottom: 20px;\r\n background-color: #073642;\r\n border-radius: 4px;\r\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\r\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\r\n}\r\n.progress-bar {\r\n float: left;\r\n width: 0%;\r\n height: 100%;\r\n font-size: 12px;\r\n line-height: 20px;\r\n color: #ffffff;\r\n text-align: center;\r\n background-color: #428bca;\r\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\r\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\r\n -webkit-transition: width 0.6s ease;\r\n transition: width 0.6s ease;\r\n}\r\n.progress-striped .progress-bar {\r\n 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);\r\n 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);\r\n background-size: 40px 40px;\r\n}\r\n.progress.active .progress-bar {\r\n -webkit-animation: progress-bar-stripes 2s linear infinite;\r\n animation: progress-bar-stripes 2s linear infinite;\r\n}\r\n.progress-bar-success {\r\n background-color: #5cb85c;\r\n}\r\n.progress-striped .progress-bar-success {\r\n 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);\r\n 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);\r\n}\r\n.progress-bar-info {\r\n background-color: #5bc0de;\r\n}\r\n.progress-striped .progress-bar-info {\r\n 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);\r\n 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);\r\n}\r\n.progress-bar-warning {\r\n background-color: #f0ad4e;\r\n}\r\n.progress-striped .progress-bar-warning {\r\n 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);\r\n 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);\r\n}\r\n.progress-bar-danger {\r\n background-color: #d9534f;\r\n}\r\n.progress-striped .progress-bar-danger {\r\n 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);\r\n 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);\r\n}\r\n.media,\r\n.media-body {\r\n overflow: hidden;\r\n zoom: 1;\r\n}\r\n.media,\r\n.media .media {\r\n margin-top: 15px;\r\n}\r\n.media:first-child {\r\n margin-top: 0;\r\n}\r\n.media-object {\r\n display: block;\r\n}\r\n.media-heading {\r\n margin: 0 0 5px;\r\n}\r\n.media > .pull-left {\r\n margin-right: 10px;\r\n}\r\n.media > .pull-right {\r\n margin-left: 10px;\r\n}\r\n.media-list {\r\n padding-left: 0;\r\n list-style: none;\r\n}\r\n.list-group {\r\n margin-bottom: 20px;\r\n padding-left: 0;\r\n}\r\n.list-group-item {\r\n position: relative;\r\n display: block;\r\n padding: 10px 15px;\r\n margin-bottom: -1px;\r\n background-color: #073642;\r\n border: 1px solid #586e75;\r\n}\r\n.list-group-item:first-child {\r\n border-top-right-radius: 4px;\r\n border-top-left-radius: 4px;\r\n}\r\n.list-group-item:last-child {\r\n margin-bottom: 0;\r\n border-bottom-right-radius: 4px;\r\n border-bottom-left-radius: 4px;\r\n}\r\n.list-group-item > .badge {\r\n float: right;\r\n}\r\n.list-group-item > .badge + .badge {\r\n margin-right: 5px;\r\n}\r\na.list-group-item {\r\n color: #555555;\r\n}\r\na.list-group-item .list-group-item-heading {\r\n color: #586e75;\r\n}\r\na.list-group-item:hover,\r\na.list-group-item:focus {\r\n text-decoration: none;\r\n background-color: #f5f5f5;\r\n}\r\na.list-group-item.active,\r\na.list-group-item.active:hover,\r\na.list-group-item.active:focus {\r\n z-index: 2;\r\n color: #586e75;\r\n background-color: #428bca;\r\n border-color: #428bca;\r\n}\r\na.list-group-item.active .list-group-item-heading,\r\na.list-group-item.active:hover .list-group-item-heading,\r\na.list-group-item.active:focus .list-group-item-heading {\r\n color: inherit;\r\n}\r\na.list-group-item.active .list-group-item-text,\r\na.list-group-item.active:hover .list-group-item-text,\r\na.list-group-item.active:focus .list-group-item-text {\r\n color: #e1edf7;\r\n}\r\n.list-group-item-success {\r\n color: #468847;\r\n background-color: #dff0d8;\r\n}\r\na.list-group-item-success {\r\n color: #468847;\r\n}\r\na.list-group-item-success .list-group-item-heading {\r\n color: inherit;\r\n}\r\na.list-group-item-success:hover,\r\na.list-group-item-success:focus {\r\n color: #468847;\r\n background-color: #d0e9c6;\r\n}\r\na.list-group-item-success.active,\r\na.list-group-item-success.active:hover,\r\na.list-group-item-success.active:focus {\r\n color: #fff;\r\n background-color: #468847;\r\n border-color: #468847;\r\n}\r\n.list-group-item-info {\r\n color: #3a87ad;\r\n background-color: #d9edf7;\r\n}\r\na.list-group-item-info {\r\n color: #3a87ad;\r\n}\r\na.list-group-item-info .list-group-item-heading {\r\n color: inherit;\r\n}\r\na.list-group-item-info:hover,\r\na.list-group-item-info:focus {\r\n color: #3a87ad;\r\n background-color: #c4e3f3;\r\n}\r\na.list-group-item-info.active,\r\na.list-group-item-info.active:hover,\r\na.list-group-item-info.active:focus {\r\n color: #fff;\r\n background-color: #3a87ad;\r\n border-color: #3a87ad;\r\n}\r\n.list-group-item-warning {\r\n color: #c09853;\r\n background-color: #fcf8e3;\r\n}\r\na.list-group-item-warning {\r\n color: #c09853;\r\n}\r\na.list-group-item-warning .list-group-item-heading {\r\n color: inherit;\r\n}\r\na.list-group-item-warning:hover,\r\na.list-group-item-warning:focus {\r\n color: #c09853;\r\n background-color: #faf2cc;\r\n}\r\na.list-group-item-warning.active,\r\na.list-group-item-warning.active:hover,\r\na.list-group-item-warning.active:focus {\r\n color: #fff;\r\n background-color: #c09853;\r\n border-color: #c09853;\r\n}\r\n.list-group-item-danger {\r\n color: #b94a48;\r\n background-color: #f2dede;\r\n}\r\na.list-group-item-danger {\r\n color: #b94a48;\r\n}\r\na.list-group-item-danger .list-group-item-heading {\r\n color: inherit;\r\n}\r\na.list-group-item-danger:hover,\r\na.list-group-item-danger:focus {\r\n color: #b94a48;\r\n background-color: #ebcccc;\r\n}\r\na.list-group-item-danger.active,\r\na.list-group-item-danger.active:hover,\r\na.list-group-item-danger.active:focus {\r\n color: #fff;\r\n background-color: #b94a48;\r\n border-color: #b94a48;\r\n}\r\n.list-group-item-heading {\r\n margin-top: 0;\r\n margin-bottom: 5px;\r\n}\r\n.list-group-item-text {\r\n margin-bottom: 0;\r\n line-height: 1.3;\r\n}\r\n.panel {\r\n margin-bottom: 20px;\r\n background-color: #002b36;\r\n border: 1px solid transparent;\r\n border-radius: 4px;\r\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\r\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\r\n}\r\n.panel-body {\r\n padding: 15px;\r\n}\r\n.panel-heading {\r\n padding: 10px 15px;\r\n border-bottom: 1px solid transparent;\r\n border-top-right-radius: 3px;\r\n border-top-left-radius: 3px;\r\n}\r\n.panel-heading > .dropdown .dropdown-toggle {\r\n color: inherit;\r\n}\r\n.panel-title {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n font-size: 16px;\r\n color: inherit;\r\n}\r\n.panel-title > a {\r\n color: inherit;\r\n}\r\n.panel-footer {\r\n padding: 10px 15px;\r\n background-color: #073642;\r\n border-top: 1px solid #586e75;\r\n border-bottom-right-radius: 3px;\r\n border-bottom-left-radius: 3px;\r\n}\r\n.panel > .list-group {\r\n margin-bottom: 0;\r\n}\r\n.panel > .list-group .list-group-item {\r\n border-width: 1px 0;\r\n border-radius: 0;\r\n}\r\n.panel > .list-group .list-group-item:first-child {\r\n border-top: 0;\r\n}\r\n.panel > .list-group .list-group-item:last-child {\r\n border-bottom: 0;\r\n}\r\n.panel > .list-group:first-child .list-group-item:first-child {\r\n border-top-right-radius: 3px;\r\n border-top-left-radius: 3px;\r\n}\r\n.panel > .list-group:last-child .list-group-item:last-child {\r\n border-bottom-right-radius: 3px;\r\n border-bottom-left-radius: 3px;\r\n}\r\n.panel-heading + .list-group .list-group-item:first-child {\r\n border-top-width: 0;\r\n}\r\n.panel > .table,\r\n.panel > .table-responsive > .table {\r\n margin-bottom: 0;\r\n}\r\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\r\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\r\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\r\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\r\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\r\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\r\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\r\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\r\n border-top-left-radius: 3px;\r\n}\r\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\r\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\r\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\r\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\r\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\r\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\r\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\r\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\r\n border-top-right-radius: 3px;\r\n}\r\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\r\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\r\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\r\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\r\n border-bottom-left-radius: 3px;\r\n}\r\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\r\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\r\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\r\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\r\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\r\n border-bottom-right-radius: 3px;\r\n}\r\n.panel > .panel-body + .table,\r\n.panel > .panel-body + .table-responsive {\r\n border-top: 1px solid #586e75;\r\n}\r\n.panel > .table > tbody:first-child > tr:first-child th,\r\n.panel > .table > tbody:first-child > tr:first-child td {\r\n border-top: 0;\r\n}\r\n.panel > .table-bordered,\r\n.panel > .table-responsive > .table-bordered {\r\n border: 0;\r\n}\r\n.panel > .table-bordered > thead > tr > th:first-child,\r\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\r\n.panel > .table-bordered > tbody > tr > th:first-child,\r\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\r\n.panel > .table-bordered > tfoot > tr > th:first-child,\r\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\r\n.panel > .table-bordered > thead > tr > td:first-child,\r\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\r\n.panel > .table-bordered > tbody > tr > td:first-child,\r\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\r\n.panel > .table-bordered > tfoot > tr > td:first-child,\r\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\r\n border-left: 0;\r\n}\r\n.panel > .table-bordered > thead > tr > th:last-child,\r\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\r\n.panel > .table-bordered > tbody > tr > th:last-child,\r\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\r\n.panel > .table-bordered > tfoot > tr > th:last-child,\r\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\r\n.panel > .table-bordered > thead > tr > td:last-child,\r\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\r\n.panel > .table-bordered > tbody > tr > td:last-child,\r\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\r\n.panel > .table-bordered > tfoot > tr > td:last-child,\r\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\r\n border-right: 0;\r\n}\r\n.panel > .table-bordered > thead > tr:first-child > td,\r\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\r\n.panel > .table-bordered > tbody > tr:first-child > td,\r\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\r\n.panel > .table-bordered > thead > tr:first-child > th,\r\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\r\n.panel > .table-bordered > tbody > tr:first-child > th,\r\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\r\n border-bottom: 0;\r\n}\r\n.panel > .table-bordered > tbody > tr:last-child > td,\r\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\r\n.panel > .table-bordered > tfoot > tr:last-child > td,\r\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\r\n.panel > .table-bordered > tbody > tr:last-child > th,\r\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\r\n.panel > .table-bordered > tfoot > tr:last-child > th,\r\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\r\n border-bottom: 0;\r\n}\r\n.panel > .table-responsive {\r\n border: 0;\r\n margin-bottom: 0;\r\n}\r\n.panel-group {\r\n margin-bottom: 20px;\r\n}\r\n.panel-group .panel {\r\n margin-bottom: 0;\r\n border-radius: 4px;\r\n overflow: hidden;\r\n}\r\n.panel-group .panel + .panel {\r\n margin-top: 5px;\r\n}\r\n.panel-group .panel-heading {\r\n border-bottom: 0;\r\n}\r\n.panel-group .panel-heading + .panel-collapse .panel-body {\r\n border-top: 1px solid #586e75;\r\n}\r\n.panel-group .panel-footer {\r\n border-top: 0;\r\n}\r\n.panel-group .panel-footer + .panel-collapse .panel-body {\r\n border-bottom: 1px solid #586e75;\r\n}\r\n.panel-default {\r\n border-color: #586e75;\r\n}\r\n.panel-default > .panel-heading {\r\n color: #586e75;\r\n background-color: #073642;\r\n border-color: #586e75;\r\n}\r\n.panel-default > .panel-heading + .panel-collapse .panel-body {\r\n border-top-color: #586e75;\r\n}\r\n.panel-default > .panel-footer + .panel-collapse .panel-body {\r\n border-bottom-color: #586e75;\r\n}\r\n.panel-primary {\r\n border-color: #428bca;\r\n}\r\n.panel-primary > .panel-heading {\r\n color: #ffffff;\r\n background-color: #428bca;\r\n border-color: #428bca;\r\n}\r\n.panel-primary > .panel-heading + .panel-collapse .panel-body {\r\n border-top-color: #428bca;\r\n}\r\n.panel-primary > .panel-footer + .panel-collapse .panel-body {\r\n border-bottom-color: #428bca;\r\n}\r\n.panel-success {\r\n border-color: #d6e9c6;\r\n}\r\n.panel-success > .panel-heading {\r\n color: #468847;\r\n background-color: #dff0d8;\r\n border-color: #d6e9c6;\r\n}\r\n.panel-success > .panel-heading + .panel-collapse .panel-body {\r\n border-top-color: #d6e9c6;\r\n}\r\n.panel-success > .panel-footer + .panel-collapse .panel-body {\r\n border-bottom-color: #d6e9c6;\r\n}\r\n.panel-info {\r\n border-color: #bce8f1;\r\n}\r\n.panel-info > .panel-heading {\r\n color: #3a87ad;\r\n background-color: #d9edf7;\r\n border-color: #bce8f1;\r\n}\r\n.panel-info > .panel-heading + .panel-collapse .panel-body {\r\n border-top-color: #bce8f1;\r\n}\r\n.panel-info > .panel-footer + .panel-collapse .panel-body {\r\n border-bottom-color: #bce8f1;\r\n}\r\n.panel-warning {\r\n border-color: #fbeed5;\r\n}\r\n.panel-warning > .panel-heading {\r\n color: #c09853;\r\n background-color: #fcf8e3;\r\n border-color: #fbeed5;\r\n}\r\n.panel-warning > .panel-heading + .panel-collapse .panel-body {\r\n border-top-color: #fbeed5;\r\n}\r\n.panel-warning > .panel-footer + .panel-collapse .panel-body {\r\n border-bottom-color: #fbeed5;\r\n}\r\n.panel-danger {\r\n border-color: #eed3d7;\r\n}\r\n.panel-danger > .panel-heading {\r\n color: #b94a48;\r\n background-color: #f2dede;\r\n border-color: #eed3d7;\r\n}\r\n.panel-danger > .panel-heading + .panel-collapse .panel-body {\r\n border-top-color: #eed3d7;\r\n}\r\n.panel-danger > .panel-footer + .panel-collapse .panel-body {\r\n border-bottom-color: #eed3d7;\r\n}\r\n.well {\r\n min-height: 20px;\r\n padding: 19px;\r\n margin-bottom: 20px;\r\n background-color: #073642;\r\n border: 1px solid #586e75;\r\n border-radius: 4px;\r\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\r\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\r\n}\r\n.well blockquote {\r\n border-color: #ddd;\r\n border-color: rgba(0, 0, 0, 0.15);\r\n}\r\n.well-lg {\r\n padding: 24px;\r\n border-radius: 6px;\r\n}\r\n.well-sm {\r\n padding: 9px;\r\n border-radius: 3px;\r\n}\r\n.close {\r\n float: right;\r\n font-size: 21px;\r\n font-weight: bold;\r\n line-height: 1;\r\n color: #93a1a1;\r\n text-shadow: 0 0 0;\r\n opacity: 0.5;\r\n filter: alpha(opacity=50);\r\n}\r\n.close:hover,\r\n.close:focus {\r\n color: #d33682;\r\n text-decoration: none;\r\n cursor: pointer;\r\n opacity: 0.5;\r\n filter: alpha(opacity=50);\r\n}\r\nbutton.close {\r\n padding: 0;\r\n cursor: pointer;\r\n background: transparent;\r\n border: 0;\r\n -webkit-appearance: none;\r\n}\r\n.modal-open {\r\n overflow: hidden;\r\n}\r\n.modal {\r\n display: none;\r\n overflow: auto;\r\n overflow-y: scroll;\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1050;\r\n -webkit-overflow-scrolling: touch;\r\n outline: 0;\r\n}\r\n.modal.fade .modal-dialog {\r\n -webkit-transform: translate(0, -25%);\r\n -ms-transform: translate(0, -25%);\r\n transform: translate(0, -25%);\r\n -webkit-transition: -webkit-transform 0.3s ease-out;\r\n -moz-transition: -moz-transform 0.3s ease-out;\r\n -o-transition: -o-transform 0.3s ease-out;\r\n transition: transform 0.3s ease-out;\r\n}\r\n.modal.in .modal-dialog {\r\n -webkit-transform: translate(0, 0);\r\n -ms-transform: translate(0, 0);\r\n transform: translate(0, 0);\r\n}\r\n.modal-dialog {\r\n position: relative;\r\n width: auto;\r\n margin: 10px;\r\n}\r\n.modal-content {\r\n position: relative;\r\n background-color: #073642;\r\n border: 1px solid #586e75;\r\n border: 1px solid rgba(0, 0, 0, 0.2);\r\n border-radius: 6px;\r\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\r\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\r\n background-clip: padding-box;\r\n outline: none;\r\n}\r\n.modal-backdrop {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1040;\r\n background-color: #000000;\r\n}\r\n.modal-backdrop.fade {\r\n opacity: 0;\r\n filter: alpha(opacity=0);\r\n}\r\n.modal-backdrop.in {\r\n opacity: 0.5;\r\n filter: alpha(opacity=50);\r\n}\r\n.modal-header {\r\n padding: 15px;\r\n border-bottom: 1px solid #586e75;\r\n min-height: 16.428571429px;\r\n}\r\n.modal-header .close {\r\n margin-top: -2px;\r\n}\r\n.modal-title {\r\n margin: 0;\r\n line-height: 1.428571429;\r\n}\r\n.modal-body {\r\n position: relative;\r\n padding: 20px;\r\n}\r\n.modal-footer {\r\n margin-top: 15px;\r\n padding: 19px 20px 20px;\r\n text-align: right;\r\n border-top: 1px solid #586e75;\r\n}\r\n.modal-footer .btn + .btn {\r\n margin-left: 5px;\r\n margin-bottom: 0;\r\n}\r\n.modal-footer .btn-group .btn + .btn {\r\n margin-left: -1px;\r\n}\r\n.modal-footer .btn-block + .btn-block {\r\n margin-left: 0;\r\n}\r\n@media (min-width: 768px) {\r\n .modal-dialog {\r\n width: 600px;\r\n margin: 30px auto;\r\n }\r\n .modal-content {\r\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\r\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\r\n }\r\n .modal-sm {\r\n width: 300px;\r\n }\r\n}\r\n@media (min-width: 992px) {\r\n .modal-lg {\r\n width: 900px;\r\n }\r\n}\r\n.tooltip {\r\n position: absolute;\r\n z-index: 1030;\r\n display: block;\r\n visibility: visible;\r\n font-size: 12px;\r\n line-height: 1.4;\r\n opacity: 0;\r\n filter: alpha(opacity=0);\r\n}\r\n.tooltip.in {\r\n opacity: 0.9;\r\n filter: alpha(opacity=90);\r\n}\r\n.tooltip.top {\r\n margin-top: -3px;\r\n padding: 5px 0;\r\n}\r\n.tooltip.right {\r\n margin-left: 3px;\r\n padding: 0 5px;\r\n}\r\n.tooltip.bottom {\r\n margin-top: 3px;\r\n padding: 5px 0;\r\n}\r\n.tooltip.left {\r\n margin-left: -3px;\r\n padding: 0 5px;\r\n}\r\n.tooltip-inner {\r\n max-width: 200px;\r\n padding: 3px 8px;\r\n color: #ffffff;\r\n text-align: center;\r\n text-decoration: none;\r\n background-color: #000000;\r\n border-radius: 4px;\r\n}\r\n.tooltip-arrow {\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-color: transparent;\r\n border-style: solid;\r\n}\r\n.tooltip.top .tooltip-arrow {\r\n bottom: 0;\r\n left: 50%;\r\n margin-left: -5px;\r\n border-width: 5px 5px 0;\r\n border-top-color: #000000;\r\n}\r\n.tooltip.top-left .tooltip-arrow {\r\n bottom: 0;\r\n left: 5px;\r\n border-width: 5px 5px 0;\r\n border-top-color: #000000;\r\n}\r\n.tooltip.top-right .tooltip-arrow {\r\n bottom: 0;\r\n right: 5px;\r\n border-width: 5px 5px 0;\r\n border-top-color: #000000;\r\n}\r\n.tooltip.right .tooltip-arrow {\r\n top: 50%;\r\n left: 0;\r\n margin-top: -5px;\r\n border-width: 5px 5px 5px 0;\r\n border-right-color: #000000;\r\n}\r\n.tooltip.left .tooltip-arrow {\r\n top: 50%;\r\n right: 0;\r\n margin-top: -5px;\r\n border-width: 5px 0 5px 5px;\r\n border-left-color: #000000;\r\n}\r\n.tooltip.bottom .tooltip-arrow {\r\n top: 0;\r\n left: 50%;\r\n margin-left: -5px;\r\n border-width: 0 5px 5px;\r\n border-bottom-color: #000000;\r\n}\r\n.tooltip.bottom-left .tooltip-arrow {\r\n top: 0;\r\n left: 5px;\r\n border-width: 0 5px 5px;\r\n border-bottom-color: #000000;\r\n}\r\n.tooltip.bottom-right .tooltip-arrow {\r\n top: 0;\r\n right: 5px;\r\n border-width: 0 5px 5px;\r\n border-bottom-color: #000000;\r\n}\r\n.popover {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n z-index: 1010;\r\n display: none;\r\n max-width: 276px;\r\n padding: 1px;\r\n text-align: left;\r\n background-color: #073642;\r\n background-clip: padding-box;\r\n border: 1px solid #cccccc;\r\n border: 1px solid #586e75;\r\n border-radius: 6px;\r\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\r\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\r\n white-space: normal;\r\n}\r\n.popover.top {\r\n margin-top: -10px;\r\n}\r\n.popover.right {\r\n margin-left: 10px;\r\n}\r\n.popover.bottom {\r\n margin-top: 10px;\r\n}\r\n.popover.left {\r\n margin-left: -10px;\r\n}\r\n.popover-title {\r\n margin: 0;\r\n padding: 8px 14px;\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 18px;\r\n background-color: #062b34;\r\n border-bottom: 1px solid #03181d;\r\n border-radius: 5px 5px 0 0;\r\n}\r\n.popover-content {\r\n padding: 9px 14px;\r\n}\r\n.popover > .arrow,\r\n.popover > .arrow:after {\r\n position: absolute;\r\n display: block;\r\n width: 0;\r\n height: 0;\r\n border-color: transparent;\r\n border-style: solid;\r\n}\r\n.popover > .arrow {\r\n border-width: 11px;\r\n}\r\n.popover > .arrow:after {\r\n border-width: 10px;\r\n content: \"\";\r\n}\r\n.popover.top > .arrow {\r\n left: 50%;\r\n margin-left: -11px;\r\n border-bottom-width: 0;\r\n border-top-color: #586e75;\r\n bottom: -11px;\r\n}\r\n.popover.top > .arrow:after {\r\n content: \" \";\r\n bottom: 1px;\r\n margin-left: -10px;\r\n border-bottom-width: 0;\r\n border-top-color: #073642;\r\n}\r\n.popover.right > .arrow {\r\n top: 50%;\r\n left: -11px;\r\n margin-top: -11px;\r\n border-left-width: 0;\r\n border-right-color: #586e75;\r\n}\r\n.popover.right > .arrow:after {\r\n content: \" \";\r\n left: 1px;\r\n bottom: -10px;\r\n border-left-width: 0;\r\n border-right-color: #073642;\r\n}\r\n.popover.bottom > .arrow {\r\n left: 50%;\r\n margin-left: -11px;\r\n border-top-width: 0;\r\n border-bottom-color: #586e75;\r\n top: -11px;\r\n}\r\n.popover.bottom > .arrow:after {\r\n content: \" \";\r\n top: 1px;\r\n margin-left: -10px;\r\n border-top-width: 0;\r\n border-bottom-color: #073642;\r\n}\r\n.popover.left > .arrow {\r\n top: 50%;\r\n right: -11px;\r\n margin-top: -11px;\r\n border-right-width: 0;\r\n border-left-color: #586e75;\r\n}\r\n.popover.left > .arrow:after {\r\n content: \" \";\r\n right: 1px;\r\n border-right-width: 0;\r\n border-left-color: #073642;\r\n bottom: -10px;\r\n}\r\n.carousel {\r\n position: relative;\r\n}\r\n.carousel-inner {\r\n position: relative;\r\n overflow: hidden;\r\n width: 100%;\r\n}\r\n.carousel-inner > .item {\r\n display: none;\r\n position: relative;\r\n -webkit-transition: 0.6s ease-in-out left;\r\n transition: 0.6s ease-in-out left;\r\n}\r\n.carousel-inner > .item > img,\r\n.carousel-inner > .item > a > img {\r\n line-height: 1;\r\n}\r\n.carousel-inner > .active,\r\n.carousel-inner > .next,\r\n.carousel-inner > .prev {\r\n display: block;\r\n}\r\n.carousel-inner > .active {\r\n left: 0;\r\n}\r\n.carousel-inner > .next,\r\n.carousel-inner > .prev {\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n}\r\n.carousel-inner > .next {\r\n left: 100%;\r\n}\r\n.carousel-inner > .prev {\r\n left: -100%;\r\n}\r\n.carousel-inner > .next.left,\r\n.carousel-inner > .prev.right {\r\n left: 0;\r\n}\r\n.carousel-inner > .active.left {\r\n left: -100%;\r\n}\r\n.carousel-inner > .active.right {\r\n left: 100%;\r\n}\r\n.carousel-control {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n width: 15%;\r\n opacity: 0.5;\r\n filter: alpha(opacity=50);\r\n font-size: 20px;\r\n color: #ffffff;\r\n text-align: center;\r\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\r\n}\r\n.carousel-control.left {\r\n background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));\r\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\r\n background-repeat: repeat-x;\r\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\r\n}\r\n.carousel-control.right {\r\n left: auto;\r\n right: 0;\r\n background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));\r\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\r\n background-repeat: repeat-x;\r\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\r\n}\r\n.carousel-control:hover,\r\n.carousel-control:focus {\r\n outline: none;\r\n color: #ffffff;\r\n text-decoration: none;\r\n opacity: 0.9;\r\n filter: alpha(opacity=90);\r\n}\r\n.carousel-control .icon-prev,\r\n.carousel-control .icon-next,\r\n.carousel-control .glyphicon-chevron-left,\r\n.carousel-control .glyphicon-chevron-right {\r\n position: absolute;\r\n top: 50%;\r\n z-index: 5;\r\n display: inline-block;\r\n}\r\n.carousel-control .icon-prev,\r\n.carousel-control .glyphicon-chevron-left {\r\n left: 50%;\r\n}\r\n.carousel-control .icon-next,\r\n.carousel-control .glyphicon-chevron-right {\r\n right: 50%;\r\n}\r\n.carousel-control .icon-prev,\r\n.carousel-control .icon-next {\r\n width: 20px;\r\n height: 20px;\r\n margin-top: -10px;\r\n margin-left: -10px;\r\n font-family: serif;\r\n}\r\n.carousel-control .icon-prev:before {\r\n content: '\\2039';\r\n}\r\n.carousel-control .icon-next:before {\r\n content: '\\203a';\r\n}\r\n.carousel-indicators {\r\n position: absolute;\r\n bottom: 10px;\r\n left: 50%;\r\n z-index: 15;\r\n width: 60%;\r\n margin-left: -30%;\r\n padding-left: 0;\r\n list-style: none;\r\n text-align: center;\r\n}\r\n.carousel-indicators li {\r\n display: inline-block;\r\n width: 10px;\r\n height: 10px;\r\n margin: 1px;\r\n text-indent: -999px;\r\n border: 1px solid #ffffff;\r\n border-radius: 10px;\r\n cursor: pointer;\r\n background-color: #000 \\9;\r\n background-color: rgba(0, 0, 0, 0);\r\n}\r\n.carousel-indicators .active {\r\n margin: 0;\r\n width: 12px;\r\n height: 12px;\r\n background-color: #ffffff;\r\n}\r\n.carousel-caption {\r\n position: absolute;\r\n left: 15%;\r\n right: 15%;\r\n bottom: 20px;\r\n z-index: 10;\r\n padding-top: 20px;\r\n padding-bottom: 20px;\r\n color: #ffffff;\r\n text-align: center;\r\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\r\n}\r\n.carousel-caption .btn {\r\n text-shadow: none;\r\n}\r\n@media screen and (min-width: 768px) {\r\n .carousel-control .glyphicons-chevron-left,\r\n .carousel-control .glyphicons-chevron-right,\r\n .carousel-control .icon-prev,\r\n .carousel-control .icon-next {\r\n width: 30px;\r\n height: 30px;\r\n margin-top: -15px;\r\n margin-left: -15px;\r\n font-size: 30px;\r\n }\r\n .carousel-caption {\r\n left: 20%;\r\n right: 20%;\r\n padding-bottom: 30px;\r\n }\r\n .carousel-indicators {\r\n bottom: 20px;\r\n }\r\n}\r\n.clearfix:before,\r\n.clearfix:after,\r\n.container:before,\r\n.container:after,\r\n.container-fluid:before,\r\n.container-fluid:after,\r\n.row:before,\r\n.row:after,\r\n.form-horizontal .form-group:before,\r\n.form-horizontal .form-group:after,\r\n.btn-toolbar:before,\r\n.btn-toolbar:after,\r\n.btn-group-vertical > .btn-group:before,\r\n.btn-group-vertical > .btn-group:after,\r\n.nav:before,\r\n.nav:after,\r\n.navbar:before,\r\n.navbar:after,\r\n.navbar-header:before,\r\n.navbar-header:after,\r\n.navbar-collapse:before,\r\n.navbar-collapse:after,\r\n.pager:before,\r\n.pager:after,\r\n.panel-body:before,\r\n.panel-body:after,\r\n.modal-footer:before,\r\n.modal-footer:after {\r\n content: \" \";\r\n display: table;\r\n}\r\n.clearfix:after,\r\n.container:after,\r\n.container-fluid:after,\r\n.row:after,\r\n.form-horizontal .form-group:after,\r\n.btn-toolbar:after,\r\n.btn-group-vertical > .btn-group:after,\r\n.nav:after,\r\n.navbar:after,\r\n.navbar-header:after,\r\n.navbar-collapse:after,\r\n.pager:after,\r\n.panel-body:after,\r\n.modal-footer:after {\r\n clear: both;\r\n}\r\n.center-block {\r\n display: block;\r\n margin-left: auto;\r\n margin-right: auto;\r\n}\r\n.pull-right {\r\n float: right !important;\r\n}\r\n.pull-left {\r\n float: left !important;\r\n}\r\n.hide {\r\n display: none !important;\r\n}\r\n.show {\r\n display: block !important;\r\n}\r\n.invisible {\r\n visibility: hidden;\r\n}\r\n.text-hide {\r\n font: 0/0 a;\r\n color: transparent;\r\n text-shadow: none;\r\n background-color: transparent;\r\n border: 0;\r\n}\r\n.hidden {\r\n display: none !important;\r\n visibility: hidden !important;\r\n}\r\n.affix {\r\n position: fixed;\r\n}\r\n@-ms-viewport {\r\n width: device-width;\r\n}\r\n.visible-xs,\r\n.visible-sm,\r\n.visible-md,\r\n.visible-lg {\r\n display: none !important;\r\n}\r\n@media (max-width: 767px) {\r\n .visible-xs {\r\n display: block !important;\r\n }\r\n table.visible-xs {\r\n display: table;\r\n }\r\n tr.visible-xs {\r\n display: table-row !important;\r\n }\r\n th.visible-xs,\r\n td.visible-xs {\r\n display: table-cell !important;\r\n }\r\n}\r\n@media (min-width: 768px) and (max-width: 991px) {\r\n .visible-sm {\r\n display: block !important;\r\n }\r\n table.visible-sm {\r\n display: table;\r\n }\r\n tr.visible-sm {\r\n display: table-row !important;\r\n }\r\n th.visible-sm,\r\n td.visible-sm {\r\n display: table-cell !important;\r\n }\r\n}\r\n@media (min-width: 992px) and (max-width: 1199px) {\r\n .visible-md {\r\n display: block !important;\r\n }\r\n table.visible-md {\r\n display: table;\r\n }\r\n tr.visible-md {\r\n display: table-row !important;\r\n }\r\n th.visible-md,\r\n td.visible-md {\r\n display: table-cell !important;\r\n }\r\n}\r\n@media (min-width: 1200px) {\r\n .visible-lg {\r\n display: block !important;\r\n }\r\n table.visible-lg {\r\n display: table;\r\n }\r\n tr.visible-lg {\r\n display: table-row !important;\r\n }\r\n th.visible-lg,\r\n td.visible-lg {\r\n display: table-cell !important;\r\n }\r\n}\r\n@media (max-width: 767px) {\r\n .hidden-xs {\r\n display: none !important;\r\n }\r\n}\r\n@media (min-width: 768px) and (max-width: 991px) {\r\n .hidden-sm {\r\n display: none !important;\r\n }\r\n}\r\n@media (min-width: 992px) and (max-width: 1199px) {\r\n .hidden-md {\r\n display: none !important;\r\n }\r\n}\r\n@media (min-width: 1200px) {\r\n .hidden-lg {\r\n display: none !important;\r\n }\r\n}\r\n.visible-print {\r\n display: none !important;\r\n}\r\n@media print {\r\n .visible-print {\r\n display: block !important;\r\n }\r\n table.visible-print {\r\n display: table;\r\n }\r\n tr.visible-print {\r\n display: table-row !important;\r\n }\r\n th.visible-print,\r\n td.visible-print {\r\n display: table-cell !important;\r\n }\r\n}\r\n@media print {\r\n .hidden-print {\r\n display: none !important;\r\n }\r\n}\r\n","html, body {\n\theight: 100%;\n}\n\n#side-menu {\n\tmargin-top: 1em;\n}\n\n/*Chat*/\n\n.wordwrap { \n\twhite-space: pre-wrap; /* CSS3 */ \n\twhite-space: -moz-pre-wrap; /* Firefox */ \n\twhite-space: -pre-wrap; /* Opera <7 */ \n\twhite-space: -o-pre-wrap; /* Opera 7 */ \n\tword-wrap: break-word; /* IE */\n}\n\n#chatroom {\n\tmargin-top: 1em;\n}\n\n#chatmessage-container {\n}\n\n#chatmessages {\n\theight: 480px;\n\toverflow-y: scroll;\n\tpadding-right: 20px;\n}\n\n.signin {\n\tmargin: 0px 10px;\n}\n\n.admin-panel {\n\tmargin: 10px 10px;\n}\n\n.imgur-container {\n\ttext-align: center;\n\tmargin: 5px 0;\n}\n\n.imgur-chat {\n\tmax-height: 280px;\n\tmax-width: 80%;\n}\n\n/*Splash Page*/\n\n.join-hero {\n\tpadding: 80px 0px;\n}\n\n.jumbo-auth {\n\tmargin-top: 30px;\n}\n\n.jumbo-img {\n\tmax-height: 150px;\n}\n\n.spinner {\n\tmax-height: 30px !important;\n}\n\n/*Gather Styles*/\n\n.vote-button {\n\tmin-width: 60px;\n}\n\n.team-label {\n\tmin-width: 70px;\n\tdisplay: inline-block;\n}\n\n.label-padding {\n\tpadding: 5px 0;\n}\n\n.lifeform-icon {\n\twidth: 20px;\n\tmargin: 0 3px;\n}\n\n.gather-voting {\n\tfont-size: 90%;\n}\n\n.progress-bar {\n\tmin-width: 6em;\n}\n\n#gatherers-panel > .panel {\n\tmargin-bottom: 1px;\n}\n\n.gather-actions {\n\tmargin-top: 0.5em;\n}\n\n#gathers {\n\tmargin-top: 1em;\n}\n\n.gatherer {\n\tmargin-bottom: 5px;\n\tpadding: 0px;\n}\n\n.gatherer-panel {\n\tbox-shadow: none;\n}\n\n.panel-alien {\n border-color: #186845;\n}\n.panel-alien>.panel-heading {\n color: #B7DCCC;\n background-color: #569F80;\n border-color: #186845;\n}\n.panel-alien>.panel-heading+.panel-collapse .panel-body {\n border-top-color: #186845;\n}\n.panel-alien>.panel-footer+.panel-collapse .panel-body {\n border-bottom-color: #186845;\n}\n.label-alien {\n\tcolor: #B7DCCC;\n background-color: #186845;\n}\n\n.panel-marine {\n border-color: #1B4362;\n}\n.panel-marine>.panel-heading {\n color: #B6C9D7;\n background-color: #557995;\n border-color: #1B4362;\n}\n.panel-marine>.panel-heading+.panel-collapse .panel-body {\n border-top-color: #1B4362;\n}\n.panel-marine>.panel-footer+.panel-collapse .panel-body {\n border-bottom-color: #1B4362;\n}\n.label-marine {\n\tcolor: #B7C6D8;\n background-color: #1B4362;\n}\n\n/*Utility Styles*/\n\n.add-left {\n\tmargin-left: 0.5em;\n}\n\n.add-right {\n\tmargin-right: 0.5em;\n}\n\n.max-width {\n\twidth: 100%;\n}\n\n.add-top {\n\tmargin-top: 0.5em;\n}\n\n.add-bottom {\n\tmargin-bottom: 0.5em;\n}\n\n.no-bottom {\n\tmargin-bottom: 0px !important;\n\tpadding-bottom: 0px !important;\n}\n\n.headline {\n\tpadding-bottom: 0.5em;\n\tborder-bottom: 1px solid #CFCFCF;\n\tmargin-bottom: 20px;\n}\n\n.pointer {\n\tcursor: pointer;\n}\n\n.panel-light-background {\n\tbackground-color: #d9edf7;\n}\n\n/* Sound */\n\n.volume-slide {\n\tpadding: 0 15px;\n}\n\n.music-select {\n\tpadding: 0 15px;\n}\n\n/* Events */\n\n.events-panel {\n\tmax-height: 150px;\n\tbackground-color: #002b36;\n\tborder: 1px solid transparent;\n\tcolor: #839496;\n\tborder-color: #428bca;\n\tborder-radius: 4px;\n}\n\n/* Fix for solarize theme */\n\n.badge {\n\tcolor: #fff;\n}\n\n.gather-voting {\n\tcolor: #fff !important;\t\n}\n",".flag {\n\twidth: 16px;\n\theight: 11px;\n\tbackground:url(/images/flags.png) no-repeat\n}\n\n.flag.flag-ad {background-position: -16px 0}\n.flag.flag-ae {background-position: -32px 0}\n.flag.flag-af {background-position: -48px 0}\n.flag.flag-ag {background-position: -64px 0}\n.flag.flag-ai {background-position: -80px 0}\n.flag.flag-al {background-position: -96px 0}\n.flag.flag-am {background-position: -112px 0}\n.flag.flag-an {background-position: -128px 0}\n.flag.flag-ao {background-position: -144px 0}\n.flag.flag-ar {background-position: -160px 0}\n.flag.flag-as {background-position: -176px 0}\n.flag.flag-at {background-position: -192px 0}\n.flag.flag-au {background-position: -208px 0}\n.flag.flag-aw {background-position: -224px 0}\n.flag.flag-az {background-position: -240px 0}\n.flag.flag-ba {background-position: 0 -11px}\n.flag.flag-bb {background-position: -16px -11px}\n.flag.flag-bd {background-position: -32px -11px}\n.flag.flag-be {background-position: -48px -11px}\n.flag.flag-bf {background-position: -64px -11px}\n.flag.flag-bg {background-position: -80px -11px}\n.flag.flag-bh {background-position: -96px -11px}\n.flag.flag-bi {background-position: -112px -11px}\n.flag.flag-bj {background-position: -128px -11px}\n.flag.flag-bm {background-position: -144px -11px}\n.flag.flag-bn {background-position: -160px -11px}\n.flag.flag-bo {background-position: -176px -11px}\n.flag.flag-br {background-position: -192px -11px}\n.flag.flag-bs {background-position: -208px -11px}\n.flag.flag-bt {background-position: -224px -11px}\n.flag.flag-bv {background-position: -240px -11px}\n.flag.flag-bw {background-position: 0 -22px}\n.flag.flag-by {background-position: -16px -22px}\n.flag.flag-bz {background-position: -32px -22px}\n.flag.flag-ca {background-position: -48px -22px}\n.flag.flag-catalonia {background-position: -64px -22px}\n.flag.flag-cd {background-position: -80px -22px}\n.flag.flag-cf {background-position: -96px -22px}\n.flag.flag-cg {background-position: -112px -22px}\n.flag.flag-ch {background-position: -128px -22px}\n.flag.flag-ci {background-position: -144px -22px}\n.flag.flag-ck {background-position: -160px -22px}\n.flag.flag-cl {background-position: -176px -22px}\n.flag.flag-cm {background-position: -192px -22px}\n.flag.flag-cn {background-position: -208px -22px}\n.flag.flag-co {background-position: -224px -22px}\n.flag.flag-cr {background-position: -240px -22px}\n.flag.flag-cu {background-position: 0 -33px}\n.flag.flag-cv {background-position: -16px -33px}\n.flag.flag-cw {background-position: -32px -33px}\n.flag.flag-cy {background-position: -48px -33px}\n.flag.flag-cz {background-position: -64px -33px}\n.flag.flag-de {background-position: -80px -33px}\n.flag.flag-dj {background-position: -96px -33px}\n.flag.flag-dk {background-position: -112px -33px}\n.flag.flag-dm {background-position: -128px -33px}\n.flag.flag-do {background-position: -144px -33px}\n.flag.flag-dz {background-position: -160px -33px}\n.flag.flag-ec {background-position: -176px -33px}\n.flag.flag-ee {background-position: -192px -33px}\n.flag.flag-eg {background-position: -208px -33px}\n.flag.flag-eh {background-position: -224px -33px}\n.flag.flag-england {background-position: -240px -33px}\n.flag.flag-er {background-position: 0 -44px}\n.flag.flag-es {background-position: -16px -44px}\n.flag.flag-et {background-position: -32px -44px}\n.flag.flag-eu {background-position: -48px -44px}\n.flag.flag-fi {background-position: -64px -44px}\n.flag.flag-fj {background-position: -80px -44px}\n.flag.flag-fk {background-position: -96px -44px}\n.flag.flag-fm {background-position: -112px -44px}\n.flag.flag-fo {background-position: -128px -44px}\n.flag.flag-fr {background-position: -144px -44px}\n.flag.flag-ga {background-position: -160px -44px}\n.flag.flag-gb {background-position: -176px -44px}\n.flag.flag-gd {background-position: -192px -44px}\n.flag.flag-ge {background-position: -208px -44px}\n.flag.flag-gf {background-position: -224px -44px}\n.flag.flag-gg {background-position: -240px -44px}\n.flag.flag-gh {background-position: 0 -55px}\n.flag.flag-gi {background-position: -16px -55px}\n.flag.flag-gl {background-position: -32px -55px}\n.flag.flag-gm {background-position: -48px -55px}\n.flag.flag-gn {background-position: -64px -55px}\n.flag.flag-gp {background-position: -80px -55px}\n.flag.flag-gq {background-position: -96px -55px}\n.flag.flag-gr {background-position: -112px -55px}\n.flag.flag-gs {background-position: -128px -55px}\n.flag.flag-gt {background-position: -144px -55px}\n.flag.flag-gu {background-position: -160px -55px}\n.flag.flag-gw {background-position: -176px -55px}\n.flag.flag-gy {background-position: -192px -55px}\n.flag.flag-hk {background-position: -208px -55px}\n.flag.flag-hm {background-position: -224px -55px}\n.flag.flag-hn {background-position: -240px -55px}\n.flag.flag-hr {background-position: 0 -66px}\n.flag.flag-ht {background-position: -16px -66px}\n.flag.flag-hu {background-position: -32px -66px}\n.flag.flag-ic {background-position: -48px -66px}\n.flag.flag-id {background-position: -64px -66px}\n.flag.flag-ie {background-position: -80px -66px}\n.flag.flag-il {background-position: -96px -66px}\n.flag.flag-im {background-position: -112px -66px}\n.flag.flag-in {background-position: -128px -66px}\n.flag.flag-io {background-position: -144px -66px}\n.flag.flag-iq {background-position: -160px -66px}\n.flag.flag-ir {background-position: -176px -66px}\n.flag.flag-is {background-position: -192px -66px}\n.flag.flag-it {background-position: -208px -66px}\n.flag.flag-je {background-position: -224px -66px}\n.flag.flag-jm {background-position: -240px -66px}\n.flag.flag-jo {background-position: 0 -77px}\n.flag.flag-jp {background-position: -16px -77px}\n.flag.flag-ke {background-position: -32px -77px}\n.flag.flag-kg {background-position: -48px -77px}\n.flag.flag-kh {background-position: -64px -77px}\n.flag.flag-ki {background-position: -80px -77px}\n.flag.flag-km {background-position: -96px -77px}\n.flag.flag-kn {background-position: -112px -77px}\n.flag.flag-kp {background-position: -128px -77px}\n.flag.flag-kr {background-position: -144px -77px}\n.flag.flag-kurdistan {background-position: -160px -77px}\n.flag.flag-kw {background-position: -176px -77px}\n.flag.flag-ky {background-position: -192px -77px}\n.flag.flag-kz {background-position: -208px -77px}\n.flag.flag-la {background-position: -224px -77px}\n.flag.flag-lb {background-position: -240px -77px}\n.flag.flag-lc {background-position: 0 -88px}\n.flag.flag-li {background-position: -16px -88px}\n.flag.flag-lk {background-position: -32px -88px}\n.flag.flag-lr {background-position: -48px -88px}\n.flag.flag-ls {background-position: -64px -88px}\n.flag.flag-lt {background-position: -80px -88px}\n.flag.flag-lu {background-position: -96px -88px}\n.flag.flag-lv {background-position: -112px -88px}\n.flag.flag-ly {background-position: -128px -88px}\n.flag.flag-ma {background-position: -144px -88px}\n.flag.flag-mc {background-position: -160px -88px}\n.flag.flag-md {background-position: -176px -88px}\n.flag.flag-me {background-position: -192px -88px}\n.flag.flag-mg {background-position: -208px -88px}\n.flag.flag-mh {background-position: -224px -88px}\n.flag.flag-mk {background-position: -240px -88px}\n.flag.flag-ml {background-position: 0 -99px}\n.flag.flag-mm {background-position: -16px -99px}\n.flag.flag-mn {background-position: -32px -99px}\n.flag.flag-mo {background-position: -48px -99px}\n.flag.flag-mp {background-position: -64px -99px}\n.flag.flag-mq {background-position: -80px -99px}\n.flag.flag-mr {background-position: -96px -99px}\n.flag.flag-ms {background-position: -112px -99px}\n.flag.flag-mt {background-position: -128px -99px}\n.flag.flag-mu {background-position: -144px -99px}\n.flag.flag-mv {background-position: -160px -99px}\n.flag.flag-mw {background-position: -176px -99px}\n.flag.flag-mx {background-position: -192px -99px}\n.flag.flag-my {background-position: -208px -99px}\n.flag.flag-mz {background-position: -224px -99px}\n.flag.flag-na {background-position: -240px -99px}\n.flag.flag-nc {background-position: 0 -110px}\n.flag.flag-ne {background-position: -16px -110px}\n.flag.flag-nf {background-position: -32px -110px}\n.flag.flag-ng {background-position: -48px -110px}\n.flag.flag-ni {background-position: -64px -110px}\n.flag.flag-nl {background-position: -80px -110px}\n.flag.flag-no {background-position: -96px -110px}\n.flag.flag-np {background-position: -112px -110px}\n.flag.flag-nr {background-position: -128px -110px}\n.flag.flag-nu {background-position: -144px -110px}\n.flag.flag-nz {background-position: -160px -110px}\n.flag.flag-om {background-position: -176px -110px}\n.flag.flag-pa {background-position: -192px -110px}\n.flag.flag-pe {background-position: -208px -110px}\n.flag.flag-pf {background-position: -224px -110px}\n.flag.flag-pg {background-position: -240px -110px}\n.flag.flag-ph {background-position: 0 -121px}\n.flag.flag-pk {background-position: -16px -121px}\n.flag.flag-pl {background-position: -32px -121px}\n.flag.flag-pm {background-position: -48px -121px}\n.flag.flag-pn {background-position: -64px -121px}\n.flag.flag-pr {background-position: -80px -121px}\n.flag.flag-ps {background-position: -96px -121px}\n.flag.flag-pt {background-position: -112px -121px}\n.flag.flag-pw {background-position: -128px -121px}\n.flag.flag-py {background-position: -144px -121px}\n.flag.flag-qa {background-position: -160px -121px}\n.flag.flag-re {background-position: -176px -121px}\n.flag.flag-ro {background-position: -192px -121px}\n.flag.flag-rs {background-position: -208px -121px}\n.flag.flag-ru {background-position: -224px -121px}\n.flag.flag-rw {background-position: -240px -121px}\n.flag.flag-sa {background-position: 0 -132px}\n.flag.flag-sb {background-position: -16px -132px}\n.flag.flag-sc {background-position: -32px -132px}\n.flag.flag-scotland {background-position: -48px -132px}\n.flag.flag-sd {background-position: -64px -132px}\n.flag.flag-se {background-position: -80px -132px}\n.flag.flag-sg {background-position: -96px -132px}\n.flag.flag-sh {background-position: -112px -132px}\n.flag.flag-si {background-position: -128px -132px}\n.flag.flag-sk {background-position: -144px -132px}\n.flag.flag-sl {background-position: -160px -132px}\n.flag.flag-sm {background-position: -176px -132px}\n.flag.flag-sn {background-position: -192px -132px}\n.flag.flag-so {background-position: -208px -132px}\n.flag.flag-somaliland {background-position: -224px -132px}\n.flag.flag-sr {background-position: -240px -132px}\n.flag.flag-ss {background-position: 0 -143px}\n.flag.flag-st {background-position: -16px -143px}\n.flag.flag-sv {background-position: -32px -143px}\n.flag.flag-sx {background-position: -48px -143px}\n.flag.flag-sy {background-position: -64px -143px}\n.flag.flag-sz {background-position: -80px -143px}\n.flag.flag-tc {background-position: -96px -143px}\n.flag.flag-td {background-position: -112px -143px}\n.flag.flag-tf {background-position: -128px -143px}\n.flag.flag-tg {background-position: -144px -143px}\n.flag.flag-th {background-position: -160px -143px}\n.flag.flag-tibet {background-position: -176px -143px}\n.flag.flag-tj {background-position: -192px -143px}\n.flag.flag-tk {background-position: -208px -143px}\n.flag.flag-tl {background-position: -224px -143px}\n.flag.flag-tm {background-position: -240px -143px}\n.flag.flag-tn {background-position: 0 -154px}\n.flag.flag-to {background-position: -16px -154px}\n.flag.flag-tr {background-position: -32px -154px}\n.flag.flag-tt {background-position: -48px -154px}\n.flag.flag-tv {background-position: -64px -154px}\n.flag.flag-tw {background-position: -80px -154px}\n.flag.flag-tz {background-position: -96px -154px}\n.flag.flag-ua {background-position: -112px -154px}\n.flag.flag-ug {background-position: -128px -154px}\n.flag.flag-um {background-position: -144px -154px}\n.flag.flag-us {background-position: -160px -154px}\n.flag.flag-uy {background-position: -176px -154px}\n.flag.flag-uz {background-position: -192px -154px}\n.flag.flag-va {background-position: -208px -154px}\n.flag.flag-vc {background-position: -224px -154px}\n.flag.flag-ve {background-position: -240px -154px}\n.flag.flag-vg {background-position: 0 -165px}\n.flag.flag-vi {background-position: -16px -165px}\n.flag.flag-vn {background-position: -32px -165px}\n.flag.flag-vu {background-position: -48px -165px}\n.flag.flag-wales {background-position: -64px -165px}\n.flag.flag-wf {background-position: -80px -165px}\n.flag.flag-ws {background-position: -96px -165px}\n.flag.flag-xk {background-position: -112px -165px}\n.flag.flag-ye {background-position: -128px -165px}\n.flag.flag-yt {background-position: -144px -165px}\n.flag.flag-za {background-position: -160px -165px}\n.flag.flag-zanzibar {background-position: -176px -165px}\n.flag.flag-zm {background-position: -192px -165px}\n.flag.flag-zw {background-position: -208px -165px}\n","/*!\n * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\\f000\"}.fa-music:before{content:\"\\f001\"}.fa-search:before{content:\"\\f002\"}.fa-envelope-o:before{content:\"\\f003\"}.fa-heart:before{content:\"\\f004\"}.fa-star:before{content:\"\\f005\"}.fa-star-o:before{content:\"\\f006\"}.fa-user:before{content:\"\\f007\"}.fa-film:before{content:\"\\f008\"}.fa-th-large:before{content:\"\\f009\"}.fa-th:before{content:\"\\f00a\"}.fa-th-list:before{content:\"\\f00b\"}.fa-check:before{content:\"\\f00c\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\\f00d\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-search-minus:before{content:\"\\f010\"}.fa-power-off:before{content:\"\\f011\"}.fa-signal:before{content:\"\\f012\"}.fa-gear:before,.fa-cog:before{content:\"\\f013\"}.fa-trash-o:before{content:\"\\f014\"}.fa-home:before{content:\"\\f015\"}.fa-file-o:before{content:\"\\f016\"}.fa-clock-o:before{content:\"\\f017\"}.fa-road:before{content:\"\\f018\"}.fa-download:before{content:\"\\f019\"}.fa-arrow-circle-o-down:before{content:\"\\f01a\"}.fa-arrow-circle-o-up:before{content:\"\\f01b\"}.fa-inbox:before{content:\"\\f01c\"}.fa-play-circle-o:before{content:\"\\f01d\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\\f01e\"}.fa-refresh:before{content:\"\\f021\"}.fa-list-alt:before{content:\"\\f022\"}.fa-lock:before{content:\"\\f023\"}.fa-flag:before{content:\"\\f024\"}.fa-headphones:before{content:\"\\f025\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-up:before{content:\"\\f028\"}.fa-qrcode:before{content:\"\\f029\"}.fa-barcode:before{content:\"\\f02a\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-book:before{content:\"\\f02d\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-print:before{content:\"\\f02f\"}.fa-camera:before{content:\"\\f030\"}.fa-font:before{content:\"\\f031\"}.fa-bold:before{content:\"\\f032\"}.fa-italic:before{content:\"\\f033\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-right:before{content:\"\\f038\"}.fa-align-justify:before{content:\"\\f039\"}.fa-list:before{content:\"\\f03a\"}.fa-dedent:before,.fa-outdent:before{content:\"\\f03b\"}.fa-indent:before{content:\"\\f03c\"}.fa-video-camera:before{content:\"\\f03d\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\\f03e\"}.fa-pencil:before{content:\"\\f040\"}.fa-map-marker:before{content:\"\\f041\"}.fa-adjust:before{content:\"\\f042\"}.fa-tint:before{content:\"\\f043\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\\f044\"}.fa-share-square-o:before{content:\"\\f045\"}.fa-check-square-o:before{content:\"\\f046\"}.fa-arrows:before{content:\"\\f047\"}.fa-step-backward:before{content:\"\\f048\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-backward:before{content:\"\\f04a\"}.fa-play:before{content:\"\\f04b\"}.fa-pause:before{content:\"\\f04c\"}.fa-stop:before{content:\"\\f04d\"}.fa-forward:before{content:\"\\f04e\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-step-forward:before{content:\"\\f051\"}.fa-eject:before{content:\"\\f052\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-times-circle:before{content:\"\\f057\"}.fa-check-circle:before{content:\"\\f058\"}.fa-question-circle:before{content:\"\\f059\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-times-circle-o:before{content:\"\\f05c\"}.fa-check-circle-o:before{content:\"\\f05d\"}.fa-ban:before{content:\"\\f05e\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-mail-forward:before,.fa-share:before{content:\"\\f064\"}.fa-expand:before{content:\"\\f065\"}.fa-compress:before{content:\"\\f066\"}.fa-plus:before{content:\"\\f067\"}.fa-minus:before{content:\"\\f068\"}.fa-asterisk:before{content:\"\\f069\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-gift:before{content:\"\\f06b\"}.fa-leaf:before{content:\"\\f06c\"}.fa-fire:before{content:\"\\f06d\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-plane:before{content:\"\\f072\"}.fa-calendar:before{content:\"\\f073\"}.fa-random:before{content:\"\\f074\"}.fa-comment:before{content:\"\\f075\"}.fa-magnet:before{content:\"\\f076\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-retweet:before{content:\"\\f079\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-arrows-v:before{content:\"\\f07d\"}.fa-arrows-h:before{content:\"\\f07e\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\\f080\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-key:before{content:\"\\f084\"}.fa-gears:before,.fa-cogs:before{content:\"\\f085\"}.fa-comments:before{content:\"\\f086\"}.fa-thumbs-o-up:before{content:\"\\f087\"}.fa-thumbs-o-down:before{content:\"\\f088\"}.fa-star-half:before{content:\"\\f089\"}.fa-heart-o:before{content:\"\\f08a\"}.fa-sign-out:before{content:\"\\f08b\"}.fa-linkedin-square:before{content:\"\\f08c\"}.fa-thumb-tack:before{content:\"\\f08d\"}.fa-external-link:before{content:\"\\f08e\"}.fa-sign-in:before{content:\"\\f090\"}.fa-trophy:before{content:\"\\f091\"}.fa-github-square:before{content:\"\\f092\"}.fa-upload:before{content:\"\\f093\"}.fa-lemon-o:before{content:\"\\f094\"}.fa-phone:before{content:\"\\f095\"}.fa-square-o:before{content:\"\\f096\"}.fa-bookmark-o:before{content:\"\\f097\"}.fa-phone-square:before{content:\"\\f098\"}.fa-twitter:before{content:\"\\f099\"}.fa-facebook:before{content:\"\\f09a\"}.fa-github:before{content:\"\\f09b\"}.fa-unlock:before{content:\"\\f09c\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-rss:before{content:\"\\f09e\"}.fa-hdd-o:before{content:\"\\f0a0\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bell:before{content:\"\\f0f3\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-hand-o-right:before{content:\"\\f0a4\"}.fa-hand-o-left:before{content:\"\\f0a5\"}.fa-hand-o-up:before{content:\"\\f0a6\"}.fa-hand-o-down:before{content:\"\\f0a7\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-globe:before{content:\"\\f0ac\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-filter:before{content:\"\\f0b0\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-group:before,.fa-users:before{content:\"\\f0c0\"}.fa-chain:before,.fa-link:before{content:\"\\f0c1\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-flask:before{content:\"\\f0c3\"}.fa-cut:before,.fa-scissors:before{content:\"\\f0c4\"}.fa-copy:before,.fa-files-o:before{content:\"\\f0c5\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-save:before,.fa-floppy-o:before{content:\"\\f0c7\"}.fa-square:before{content:\"\\f0c8\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\\f0c9\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-underline:before{content:\"\\f0cd\"}.fa-table:before{content:\"\\f0ce\"}.fa-magic:before{content:\"\\f0d0\"}.fa-truck:before{content:\"\\f0d1\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-plus:before{content:\"\\f0d5\"}.fa-money:before{content:\"\\f0d6\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-columns:before{content:\"\\f0db\"}.fa-unsorted:before,.fa-sort:before{content:\"\\f0dc\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\\f0dd\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\\f0de\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-linkedin:before{content:\"\\f0e1\"}.fa-rotate-left:before,.fa-undo:before{content:\"\\f0e2\"}.fa-legal:before,.fa-gavel:before{content:\"\\f0e3\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\\f0e4\"}.fa-comment-o:before{content:\"\\f0e5\"}.fa-comments-o:before{content:\"\\f0e6\"}.fa-flash:before,.fa-bolt:before{content:\"\\f0e7\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-paste:before,.fa-clipboard:before{content:\"\\f0ea\"}.fa-lightbulb-o:before{content:\"\\f0eb\"}.fa-exchange:before{content:\"\\f0ec\"}.fa-cloud-download:before{content:\"\\f0ed\"}.fa-cloud-upload:before{content:\"\\f0ee\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-bell-o:before{content:\"\\f0a2\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cutlery:before{content:\"\\f0f5\"}.fa-file-text-o:before{content:\"\\f0f6\"}.fa-building-o:before{content:\"\\f0f7\"}.fa-hospital-o:before{content:\"\\f0f8\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-beer:before{content:\"\\f0fc\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angle-down:before{content:\"\\f107\"}.fa-desktop:before{content:\"\\f108\"}.fa-laptop:before{content:\"\\f109\"}.fa-tablet:before{content:\"\\f10a\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\\f10b\"}.fa-circle-o:before{content:\"\\f10c\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-spinner:before{content:\"\\f110\"}.fa-circle:before{content:\"\\f111\"}.fa-mail-reply:before,.fa-reply:before{content:\"\\f112\"}.fa-github-alt:before{content:\"\\f113\"}.fa-folder-o:before{content:\"\\f114\"}.fa-folder-open-o:before{content:\"\\f115\"}.fa-smile-o:before{content:\"\\f118\"}.fa-frown-o:before{content:\"\\f119\"}.fa-meh-o:before{content:\"\\f11a\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-keyboard-o:before{content:\"\\f11c\"}.fa-flag-o:before{content:\"\\f11d\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-terminal:before{content:\"\\f120\"}.fa-code:before{content:\"\\f121\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\\f122\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\\f123\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-crop:before{content:\"\\f125\"}.fa-code-fork:before{content:\"\\f126\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\\f127\"}.fa-question:before{content:\"\\f128\"}.fa-info:before{content:\"\\f129\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-superscript:before{content:\"\\f12b\"}.fa-subscript:before{content:\"\\f12c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-shield:before{content:\"\\f132\"}.fa-calendar-o:before{content:\"\\f133\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-rocket:before{content:\"\\f135\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-html5:before{content:\"\\f13b\"}.fa-css3:before{content:\"\\f13c\"}.fa-anchor:before{content:\"\\f13d\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-bullseye:before{content:\"\\f140\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-rss-square:before{content:\"\\f143\"}.fa-play-circle:before{content:\"\\f144\"}.fa-ticket:before{content:\"\\f145\"}.fa-minus-square:before{content:\"\\f146\"}.fa-minus-square-o:before{content:\"\\f147\"}.fa-level-up:before{content:\"\\f148\"}.fa-level-down:before{content:\"\\f149\"}.fa-check-square:before{content:\"\\f14a\"}.fa-pencil-square:before{content:\"\\f14b\"}.fa-external-link-square:before{content:\"\\f14c\"}.fa-share-square:before{content:\"\\f14d\"}.fa-compass:before{content:\"\\f14e\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\\f150\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\\f151\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\\f152\"}.fa-euro:before,.fa-eur:before{content:\"\\f153\"}.fa-gbp:before{content:\"\\f154\"}.fa-dollar:before,.fa-usd:before{content:\"\\f155\"}.fa-rupee:before,.fa-inr:before{content:\"\\f156\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\\f157\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\\f158\"}.fa-won:before,.fa-krw:before{content:\"\\f159\"}.fa-bitcoin:before,.fa-btc:before{content:\"\\f15a\"}.fa-file:before{content:\"\\f15b\"}.fa-file-text:before{content:\"\\f15c\"}.fa-sort-alpha-asc:before{content:\"\\f15d\"}.fa-sort-alpha-desc:before{content:\"\\f15e\"}.fa-sort-amount-asc:before{content:\"\\f160\"}.fa-sort-amount-desc:before{content:\"\\f161\"}.fa-sort-numeric-asc:before{content:\"\\f162\"}.fa-sort-numeric-desc:before{content:\"\\f163\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-youtube-square:before{content:\"\\f166\"}.fa-youtube:before{content:\"\\f167\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-youtube-play:before{content:\"\\f16a\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-instagram:before{content:\"\\f16d\"}.fa-flickr:before{content:\"\\f16e\"}.fa-adn:before{content:\"\\f170\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitbucket-square:before{content:\"\\f172\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-long-arrow-down:before{content:\"\\f175\"}.fa-long-arrow-up:before{content:\"\\f176\"}.fa-long-arrow-left:before{content:\"\\f177\"}.fa-long-arrow-right:before{content:\"\\f178\"}.fa-apple:before{content:\"\\f179\"}.fa-windows:before{content:\"\\f17a\"}.fa-android:before{content:\"\\f17b\"}.fa-linux:before{content:\"\\f17c\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-skype:before{content:\"\\f17e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-trello:before{content:\"\\f181\"}.fa-female:before{content:\"\\f182\"}.fa-male:before{content:\"\\f183\"}.fa-gittip:before{content:\"\\f184\"}.fa-sun-o:before{content:\"\\f185\"}.fa-moon-o:before{content:\"\\f186\"}.fa-archive:before{content:\"\\f187\"}.fa-bug:before{content:\"\\f188\"}.fa-vk:before{content:\"\\f189\"}.fa-weibo:before{content:\"\\f18a\"}.fa-renren:before{content:\"\\f18b\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-arrow-circle-o-right:before{content:\"\\f18e\"}.fa-arrow-circle-o-left:before{content:\"\\f190\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\\f191\"}.fa-dot-circle-o:before{content:\"\\f192\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-turkish-lira:before,.fa-try:before{content:\"\\f195\"}.fa-plus-square-o:before{content:\"\\f196\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-slack:before{content:\"\\f198\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-openid:before{content:\"\\f19b\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\\f19c\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\\f19d\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-google:before{content:\"\\f1a0\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-digg:before{content:\"\\f1a6\"}.fa-pied-piper:before{content:\"\\f1a7\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-language:before{content:\"\\f1ab\"}.fa-fax:before{content:\"\\f1ac\"}.fa-building:before{content:\"\\f1ad\"}.fa-child:before{content:\"\\f1ae\"}.fa-paw:before{content:\"\\f1b0\"}.fa-spoon:before{content:\"\\f1b1\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-automobile:before,.fa-car:before{content:\"\\f1b9\"}.fa-cab:before,.fa-taxi:before{content:\"\\f1ba\"}.fa-tree:before{content:\"\\f1bb\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-database:before{content:\"\\f1c0\"}.fa-file-pdf-o:before{content:\"\\f1c1\"}.fa-file-word-o:before{content:\"\\f1c2\"}.fa-file-excel-o:before{content:\"\\f1c3\"}.fa-file-powerpoint-o:before{content:\"\\f1c4\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\\f1c5\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\\f1c6\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\\f1c7\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\\f1c8\"}.fa-file-code-o:before{content:\"\\f1c9\"}.fa-vine:before{content:\"\\f1ca\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\\f1cd\"}.fa-circle-o-notch:before{content:\"\\f1ce\"}.fa-ra:before,.fa-rebel:before{content:\"\\f1d0\"}.fa-ge:before,.fa-empire:before{content:\"\\f1d1\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-git:before{content:\"\\f1d3\"}.fa-hacker-news:before{content:\"\\f1d4\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-qq:before{content:\"\\f1d6\"}.fa-wechat:before,.fa-weixin:before{content:\"\\f1d7\"}.fa-send:before,.fa-paper-plane:before{content:\"\\f1d8\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\\f1d9\"}.fa-history:before{content:\"\\f1da\"}.fa-circle-thin:before{content:\"\\f1db\"}.fa-header:before{content:\"\\f1dc\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-sliders:before{content:\"\\f1de\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\\f1e3\"}.fa-tty:before{content:\"\\f1e4\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-plug:before{content:\"\\f1e6\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-newspaper-o:before{content:\"\\f1ea\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bell-slash-o:before{content:\"\\f1f7\"}.fa-trash:before{content:\"\\f1f8\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-at:before{content:\"\\f1fa\"}.fa-eyedropper:before{content:\"\\f1fb\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-area-chart:before{content:\"\\f1fe\"}.fa-pie-chart:before{content:\"\\f200\"}.fa-line-chart:before{content:\"\\f201\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-bicycle:before{content:\"\\f206\"}.fa-bus:before{content:\"\\f207\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-angellist:before{content:\"\\f209\"}.fa-cc:before{content:\"\\f20a\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\\f20b\"}.fa-meanpath:before{content:\"\\f20c\"}","/* perfect-scrollbar v0.6.5 */\n.ps-container{-ms-touch-action:none;overflow:hidden !important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:0.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:0.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0;height:8px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0;width:8px}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:0.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:0.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:0.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:0.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:0.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}","/*\n * Skin: Blue\n * ----------\n */\n.skin-blue .main-header .navbar {\n background-color: #3c8dbc;\n}\n.skin-blue .main-header .navbar .nav > li > a {\n color: #ffffff;\n}\n.skin-blue .main-header .navbar .nav > li > a:hover,\n.skin-blue .main-header .navbar .nav > li > a:active,\n.skin-blue .main-header .navbar .nav > li > a:focus,\n.skin-blue .main-header .navbar .nav .open > a,\n.skin-blue .main-header .navbar .nav .open > a:hover,\n.skin-blue .main-header .navbar .nav .open > a:focus,\n.skin-blue .main-header .navbar .nav > .active > a {\n background: rgba(0, 0, 0, 0.1);\n color: #f6f6f6;\n}\n.skin-blue .main-header .navbar .sidebar-toggle {\n color: #ffffff;\n}\n.skin-blue .main-header .navbar .sidebar-toggle:hover {\n color: #f6f6f6;\n background: rgba(0, 0, 0, 0.1);\n}\n.skin-blue .main-header .navbar .sidebar-toggle {\n color: #fff;\n}\n.skin-blue .main-header .navbar .sidebar-toggle:hover {\n background-color: #367fa9;\n}\n@media (max-width: 767px) {\n .skin-blue .main-header .navbar .dropdown-menu li.divider {\n background-color: rgba(255, 255, 255, 0.1);\n }\n .skin-blue .main-header .navbar .dropdown-menu li a {\n color: #fff;\n }\n .skin-blue .main-header .navbar .dropdown-menu li a:hover {\n background: #367fa9;\n }\n}\n.skin-blue .main-header .logo {\n background-color: #367fa9;\n color: #ffffff;\n border-bottom: 0 solid transparent;\n}\n.skin-blue .main-header .logo:hover {\n background-color: #357ca5;\n}\n.skin-blue .main-header li.user-header {\n background-color: #3c8dbc;\n}\n.skin-blue .content-header {\n background: transparent;\n}\n.skin-blue .wrapper,\n.skin-blue .main-sidebar,\n.skin-blue .left-side {\n background-color: #222d32;\n}\n.skin-blue .user-panel > .info,\n.skin-blue .user-panel > .info > a {\n color: #fff;\n}\n.skin-blue .sidebar-menu > li.header {\n color: #4b646f;\n background: #1a2226;\n}\n.skin-blue .sidebar-menu > li > a {\n border-left: 3px solid transparent;\n}\n.skin-blue .sidebar-menu > li:hover > a,\n.skin-blue .sidebar-menu > li.active > a {\n color: #ffffff;\n background: #1e282c;\n border-left-color: #3c8dbc;\n}\n.skin-blue .sidebar-menu > li > .treeview-menu {\n margin: 0 1px;\n background: #2c3b41;\n}\n.skin-blue .sidebar a {\n color: #b8c7ce;\n}\n.skin-blue .sidebar a:hover {\n text-decoration: none;\n}\n.skin-blue .treeview-menu > li > a {\n color: #8aa4af;\n}\n.skin-blue .treeview-menu > li.active > a,\n.skin-blue .treeview-menu > li > a:hover {\n color: #ffffff;\n}\n.skin-blue .sidebar-form {\n border-radius: 3px;\n border: 1px solid #374850;\n margin: 10px 10px;\n}\n.skin-blue .sidebar-form input[type=\"text\"],\n.skin-blue .sidebar-form .btn {\n box-shadow: none;\n background-color: #374850;\n border: 1px solid transparent;\n height: 35px;\n -webkit-transition: all 0.3s ease-in-out;\n -o-transition: all 0.3s ease-in-out;\n transition: all 0.3s ease-in-out;\n}\n.skin-blue .sidebar-form input[type=\"text\"] {\n color: #666;\n border-top-left-radius: 2px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 2px;\n}\n.skin-blue .sidebar-form input[type=\"text\"]:focus,\n.skin-blue .sidebar-form input[type=\"text\"]:focus + .input-group-btn .btn {\n background-color: #fff;\n color: #666;\n}\n.skin-blue .sidebar-form input[type=\"text\"]:focus + .input-group-btn .btn {\n border-left-color: #fff;\n}\n.skin-blue .sidebar-form .btn {\n color: #999;\n border-top-left-radius: 0;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n border-bottom-left-radius: 0;\n}\n.skin-blue.layout-top-nav .main-header > .logo {\n background-color: #3c8dbc;\n color: #ffffff;\n border-bottom: 0 solid transparent;\n}\n.skin-blue.layout-top-nav .main-header > .logo:hover {\n background-color: #3b8ab8;\n}\n",".slider{display:inline-block;vertical-align:middle;position:relative}.slider.slider-horizontal{width:210px;height:20px}.slider.slider-horizontal .slider-track{height:10px;width:100%;margin-top:-5px;top:50%;left:0}.slider.slider-horizontal .slider-selection,.slider.slider-horizontal .slider-track-low,.slider.slider-horizontal .slider-track-high{height:100%;top:0;bottom:0}.slider.slider-horizontal .slider-tick,.slider.slider-horizontal .slider-handle{margin-left:-10px;margin-top:-5px}.slider.slider-horizontal .slider-tick.triangle,.slider.slider-horizontal .slider-handle.triangle{border-width:0 10px 10px 10px;width:0;height:0;border-bottom-color:#0480be;margin-top:0}.slider.slider-horizontal .slider-tick-label-container{white-space:nowrap;margin-top:20px}.slider.slider-horizontal .slider-tick-label-container .slider-tick-label{padding-top:4px;display:inline-block;text-align:center}.slider.slider-vertical{height:210px;width:20px}.slider.slider-vertical .slider-track{width:10px;height:100%;margin-left:-5px;left:50%;top:0}.slider.slider-vertical .slider-selection{width:100%;left:0;top:0;bottom:0}.slider.slider-vertical .slider-track-low,.slider.slider-vertical .slider-track-high{width:100%;left:0;right:0}.slider.slider-vertical .slider-tick,.slider.slider-vertical .slider-handle{margin-left:-5px;margin-top:-10px}.slider.slider-vertical .slider-tick.triangle,.slider.slider-vertical .slider-handle.triangle{border-width:10px 0 10px 10px;width:1px;height:1px;border-left-color:#0480be;margin-left:0}.slider.slider-disabled .slider-handle{background-image:-webkit-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:-o-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:linear-gradient(to bottom,#dfdfdf 0,#bebebe 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf',endColorstr='#ffbebebe',GradientType=0)}.slider.slider-disabled .slider-track{background-image:-webkit-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:-o-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:linear-gradient(to bottom,#e5e5e5 0,#e9e9e9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5',endColorstr='#ffe9e9e9',GradientType=0);cursor:not-allowed}.slider input{display:none}.slider .tooltip.top{margin-top:-36px}.slider .tooltip-inner{white-space:nowrap}.slider .hide{display:none}.slider-track{position:absolute;cursor:pointer;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#f9f9f9 100%);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);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);border-radius:4px}.slider-selection{position:absolute;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);-webkit-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;border-radius:4px}.slider-selection.tick-slider-selection{background-image:-webkit-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:-o-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:linear-gradient(to bottom,#89cdef 0,#81bfde 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef',endColorstr='#ff81bfde',GradientType=0)}.slider-track-low,.slider-track-high{position:absolute;background:transparent;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px}.slider-handle{position:absolute;width:20px;height:20px;background-color:#337ab7;background-image:-webkit-linear-gradient(top,#149bdf 0,#0480be 100%);background-image:-o-linear-gradient(top,#149bdf 0,#0480be 100%);background-image:linear-gradient(to bottom,#149bdf 0,#0480be 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);filter:none;-webkit-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);border:0 solid transparent}.slider-handle.round{border-radius:50%}.slider-handle.triangle{background:transparent none}.slider-handle.custom{background:transparent none}.slider-handle.custom::before{line-height:20px;font-size:20px;content:'\\2605';color:#726204}.slider-tick{position:absolute;width:20px;height:20px;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);-webkit-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;filter:none;opacity:.8;border:0 solid transparent}.slider-tick.round{border-radius:50%}.slider-tick.triangle{background:transparent none}.slider-tick.custom{background:transparent none}.slider-tick.custom::before{line-height:20px;font-size:20px;content:'\\2605';color:#726204}.slider-tick.in-selection{background-image:-webkit-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:-o-linear-gradient(top,#89cdef 0,#81bfde 100%);background-image:linear-gradient(to bottom,#89cdef 0,#81bfde 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef',endColorstr='#ff81bfde',GradientType=0);opacity:1}","@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);\n/*!\n * AdminLTE v2.3.2\n * Author: Almsaeed Studio\n * Website: Almsaeed Studio \n * License: Open source - MIT\n * Please visit http://opensource.org/licenses/MIT for more information\n!*/\n/*\n * Core: General Layout Style\n * -------------------------\n */\nhtml,\nbody {\n min-height: 100%;\n}\n.layout-boxed html,\n.layout-boxed body {\n height: 100%;\n}\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-weight: 400;\n overflow-x: hidden;\n overflow-y: auto;\n}\n/* Layout */\n.wrapper {\n min-height: 100%;\n position: relative;\n overflow: hidden;\n}\n.wrapper:before,\n.wrapper:after {\n content: \" \";\n display: table;\n}\n.wrapper:after {\n clear: both;\n}\n.layout-boxed .wrapper {\n max-width: 1250px;\n margin: 0 auto;\n min-height: 100%;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);\n position: relative;\n}\n.layout-boxed {\n background: url('../img/boxed-bg.jpg') repeat fixed;\n}\n/*\n * Content Wrapper - contains the main content\n * ```.right-side has been deprecated as of v2.0.0 in favor of .content-wrapper ```\n */\n.content-wrapper,\n.right-side,\n.main-footer {\n -webkit-transition: -webkit-transform 0.3s ease-in-out, margin 0.3s ease-in-out;\n -moz-transition: -moz-transform 0.3s ease-in-out, margin 0.3s ease-in-out;\n -o-transition: -o-transform 0.3s ease-in-out, margin 0.3s ease-in-out;\n transition: transform 0.3s ease-in-out, margin 0.3s ease-in-out;\n margin-left: 230px;\n z-index: 820;\n}\n.layout-top-nav .content-wrapper,\n.layout-top-nav .right-side,\n.layout-top-nav .main-footer {\n margin-left: 0;\n}\n@media (max-width: 767px) {\n .content-wrapper,\n .right-side,\n .main-footer {\n margin-left: 0;\n }\n}\n@media (min-width: 768px) {\n .sidebar-collapse .content-wrapper,\n .sidebar-collapse .right-side,\n .sidebar-collapse .main-footer {\n margin-left: 0;\n }\n}\n@media (max-width: 767px) {\n .sidebar-open .content-wrapper,\n .sidebar-open .right-side,\n .sidebar-open .main-footer {\n -webkit-transform: translate(230px, 0);\n -ms-transform: translate(230px, 0);\n -o-transform: translate(230px, 0);\n transform: translate(230px, 0);\n }\n}\n.content-wrapper,\n.right-side {\n min-height: 100%;\n z-index: 800;\n}\n.main-footer {\n background: #fff;\n padding: 15px;\n color: #444;\n border-top: 1px solid #d2d6de;\n}\n/* Fixed layout */\n.fixed .main-header,\n.fixed .main-sidebar,\n.fixed .left-side {\n position: fixed;\n}\n.fixed .main-header {\n top: 0;\n right: 0;\n left: 0;\n}\n.fixed .content-wrapper,\n.fixed .right-side {\n padding-top: 50px;\n}\n@media (max-width: 767px) {\n .fixed .content-wrapper,\n .fixed .right-side {\n padding-top: 100px;\n }\n}\n.fixed.layout-boxed .wrapper {\n max-width: 100%;\n}\nbody.hold-transition .content-wrapper,\nbody.hold-transition .right-side,\nbody.hold-transition .main-footer,\nbody.hold-transition .main-sidebar,\nbody.hold-transition .left-side,\nbody.hold-transition .main-header > .navbar,\nbody.hold-transition .main-header .logo {\n /* Fix for IE */\n -webkit-transition: none;\n -o-transition: none;\n transition: none;\n}\n/* Content */\n.content {\n min-height: 250px;\n padding: 15px;\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n/* H1 - H6 font */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: 'Source Sans Pro', sans-serif;\n}\n/* General Links */\na {\n color: #3c8dbc;\n}\na:hover,\na:active,\na:focus {\n outline: none;\n text-decoration: none;\n color: #72afd2;\n}\n/* Page Header */\n.page-header {\n margin: 10px 0 20px 0;\n font-size: 22px;\n}\n.page-header > small {\n color: #666;\n display: block;\n margin-top: 5px;\n}\n/*\n * Component: Main Header\n * ----------------------\n */\n.main-header {\n position: relative;\n max-height: 100px;\n z-index: 1030;\n}\n.main-header > .navbar {\n -webkit-transition: margin-left 0.3s ease-in-out;\n -o-transition: margin-left 0.3s ease-in-out;\n transition: margin-left 0.3s ease-in-out;\n margin-bottom: 0;\n margin-left: 230px;\n border: none;\n min-height: 50px;\n border-radius: 0;\n}\n.layout-top-nav .main-header > .navbar {\n margin-left: 0;\n}\n.main-header #navbar-search-input.form-control {\n background: rgba(255, 255, 255, 0.2);\n border-color: transparent;\n}\n.main-header #navbar-search-input.form-control:focus,\n.main-header #navbar-search-input.form-control:active {\n border-color: rgba(0, 0, 0, 0.1);\n background: rgba(255, 255, 255, 0.9);\n}\n.main-header #navbar-search-input.form-control::-moz-placeholder {\n color: #ccc;\n opacity: 1;\n}\n.main-header #navbar-search-input.form-control:-ms-input-placeholder {\n color: #ccc;\n}\n.main-header #navbar-search-input.form-control::-webkit-input-placeholder {\n color: #ccc;\n}\n.main-header .navbar-custom-menu,\n.main-header .navbar-right {\n float: right;\n}\n@media (max-width: 991px) {\n .main-header .navbar-custom-menu a,\n .main-header .navbar-right a {\n color: inherit;\n background: transparent;\n }\n}\n@media (max-width: 767px) {\n .main-header .navbar-right {\n float: none;\n }\n .navbar-collapse .main-header .navbar-right {\n margin: 7.5px -15px;\n }\n .main-header .navbar-right > li {\n color: inherit;\n border: 0;\n }\n}\n.main-header .sidebar-toggle {\n float: left;\n background-color: transparent;\n background-image: none;\n padding: 15px 15px;\n font-family: fontAwesome;\n}\n.main-header .sidebar-toggle:before {\n content: \"\\f0c9\";\n}\n.main-header .sidebar-toggle:hover {\n color: #fff;\n}\n.main-header .sidebar-toggle:focus,\n.main-header .sidebar-toggle:active {\n background: transparent;\n}\n.main-header .sidebar-toggle .icon-bar {\n display: none;\n}\n.main-header .navbar .nav > li.user > a > .fa,\n.main-header .navbar .nav > li.user > a > .glyphicon,\n.main-header .navbar .nav > li.user > a > .ion {\n margin-right: 5px;\n}\n.main-header .navbar .nav > li > a > .label {\n position: absolute;\n top: 9px;\n right: 7px;\n text-align: center;\n font-size: 9px;\n padding: 2px 3px;\n line-height: .9;\n}\n.main-header .logo {\n -webkit-transition: width 0.3s ease-in-out;\n -o-transition: width 0.3s ease-in-out;\n transition: width 0.3s ease-in-out;\n display: block;\n float: left;\n height: 50px;\n font-size: 20px;\n line-height: 50px;\n text-align: center;\n width: 230px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n padding: 0 15px;\n font-weight: 300;\n overflow: hidden;\n}\n.main-header .logo .logo-lg {\n display: block;\n}\n.main-header .logo .logo-mini {\n display: none;\n}\n.main-header .navbar-brand {\n color: #fff;\n}\n.content-header {\n position: relative;\n padding: 15px 15px 0 15px;\n}\n.content-header > h1 {\n margin: 0;\n font-size: 24px;\n}\n.content-header > h1 > small {\n font-size: 15px;\n display: inline-block;\n padding-left: 4px;\n font-weight: 300;\n}\n.content-header > .breadcrumb {\n float: right;\n background: transparent;\n margin-top: 0;\n margin-bottom: 0;\n font-size: 12px;\n padding: 7px 5px;\n position: absolute;\n top: 15px;\n right: 10px;\n border-radius: 2px;\n}\n.content-header > .breadcrumb > li > a {\n color: #444;\n text-decoration: none;\n display: inline-block;\n}\n.content-header > .breadcrumb > li > a > .fa,\n.content-header > .breadcrumb > li > a > .glyphicon,\n.content-header > .breadcrumb > li > a > .ion {\n margin-right: 5px;\n}\n.content-header > .breadcrumb > li + li:before {\n content: '>\\00a0';\n}\n@media (max-width: 991px) {\n .content-header > .breadcrumb {\n position: relative;\n margin-top: 5px;\n top: 0;\n right: 0;\n float: none;\n background: #d2d6de;\n padding-left: 10px;\n }\n .content-header > .breadcrumb li:before {\n color: #97a0b3;\n }\n}\n.navbar-toggle {\n color: #fff;\n border: 0;\n margin: 0;\n padding: 15px 15px;\n}\n@media (max-width: 991px) {\n .navbar-custom-menu .navbar-nav > li {\n float: left;\n }\n .navbar-custom-menu .navbar-nav {\n margin: 0;\n float: left;\n }\n .navbar-custom-menu .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n line-height: 20px;\n }\n}\n@media (max-width: 767px) {\n .main-header {\n position: relative;\n }\n .main-header .logo,\n .main-header .navbar {\n width: 100%;\n float: none;\n }\n .main-header .navbar {\n margin: 0;\n }\n .main-header .navbar-custom-menu {\n float: right;\n }\n}\n@media (max-width: 991px) {\n .navbar-collapse.pull-left {\n float: none !important;\n }\n .navbar-collapse.pull-left + .navbar-custom-menu {\n display: block;\n position: absolute;\n top: 0;\n right: 40px;\n }\n}\n/*\n * Component: Sidebar\n * ------------------\n */\n.main-sidebar,\n.left-side {\n position: absolute;\n top: 0;\n left: 0;\n padding-top: 50px;\n min-height: 100%;\n width: 230px;\n z-index: 810;\n -webkit-transition: -webkit-transform 0.3s ease-in-out, width 0.3s ease-in-out;\n -moz-transition: -moz-transform 0.3s ease-in-out, width 0.3s ease-in-out;\n -o-transition: -o-transform 0.3s ease-in-out, width 0.3s ease-in-out;\n transition: transform 0.3s ease-in-out, width 0.3s ease-in-out;\n}\n@media (max-width: 767px) {\n .main-sidebar,\n .left-side {\n padding-top: 100px;\n }\n}\n@media (max-width: 767px) {\n .main-sidebar,\n .left-side {\n -webkit-transform: translate(-230px, 0);\n -ms-transform: translate(-230px, 0);\n -o-transform: translate(-230px, 0);\n transform: translate(-230px, 0);\n }\n}\n@media (min-width: 768px) {\n .sidebar-collapse .main-sidebar,\n .sidebar-collapse .left-side {\n -webkit-transform: translate(-230px, 0);\n -ms-transform: translate(-230px, 0);\n -o-transform: translate(-230px, 0);\n transform: translate(-230px, 0);\n }\n}\n@media (max-width: 767px) {\n .sidebar-open .main-sidebar,\n .sidebar-open .left-side {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n }\n}\n.sidebar {\n padding-bottom: 10px;\n}\n.sidebar-form input:focus {\n border-color: transparent;\n}\n.user-panel {\n position: relative;\n width: 100%;\n padding: 10px;\n overflow: hidden;\n}\n.user-panel:before,\n.user-panel:after {\n content: \" \";\n display: table;\n}\n.user-panel:after {\n clear: both;\n}\n.user-panel > .image > img {\n width: 100%;\n max-width: 45px;\n height: auto;\n}\n.user-panel > .info {\n padding: 5px 5px 5px 15px;\n line-height: 1;\n position: absolute;\n left: 55px;\n}\n.user-panel > .info > p {\n font-weight: 600;\n margin-bottom: 9px;\n}\n.user-panel > .info > a {\n text-decoration: none;\n padding-right: 5px;\n margin-top: 3px;\n font-size: 11px;\n}\n.user-panel > .info > a > .fa,\n.user-panel > .info > a > .ion,\n.user-panel > .info > a > .glyphicon {\n margin-right: 3px;\n}\n.sidebar-menu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.sidebar-menu > li {\n position: relative;\n margin: 0;\n padding: 0;\n}\n.sidebar-menu > li > a {\n padding: 12px 5px 12px 15px;\n display: block;\n}\n.sidebar-menu > li > a > .fa,\n.sidebar-menu > li > a > .glyphicon,\n.sidebar-menu > li > a > .ion {\n width: 20px;\n}\n.sidebar-menu > li .label,\n.sidebar-menu > li .badge {\n margin-top: 3px;\n margin-right: 5px;\n}\n.sidebar-menu li.header {\n padding: 10px 25px 10px 15px;\n font-size: 12px;\n}\n.sidebar-menu li > a > .fa-angle-left {\n width: auto;\n height: auto;\n padding: 0;\n margin-right: 10px;\n margin-top: 3px;\n}\n.sidebar-menu li.active > a > .fa-angle-left {\n -webkit-transform: rotate(-90deg);\n -ms-transform: rotate(-90deg);\n -o-transform: rotate(-90deg);\n transform: rotate(-90deg);\n}\n.sidebar-menu li.active > .treeview-menu {\n display: block;\n}\n.sidebar-menu .treeview-menu {\n display: none;\n list-style: none;\n padding: 0;\n margin: 0;\n padding-left: 5px;\n}\n.sidebar-menu .treeview-menu .treeview-menu {\n padding-left: 20px;\n}\n.sidebar-menu .treeview-menu > li {\n margin: 0;\n}\n.sidebar-menu .treeview-menu > li > a {\n padding: 5px 5px 5px 15px;\n display: block;\n font-size: 14px;\n}\n.sidebar-menu .treeview-menu > li > a > .fa,\n.sidebar-menu .treeview-menu > li > a > .glyphicon,\n.sidebar-menu .treeview-menu > li > a > .ion {\n width: 20px;\n}\n.sidebar-menu .treeview-menu > li > a > .fa-angle-left,\n.sidebar-menu .treeview-menu > li > a > .fa-angle-down {\n width: auto;\n}\n/*\n * Component: Sidebar Mini\n */\n@media (min-width: 768px) {\n .sidebar-mini.sidebar-collapse .content-wrapper,\n .sidebar-mini.sidebar-collapse .right-side,\n .sidebar-mini.sidebar-collapse .main-footer {\n margin-left: 50px !important;\n z-index: 840;\n }\n .sidebar-mini.sidebar-collapse .main-sidebar {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n width: 50px !important;\n z-index: 850;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li {\n position: relative;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li > a {\n margin-right: 0;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span {\n border-top-right-radius: 4px;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li:not(.treeview) > a > span {\n border-bottom-right-radius: 4px;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {\n padding-top: 5px;\n padding-bottom: 5px;\n border-bottom-right-radius: 4px;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right),\n .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {\n display: block !important;\n position: absolute;\n width: 180px;\n left: 50px;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span {\n top: 0;\n margin-left: -3px;\n padding: 12px 5px 12px 20px;\n background-color: inherit;\n }\n .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {\n top: 44px;\n margin-left: 0;\n }\n .sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info,\n .sidebar-mini.sidebar-collapse .sidebar-form,\n .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span,\n .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu,\n .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .pull-right,\n .sidebar-mini.sidebar-collapse .sidebar-menu li.header {\n display: none !important;\n -webkit-transform: translateZ(0);\n }\n .sidebar-mini.sidebar-collapse .main-header .logo {\n width: 50px;\n }\n .sidebar-mini.sidebar-collapse .main-header .logo > .logo-mini {\n display: block;\n margin-left: -15px;\n margin-right: -15px;\n font-size: 18px;\n }\n .sidebar-mini.sidebar-collapse .main-header .logo > .logo-lg {\n display: none;\n }\n .sidebar-mini.sidebar-collapse .main-header .navbar {\n margin-left: 50px;\n }\n}\n.sidebar-menu,\n.main-sidebar .user-panel,\n.sidebar-menu > li.header {\n white-space: nowrap;\n overflow: hidden;\n}\n.sidebar-menu:hover {\n overflow: visible;\n}\n.sidebar-form,\n.sidebar-menu > li.header {\n overflow: hidden;\n text-overflow: clip;\n}\n.sidebar-menu li > a {\n position: relative;\n}\n.sidebar-menu li > a > .pull-right {\n position: absolute;\n right: 10px;\n top: 50%;\n margin-top: -7px;\n}\n/*\n * Component: Control sidebar. By default, this is the right sidebar.\n */\n.control-sidebar-bg {\n position: fixed;\n z-index: 1000;\n bottom: 0;\n}\n.control-sidebar-bg,\n.control-sidebar {\n top: 0;\n right: -230px;\n width: 230px;\n -webkit-transition: right 0.3s ease-in-out;\n -o-transition: right 0.3s ease-in-out;\n transition: right 0.3s ease-in-out;\n}\n.control-sidebar {\n position: absolute;\n padding-top: 50px;\n z-index: 1010;\n}\n@media (max-width: 768px) {\n .control-sidebar {\n padding-top: 100px;\n }\n}\n.control-sidebar > .tab-content {\n padding: 10px 15px;\n}\n.control-sidebar.control-sidebar-open,\n.control-sidebar.control-sidebar-open + .control-sidebar-bg {\n right: 0;\n}\n.control-sidebar-open .control-sidebar-bg,\n.control-sidebar-open .control-sidebar {\n right: 0;\n}\n@media (min-width: 768px) {\n .control-sidebar-open .content-wrapper,\n .control-sidebar-open .right-side,\n .control-sidebar-open .main-footer {\n margin-right: 230px;\n }\n}\n.nav-tabs.control-sidebar-tabs > li:first-of-type > a,\n.nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover,\n.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus {\n border-left-width: 0;\n}\n.nav-tabs.control-sidebar-tabs > li > a {\n border-radius: 0;\n}\n.nav-tabs.control-sidebar-tabs > li > a,\n.nav-tabs.control-sidebar-tabs > li > a:hover {\n border-top: none;\n border-right: none;\n border-left: 1px solid transparent;\n border-bottom: 1px solid transparent;\n}\n.nav-tabs.control-sidebar-tabs > li > a .icon {\n font-size: 16px;\n}\n.nav-tabs.control-sidebar-tabs > li.active > a,\n.nav-tabs.control-sidebar-tabs > li.active > a:hover,\n.nav-tabs.control-sidebar-tabs > li.active > a:focus,\n.nav-tabs.control-sidebar-tabs > li.active > a:active {\n border-top: none;\n border-right: none;\n border-bottom: none;\n}\n@media (max-width: 768px) {\n .nav-tabs.control-sidebar-tabs {\n display: table;\n }\n .nav-tabs.control-sidebar-tabs > li {\n display: table-cell;\n }\n}\n.control-sidebar-heading {\n font-weight: 400;\n font-size: 16px;\n padding: 10px 0;\n margin-bottom: 10px;\n}\n.control-sidebar-subheading {\n display: block;\n font-weight: 400;\n font-size: 14px;\n}\n.control-sidebar-menu {\n list-style: none;\n padding: 0;\n margin: 0 -15px;\n}\n.control-sidebar-menu > li > a {\n display: block;\n padding: 10px 15px;\n}\n.control-sidebar-menu > li > a:before,\n.control-sidebar-menu > li > a:after {\n content: \" \";\n display: table;\n}\n.control-sidebar-menu > li > a:after {\n clear: both;\n}\n.control-sidebar-menu > li > a > .control-sidebar-subheading {\n margin-top: 0;\n}\n.control-sidebar-menu .menu-icon {\n float: left;\n width: 35px;\n height: 35px;\n border-radius: 50%;\n text-align: center;\n line-height: 35px;\n}\n.control-sidebar-menu .menu-info {\n margin-left: 45px;\n margin-top: 3px;\n}\n.control-sidebar-menu .menu-info > .control-sidebar-subheading {\n margin: 0;\n}\n.control-sidebar-menu .menu-info > p {\n margin: 0;\n font-size: 11px;\n}\n.control-sidebar-menu .progress {\n margin: 0;\n}\n.control-sidebar-dark {\n color: #b8c7ce;\n}\n.control-sidebar-dark,\n.control-sidebar-dark + .control-sidebar-bg {\n background: #222d32;\n}\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs {\n border-bottom: #1c2529;\n}\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a {\n background: #181f23;\n color: #b8c7ce;\n}\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a,\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover,\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus {\n border-left-color: #141a1d;\n border-bottom-color: #141a1d;\n}\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover,\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus,\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:active {\n background: #1c2529;\n}\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover {\n color: #fff;\n}\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a,\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:hover,\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:focus,\n.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:active {\n background: #222d32;\n color: #fff;\n}\n.control-sidebar-dark .control-sidebar-heading,\n.control-sidebar-dark .control-sidebar-subheading {\n color: #fff;\n}\n.control-sidebar-dark .control-sidebar-menu > li > a:hover {\n background: #1e282c;\n}\n.control-sidebar-dark .control-sidebar-menu > li > a .menu-info > p {\n color: #b8c7ce;\n}\n.control-sidebar-light {\n color: #5e5e5e;\n}\n.control-sidebar-light,\n.control-sidebar-light + .control-sidebar-bg {\n background: #f9fafc;\n border-left: 1px solid #d2d6de;\n}\n.control-sidebar-light .nav-tabs.control-sidebar-tabs {\n border-bottom: #d2d6de;\n}\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a {\n background: #e8ecf4;\n color: #444444;\n}\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a,\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover,\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus {\n border-left-color: #d2d6de;\n border-bottom-color: #d2d6de;\n}\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover,\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus,\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:active {\n background: #eff1f7;\n}\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a,\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:hover,\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:focus,\n.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:active {\n background: #f9fafc;\n color: #111;\n}\n.control-sidebar-light .control-sidebar-heading,\n.control-sidebar-light .control-sidebar-subheading {\n color: #111;\n}\n.control-sidebar-light .control-sidebar-menu {\n margin-left: -14px;\n}\n.control-sidebar-light .control-sidebar-menu > li > a:hover {\n background: #f4f4f5;\n}\n.control-sidebar-light .control-sidebar-menu > li > a .menu-info > p {\n color: #5e5e5e;\n}\n/*\n * Component: Dropdown menus\n * -------------------------\n */\n/*Dropdowns in general*/\n.dropdown-menu {\n box-shadow: none;\n border-color: #eee;\n}\n.dropdown-menu > li > a {\n color: #777;\n}\n.dropdown-menu > li > a > .glyphicon,\n.dropdown-menu > li > a > .fa,\n.dropdown-menu > li > a > .ion {\n margin-right: 10px;\n}\n.dropdown-menu > li > a:hover {\n background-color: #e1e3e9;\n color: #333;\n}\n.dropdown-menu > .divider {\n background-color: #eee;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu,\n.navbar-nav > .messages-menu > .dropdown-menu,\n.navbar-nav > .tasks-menu > .dropdown-menu {\n width: 280px;\n padding: 0 0 0 0;\n margin: 0;\n top: 100%;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li,\n.navbar-nav > .messages-menu > .dropdown-menu > li,\n.navbar-nav > .tasks-menu > .dropdown-menu > li {\n position: relative;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li.header,\n.navbar-nav > .messages-menu > .dropdown-menu > li.header,\n.navbar-nav > .tasks-menu > .dropdown-menu > li.header {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n background-color: #ffffff;\n padding: 7px 10px;\n border-bottom: 1px solid #f4f4f4;\n color: #444444;\n font-size: 14px;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a,\n.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a,\n.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n font-size: 12px;\n background-color: #fff;\n padding: 7px 10px;\n border-bottom: 1px solid #eeeeee;\n color: #444 !important;\n text-align: center;\n}\n@media (max-width: 991px) {\n .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a,\n .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a,\n .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a {\n background: #fff !important;\n color: #444 !important;\n }\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover,\n.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover,\n.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover {\n text-decoration: none;\n font-weight: normal;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li .menu,\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu,\n.navbar-nav > .tasks-menu > .dropdown-menu > li .menu {\n max-height: 200px;\n margin: 0;\n padding: 0;\n list-style: none;\n overflow-x: hidden;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a,\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a,\n.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a {\n display: block;\n white-space: nowrap;\n /* Prevent text from breaking */\n border-bottom: 1px solid #f4f4f4;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover,\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover,\n.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover {\n background: #f4f4f4;\n text-decoration: none;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a {\n color: #444444;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 10px;\n}\n.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon,\n.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa,\n.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion {\n width: 20px;\n}\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a {\n margin: 0;\n padding: 10px 10px;\n}\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img {\n margin: auto 10px auto auto;\n width: 40px;\n height: 40px;\n}\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 {\n padding: 0;\n margin: 0 0 0 45px;\n color: #444444;\n font-size: 15px;\n position: relative;\n}\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small {\n color: #999999;\n font-size: 10px;\n position: absolute;\n top: 0;\n right: 0;\n}\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p {\n margin: 0 0 0 45px;\n font-size: 12px;\n color: #888888;\n}\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before,\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after {\n content: \" \";\n display: table;\n}\n.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after {\n clear: both;\n}\n.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a {\n padding: 10px;\n}\n.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 {\n font-size: 14px;\n padding: 0;\n margin: 0 0 10px 0;\n color: #666666;\n}\n.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress {\n padding: 0;\n margin: 0;\n}\n.navbar-nav > .user-menu > .dropdown-menu {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n padding: 1px 0 0 0;\n border-top-width: 0;\n width: 280px;\n}\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n height: 175px;\n padding: 10px;\n text-align: center;\n}\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n z-index: 5;\n height: 90px;\n width: 90px;\n border: 3px solid;\n border-color: transparent;\n border-color: rgba(255, 255, 255, 0.2);\n}\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n z-index: 5;\n color: #fff;\n color: rgba(255, 255, 255, 0.8);\n font-size: 17px;\n margin-top: 10px;\n}\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n display: block;\n font-size: 12px;\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n padding: 15px;\n border-bottom: 1px solid #f4f4f4;\n border-top: 1px solid #dddddd;\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-body:before,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body:after {\n content: \" \";\n display: table;\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-body:after {\n clear: both;\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n color: #444 !important;\n}\n@media (max-width: 991px) {\n .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n background: #fff !important;\n color: #444 !important;\n }\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n background-color: #f9f9f9;\n padding: 10px;\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer:before,\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after {\n content: \" \";\n display: table;\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after {\n clear: both;\n}\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n color: #666666;\n}\n@media (max-width: 991px) {\n .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n background-color: #f9f9f9;\n }\n}\n.navbar-nav > .user-menu .user-image {\n float: left;\n width: 25px;\n height: 25px;\n border-radius: 50%;\n margin-right: 10px;\n margin-top: -2px;\n}\n@media (max-width: 767px) {\n .navbar-nav > .user-menu .user-image {\n float: none;\n margin-right: 0;\n margin-top: -8px;\n line-height: 10px;\n }\n}\n/* Add fade animation to dropdown menus by appending\n the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)*/\n.open:not(.dropup) > .animated-dropdown-menu {\n backface-visibility: visible !important;\n -webkit-animation: flipInX 0.7s both;\n -o-animation: flipInX 0.7s both;\n animation: flipInX 0.7s both;\n}\n@keyframes flipInX {\n 0% {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transition-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transition-timing-function: ease-in;\n }\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n 100% {\n transform: perspective(400px);\n }\n}\n@-webkit-keyframes flipInX {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n }\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n 100% {\n -webkit-transform: perspective(400px);\n }\n}\n/* Fix dropdown menu in navbars */\n.navbar-custom-menu > .navbar-nav > li {\n position: relative;\n}\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n position: absolute;\n right: 0;\n left: auto;\n}\n@media (max-width: 991px) {\n .navbar-custom-menu > .navbar-nav {\n float: right;\n }\n .navbar-custom-menu > .navbar-nav > li {\n position: static;\n }\n .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n position: absolute;\n right: 5%;\n left: auto;\n border: 1px solid #ddd;\n background: #fff;\n }\n}\n/*\n * Component: Form\n * ---------------\n */\n.form-control {\n border-radius: 0;\n box-shadow: none;\n border-color: #d2d6de;\n}\n.form-control:focus {\n border-color: #3c8dbc;\n box-shadow: none;\n}\n.form-control::-moz-placeholder,\n.form-control:-ms-input-placeholder,\n.form-control::-webkit-input-placeholder {\n color: #bbb;\n opacity: 1;\n}\n.form-control:not(select) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.form-group.has-success label {\n color: #00a65a;\n}\n.form-group.has-success .form-control {\n border-color: #00a65a;\n box-shadow: none;\n}\n.form-group.has-warning label {\n color: #f39c12;\n}\n.form-group.has-warning .form-control {\n border-color: #f39c12;\n box-shadow: none;\n}\n.form-group.has-error label {\n color: #dd4b39;\n}\n.form-group.has-error .form-control {\n border-color: #dd4b39;\n box-shadow: none;\n}\n/* Input group */\n.input-group .input-group-addon {\n border-radius: 0;\n border-color: #d2d6de;\n background-color: #fff;\n}\n/* button groups */\n.btn-group-vertical .btn.btn-flat:first-of-type,\n.btn-group-vertical .btn.btn-flat:last-of-type {\n border-radius: 0;\n}\n.icheck > label {\n padding-left: 0;\n}\n/* support Font Awesome icons in form-control */\n.form-control-feedback.fa {\n line-height: 34px;\n}\n.input-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fa,\n.form-group-lg .form-control + .form-control-feedback.fa {\n line-height: 46px;\n}\n.input-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fa,\n.form-group-sm .form-control + .form-control-feedback.fa {\n line-height: 30px;\n}\n/*\n * Component: Progress Bar\n * -----------------------\n */\n.progress,\n.progress > .progress-bar {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.progress,\n.progress > .progress-bar,\n.progress .progress-bar,\n.progress > .progress-bar .progress-bar {\n border-radius: 1px;\n}\n/* size variation */\n.progress.sm,\n.progress-sm {\n height: 10px;\n}\n.progress.sm,\n.progress-sm,\n.progress.sm .progress-bar,\n.progress-sm .progress-bar {\n border-radius: 1px;\n}\n.progress.xs,\n.progress-xs {\n height: 7px;\n}\n.progress.xs,\n.progress-xs,\n.progress.xs .progress-bar,\n.progress-xs .progress-bar {\n border-radius: 1px;\n}\n.progress.xxs,\n.progress-xxs {\n height: 3px;\n}\n.progress.xxs,\n.progress-xxs,\n.progress.xxs .progress-bar,\n.progress-xxs .progress-bar {\n border-radius: 1px;\n}\n/* Vertical bars */\n.progress.vertical {\n position: relative;\n width: 30px;\n height: 200px;\n display: inline-block;\n margin-right: 10px;\n}\n.progress.vertical > .progress-bar {\n width: 100%;\n position: absolute;\n bottom: 0;\n}\n.progress.vertical.sm,\n.progress.vertical.progress-sm {\n width: 20px;\n}\n.progress.vertical.xs,\n.progress.vertical.progress-xs {\n width: 10px;\n}\n.progress.vertical.xxs,\n.progress.vertical.progress-xxs {\n width: 3px;\n}\n.progress-group .progress-text {\n font-weight: 600;\n}\n.progress-group .progress-number {\n float: right;\n}\n/* Remove margins from progress bars when put in a table */\n.table tr > td .progress {\n margin: 0;\n}\n.progress-bar-light-blue,\n.progress-bar-primary {\n background-color: #3c8dbc;\n}\n.progress-striped .progress-bar-light-blue,\n.progress-striped .progress-bar-primary {\n 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);\n 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);\n 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);\n}\n.progress-bar-green,\n.progress-bar-success {\n background-color: #00a65a;\n}\n.progress-striped .progress-bar-green,\n.progress-striped .progress-bar-success {\n 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);\n 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);\n 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);\n}\n.progress-bar-aqua,\n.progress-bar-info {\n background-color: #00c0ef;\n}\n.progress-striped .progress-bar-aqua,\n.progress-striped .progress-bar-info {\n 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);\n 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);\n 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);\n}\n.progress-bar-yellow,\n.progress-bar-warning {\n background-color: #f39c12;\n}\n.progress-striped .progress-bar-yellow,\n.progress-striped .progress-bar-warning {\n 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);\n 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);\n 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);\n}\n.progress-bar-red,\n.progress-bar-danger {\n background-color: #dd4b39;\n}\n.progress-striped .progress-bar-red,\n.progress-striped .progress-bar-danger {\n 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);\n 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);\n 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);\n}\n/*\n * Component: Small Box\n * --------------------\n */\n.small-box {\n border-radius: 2px;\n position: relative;\n display: block;\n margin-bottom: 20px;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n}\n.small-box > .inner {\n padding: 10px;\n}\n.small-box > .small-box-footer {\n position: relative;\n text-align: center;\n padding: 3px 0;\n color: #fff;\n color: rgba(255, 255, 255, 0.8);\n display: block;\n z-index: 10;\n background: rgba(0, 0, 0, 0.1);\n text-decoration: none;\n}\n.small-box > .small-box-footer:hover {\n color: #fff;\n background: rgba(0, 0, 0, 0.15);\n}\n.small-box h3 {\n font-size: 38px;\n font-weight: bold;\n margin: 0 0 10px 0;\n white-space: nowrap;\n padding: 0;\n}\n.small-box p {\n font-size: 15px;\n}\n.small-box p > small {\n display: block;\n color: #f9f9f9;\n font-size: 13px;\n margin-top: 5px;\n}\n.small-box h3,\n.small-box p {\n z-index: 5;\n}\n.small-box .icon {\n -webkit-transition: all 0.3s linear;\n -o-transition: all 0.3s linear;\n transition: all 0.3s linear;\n position: absolute;\n top: -10px;\n right: 10px;\n z-index: 0;\n font-size: 90px;\n color: rgba(0, 0, 0, 0.15);\n}\n.small-box:hover {\n text-decoration: none;\n color: #f9f9f9;\n}\n.small-box:hover .icon {\n font-size: 95px;\n}\n@media (max-width: 767px) {\n .small-box {\n text-align: center;\n }\n .small-box .icon {\n display: none;\n }\n .small-box p {\n font-size: 12px;\n }\n}\n/*\n * Component: Box\n * --------------\n */\n.box {\n position: relative;\n border-radius: 3px;\n background: #ffffff;\n border-top: 3px solid #d2d6de;\n margin-bottom: 20px;\n width: 100%;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n}\n.box.box-primary {\n border-top-color: #3c8dbc;\n}\n.box.box-info {\n border-top-color: #00c0ef;\n}\n.box.box-danger {\n border-top-color: #dd4b39;\n}\n.box.box-warning {\n border-top-color: #f39c12;\n}\n.box.box-success {\n border-top-color: #00a65a;\n}\n.box.box-default {\n border-top-color: #d2d6de;\n}\n.box.collapsed-box .box-body,\n.box.collapsed-box .box-footer {\n display: none;\n}\n.box .nav-stacked > li {\n border-bottom: 1px solid #f4f4f4;\n margin: 0;\n}\n.box .nav-stacked > li:last-of-type {\n border-bottom: none;\n}\n.box.height-control .box-body {\n max-height: 300px;\n overflow: auto;\n}\n.box .border-right {\n border-right: 1px solid #f4f4f4;\n}\n.box .border-left {\n border-left: 1px solid #f4f4f4;\n}\n.box.box-solid {\n border-top: 0;\n}\n.box.box-solid > .box-header .btn.btn-default {\n background: transparent;\n}\n.box.box-solid > .box-header .btn:hover,\n.box.box-solid > .box-header a:hover {\n background: rgba(0, 0, 0, 0.1);\n}\n.box.box-solid.box-default {\n border: 1px solid #d2d6de;\n}\n.box.box-solid.box-default > .box-header {\n color: #444444;\n background: #d2d6de;\n background-color: #d2d6de;\n}\n.box.box-solid.box-default > .box-header a,\n.box.box-solid.box-default > .box-header .btn {\n color: #444444;\n}\n.box.box-solid.box-primary {\n border: 1px solid #3c8dbc;\n}\n.box.box-solid.box-primary > .box-header {\n color: #ffffff;\n background: #3c8dbc;\n background-color: #3c8dbc;\n}\n.box.box-solid.box-primary > .box-header a,\n.box.box-solid.box-primary > .box-header .btn {\n color: #ffffff;\n}\n.box.box-solid.box-info {\n border: 1px solid #00c0ef;\n}\n.box.box-solid.box-info > .box-header {\n color: #ffffff;\n background: #00c0ef;\n background-color: #00c0ef;\n}\n.box.box-solid.box-info > .box-header a,\n.box.box-solid.box-info > .box-header .btn {\n color: #ffffff;\n}\n.box.box-solid.box-danger {\n border: 1px solid #dd4b39;\n}\n.box.box-solid.box-danger > .box-header {\n color: #ffffff;\n background: #dd4b39;\n background-color: #dd4b39;\n}\n.box.box-solid.box-danger > .box-header a,\n.box.box-solid.box-danger > .box-header .btn {\n color: #ffffff;\n}\n.box.box-solid.box-warning {\n border: 1px solid #f39c12;\n}\n.box.box-solid.box-warning > .box-header {\n color: #ffffff;\n background: #f39c12;\n background-color: #f39c12;\n}\n.box.box-solid.box-warning > .box-header a,\n.box.box-solid.box-warning > .box-header .btn {\n color: #ffffff;\n}\n.box.box-solid.box-success {\n border: 1px solid #00a65a;\n}\n.box.box-solid.box-success > .box-header {\n color: #ffffff;\n background: #00a65a;\n background-color: #00a65a;\n}\n.box.box-solid.box-success > .box-header a,\n.box.box-solid.box-success > .box-header .btn {\n color: #ffffff;\n}\n.box.box-solid > .box-header > .box-tools .btn {\n border: 0;\n box-shadow: none;\n}\n.box.box-solid[class*='bg'] > .box-header {\n color: #fff;\n}\n.box .box-group > .box {\n margin-bottom: 5px;\n}\n.box .knob-label {\n text-align: center;\n color: #333;\n font-weight: 100;\n font-size: 12px;\n margin-bottom: 0.3em;\n}\n.box > .overlay,\n.overlay-wrapper > .overlay,\n.box > .loading-img,\n.overlay-wrapper > .loading-img {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.box .overlay,\n.overlay-wrapper .overlay {\n z-index: 50;\n background: rgba(255, 255, 255, 0.7);\n border-radius: 3px;\n}\n.box .overlay > .fa,\n.overlay-wrapper .overlay > .fa {\n position: absolute;\n top: 50%;\n left: 50%;\n margin-left: -15px;\n margin-top: -15px;\n color: #000;\n font-size: 30px;\n}\n.box .overlay.dark,\n.overlay-wrapper .overlay.dark {\n background: rgba(0, 0, 0, 0.5);\n}\n.box-header:before,\n.box-body:before,\n.box-footer:before,\n.box-header:after,\n.box-body:after,\n.box-footer:after {\n content: \" \";\n display: table;\n}\n.box-header:after,\n.box-body:after,\n.box-footer:after {\n clear: both;\n}\n.box-header {\n color: #444;\n display: block;\n padding: 10px;\n position: relative;\n}\n.box-header.with-border {\n border-bottom: 1px solid #f4f4f4;\n}\n.collapsed-box .box-header.with-border {\n border-bottom: none;\n}\n.box-header > .fa,\n.box-header > .glyphicon,\n.box-header > .ion,\n.box-header .box-title {\n display: inline-block;\n font-size: 18px;\n margin: 0;\n line-height: 1;\n}\n.box-header > .fa,\n.box-header > .glyphicon,\n.box-header > .ion {\n margin-right: 5px;\n}\n.box-header > .box-tools {\n position: absolute;\n right: 10px;\n top: 5px;\n}\n.box-header > .box-tools [data-toggle=\"tooltip\"] {\n position: relative;\n}\n.box-header > .box-tools.pull-right .dropdown-menu {\n right: 0;\n left: auto;\n}\n.btn-box-tool {\n padding: 5px;\n font-size: 12px;\n background: transparent;\n color: #97a0b3;\n}\n.open .btn-box-tool,\n.btn-box-tool:hover {\n color: #606c84;\n}\n.btn-box-tool.btn:active {\n box-shadow: none;\n}\n.box-body {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n padding: 10px;\n}\n.no-header .box-body {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.box-body > .table {\n margin-bottom: 0;\n}\n.box-body .fc {\n margin-top: 5px;\n}\n.box-body .full-width-chart {\n margin: -19px;\n}\n.box-body.no-padding .full-width-chart {\n margin: -9px;\n}\n.box-body .box-pane {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 3px;\n}\n.box-body .box-pane-right {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 0;\n}\n.box-footer {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n border-top: 1px solid #f4f4f4;\n padding: 10px;\n background-color: #ffffff;\n}\n.chart-legend {\n margin: 10px 0;\n}\n@media (max-width: 991px) {\n .chart-legend > li {\n float: left;\n margin-right: 10px;\n }\n}\n.box-comments {\n background: #f7f7f7;\n}\n.box-comments .box-comment {\n padding: 8px 0;\n border-bottom: 1px solid #eee;\n}\n.box-comments .box-comment:before,\n.box-comments .box-comment:after {\n content: \" \";\n display: table;\n}\n.box-comments .box-comment:after {\n clear: both;\n}\n.box-comments .box-comment:last-of-type {\n border-bottom: 0;\n}\n.box-comments .box-comment:first-of-type {\n padding-top: 0;\n}\n.box-comments .box-comment img {\n float: left;\n}\n.box-comments .comment-text {\n margin-left: 40px;\n color: #555;\n}\n.box-comments .username {\n color: #444;\n display: block;\n font-weight: 600;\n}\n.box-comments .text-muted {\n font-weight: 400;\n font-size: 12px;\n}\n/* Widget: TODO LIST */\n.todo-list {\n margin: 0;\n padding: 0;\n list-style: none;\n overflow: auto;\n}\n.todo-list > li {\n border-radius: 2px;\n padding: 10px;\n background: #f4f4f4;\n margin-bottom: 2px;\n border-left: 2px solid #e6e7e8;\n color: #444;\n}\n.todo-list > li:last-of-type {\n margin-bottom: 0;\n}\n.todo-list > li > input[type='checkbox'] {\n margin: 0 10px 0 5px;\n}\n.todo-list > li .text {\n display: inline-block;\n margin-left: 5px;\n font-weight: 600;\n}\n.todo-list > li .label {\n margin-left: 10px;\n font-size: 9px;\n}\n.todo-list > li .tools {\n display: none;\n float: right;\n color: #dd4b39;\n}\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .glyphicon,\n.todo-list > li .tools > .ion {\n margin-right: 5px;\n cursor: pointer;\n}\n.todo-list > li:hover .tools {\n display: inline-block;\n}\n.todo-list > li.done {\n color: #999;\n}\n.todo-list > li.done .text {\n text-decoration: line-through;\n font-weight: 500;\n}\n.todo-list > li.done .label {\n background: #d2d6de !important;\n}\n.todo-list .danger {\n border-left-color: #dd4b39;\n}\n.todo-list .warning {\n border-left-color: #f39c12;\n}\n.todo-list .info {\n border-left-color: #00c0ef;\n}\n.todo-list .success {\n border-left-color: #00a65a;\n}\n.todo-list .primary {\n border-left-color: #3c8dbc;\n}\n.todo-list .handle {\n display: inline-block;\n cursor: move;\n margin: 0 5px;\n}\n/* Chat widget (DEPRECATED - this will be removed in the next major release. Use Direct Chat instead)*/\n.chat {\n padding: 5px 20px 5px 10px;\n}\n.chat .item {\n margin-bottom: 10px;\n}\n.chat .item:before,\n.chat .item:after {\n content: \" \";\n display: table;\n}\n.chat .item:after {\n clear: both;\n}\n.chat .item > img {\n width: 40px;\n height: 40px;\n border: 2px solid transparent;\n border-radius: 50%;\n}\n.chat .item > .online {\n border: 2px solid #00a65a;\n}\n.chat .item > .offline {\n border: 2px solid #dd4b39;\n}\n.chat .item > .message {\n margin-left: 55px;\n margin-top: -40px;\n}\n.chat .item > .message > .name {\n display: block;\n font-weight: 600;\n}\n.chat .item > .attachment {\n border-radius: 3px;\n background: #f4f4f4;\n margin-left: 65px;\n margin-right: 15px;\n padding: 10px;\n}\n.chat .item > .attachment > h4 {\n margin: 0 0 5px 0;\n font-weight: 600;\n font-size: 14px;\n}\n.chat .item > .attachment > p,\n.chat .item > .attachment > .filename {\n font-weight: 600;\n font-size: 13px;\n font-style: italic;\n margin: 0;\n}\n.chat .item > .attachment:before,\n.chat .item > .attachment:after {\n content: \" \";\n display: table;\n}\n.chat .item > .attachment:after {\n clear: both;\n}\n.box-input {\n max-width: 200px;\n}\n.modal .panel-body {\n color: #444;\n}\n/*\n * Component: Info Box\n * -------------------\n */\n.info-box {\n display: block;\n min-height: 90px;\n background: #fff;\n width: 100%;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n border-radius: 2px;\n margin-bottom: 15px;\n}\n.info-box small {\n font-size: 14px;\n}\n.info-box .progress {\n background: rgba(0, 0, 0, 0.2);\n margin: 5px -10px 5px -10px;\n height: 2px;\n}\n.info-box .progress,\n.info-box .progress .progress-bar {\n border-radius: 0;\n}\n.info-box .progress .progress-bar {\n background: #fff;\n}\n.info-box-icon {\n border-top-left-radius: 2px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 2px;\n display: block;\n float: left;\n height: 90px;\n width: 90px;\n text-align: center;\n font-size: 45px;\n line-height: 90px;\n background: rgba(0, 0, 0, 0.2);\n}\n.info-box-icon > img {\n max-width: 100%;\n}\n.info-box-content {\n padding: 5px 10px;\n margin-left: 90px;\n}\n.info-box-number {\n display: block;\n font-weight: bold;\n font-size: 18px;\n}\n.progress-description,\n.info-box-text {\n display: block;\n font-size: 14px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.info-box-text {\n text-transform: uppercase;\n}\n.info-box-more {\n display: block;\n}\n.progress-description {\n margin: 0;\n}\n/*\n * Component: Timeline\n * -------------------\n */\n.timeline {\n position: relative;\n margin: 0 0 30px 0;\n padding: 0;\n list-style: none;\n}\n.timeline:before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n width: 4px;\n background: #ddd;\n left: 31px;\n margin: 0;\n border-radius: 2px;\n}\n.timeline > li {\n position: relative;\n margin-right: 10px;\n margin-bottom: 15px;\n}\n.timeline > li:before,\n.timeline > li:after {\n content: \" \";\n display: table;\n}\n.timeline > li:after {\n clear: both;\n}\n.timeline > li > .timeline-item {\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n margin-top: 0;\n background: #fff;\n color: #444;\n margin-left: 60px;\n margin-right: 15px;\n padding: 0;\n position: relative;\n}\n.timeline > li > .timeline-item > .time {\n color: #999;\n float: right;\n padding: 10px;\n font-size: 12px;\n}\n.timeline > li > .timeline-item > .timeline-header {\n margin: 0;\n color: #555;\n border-bottom: 1px solid #f4f4f4;\n padding: 10px;\n font-size: 16px;\n line-height: 1.1;\n}\n.timeline > li > .timeline-item > .timeline-header > a {\n font-weight: 600;\n}\n.timeline > li > .timeline-item > .timeline-body,\n.timeline > li > .timeline-item > .timeline-footer {\n padding: 10px;\n}\n.timeline > li > .fa,\n.timeline > li > .glyphicon,\n.timeline > li > .ion {\n width: 30px;\n height: 30px;\n font-size: 15px;\n line-height: 30px;\n position: absolute;\n color: #666;\n background: #d2d6de;\n border-radius: 50%;\n text-align: center;\n left: 18px;\n top: 0;\n}\n.timeline > .time-label > span {\n font-weight: 600;\n padding: 5px;\n display: inline-block;\n background-color: #fff;\n border-radius: 4px;\n}\n.timeline-inverse > li > .timeline-item {\n background: #f0f0f0;\n border: 1px solid #ddd;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.timeline-inverse > li > .timeline-item > .timeline-header {\n border-bottom-color: #ddd;\n}\n/*\n * Component: Button\n * -----------------\n */\n.btn {\n border-radius: 3px;\n -webkit-box-shadow: none;\n box-shadow: none;\n border: 1px solid transparent;\n}\n.btn.uppercase {\n text-transform: uppercase;\n}\n.btn.btn-flat {\n border-radius: 0;\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n box-shadow: none;\n border-width: 1px;\n}\n.btn:active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn:focus {\n outline: none;\n}\n.btn.btn-file {\n position: relative;\n overflow: hidden;\n}\n.btn.btn-file > input[type='file'] {\n position: absolute;\n top: 0;\n right: 0;\n min-width: 100%;\n min-height: 100%;\n font-size: 100px;\n text-align: right;\n opacity: 0;\n filter: alpha(opacity=0);\n outline: none;\n background: white;\n cursor: inherit;\n display: block;\n}\n.btn-default {\n background-color: #f4f4f4;\n color: #444;\n border-color: #ddd;\n}\n.btn-default:hover,\n.btn-default:active,\n.btn-default.hover {\n background-color: #e7e7e7;\n}\n.btn-primary {\n background-color: #3c8dbc;\n border-color: #367fa9;\n}\n.btn-primary:hover,\n.btn-primary:active,\n.btn-primary.hover {\n background-color: #367fa9;\n}\n.btn-success {\n background-color: #00a65a;\n border-color: #008d4c;\n}\n.btn-success:hover,\n.btn-success:active,\n.btn-success.hover {\n background-color: #008d4c;\n}\n.btn-info {\n background-color: #00c0ef;\n border-color: #00acd6;\n}\n.btn-info:hover,\n.btn-info:active,\n.btn-info.hover {\n background-color: #00acd6;\n}\n.btn-danger {\n background-color: #dd4b39;\n border-color: #d73925;\n}\n.btn-danger:hover,\n.btn-danger:active,\n.btn-danger.hover {\n background-color: #d73925;\n}\n.btn-warning {\n background-color: #f39c12;\n border-color: #e08e0b;\n}\n.btn-warning:hover,\n.btn-warning:active,\n.btn-warning.hover {\n background-color: #e08e0b;\n}\n.btn-outline {\n border: 1px solid #fff;\n background: transparent;\n color: #fff;\n}\n.btn-outline:hover,\n.btn-outline:focus,\n.btn-outline:active {\n color: rgba(255, 255, 255, 0.7);\n border-color: rgba(255, 255, 255, 0.7);\n}\n.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn[class*='bg-']:hover {\n -webkit-box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2);\n box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2);\n}\n.btn-app {\n border-radius: 3px;\n position: relative;\n padding: 15px 5px;\n margin: 0 0 10px 10px;\n min-width: 80px;\n height: 60px;\n text-align: center;\n color: #666;\n border: 1px solid #ddd;\n background-color: #f4f4f4;\n font-size: 12px;\n}\n.btn-app > .fa,\n.btn-app > .glyphicon,\n.btn-app > .ion {\n font-size: 20px;\n display: block;\n}\n.btn-app:hover {\n background: #f4f4f4;\n color: #444;\n border-color: #aaa;\n}\n.btn-app:active,\n.btn-app:focus {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-app > .badge {\n position: absolute;\n top: -3px;\n right: -10px;\n font-size: 10px;\n font-weight: 400;\n}\n/*\n * Component: Callout\n * ------------------\n */\n.callout {\n border-radius: 3px;\n margin: 0 0 20px 0;\n padding: 15px 30px 15px 15px;\n border-left: 5px solid #eee;\n}\n.callout a {\n color: #fff;\n text-decoration: underline;\n}\n.callout a:hover {\n color: #eee;\n}\n.callout h4 {\n margin-top: 0;\n font-weight: 600;\n}\n.callout p:last-child {\n margin-bottom: 0;\n}\n.callout code,\n.callout .highlight {\n background-color: #fff;\n}\n.callout.callout-danger {\n border-color: #c23321;\n}\n.callout.callout-warning {\n border-color: #c87f0a;\n}\n.callout.callout-info {\n border-color: #0097bc;\n}\n.callout.callout-success {\n border-color: #00733e;\n}\n/*\n * Component: alert\n * ----------------\n */\n.alert {\n border-radius: 3px;\n}\n.alert h4 {\n font-weight: 600;\n}\n.alert .icon {\n margin-right: 10px;\n}\n.alert .close {\n color: #000;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.alert .close:hover {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.alert a {\n color: #fff;\n text-decoration: underline;\n}\n.alert-success {\n border-color: #008d4c;\n}\n.alert-danger,\n.alert-error {\n border-color: #d73925;\n}\n.alert-warning {\n border-color: #e08e0b;\n}\n.alert-info {\n border-color: #00acd6;\n}\n/*\n * Component: Nav\n * --------------\n */\n.nav > li > a:hover,\n.nav > li > a:active,\n.nav > li > a:focus {\n color: #444;\n background: #f7f7f7;\n}\n/* NAV PILLS */\n.nav-pills > li > a {\n border-radius: 0;\n border-top: 3px solid transparent;\n color: #444;\n}\n.nav-pills > li > a > .fa,\n.nav-pills > li > a > .glyphicon,\n.nav-pills > li > a > .ion {\n margin-right: 5px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n border-top-color: #3c8dbc;\n}\n.nav-pills > li.active > a {\n font-weight: 600;\n}\n/* NAV STACKED */\n.nav-stacked > li > a {\n border-radius: 0;\n border-top: 0;\n border-left: 3px solid transparent;\n color: #444;\n}\n.nav-stacked > li.active > a,\n.nav-stacked > li.active > a:hover {\n background: transparent;\n color: #444;\n border-top: 0;\n border-left-color: #3c8dbc;\n}\n.nav-stacked > li.header {\n border-bottom: 1px solid #ddd;\n color: #777;\n margin-bottom: 10px;\n padding: 5px 10px;\n text-transform: uppercase;\n}\n/* NAV TABS */\n.nav-tabs-custom {\n margin-bottom: 20px;\n background: #fff;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n}\n.nav-tabs-custom > .nav-tabs {\n margin: 0;\n border-bottom-color: #f4f4f4;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.nav-tabs-custom > .nav-tabs > li {\n border-top: 3px solid transparent;\n margin-bottom: -2px;\n margin-right: 5px;\n}\n.nav-tabs-custom > .nav-tabs > li > a {\n color: #444;\n border-radius: 0;\n}\n.nav-tabs-custom > .nav-tabs > li > a.text-muted {\n color: #999;\n}\n.nav-tabs-custom > .nav-tabs > li > a,\n.nav-tabs-custom > .nav-tabs > li > a:hover {\n background: transparent;\n margin: 0;\n}\n.nav-tabs-custom > .nav-tabs > li > a:hover {\n color: #999;\n}\n.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover,\n.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus,\n.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active {\n border-color: transparent;\n}\n.nav-tabs-custom > .nav-tabs > li.active {\n border-top-color: #3c8dbc;\n}\n.nav-tabs-custom > .nav-tabs > li.active > a,\n.nav-tabs-custom > .nav-tabs > li.active:hover > a {\n background-color: #fff;\n color: #444;\n}\n.nav-tabs-custom > .nav-tabs > li.active > a {\n border-top-color: transparent;\n border-left-color: #f4f4f4;\n border-right-color: #f4f4f4;\n}\n.nav-tabs-custom > .nav-tabs > li:first-of-type {\n margin-left: 0;\n}\n.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a {\n border-left-color: transparent;\n}\n.nav-tabs-custom > .nav-tabs.pull-right {\n float: none !important;\n}\n.nav-tabs-custom > .nav-tabs.pull-right > li {\n float: right;\n}\n.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type {\n margin-right: 0;\n}\n.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type > a {\n border-left-width: 1px;\n}\n.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a {\n border-left-color: #f4f4f4;\n border-right-color: transparent;\n}\n.nav-tabs-custom > .nav-tabs > li.header {\n line-height: 35px;\n padding: 0 10px;\n font-size: 20px;\n color: #444;\n}\n.nav-tabs-custom > .nav-tabs > li.header > .fa,\n.nav-tabs-custom > .nav-tabs > li.header > .glyphicon,\n.nav-tabs-custom > .nav-tabs > li.header > .ion {\n margin-right: 5px;\n}\n.nav-tabs-custom > .tab-content {\n background: #fff;\n padding: 10px;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.nav-tabs-custom .dropdown.open > a:active,\n.nav-tabs-custom .dropdown.open > a:focus {\n background: transparent;\n color: #999;\n}\n.nav-tabs-custom.tab-primary > .nav-tabs > li.active {\n border-top-color: #3c8dbc;\n}\n.nav-tabs-custom.tab-info > .nav-tabs > li.active {\n border-top-color: #00c0ef;\n}\n.nav-tabs-custom.tab-danger > .nav-tabs > li.active {\n border-top-color: #dd4b39;\n}\n.nav-tabs-custom.tab-warning > .nav-tabs > li.active {\n border-top-color: #f39c12;\n}\n.nav-tabs-custom.tab-success > .nav-tabs > li.active {\n border-top-color: #00a65a;\n}\n.nav-tabs-custom.tab-default > .nav-tabs > li.active {\n border-top-color: #d2d6de;\n}\n/* PAGINATION */\n.pagination > li > a {\n background: #fafafa;\n color: #666;\n}\n.pagination.pagination-flat > li > a {\n border-radius: 0 !important;\n}\n/*\n * Component: Products List\n * ------------------------\n */\n.products-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.products-list > .item {\n border-radius: 3px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n padding: 10px 0;\n background: #fff;\n}\n.products-list > .item:before,\n.products-list > .item:after {\n content: \" \";\n display: table;\n}\n.products-list > .item:after {\n clear: both;\n}\n.products-list .product-img {\n float: left;\n}\n.products-list .product-img img {\n width: 50px;\n height: 50px;\n}\n.products-list .product-info {\n margin-left: 60px;\n}\n.products-list .product-title {\n font-weight: 600;\n}\n.products-list .product-description {\n display: block;\n color: #999;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.product-list-in-box > .item {\n -webkit-box-shadow: none;\n box-shadow: none;\n border-radius: 0;\n border-bottom: 1px solid #f4f4f4;\n}\n.product-list-in-box > .item:last-of-type {\n border-bottom-width: 0;\n}\n/*\n * Component: Table\n * ----------------\n */\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n border-top: 1px solid #f4f4f4;\n}\n.table > thead > tr > th {\n border-bottom: 2px solid #f4f4f4;\n}\n.table tr td .progress {\n margin-top: 5px;\n}\n.table-bordered {\n border: 1px solid #f4f4f4;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #f4f4f4;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n border: 0;\n}\n/* .text-center in tables */\ntable.text-center,\ntable.text-center td,\ntable.text-center th {\n text-align: center;\n}\n.table.align th {\n text-align: left;\n}\n.table.align td {\n text-align: right;\n}\n/*\n * Component: Label\n * ----------------\n */\n.label-default {\n background-color: #d2d6de;\n color: #444;\n}\n/*\n * Component: Direct Chat\n * ----------------------\n */\n.direct-chat .box-body {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n position: relative;\n overflow-x: hidden;\n padding: 0;\n}\n.direct-chat.chat-pane-open .direct-chat-contacts {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.direct-chat-messages {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n padding: 10px;\n height: 250px;\n overflow: auto;\n}\n.direct-chat-msg,\n.direct-chat-text {\n display: block;\n}\n.direct-chat-msg {\n margin-bottom: 10px;\n}\n.direct-chat-msg:before,\n.direct-chat-msg:after {\n content: \" \";\n display: table;\n}\n.direct-chat-msg:after {\n clear: both;\n}\n.direct-chat-messages,\n.direct-chat-contacts {\n -webkit-transition: -webkit-transform 0.5s ease-in-out;\n -moz-transition: -moz-transform 0.5s ease-in-out;\n -o-transition: -o-transform 0.5s ease-in-out;\n transition: transform 0.5s ease-in-out;\n}\n.direct-chat-text {\n border-radius: 5px;\n position: relative;\n padding: 5px 10px;\n background: #d2d6de;\n border: 1px solid #d2d6de;\n margin: 5px 0 0 50px;\n color: #444444;\n}\n.direct-chat-text:after,\n.direct-chat-text:before {\n position: absolute;\n right: 100%;\n top: 15px;\n border: solid transparent;\n border-right-color: #d2d6de;\n content: ' ';\n height: 0;\n width: 0;\n pointer-events: none;\n}\n.direct-chat-text:after {\n border-width: 5px;\n margin-top: -5px;\n}\n.direct-chat-text:before {\n border-width: 6px;\n margin-top: -6px;\n}\n.right .direct-chat-text {\n margin-right: 50px;\n margin-left: 0;\n}\n.right .direct-chat-text:after,\n.right .direct-chat-text:before {\n right: auto;\n left: 100%;\n border-right-color: transparent;\n border-left-color: #d2d6de;\n}\n.direct-chat-img {\n border-radius: 50%;\n float: left;\n width: 40px;\n height: 40px;\n}\n.right .direct-chat-img {\n float: right;\n}\n.direct-chat-info {\n display: block;\n margin-bottom: 2px;\n font-size: 12px;\n}\n.direct-chat-name {\n font-weight: 600;\n}\n.direct-chat-timestamp {\n color: #999;\n}\n.direct-chat-contacts-open .direct-chat-contacts {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.direct-chat-contacts {\n -webkit-transform: translate(101%, 0);\n -ms-transform: translate(101%, 0);\n -o-transform: translate(101%, 0);\n transform: translate(101%, 0);\n position: absolute;\n top: 0;\n bottom: 0;\n height: 250px;\n width: 100%;\n background: #222d32;\n color: #fff;\n overflow: auto;\n}\n.contacts-list > li {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n padding: 10px;\n margin: 0;\n}\n.contacts-list > li:before,\n.contacts-list > li:after {\n content: \" \";\n display: table;\n}\n.contacts-list > li:after {\n clear: both;\n}\n.contacts-list > li:last-of-type {\n border-bottom: none;\n}\n.contacts-list-img {\n border-radius: 50%;\n width: 40px;\n float: left;\n}\n.contacts-list-info {\n margin-left: 45px;\n color: #fff;\n}\n.contacts-list-name,\n.contacts-list-status {\n display: block;\n}\n.contacts-list-name {\n font-weight: 600;\n}\n.contacts-list-status {\n font-size: 12px;\n}\n.contacts-list-date {\n color: #aaa;\n font-weight: normal;\n}\n.contacts-list-msg {\n color: #999;\n}\n.direct-chat-danger .right > .direct-chat-text {\n background: #dd4b39;\n border-color: #dd4b39;\n color: #ffffff;\n}\n.direct-chat-danger .right > .direct-chat-text:after,\n.direct-chat-danger .right > .direct-chat-text:before {\n border-left-color: #dd4b39;\n}\n.direct-chat-primary .right > .direct-chat-text {\n background: #3c8dbc;\n border-color: #3c8dbc;\n color: #ffffff;\n}\n.direct-chat-primary .right > .direct-chat-text:after,\n.direct-chat-primary .right > .direct-chat-text:before {\n border-left-color: #3c8dbc;\n}\n.direct-chat-warning .right > .direct-chat-text {\n background: #f39c12;\n border-color: #f39c12;\n color: #ffffff;\n}\n.direct-chat-warning .right > .direct-chat-text:after,\n.direct-chat-warning .right > .direct-chat-text:before {\n border-left-color: #f39c12;\n}\n.direct-chat-info .right > .direct-chat-text {\n background: #00c0ef;\n border-color: #00c0ef;\n color: #ffffff;\n}\n.direct-chat-info .right > .direct-chat-text:after,\n.direct-chat-info .right > .direct-chat-text:before {\n border-left-color: #00c0ef;\n}\n.direct-chat-success .right > .direct-chat-text {\n background: #00a65a;\n border-color: #00a65a;\n color: #ffffff;\n}\n.direct-chat-success .right > .direct-chat-text:after,\n.direct-chat-success .right > .direct-chat-text:before {\n border-left-color: #00a65a;\n}\n/*\n * Component: Users List\n * ---------------------\n */\n.users-list > li {\n width: 25%;\n float: left;\n padding: 10px;\n text-align: center;\n}\n.users-list > li img {\n border-radius: 50%;\n max-width: 100%;\n height: auto;\n}\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n color: #999;\n}\n.users-list-name,\n.users-list-date {\n display: block;\n}\n.users-list-name {\n font-weight: 600;\n color: #444;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.users-list-date {\n color: #999;\n font-size: 12px;\n}\n/*\n * Component: Carousel\n * -------------------\n */\n.carousel-control.left,\n.carousel-control.right {\n background-image: none;\n}\n.carousel-control > .fa {\n font-size: 40px;\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -20px;\n}\n/*\n * Component: modal\n * ----------------\n */\n.modal {\n background: rgba(0, 0, 0, 0.3);\n}\n.modal-content {\n border-radius: 0;\n -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);\n box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);\n border: 0;\n}\n@media (min-width: 768px) {\n .modal-content {\n -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);\n box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);\n }\n}\n.modal-header {\n border-bottom-color: #f4f4f4;\n}\n.modal-footer {\n border-top-color: #f4f4f4;\n}\n.modal-primary .modal-header,\n.modal-primary .modal-footer {\n border-color: #307095;\n}\n.modal-warning .modal-header,\n.modal-warning .modal-footer {\n border-color: #c87f0a;\n}\n.modal-info .modal-header,\n.modal-info .modal-footer {\n border-color: #0097bc;\n}\n.modal-success .modal-header,\n.modal-success .modal-footer {\n border-color: #00733e;\n}\n.modal-danger .modal-header,\n.modal-danger .modal-footer {\n border-color: #c23321;\n}\n/*\n * Component: Social Widgets\n * -------------------------\n */\n.box-widget {\n border: none;\n position: relative;\n}\n.widget-user .widget-user-header {\n padding: 20px;\n height: 120px;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.widget-user .widget-user-username {\n margin-top: 0;\n margin-bottom: 5px;\n font-size: 25px;\n font-weight: 300;\n text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n.widget-user .widget-user-desc {\n margin-top: 0;\n}\n.widget-user .widget-user-image {\n position: absolute;\n top: 65px;\n left: 50%;\n margin-left: -45px;\n}\n.widget-user .widget-user-image > img {\n width: 90px;\n height: auto;\n border: 3px solid #fff;\n}\n.widget-user .box-footer {\n padding-top: 30px;\n}\n.widget-user-2 .widget-user-header {\n padding: 20px;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.widget-user-2 .widget-user-username {\n margin-top: 5px;\n margin-bottom: 5px;\n font-size: 25px;\n font-weight: 300;\n}\n.widget-user-2 .widget-user-desc {\n margin-top: 0;\n}\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n margin-left: 75px;\n}\n.widget-user-2 .widget-user-image > img {\n width: 65px;\n height: auto;\n float: left;\n}\n/*\n * Page: Mailbox\n * -------------\n */\n.mailbox-messages > .table {\n margin: 0;\n}\n.mailbox-controls {\n padding: 5px;\n}\n.mailbox-controls.with-border {\n border-bottom: 1px solid #f4f4f4;\n}\n.mailbox-read-info {\n border-bottom: 1px solid #f4f4f4;\n padding: 10px;\n}\n.mailbox-read-info h3 {\n font-size: 20px;\n margin: 0;\n}\n.mailbox-read-info h5 {\n margin: 0;\n padding: 5px 0 0 0;\n}\n.mailbox-read-time {\n color: #999;\n font-size: 13px;\n}\n.mailbox-read-message {\n padding: 10px;\n}\n.mailbox-attachments li {\n float: left;\n width: 200px;\n border: 1px solid #eee;\n margin-bottom: 10px;\n margin-right: 10px;\n}\n.mailbox-attachment-name {\n font-weight: bold;\n color: #666;\n}\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n display: block;\n}\n.mailbox-attachment-info {\n padding: 10px;\n background: #f4f4f4;\n}\n.mailbox-attachment-size {\n color: #999;\n font-size: 12px;\n}\n.mailbox-attachment-icon {\n text-align: center;\n font-size: 65px;\n color: #666;\n padding: 20px 10px;\n}\n.mailbox-attachment-icon.has-img {\n padding: 0;\n}\n.mailbox-attachment-icon.has-img > img {\n max-width: 100%;\n height: auto;\n}\n/*\n * Page: Lock Screen\n * -----------------\n */\n/* ADD THIS CLASS TO THE TAG */\n.lockscreen {\n background: #d2d6de;\n}\n.lockscreen-logo {\n font-size: 35px;\n text-align: center;\n margin-bottom: 25px;\n font-weight: 300;\n}\n.lockscreen-logo a {\n color: #444;\n}\n.lockscreen-wrapper {\n max-width: 400px;\n margin: 0 auto;\n margin-top: 10%;\n}\n/* User name [optional] */\n.lockscreen .lockscreen-name {\n text-align: center;\n font-weight: 600;\n}\n/* Will contain the image and the sign in form */\n.lockscreen-item {\n border-radius: 4px;\n padding: 0;\n background: #fff;\n position: relative;\n margin: 10px auto 30px auto;\n width: 290px;\n}\n/* User image */\n.lockscreen-image {\n border-radius: 50%;\n position: absolute;\n left: -10px;\n top: -25px;\n background: #fff;\n padding: 5px;\n z-index: 10;\n}\n.lockscreen-image > img {\n border-radius: 50%;\n width: 70px;\n height: 70px;\n}\n/* Contains the password input and the login button */\n.lockscreen-credentials {\n margin-left: 70px;\n}\n.lockscreen-credentials .form-control {\n border: 0;\n}\n.lockscreen-credentials .btn {\n background-color: #fff;\n border: 0;\n padding: 0 10px;\n}\n.lockscreen-footer {\n margin-top: 10px;\n}\n/*\n * Page: Login & Register\n * ----------------------\n */\n.login-logo,\n.register-logo {\n font-size: 35px;\n text-align: center;\n margin-bottom: 25px;\n font-weight: 300;\n}\n.login-logo a,\n.register-logo a {\n color: #444;\n}\n.login-page,\n.register-page {\n background: #d2d6de;\n}\n.login-box,\n.register-box {\n width: 360px;\n margin: 7% auto;\n}\n@media (max-width: 768px) {\n .login-box,\n .register-box {\n width: 90%;\n margin-top: 20px;\n }\n}\n.login-box-body,\n.register-box-body {\n background: #fff;\n padding: 20px;\n border-top: 0;\n color: #666;\n}\n.login-box-body .form-control-feedback,\n.register-box-body .form-control-feedback {\n color: #777;\n}\n.login-box-msg,\n.register-box-msg {\n margin: 0;\n text-align: center;\n padding: 0 20px 20px 20px;\n}\n.social-auth-links {\n margin: 10px 0;\n}\n/*\n * Page: 400 and 500 error pages\n * ------------------------------\n */\n.error-page {\n width: 600px;\n margin: 20px auto 0 auto;\n}\n@media (max-width: 991px) {\n .error-page {\n width: 100%;\n }\n}\n.error-page > .headline {\n float: left;\n font-size: 100px;\n font-weight: 300;\n}\n@media (max-width: 991px) {\n .error-page > .headline {\n float: none;\n text-align: center;\n }\n}\n.error-page > .error-content {\n margin-left: 190px;\n display: block;\n}\n@media (max-width: 991px) {\n .error-page > .error-content {\n margin-left: 0;\n }\n}\n.error-page > .error-content > h3 {\n font-weight: 300;\n font-size: 25px;\n}\n@media (max-width: 991px) {\n .error-page > .error-content > h3 {\n text-align: center;\n }\n}\n/*\n * Page: Invoice\n * -------------\n */\n.invoice {\n position: relative;\n background: #fff;\n border: 1px solid #f4f4f4;\n padding: 20px;\n margin: 10px 25px;\n}\n.invoice-title {\n margin-top: 0;\n}\n/*\n * Page: Profile\n * -------------\n */\n.profile-user-img {\n margin: 0 auto;\n width: 100px;\n padding: 3px;\n border: 3px solid #d2d6de;\n}\n.profile-username {\n font-size: 21px;\n margin-top: 5px;\n}\n.post {\n border-bottom: 1px solid #d2d6de;\n margin-bottom: 15px;\n padding-bottom: 15px;\n color: #666;\n}\n.post:last-of-type {\n border-bottom: 0;\n margin-bottom: 0;\n padding-bottom: 0;\n}\n.post .user-block {\n margin-bottom: 15px;\n}\n/*\n * Social Buttons for Bootstrap\n *\n * Copyright 2013-2015 Panayiotis Lipiridis\n * Licensed under the MIT License\n *\n * https://github.com/lipis/bootstrap-social\n */\n.btn-social {\n position: relative;\n padding-left: 44px;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.btn-social > :first-child {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 32px;\n line-height: 34px;\n font-size: 1.6em;\n text-align: center;\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n}\n.btn-social.btn-lg {\n padding-left: 61px;\n}\n.btn-social.btn-lg > :first-child {\n line-height: 45px;\n width: 45px;\n font-size: 1.8em;\n}\n.btn-social.btn-sm {\n padding-left: 38px;\n}\n.btn-social.btn-sm > :first-child {\n line-height: 28px;\n width: 28px;\n font-size: 1.4em;\n}\n.btn-social.btn-xs {\n padding-left: 30px;\n}\n.btn-social.btn-xs > :first-child {\n line-height: 20px;\n width: 20px;\n font-size: 1.2em;\n}\n.btn-social-icon {\n position: relative;\n padding-left: 44px;\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n height: 34px;\n width: 34px;\n padding: 0;\n}\n.btn-social-icon > :first-child {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 32px;\n line-height: 34px;\n font-size: 1.6em;\n text-align: center;\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n}\n.btn-social-icon.btn-lg {\n padding-left: 61px;\n}\n.btn-social-icon.btn-lg > :first-child {\n line-height: 45px;\n width: 45px;\n font-size: 1.8em;\n}\n.btn-social-icon.btn-sm {\n padding-left: 38px;\n}\n.btn-social-icon.btn-sm > :first-child {\n line-height: 28px;\n width: 28px;\n font-size: 1.4em;\n}\n.btn-social-icon.btn-xs {\n padding-left: 30px;\n}\n.btn-social-icon.btn-xs > :first-child {\n line-height: 20px;\n width: 20px;\n font-size: 1.2em;\n}\n.btn-social-icon > :first-child {\n border: none;\n text-align: center;\n width: 100%;\n}\n.btn-social-icon.btn-lg {\n height: 45px;\n width: 45px;\n padding-left: 0;\n padding-right: 0;\n}\n.btn-social-icon.btn-sm {\n height: 30px;\n width: 30px;\n padding-left: 0;\n padding-right: 0;\n}\n.btn-social-icon.btn-xs {\n height: 22px;\n width: 22px;\n padding-left: 0;\n padding-right: 0;\n}\n.btn-adn {\n color: #ffffff;\n background-color: #d87a68;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-adn:focus,\n.btn-adn.focus {\n color: #ffffff;\n background-color: #ce563f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-adn:hover {\n color: #ffffff;\n background-color: #ce563f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-adn:active,\n.btn-adn.active,\n.open > .dropdown-toggle.btn-adn {\n color: #ffffff;\n background-color: #ce563f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-adn:active,\n.btn-adn.active,\n.open > .dropdown-toggle.btn-adn {\n background-image: none;\n}\n.btn-adn .badge {\n color: #d87a68;\n background-color: #ffffff;\n}\n.btn-bitbucket {\n color: #ffffff;\n background-color: #205081;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-bitbucket:focus,\n.btn-bitbucket.focus {\n color: #ffffff;\n background-color: #163758;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-bitbucket:hover {\n color: #ffffff;\n background-color: #163758;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-bitbucket:active,\n.btn-bitbucket.active,\n.open > .dropdown-toggle.btn-bitbucket {\n color: #ffffff;\n background-color: #163758;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-bitbucket:active,\n.btn-bitbucket.active,\n.open > .dropdown-toggle.btn-bitbucket {\n background-image: none;\n}\n.btn-bitbucket .badge {\n color: #205081;\n background-color: #ffffff;\n}\n.btn-dropbox {\n color: #ffffff;\n background-color: #1087dd;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-dropbox:focus,\n.btn-dropbox.focus {\n color: #ffffff;\n background-color: #0d6aad;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-dropbox:hover {\n color: #ffffff;\n background-color: #0d6aad;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-dropbox:active,\n.btn-dropbox.active,\n.open > .dropdown-toggle.btn-dropbox {\n color: #ffffff;\n background-color: #0d6aad;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-dropbox:active,\n.btn-dropbox.active,\n.open > .dropdown-toggle.btn-dropbox {\n background-image: none;\n}\n.btn-dropbox .badge {\n color: #1087dd;\n background-color: #ffffff;\n}\n.btn-facebook {\n color: #ffffff;\n background-color: #3b5998;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-facebook:focus,\n.btn-facebook.focus {\n color: #ffffff;\n background-color: #2d4373;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-facebook:hover {\n color: #ffffff;\n background-color: #2d4373;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-facebook:active,\n.btn-facebook.active,\n.open > .dropdown-toggle.btn-facebook {\n color: #ffffff;\n background-color: #2d4373;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-facebook:active,\n.btn-facebook.active,\n.open > .dropdown-toggle.btn-facebook {\n background-image: none;\n}\n.btn-facebook .badge {\n color: #3b5998;\n background-color: #ffffff;\n}\n.btn-flickr {\n color: #ffffff;\n background-color: #ff0084;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-flickr:focus,\n.btn-flickr.focus {\n color: #ffffff;\n background-color: #cc006a;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-flickr:hover {\n color: #ffffff;\n background-color: #cc006a;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-flickr:active,\n.btn-flickr.active,\n.open > .dropdown-toggle.btn-flickr {\n color: #ffffff;\n background-color: #cc006a;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-flickr:active,\n.btn-flickr.active,\n.open > .dropdown-toggle.btn-flickr {\n background-image: none;\n}\n.btn-flickr .badge {\n color: #ff0084;\n background-color: #ffffff;\n}\n.btn-foursquare {\n color: #ffffff;\n background-color: #f94877;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-foursquare:focus,\n.btn-foursquare.focus {\n color: #ffffff;\n background-color: #f71752;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-foursquare:hover {\n color: #ffffff;\n background-color: #f71752;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-foursquare:active,\n.btn-foursquare.active,\n.open > .dropdown-toggle.btn-foursquare {\n color: #ffffff;\n background-color: #f71752;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-foursquare:active,\n.btn-foursquare.active,\n.open > .dropdown-toggle.btn-foursquare {\n background-image: none;\n}\n.btn-foursquare .badge {\n color: #f94877;\n background-color: #ffffff;\n}\n.btn-github {\n color: #ffffff;\n background-color: #444444;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-github:focus,\n.btn-github.focus {\n color: #ffffff;\n background-color: #2b2b2b;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-github:hover {\n color: #ffffff;\n background-color: #2b2b2b;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-github:active,\n.btn-github.active,\n.open > .dropdown-toggle.btn-github {\n color: #ffffff;\n background-color: #2b2b2b;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-github:active,\n.btn-github.active,\n.open > .dropdown-toggle.btn-github {\n background-image: none;\n}\n.btn-github .badge {\n color: #444444;\n background-color: #ffffff;\n}\n.btn-google {\n color: #ffffff;\n background-color: #dd4b39;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-google:focus,\n.btn-google.focus {\n color: #ffffff;\n background-color: #c23321;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-google:hover {\n color: #ffffff;\n background-color: #c23321;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-google:active,\n.btn-google.active,\n.open > .dropdown-toggle.btn-google {\n color: #ffffff;\n background-color: #c23321;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-google:active,\n.btn-google.active,\n.open > .dropdown-toggle.btn-google {\n background-image: none;\n}\n.btn-google .badge {\n color: #dd4b39;\n background-color: #ffffff;\n}\n.btn-instagram {\n color: #ffffff;\n background-color: #3f729b;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-instagram:focus,\n.btn-instagram.focus {\n color: #ffffff;\n background-color: #305777;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-instagram:hover {\n color: #ffffff;\n background-color: #305777;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-instagram:active,\n.btn-instagram.active,\n.open > .dropdown-toggle.btn-instagram {\n color: #ffffff;\n background-color: #305777;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-instagram:active,\n.btn-instagram.active,\n.open > .dropdown-toggle.btn-instagram {\n background-image: none;\n}\n.btn-instagram .badge {\n color: #3f729b;\n background-color: #ffffff;\n}\n.btn-linkedin {\n color: #ffffff;\n background-color: #007bb6;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-linkedin:focus,\n.btn-linkedin.focus {\n color: #ffffff;\n background-color: #005983;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-linkedin:hover {\n color: #ffffff;\n background-color: #005983;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-linkedin:active,\n.btn-linkedin.active,\n.open > .dropdown-toggle.btn-linkedin {\n color: #ffffff;\n background-color: #005983;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-linkedin:active,\n.btn-linkedin.active,\n.open > .dropdown-toggle.btn-linkedin {\n background-image: none;\n}\n.btn-linkedin .badge {\n color: #007bb6;\n background-color: #ffffff;\n}\n.btn-microsoft {\n color: #ffffff;\n background-color: #2672ec;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-microsoft:focus,\n.btn-microsoft.focus {\n color: #ffffff;\n background-color: #125acd;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-microsoft:hover {\n color: #ffffff;\n background-color: #125acd;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-microsoft:active,\n.btn-microsoft.active,\n.open > .dropdown-toggle.btn-microsoft {\n color: #ffffff;\n background-color: #125acd;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-microsoft:active,\n.btn-microsoft.active,\n.open > .dropdown-toggle.btn-microsoft {\n background-image: none;\n}\n.btn-microsoft .badge {\n color: #2672ec;\n background-color: #ffffff;\n}\n.btn-openid {\n color: #ffffff;\n background-color: #f7931e;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-openid:focus,\n.btn-openid.focus {\n color: #ffffff;\n background-color: #da7908;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-openid:hover {\n color: #ffffff;\n background-color: #da7908;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-openid:active,\n.btn-openid.active,\n.open > .dropdown-toggle.btn-openid {\n color: #ffffff;\n background-color: #da7908;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-openid:active,\n.btn-openid.active,\n.open > .dropdown-toggle.btn-openid {\n background-image: none;\n}\n.btn-openid .badge {\n color: #f7931e;\n background-color: #ffffff;\n}\n.btn-pinterest {\n color: #ffffff;\n background-color: #cb2027;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-pinterest:focus,\n.btn-pinterest.focus {\n color: #ffffff;\n background-color: #9f191f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-pinterest:hover {\n color: #ffffff;\n background-color: #9f191f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-pinterest:active,\n.btn-pinterest.active,\n.open > .dropdown-toggle.btn-pinterest {\n color: #ffffff;\n background-color: #9f191f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-pinterest:active,\n.btn-pinterest.active,\n.open > .dropdown-toggle.btn-pinterest {\n background-image: none;\n}\n.btn-pinterest .badge {\n color: #cb2027;\n background-color: #ffffff;\n}\n.btn-reddit {\n color: #000000;\n background-color: #eff7ff;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-reddit:focus,\n.btn-reddit.focus {\n color: #000000;\n background-color: #bcddff;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-reddit:hover {\n color: #000000;\n background-color: #bcddff;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-reddit:active,\n.btn-reddit.active,\n.open > .dropdown-toggle.btn-reddit {\n color: #000000;\n background-color: #bcddff;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-reddit:active,\n.btn-reddit.active,\n.open > .dropdown-toggle.btn-reddit {\n background-image: none;\n}\n.btn-reddit .badge {\n color: #eff7ff;\n background-color: #000000;\n}\n.btn-soundcloud {\n color: #ffffff;\n background-color: #ff5500;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-soundcloud:focus,\n.btn-soundcloud.focus {\n color: #ffffff;\n background-color: #cc4400;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-soundcloud:hover {\n color: #ffffff;\n background-color: #cc4400;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-soundcloud:active,\n.btn-soundcloud.active,\n.open > .dropdown-toggle.btn-soundcloud {\n color: #ffffff;\n background-color: #cc4400;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-soundcloud:active,\n.btn-soundcloud.active,\n.open > .dropdown-toggle.btn-soundcloud {\n background-image: none;\n}\n.btn-soundcloud .badge {\n color: #ff5500;\n background-color: #ffffff;\n}\n.btn-tumblr {\n color: #ffffff;\n background-color: #2c4762;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-tumblr:focus,\n.btn-tumblr.focus {\n color: #ffffff;\n background-color: #1c2d3f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-tumblr:hover {\n color: #ffffff;\n background-color: #1c2d3f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-tumblr:active,\n.btn-tumblr.active,\n.open > .dropdown-toggle.btn-tumblr {\n color: #ffffff;\n background-color: #1c2d3f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-tumblr:active,\n.btn-tumblr.active,\n.open > .dropdown-toggle.btn-tumblr {\n background-image: none;\n}\n.btn-tumblr .badge {\n color: #2c4762;\n background-color: #ffffff;\n}\n.btn-twitter {\n color: #ffffff;\n background-color: #55acee;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-twitter:focus,\n.btn-twitter.focus {\n color: #ffffff;\n background-color: #2795e9;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-twitter:hover {\n color: #ffffff;\n background-color: #2795e9;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-twitter:active,\n.btn-twitter.active,\n.open > .dropdown-toggle.btn-twitter {\n color: #ffffff;\n background-color: #2795e9;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-twitter:active,\n.btn-twitter.active,\n.open > .dropdown-toggle.btn-twitter {\n background-image: none;\n}\n.btn-twitter .badge {\n color: #55acee;\n background-color: #ffffff;\n}\n.btn-vimeo {\n color: #ffffff;\n background-color: #1ab7ea;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vimeo:focus,\n.btn-vimeo.focus {\n color: #ffffff;\n background-color: #1295bf;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vimeo:hover {\n color: #ffffff;\n background-color: #1295bf;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vimeo:active,\n.btn-vimeo.active,\n.open > .dropdown-toggle.btn-vimeo {\n color: #ffffff;\n background-color: #1295bf;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vimeo:active,\n.btn-vimeo.active,\n.open > .dropdown-toggle.btn-vimeo {\n background-image: none;\n}\n.btn-vimeo .badge {\n color: #1ab7ea;\n background-color: #ffffff;\n}\n.btn-vk {\n color: #ffffff;\n background-color: #587ea3;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vk:focus,\n.btn-vk.focus {\n color: #ffffff;\n background-color: #466482;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vk:hover {\n color: #ffffff;\n background-color: #466482;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vk:active,\n.btn-vk.active,\n.open > .dropdown-toggle.btn-vk {\n color: #ffffff;\n background-color: #466482;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-vk:active,\n.btn-vk.active,\n.open > .dropdown-toggle.btn-vk {\n background-image: none;\n}\n.btn-vk .badge {\n color: #587ea3;\n background-color: #ffffff;\n}\n.btn-yahoo {\n color: #ffffff;\n background-color: #720e9e;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-yahoo:focus,\n.btn-yahoo.focus {\n color: #ffffff;\n background-color: #500a6f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-yahoo:hover {\n color: #ffffff;\n background-color: #500a6f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-yahoo:active,\n.btn-yahoo.active,\n.open > .dropdown-toggle.btn-yahoo {\n color: #ffffff;\n background-color: #500a6f;\n border-color: rgba(0, 0, 0, 0.2);\n}\n.btn-yahoo:active,\n.btn-yahoo.active,\n.open > .dropdown-toggle.btn-yahoo {\n background-image: none;\n}\n.btn-yahoo .badge {\n color: #720e9e;\n background-color: #ffffff;\n}\n/*\n * Plugin: Full Calendar\n * ---------------------\n */\n.fc-button {\n background: #f4f4f4;\n background-image: none;\n color: #444;\n border-color: #ddd;\n border-bottom-color: #ddd;\n}\n.fc-button:hover,\n.fc-button:active,\n.fc-button.hover {\n background-color: #e9e9e9;\n}\n.fc-header-title h2 {\n font-size: 15px;\n line-height: 1.6em;\n color: #666;\n margin-left: 10px;\n}\n.fc-header-right {\n padding-right: 10px;\n}\n.fc-header-left {\n padding-left: 10px;\n}\n.fc-widget-header {\n background: #fafafa;\n}\n.fc-grid {\n width: 100%;\n border: 0;\n}\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n border-left: 0;\n border-right: 0;\n}\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n border-right: 0;\n}\n.fc-toolbar {\n padding: 10px;\n margin: 0;\n}\n.fc-day-number {\n font-size: 20px;\n font-weight: 300;\n padding-right: 10px;\n}\n.fc-color-picker {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.fc-color-picker > li {\n float: left;\n font-size: 30px;\n margin-right: 5px;\n line-height: 30px;\n}\n.fc-color-picker > li .fa {\n -webkit-transition: -webkit-transform linear 0.3s;\n -moz-transition: -moz-transform linear 0.3s;\n -o-transition: -o-transform linear 0.3s;\n transition: transform linear 0.3s;\n}\n.fc-color-picker > li .fa:hover {\n -webkit-transform: rotate(30deg);\n -ms-transform: rotate(30deg);\n -o-transform: rotate(30deg);\n transform: rotate(30deg);\n}\n#add-new-event {\n -webkit-transition: all linear 0.3s;\n -o-transition: all linear 0.3s;\n transition: all linear 0.3s;\n}\n.external-event {\n padding: 5px 10px;\n font-weight: bold;\n margin-bottom: 4px;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n cursor: move;\n}\n.external-event:hover {\n box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);\n}\n/*\n * Plugin: Select2\n * ---------------\n */\n.select2-container--default.select2-container--focus,\n.select2-selection.select2-container--focus,\n.select2-container--default:focus,\n.select2-selection:focus,\n.select2-container--default:active,\n.select2-selection:active {\n outline: none;\n}\n.select2-container--default .select2-selection--single,\n.select2-selection .select2-selection--single {\n border: 1px solid #d2d6de;\n border-radius: 0;\n padding: 6px 12px;\n height: 34px;\n}\n.select2-container--default.select2-container--open {\n border-color: #3c8dbc;\n}\n.select2-dropdown {\n border: 1px solid #d2d6de;\n border-radius: 0;\n}\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n background-color: #3c8dbc;\n color: white;\n}\n.select2-results__option {\n padding: 6px 12px;\n user-select: none;\n -webkit-user-select: none;\n}\n.select2-container .select2-selection--single .select2-selection__rendered {\n padding-left: 0;\n padding-right: 0;\n height: auto;\n margin-top: -4px;\n}\n.select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n padding-right: 6px;\n padding-left: 20px;\n}\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 28px;\n right: 3px;\n}\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n margin-top: 0;\n}\n.select2-dropdown .select2-search__field,\n.select2-search--inline .select2-search__field {\n border: 1px solid #d2d6de;\n}\n.select2-dropdown .select2-search__field:focus,\n.select2-search--inline .select2-search__field:focus {\n outline: none;\n border: 1px solid #3c8dbc;\n}\n.select2-container--default .select2-results__option[aria-disabled=true] {\n color: #999;\n}\n.select2-container--default .select2-results__option[aria-selected=true] {\n background-color: #ddd;\n}\n.select2-container--default .select2-results__option[aria-selected=true],\n.select2-container--default .select2-results__option[aria-selected=true]:hover {\n color: #444;\n}\n.select2-container--default .select2-selection--multiple {\n border: 1px solid #d2d6de;\n border-radius: 0;\n}\n.select2-container--default .select2-selection--multiple:focus {\n border-color: #3c8dbc;\n}\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n border-color: #d2d6de;\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n background-color: #3c8dbc;\n border-color: #367fa9;\n padding: 1px 10px;\n color: #fff;\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n margin-right: 5px;\n color: rgba(255, 255, 255, 0.7);\n}\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n color: #fff;\n}\n.select2-container .select2-selection--single .select2-selection__rendered {\n padding-right: 10px;\n}\n/*\n * General: Miscellaneous\n * ----------------------\n */\n.pad {\n padding: 10px;\n}\n.margin {\n margin: 10px;\n}\n.margin-bottom {\n margin-bottom: 20px;\n}\n.margin-bottom-none {\n margin-bottom: 0;\n}\n.margin-r-5 {\n margin-right: 5px;\n}\n.inline {\n display: inline;\n}\n.description-block {\n display: block;\n margin: 10px 0;\n text-align: center;\n}\n.description-block.margin-bottom {\n margin-bottom: 25px;\n}\n.description-block > .description-header {\n margin: 0;\n padding: 0;\n font-weight: 600;\n font-size: 16px;\n}\n.description-block > .description-text {\n text-transform: uppercase;\n}\n.bg-red,\n.bg-yellow,\n.bg-aqua,\n.bg-blue,\n.bg-light-blue,\n.bg-green,\n.bg-navy,\n.bg-teal,\n.bg-olive,\n.bg-lime,\n.bg-orange,\n.bg-fuchsia,\n.bg-purple,\n.bg-maroon,\n.bg-black,\n.bg-red-active,\n.bg-yellow-active,\n.bg-aqua-active,\n.bg-blue-active,\n.bg-light-blue-active,\n.bg-green-active,\n.bg-navy-active,\n.bg-teal-active,\n.bg-olive-active,\n.bg-lime-active,\n.bg-orange-active,\n.bg-fuchsia-active,\n.bg-purple-active,\n.bg-maroon-active,\n.bg-black-active,\n.callout.callout-danger,\n.callout.callout-warning,\n.callout.callout-info,\n.callout.callout-success,\n.alert-success,\n.alert-danger,\n.alert-error,\n.alert-warning,\n.alert-info,\n.label-danger,\n.label-info,\n.label-warning,\n.label-primary,\n.label-success,\n.modal-primary .modal-body,\n.modal-primary .modal-header,\n.modal-primary .modal-footer,\n.modal-warning .modal-body,\n.modal-warning .modal-header,\n.modal-warning .modal-footer,\n.modal-info .modal-body,\n.modal-info .modal-header,\n.modal-info .modal-footer,\n.modal-success .modal-body,\n.modal-success .modal-header,\n.modal-success .modal-footer,\n.modal-danger .modal-body,\n.modal-danger .modal-header,\n.modal-danger .modal-footer {\n color: #fff !important;\n}\n.bg-gray {\n color: #000;\n background-color: #d2d6de !important;\n}\n.bg-gray-light {\n background-color: #f7f7f7;\n}\n.bg-black {\n background-color: #111111 !important;\n}\n.bg-red,\n.callout.callout-danger,\n.alert-danger,\n.alert-error,\n.label-danger,\n.modal-danger .modal-body {\n background-color: #dd4b39 !important;\n}\n.bg-yellow,\n.callout.callout-warning,\n.alert-warning,\n.label-warning,\n.modal-warning .modal-body {\n background-color: #f39c12 !important;\n}\n.bg-aqua,\n.callout.callout-info,\n.alert-info,\n.label-info,\n.modal-info .modal-body {\n background-color: #00c0ef !important;\n}\n.bg-blue {\n background-color: #0073b7 !important;\n}\n.bg-light-blue,\n.label-primary,\n.modal-primary .modal-body {\n background-color: #3c8dbc !important;\n}\n.bg-green,\n.callout.callout-success,\n.alert-success,\n.label-success,\n.modal-success .modal-body {\n background-color: #00a65a !important;\n}\n.bg-navy {\n background-color: #001f3f !important;\n}\n.bg-teal {\n background-color: #39cccc !important;\n}\n.bg-olive {\n background-color: #3d9970 !important;\n}\n.bg-lime {\n background-color: #01ff70 !important;\n}\n.bg-orange {\n background-color: #ff851b !important;\n}\n.bg-fuchsia {\n background-color: #f012be !important;\n}\n.bg-purple {\n background-color: #605ca8 !important;\n}\n.bg-maroon {\n background-color: #d81b60 !important;\n}\n.bg-gray-active {\n color: #000;\n background-color: #b5bbc8 !important;\n}\n.bg-black-active {\n background-color: #000000 !important;\n}\n.bg-red-active,\n.modal-danger .modal-header,\n.modal-danger .modal-footer {\n background-color: #d33724 !important;\n}\n.bg-yellow-active,\n.modal-warning .modal-header,\n.modal-warning .modal-footer {\n background-color: #db8b0b !important;\n}\n.bg-aqua-active,\n.modal-info .modal-header,\n.modal-info .modal-footer {\n background-color: #00a7d0 !important;\n}\n.bg-blue-active {\n background-color: #005384 !important;\n}\n.bg-light-blue-active,\n.modal-primary .modal-header,\n.modal-primary .modal-footer {\n background-color: #357ca5 !important;\n}\n.bg-green-active,\n.modal-success .modal-header,\n.modal-success .modal-footer {\n background-color: #008d4c !important;\n}\n.bg-navy-active {\n background-color: #001a35 !important;\n}\n.bg-teal-active {\n background-color: #30bbbb !important;\n}\n.bg-olive-active {\n background-color: #368763 !important;\n}\n.bg-lime-active {\n background-color: #00e765 !important;\n}\n.bg-orange-active {\n background-color: #ff7701 !important;\n}\n.bg-fuchsia-active {\n background-color: #db0ead !important;\n}\n.bg-purple-active {\n background-color: #555299 !important;\n}\n.bg-maroon-active {\n background-color: #ca195a !important;\n}\n[class^=\"bg-\"].disabled {\n opacity: 0.65;\n filter: alpha(opacity=65);\n}\n.text-red {\n color: #dd4b39 !important;\n}\n.text-yellow {\n color: #f39c12 !important;\n}\n.text-aqua {\n color: #00c0ef !important;\n}\n.text-blue {\n color: #0073b7 !important;\n}\n.text-black {\n color: #111111 !important;\n}\n.text-light-blue {\n color: #3c8dbc !important;\n}\n.text-green {\n color: #00a65a !important;\n}\n.text-gray {\n color: #d2d6de !important;\n}\n.text-navy {\n color: #001f3f !important;\n}\n.text-teal {\n color: #39cccc !important;\n}\n.text-olive {\n color: #3d9970 !important;\n}\n.text-lime {\n color: #01ff70 !important;\n}\n.text-orange {\n color: #ff851b !important;\n}\n.text-fuchsia {\n color: #f012be !important;\n}\n.text-purple {\n color: #605ca8 !important;\n}\n.text-maroon {\n color: #d81b60 !important;\n}\n.link-muted {\n color: #7a869d;\n}\n.link-muted:hover,\n.link-muted:focus {\n color: #606c84;\n}\n.link-black {\n color: #666;\n}\n.link-black:hover,\n.link-black:focus {\n color: #999;\n}\n.hide {\n display: none !important;\n}\n.no-border {\n border: 0 !important;\n}\n.no-padding {\n padding: 0 !important;\n}\n.no-margin {\n margin: 0 !important;\n}\n.no-shadow {\n box-shadow: none !important;\n}\n.list-unstyled,\n.chart-legend,\n.contacts-list,\n.users-list,\n.mailbox-attachments {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.list-group-unbordered > .list-group-item {\n border-left: 0;\n border-right: 0;\n border-radius: 0;\n padding-left: 0;\n padding-right: 0;\n}\n.flat {\n border-radius: 0 !important;\n}\n.text-bold,\n.text-bold.table td,\n.text-bold.table th {\n font-weight: 700;\n}\n.text-sm {\n font-size: 12px;\n}\n.jqstooltip {\n padding: 5px !important;\n width: auto !important;\n height: auto !important;\n}\n.bg-teal-gradient {\n background: #39cccc !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important;\n background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important;\n background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important;\n background: -o-linear-gradient(#7adddd, #39cccc) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;\n color: #fff;\n}\n.bg-light-blue-gradient {\n background: #3c8dbc !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important;\n background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important;\n background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important;\n background: -o-linear-gradient(#67a8ce, #3c8dbc) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important;\n color: #fff;\n}\n.bg-blue-gradient {\n background: #0073b7 !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important;\n background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important;\n background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important;\n background: -o-linear-gradient(#0089db, #0073b7) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important;\n color: #fff;\n}\n.bg-aqua-gradient {\n background: #00c0ef !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important;\n background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important;\n background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important;\n background: -o-linear-gradient(#14d1ff, #00c0ef) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important;\n color: #fff;\n}\n.bg-yellow-gradient {\n background: #f39c12 !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important;\n background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important;\n background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important;\n background: -o-linear-gradient(#f7bc60, #f39c12) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important;\n color: #fff;\n}\n.bg-purple-gradient {\n background: #605ca8 !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important;\n background: -ms-linear-gradient(bottom, #605ca8, #9491c4) !important;\n background: -moz-linear-gradient(center bottom, #605ca8 0%, #9491c4 100%) !important;\n background: -o-linear-gradient(#9491c4, #605ca8) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important;\n color: #fff;\n}\n.bg-green-gradient {\n background: #00a65a !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important;\n background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important;\n background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important;\n background: -o-linear-gradient(#00ca6d, #00a65a) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important;\n color: #fff;\n}\n.bg-red-gradient {\n background: #dd4b39 !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important;\n background: -ms-linear-gradient(bottom, #dd4b39, #e47365) !important;\n background: -moz-linear-gradient(center bottom, #dd4b39 0%, #e47365 100%) !important;\n background: -o-linear-gradient(#e47365, #dd4b39) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important;\n color: #fff;\n}\n.bg-black-gradient {\n background: #111111 !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #111111), color-stop(1, #2b2b2b)) !important;\n background: -ms-linear-gradient(bottom, #111111, #2b2b2b) !important;\n background: -moz-linear-gradient(center bottom, #111111 0%, #2b2b2b 100%) !important;\n background: -o-linear-gradient(#2b2b2b, #111111) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important;\n color: #fff;\n}\n.bg-maroon-gradient {\n background: #d81b60 !important;\n background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important;\n background: -ms-linear-gradient(bottom, #d81b60, #e73f7c) !important;\n background: -moz-linear-gradient(center bottom, #d81b60 0%, #e73f7c 100%) !important;\n background: -o-linear-gradient(#e73f7c, #d81b60) !important;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important;\n color: #fff;\n}\n.description-block .description-icon {\n font-size: 16px;\n}\n.no-pad-top {\n padding-top: 0;\n}\n.position-static {\n position: static !important;\n}\n.list-header {\n font-size: 15px;\n padding: 10px 4px;\n font-weight: bold;\n color: #666;\n}\n.list-seperator {\n height: 1px;\n background: #f4f4f4;\n margin: 15px 0 9px 0;\n}\n.list-link > a {\n padding: 4px;\n color: #777;\n}\n.list-link > a:hover {\n color: #222;\n}\n.font-light {\n font-weight: 300;\n}\n.user-block:before,\n.user-block:after {\n content: \" \";\n display: table;\n}\n.user-block:after {\n clear: both;\n}\n.user-block img {\n width: 40px;\n height: 40px;\n float: left;\n}\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n display: block;\n margin-left: 50px;\n}\n.user-block .username {\n font-size: 16px;\n font-weight: 600;\n}\n.user-block .description {\n color: #999;\n font-size: 13px;\n}\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n margin-left: 40px;\n}\n.user-block.user-block-sm .username {\n font-size: 14px;\n}\n.img-sm,\n.img-md,\n.img-lg,\n.box-comments .box-comment img,\n.user-block.user-block-sm img {\n float: left;\n}\n.img-sm,\n.box-comments .box-comment img,\n.user-block.user-block-sm img {\n width: 30px !important;\n height: 30px !important;\n}\n.img-sm + .img-push {\n margin-left: 40px;\n}\n.img-md {\n width: 60px;\n height: 60px;\n}\n.img-md + .img-push {\n margin-left: 70px;\n}\n.img-lg {\n width: 100px;\n height: 100px;\n}\n.img-lg + .img-push {\n margin-left: 110px;\n}\n.img-bordered {\n border: 3px solid #d2d6de;\n padding: 3px;\n}\n.img-bordered-sm {\n border: 2px solid #d2d6de;\n padding: 2px;\n}\n.attachment-block {\n border: 1px solid #f4f4f4;\n padding: 5px;\n margin-bottom: 10px;\n background: #f7f7f7;\n}\n.attachment-block .attachment-img {\n max-width: 100px;\n max-height: 100px;\n height: auto;\n float: left;\n}\n.attachment-block .attachment-pushed {\n margin-left: 110px;\n}\n.attachment-block .attachment-heading {\n margin: 0;\n}\n.attachment-block .attachment-text {\n color: #555;\n}\n.connectedSortable {\n min-height: 100px;\n}\n.ui-helper-hidden-accessible {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n.sort-highlight {\n background: #f4f4f4;\n border: 1px dashed #ddd;\n margin-bottom: 10px;\n}\n.full-opacity-hover {\n opacity: 0.65;\n filter: alpha(opacity=65);\n}\n.full-opacity-hover:hover {\n opacity: 1;\n filter: alpha(opacity=100);\n}\n.chart {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.chart svg,\n.chart canvas {\n width: 100% !important;\n}\n/*\n * Misc: print\n * -----------\n */\n@media print {\n .no-print,\n .main-sidebar,\n .left-side,\n .main-header,\n .content-header {\n display: none !important;\n }\n .content-wrapper,\n .right-side,\n .main-footer {\n margin-left: 0 !important;\n min-height: 0 !important;\n -webkit-transform: translate(0, 0) !important;\n -ms-transform: translate(0, 0) !important;\n -o-transform: translate(0, 0) !important;\n transform: translate(0, 0) !important;\n }\n .fixed .content-wrapper,\n .fixed .right-side {\n padding-top: 0 !important;\n }\n .invoice {\n width: 100%;\n border: 0;\n margin: 0;\n padding: 0;\n }\n .invoice-col {\n float: left;\n width: 33.3333333%;\n }\n .table-responsive {\n overflow: auto;\n }\n .table-responsive > .table tr th,\n .table-responsive > .table tr td {\n white-space: normal !important;\n }\n}",".timeline {\n position: relative;\n padding: 20px 0 20px;\n list-style: none;\n}\n\n.timeline:before {\n content: \" \";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n width: 3px;\n margin-left: -1.5px;\n background-color: #eeeeee;\n}\n\n.timeline > li {\n position: relative;\n margin-bottom: 20px;\n}\n\n.timeline > li:before,\n.timeline > li:after {\n content: \" \";\n display: table;\n}\n\n.timeline > li:after {\n clear: both;\n}\n\n.timeline > li:before,\n.timeline > li:after {\n content: \" \";\n display: table;\n}\n\n.timeline > li:after {\n clear: both;\n}\n\n.timeline > li > .timeline-panel {\n float: left;\n position: relative;\n width: 46%;\n padding: 20px;\n border: 1px solid #d4d4d4;\n border-radius: 2px;\n -webkit-box-shadow: 0 1px 6px rgba(0,0,0,0.175);\n box-shadow: 0 1px 6px rgba(0,0,0,0.175);\n}\n\n.timeline > li > .timeline-panel:before {\n content: \" \";\n display: inline-block;\n position: absolute;\n top: 26px;\n right: -15px;\n border-top: 15px solid transparent;\n border-right: 0 solid #ccc;\n border-bottom: 15px solid transparent;\n border-left: 15px solid #ccc;\n}\n\n.timeline > li > .timeline-panel:after {\n content: \" \";\n display: inline-block;\n position: absolute;\n top: 27px;\n right: -14px;\n border-top: 14px solid transparent;\n border-right: 0 solid #fff;\n border-bottom: 14px solid transparent;\n border-left: 14px solid #fff;\n}\n\n.timeline > li > .timeline-badge {\n z-index: 100;\n position: absolute;\n top: 16px;\n left: 50%;\n width: 50px;\n height: 50px;\n margin-left: -25px;\n border-radius: 50% 50% 50% 50%;\n text-align: center;\n font-size: 1.4em;\n line-height: 50px;\n color: #fff;\n background-color: #999999;\n}\n\n.timeline > li.timeline-inverted > .timeline-panel {\n float: right;\n}\n\n.timeline > li.timeline-inverted > .timeline-panel:before {\n right: auto;\n left: -15px;\n border-right-width: 15px;\n border-left-width: 0;\n}\n\n.timeline > li.timeline-inverted > .timeline-panel:after {\n right: auto;\n left: -14px;\n border-right-width: 14px;\n border-left-width: 0;\n}\n\n.timeline-badge.primary {\n background-color: #2e6da4 !important;\n}\n\n.timeline-badge.success {\n background-color: #3f903f !important;\n}\n\n.timeline-badge.warning {\n background-color: #f0ad4e !important;\n}\n\n.timeline-badge.danger {\n background-color: #d9534f !important;\n}\n\n.timeline-badge.info {\n background-color: #5bc0de !important;\n}\n\n.timeline-title {\n margin-top: 0;\n color: inherit;\n}\n\n.timeline-body > p,\n.timeline-body > ul {\n margin-bottom: 0;\n}\n\n.timeline-body > p + p {\n margin-top: 5px;\n}\n\n@media(max-width:767px) {\n ul.timeline:before {\n left: 40px;\n }\n\n ul.timeline > li > .timeline-panel {\n width: calc(100% - 90px);\n width: -moz-calc(100% - 90px);\n width: -webkit-calc(100% - 90px);\n }\n\n ul.timeline > li > .timeline-badge {\n top: 16px;\n left: 15px;\n margin-left: 0;\n }\n\n ul.timeline > li > .timeline-panel {\n float: right;\n }\n\n ul.timeline > li > .timeline-panel:before {\n right: auto;\n left: -15px;\n border-right-width: 15px;\n border-left-width: 0;\n }\n\n ul.timeline > li > .timeline-panel:after {\n right: auto;\n left: -14px;\n border-right-width: 14px;\n border-left-width: 0;\n }\n}"]} \ No newline at end of file diff --git a/public/app.js b/public/app.js deleted file mode 100644 index 9755f5d..0000000 --- a/public/app.js +++ /dev/null @@ -1,4382 +0,0 @@ -(function() { - 'use strict'; - - var globals = typeof window === 'undefined' ? global : window; - if (typeof globals.require === 'function') return; - - var modules = {}; - var cache = {}; - var aliases = {}; - var has = ({}).hasOwnProperty; - - var endsWith = function(str, suffix) { - return str.indexOf(suffix, str.length - suffix.length) !== -1; - }; - - var _cmp = 'components/'; - var unalias = function(alias, loaderPath) { - var start = 0; - if (loaderPath) { - if (loaderPath.indexOf(_cmp) === 0) { - start = _cmp.length; - } - if (loaderPath.indexOf('/', start) > 0) { - loaderPath = loaderPath.substring(start, loaderPath.indexOf('/', start)); - } - } - var result = aliases[alias + '/index.js'] || aliases[loaderPath + '/deps/' + alias + '/index.js']; - if (result) { - return _cmp + result.substring(0, result.length - '.js'.length); - } - return alias; - }; - - var _reg = /^\.\.?(\/|$)/; - var expand = function(root, name) { - var results = [], part; - var parts = (_reg.test(name) ? root + '/' + name : name).split('/'); - for (var i = 0, length = parts.length; i < length; i++) { - part = parts[i]; - if (part === '..') { - results.pop(); - } else if (part !== '.' && part !== '') { - results.push(part); - } - } - return results.join('/'); - }; - - var dirname = function(path) { - return path.split('/').slice(0, -1).join('/'); - }; - - var localRequire = function(path) { - return function expanded(name) { - var absolute = expand(dirname(path), name); - return globals.require(absolute, path); - }; - }; - - var initModule = function(name, definition) { - var module = {id: name, exports: {}}; - cache[name] = module; - definition(module.exports, localRequire(name), module); - return module.exports; - }; - - var require = function(name, loaderPath) { - var path = expand(name, '.'); - if (loaderPath == null) loaderPath = '/'; - path = unalias(name, loaderPath); - - if (has.call(cache, path)) return cache[path].exports; - if (has.call(modules, path)) return initModule(path, modules[path]); - - var dirIndex = expand(path, './index'); - if (has.call(cache, dirIndex)) return cache[dirIndex].exports; - if (has.call(modules, dirIndex)) return initModule(dirIndex, modules[dirIndex]); - - throw new Error('Cannot find module "' + name + '" from '+ '"' + loaderPath + '"'); - }; - - require.alias = function(from, to) { - aliases[to] = from; - }; - - require.register = require.define = function(bundle, fn) { - if (typeof bundle === 'object') { - for (var key in bundle) { - if (has.call(bundle, key)) { - modules[key] = bundle[key]; - } - } - } else { - modules[bundle] = fn; - } - }; - - require.list = function() { - var result = []; - for (var item in modules) { - if (has.call(modules, item)) { - result.push(item); - } - } - return result; - }; - - require.brunch = true; - require._cache = cache; - globals.require = require; -})(); -require.register("javascripts/app", function(exports, require, module) { -"use strict"; - -var React = require("react"); -var ReactDOM = require("react-dom"); -var App = require("javascripts/components/main"); - -module.exports = function (mount) { - ReactDOM.render(React.createElement(App, null), mount); -}; -}); - -require.register("javascripts/components/event", function(exports, require, module) { -"use strict"; - -var React = require("react"); -var Events = exports.Events = React.createClass({ - displayName: "Events", - - propTypes: { - events: React.PropTypes.array.isRequired - }, - - getTime: function getTime(timeString) { - return new Date(timeString).toTimeString().match(/^[\d:]*/)[0]; - }, - render: function render() { - var _this = this; - - var events = undefined; - if (this.props.events.length) { - events = this.props.events.map(function (event) { - return _this.getTime(event.createdAt) + " " + event.description; - }).join("\n"); - return React.createElement( - "pre", - { className: "events-panel" }, - events - ); - } else { - return React.createElement( - "pre", - { className: "events-panel" }, - "Listening for new events..." - ); - } - } -}); -}); - -require.register("javascripts/components/gather", function(exports, require, module) { -"use strict"; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _user = require("javascripts/components/user"); - -var React = require("react"); -var helper = require("javascripts/helper"); -var enslUrl = helper.enslUrl; -var rankVotes = helper.rankeVotes; -var hiveUrl = helper.hiveUrl; - -var SelectPlayerButton = React.createClass({ - displayName: "SelectPlayerButton", - - propTypes: { - socket: React.PropTypes.object.isRequired, - gatherer: React.PropTypes.object.isRequired - }, - - selectPlayer: function selectPlayer(e) { - e.preventDefault(); - this.props.socket.emit("gather:select", { - player: parseInt(e.target.value, 10) - }); - }, - render: function render() { - var button = undefined; - if (this.props.gatherer.leader) { - button = React.createElement( - "button", - { - className: "btn btn-xs btn-default team-label", - "data-disabled": "true" }, - "Leader" - ); - } else if (this.props.gatherer.team !== "lobby") { - button = React.createElement( - "button", - { - "data-disabled": "true", - className: "btn btn-xs btn-default team-label" }, - _.capitalize(this.props.gatherer.team) - ); - } else { - button = React.createElement( - "button", - { - onClick: this.selectPlayer, - value: this.props.gatherer.id, - className: "btn btn-xs btn-primary team-label" }, - " Select" - ); - } - return button; - } -}); - -var GathererList = React.createClass({ - displayName: "GathererList", - memberList: function memberList() { - var self = this; - return this.props.gather.gatherers.filter(function (gatherer) { - return gatherer.team === self.props.team; - }).sort(function (gatherer) { - return gatherer.leader ? 1 : -1; - }); - }, - render: function render() { - var extractGatherer = function extractGatherer(gatherer) { - var image = undefined; - if (gatherer.leader) { - image = React.createElement("i", { className: "fa fa-star add-right" }); - } - return React.createElement( - "tr", - { key: gatherer.id }, - React.createElement( - "td", - { className: "col-md-12" }, - image, - gatherer.user.username, - React.createElement( - "span", - { className: "pull-right" }, - React.createElement(LifeformIcons, { gatherer: gatherer }) - ) - ) - ); - }; - var members = this.memberList().map(extractGatherer); - return React.createElement( - "table", - { className: "table" }, - React.createElement( - "tbody", - null, - members - ) - ); - } -}); - -var GatherTeams = React.createClass({ - displayName: "GatherTeams", - render: function render() { - return React.createElement( - "div", - { className: "row add-top" }, - React.createElement( - "div", - { className: "col-sm-6" }, - React.createElement( - "div", - { className: "panel panel-primary panel-light-background" }, - React.createElement( - "div", - { className: "panel-heading" }, - "Marines" - ), - React.createElement(GathererList, { gather: this.props.gather, team: "marine" }) - ) - ), - React.createElement( - "div", - { className: "col-sm-6" }, - React.createElement( - "div", - { className: "panel panel-primary panel-light-background" }, - React.createElement( - "div", - { className: "panel-heading" }, - "Aliens" - ), - React.createElement(GathererList, { gather: this.props.gather, team: "alien" }) - ) - ) - ); - } -}); - -var ElectionProgressBar = React.createClass({ - displayName: "ElectionProgressBar", - componentDidMount: function componentDidMount() { - var self = this; - this.timer = setInterval(function () { - self.forceUpdate(); - }, 900); - }, - progress: function progress() { - var interval = this.props.gather.election.interval; - var startTime = new Date(this.props.gather.election.startTime).getTime(); - var msTranspired = Math.floor(new Date().getTime() - startTime); - - return { - num: msTranspired, - den: interval, - barMessage: Math.floor((interval - msTranspired) / 1000) + "s remaining" - }; - }, - componentWillUnmount: function componentWillUnmount() { - clearInterval(this.timer); - }, - render: function render() { - return React.createElement(ProgressBar, { progress: this.progress() }); - } -}); - -var ProgressBar = React.createClass({ - displayName: "ProgressBar", - render: function render() { - var progress = this.props.progress; - var style = { - width: Math.round(progress.num / progress.den * 100) + "%" - }; - var barMessage = progress.barMessage || ""; - return React.createElement( - "div", - { className: "progress" }, - React.createElement( - "div", - { className: "progress-bar progress-bar-striped active", - "data-role": "progressbar", - "data-aria-valuenow": progress.num, - "data-aria-valuemin": "0", - "data-aria-valuemax": progress.den, - style: style }, - barMessage - ) - ); - } -}); - -var GatherProgress = React.createClass({ - displayName: "GatherProgress", - stateDescription: function stateDescription() { - switch (this.props.gather.state) { - case "gathering": - return "Waiting for more gatherers."; - case "election": - return "Currently voting for team leaders."; - case "selection": - return "Waiting for leaders to pick teams."; - case "done": - return "Gather completed."; - default: - return "Initialising gather."; - } - }, - gatheringProgress: function gatheringProgress() { - var num = this.props.gather.gatherers.length; - var den = 12; - var remaining = den - num; - var message = remaining === 1 ? "Waiting for last player" : "Waiting for " + remaining + " more players"; - return { - num: num, - den: den, - message: message - }; - }, - electionProgress: function electionProgress() { - var num = this.props.gather.gatherers.reduce(function (acc, gatherer) { - if (gatherer.leaderVote) acc++; - return acc; - }, 0); - var den = 12; - return { - num: num, - den: den, - message: den - num + " more votes required" - }; - }, - selectionProgress: function selectionProgress() { - var num = this.props.gather.gatherers.reduce(function (acc, gatherer) { - if (gatherer.team !== "lobby") acc++; - return acc; - }, 0); - var den = 12; - - return { - num: num, - den: den, - message: num + " out of " + den + " players assigned. Waiting \n\t\t\t\ton " + _.capitalize(this.props.gather.pickingTurn) + "s to pick next..." - }; - }, - render: function render() { - var progress = undefined, - progressBar = undefined; - var gatherState = this.props.gather.state; - if (gatherState === 'gathering' && this.props.gather.gatherers.length) { - progress = this.gatheringProgress(); - progressBar = React.createElement(ProgressBar, { progress: progress }); - } else if (gatherState === 'election') { - progress = this.electionProgress(); - progressBar = React.createElement(ElectionProgressBar, _extends({}, this.props, { progress: progress })); - } else if (gatherState === 'selection') { - progress = this.selectionProgress(); - progressBar = React.createElement(ProgressBar, { progress: progress }); - } - - if (!progress) return false; - - return React.createElement( - "div", - { className: "no-bottom" }, - React.createElement( - "p", - null, - React.createElement( - "strong", - null, - this.stateDescription() - ), - " ", - progress.message - ), - progressBar - ); - } -}); - -var JoinGatherButton = React.createClass({ - displayName: "JoinGatherButton", - - propTypes: { - thisGatherer: React.PropTypes.object, - user: React.PropTypes.object.isRequired, - socket: React.PropTypes.object.isRequired, - gather: React.PropTypes.object.isRequired - }, - - componentDidMount: function componentDidMount() { - var self = this; - this.timer = setInterval(function () { - self.forceUpdate(); - }, 30000); - }, - componentWillUnmount: function componentWillUnmount() { - clearInterval(this.timer); - }, - joinGather: function joinGather(e) { - e.preventDefault(); - this.props.socket.emit("gather:join"); - }, - leaveGather: function leaveGather(e) { - e.preventDefault(); - this.props.socket.emit("gather:leave"); - }, - cooldownTime: function cooldownTime() { - var user = this.props.user; - if (!user) return false; - var cooloffTime = this.props.gather.cooldown[user.id]; - if (!cooloffTime) return false; - var timeRemaining = new Date(cooloffTime) - new Date(); - return timeRemaining > 0 ? timeRemaining : false; - }, - render: function render() { - var gather = this.props.gather; - var thisGatherer = this.props.thisGatherer; - if (thisGatherer) { - return React.createElement( - "button", - { - onClick: this.leaveGather, - className: "btn btn-danger" }, - "Leave Gather" - ); - } - if (gather.state === 'gathering') { - var cooldownTime = this.cooldownTime(); - if (cooldownTime) { - return React.createElement(CooloffButton, { timeRemaining: cooldownTime }); - } else { - return React.createElement( - "button", - { - onClick: this.joinGather, - className: "btn btn-success" }, - "Join Gather" - ); - } - } - return false; - } -}); - -var CooloffButton = React.createClass({ - displayName: "CooloffButton", - - propTypes: { - timeRemaining: React.PropTypes.number.isRequired - }, - - timeRemaining: function timeRemaining() { - return Math.floor(this.props.timeRemaining / 60000) + 1 + " minutes remaining"; - }, - render: function render() { - return React.createElement( - "button", - { - disabled: "true", - className: "btn btn-success" }, - "Leaver Cooloff (", - this.timeRemaining(), - ")" - ); - } -}); - -var GatherActions = React.createClass({ - displayName: "GatherActions", - - propTypes: { - socket: React.PropTypes.object.isRequired, - gather: React.PropTypes.object.isRequired, - thisGatherer: React.PropTypes.object - }, - - voteRegather: function voteRegather(e) { - e.preventDefault(e); - this.props.socket.emit("gather:vote", { - regather: e.target.value === "true" - }); - }, - regatherVotes: function regatherVotes() { - var gather = this.props.gather; - if (!gather) return 0; - return gather.gatherers.reduce(function (acc, gatherer) { - if (gatherer.regatherVote) acc++; - return acc; - }, 0); - }, - render: function render() { - var regatherButton = undefined; - var user = this.props.user; - var gather = this.props.gather; - var socket = this.props.socket; - var thisGatherer = this.props.thisGatherer; - if (thisGatherer) { - var regatherVotes = this.regatherVotes(); - if (thisGatherer.regatherVote) { - regatherButton = React.createElement( - "button", - { value: "false", onClick: this.voteRegather, - className: "btn btn-danger" }, - "Voted Regather (" + regatherVotes + "/8)" - ); - } else { - regatherButton = React.createElement( - "button", - { value: "true", onClick: this.voteRegather, - className: "btn btn-danger" }, - "Vote Regather (" + regatherVotes + "/8)" - ); - } - } - - return React.createElement( - "div", - null, - React.createElement( - "div", - { className: "text-right" }, - React.createElement( - "ul", - { className: "list-inline no-bottom" }, - React.createElement( - "li", - null, - regatherButton - ), - React.createElement( - "li", - null, - React.createElement(JoinGatherButton, { gather: gather, thisGatherer: thisGatherer, - user: user, socket: socket }) - ) - ) - ) - ); - } -}); - -var VoteButton = React.createClass({ - displayName: "VoteButton", - - propTypes: { - socket: React.PropTypes.object.isRequired, - candidate: React.PropTypes.object.isRequired, - thisGatherer: React.PropTypes.object - }, - - cancelVote: function cancelVote(e) { - this.props.socket.emit("gather:vote", { - leader: { - candidate: null - } - }); - }, - vote: function vote(e) { - e.preventDefault(); - this.props.socket.emit("gather:vote", { - leader: { - candidate: parseInt(e.target.value, 10) - } - }); - }, - stopGatherMusic: function stopGatherMusic() { - soundController.stop(); - }, - render: function render() { - var candidate = this.props.candidate; - var thisGatherer = this.props.thisGatherer; - if (thisGatherer === null) { - return false; - } - if (thisGatherer.leaderVote === candidate.id) { - return React.createElement( - "button", - { - onClick: this.cancelVote, - className: "btn btn-xs btn-success vote-button" }, - "Voted" - ); - } else { - return React.createElement( - "button", - { - onClick: this.vote, - className: "btn btn-xs btn-primary vote-button", - value: candidate.id }, - "Vote" - ); - } - } -}); - -var ServerVoting = React.createClass({ - displayName: "ServerVoting", - - propTypes: { - socket: React.PropTypes.object.isRequired, - gather: React.PropTypes.object.isRequired, - thisGatherer: React.PropTypes.object, - servers: React.PropTypes.array.isRequired - }, - - voteHandler: function voteHandler(serverId) { - var _this = this; - - return function (e) { - e.preventDefault(); - _this.props.socket.emit("gather:vote", { - server: { - id: serverId - } - }); - }; - }, - votesForServer: function votesForServer(server) { - return this.props.gather.gatherers.reduce(function (acc, gatherer) { - if (gatherer.serverVote.some(function (voteId) { - return voteId === server.id; - })) acc++; - return acc; - }, 0); - }, - render: function render() { - var self = this; - var thisGatherer = self.props.thisGatherer; - var servers = self.props.servers.sort(function (a, b) { - var aVotes = self.votesForServer(a); - var bVotes = self.votesForServer(b); - return bVotes - aVotes; - }).map(function (server) { - var votes = self.votesForServer(server); - var style = thisGatherer.serverVote.some(function (voteId) { - return voteId === server.id; - }) ? "list-group-item list-group-item-success" : "list-group-item"; - return React.createElement( - "a", - { href: "#", - className: style, - onClick: self.voteHandler(server.id), - key: server.id }, - React.createElement( - "span", - { className: "badge" }, - votes - ), - server.name || server.description - ); - }); - - var votes = thisGatherer.serverVote.length; - - return React.createElement( - "div", - { className: "panel panel-primary" }, - React.createElement( - "div", - { className: "panel-heading" }, - votes === 2 ? "Server Votes" : "Please Vote for a Server. " + (2 - votes) + " votes remaining" - ), - React.createElement( - "div", - { className: "list-group gather-voting" }, - servers - ) - ); - } -}); - -var MapVoting = React.createClass({ - displayName: "MapVoting", - - propTypes: { - socket: React.PropTypes.object.isRequired, - gather: React.PropTypes.object.isRequired, - thisGatherer: React.PropTypes.object, - maps: React.PropTypes.array.isRequired - }, - - voteHandler: function voteHandler(mapId) { - var _this2 = this; - - return function (e) { - e.preventDefault(); - _this2.props.socket.emit("gather:vote", { - map: { - id: mapId - } - }); - }; - }, - votesForMap: function votesForMap(map) { - return this.props.gather.gatherers.reduce(function (acc, gatherer) { - if (gatherer.mapVote.some(function (voteId) { - return voteId === map.id; - })) acc++; - return acc; - }, 0); - }, - render: function render() { - var self = this; - var thisGatherer = self.props.thisGatherer; - var maps = self.props.maps.sort(function (a, b) { - var aVotes = self.votesForMap(a); - var bVotes = self.votesForMap(b); - return bVotes - aVotes; - }).map(function (map) { - var votes = self.votesForMap(map); - var style = thisGatherer.mapVote.some(function (voteId) { - return voteId === map.id; - }) ? "list-group-item list-group-item-success" : "list-group-item"; - return React.createElement( - "a", - { href: "#", - key: map.id, - onClick: self.voteHandler(map.id), - className: style }, - React.createElement( - "span", - { className: "badge" }, - votes - ), - map.name - ); - }); - - var votes = thisGatherer.mapVote.length; - - return React.createElement( - "div", - { className: "panel panel-primary" }, - React.createElement( - "div", - { className: "panel-heading" }, - votes === 2 ? "Map Votes" : "Please Vote for a Map. " + (2 - votes) + " votes remaining" - ), - React.createElement( - "div", - { className: "list-group gather-voting" }, - maps - ) - ); - } -}); - -var Gather = exports.Gather = React.createClass({ - displayName: "Gather", - - propTypes: { - thisGatherer: React.PropTypes.object, - maps: React.PropTypes.array.isRequired, - servers: React.PropTypes.array.isRequired, - socket: React.PropTypes.object.isRequired, - gather: React.PropTypes.object.isRequired - }, - - render: function render() { - var socket = this.props.socket; - var gather = this.props.gather; - var thisGatherer = this.props.thisGatherer; - var servers = this.props.servers; - var maps = this.props.maps; - var user = this.props.user; - if (gather === null) return React.createElement("div", null); - - var voting = undefined; - if (thisGatherer) { - var state = gather.state; - if (state === 'gathering' || state === 'election') { - voting = React.createElement( - "div", - { className: "row add-top" }, - React.createElement( - "div", - { className: "col-sm-6" }, - React.createElement(MapVoting, { gather: gather, maps: maps, - socket: socket, thisGatherer: thisGatherer }) - ), - React.createElement( - "div", - { className: "col-sm-6" }, - React.createElement(ServerVoting, { gather: gather, servers: servers, - socket: socket, thisGatherer: thisGatherer }) - ) - ); - } else { - voting = React.createElement(GatherVotingResults, { gather: gather, - servers: servers, - maps: maps }); - } - } - - var gatherTeams = undefined; - if (gather.state === 'selection') { - gatherTeams = React.createElement(GatherTeams, { gather: gather }); - } - - if (gather.gatherers.length > 0) { - return React.createElement( - "div", - null, - React.createElement( - "div", - { className: "panel panel-primary add-bottom" }, - React.createElement( - "div", - { className: "panel-heading" }, - "Current Gather" - ), - React.createElement( - "div", - { className: "panel-body" }, - React.createElement(GatherProgress, { gather: gather }), - React.createElement(GatherActions, { gather: gather, user: user, thisGatherer: thisGatherer, - socket: socket }) - ) - ), - React.createElement(Gatherers, { gather: gather, user: user, - soundController: this.props.soundController, - thisGatherer: thisGatherer, socket: socket }), - gatherTeams, - voting - ); - } else { - return React.createElement( - "div", - null, - React.createElement( - "div", - { className: "panel panel-primary add-bottom" }, - React.createElement( - "div", - { className: "panel-heading" }, - "Current Gather" - ) - ), - React.createElement(Gatherers, { gather: gather, user: user, thisGatherer: thisGatherer, - socket: socket }) - ); - } - } -}); - -var LifeformIcons = exports.LifeformIcons = React.createClass({ - displayName: "LifeformIcons", - availableLifeforms: function availableLifeforms() { - return ["skulk", "gorge", "lerk", "fade", "onos", "commander"]; - }, - gathererLifeforms: function gathererLifeforms() { - var lifeforms = []; - var gatherer = this.props.gatherer; - var abilities = gatherer.user.profile.abilities; - for (var attr in abilities) { - if (abilities[attr]) lifeforms.push(_.capitalize(attr)); - } - return lifeforms; - }, - render: function render() { - var lifeforms = this.gathererLifeforms(); - var availableLifeforms = this.availableLifeforms(); - var icons = availableLifeforms.map(function (lifeform) { - var containsAbility = lifeforms.some(function (gathererLifeform) { - return gathererLifeform.toLowerCase() === lifeform.toLowerCase(); - }); - if (containsAbility) { - return React.createElement("img", { - className: "lifeform-icon", - key: lifeform, - src: "/" + lifeform.toLowerCase() + ".png" }); - } else { - return React.createElement("img", { - className: "lifeform-icon", - key: lifeform, - src: "/blank.gif" }); - } - }); - return React.createElement( - "span", - { className: "add-right hidden-xs" }, - icons - ); - } -}); - -var Gatherers = React.createClass({ - displayName: "Gatherers", - - propTypes: { - user: React.PropTypes.object, - thisGatherer: React.PropTypes.object, - socket: React.PropTypes.object.isRequired, - gather: React.PropTypes.object.isRequired - }, - - joinGather: function joinGather(e) { - e.preventDefault(); - this.props.socket.emit("gather:join"); - }, - bootGatherer: function bootGatherer(e) { - e.preventDefault(); - this.props.socket.emit("gather:leave", { - gatherer: parseInt(e.target.value, 10) || null - }); - }, - render: function render() { - var _this3 = this; - - var self = this; - var user = this.props.user; - var socket = this.props.socket; - var gather = this.props.gather; - var thisGatherer = this.props.thisGatherer; - var admin = user && user.admin || user && user.moderator; - var gatherers = gather.gatherers.sort(function (a, b) { - return (b.user.hive.skill || 1000) - (a.user.hive.skill || 1000); - }).map(function (gatherer) { - var country = undefined; - if (gatherer.user.country) { - country = React.createElement("img", { src: "/blank.gif", - className: "flag flag-" + gatherer.user.country.toLowerCase(), - alt: gatherer.user.country }); - }; - - var skill = gatherer.user.profile.skill || "Not Available"; - - var hiveStats = []; - if (gatherer.user.hive.skill) hiveStats.push(gatherer.user.hive.skill + " ELO"); - - if (gatherer.user.hive.playTime) { - hiveStats.push(Math.floor(gatherer.user.hive.playTime / 3600) + " Hours"); - } - - var hive = hiveStats.length ? hiveStats.join(", ") : "Not Available"; - - var team = gatherer.user.team ? gatherer.user.team.name : "None"; - - var action = undefined; - if (gather.state === "election") { - var votes = gather.gatherers.reduce(function (acc, voter) { - if (voter.leaderVote === gatherer.id) acc++; - return acc; - }, 0); - action = React.createElement( - "span", - null, - React.createElement( - "span", - { className: "badge add-right" }, - votes + " votes" - ), - React.createElement(VoteButton, { - thisGatherer: thisGatherer, - soundController: _this3.props.soundController, - candidate: gatherer }) - ); - } - - if (gather.state === 'selection') { - if (thisGatherer && thisGatherer.leader && thisGatherer.team === gather.pickingTurn) { - action = React.createElement( - "span", - null, - React.createElement(SelectPlayerButton, { gatherer: gatherer }) - ); - } else { - if (gatherer.leader) { - action = React.createElement( - "span", - { className: "label label-padding \n\t\t\t\t\t\t\tlabel-" + gatherer.team + " \n\t\t\t\t\t\t\tteam-label" }, - "Leader" - ); - } else if (gatherer.team !== "lobby") { - action = React.createElement( - "span", - { className: "label label-padding \n\t\t\t\t\t\t\tlabel-" + gatherer.team + " \n\t\t\t\t\t\t\tteam-label" }, - _.capitalize(gatherer.team) - ); - } else { - action = React.createElement( - "span", - { className: "label label-padding label-default team-label" }, - "Lobby" - ); - } - } - } - - var adminOptions = undefined; - if (admin) { - adminOptions = [React.createElement("hr", null), React.createElement( - "dt", - null, - "Admin" - ), React.createElement( - "dd", - null, - React.createElement( - "button", - { - className: "btn btn-xs btn-danger", - value: gatherer.user.id, - onClick: _this3.bootGatherer }, - "Boot from Gather" - ), - " ", - React.createElement(_user.AssumeUserIdButton, { socket: socket, - gatherer: gatherer, currentUser: user }) - )]; - } - - var tabColor = gatherer.team !== "lobby" ? "panel-" + gatherer.team : "panel-info"; - return React.createElement( - "div", - { className: "panel " + tabColor + " gatherer-panel", - key: gatherer.user.id, "data-userid": gatherer.user.id }, - React.createElement( - "div", - { className: "panel-heading" }, - React.createElement( - "h4", - { className: "panel-title" }, - country, - " ", - gatherer.user.username, - React.createElement( - "span", - { className: "pull-right" }, - React.createElement( - "a", - { "data-toggle": "collapse", - href: "#" + gatherer.user.id.toString() + "-collapse", - "aria-expanded": "false", - className: "btn btn-xs btn-primary add-right", - "aria-controls": gatherer.user.id.toString() + "-collapse" }, - "Info ", - React.createElement("span", { className: "caret" }) - ), - React.createElement(LifeformIcons, { gatherer: gatherer }), - action - ) - ) - ), - React.createElement( - "div", - { id: gatherer.user.id.toString() + "-collapse", - className: "panel-collapse collapse out" }, - React.createElement( - "div", - { className: "panel-body" }, - React.createElement( - "dl", - { className: "dl-horizontal" }, - React.createElement( - "dt", - null, - "Skill Level" - ), - React.createElement( - "dd", - null, - skill - ), - React.createElement( - "dt", - null, - "Team" - ), - React.createElement( - "dd", - null, - team - ), - React.createElement( - "dt", - null, - "Hive Stats" - ), - React.createElement( - "dd", - null, - hive - ), - React.createElement( - "dt", - null, - "Links" - ), - React.createElement( - "dd", - null, - React.createElement( - "a", - { href: enslUrl(gatherer), - className: "btn btn-xs btn-primary", - target: "_blank" }, - "ENSL Profile" - ), - " ", - React.createElement( - "a", - { href: hiveUrl(gatherer), - className: "btn btn-xs btn-primary", - target: "_blank" }, - "Hive Profile" - ) - ), - adminOptions - ) - ) - ) - ); - }); - if (gather.gatherers.length) { - return React.createElement( - "div", - { "class": "panel-group", - role: "tablist", - "aria-multiselectable": "true", - id: "gatherers-panel" }, - gatherers - ); - } else { - return React.createElement( - "div", - { className: "panel panel-primary add-bottom" }, - React.createElement( - "div", - { className: "panel-body text-center join-hero" }, - React.createElement( - "button", - { - onClick: this.joinGather, - className: "btn btn-success btn-lg" }, - "Start a Gather" - ) - ) - ); - } - } -}); - -var CompletedGather = React.createClass({ - displayName: "CompletedGather", - completionDate: function completionDate() { - var d = new Date(this.props.gather.done.time); - if (d) { - return d.toLocaleTimeString(); - } else { - return "Completed Gather"; - } - }, - getInitialState: function getInitialState() { - return { - show: !!this.props.show - }; - }, - toggleGatherInfo: function toggleGatherInfo() { - var newState = !this.state.show; - this.setState({ - show: newState - }); - }, - render: function render() { - var gatherInfo = []; - var gather = this.props.gather; - var maps = this.props.maps; - var servers = this.props.servers; - if (this.state.show) { - gatherInfo.push(React.createElement(GatherTeams, { gather: gather })); - gatherInfo.push(React.createElement(GatherVotingResults, { gather: gather, - maps: maps, - servers: servers })); - } - return React.createElement( - "div", - null, - React.createElement( - "div", - { className: "panel panel-success add-bottom pointer", - onClick: this.toggleGatherInfo }, - React.createElement( - "div", - { className: "panel-heading" }, - React.createElement( - "strong", - null, - this.completionDate() - ) - ) - ), - gatherInfo - ); - } -}); - -var GatherVotingResults = React.createClass({ - displayName: "GatherVotingResults", - - // Returns an array of ids voted for e.g. [1,2,5,1,1,3,2] - countVotes: function countVotes(voteType) { - return this.props.gather.gatherers.reduce(function (acc, gatherer) { - var votes = gatherer[voteType]; - - // Temporary fix because some mapvotes are ints and not arrays - if (!Array.isArray(votes)) votes = [votes]; - - if (votes.length > 0) votes.forEach(function (vote) { - return acc.push(vote); - }); - return acc; - }, []); - }, - selectedMaps: function selectedMaps() { - return rankVotes(this.countVotes('mapVote'), this.props.maps).slice(0, 2); - }, - selectedServer: function selectedServer() { - return rankVotes(this.countVotes('serverVote'), this.props.servers).slice(0, 1); - }, - render: function render() { - var maps = this.selectedMaps(); - var server = this.selectedServer().pop(); - var password = undefined; - if (server.password) { - password = [React.createElement( - "dt", - null, - "Password" - ), React.createElement( - "dd", - null, - server.password - )]; - } - return React.createElement( - "div", - { className: "panel panel-primary" }, - React.createElement( - "div", - { className: "panel-heading" }, - "Server" - ), - React.createElement( - "div", - { className: "panel-body" }, - React.createElement( - "dl", - { className: "dl-horizontal" }, - React.createElement( - "dt", - null, - "Maps" - ), - React.createElement( - "dd", - null, - maps.map(function (map) { - return map.name; - }).join(" & ") - ), - React.createElement( - "dt", - null, - "Server" - ), - React.createElement( - "dd", - null, - server.name - ), - React.createElement( - "dt", - null, - "Address" - ), - React.createElement( - "dd", - null, - server.ip, - ":", - server.port - ), - password - ), - React.createElement( - "p", - null, - React.createElement( - "a", - { href: "steam://run/4920/connect+%20" + server.ip + ":" + server.port + "%20+password%20" + server.password, - className: "btn btn-primary max-width" }, - "Join Server" - ) - ) - ) - ); - } -}); - -var ArchivedGathers = exports.ArchivedGathers = React.createClass({ - displayName: "ArchivedGathers", - - propTypes: { - archive: React.PropTypes.array.isRequired, - servers: React.PropTypes.array.isRequired, - maps: React.PropTypes.array.isRequired - }, - - render: function render() { - var _this4 = this; - - var archive = this.props.archive.sort(function (a, b) { - return new Date(b.createdAt) - new Date(a.createdAt); - }).map(function (archivedGather, index) { - return React.createElement(CompletedGather, { - id: archivedGather.gather.done.time, - show: index === 0 ? true : false, - gather: archivedGather.gather, - maps: _this4.props.maps, - servers: _this4.props.servers }); - }); - - return React.createElement( - "div", - { className: "panel panel-primary" }, - React.createElement( - "div", - { className: "panel-heading" }, - "Archived Gathers" - ), - React.createElement( - "div", - { className: "panel-body" }, - archive - ) - ); - } -}); -}); - -require.register("javascripts/components/main", function(exports, require, module) { -"use strict"; - -var _event = require("javascripts/components/event"); - -var _user = require("javascripts/components/user"); - -var _sound = require("javascripts/components/sound"); - -var _teamspeak = require("javascripts/components/teamspeak"); - -var _settings = require("javascripts/components/settings"); - -var _message = require("javascripts/components/message"); - -var _gather = require("javascripts/components/gather"); - -var React = require("react"); -var Sound = require("javascripts/components/sound"); -var SoundController = Sound.SoundController; -var helper = require("javascripts/helper"); -var storageAvailable = helper.storageAvailable; -var SplashScreen = React.createClass({ - displayName: "SplashScreen", - getInitialState: function getInitialState() { - return { - status: "connecting", - socket: null - }; - }, - componentDidMount: function componentDidMount() { - var _this = this; - - var socketUrl = window.location.protocol + "//" + window.location.host; - var socket = io(socketUrl).on("connect", function () { - console.log("Connected"); - _this.setState({ status: "connected" }); - socket.on("reconnect", function () { - console.log("Reconnected"); - }).on("disconnect", function () { - console.log("Disconnected"); - }); - }).on("error", function (error) { - console.log(error); - if (error === "Authentication Failed") { - _this.setState({ status: "authFailed" }); - } else if (error === "Gather Banned") { - _this.setState({ status: "banned" }); - } - }); - - this.setState({ socket: socket }); - }, - render: function render() { - var status = this.state.status; - - if (status === "connected") { - return React.createElement(App, { socket: this.state.socket }); - } - - var splash = undefined; - if (status === "authFailed") { - splash = React.createElement(AuthFailedSplash, null); - } else if (status === "banned") { - splash = React.createElement(BannedSplash, null); - } else if (status === "connecting") { - splash = React.createElement(ConnectingSplash, null); - } - - return React.createElement( - "div", - null, - React.createElement( - "div", - { style: { "minHeight": "750px" } }, - React.createElement( - "div", - { className: "container-fluid" }, - splash - ) - ) - ); - } -}); - -var AuthFailedSplash = React.createClass({ - displayName: "AuthFailedSplash", - render: function render() { - return React.createElement( - "div", - { className: "row", id: "auth-required" }, - React.createElement( - "div", - { className: "col-lg-6 col-lg-offset-3" }, - React.createElement( - "div", - { className: "add-top jumbotron jumbo-auth text-center" }, - React.createElement( - "div", - null, - React.createElement("img", { src: "/ensl_logo.png", alt: "ENSL Logo" }) - ), - React.createElement( - "h3", - null, - "You need to be logged in to the ENSL website to access gathers" - ), - React.createElement( - "h3", - null, - React.createElement( - "small", - null, - "If you are logged on, try visiting a few pages on ENSL.org so the server can update your cookies" - ) - ), - React.createElement( - "h3", - null, - React.createElement( - "small", - null, - "If this error persists please contact an admin to fix it" - ) - ), - React.createElement("br", null), - React.createElement( - "p", - null, - React.createElement( - "a", - { className: "btn btn-primary btn-lg", href: "www.ensl.org", role: "button" }, - "Go to website" - ) - ) - ) - ) - ); - } -}); - -var BannedSplash = React.createClass({ - displayName: "BannedSplash", - render: function render() { - return React.createElement( - "div", - { className: "row" }, - React.createElement( - "div", - { className: "col-lg-6 col-lg-offset-3" }, - React.createElement( - "div", - { className: "add-top jumbotron jumbo-auth text-center" }, - React.createElement( - "div", - null, - React.createElement("img", { src: "/ensl_logo.png", alt: "ENSL Logo" }) - ), - React.createElement( - "h3", - null, - "You're currently barred from joining gathers" - ), - React.createElement( - "h3", - null, - React.createElement( - "small", - null, - "Either wait for the ban to expire or talk to an admin to get it lifted" - ) - ), - React.createElement("br", null), - React.createElement( - "p", - null, - React.createElement( - "a", - { className: "btn btn-primary btn-lg", href: "http://www.ensl.org/bans", role: "button" }, - "See the ban list" - ) - ) - ) - ) - ); - } -}); - -var ConnectingSplash = React.createClass({ - displayName: "ConnectingSplash", - render: function render() { - return React.createElement( - "div", - { className: "row", id: "authenticating" }, - React.createElement( - "div", - { className: "col-lg-6 col-lg-offset-3" }, - React.createElement( - "div", - { className: "add-top jumbotron jumbo-auth text-center" }, - React.createElement( - "div", - null, - React.createElement("img", { src: "/ensl_logo.png", className: "jumbo-img", alt: "ENSL Logo" }) - ), - React.createElement("br", null), - React.createElement( - "h3", - null, - "Authenticating your ENSL account" - ), - React.createElement("br", null), - React.createElement( - "div", - null, - React.createElement("img", { src: "/spinner.svg", className: "spinner", alt: "Loading" }) - ) - ) - ) - ); - } -}); - -var App = React.createClass({ - displayName: "App", - - propTypes: { - socket: React.PropTypes.object.isRequired - }, - - getInitialState: function getInitialState() { - var updateTitle = true; - var showEventsPanel = true; - - if (storageAvailable('localStorage')) { - if (localStorage.getItem("updateTitle") !== null) { - updateTitle = JSON.parse(localStorage.getItem("updateTitle")); - } - if (localStorage.getItem("showEventsPanel") !== null) { - showEventsPanel = JSON.parse(localStorage.getItem("showEventsPanel")); - } - } - - return { - gather: { - gatherers: [] - }, - users: [], - messages: [], - maps: [], - user: null, - servers: [], - archive: [], - socket: null, - events: [], - updateTitle: updateTitle, - showEventsPanel: showEventsPanel, - soundController: new SoundController(), - showMessageBox: true, - collapseMenu: false, - connectionState: "connected" - }; - }, - updateTitle: function updateTitle() { - var gather = this.state.gather; - if (gather && this.state.updateTitle) { - document.title = "NSL Gathers (" + gather.gatherers.length + "/12)"; - return; - } - document.title = "NSL Gathers"; - }, - toggleEventsPanel: function toggleEventsPanel(event) { - var newState = event.target.checked; - this.setState({ showEventsPanel: newState }); - if (storageAvailable('localStorage')) { - localStorage.setItem("showEventsPanel", newState); - } - }, - toggleUpdateTitle: function toggleUpdateTitle(event) { - var newState = event.target.checked; - this.setState({ updateTitle: newState }); - if (storageAvailable('localStorage')) { - localStorage.setItem("updateTitle", newState); - } - this.updateTitle(); - }, - thisGatherer: function thisGatherer() { - var gather = this.state.gather; - var user = this.state.user; - if (gather && user && gather.gatherers.length) { - return gather.gatherers.filter(function (gatherer) { - return gatherer.id === user.id; - }).pop() || null; - } - return null; - }, - componentDidMount: function componentDidMount() { - var _this2 = this; - - var self = this; - var socket = this.props.socket; - var soundController = this.state.soundController; - - this.updateTitle(); - - socket.on('stateChange', function (data) { - var state = data.state; - - if (state.from === 'gathering' && state.to === 'election' && _this2.thisGatherer()) { - soundController.playGatherMusic(); - } - - if (state.from === 'election' && state.to === 'gathering') { - soundController.stop(); - } - }); - - socket.on('event:append', function (data) { - var events = self.state.events; - events.unshift(data); - self.setState({ - events: events.slice(0, 20) - }); - }); - - socket.on('users:update', function (data) { - return self.setState({ - users: data.users, - user: data.currentUser - }); - }); - - socket.on("message:append", function (data) { - self.setState({ - messages: self.state.messages.concat(data.messages).sort(function (a, b) { - return new Date(a.createdAt) - new Date(b.createdAt); - }) - }); - }); - - socket.on("message:refresh", function (data) { - self.setState({ - messages: data.messages - }); - }); - - socket.on("gather:refresh", function (data) { - self.setState({ - gather: data.gather, - maps: data.maps, - servers: data.servers, - previousGather: data.previousGather - }); - _this2.updateTitle(); - }); - - socket.on("gather:archive:refresh", function (data) { - self.setState({ - archive: data.archive, - maps: data.maps, - servers: data.servers - }); - }); - - socket.on("connect", function () { - _this2.setState({ connectionState: "connected" }); - }); - - socket.on("disconnect", function () { - _this2.setState({ connectionState: "disconnected" }); - }); - - socket.on("reconnecting", function () { - _this2.setState({ connectionState: "reconnecting" }); - }); - - socket.on("reconnect", function () { - _this2.setState({ connectionState: "connected" }); - }); - - socket.emit("users:refresh"); - socket.emit("message:refresh"); - socket.emit("gather:refresh"); - }, - toggleMessageBox: function toggleMessageBox(e) { - e.preventDefault(); - console.log("FOO"); - this.setState({ - showMessageBox: !this.state.showMessageBox - }); - }, - toggleCollapseMenu: function toggleCollapseMenu(e) { - e.preventDefault(); - this.setState({ - collapseMenu: !this.state.collapseMenu - }); - }, - render: function render() { - var socket = this.props.socket; - - var eventsPanel = undefined; - if (this.state.showEventsPanel) { - eventsPanel = React.createElement(_event.Events, { events: this.state.events }); - } - - var profileModal = undefined, - chatroom = undefined, - currentUser = undefined; - if (this.state.user) { - profileModal = React.createElement(_user.ProfileModal, { user: this.state.user }); - chatroom = React.createElement(_message.Chatroom, { messages: this.state.messages, - user: this.state.user, socket: socket }); - currentUser = React.createElement( - "ul", - { className: "nav navbar-top-links navbar-right", id: "currentuser" }, - React.createElement(_user.CurrentUser, { user: this.state.user }) - ); - } - - var user = this.state.user; - var username = undefined, - avatar = undefined; - if (user) { - username = user.username; - avatar = user.avatar; - } - - var appClass = ["skin-blue", "sidebar-mini", "fixed"]; - if (this.state.showMessageBox) appClass.push("control-sidebar-open"); - if (this.state.collapseMenu) appClass.push("sidebar-collapse"); - - var connectionStatus = undefined; - var connectionState = this.state.connectionState; - if (connectionState === "connected") { - connectionStatus = React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-circle text-success" }), - " Online" - ); - } else if (connectionState === "reconnecting") { - connectionStatus = React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-circle text-warning" }), - " Reconnecting" - ); - } else if (connectionState === "disconnected") { - connectionStatus = React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-circle text-danger" }), - " Disconnected" - ); - } - - return React.createElement( - "div", - { className: appClass.join(" ") }, - React.createElement( - "header", - { className: "main-header" }, - React.createElement( - "a", - { href: "/", className: "logo" }, - React.createElement( - "span", - { className: "logo-mini" }, - "NSL Gathers" - ), - React.createElement( - "span", - { className: "logo-lg" }, - "NSL Gathers" - ) - ), - React.createElement( - "nav", - { className: "navbar navbar-static-top", role: "navigation" }, - React.createElement( - "a", - { href: "#", className: "sidebar-toggle", onClick: this.toggleCollapseMenu, role: "button" }, - React.createElement( - "span", - { className: "sr-only" }, - "Toggle navigation" - ) - ), - React.createElement( - "div", - { className: "navbar-custom-menu" }, - React.createElement( - "ul", - { className: "nav navbar-nav" }, - React.createElement( - "li", - { className: "dropdown messages-menu" }, - React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-headphones" }) - ) - ), - React.createElement( - "li", - { className: "dropdown messages-menu" }, - React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-newspaper-o" }), - React.createElement( - "span", - { className: "label label-success" }, - "4" - ) - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", onClick: this.toggleMessageBox }, - React.createElement("i", { className: "fa fa-comment" }) - ) - ) - ) - ) - ) - ), - React.createElement( - "aside", - { className: "main-sidebar" }, - React.createElement( - "section", - { className: "sidebar", style: { height: "auto" } }, - React.createElement( - "div", - { className: "user-panel" }, - React.createElement( - "div", - { className: "pull-left image" }, - React.createElement("img", { src: avatar, className: "img-circle", alt: "User Image" }) - ), - React.createElement( - "div", - { className: "pull-left info" }, - React.createElement( - "p", - null, - username - ), - connectionStatus - ) - ), - React.createElement( - "ul", - { className: "sidebar-menu" }, - React.createElement( - "li", - { className: "header" }, - "MAIN NAVIGATION" - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-dashboard" }), - " ", - React.createElement( - "span", - null, - "Online" - ) - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-dashboard" }), - " ", - React.createElement( - "span", - null, - "Teamspeak" - ) - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "fa fa-dashboard" }), - " ", - React.createElement( - "span", - null, - "Info" - ) - ) - ) - ) - ) - ), - React.createElement( - "div", - { className: "content-wrapper", style: { "minHeight": "916px" } }, - React.createElement( - "section", - { className: "content-header" }, - React.createElement( - "h1", - null, - "Gathers", - React.createElement( - "small", - null, - "beta" - ) - ) - ), - React.createElement( - "section", - { className: "content" }, - React.createElement( - "p", - null, - "Foo" - ) - ) - ), - React.createElement( - "aside", - { className: "control-sidebar control-sidebar-dark", style: { "position": "fixed", "height": "auto" } }, - React.createElement( - "div", - null, - React.createElement( - "div", - null, - React.createElement( - "h3", - { className: "control-sidebar-heading" }, - "Recent Activity" - ), - React.createElement( - "ul", - { className: "control-sidebar-menu" }, - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#" }, - React.createElement("i", { className: "menu-icon fa fa-birthday-cake bg-red" }), - React.createElement( - "div", - { className: "menu-info" }, - React.createElement( - "h4", - { className: "control-sidebar-subheading" }, - "Langdon's Birthday" - ), - React.createElement( - "p", - null, - "Will be 23 on April 24th" - ) - ) - ) - ) - ) - ) - ) - ), - React.createElement("div", { className: "control-sidebar-bg", style: { "position": "fixed", "height": "auto" } }) - ); - - return React.createElement( - "div", - { id: "wrapper" }, - React.createElement( - "nav", - { className: "navbar navbar-default navbar-static-top", - role: "navigation", - style: { marginBottom: "0" } }, - React.createElement( - "div", - { className: "navbar-header" }, - React.createElement( - "a", - { className: "navbar-brand", href: "/" }, - "NSL Gathers ", - React.createElement( - "small", - null, - React.createElement( - "i", - null, - "Alpha" - ) - ) - ) - ), - currentUser, - React.createElement( - "ul", - { className: "nav navbar-top-links navbar-right", id: "soundcontroller" }, - React.createElement(_sound.SoundPanel, { soundController: this.state.soundController }) - ), - React.createElement(_teamspeak.TeamSpeakButton, null), - React.createElement( - "ul", - { className: "nav navbar-top-links navbar-right" }, - React.createElement( - "li", - { className: "dropdown" }, - React.createElement( - "a", - { href: "#" }, - "Info  ", - React.createElement("i", { className: "fa fa-caret-down" }) - ), - React.createElement( - "ul", - { className: "dropdown-menu" }, - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "https://github.com/cblanc/sws_gathers", target: "_blank" }, - React.createElement( - "i", - { className: "fa fa-github" }, - " " - ), - " Github" - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "http://steamcommunity.com/id/nslgathers", target: "_blank" }, - React.createElement( - "i", - { className: "fa fa-external-link" }, - " " - ), - " Steam Bot" - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "http://www.ensl.org/articles/464", target: "_blank" }, - React.createElement( - "i", - { className: "fa fa-external-link" }, - " " - ), - " Gather Rules" - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "/messages", target: "_blank" }, - React.createElement( - "i", - { className: "fa fa-external-link" }, - " " - ), - " Message Archive" - ) - ) - ) - ) - ) - ), - React.createElement(_user.AdminPanel, { socket: socket }), - React.createElement(_settings.SettingsPanel, { - toggleEventsPanel: this.toggleEventsPanel, - showEventsPanel: this.state.showEventsPanel, - toggleUpdateTitle: this.toggleUpdateTitle, - updateTitle: this.state.updateTitle }), - React.createElement(_teamspeak.TeamSpeakModal, null), - profileModal, - React.createElement( - "div", - { style: { minHeight: "750px" } }, - React.createElement( - "div", - { className: "container-fluid" }, - React.createElement( - "div", - { className: "row" }, - React.createElement( - "div", - { className: "col-md-2 hidden-xs" }, - React.createElement( - "ul", - { className: "nav", id: "side-menu" }, - React.createElement(_user.UserMenu, { users: this.state.users, user: this.state.user, - socket: socket }) - ) - ), - React.createElement( - "div", - { className: "col-md-4", id: "chatroom" }, - chatroom - ), - React.createElement( - "div", - { className: "col-md-6", id: "gathers" }, - React.createElement(_gather.Gather, { - socket: socket, - maps: this.state.maps, - user: this.state.user, - gather: this.state.gather, - servers: this.state.servers, - thisGatherer: this.thisGatherer(), - previousGather: this.state.previousGather, - soundController: this.state.soundController }), - eventsPanel, - React.createElement("hr", null), - React.createElement(_gather.ArchivedGathers, { archive: this.state.archive, - maps: this.state.maps, - servers: this.state.servers }) - ) - ) - ) - ) - ); - } -}); - -module.exports = SplashScreen; -}); - -require.register("javascripts/components/message", function(exports, require, module) { -"use strict"; - -var React = require("react"); -var ReactDOM = require("react-dom"); -var ReactEmoji = require("react-emoji"); -var ReactAutolink = require("react-autolink"); -var MessageBrowser = React.createClass({ - displayName: "MessageBrowser", - getInitialState: function getInitialState() { - return { - browserState: "", - messages: [], - page: 0, - limit: 250, - search: "" - }; - }, - handleNextPage: function handleNextPage(e) { - e.preventDefault(); - var page = this.state.page; - this.setState({ page: page + 1 }); - this.loadMessages(); - }, - handlePreviousPage: function handlePreviousPage(e) { - e.preventDefault(); - var page = this.state.page; - if (page < 1) return; - this.setState({ page: page - 1 }); - this.loadMessages(); - }, - pageHandlers: function pageHandlers() { - var previous = undefined; - if (this.state.page > 0) { - previous = React.createElement( - "a", - { className: "btn btn-xs btn-primary add-right", - onClick: this.handlePreviousPage }, - "Prev" - ); - } - var next = undefined; - if (this.state.messages.length === this.state.limit) { - next = React.createElement( - "a", - { className: "btn btn-xs btn-primary", - onClick: this.handleNextPage }, - "Next" - ); - } - return React.createElement( - "div", - null, - previous, - React.createElement( - "span", - { className: "add-right" }, - this.state.page - ), - next - ); - }, - loadMessages: function loadMessages() { - var _this = this; - - var limit = this.state.limit; - var page = this.state.page; - var data = { - limit: limit, - page: page - }; - - if (this.state.search.length) { - data.query = this.state.search; - } - - this.setState({ browserState: "Retrieving messages" }); - $.ajax({ - url: "/api/messages", - data: data - }).done(function (data) { - _this.setState({ - messages: data.messages, - browserState: "" - }); - }).fail(function (error) { - console.error(error); - _this.setState({ - browserState: "Unable to retrieve messages." - }); - }); - }, - componentDidMount: function componentDidMount() { - this.loadMessages(); - }, - updateLimit: function updateLimit(e) { - var newLimit = parseInt(e.target.value, 10); - if (isNaN(newLimit) || newLimit > 250) newLimit = 250; - this.setState({ limit: newLimit }); - }, - updateSearch: function updateSearch(e) { - this.setState({ search: e.target.value }); - }, - render: function render() { - var browserState = undefined; - if (this.state.browserState.length) { - browserState = React.createElement( - "div", - { className: "col-xs-7" }, - React.createElement( - "div", - { className: "well" }, - this.state.browserState - ) - ); - } - var messages = this.state.messages.map(function (message) { - return React.createElement( - "tr", - { key: message._id }, - React.createElement( - "td", - { className: "col-xs-2" }, - new Date(message.createdAt).toString() - ), - React.createElement( - "td", - { className: "col-xs-3" }, - message.author.username - ), - React.createElement( - "td", - { className: "col-xs-5" }, - message.content - ), - React.createElement( - "td", - { className: "col-xs-2" }, - message._id - ) - ); - }); - return React.createElement( - "div", - { className: "row" }, - React.createElement( - "div", - { className: "col-xs-5" }, - React.createElement( - "div", - { className: "form-horizontal" }, - React.createElement( - "div", - { className: "form-group" }, - React.createElement( - "label", - { className: "col-sm-3 control-label" }, - "Max Results" - ), - React.createElement( - "div", - { className: "col-sm-9" }, - React.createElement("input", { type: "number", className: "form-control", - onChange: this.updateLimit, - value: this.state.limit }) - ) - ), - React.createElement( - "div", - { className: "form-group" }, - React.createElement( - "label", - { className: "col-sm-3 control-label" }, - "Search Filter" - ), - React.createElement( - "div", - { className: "col-sm-9" }, - React.createElement("input", { type: "text", className: "form-control", - onChange: this.updateSearch, - value: this.state.search }) - ) - ), - React.createElement( - "div", - { className: "form-group" }, - React.createElement( - "div", - { className: "col-sm-offset-3 col-sm-9" }, - React.createElement( - "button", - { - className: "btn btn-primary", - onClick: this.loadMessages }, - "Search" - ) - ) - ), - React.createElement( - "div", - { className: "row" }, - React.createElement( - "div", - { className: "col-sm-offset-3 col-sm-9" }, - React.createElement( - "p", - null, - "Page Control" - ), - this.pageHandlers() - ) - ) - ) - ), - browserState, - React.createElement( - "div", - { className: "col-xs-12" }, - React.createElement( - "table", - { className: "table" }, - React.createElement( - "thead", - null, - React.createElement( - "tr", - null, - React.createElement( - "th", - null, - "Date" - ), - React.createElement( - "th", - null, - "Author" - ), - React.createElement( - "th", - null, - "Message" - ), - React.createElement( - "th", - null, - "ID" - ) - ) - ), - React.createElement( - "tbody", - null, - messages - ) - ) - ) - ); - } -}); - -var Chatroom = exports.Chatroom = React.createClass({ - displayName: "Chatroom", - - propTypes: { - messages: React.PropTypes.array.isRequired, - socket: React.PropTypes.object.isRequired, - user: React.PropTypes.object.isRequired - }, - - getInitialState: function getInitialState() { - return { - autoScroll: true - }; - }, - componentDidMount: function componentDidMount() { - var self = this; - - this.scrollListener = _.debounce(function (event) { - self.temporarilyDisableAutoScroll(event); - }, 300, { - leading: false, - trailing: true - }); - - var node = ReactDOM.findDOMNode(this.refs.messageContainer); - node.addEventListener('scroll', this.scrollListener); - - this.scrollToBottom(); - }, - componentWillUnmount: function componentWillUnmount() { - node.removeEventListener('scroll', this.scrollListener); - clearTimeout(this.disableScrollTimer); - }, - loadMoreMessages: function loadMoreMessages() { - var earliestMessage = this.props.messages[0]; - if (earliestMessage === undefined) return; - this.props.socket.emit("message:refresh", { - before: earliestMessage.createdAt - }); - }, - sendMessage: function sendMessage(message) { - this.props.socket.emit("newMessage", { message: message }); - }, - clearAutoScrollTimeout: function clearAutoScrollTimeout() { - if (this.disableScrollTimer) clearTimeout(this.disableScrollTimer); - }, - temporarilyDisableAutoScroll: function temporarilyDisableAutoScroll(event) { - var self = this; - var node = event.target; - if (node) { - if (node.scrollHeight - node.scrollTop === node.clientHeight) { - this.setState({ autoScroll: true }); - this.clearAutoScrollTimeout(); - } - if (node.scrollHeight - node.scrollTop - node.clientHeight < 50) return; - } - this.setState({ autoScroll: false }); - this.clearAutoScrollTimeout(); - this.disableScrollTimer = setTimeout(function () { - self.setState({ - autoScroll: true - }); - }, 10000); - }, - componentDidUpdate: function componentDidUpdate() { - this.scrollToBottom(); - }, - scrollToBottom: function scrollToBottom() { - if (!this.state.autoScroll) return; - var node = ReactDOM.findDOMNode(this.refs.messageContainer); - node.scrollTop = node.scrollHeight; - }, - render: function render() { - var _this2 = this; - - var socket = this.props.socket; - var messages = this.props.messages.map(function (message) { - if (message) { - return React.createElement(ChatMessage, { message: message, - key: message._id, - socket: socket, - user: _this2.props.user }); - } - }); - return React.createElement( - "div", - { className: "panel panel-primary chatbox" }, - React.createElement( - "div", - { className: "panel-heading" }, - "Gather Chat" - ), - React.createElement( - "div", - { className: "panel-body" }, - React.createElement( - "ul", - { className: "chat", id: "chatmessages", ref: "messageContainer" }, - React.createElement( - "li", - { className: "text-center" }, - React.createElement( - "a", - { href: "#", - onClick: this.loadMoreMessages, - className: "btn btn-primary btn-xs" }, - "Load more messages" - ) - ), - messages - ) - ), - React.createElement( - "div", - { className: "panel-footer" }, - React.createElement(MessageBar, { socket: socket }) - ) - ); - } -}); - -var imgurRegex = /^(https?:\/\/i\.imgur\.com\/\S*\.(jpg|png))$/i; - -var ChatMessage = React.createClass({ - displayName: "ChatMessage", - - propTypes: { - user: React.PropTypes.object.isRequired, - socket: React.PropTypes.object.isRequired, - message: React.PropTypes.object.isRequired - }, - - mixins: [ReactAutolink, ReactEmoji], - - getInitialState: function getInitialState() { - return { - createdAt: "" - }; - }, - updateCreatedAt: function updateCreatedAt() { - var self = this; - if (this.props.message.createdAt) { - self.setState({ - createdAt: $.timeago(self.props.message.createdAt) - }); - } - }, - componentWillMount: function componentWillMount() { - this.updateCreatedAt(); - }, - componentDidMount: function componentDidMount() { - this.interval = setInterval(this.updateCreatedAt, 60000); - }, - - componentWillUnmount: function componentWillUnmount() { - clearInterval(this.interval); - }, - - messageContent: function messageContent() { - var self = this; - var message = self.props.message.content; - if (message.match(imgurRegex)) { - return React.createElement( - "div", - { className: "imgur-container" }, - React.createElement( - "a", - { href: message, target: "_blank" }, - React.createElement("img", { className: "imgur-chat", src: message }) - ) - ); - } - - return self.autolink(message, { - target: "_blank", - rel: "nofollow" - }).map(function (elem) { - if (_.isString(elem)) { - return self.emojify(elem); - } else { - return elem; - } - }); - }, - - render: function render() { - var deleteButton = undefined; - var user = this.props.user; - if (user && user.admin) { - deleteButton = React.createElement(DeleteMessageButton, { messageId: this.props.message._id, - socket: this.props.socket }); - } - return React.createElement( - "li", - { className: "left clearfix" }, - React.createElement( - "span", - { className: "chat-img pull-left" }, - React.createElement("img", { - src: this.props.message.author.avatar, - alt: "User Avatar", - height: "40", - width: "40", - className: "img-circle" }) - ), - React.createElement( - "div", - { className: "chat-body clearfix" }, - React.createElement( - "div", - { className: "header" }, - React.createElement( - "strong", - { className: "primary-font" }, - this.props.message.author.username - ), - React.createElement( - "small", - { className: "pull-right text-muted" }, - deleteButton, - React.createElement( - "span", - { className: "hidden-xs" }, - React.createElement("i", { className: "fa fa-clock-o fa-fw" }), - this.state.createdAt - ) - ) - ), - React.createElement( - "p", - { className: "wordwrap" }, - this.messageContent() - ) - ) - ); - } -}); - -var DeleteMessageButton = React.createClass({ - displayName: "DeleteMessageButton", - - propTypes: { - socket: React.PropTypes.object.isRequired - }, - - handleClick: function handleClick(e) { - e.preventDefault(); - this.props.socket.emit("message:delete", { - id: this.props.messageId - }); - }, - render: function render() { - return React.createElement( - "a", - { href: "#", onClick: this.handleClick }, - React.createElement("i", { className: "fa fa-trash-o" }) - ); - } -}); - -var MessageBar = React.createClass({ - displayName: "MessageBar", - - propTypes: { - socket: React.PropTypes.object.isRequired - }, - - sendMessage: function sendMessage(content) { - this.props.socket.emit("message:new", { - content: content - }); - }, - getInitialState: function getInitialState() { - return { - statusMessage: null - }; - }, - checkInputLength: function checkInputLength() { - var input = ReactDOM.findDOMNode(this.refs.content).value; - var currentStatusMessage = this.state.statusMessage; - if (input.length > 256) { - return this.setState({ - statusMessage: "Maximum of 256 characters will be saved" - }); - } - if (currentStatusMessage !== null) { - this.setState({ - statusMessage: null - }); - } - }, - handleInputChange: function handleInputChange() { - // Noop, later assigned as debounced method in componentWillMount - }, - handleSubmit: function handleSubmit(e) { - e.preventDefault(); - var content = ReactDOM.findDOMNode(this.refs.content).value.trim(); - if (!content) return; - ReactDOM.findDOMNode(this.refs.content).value = ''; - this.sendMessage(content); - return; - }, - componentWillMount: function componentWillMount() { - this.handleInputChange = _.debounce(this.checkInputLength, { - leading: false, - trailing: true - }); - }, - render: function render() { - var statusMessage = undefined; - if (this.state.statusMessage !== null) { - statusMessage = React.createElement( - "div", - { className: "input-group" }, - React.createElement( - "small", - null, - this.state.statusMessage - ) - ); - } - return React.createElement( - "form", - { onSubmit: this.handleSubmit, autoComplete: "off" }, - React.createElement( - "div", - { className: "input-group" }, - React.createElement("input", { - id: "btn-input", - type: "text", - className: "form-control", - ref: "content", - onChange: this.handleInputChange, - autoComplete: "off", - placeholder: "Be polite please..." }), - React.createElement( - "span", - { className: "input-group-btn" }, - React.createElement("input", { - type: "submit", - className: "btn btn-primary", - id: "btn-chat", - value: "Send" }) - ) - ), - statusMessage - ); - } -}); -}); - -require.register("javascripts/components/settings", function(exports, require, module) { -"use strict"; - -var React = require("react"); - -var SettingsPanel = exports.SettingsPanel = React.createClass({ - displayName: "SettingsPanel", - - propTypes: { - toggleUpdateTitle: React.PropTypes.func.isRequired, - updateTitle: React.PropTypes.bool.isRequired, - toggleEventsPanel: React.PropTypes.func.isRequired, - showEventsPanel: React.PropTypes.bool.isRequired - }, - - render: function render() { - return React.createElement( - "div", - { className: "modal fade", id: "settingsmodal" }, - React.createElement( - "div", - { className: "modal-dialog" }, - React.createElement( - "div", - { className: "modal-content" }, - React.createElement( - "div", - { className: "modal-header" }, - React.createElement( - "button", - { type: "button", className: "close", "data-dismiss": "modal", - "aria-label": "Close" }, - React.createElement( - "span", - { "aria-hidden": "true" }, - "×" - ) - ), - React.createElement( - "h4", - { className: "modal-title" }, - "Settings" - ) - ), - React.createElement( - "div", - { className: "modal-body" }, - React.createElement( - "div", - { className: "checkbox" }, - React.createElement( - "label", - { className: "checkbox-inline" }, - React.createElement("input", { type: "checkbox", - onChange: this.props.toggleUpdateTitle, - checked: this.props.updateTitle }), - " Update Gather Status in Title (Cabooble Mode) - May require refresh" - ) - ) - ), - React.createElement( - "div", - { className: "modal-body" }, - React.createElement( - "div", - { className: "checkbox" }, - React.createElement( - "label", - { className: "checkbox-inline" }, - React.createElement("input", { type: "checkbox", - onChange: this.props.toggleEventsPanel, - checked: this.props.showEventsPanel }), - " Show events panel" - ) - ) - ), - React.createElement( - "div", - { className: "modal-footer" }, - React.createElement( - "button", - { type: "button", className: "btn btn-default", - "data-dismiss": "modal" }, - "Close" - ) - ) - ) - ) - ); - } -}); -}); - -require.register("javascripts/components/snowMachine", function(exports, require, module) { -"use strict"; - -var React = require("react"); - -var SnowMachineMenu = React.createClass({ - displayName: "SnowMachineMenu", - getInitialState: function getInitialState() { - return { - snowMachine: null - }; - }, - componentDidMount: function componentDidMount() { - var snowMachine = new SnowMachine(); - snowMachine.start(); - this.setState({ snowMachine: snowMachine }); - }, - toggle: function toggle() { - var snowMachine = this.state.snowMachine; - if (snowMachine.timer) { - snowMachine.stop(); - } else { - snowMachine.start(); - } - }, - render: function render() { - return React.createElement( - "ul", - { className: "nav navbar-top-links navbar-right" }, - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", onClick: this.toggle }, - "Snow" - ) - ) - ); - } -}); -}); - -require.register("javascripts/components/sound", function(exports, require, module) { -"use strict"; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var $ = require("jquery"); -var React = require("react"); -var Howl = require("howler").Howl; -var Howler = require("howler").Howler; -var helper = require("javascripts/helper"); -var storageAvailable = helper.storageAvailable; - -var SoundController = function () { - function SoundController() { - var _this = this; - - _classCallCheck(this, SoundController); - - if (Howl === undefined) { - throw new Error("Howl.js required to created sound controller"); - } - - this.MINIMUM_PLAY_INTERVAL = 20000; - - this.playGatherMusic = _.throttle(function () { - _this.gather.music.play(); - }, this.MINIMUM_PLAY_INTERVAL); - - this.isMuted = Howler._muted; - - var gatherMusic = undefined; - if (storageAvailable("localStorage")) { - var volume = localStorage.getItem("gatherVolume"); - if (volume !== undefined) Howler.volume(volume); - gatherMusic = localStorage.getItem("gatherMusic"); - } - - this.tunes = { - "classic": { - description: "Gathers Classic", - url: 'http://www.ensl.org/files/audio/gather-1.mp3' - }, - "nights": { - description: "Nights", - url: 'http://www.ensl.org/files/audio/nights.mp3' - }, - "robby": { - description: "Robby", - url: 'http://www.ensl.org/files/audio/robby.mp3' - }, - "america": { - description: "Infamous", - url: 'http://www.ensl.org/files/audio/america.mp3' - }, - "prommah": { - description: "Prommah", - url: 'http://www.ensl.org/files/audio/prommah.mp3' - }, - "turts": { - description: "Gorges Rock your Ass", - url: 'http://www.ensl.org/files/audio/turts.mp3' - }, - "skyice": { - description: "Skyice", - url: 'http://www.ensl.org/files/audio/skyice.mp3' - }, - "justwannahavefun": { - description: "Gorges just want to have fun", - url: 'http://www.ensl.org/files/audio/justwannahavefun.mp3' - }, - "eyeofthegorgie": { - description: "Eye of the Gorgie", - url: 'http://www.ensl.org/files/audio/eyeofthegorgie.mp3' - }, - "boondock": { - description: "Boondock Marines", - url: 'http://www.ensl.org/files/audio/boondock.mp3' - }, - "preclassic": { - description: "Old Gathers Classic", - url: 'http://www.ensl.org/files/audio/gather-5.mp3' - } - }; - - this.setupGatherMusic(gatherMusic); - } - - _createClass(SoundController, [{ - key: "mute", - value: function mute() { - this.isMuted = true; - return Howler.mute(); - } - }, { - key: "unMute", - value: function unMute() { - this.isMuted = false; - return Howler.unmute(); - } - }, { - key: "getVolume", - value: function getVolume() { - return Howler.volume(); - } - }, { - key: "setVolume", - value: function setVolume(val) { - if (val === undefined || typeof val !== 'number' || Math.abs(val) > 1) return; - if (storageAvailable("localStorage")) { - localStorage.setItem("gatherVolume", val); - } - return Howler.volume(val); - } - }, { - key: "play", - value: function play(music) { - if (this.gather && this.gather.music) return this.gather.music.play(); - } - }, { - key: "stop", - value: function stop(music) { - if (this.gather && this.gather.music) return this.gather.music.stop(); - } - }, { - key: "defaultGatherMusic", - value: function defaultGatherMusic() { - return "classic"; - } - }, { - key: "setupGatherMusic", - value: function setupGatherMusic(musicName) { - var self = this; - var gatherMusic = self.tunes[musicName]; - - if (!gatherMusic) { - musicName = this.defaultGatherMusic(); - gatherMusic = self.tunes[musicName]; - } - - if (self.gather && self.gather.name === musicName) return; - - // Stop if already playing - if (self.gather && self.gather.music) { - self.gather.music.stop(); - } - - var tune = self.tunes[musicName]; - self.gather = { - name: musicName, - description: tune.description, - url: tune.url, - music: new Howl({ - urls: [tune.url] - }) - }; - } - }]); - - return SoundController; -}(); - -var MusicSelector = React.createClass({ - displayName: "MusicSelector", - getInitialState: function getInitialState() { - return { - music: this.selectedMusic() - }; - }, - selectedMusic: function selectedMusic() { - if (storageAvailable("localStorage")) { - return localStorage.getItem("gatherMusic") || this.props.soundController.defaultGatherMusic(); - } else { - return this.props.soundController.defaultGatherMusic(); - } - }, - setMusic: function setMusic(event) { - var name = event.target.value; - var soundController = this.props.soundController; - var selectedTune = soundController.tunes[name]; - if (selectedTune === undefined) return; - this.setState({ music: name }); - soundController.setupGatherMusic(name); - if (storageAvailable("localStorage")) { - localStorage.setItem("gatherMusic", name); - } - }, - render: function render() { - var soundController = this.props.soundController; - var tunes = []; - for (var attr in soundController.tunes) { - var o = soundController.tunes[attr]; - o.id = attr; - tunes.push(o); - } - var options = tunes.map(function (tune) { - return React.createElement( - "option", - { key: tune.id, value: tune.id }, - tune.description - ); - }); - return React.createElement( - "div", - { className: "form-group music-select" }, - React.createElement( - "label", - null, - "Music" - ), - React.createElement( - "select", - { - className: "form-control", - defaultValue: this.state.music, - onChange: this.setMusic, - value: this.state.music }, - options - ) - ); - } -}); - -var SoundPanel = React.createClass({ - displayName: "SoundPanel", - componentDidMount: function componentDidMount() { - var soundController = this.props.soundController; - var scale = 10; - - $('a#sound-dropdown').on('click', function (event) { - $(this).parent().toggleClass('open'); - }); - - $("#volume-slide").slider({ - min: 0, - max: scale, - step: 1 - }).on("slideStop", function (_ref) { - var value = _ref.value; - - soundController.setVolume(value / scale); - }).slider('setValue', soundController.getVolume() * scale); - }, - mute: function mute() { - this.props.soundController.mute(); - this.forceUpdate(); - }, - unMute: function unMute() { - this.props.soundController.unMute(); - this.forceUpdate(); - }, - play: function play() { - this.props.soundController.play(); - }, - stop: function stop() { - this.props.soundController.stop(); - }, - render: function render() { - var soundController = this.props.soundController; - var mutedIcon = undefined, - mutedButton = undefined; - if (soundController.isMuted) { - mutedIcon = React.createElement("i", { className: "fa fa-volume-off fa-fw" }); - mutedButton = React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", onClick: this.unMute }, - mutedIcon, - " Muted" - ) - ); - } else { - mutedIcon = React.createElement("i", { className: "fa fa-volume-up fa-fw" }); - mutedButton = React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", onClick: this.mute }, - mutedIcon, - " Unmuted" - ) - ); - } - return React.createElement( - "ul", - { className: "nav navbar-top-links navbar-right" }, - React.createElement( - "li", - { className: "dropdown" }, - React.createElement( - "a", - { className: "dropdown-toggle", href: "#", id: "sound-dropdown" }, - "Sound  ", - mutedIcon, - " ", - React.createElement("i", { className: "fa fa-caret-down" }) - ), - React.createElement( - "ul", - { className: "dropdown-menu", id: "sound-dropdown" }, - mutedButton, - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", onClick: this.play }, - React.createElement("i", { className: "fa fa-play" }), - " Play" - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", onClick: this.stop }, - React.createElement("i", { className: "fa fa-stop" }), - " Stop" - ) - ), - React.createElement("hr", null), - React.createElement( - "li", - null, - React.createElement( - "div", - { className: "volume-slide" }, - React.createElement( - "label", - null, - "Volume" - ), - React.createElement("div", { id: "volume-slide" }) - ) - ), - React.createElement( - "li", - null, - React.createElement(MusicSelector, { soundController: soundController }) - ) - ) - ) - ); - } -}); - -module.exports = { - SoundController: SoundController, - SoundPanel: SoundPanel -}; -}); - -require.register("javascripts/components/teamspeak", function(exports, require, module) { -"use strict"; - -var React = require("react"); - -var teamspeakDefaults = { - url: "ts3server://ensl.org/", - password: "ns2gather", - alien: { - channel: "NS2 Gather/Gather #1/Alien", - password: "ns2gather" - }, - marine: { - channel: "NS2 Gather/Gather #1/Marine", - password: "ns2gather" - } -}; - -var TeamSpeakButton = exports.TeamSpeakButton = React.createClass({ - displayName: "TeamSpeakButton", - getDefaultProps: function getDefaultProps() { - return teamspeakDefaults; - }, - marineUrl: function marineUrl() { - return this.teamSpeakUrl(this.props.marine); - }, - alienUrl: function alienUrl() { - return this.teamSpeakUrl(this.props.alien); - }, - teamSpeakUrl: function teamSpeakUrl(conn) { - var params = "channel=" + encodeURIComponent(conn.channel) + "&\n\t\t\tchannelpassword=" + encodeURIComponent(conn.password); - return this.props.url + "?" + params; - }, - render: function render() { - return React.createElement( - "ul", - { className: "nav navbar-top-links navbar-right" }, - React.createElement( - "li", - { className: "dropdown" }, - React.createElement( - "a", - { className: "dropdown-toggle", "data-toggle": "dropdown", href: "#" }, - "Teamspeak  ", - React.createElement("i", { className: "fa fa-caret-down" }) - ), - React.createElement( - "ul", - { className: "dropdown-menu" }, - React.createElement( - "li", - null, - React.createElement( - "a", - { href: this.props.url }, - "Join Teamspeak Lobby" - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: this.marineUrl() }, - "Join Marine Teamspeak" - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: this.alienUrl() }, - "Join Alien Teamspeak" - ) - ), - React.createElement("li", { role: "separator", className: "divider" }), - React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", "data-toggle": "modal", "data-target": "#teamspeakmodal" }, - "Teamspeak Details" - ) - ) - ) - ) - ); - } -}); - -var TeamSpeakModal = exports.TeamSpeakModal = React.createClass({ - displayName: "TeamSpeakModal", - getDefaultProps: function getDefaultProps() { - return teamspeakDefaults; - }, - render: function render() { - return React.createElement( - "div", - { className: "modal fade text-left", id: "teamspeakmodal" }, - React.createElement( - "div", - { className: "modal-dialog" }, - React.createElement( - "div", - { className: "modal-content" }, - React.createElement( - "div", - { className: "modal-header" }, - React.createElement( - "button", - { type: "button", - className: "close", - "data-dismiss": "modal", - "aria-label": "Close" }, - React.createElement( - "span", - { "aria-hidden": "true" }, - "×" - ) - ), - React.createElement( - "h4", - { className: "modal-title" }, - "Teamspeak Server Information" - ) - ), - React.createElement( - "div", - { className: "modal-body" }, - React.createElement( - "dl", - { className: "dl-horizontal" }, - React.createElement( - "dt", - null, - "Server" - ), - React.createElement( - "dd", - null, - this.props.url - ), - React.createElement( - "dt", - null, - "Password" - ), - React.createElement( - "dd", - null, - this.props.password - ), - React.createElement( - "dt", - null, - "Marine Channel" - ), - React.createElement( - "dd", - null, - this.props.marine.channel - ), - React.createElement( - "dt", - null, - "Alien Channel" - ), - React.createElement( - "dd", - null, - this.props.alien.channel - ) - ) - ) - ) - ) - ); - } -}); -}); - -require.register("javascripts/components/user", function(exports, require, module) { -"use strict"; - -var _gather = require("javascripts/components/gather"); - -var React = require("react"); -var helper = require("javascripts/helper"); -var enslUrl = helper.enslUrl; -var hiveUrl = helper.hiveUrl; -var modalId = helper.modalId; - -var UserLogin = React.createClass({ - displayName: "UserLogin", - - propTypes: { - socket: React.PropTypes.object.isRequired - }, - - authorizeId: function authorizeId(id) { - this.props.socket.emit("users:authorize", { - id: parseInt(id, 10) - }); - }, - handleSubmit: function handleSubmit(e) { - e.preventDefault(); - var id = React.findDOMNode(this.refs.authorize_id).value.trim(); - if (!id) return; - React.findDOMNode(this.refs.authorize_id).value = ''; - this.authorizeId(id); - }, - render: function render() { - return React.createElement( - "form", - { onSubmit: this.handleSubmit }, - React.createElement( - "div", - { className: "input-group signin" }, - React.createElement("input", { - id: "btn-input", - type: "text", - className: "form-control", - ref: "authorize_id", - placeholder: "Change user" }), - React.createElement( - "span", - { className: "input-group-btn" }, - React.createElement("input", { - type: "submit", - className: "btn btn-primary", - id: "btn-chat", - value: "Assume ID" }) - ) - ) - ); - } -}); - -var DisconnectUserButton = React.createClass({ - displayName: "DisconnectUserButton", - - propTypes: { - socket: React.PropTypes.object.isRequired, - id: React.PropTypes.number.isRequired - }, - - getDefaultProps: function getDefaultProps() { - return { - id: null - }; - }, - disconnectUser: function disconnectUser() { - this.props.socket.emit("users:disconnect", { - id: this.props.id - }); - }, - render: function render() { - return React.createElement( - "button", - { - className: "btn btn-danger", - onClick: this.disconnectUser }, - "Disconnect User" - ); - } -}); - -var UserModal = React.createClass({ - displayName: "UserModal", - - propTypes: { - user: React.PropTypes.object.isRequired, - socket: React.PropTypes.object.isRequired, - currentUser: React.PropTypes.object.isRequired - }, - - render: function render() { - var currentUser = this.props.currentUser; - var user = this.props.user; - var hiveStats = undefined; - if (user.hive.id) { - hiveStats = [React.createElement( - "tr", - { key: "stats" }, - React.createElement( - "td", - null, - React.createElement( - "strong", - null, - "Hive Stats" - ) - ), - React.createElement("td", null) - ), React.createElement( - "tr", - { key: "elo" }, - React.createElement( - "td", - null, - "ELO" - ), - React.createElement( - "td", - null, - user.hive.skill - ) - ), React.createElement( - "tr", - { key: "hours" }, - React.createElement( - "td", - null, - "Hours Played" - ), - React.createElement( - "td", - null, - Math.round(user.hive.playTime / 3600) - ) - ), React.createElement( - "tr", - { key: "wins" }, - React.createElement( - "td", - null, - "Wins" - ), - React.createElement( - "td", - null, - user.hive.wins - ) - ), React.createElement( - "tr", - { key: "losses" }, - React.createElement( - "td", - null, - "Losses" - ), - React.createElement( - "td", - null, - user.hive.loses - ) - ), React.createElement( - "tr", - { key: "kills" }, - React.createElement( - "td", - null, - "Kills (/min)" - ), - React.createElement( - "td", - null, - user.hive.kills, - " (", - _.round(user.hive.kills / (user.hive.playTime / 60), 1), - ")" - ) - ), React.createElement( - "tr", - { key: "assists" }, - React.createElement( - "td", - null, - "Assists (/min)" - ), - React.createElement( - "td", - null, - user.hive.assists, - " (", - _.round(user.hive.assists / (user.hive.playTime / 60), 1), - ")" - ) - ), React.createElement( - "tr", - { key: "deaths" }, - React.createElement( - "td", - null, - "Deaths (/min)" - ), - React.createElement( - "td", - null, - user.hive.deaths, - " (", - _.round(user.hive.deaths / (user.hive.playTime / 60), 1), - ")" - ) - )]; - } - var adminOptions = undefined; - if (currentUser.admin) { - adminOptions = React.createElement(DisconnectUserButton, { id: user.id, socket: this.props.socket }); - } - return React.createElement( - "div", - { className: "modal fade", id: modalId(user) }, - React.createElement( - "div", - { className: "modal-dialog" }, - React.createElement( - "div", - { className: "modal-content" }, - React.createElement( - "div", - { className: "modal-header" }, - React.createElement( - "button", - { type: "button", className: "close", "data-dismiss": "modal", - "aria-label": "Close" }, - React.createElement( - "span", - { "aria-hidden": "true" }, - "×" - ) - ), - React.createElement( - "h4", - { className: "modal-title" }, - React.createElement("img", { src: "blank.gif", - className: "flag flag-" + (user.country === null ? "eu" : user.country.toLowerCase()), - alt: user.country }), - " ", - user.username - ) - ), - React.createElement( - "div", - { className: "modal-body" }, - React.createElement( - "div", - { className: "text-center" }, - React.createElement("img", { - src: user.avatar, - alt: "User Avatar" }) - ), - React.createElement( - "table", - { className: "table" }, - React.createElement( - "tbody", - null, - React.createElement( - "tr", - null, - React.createElement( - "td", - null, - "Lifeforms" - ), - React.createElement( - "td", - null, - React.createElement(_gather.LifeformIcons, { gatherer: { user: user } }) - ) - ), - React.createElement( - "tr", - null, - React.createElement( - "td", - null, - "Links" - ), - React.createElement( - "td", - null, - React.createElement( - "a", - { href: enslUrl(user), - className: "btn btn-xs btn-primary", - target: "_blank" }, - "ENSL Profile" - ), - " ", - React.createElement( - "a", - { href: hiveUrl({ user: user }), - className: "btn btn-xs btn-primary", - target: "_blank" }, - "Hive Profile" - ) - ) - ), - hiveStats - ) - ) - ), - React.createElement( - "div", - { className: "modal-footer" }, - adminOptions, - React.createElement( - "button", - { type: "button", - className: "btn btn-default", - "data-dismiss": "modal" }, - "Close" - ) - ) - ) - ) - ); - } -}); - -var UserItem = React.createClass({ - displayName: "UserItem", - - propTypes: { - user: React.PropTypes.object.isRequired, - socket: React.PropTypes.object.isRequired, - currentUser: React.PropTypes.object.isRequired - }, - - render: function render() { - var user = this.props.user; - var currentUser = this.props.currentUser; - return React.createElement( - "li", - { className: "list-group-item" }, - React.createElement( - "a", - { href: "#", "data-toggle": "modal", - "data-target": "#" + modalId(user) }, - user.username - ), - React.createElement(UserModal, { user: user, currentUser: currentUser, - socket: this.props.socket }) - ); - } -}); - -var UserMenu = exports.UserMenu = React.createClass({ - displayName: "UserMenu", - - propTypes: { - socket: React.PropTypes.object.isRequired, - users: React.PropTypes.array.isRequired - }, - - render: function render() { - var _this = this; - - var users = this.props.users.sort(function (a, b) { - return a.username.toLowerCase() > b.username.toLowerCase() ? 1 : -1; - }).map(function (user) { - return React.createElement(UserItem, { user: user, key: user.id, - currentUser: _this.props.user, socket: _this.props.socket }); - }); - return React.createElement( - "div", - null, - React.createElement( - "div", - { className: "panel panel-primary add-bottom" }, - React.createElement( - "div", - { className: "panel-heading" }, - React.createElement("i", { className: "fa fa-users fa-fw" }), - " Online", - React.createElement( - "span", - { className: "badge pull-right" }, - this.props.users.length - ) - ), - React.createElement( - "ul", - { className: "list-group", id: "users-list" }, - users - ) - ) - ); - } -}); - -var AdminPanel = exports.AdminPanel = React.createClass({ - displayName: "AdminPanel", - - propTypes: { - socket: React.PropTypes.object.isRequired - }, - - handleGatherReset: function handleGatherReset() { - this.props.socket.emit("gather:reset"); - }, - render: function render() { - return React.createElement( - "div", - { className: "modal fade", id: "adminmodal" }, - React.createElement( - "div", - { className: "modal-dialog" }, - React.createElement( - "div", - { className: "modal-content" }, - React.createElement( - "div", - { className: "modal-header" }, - React.createElement( - "button", - { type: "button", className: "close", "data-dismiss": "modal", - "aria-label": "Close" }, - React.createElement( - "span", - { "aria-hidden": "true" }, - "×" - ) - ), - React.createElement( - "h4", - { className: "modal-title" }, - "Administration Panel" - ) - ), - React.createElement( - "div", - { className: "modal-body", id: "admin-menu" }, - React.createElement( - "h5", - null, - "Swap Into a Different Account (Only works for admins)" - ), - React.createElement(UserLogin, { socket: this.props.socket }), - React.createElement( - "h5", - null, - "Gather Options" - ), - React.createElement( - "div", - null, - React.createElement( - "button", - { - className: "btn btn-danger max-width", - onClick: this.handleGatherReset }, - "Reset Gather" - ) - ) - ), - React.createElement( - "div", - { className: "modal-footer" }, - React.createElement( - "button", - { type: "button", className: "btn btn-default", - "data-dismiss": "modal" }, - "Close" - ) - ) - ) - ) - ); - } -}); - -var ProfileModal = exports.ProfileModal = React.createClass({ - displayName: "ProfileModal", - - propTypes: { - user: React.PropTypes.object.isRequired - }, - - handleUserUpdate: function handleUserUpdate(e) { - e.preventDefault(); - var abilities = { - skulk: React.findDOMNode(this.refs.skulk).checked, - lerk: React.findDOMNode(this.refs.lerk).checked, - gorge: React.findDOMNode(this.refs.gorge).checked, - fade: React.findDOMNode(this.refs.fade).checked, - onos: React.findDOMNode(this.refs.onos).checked, - commander: React.findDOMNode(this.refs.commander).checked - }; - var skill = React.findDOMNode(this.refs.playerskill).value; - socket.emit("users:update:profile", { - id: this.props.user.id, - profile: { - abilities: abilities, - skill: skill - } - }); - }, - render: function render() { - if (!this.props.user) return false; - var abilities = this.props.user.profile.abilities; - var abilitiesForm = []; - for (var lifeform in abilities) { - abilitiesForm.push(React.createElement( - "div", - { key: lifeform, className: "checkbox" }, - React.createElement( - "label", - { className: "checkbox-inline" }, - React.createElement("input", { type: "checkbox", - ref: lifeform, - defaultChecked: abilities[lifeform] }), - " ", - _.capitalize(lifeform) - ) - )); - } - - var skillLevel = this.props.user.profile.skill; - var skillLevels = _.uniq(["Low Skill", "Medium Skill", "High Skill", skillLevel]).filter(function (skill) { - return typeof skill === 'string'; - }).map(function (skill) { - return React.createElement( - "option", - { key: skill }, - skill - ); - }); - - return React.createElement( - "div", - { className: "modal fade", id: "profilemodal" }, - React.createElement( - "div", - { className: "modal-dialog" }, - React.createElement( - "div", - { className: "modal-content" }, - React.createElement( - "div", - { className: "modal-header" }, - React.createElement( - "button", - { type: "button", className: "close", "data-dismiss": "modal", - "aria-label": "Close" }, - React.createElement( - "span", - { "aria-hidden": "true" }, - "×" - ) - ), - React.createElement( - "h4", - { className: "modal-title" }, - "Profile" - ) - ), - React.createElement( - "div", - { className: "modal-body", id: "profile-panel" }, - React.createElement( - "form", - null, - React.createElement( - "div", - { className: "form-group" }, - React.createElement( - "label", - null, - "Player Skill" - ), - React.createElement("br", null), - React.createElement( - "select", - { - defaultValue: skillLevel, - className: "form-control", - ref: "playerskill" }, - skillLevels - ), - React.createElement( - "p", - { className: "add-top" }, - React.createElement( - "small", - null, - "Try to give an accurate representation of your skill to raise the quality of your gathers" - ) - ) - ), - React.createElement("hr", null), - React.createElement( - "div", - { className: "form-group" }, - React.createElement( - "label", - null, - "Preferred Lifeforms" - ), - React.createElement("br", null), - abilitiesForm, - React.createElement( - "p", - null, - React.createElement( - "small", - null, - "Specify which lifeforms you'd like to play in the gather" - ) - ) - ), - React.createElement("hr", null), - React.createElement( - "p", - { className: "small" }, - "You will need to rejoin the gather to see your updated profile" - ), - React.createElement( - "div", - { className: "form-group" }, - React.createElement( - "button", - { - type: "submit", - className: "btn btn-primary", - "data-dismiss": "modal", - onClick: this.handleUserUpdate }, - "Update & Close" - ) - ) - ) - ) - ) - ) - ); - } -}); - -var CurrentUser = exports.CurrentUser = React.createClass({ - displayName: "CurrentUser", - render: function render() { - if (this.props.user) { - var adminOptions = undefined; - if (this.props.user.admin || this.props.user.moderator) { - adminOptions = React.createElement( - "li", - null, - React.createElement( - "a", - { href: "#", "data-toggle": "modal", "data-target": "#adminmodal" }, - React.createElement("i", { className: "fa fa-magic fa-fw" }), - " Administration" - ) - ); - } - return React.createElement( - "li", - { className: "dropdown" }, - React.createElement( - "a", - { className: "dropdown-toggle", "data-toggle": "dropdown", href: "#" }, - this.props.user.username, - "  ", - React.createElement("img", { src: this.props.user.avatar, - alt: "User Avatar", - height: "20", - width: "20" }), - " ", - React.createElement("i", { className: "fa fa-caret-down" }) - ), - React.createElement( - "ul", - { className: "dropdown-menu dropdown-user" }, - React.createElement( - "li", - null, - React.createElement( - "a", - { "data-toggle": "modal", - "data-target": "#profilemodal", - href: "#" }, - React.createElement("i", { className: "fa fa-user fa-fw" }), - " Profile" - ) - ), - React.createElement( - "li", - null, - React.createElement( - "a", - { "data-toggle": "modal", - "data-target": "#settingsmodal", - href: "#" }, - React.createElement("i", { className: "fa fa-gear fa-fw" }), - " Settings" - ) - ), - adminOptions - ) - ); - } else { - return false; - } - } -}); - -var AssumeUserIdButton = exports.AssumeUserIdButton = React.createClass({ - displayName: "AssumeUserIdButton", - - propTypes: { - socket: React.PropTypes.object.isRequired, - gatherer: React.PropTypes.object.isRequired, - currentUser: React.PropTypes.object.isRequired - }, - - assumeId: function assumeId(e) { - var _this2 = this; - - e.preventDefault(); - if (this.props.gatherer) { - this.props.socket.emit("users:authorize", { - id: this.props.gatherer.id - }); - // Refresh Gather list - setTimeout(function () { - _this2.props.socket.emit("gather:refresh"); - }, 5000); - } - }, - render: function render() { - var currentUser = this.props.currentUser; - var gatherer = this.props.gatherer; - if (currentUser && gatherer) { - return React.createElement( - "button", - { - className: "btn btn-xs btn-danger", - onClick: this.assumeId }, - "Assume User ID" - ); - } - } -}); -}); - -require.register("javascripts/helper", function(exports, require, module) { -'use strict'; - -// Accepts an array of IDs voted -// 1. Creates an array of tally objects, -// with ID as prop and vote count as val { 12: 0 } -// 2. Increments ID vote tally for every vote -// 3. Sorts - -var rankVotes = exports.rankVotes = function (votes, candidates) { - var initial = candidates.reduce(function (acc, candidate) { - acc[candidate.id] = 0; - return acc; - }, {}); - - var scores = votes.reduce(function (acc, id) { - if (acc[id] !== undefined) { - acc[id]++; - } - return acc; - }, initial); - - var rank = []; - - for (var id in scores) { - if (scores.hasOwnProperty(id)) { - rank.push({ - id: parseInt(id, 10), - count: scores[id] - }); - } - } - - return rank.sort(function (a, b) { - if (b.count === a.count) { - return b.id - a.id; - } else { - return b.count - a.count; - } - }).map(function (tally) { - return tally.id; - }).map(function (id) { - return candidates.reduce(function (acc, candidate) { - if (candidate.id === id) return candidate; - return acc; - }); - }); -}; - -var enslUrl = exports.enslUrl = function (gatherer) { - return 'http://www.ensl.org/users/' + gatherer.id; -}; - -var hiveUrl = exports.hiveUrl = function (gatherer) { - var hiveId = gatherer.user.hive.id; - if (hiveId) { - return 'http://hive.naturalselection2.com/profile/' + hiveId; - } else { - return null; - } -}; - -var modalId = exports.modalId = function (user) { - return 'user-modal-' + user.id; -}; - -var storageAvailable = exports.storageAvailable = function (type) { - try { - var storage = window[type], - x = '__storage_test__'; - storage.setItem(x, x); - storage.removeItem(x); - return true; - } catch (e) { - return false; - } -}; -}); - - -//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/public/app.js.map b/public/app.js.map deleted file mode 100644 index d818a3c..0000000 --- a/public/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["app.js","event.js","gather.js","main.js","message.js","settings.js","snowMachine.js","sound.js","teamspeak.js","user.js","helper.js"],"names":[],"mappings":"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","file":"public/app.js","sourcesContent":["const React = require(\"react\");\nconst ReactDOM = require(\"react-dom\");\nconst App = require(\"javascripts/components/main\");\n\nmodule.exports = function (mount) { \n\tReactDOM.render(, mount);\n};\n","const React = require(\"react\");\nconst Events = exports.Events = React.createClass({\n\tpropTypes: {\n\t\tevents: React.PropTypes.array.isRequired\n\t},\n\n\tgetTime(timeString) {\n\t\treturn (new Date(timeString)).toTimeString().match(/^[\\d:]*/)[0];\n\t},\n\n\trender() {\n\t\tlet events;\n\t\tif (this.props.events.length) {\n\t\t\tevents = this.props.events.map(event => {\n\t\t\t\treturn `${this.getTime(event.createdAt)} ${event.description}`;\n\t\t\t}).join(\"\\n\");\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t{events}\n\t\t\t\t
    \n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\tListening for new events...\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\t}\n});\n","import {AssumeUserIdButton} from \"javascripts/components/user\";\n\nconst React = require(\"react\");\nconst helper = require(\"javascripts/helper\");\nconst enslUrl = helper.enslUrl;\nconst rankVotes = helper.rankeVotes;\nconst hiveUrl = helper.hiveUrl;\n\nconst SelectPlayerButton = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgatherer: React.PropTypes.object.isRequired\n\t},\n\n\tselectPlayer(e) {\n\t\te.preventDefault();\n\t\tthis.props.socket.emit(\"gather:select\", {\n\t\t\tplayer: parseInt(e.target.value, 10)\n\t\t});\n\t},\n\n\trender() {\n\t\tlet button;\n\t\tif (this.props.gatherer.leader) {\n\t\t\tbutton = ;\n\t\t} else if (this.props.gatherer.team !== \"lobby\") {\n\t\t\tbutton = \n\t\t\t\t\t{_.capitalize(this.props.gatherer.team)}\n\t\t\t\t;\n\t\t} else {\n\t\t\tbutton = Select\n\t\t\t\t;\n\t\t}\n\t\treturn button;\n\t}\n});\n\nconst GathererList = React.createClass({\n\tmemberList() {\n\t\tconst self = this;\n\t\treturn this.props.gather.gatherers\n\t\t\t.filter(gatherer => gatherer.team === self.props.team)\n\t\t\t.sort(gatherer => { return gatherer.leader ? 1 : -1 });\n\t},\n\n\trender() {\n\t\tconst extractGatherer = gatherer => {\n\t\t\tlet image;\n\t\t\tif (gatherer.leader) {\n\t\t\t\timage = ;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{image}{gatherer.user.username}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t};\n\t\tconst members = this.memberList()\n\t\t\t.map(extractGatherer);\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{members}\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst GatherTeams = React.createClass({\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tMarines\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tAliens\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst ElectionProgressBar = React.createClass({\n\tcomponentDidMount() {\n\t\tconst self = this;\n\t\tthis.timer = setInterval(() => {\n\t\t\tself.forceUpdate();\n\t\t}, 900);\n\t},\n\n\tprogress() {\n\t\tconst interval = this.props.gather.election.interval;\n\t\tconst startTime = (new Date(this.props.gather.election.startTime)).getTime();\n\t\tconst msTranspired = Math.floor((new Date()).getTime() - startTime);\n\n\t\treturn {\n\t\t\tnum: msTranspired,\n\t\t\tden: interval,\n\t\t\tbarMessage: Math.floor((interval - msTranspired) / 1000) + \"s remaining\"\n\t\t}\n\t},\n\n\tcomponentWillUnmount() {\n\t\tclearInterval(this.timer);\n\t},\n\n\trender() {\n\t\treturn ();\n\t}\n});\n\nconst ProgressBar = React.createClass({\n\trender() {\n\t\tconst progress = this.props.progress;\n\t\tconst style = {\n\t\t\twidth: Math.round((progress.num / progress.den * 100)) + \"%\"\n\t\t};\n\t\tconst barMessage = progress.barMessage || \"\";\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    {barMessage}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst GatherProgress = React.createClass({\n\tstateDescription() {\n\t\tswitch(this.props.gather.state) {\n\t\t\tcase \"gathering\":\n\t\t\t\treturn \"Waiting for more gatherers.\";\n\t\t\tcase \"election\":\n\t\t\t\treturn \"Currently voting for team leaders.\";\n\t\t\tcase \"selection\":\n\t\t\t\treturn \"Waiting for leaders to pick teams.\";\n\t\t\tcase \"done\":\n\t\t\t\treturn \"Gather completed.\";\n\t\t\tdefault:\n\t\t\t\treturn \"Initialising gather.\";\n\t\t}\n\t},\n\n\tgatheringProgress() {\n\t\tconst num = this.props.gather.gatherers.length;\n\t\tconst den = 12;\n\t\tconst remaining = den - num;\n\t\tconst message = (remaining === 1) ? \n\t\t\t\"Waiting for last player\" : `Waiting for ${remaining} more players`;\n\t\treturn {\n\t\t\tnum: num,\n\t\t\tden: den,\n\t\t\tmessage: message\n\t\t};\n\t},\n\n\telectionProgress() {\n\t\tconst num = this.props.gather.gatherers.reduce((acc, gatherer) => {\n\t\t\tif (gatherer.leaderVote) acc++;\n\t\t\treturn acc;\n\t\t}, 0);\n\t\tconst den = 12;\n\t\treturn {\n\t\t\tnum: num,\n\t\t\tden: den,\n\t\t\tmessage: den - num + \" more votes required\"\n\t\t};\n\t},\n\n\tselectionProgress() {\n\t\tconst num = this.props.gather.gatherers.reduce((acc, gatherer) => {\n\t\t\tif (gatherer.team !== \"lobby\") acc++;\n\t\t\treturn acc;\n\t\t}, 0);\n\t\tconst den = 12;\n\n\t\treturn {\n\t\t\tnum: num,\n\t\t\tden: den,\n\t\t\tmessage: `${num} out of ${den} players assigned. Waiting \n\t\t\t\ton ${_.capitalize(this.props.gather.pickingTurn)}s to pick next...`\n\t\t};\n\t},\n\n\trender() {\n\t\tlet progress, progressBar;\n\t\tconst gatherState = this.props.gather.state;\n\t\tif (gatherState === 'gathering' && this.props.gather.gatherers.length) {\n\t\t\tprogress = this.gatheringProgress();\n\t\t\tprogressBar = ();\n\t\t} else if (gatherState === 'election') {\n\t\t\tprogress = this.electionProgress();\n\t\t\tprogressBar = ();\n\t\t} else if (gatherState === 'selection') {\n\t\t\tprogress = this.selectionProgress();\n\t\t\tprogressBar = ();\n\t\t}\n\n\t\tif (!progress) return false;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    {this.stateDescription()} {progress.message}

    \n\t\t\t\t{progressBar}\n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst JoinGatherButton = React.createClass({\n\tpropTypes: {\n\t\tthisGatherer: React.PropTypes.object,\n\t\tuser: React.PropTypes.object.isRequired,\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgather: React.PropTypes.object.isRequired\n\t},\n\n\tcomponentDidMount() {\n\t\tconst self = this;\n\t\tthis.timer = setInterval(() => {\n\t\t\tself.forceUpdate();\n\t\t}, 30000);\n\t},\n\n\tcomponentWillUnmount() {\n\t\tclearInterval(this.timer);\n\t},\n\n\tjoinGather(e) {\n\t\te.preventDefault();\n\t\tthis.props.socket.emit(\"gather:join\");\n\t},\n\n\tleaveGather(e) {\n\t\te.preventDefault();\n\t\tthis.props.socket.emit(\"gather:leave\");\n\t},\n\n\tcooldownTime() {\n\t\tlet user = this.props.user;\n\t\tif (!user) return false;\n\t\tlet cooloffTime = this.props.gather.cooldown[user.id];\n\t\tif (!cooloffTime) return false;\n\t\tlet timeRemaining = new Date(cooloffTime) - new Date();\n\t\treturn timeRemaining > 0 ? timeRemaining : false;\n\t},\n\n\trender() {\n\t\tlet gather = this.props.gather;\n\t\tlet thisGatherer = this.props.thisGatherer;\n\t\tif (thisGatherer) {\n\t\t\treturn ;\n\t\t} \n\t\tif (gather.state === 'gathering') {\n\t\t\tlet cooldownTime = this.cooldownTime();\n\t\t\tif (cooldownTime) {\n\t\t\t\treturn ;\n\t\t\t} else {\n\t\t\t\treturn ;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n});\n\nconst CooloffButton = React.createClass({\n\tpropTypes: {\n\t\ttimeRemaining: React.PropTypes.number.isRequired\n\t},\n\n\ttimeRemaining() {\n\t\treturn `${Math.floor(this.props.timeRemaining / 60000) + 1} minutes remaining`;\n\t},\n\n\trender() {\n\t\treturn \n\t}\n})\n\nconst GatherActions = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgather: React.PropTypes.object.isRequired,\n\t\tthisGatherer: React.PropTypes.object\n\t},\n\n\tvoteRegather(e) {\n\t\te.preventDefault(e);\n\t\tthis.props.socket.emit(\"gather:vote\", {\n\t\t\tregather: (e.target.value === \"true\")\n\t\t});\n\t},\n\n\tregatherVotes() {\n\t\tlet gather = this.props.gather;\n\t\tif (!gather) return 0;\n\t\treturn gather.gatherers.reduce((acc, gatherer) => {\n\t\t\tif (gatherer.regatherVote) acc++;\n\t\t\treturn acc;\n\t\t}, 0);\n\t},\n\n\trender() {\n\t\tlet regatherButton;\n\t\tconst user = this.props.user;\n\t\tconst gather = this.props.gather;\n\t\tconst socket = this.props.socket;\n\t\tconst thisGatherer = this.props.thisGatherer;\n\t\tif (thisGatherer) {\n\t\t\tlet regatherVotes = this.regatherVotes();\n\t\t\tif (thisGatherer.regatherVote) {\n\t\t\t\tregatherButton = ;\n\t\t\t} else {\n\t\t\t\tregatherButton = ;\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t{regatherButton}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst VoteButton = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tcandidate: React.PropTypes.object.isRequired,\n\t\tthisGatherer: React.PropTypes.object\n\t},\n\n\tcancelVote(e) {\n\t\tthis.props.socket.emit(\"gather:vote\", {\n\t\t\tleader: {\n\t\t\t\tcandidate: null\n\t\t\t}\n\t\t});\n\t},\n\n\tvote(e) {\n\t\te.preventDefault();\n\t\tthis.props.socket.emit(\"gather:vote\", {\n\t\t\tleader: {\n\t\t\t\tcandidate: parseInt(e.target.value, 10)\n\t\t\t}\n\t\t});\n\t},\n\n\tstopGatherMusic() {\n\t\tsoundController.stop();\n\t},\n\n\trender() {\n\t\tlet candidate = this.props.candidate;\n\t\tlet thisGatherer = this.props.thisGatherer;\n\t\tif (thisGatherer === null) {\n\t\t\treturn false;\n\t\t}\n\t\tif (thisGatherer.leaderVote === candidate.id) {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t}\n});\n\nconst ServerVoting = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgather: React.PropTypes.object.isRequired,\n\t\tthisGatherer: React.PropTypes.object,\n\t\tservers: React.PropTypes.array.isRequired,\n\t},\n\n\tvoteHandler(serverId) {\n\t\treturn e => {\n\t\t\te.preventDefault();\n\t\t\tthis.props.socket.emit(\"gather:vote\", {\n\t\t\t\tserver: {\n\t\t\t\t\tid: serverId\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\n\tvotesForServer(server) {\n\t\treturn this.props.gather.gatherers.reduce((acc, gatherer) => {\n\t\t\tif (gatherer.serverVote.some(voteId => voteId === server.id)) acc++;\n\t\t\treturn acc;\n\t\t}, 0);\n\t},\n\n\trender() {\n\t\tlet self = this;\n\t\tlet thisGatherer = self.props.thisGatherer;\n\t\tlet servers = self.props.servers.sort((a, b) => {\n\t\t\t\tconst aVotes = self.votesForServer(a);\n\t\t\t\tconst bVotes = self.votesForServer(b);\n\t\t\t\treturn bVotes - aVotes;\n\t\t\t}).map(server => {\n\t\t\tlet votes = self.votesForServer(server);\n\t\t\tlet style = thisGatherer.serverVote.some(voteId => voteId === server.id) ? \n\t\t\t\t\"list-group-item list-group-item-success\" : \"list-group-item\";\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{votes}\n\t\t\t\t\t{server.name || server.description}\n\t\t\t\t\n\t\t\t);\n\t\t});\n\n\t\tlet votes = thisGatherer.serverVote.length;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{votes === 2 ? \"Server Votes\" : \n\t\t\t\t\t`Please Vote for a Server. ${2 - votes} votes remaining` }\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{servers}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n})\n\nconst MapVoting = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgather: React.PropTypes.object.isRequired,\n\t\tthisGatherer: React.PropTypes.object,\n\t\tmaps: React.PropTypes.array.isRequired,\n\t},\n\n\tvoteHandler(mapId) {\n\t\treturn e => {\n\t\t\te.preventDefault();\n\t\t\tthis.props.socket.emit(\"gather:vote\", {\n\t\t\t\tmap: {\n\t\t\t\t\tid: mapId\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\n\tvotesForMap(map) {\n\t\treturn this.props.gather.gatherers.reduce((acc, gatherer) => {\n\t\t\tif (gatherer.mapVote.some(voteId => voteId === map.id)) acc++;\n\t\t\treturn acc;\n\t\t}, 0);\n\t},\n\n\trender() {\n\t\tconst self = this;\n\t\tlet thisGatherer = self.props.thisGatherer\n\t\tlet maps = self.props.maps.sort((a, b) => {\n\t\t\t\t\tconst aVotes = self.votesForMap(a);\n\t\t\t\t\tconst bVotes = self.votesForMap(b);\n\t\t\t\t\treturn bVotes - aVotes;\n\t\t\t\t}).map(map => {\n\t\t\t\tlet votes = self.votesForMap(map);\n\t\t\t\tlet style = thisGatherer.mapVote.some(voteId => voteId === map.id) ? \n\t\t\t\t\t\"list-group-item list-group-item-success\" : \"list-group-item\";\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\t{votes}\n\t\t\t\t\t\t\t{map.name}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t});\n\n\t\tlet votes = thisGatherer.mapVote.length;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{votes === 2 ? \"Map Votes\" : \n\t\t\t\t\t\t`Please Vote for a Map. ${2 - votes} votes remaining` }\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{maps}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n})\n\nconst Gather = exports.Gather = React.createClass({\n\tpropTypes: {\n\t\tthisGatherer: React.PropTypes.object,\n\t\tmaps: React.PropTypes.array.isRequired,\n\t\tservers: React.PropTypes.array.isRequired,\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgather: React.PropTypes.object.isRequired\n\t},\n\n\trender() {\n\t\tconst socket = this.props.socket;\n\t\tconst gather = this.props.gather;\n\t\tconst thisGatherer = this.props.thisGatherer;\n\t\tconst servers = this.props.servers;\n\t\tconst maps = this.props.maps;\n\t\tconst user = this.props.user;\n\t\tif (gather === null) return
    ;\n\n\t\tlet voting;\n\t\tif (thisGatherer) {\n\t\t\tlet state = gather.state;\n\t\t\tif (state === 'gathering' || state === 'election') {\n\t\t\t\tvoting = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvoting = ;\n\t\t\t}\n\t\t}\n\n\t\tlet gatherTeams;\n\t\tif (gather.state === 'selection') {\n\t\t\tgatherTeams = ;\n\t\t}\n\n\t\tif (gather.gatherers.length > 0) {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Current Gather
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t{gatherTeams}\n\t\t\t\t\t{voting}\n\t\t\t\t
    \n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Current Gather
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t}\n});\n\nconst LifeformIcons = exports.LifeformIcons = React.createClass({\n\tavailableLifeforms() {\n\t\treturn [\"skulk\", \"gorge\", \"lerk\", \"fade\", \"onos\", \"commander\"];\n\t},\n\n\tgathererLifeforms() {\n\t\tlet lifeforms = [];\n\t\tlet gatherer = this.props.gatherer;\n\t\tlet abilities = gatherer.user.profile.abilities;\n\t\tfor (let attr in abilities) {\n\t\t\tif (abilities[attr]) lifeforms.push(_.capitalize(attr));\n\t\t}\n\t\treturn lifeforms;\n\t},\n\n\trender() {\n\t\tlet lifeforms = this.gathererLifeforms();\t\n\t\tlet availableLifeforms = this.availableLifeforms();\n\t\tlet icons = availableLifeforms.map(lifeform => {\n\t\t\tlet containsAbility = lifeforms.some(gathererLifeform => {\n\t\t\t\treturn gathererLifeform.toLowerCase() === lifeform.toLowerCase()\n\t\t\t});\n\t\t\tif (containsAbility) {\n\t\t\t\treturn \n\t\t\t} else {\n\t\t\t\treturn \n\t\t\t}\n\t\t});\n\t\treturn {icons}\n\t}\n});\n\nconst Gatherers = React.createClass({\n\tpropTypes: {\n\t\tuser: React.PropTypes.object,\n\t\tthisGatherer: React.PropTypes.object,\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgather: React.PropTypes.object.isRequired\n\t},\n\n\tjoinGather(e) {\n\t\te.preventDefault();\n\t\tthis.props.socket.emit(\"gather:join\");\n\t},\n\n\tbootGatherer(e) {\n\t\te.preventDefault();\n\t\tthis.props.socket.emit(\"gather:leave\", {\n\t\t\tgatherer: parseInt(e.target.value, 10) || null\n\t\t});\n\t},\n\n\trender() {\n\t\tconst self = this;\n\t\tconst user = this.props.user;\n\t\tconst socket = this.props.socket;\n\t\tconst gather = this.props.gather;\n\t\tconst thisGatherer = this.props.thisGatherer;\n\t\tconst admin = (user && user.admin) || (user && user.moderator);\n\t\tconst gatherers = gather.gatherers\n\t\t.sort((a, b) => {\n\t\t\t\treturn (b.user.hive.skill || 1000) - (a.user.hive.skill || 1000);\n\t\t\t})\n\t\t.map(gatherer => {\n\t\t\tlet country;\n\t\t\tif (gatherer.user.country) {\n\t\t\t\tcountry = (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t};\n\n\t\t\tlet skill = gatherer.user.profile.skill || \"Not Available\";\n\n\t\t\tlet hiveStats = [];\n\t\t\tif (gatherer.user.hive.skill) hiveStats.push(`${gatherer.user.hive.skill} ELO`);\n\n\t\t\tif (gatherer.user.hive.playTime) {\n\t\t\t\thiveStats.push(`${Math.floor(gatherer.user.hive.playTime / 3600)} Hours`);\n\t\t\t}\n\n\t\t\tlet hive = (hiveStats.length) ? hiveStats.join(\", \") : \"Not Available\";\n\t\t\t\n\t\t\tlet team = (gatherer.user.team) ? gatherer.user.team.name : \"None\";\n\n\t\t\tlet action;\n\t\t\tif (gather.state === \"election\") {\n\t\t\t\tlet votes = gather.gatherers.reduce((acc, voter) => {\n\t\t\t\t\tif (voter.leaderVote === gatherer.id) acc++;\n\t\t\t\t\treturn acc;\n\t\t\t\t}, 0)\n\t\t\t\taction = (\n\t\t\t\t\t\n\t\t\t\t\t\t{votes + \" votes\"}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (gather.state === 'selection') {\n\t\t\t\tif (thisGatherer && \n\t\t\t\t\t\tthisGatherer.leader &&\n\t\t\t\t\t\tthisGatherer.team === gather.pickingTurn) {\n\t\t\t\t\taction = (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tif (gatherer.leader) {\n\t\t\t\t\t\taction = (Leader);\n\t\t\t\t\t} else if (gatherer.team !== \"lobby\") {\n\t\t\t\t\t\taction = ({_.capitalize(gatherer.team)});\n\t\t\t\t\t} else {\n\t\t\t\t\t\taction = (\n\t\t\t\t\t\t\tLobby);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet adminOptions;\n\t\t\tif (admin) {\n\t\t\t\tadminOptions = [\n\t\t\t\t\t
    ,\n\t\t\t\t\t
    Admin
    ,\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBoot from Gather\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t]\n\t\t\t}\n\n\t\t\tlet tabColor = gatherer.team !== \"lobby\" ? `panel-${gatherer.team}` : \"panel-info\";\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{country} {gatherer.user.username}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tInfo \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{action}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Skill Level
    \n\t\t\t\t\t\t\t\t
    {skill}
    \n\t\t\t\t\t\t\t\t
    Team
    \n\t\t\t\t\t\t\t\t
    {team}
    \n\t\t\t\t\t\t\t\t
    Hive Stats
    \n\t\t\t\t\t\t\t\t
    {hive}
    \n\t\t\t\t\t\t\t\t
    Links
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\tENSL Profile \n\t\t\t\t\t\t\t\t\tHive Profile\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{adminOptions}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t})\n\t\tif (gather.gatherers.length) {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t{gatherers}\n\t\t\t\t
    \n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\t}\n});\n\nconst CompletedGather = React.createClass({\n\tcompletionDate() {\n\t\tlet d = new Date(this.props.gather.done.time);\n\t\tif (d) {\n\t\t\treturn d.toLocaleTimeString();\n\t\t} else {\n\t\t\treturn \"Completed Gather\"\n\t\t}\n\t},\n\n\tgetInitialState() {\n\t\treturn {\n\t\t\tshow: !!this.props.show\n\t\t};\n\t},\n\n\ttoggleGatherInfo() {\n\t\tlet newState = !this.state.show;\n\t\tthis.setState({\n\t\t\tshow: newState\n\t\t});\n\t},\n\n\trender() {\n\t\tlet gatherInfo = [];\n\t\tlet gather = this.props.gather;\n\t\tlet maps = this.props.maps;\n\t\tlet servers = this.props.servers;\n\t\tif (this.state.show) {\n\t\t\tgatherInfo.push();\n\t\t\tgatherInfo.push();\n\t\t}\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    {this.completionDate()}
    \n\t\t\t\t
    \n\t\t\t\t{gatherInfo}\n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst GatherVotingResults = React.createClass({\n\t// Returns an array of ids voted for e.g. [1,2,5,1,1,3,2]\n\tcountVotes(voteType) {\n\t\treturn this.props.gather.gatherers.reduce((acc, gatherer) => {\n\t\t\tlet votes = gatherer[voteType];\n\n\t\t\t// Temporary fix because some mapvotes are ints and not arrays\n\t\t\tif (!Array.isArray(votes)) votes = [votes];\n\n\t\t\tif (votes.length > 0) votes.forEach(vote => acc.push(vote));\n\t\t\treturn acc;\n\t\t}, []);\n\t},\n\n\tselectedMaps() {\n\t\treturn rankVotes(this.countVotes('mapVote'), this.props.maps).slice(0, 2)\n\t},\n\n\tselectedServer() {\n\t\treturn rankVotes(this.countVotes('serverVote'), this.props.servers).slice(0, 1);\n\t},\n\n\trender() {\n\t\tlet maps = this.selectedMaps();\n\t\tlet server = this.selectedServer().pop();\n\t\tlet password;\n\t\tif (server.password) {\n\t\t\tpassword = [\n\t\t\t\t
    Password
    ,\n\t\t\t\t
    {server.password}
    \n\t\t\t];\n\t\t}\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\tServer\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Maps
    \n\t\t\t\t\t\t
    {maps.map(map => map.name).join(\" & \")}
    \n\t\t\t\t\t\t
    Server
    \n\t\t\t\t\t\t
    {server.name}
    \n\t\t\t\t\t\t
    Address
    \n\t\t\t\t\t\t
    {server.ip}:{server.port}
    \n\t\t\t\t\t\t{password}\n\t\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\tJoin Server\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst ArchivedGathers = exports.ArchivedGathers = React.createClass({\n\tpropTypes: {\n\t\tarchive: React.PropTypes.array.isRequired,\n\t\tservers: React.PropTypes.array.isRequired,\n\t\tmaps: React.PropTypes.array.isRequired\n\t},\n\n\trender() {\n\t\tlet archive = this.props.archive\n\t\t\t.sort((a, b) => {\n\t\t\t\treturn new Date(b.createdAt) - new Date(a.createdAt);\n\t\t\t})\n\t\t\t.map((archivedGather, index) => {\n\t\t\t\treturn \n\t\t\t});\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    Archived Gathers
    \n\t\t\t\t
    \n\t\t\t\t\t{archive}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n","import {Events} from \"javascripts/components/event\";\nimport {CurrentUser, AdminPanel, ProfileModal, UserMenu} from \"javascripts/components/user\";\nimport {SoundPanel} from \"javascripts/components/sound\";\nimport {TeamSpeakButton, TeamSpeakModal} from \"javascripts/components/teamspeak\";\nimport {SettingsPanel} from \"javascripts/components/settings\";\nimport {Chatroom} from \"javascripts/components/message\";\nimport {Gather, ArchivedGathers} from \"javascripts/components/gather\"\n\nconst React = require(\"react\");\nconst Sound = require(\"javascripts/components/sound\");\nconst SoundController = Sound.SoundController;\nconst helper = require(\"javascripts/helper\");\nconst storageAvailable = helper.storageAvailable;\nconst SplashScreen = React.createClass({\n\tgetInitialState() {\n\t\treturn {\n\t\t\tstatus: \"connecting\",\n\t\t\tsocket: null\n\t\t}\n\t},\n\n\tcomponentDidMount() {\n\t\tconst socketUrl = window.location.protocol + \"//\" + window.location.host;\n\t\tlet socket = io(socketUrl)\n\t\t\t.on(\"connect\", () => {\n\t\t\t\tconsole.log(\"Connected\");\n\t\t\t\tthis.setState({ status: \"connected\" });\n\t\t\t\tsocket\n\t\t\t\t\t.on(\"reconnect\", () => {\n\t\t\t\t\t\tconsole.log(\"Reconnected\");\n\t\t\t\t\t})\n\t\t\t\t\t.on(\"disconnect\", () => {\n\t\t\t\t\t\tconsole.log(\"Disconnected\")\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.on(\"error\", error => {\n\t\t\t\tconsole.log(error);\n\t\t\t\tif (error === \"Authentication Failed\") {\n\t\t\t\t\tthis.setState({ status: \"authFailed\" });\n\t\t\t\t} else if (error === \"Gather Banned\") {\n\t\t\t\t\tthis.setState({ status: \"banned\" });\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.setState({ socket: socket });\n\t},\n\n\trender() {\n\t\tconst status = this.state.status;\n\n\t\tif (status === \"connected\") {\n\t\t\treturn ;\n\t\t} \n\n\t\tlet splash;\n\t\tif (status === \"authFailed\") {\n\t\t\tsplash = ;\n\t\t} else if (status === \"banned\") {\n\t\t\tsplash = ;\n\t\t} else if (status === \"connecting\") {\n\t\t\tsplash = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{splash}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst AuthFailedSplash = React.createClass({\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\"ENSL\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    You need to be logged in to the ENSL website to access gathers

    \n\t\t\t\t\t\t

    If you are logged on, try visiting a few pages on ENSL.org so the server can update your cookies

    \n\t\t\t\t\t\t

    If this error persists please contact an admin to fix it

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t

    Go to website

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst BannedSplash = React.createClass({\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\"ENSL\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    You're currently barred from joining gathers

    \n\t\t\t\t\t\t

    Either wait for the ban to expire or talk to an admin to get it lifted

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t

    See the ban list

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst ConnectingSplash = React.createClass({\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\"ENSL\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    Authenticating your ENSL account

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\"Loading\"\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst App = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired\n\t},\n\n\tgetInitialState() {\n\t\tlet updateTitle = true;\n\t\tlet showEventsPanel = true;\n\n\t\tif (storageAvailable('localStorage')) {\n\t\t\tif (localStorage.getItem(\"updateTitle\") !== null) {\n\t\t\t\tupdateTitle = JSON.parse(localStorage.getItem(\"updateTitle\"));\n\t\t\t}\n\t\t\tif (localStorage.getItem(\"showEventsPanel\") !== null) {\n\t\t\t\tshowEventsPanel = JSON.parse(localStorage.getItem(\"showEventsPanel\"));\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tgather: {\n\t\t\t\tgatherers: []\n\t\t\t},\n\t\t\tusers: [],\n\t\t\tmessages: [],\n\t\t\tmaps: [],\n\t\t\tuser: null,\n\t\t\tservers: [],\n\t\t\tarchive: [],\n\t\t\tsocket: null,\n\t\t\tevents: [],\n\t\t\tupdateTitle: updateTitle,\n\t\t\tshowEventsPanel: showEventsPanel,\n\t\t\tsoundController: new SoundController(),\n\t\t\tshowMessageBox: true,\n\t\t\tcollapseMenu: false,\n\t\t\tconnectionState: \"connected\"\n\t\t};\n\t},\n\n\tupdateTitle() {\n\t\tlet gather = this.state.gather;\n\t\tif (gather && this.state.updateTitle) {\n\t\t\tdocument.title = `NSL Gathers (${gather.gatherers.length}/12)`;\n\t\t\treturn;\n\t\t}\n\t\tdocument.title = \"NSL Gathers\";\n\t},\n\n\ttoggleEventsPanel(event) {\n\t\tlet newState = event.target.checked;\n\t\tthis.setState({ showEventsPanel: newState });\n\t\tif (storageAvailable('localStorage')) {\n\t\t\tlocalStorage.setItem(\"showEventsPanel\", newState)\n\t\t}\n\t},\n\n\ttoggleUpdateTitle(event) {\n\t\tlet newState = event.target.checked;\n\t\tthis.setState({ updateTitle: newState });\n\t\tif (storageAvailable('localStorage')) {\n\t\t\tlocalStorage.setItem(\"updateTitle\", newState)\n\t\t}\n\t\tthis.updateTitle();\n\t},\n\n\tthisGatherer() {\n\t\tlet gather = this.state.gather;\n\t\tlet user = this.state.user;\n\t\tif (gather && user && gather.gatherers.length) {\n\t\t\treturn gather.gatherers\n\t\t\t\t.filter(gatherer => gatherer.id === user.id)\n\t\t\t\t.pop() || null;\n\t\t}\n\t\treturn null;\n\t},\n\n\tcomponentDidMount() {\n\t\tlet self = this;\n\t\tlet socket = this.props.socket;\n\t\tlet soundController = this.state.soundController;\n\n\t\tthis.updateTitle();\n\n\t\tsocket.on('stateChange', data => {\n\t\t\tlet state = data.state;\n\t\t\t\n\t\t\tif (state.from === 'gathering'\n\t\t\t\t\t&& state.to === 'election'\n\t\t\t\t\t&& this.thisGatherer()) {\n\t\t\t\tsoundController.playGatherMusic();\n\t\t\t}\n\n\t\t\tif (state.from === 'election'\n\t\t\t\t\t&& state.to === 'gathering') {\n\t\t\t\tsoundController.stop();\n\t\t\t}\n\t\t});\n\n\t\tsocket.on('event:append', data => {\n\t\t\tlet events = self.state.events;\n\t\t\tevents.unshift(data);\n\t\t\tself.setState({\n\t\t\t\tevents: events.slice(0, 20)\n\t\t\t});\n\t\t});\n\n\t\tsocket.on('users:update', \n\t\t\tdata => self.setState({\n\t\t\t\tusers: data.users,\n\t\t\t\tuser: data.currentUser\n\t\t\t})\n\t\t);\n\n\t\tsocket.on(\"message:append\", data => {\n\t\t\tself.setState({\n\t\t\t\tmessages: self.state.messages.concat(data.messages)\n\t\t\t\t\t.sort((a, b) => {\n\t\t\t\t\t\treturn new Date(a.createdAt) - new Date(b.createdAt);\n\t\t\t\t\t})\n\t\t\t});\n\t\t});\n\n\t\tsocket.on(\"message:refresh\", data => {\n\t\t\tself.setState({\n\t\t\t\tmessages: data.messages\n\t\t\t});\n\t\t});\n\n\t\tsocket.on(\"gather:refresh\", (data) => {\n\t\t\tself.setState({\n\t\t\t\tgather: data.gather,\n\t\t\t\tmaps: data.maps,\n\t\t\t\tservers: data.servers,\n\t\t\t\tpreviousGather: data.previousGather\n\t\t\t});\n\t\t\tthis.updateTitle();\n\t\t});\n\n\t\tsocket.on(\"gather:archive:refresh\", data => {\n\t\t\tself.setState({\n\t\t\t\tarchive: data.archive,\n\t\t\t\tmaps: data.maps,\n\t\t\t\tservers: data.servers\n\t\t\t});\n\t\t});\n\n\t\tsocket.on(\"connect\", () => {\n\t\t\tthis.setState({ connectionState: \"connected\" });\n\t\t});\n\n\t\tsocket.on(\"disconnect\", () => {\n\t\t\tthis.setState({ connectionState: \"disconnected\" });\n\t\t});\n\n\t\tsocket.on(\"reconnecting\", () => {\n\t\t\tthis.setState({ connectionState: \"reconnecting\" });\n\t\t});\n\n\t\tsocket.on(\"reconnect\", () => {\n\t\t\tthis.setState({ connectionState: \"connected\" });\n\t\t});\n\n\t\tsocket.emit(\"users:refresh\");\n\t\tsocket.emit(\"message:refresh\");\n\t\tsocket.emit(\"gather:refresh\");\n\t},\n\n\ttoggleMessageBox(e) {\n\t\te.preventDefault();\n\t\tconsole.log(\"FOO\")\n\t\tthis.setState({\n\t\t\tshowMessageBox: !this.state.showMessageBox\n\t\t});\n\t},\n\n\ttoggleCollapseMenu(e) {\n\t\te.preventDefault();\n\t\tthis.setState({\n\t\t\tcollapseMenu: !this.state.collapseMenu\n\t\t});\n\t},\n\n\trender() {\n\t\tconst socket = this.props.socket;\n\n\t\tlet eventsPanel;\n\t\tif (this.state.showEventsPanel) {\n\t\t\teventsPanel = ;\n\t\t}\n\n\t\tlet profileModal, chatroom, currentUser;\n\t\tif (this.state.user) {\n\t\t\tprofileModal = ;\n\t\t\tchatroom = ;\n\t\t\tcurrentUser = (\n\t\t\t\t
      \n\t\t\t \t\n\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tconst user = this.state.user;\n\t\tlet username, avatar;\n\t\tif (user) {\n\t\t\tusername = user.username;\n\t\t\tavatar = user.avatar;\n\t\t}\n\n\t\tlet appClass = [\"skin-blue\", \"sidebar-mini\", \"fixed\"];\n\t\tif (this.state.showMessageBox) appClass.push(\"control-sidebar-open\");\n\t\tif (this.state.collapseMenu) appClass.push(\"sidebar-collapse\");\n\n\t\tlet connectionStatus;\n\t\tconst connectionState = this.state.connectionState;\n\t\tif (connectionState === \"connected\") {\n\t\t\tconnectionStatus = Online;\n\t\t} else if (connectionState === \"reconnecting\") {\n\t\t\tconnectionStatus = Reconnecting;\n\t\t} else if (connectionState === \"disconnected\") {\n\t\t\tconnectionStatus = Disconnected;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t
    \n\t\t\t \t\n\t\t\t\t\t\tNSL Gathers\n\t\t\t\t\t\tNSL Gathers\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t
    \n\t\t\t \n\t\t\t
    \n\t\t\t
    \n\t\t\t

    Gathersbeta

    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t \t

    Foo

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t
    \n\t\t);\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{profileModal}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{chatroom}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{eventsPanel}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nmodule.exports = SplashScreen;\n","const React = require(\"react\");\nconst ReactDOM = require(\"react-dom\");\nconst ReactEmoji = require(\"react-emoji\");\nconst ReactAutolink = require(\"react-autolink\");\nconst MessageBrowser = React.createClass({\n\tgetInitialState() {\n\t\treturn {\n\t\t\tbrowserState: \"\",\n\t\t\tmessages: [],\n\t\t\tpage: 0,\n\t\t\tlimit: 250,\n\t\t\tsearch: \"\"\n\t\t}\n\t},\n\n\thandleNextPage(e) {\n\t\te.preventDefault();\n\t\tconst page = this.state.page;\n\t\tthis.setState({ page: page + 1 });\n\t\tthis.loadMessages();\n\t},\n\n\thandlePreviousPage(e) {\n\t\te.preventDefault();\n\t\tconst page = this.state.page;\n\t\tif (page < 1) return;\n\t\tthis.setState({ page: page - 1 });\n\t\tthis.loadMessages();\n\t},\n\n\tpageHandlers() {\n\t\tlet previous;\n\t\tif (this.state.page > 0) {\n\t\t\tprevious = (\n\t\t\t\tPrev\n\t\t\t);\n\t\t}\n\t\tlet next;\n\t\tif (this.state.messages.length === this.state.limit) {\n\t\t\tnext = (\n\t\t\t\tNext\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{previous}\n\t\t\t\t\n\t\t\t\t\t{this.state.page}\n\t\t\t\t\n\t\t\t\t{next}\n\t\t\t
    \n\t\t);\n\t},\n\n\tloadMessages() {\n\t\tconst limit = this.state.limit;\n\t\tconst page = this.state.page;\n\t\tlet data = {\n\t\t\tlimit: limit,\n\t\t\tpage: page\n\t\t};\n\n\t\tif (this.state.search.length) {\n\t\t\tdata.query = this.state.search;\n\t\t}\n\n\t\tthis.setState({ browserState: \"Retrieving messages\"});\n\t\t$.ajax({\n\t\t\turl: \"/api/messages\",\n\t\t\tdata: data\n\t\t})\n\t\t.done(data => {\n\t\t\tthis.setState({\n\t\t\t\tmessages: data.messages,\n\t\t\t\tbrowserState: \"\"\n\t\t\t});\n\t\t})\n\t\t.fail(error => {\n\t\t\tconsole.error(error);\n\t\t\tthis.setState({\n\t\t\t\tbrowserState: `Unable to retrieve messages.`\n\t\t\t});\n\t\t})\n\t},\n\n\tcomponentDidMount() {\n\t\tthis.loadMessages();\n\t},\n\n\tupdateLimit(e) {\n\t\tlet newLimit = parseInt(e.target.value, 10);\n\t\tif (isNaN(newLimit) || newLimit > 250) newLimit = 250;\n\t\tthis.setState({ limit: newLimit });\n\t},\n\n\tupdateSearch(e) {\n\t\tthis.setState({ search: e.target.value });\n\t},\n\n\trender() {\n\t\tlet browserState;\n\t\tif (this.state.browserState.length) {\n\t\t\tbrowserState = (\n\t\t\t\t
    \n\t\t\t\t\t
    {this.state.browserState}
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\t\tconst messages = this.state.messages.map(message => {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{(new Date(message.createdAt)).toString()}\n\t\t\t\t\t{message.author.username}\n\t\t\t\t\t{message.content}\n\t\t\t\t\t{message._id}\n\t\t\t\t\n\t\t\t);\n\t\t});\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t \n\t\t\t\t\t
    \n\t\t\t\t\t \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t \n\t\t\t\t\t
    \n\t\t\t\t\t \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t \t
    \n\t\t\t\t\t\t \t\n\t\t\t\t\t \t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t \t

    Page Control

    \n\t\t\t\t\t\t \t{this.pageHandlers()}\n\t\t\t\t\t \t
    \n\t\t\t\t \t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{browserState}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{messages}\n\t\t\t\t\t\t\n\t\t\t\t\t
    DateAuthorMessageID
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst Chatroom = exports.Chatroom = React.createClass({\n\tpropTypes: {\n\t\tmessages: React.PropTypes.array.isRequired,\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tuser: React.PropTypes.object.isRequired\n\t},\n\n\tgetInitialState() {\n\t\treturn {\n\t\t\tautoScroll: true\n\t\t};\n\t},\n\n\tcomponentDidMount() {\n\t\tlet self = this;\n\n\t\tthis.scrollListener = _.debounce((event) => {\n\t\t\tself.temporarilyDisableAutoScroll(event);\n\t\t}, 300, {\n\t\t leading: false,\n\t\t trailing: true\n\t\t});\n\n\t\tlet node = ReactDOM.findDOMNode(this.refs.messageContainer);\n\t\tnode.addEventListener('scroll', this.scrollListener);\n\n\t\tthis.scrollToBottom();\n\t},\n\n\tcomponentWillUnmount() {\n\t\tnode.removeEventListener('scroll', this.scrollListener);\n\t\tclearTimeout(this.disableScrollTimer);\n\t},\n\n\tloadMoreMessages() {\n\t\tconst earliestMessage = this.props.messages[0];\n\t\tif (earliestMessage === undefined) return;\n\t\tthis.props.socket.emit(\"message:refresh\", {\n\t\t\tbefore: earliestMessage.createdAt\n\t\t});\n\t},\n\n\tsendMessage(message) {\n\t\tthis.props.socket.emit(\"newMessage\", {message: message});\n\t},\n\n\tclearAutoScrollTimeout() {\n\t\tif (this.disableScrollTimer) clearTimeout(this.disableScrollTimer);\n\t},\n\n\ttemporarilyDisableAutoScroll(event) {\n\t\tlet self = this;\n\t\tlet node = event.target;\n\t\tif (node) {\n\t\t\tif (node.scrollHeight - node.scrollTop === node.clientHeight) {\n\t\t\t\tthis.setState({ autoScroll: true });\n\t\t\t\tthis.clearAutoScrollTimeout();\n\t\t\t}\n\t\t\tif (node.scrollHeight - node.scrollTop - node.clientHeight < 50) return;\n\t\t}\n\t\tthis.setState({ autoScroll: false });\n\t\tthis.clearAutoScrollTimeout();\n\t\tthis.disableScrollTimer = setTimeout(() => {\n\t\t\tself.setState({\n\t\t\t\tautoScroll: true\n\t\t\t})\n\t\t}, 10000);\n\t},\n\n\tcomponentDidUpdate() {\n\t\tthis.scrollToBottom();\n\t},\n\n\tscrollToBottom() {\n\t\tif (!this.state.autoScroll) return;\n\t\tlet node = ReactDOM.findDOMNode(this.refs.messageContainer);\n\t node.scrollTop = node.scrollHeight;\n\t},\n\n\trender() {\n\t\tconst socket = this.props.socket;\n\t\tconst messages = this.props.messages.map(message => {\n\t\t\tif (message) {\n\t\t\t\treturn \n\t\t\t}\n\t\t});\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    Gather Chat
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst imgurRegex = /^(https?:\\/\\/i\\.imgur\\.com\\/\\S*\\.(jpg|png))$/i;\n\nconst ChatMessage = React.createClass({\n\tpropTypes: {\n\t\tuser: React.PropTypes.object.isRequired,\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tmessage: React.PropTypes.object.isRequired\n\t},\n\n\tmixins: [\n ReactAutolink,\n ReactEmoji\n ],\n\n getInitialState() {\n \treturn {\n \t\tcreatedAt: \"\"\n \t}\n },\n\n updateCreatedAt() {\n \tlet self = this;\n \tif (this.props.message.createdAt) {\n \t\tself.setState({\n \t\t\tcreatedAt: $.timeago(self.props.message.createdAt)\n \t\t})\n \t}\n },\n\n componentWillMount() {\n\t\tthis.updateCreatedAt();\n },\n\n\tcomponentDidMount() {\n\t\tthis.interval = setInterval(this.updateCreatedAt, 60000);\n\t},\n\n\tcomponentWillUnmount: function () {\n\t\tclearInterval(this.interval);\n\t},\n\n\tmessageContent: function () {\n\t\tlet self = this;\n\t\tlet message = self.props.message.content\n\t\tif (message.match(imgurRegex)) {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\treturn self.autolink(message, { \n\t\t\ttarget: \"_blank\", \n\t\t\trel: \"nofollow\" \n\t\t}).map((elem) => {\n\t\t\tif (_.isString(elem)) {\n\t\t\t\treturn self.emojify(elem);\n\t\t\t} else {\n\t\t\t\treturn elem;\n\t\t\t}\n\t\t});\n\t},\n\n\trender() {\n\t\tlet deleteButton;\n\t\tlet user = this.props.user;\n\t\tif (user && user.admin) {\n\t\t\tdeleteButton = ;\n\t\t}\n\t\treturn (\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.props.message.author.username}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{deleteButton}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t{this.state.createdAt}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t

    {this.messageContent()}

    \n\t\t\t\t
    \n\t\t\t
  • \n\t\t);\n\t}\n});\n\nconst DeleteMessageButton = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired\n\t},\n\n\thandleClick (e) {\n\t\te.preventDefault();\n\t\tthis.props.socket.emit(\"message:delete\", {\n\t\t\tid: this.props.messageId\n\t\t});\n\t},\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n})\n\nconst MessageBar = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired\n\t},\n\n\tsendMessage(content) {\n\t\tthis.props.socket.emit(\"message:new\", {\n\t\t\tcontent: content\n\t\t});\n\t},\n\n\tgetInitialState() {\n\t\treturn {\n\t\t\tstatusMessage: null\n\t\t};\n\t},\n\n\tcheckInputLength() {\n\t\tconst input = ReactDOM.findDOMNode(this.refs.content).value;\n\t\tconst currentStatusMessage = this.state.statusMessage;\n\t\tif (input.length > 256) {\n\t\t\treturn this.setState({\n\t\t\t\tstatusMessage: \"Maximum of 256 characters will be saved\"\n\t\t\t})\n\t\t}\n\t\tif (currentStatusMessage !== null) {\n\t\t\tthis.setState({\n\t\t\t\tstatusMessage: null\n\t\t\t});\n\t\t}\n\t},\n\n\thandleInputChange() {\n\t\t// Noop, later assigned as debounced method in componentWillMount\n\t},\n\n\thandleSubmit(e) {\n\t\te.preventDefault();\n\t\tlet content = ReactDOM.findDOMNode(this.refs.content).value.trim();\n\t\tif (!content) return;\n\t\tReactDOM.findDOMNode(this.refs.content).value = '';\n\t\tthis.sendMessage(content);\n\t\treturn;\n\t},\n\n\tcomponentWillMount() {\n\t\tthis.handleInputChange = _.debounce(this.checkInputLength, {\n\t\t\tleading: false,\n\t\t\ttrailing: true\n\t\t});\n\t},\n\n\trender() {\n\t\tlet statusMessage;\n\t\tif (this.state.statusMessage !== null) {\n\t\t\tstatusMessage =
    \n\t\t\t\t{this.state.statusMessage}\n\t\t\t
    ;\n\t\t}\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{statusMessage}\n\t\t\t
    \n\t\t);\n\t}\n});\n","const React = require(\"react\");\n\nconst SettingsPanel = exports.SettingsPanel = React.createClass({\n\tpropTypes: {\n\t\ttoggleUpdateTitle: React.PropTypes.func.isRequired,\n\t\tupdateTitle: React.PropTypes.bool.isRequired,\n\t\ttoggleEventsPanel: React.PropTypes.func.isRequired,\n\t\tshowEventsPanel: React.PropTypes.bool.isRequired\n\t},\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    Settings

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n","const React = require(\"react\");\n\nvar SnowMachineMenu = React.createClass({\n\tgetInitialState() {\n\t\treturn {\n\t\t\tsnowMachine: null\n\t\t}\n\t},\n\n\tcomponentDidMount() {\n\t\tconst snowMachine = new SnowMachine();\n\t\tsnowMachine.start();\n\t\tthis.setState({ snowMachine: snowMachine });\n\t},\n\n\ttoggle() {\n\t\tconst snowMachine = this.state.snowMachine;\n\t\tif (snowMachine.timer) {\n\t\t\tsnowMachine.stop();\n\t\t} else {\n\t\t\tsnowMachine.start();\n\t\t}\n\t},\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t );\n\t}\n});\n","const $ = require(\"jquery\");\nconst React = require(\"react\");\nconst Howl = require(\"howler\").Howl;\nconst Howler = require(\"howler\").Howler;\nconst helper = require(\"javascripts/helper\");\nconst storageAvailable = helper.storageAvailable;\n\nclass SoundController {\n\tconstructor () {\n\t\tif (Howl === undefined) {\n\t\t\tthrow new Error(\"Howl.js required to created sound controller\");\n\t\t}\n\n\t\tthis.MINIMUM_PLAY_INTERVAL = 20000;\n\n\t\tthis.playGatherMusic = _.throttle(() => {\n\t\t\tthis.gather.music.play();\n\t\t}, this.MINIMUM_PLAY_INTERVAL);\n\n\t\tthis.isMuted = Howler._muted;\n\t\t\n\t\tlet gatherMusic;\n\t\tif (storageAvailable(\"localStorage\")) {\n\t\t\tlet volume = localStorage.getItem(\"gatherVolume\");\n\t\t\tif (volume !== undefined) Howler.volume(volume);\n\t\t\tgatherMusic = localStorage.getItem(\"gatherMusic\");\n\t\t}\n\n\t\tthis.tunes = {\n\t\t\t\"classic\": {\n\t\t\t\tdescription: \"Gathers Classic\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/gather-1.mp3'\n\t\t\t},\n\t\t\t\"nights\": {\n\t\t\t\tdescription: \"Nights\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/nights.mp3'\n\t\t\t},\n\t\t\t\"robby\": {\n\t\t\t\tdescription: \"Robby\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/robby.mp3'\n\t\t\t},\n\t\t\t\"america\": {\n\t\t\t\tdescription: \"Infamous\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/america.mp3'\n\t\t\t},\n\t\t\t\"prommah\": {\n\t\t\t\tdescription: \"Prommah\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/prommah.mp3'\n\t\t\t},\n\t\t\t\"turts\": {\n\t\t\t\tdescription: \"Gorges Rock your Ass\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/turts.mp3'\n\t\t\t},\n\t\t\t\"skyice\": {\n\t\t\t\tdescription: \"Skyice\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/skyice.mp3'\n\t\t\t},\n\t\t\t\"justwannahavefun\": {\n\t\t\t\tdescription: \"Gorges just want to have fun\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/justwannahavefun.mp3'\n\t\t\t},\n\t\t\t\"eyeofthegorgie\": {\n\t\t\t\tdescription: \"Eye of the Gorgie\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/eyeofthegorgie.mp3'\n\t\t\t},\n\t\t\t\"boondock\": {\n\t\t\t\tdescription: \"Boondock Marines\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/boondock.mp3'\n\t\t\t},\n\t\t\t\"preclassic\": {\n\t\t\t\tdescription: \"Old Gathers Classic\",\n\t\t\t\turl: 'http://www.ensl.org/files/audio/gather-5.mp3'\n\t\t\t}\n\t\t}\n\n\t\tthis.setupGatherMusic(gatherMusic);\n\t}\n\n\tmute() {\n\t\tthis.isMuted = true;\n\t\treturn Howler.mute();\n\t}\n\n\tunMute() {\n\t\tthis.isMuted = false;\n\t\treturn Howler.unmute();\n\t}\n\n\tgetVolume() {\n\t\treturn Howler.volume();\n\t}\n\n\tsetVolume(val) {\n\t\tif (val === undefined || \n\t\t\t\ttypeof val !== 'number' || \n\t\t\t\tMath.abs(val) > 1) return;\n\t\tif (storageAvailable(\"localStorage\")) {\n\t\t\tlocalStorage.setItem(\"gatherVolume\", val);\n\t\t}\n\t\treturn Howler.volume(val);\n\t}\n\n\tplay(music) {\n\t\tif (this.gather && this.gather.music) return this.gather.music.play();\n\t}\n\n\tstop(music) {\n\t\tif (this.gather && this.gather.music) return this.gather.music.stop();\n\t}\n\n\tdefaultGatherMusic() {\n\t\treturn \"classic\";\n\t}\n\n\tsetupGatherMusic (musicName) {\n\t\tlet self = this;\n\t\tlet gatherMusic = self.tunes[musicName];\n\n\t\tif (!gatherMusic) {\n\t\t\tmusicName = this.defaultGatherMusic();\n\t\t\tgatherMusic = self.tunes[musicName]; \n\t\t}\n\n\t\tif (self.gather && self.gather.name === musicName) return;\n\n\t\t// Stop if already playing\n\t\tif (self.gather && self.gather.music) {\n\t\t\tself.gather.music.stop();\n\t\t}\n\n\t\tlet tune = self.tunes[musicName];\n\t\tself.gather = {\n\t\t\tname: musicName,\n\t\t\tdescription: tune.description,\n\t\t\turl: tune.url,\n\t\t\tmusic: new Howl({\n\t\t\t\turls: [tune.url]\n\t\t\t})\n\t\t};\n\t}\n}\n\nvar MusicSelector = React.createClass({\n\tgetInitialState() {\n\t\treturn {\n\t\t\tmusic: this.selectedMusic()\n\t\t}\n\t},\n\n\tselectedMusic() {\n\t\tif (storageAvailable(\"localStorage\")) {\n\t\t\treturn localStorage.getItem(\"gatherMusic\") \n\t\t\t\t|| this.props.soundController.defaultGatherMusic();\n\t\t} else {\n\t\t\treturn this.props.soundController.defaultGatherMusic(); \n\t\t}\n\t},\n\n\tsetMusic(event) {\n\t\tlet name = event.target.value;\n\t\tlet soundController = this.props.soundController;\n\t\tlet selectedTune = soundController.tunes[name];\n\t\tif (selectedTune === undefined) return;\n\t\tthis.setState({ music: name });\n\t\tsoundController.setupGatherMusic(name);\n\t\tif (storageAvailable(\"localStorage\")) {\n\t\t\tlocalStorage.setItem(\"gatherMusic\", name);\n\t\t}\n\t},\n\n\trender() {\n\t\tlet soundController = this.props.soundController;\n\t\tlet tunes = [];\n\t\tfor (var attr in soundController.tunes) {\n\t\t\tlet o = soundController.tunes[attr];\n\t\t\to.id = attr;\n\t\t\ttunes.push(o);\n\t\t}\n\t\tlet options = tunes.map(tune => {\n\t\t\treturn ;\n\t\t});\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{options}\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n})\n\nvar SoundPanel = React.createClass({\n\tcomponentDidMount() {\n\t\tlet soundController = this.props.soundController;\n\t\tlet scale = 10;\n\n\t\t$('a#sound-dropdown').on('click', function (event) {\n\t\t\t$(this).parent().toggleClass('open');\n\t\t});\n\n\t\t$(\"#volume-slide\").slider({\n\t\t\tmin: 0,\n\t\t\tmax: scale,\n\t\t\tstep: 1\n\t\t}).on(\"slideStop\", ({value}) => {\n\t\t\tsoundController.setVolume(value / scale);\n\t\t}).slider('setValue', soundController.getVolume() * scale);\n\t},\n\n\tmute() {\n\t\tthis.props.soundController.mute();\n\t\tthis.forceUpdate();\n\t},\n\n\tunMute() {\n\t\tthis.props.soundController.unMute();\n\t\tthis.forceUpdate();\n\t},\n\n\tplay() {\n\t\tthis.props.soundController.play();\n\t},\n\n\tstop() {\n\t\tthis.props.soundController.stop();\n\t},\n\n\trender() {\n\t\tlet soundController = this.props.soundController;\n\t\tlet mutedIcon, mutedButton;\n\t\tif (soundController.isMuted) {\n\t\t\tmutedIcon = ;\n\t\t\tmutedButton =
  • \n\t\t\t\t\n\t\t\t\t\t{mutedIcon} Muted\n\t\t\t\t\n\t\t\t
  • ;\n\t\t} else {\n\t\t\tmutedIcon = ;\n\t\t\tmutedButton =
  • \n\t\t\t\t\n\t\t\t\t\t{mutedIcon} Unmuted\n\t\t\t\t\n\t\t\t
  • ;\n\t\t}\n\t\treturn ;\n\t}\n});\n\nmodule.exports = {\n\tSoundController: SoundController,\n\tSoundPanel: SoundPanel\n};\n","const React = require(\"react\");\n\nconst teamspeakDefaults = {\n\turl: \"ts3server://ensl.org/\",\n\tpassword: \"ns2gather\",\n\talien: {\n\t\tchannel: \"NS2 Gather/Gather #1/Alien\",\n\t\tpassword: \"ns2gather\"\n\t},\n\tmarine: {\n\t\tchannel: \"NS2 Gather/Gather #1/Marine\",\n\t\tpassword: \"ns2gather\"\n\t}\n};\n\nvar TeamSpeakButton = exports.TeamSpeakButton = React.createClass({\n\tgetDefaultProps() {\n\t\treturn teamspeakDefaults\n\t},\n\tmarineUrl() {\n\t\treturn this.teamSpeakUrl(this.props.marine);\n\t},\n\talienUrl() {\n\t\treturn this.teamSpeakUrl(this.props.alien);\n\t},\n\tteamSpeakUrl(conn) {\n\t\tlet params = `channel=${encodeURIComponent(conn.channel)}&\n\t\t\tchannelpassword=${encodeURIComponent(conn.password)}`;\n\t\treturn (`${this.props.url}?${params}`);\n\t},\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n});\n\nvar TeamSpeakModal = exports.TeamSpeakModal = React.createClass({\n\tgetDefaultProps() {\n\t\treturn teamspeakDefaults;\n\t},\n\n\trender() {\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t

    Teamspeak Server Information

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Server
    \n\t\t\t\t\t\t\t
    {this.props.url}
    \n\t\t\t\t\t\t\t
    Password
    \n\t\t\t\t\t\t\t
    {this.props.password}
    \n\t\t\t\t\t\t\t
    Marine Channel
    \n\t\t\t\t\t\t\t
    {this.props.marine.channel}
    \n\t\t\t\t\t\t\t
    Alien Channel
    \n\t\t\t\t\t\t\t
    {this.props.alien.channel}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t}\n});\n","import {LifeformIcons} from \"javascripts/components/gather\";\nconst React = require(\"react\");\nconst helper = require(\"javascripts/helper\");\nconst enslUrl = helper.enslUrl;\nconst hiveUrl = helper.hiveUrl;\nconst modalId = helper.modalId;\n\nconst UserLogin = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired\n\t},\n\n\tauthorizeId(id) {\n\t\tthis.props.socket.emit(\"users:authorize\", {\n\t\t\tid: parseInt(id, 10)\n\t\t});\n\t},\n\n\thandleSubmit(e) {\n\t\te.preventDefault();\n\t\tlet id = React.findDOMNode(this.refs.authorize_id).value.trim();\n\t\tif (!id) return;\n\t\tReact.findDOMNode(this.refs.authorize_id).value = '';\n\t\tthis.authorizeId(id);\n\t},\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst DisconnectUserButton = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tid: React.PropTypes.number.isRequired\n\t},\n\n\tgetDefaultProps() {\n\t\treturn {\n\t\t\tid: null\n\t\t};\n\t},\n\n\tdisconnectUser() {\n\t\tthis.props.socket.emit(\"users:disconnect\", {\n\t\t\tid: this.props.id\n\t\t});\n\t},\n\t\n\trender() {\n\t\treturn \n\t\t\tDisconnect User\n\t}\n});\n\nconst UserModal = React.createClass({\n\tpropTypes: {\n\t\tuser: React.PropTypes.object.isRequired,\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tcurrentUser: React.PropTypes.object.isRequired\n\t},\n\n\trender() {\n\t\tconst currentUser = this.props.currentUser;\n\t\tconst user = this.props.user;\n\t\tlet hiveStats;\n\t\tif (user.hive.id) {\n\t\t\thiveStats = [\n\t\t\tHive Stats,\n\t\t\t\n\t\t\t\tELO\n\t\t\t\t{user.hive.skill}\n\t\t\t,\n\t\t\t\n\t\t\t\tHours Played\n\t\t\t\t{Math.round(user.hive.playTime / 3600)}\n\t\t\t,\n\t\t\t\n\t\t\t\tWins\n\t\t\t\t{user.hive.wins}\n\t\t\t,\n\t\t\t\n\t\t\t\tLosses\n\t\t\t\t{user.hive.loses}\n\t\t\t,\n\t\t\t\n\t\t\t\tKills (/min)\n\t\t\t\t{user.hive.kills} ({_.round(user.hive.kills / (user.hive.playTime / 60), 1)})\n\t\t\t,\n\t\t\t\n\t\t\t\tAssists (/min)\n\t\t\t\t{user.hive.assists} ({_.round(user.hive.assists / (user.hive.playTime / 60), 1)})\n\t\t\t,\n\t\t\t\n\t\t\t\tDeaths (/min)\n\t\t\t\t{user.hive.deaths} ({_.round(user.hive.deaths / (user.hive.playTime / 60), 1)})\n\t\t\t\n\t\t\t]\n\t\t}\n\t\tlet adminOptions;\n\t\tif (currentUser.admin) {\n\t\t\tadminOptions = ;\n\t\t}\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t{user.username}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{hiveStats}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    Lifeforms
    Links\n\t\t\t\t\t\t\t\t\t\t\tENSL Profile \n\t\t\t\t\t\t\t\t\t\t\tHive Profile\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{adminOptions}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n})\n\nconst UserItem = React.createClass({\n\tpropTypes: {\n\t\tuser: React.PropTypes.object.isRequired,\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tcurrentUser: React.PropTypes.object.isRequired\n\t},\n\n\trender() {\n\t\tconst user = this.props.user;\n\t\tconst currentUser = this.props.currentUser;\n\t\treturn (\n\t\t\t
  • \n\t\t\t\t{user.username}\n\t\t\t\t\n\t\t\t
  • \n\t\t);\n\t}\n});\n\nconst UserMenu = exports.UserMenu = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tusers: React.PropTypes.array.isRequired\n\t},\n\n\trender() {\n\t\tconst users = this.props.users\n\t\t.sort((a, b) => (a.username.toLowerCase() > b.username.toLowerCase()) ? 1 : -1)\n\t\t.map(user => {\n\t\t\treturn \n\t\t});\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t Online\n\t\t\t\t\t\t{this.props.users.length}\n\t\t\t\t\t
    \n\t\t\t\t\t
      \n\t\t\t\t\t\t{users}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst AdminPanel = exports.AdminPanel = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired\n\t},\n\n\thandleGatherReset() {\n\t\tthis.props.socket.emit(\"gather:reset\");\n\t},\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    Administration Panel

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Swap Into a Different Account (Only works for admins)
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    Gather Options
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tReset Gather\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst ProfileModal = exports.ProfileModal = React.createClass({\n\tpropTypes: {\n\t\tuser: React.PropTypes.object.isRequired\n\t},\n\n\thandleUserUpdate(e) {\n\t\te.preventDefault();\n\t\tlet abilities = {\n\t\t\tskulk: React.findDOMNode(this.refs.skulk).checked,\n\t\t\tlerk: React.findDOMNode(this.refs.lerk).checked,\n\t\t\tgorge: React.findDOMNode(this.refs.gorge).checked,\n\t\t\tfade: React.findDOMNode(this.refs.fade).checked,\n\t\t\tonos: React.findDOMNode(this.refs.onos).checked,\n\t\t\tcommander: React.findDOMNode(this.refs.commander).checked\n\t\t};\n\t\tlet skill = React.findDOMNode(this.refs.playerskill).value;\n\t\tsocket.emit(\"users:update:profile\", {\n\t\t\tid: this.props.user.id,\n\t\t\tprofile: {\n\t\t\t\tabilities: abilities,\n\t\t\t\tskill: skill\n\t\t\t}\n\t\t});\n\t},\n\n\trender() {\n\t\tif (!this.props.user) return false;\n\t\tlet abilities = this.props.user.profile.abilities;\n\t\tlet abilitiesForm = [];\n\t\tfor (let lifeform in abilities) {\n\t\t\tabilitiesForm.push(\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet skillLevel = this.props.user.profile.skill;\n\t\tlet skillLevels = _.uniq([\"Low Skill\", \"Medium Skill\", \"High Skill\", skillLevel])\n\t\t\t.filter(skill => { return typeof skill === 'string' })\n\t\t\t.map(skill => { return });\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    Profile

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\tTry to give an accurate representation of your skill to raise \n\t\t\t\t\t\t\t\t\t\t\tthe quality of your gathers\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{abilitiesForm}\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\tSpecify which lifeforms you'd like to play in the gather\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\tYou will need to rejoin the gather to see your updated profile\n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n});\n\nconst CurrentUser = exports.CurrentUser = React.createClass({\n\trender() {\n\t\tif (this.props.user) {\n\t\t\tlet adminOptions;\n\t\t\tif (this.props.user.admin || this.props.user.moderator) {\n\t\t\t\tadminOptions = (\n\t\t\t\t\t
  • \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t Administration\n\t\t\t\t\t\t\n\t\t\t\t\t
  • \n\t\t\t\t)\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.user.username}   \n\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t Profile\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t Settings\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t{adminOptions}\n\t\t\t\t\t
    \n\t\t\t\t
  • \n\t\t\t);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n});\n\nvar AssumeUserIdButton = exports.AssumeUserIdButton = React.createClass({\n\tpropTypes: {\n\t\tsocket: React.PropTypes.object.isRequired,\n\t\tgatherer: React.PropTypes.object.isRequired,\n\t\tcurrentUser: React.PropTypes.object.isRequired,\n\t},\n\n\tassumeId(e) {\n\t\te.preventDefault();\n\t\tif (this.props.gatherer) {\n\t\t\tthis.props.socket.emit(\"users:authorize\", {\n\t\t\t\tid: this.props.gatherer.id\n\t\t\t});\n\t\t\t// Refresh Gather list\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.props.socket.emit(\"gather:refresh\");\n\t\t\t}, 5000);\n\t\t}\n\t},\n\n\trender() {\n\t\tlet currentUser = this.props.currentUser;\n\t\tlet gatherer = this.props.gatherer;\n\t\tif (currentUser && gatherer) {\n\t\t\treturn Assume User ID\n\t\t}\n\t}\n});\n","// Accepts an array of IDs voted\n// 1. Creates an array of tally objects, \n//\t\twith ID as prop and vote count as val { 12: 0 }\n// 2. Increments ID vote tally for every vote\n// 3. Sorts \n\nconst rankVotes = exports.rankVotes = function (votes, candidates) {\n\tvar initial = candidates.reduce(function (acc, candidate) {\n\t\tacc[candidate.id] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tvar scores = votes.reduce(function (acc, id) {\n\t\tif (acc[id] !== undefined) {\n\t\t\tacc[id]++;\n\t\t}\n\t\treturn acc;\n\t}, initial);\n\n\tvar rank = [];\n\n\tfor (var id in scores) {\n\t\tif (scores.hasOwnProperty(id)) {\n\t\t\trank.push({\n\t\t\t\tid: parseInt(id, 10),\n\t\t\t\tcount: scores[id]\n\t\t\t});\n\t\t}\n\t}\n\n\treturn rank.sort(function (a, b) {\n\t\tif (b.count === a.count) {\n\t\t\treturn b.id - a.id;\n\t\t} else {\n\t\t\treturn b.count - a.count;\n\t\t}\n\t}).map(function (tally) {\n\t\treturn tally.id\n\t}).map(function (id) {\n\t\treturn candidates.reduce(function (acc, candidate) {\n\t\t\tif (candidate.id === id) return candidate;\n\t\t\treturn acc;\n\t\t});\n\t});\n};\n\nconst enslUrl = exports.enslUrl = (gatherer) => {\n\treturn `http://www.ensl.org/users/${gatherer.id}`\n};\n\nconst hiveUrl = exports.hiveUrl = (gatherer) => {\n\tconst hiveId = gatherer.user.hive.id;\n\tif (hiveId) {\n\t\treturn `http://hive.naturalselection2.com/profile/${hiveId}`;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nconst modalId = exports.modalId = (user) => {\n\treturn `user-modal-${user.id}`;\n};\n\nconst storageAvailable = exports.storageAvailable = (type) => {\n\ttry {\n\t\tvar storage = window[type],\n\t\t\tx = '__storage_test__';\n\t\tstorage.setItem(x, x);\n\t\tstorage.removeItem(x);\n\t\treturn true;\n\t}\n\tcatch(e) {\n\t\treturn false;\n\t}\n};\n"]} \ No newline at end of file diff --git a/public/vendor.js b/public/vendor.js deleted file mode 100644 index 7e2bbad..0000000 --- a/public/vendor.js +++ /dev/null @@ -1,48365 +0,0 @@ -(function() { - 'use strict'; - - var globals = typeof window === 'undefined' ? global : window; - if (typeof globals.require === 'function') return; - - var modules = {}; - var cache = {}; - var aliases = {}; - var has = ({}).hasOwnProperty; - - var endsWith = function(str, suffix) { - return str.indexOf(suffix, str.length - suffix.length) !== -1; - }; - - var _cmp = 'components/'; - var unalias = function(alias, loaderPath) { - var start = 0; - if (loaderPath) { - if (loaderPath.indexOf(_cmp) === 0) { - start = _cmp.length; - } - if (loaderPath.indexOf('/', start) > 0) { - loaderPath = loaderPath.substring(start, loaderPath.indexOf('/', start)); - } - } - var result = aliases[alias + '/index.js'] || aliases[loaderPath + '/deps/' + alias + '/index.js']; - if (result) { - return _cmp + result.substring(0, result.length - '.js'.length); - } - return alias; - }; - - var _reg = /^\.\.?(\/|$)/; - var expand = function(root, name) { - var results = [], part; - var parts = (_reg.test(name) ? root + '/' + name : name).split('/'); - for (var i = 0, length = parts.length; i < length; i++) { - part = parts[i]; - if (part === '..') { - results.pop(); - } else if (part !== '.' && part !== '') { - results.push(part); - } - } - return results.join('/'); - }; - - var dirname = function(path) { - return path.split('/').slice(0, -1).join('/'); - }; - - var localRequire = function(path) { - return function expanded(name) { - var absolute = expand(dirname(path), name); - return globals.require(absolute, path); - }; - }; - - var initModule = function(name, definition) { - var module = {id: name, exports: {}}; - cache[name] = module; - definition(module.exports, localRequire(name), module); - return module.exports; - }; - - var require = function(name, loaderPath) { - var path = expand(name, '.'); - if (loaderPath == null) loaderPath = '/'; - path = unalias(name, loaderPath); - - if (has.call(cache, path)) return cache[path].exports; - if (has.call(modules, path)) return initModule(path, modules[path]); - - var dirIndex = expand(path, './index'); - if (has.call(cache, dirIndex)) return cache[dirIndex].exports; - if (has.call(modules, dirIndex)) return initModule(dirIndex, modules[dirIndex]); - - throw new Error('Cannot find module "' + name + '" from '+ '"' + loaderPath + '"'); - }; - - require.alias = function(from, to) { - aliases[to] = from; - }; - - require.register = require.define = function(bundle, fn) { - if (typeof bundle === 'object') { - for (var key in bundle) { - if (has.call(bundle, key)) { - modules[key] = bundle[key]; - } - } - } else { - modules[bundle] = fn; - } - }; - - require.list = function() { - var result = []; - for (var item in modules) { - if (has.call(modules, item)) { - result.push(item); - } - } - return result; - }; - - require.brunch = true; - require._cache = cache; - globals.require = require; -})(); -(function() { - var global = window; - var __shims = {assert: ({}),buffer: ({}),child_process: ({}),cluster: ({}),crypto: ({}),dgram: ({}),dns: ({}),events: ({}),fs: ({}),http: ({}),https: ({}),net: ({}),os: ({}),path: ({}),punycode: ({}),querystring: ({}),readline: ({}),repl: ({}),string_decoder: ({}),tls: ({}),tty: ({}),url: ({}),util: ({}),vm: ({}),zlib: ({}),process: ({"env":{}})}; - var process = __shims.process; - - var __makeRequire = function(r, __brmap) { - return function(name) { - if (__brmap[name] !== undefined) name = __brmap[name]; - name = name.replace(".js", ""); - return ["assert","buffer","child_process","cluster","crypto","dgram","dns","events","fs","http","https","net","os","path","punycode","querystring","readline","repl","string_decoder","tls","tty","url","util","vm","zlib","process"].indexOf(name) === -1 ? r(name) : __shims[name]; - } - }; - require.register('bootstrap', function(exports,req,module){ - var require = __makeRequire((function(n) { return req(n.replace('./', 'bootstrap/')); }), {}); - // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. -require('../../js/transition.js') -require('../../js/alert.js') -require('../../js/button.js') -require('../../js/carousel.js') -require('../../js/collapse.js') -require('../../js/dropdown.js') -require('../../js/modal.js') -require('../../js/tooltip.js') -require('../../js/popover.js') -require('../../js/scrollspy.js') -require('../../js/tab.js') -require('../../js/affix.js') - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/affix', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: affix.js v3.3.6 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = null - this.unpin = null - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.6' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' - } - - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && scrollTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = Math.max($(document).height(), $(document.body).height()) - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') - } - - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) - } - } - - - // AFFIX PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.affix - - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix - - - // AFFIX NO CONFLICT - // ================= - - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } - - - // AFFIX DATA-API - // ============== - - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/alert', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: alert.js v3.3.6 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.6' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/button', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: button.js v3.3.6 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.6' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state += 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d) - } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked')) changed = false - $parent.find('.active').removeClass('active') - this.$element.addClass('active') - } else if ($input.prop('type') == 'checkbox') { - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false - this.$element.toggleClass('active') - } - $input.prop('checked', this.$element.hasClass('active')) - if (changed) $input.trigger('change') - } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) - this.$element.toggleClass('active') - } - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - var old = $.fn.button - - $.fn.button = Plugin - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/carousel', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: carousel.js v3.3.6 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = null - this.sliding = null - this.interval = null - this.$active = null - this.$items = null - - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) - - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) - } - - Carousel.VERSION = '3.3.6' - - Carousel.TRANSITION_DURATION = 600 - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true, - keyboard: true - } - - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return - } - - e.preventDefault() - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var activeIndex = this.getItemIndex(active) - var willWrap = (direction == 'prev' && activeIndex === 0) - || (direction == 'next' && activeIndex == (this.$items.length - 1)) - if (willWrap && !this.options.wrap) return active - var delta = direction == 'prev' ? -1 : 1 - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var that = this - - if ($next.hasClass('active')) return (this.sliding = false) - - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } - - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - Plugin.call($target, options) - - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - } - - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/collapse', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: collapse.js v3.3.6 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + - '[data-toggle="collapse"][data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) - } - - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.6' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return - } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - - Plugin.call($target, option) - }) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/dropdown', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: dropdown.js v3.3.6 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.6' - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) - }) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $(document.createElement('div')) - .addClass('dropdown-backdrop') - .insertAfter($(this)) - .on('click', clearMenus) - } - - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this - .trigger('focus') - .attr('aria-expanded', 'true') - - $parent - .toggleClass('open') - .trigger($.Event('shown.bs.dropdown', relatedTarget)) - } - - return false - } - - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return - - var $this = $(this) - - e.preventDefault() - e.stopPropagation() - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - if (!isActive && e.which != 27 || isActive && e.which == 27) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') - } - - var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('.dropdown-menu' + desc) - - if (!$items.length) return - - var index = $items.index(e.target) - - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 - - $items.eq(index).trigger('focus') - } - - - // DROPDOWN PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') - - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.dropdown - - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown - - - // DROPDOWN NO CONFLICT - // ==================== - - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } - - - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== - - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/modal', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: modal.js v3.3.6 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$dialog = this.$element.find('.modal-dialog') - this.$backdrop = null - this.isShown = null - this.originalBodyPad = null - this.scrollbarWidth = 0 - this.ignoreBackdropClick = false - - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) - } - } - - Modal.VERSION = '3.3.6' - - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 - - Modal.DEFAULTS = { - backdrop: true, - keyboard: true, - show: true - } - - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } - - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') - - this.escape() - this.resize() - - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) - - this.$dialog.on('mousedown.dismiss.bs.modal', function () { - that.$element.one('mouseup.dismiss.bs.modal', function (e) { - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true - }) - }) - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position - } - - that.$element - .show() - .scrollTop(0) - - that.adjustDialog() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$dialog // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(document).off('focusin.bs.modal') - - this.$element - .removeClass('in') - .off('click.dismiss.bs.modal') - .off('mouseup.dismiss.bs.modal') - - this.$dialog.off('mousedown.dismiss.bs.modal') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { - this.$element.trigger('focus') - } - }, this)) - } - - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') - } - } - - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } - - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } - - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $(document.createElement('div')) - .addClass('modal-backdrop ' + animate) - .appendTo(this.$body) - - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { - if (this.ignoreBackdropClick) { - this.ignoreBackdropClick = false - return - } - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus() - : this.hide() - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() - } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() - - } else if (callback) { - callback() - } - } - - // these following methods are used to handle overflowing modals - - Modal.prototype.handleUpdate = function () { - this.adjustDialog() - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - var fullWindowWidth = window.innerWidth - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect() - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) - } - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth - this.scrollbarWidth = this.measureScrollbar() - } - - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - this.originalBodyPad = document.body.style.paddingRight || '' - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } - - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', this.originalBodyPad) - } - - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } - - - // MODAL PLUGIN DEFINITION - // ======================= - - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/popover', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: popover.js v3.3.6 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // POPOVER PUBLIC CLASS DEFINITION - // =============================== - - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.6' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { - placement: 'right', - trigger: 'click', - content: '', - template: '' - }) - - - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ - - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) - - Popover.prototype.constructor = Popover - - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS - } - - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() - - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) - - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - - // POPOVER PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/scrollspy', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: scrollspy.js v3.3.6 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - this.$body = $(document.body) - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.6' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var that = this - var offsetMethod = 'offset' - var offsetBase = 0 - - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() - } - - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) - - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - that.offsets.push(this[0]) - that.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) - } - - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) - && this.activate(targets[i]) - } - } - - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target - - this.clear() - - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' - - var active = $(selector) - .parents('li') - .addClass('active') - - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') - } - - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/tab', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: tab.js v3.3.6 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - // jscs:disable requireDollarBeforejQueryAssignment - this.element = $(element) - // jscs:enable requireDollarBeforejQueryAssignment - } - - Tab.VERSION = '3.3.6' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - if ($this.parent('li').hasClass('active')) return - - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) - - $previous.trigger(hideEvent) - $this.trigger(showEvent) - - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if (element.parent('.dropdown-menu').length) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - } - - callback && callback() - } - - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') - - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tab - - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } - - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/tooltip', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: tooltip.js v3.3.6 - * http://getbootstrap.com/javascript/#tooltip - * Inspired by the original jQuery.tipsy by Jason Frame - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TOOLTIP PUBLIC CLASS DEFINITION - // =============================== - - var Tooltip = function (element, options) { - this.type = null - this.options = null - this.enabled = null - this.timeout = null - this.hoverState = null - this.$element = null - this.inState = null - - this.init('tooltip', element, options) - } - - Tooltip.VERSION = '3.3.6' - - Tooltip.TRANSITION_DURATION = 150 - - Tooltip.DEFAULTS = { - animation: true, - placement: 'top', - selector: false, - template: '', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - container: false, - viewport: { - selector: 'body', - padding: 0 - } - } - - Tooltip.prototype.init = function (type, element, options) { - this.enabled = true - this.type = type - this.$element = $(element) - this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) - this.inState = { click: false, hover: false, focus: false } - - if (this.$element[0] instanceof document.constructor && !this.options.selector) { - throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') - } - - var triggers = this.options.trigger.split(' ') - - for (var i = triggers.length; i--;) { - var trigger = triggers[i] - - if (trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (trigger != 'manual') { - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' - - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) - } - } - - this.options.selector ? - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : - this.fixTitle() - } - - Tooltip.prototype.getDefaults = function () { - return Tooltip.DEFAULTS - } - - Tooltip.prototype.getOptions = function (options) { - options = $.extend({}, this.getDefaults(), this.$element.data(), options) - - if (options.delay && typeof options.delay == 'number') { - options.delay = { - show: options.delay, - hide: options.delay - } - } - - return options - } - - Tooltip.prototype.getDelegateOptions = function () { - var options = {} - var defaults = this.getDefaults() - - this._options && $.each(this._options, function (key, value) { - if (defaults[key] != value) options[key] = value - }) - - return options - } - - Tooltip.prototype.enter = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true - } - - if (self.tip().hasClass('in') || self.hoverState == 'in') { - self.hoverState = 'in' - return - } - - clearTimeout(self.timeout) - - self.hoverState = 'in' - - if (!self.options.delay || !self.options.delay.show) return self.show() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'in') self.show() - }, self.options.delay.show) - } - - Tooltip.prototype.isInStateTrue = function () { - for (var key in this.inState) { - if (this.inState[key]) return true - } - - return false - } - - Tooltip.prototype.leave = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false - } - - if (self.isInStateTrue()) return - - clearTimeout(self.timeout) - - self.hoverState = 'out' - - if (!self.options.delay || !self.options.delay.hide) return self.hide() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'out') self.hide() - }, self.options.delay.hide) - } - - Tooltip.prototype.show = function () { - var e = $.Event('show.bs.' + this.type) - - if (this.hasContent() && this.enabled) { - this.$element.trigger(e) - - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) - if (e.isDefaultPrevented() || !inDom) return - var that = this - - var $tip = this.tip() - - var tipId = this.getUID(this.type) - - this.setContent() - $tip.attr('id', tipId) - this.$element.attr('aria-describedby', tipId) - - if (this.options.animation) $tip.addClass('fade') - - var placement = typeof this.options.placement == 'function' ? - this.options.placement.call(this, $tip[0], this.$element[0]) : - this.options.placement - - var autoToken = /\s?auto?\s?/i - var autoPlace = autoToken.test(placement) - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' - - $tip - .detach() - .css({ top: 0, left: 0, display: 'block' }) - .addClass(placement) - .data('bs.' + this.type, this) - - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) - this.$element.trigger('inserted.bs.' + this.type) - - var pos = this.getPosition() - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (autoPlace) { - var orgPlacement = placement - var viewportDim = this.getPosition(this.$viewport) - - placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : - placement - - $tip - .removeClass(orgPlacement) - .addClass(placement) - } - - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) - - this.applyPlacement(calculatedOffset, placement) - - var complete = function () { - var prevHoverState = that.hoverState - that.$element.trigger('shown.bs.' + that.type) - that.hoverState = null - - if (prevHoverState == 'out') that.leave(that) - } - - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - } - } - - Tooltip.prototype.applyPlacement = function (offset, placement) { - var $tip = this.tip() - var width = $tip[0].offsetWidth - var height = $tip[0].offsetHeight - - // manually read margins because getBoundingClientRect includes difference - var marginTop = parseInt($tip.css('margin-top'), 10) - var marginLeft = parseInt($tip.css('margin-left'), 10) - - // we must check for NaN for ie 8/9 - if (isNaN(marginTop)) marginTop = 0 - if (isNaN(marginLeft)) marginLeft = 0 - - offset.top += marginTop - offset.left += marginLeft - - // $.fn.offset doesn't round pixel values - // so we use setOffset directly with our own function B-0 - $.offset.setOffset($tip[0], $.extend({ - using: function (props) { - $tip.css({ - top: Math.round(props.top), - left: Math.round(props.left) - }) - } - }, offset), 0) - - $tip.addClass('in') - - // check to see if placing tip in new offset caused the tip to resize itself - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (placement == 'top' && actualHeight != height) { - offset.top = offset.top + height - actualHeight - } - - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) - - if (delta.left) offset.left += delta.left - else offset.top += delta.top - - var isVertical = /top|bottom/.test(placement) - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' - - $tip.offset(offset) - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) - } - - Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { - this.arrow() - .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') - .css(isVertical ? 'top' : 'left', '') - } - - Tooltip.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) - $tip.removeClass('fade in top bottom left right') - } - - Tooltip.prototype.hide = function (callback) { - var that = this - var $tip = $(this.$tip) - var e = $.Event('hide.bs.' + this.type) - - function complete() { - if (that.hoverState != 'in') $tip.detach() - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) - callback && callback() - } - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - $tip.removeClass('in') - - $.support.transition && $tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - - this.hoverState = null - - return this - } - - Tooltip.prototype.fixTitle = function () { - var $e = this.$element - if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') - } - } - - Tooltip.prototype.hasContent = function () { - return this.getTitle() - } - - Tooltip.prototype.getPosition = function ($element) { - $element = $element || this.$element - - var el = $element[0] - var isBody = el.tagName == 'BODY' - - var elRect = el.getBoundingClientRect() - if (elRect.width == null) { - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) - } - var elOffset = isBody ? { top: 0, left: 0 } : $element.offset() - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null - - return $.extend({}, elRect, scroll, outerDims, elOffset) - } - - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } - - } - - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { - var delta = { top: 0, left: 0 } - if (!this.$viewport) return delta - - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 - var viewportDimensions = this.getPosition(this.$viewport) - - if (/right|left/.test(placement)) { - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight - if (topEdgeOffset < viewportDimensions.top) { // top overflow - delta.top = viewportDimensions.top - topEdgeOffset - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset - } - } else { - var leftEdgeOffset = pos.left - viewportPadding - var rightEdgeOffset = pos.left + viewportPadding + actualWidth - if (leftEdgeOffset < viewportDimensions.left) { // left overflow - delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset - } - } - - return delta - } - - Tooltip.prototype.getTitle = function () { - var title - var $e = this.$element - var o = this.options - - title = $e.attr('data-original-title') - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) - - return title - } - - Tooltip.prototype.getUID = function (prefix) { - do prefix += ~~(Math.random() * 1000000) - while (document.getElementById(prefix)) - return prefix - } - - Tooltip.prototype.tip = function () { - if (!this.$tip) { - this.$tip = $(this.options.template) - if (this.$tip.length != 1) { - throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') - } - } - return this.$tip - } - - Tooltip.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) - } - - Tooltip.prototype.enable = function () { - this.enabled = true - } - - Tooltip.prototype.disable = function () { - this.enabled = false - } - - Tooltip.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - } - - Tooltip.prototype.toggle = function (e) { - var self = this - if (e) { - self = $(e.currentTarget).data('bs.' + this.type) - if (!self) { - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) - $(e.currentTarget).data('bs.' + this.type, self) - } - } - - if (e) { - self.inState.click = !self.inState.click - if (self.isInStateTrue()) self.enter(self) - else self.leave(self) - } else { - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) - } - } - - Tooltip.prototype.destroy = function () { - var that = this - clearTimeout(this.timeout) - this.hide(function () { - that.$element.off('.' + that.type).removeData('bs.' + that.type) - if (that.$tip) { - that.$tip.detach() - } - that.$tip = null - that.$arrow = null - that.$viewport = null - }) - } - - - // TOOLTIP PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tooltip') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tooltip - - $.fn.tooltip = Plugin - $.fn.tooltip.Constructor = Tooltip - - - // TOOLTIP NO CONFLICT - // =================== - - $.fn.tooltip.noConflict = function () { - $.fn.tooltip = old - return this - } - -}(jQuery); - - }); -require.register('bootstrap/Users/cablanchard/Developer/node/sws_gathers/node_modules/bootstrap/js/transition', function(exports,req,module){ - var require = __makeRequire((req), {}); - /* ======================================================================== - * Bootstrap: transition.js v3.3.6 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - - return false // explicit for ie8 ( ._.) - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - - if (!$.support.transition) return - - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) - } - } - }) - -}(jQuery); - - }); -require.register('howler', function(exports,req,module){ - var require = __makeRequire((function(n) { return req(n.replace('./', 'howler/')); }), {}); - /*! - * howler.js v1.1.28 - * howlerjs.com - * - * (c) 2013-2015, James Simpson of GoldFire Studios - * goldfirestudios.com - * - * MIT License - */ - -(function() { - // setup - var cache = {}; - - // setup the audio context - var ctx = null, - usingWebAudio = true, - noAudio = false; - try { - if (typeof AudioContext !== 'undefined') { - ctx = new AudioContext(); - } else if (typeof webkitAudioContext !== 'undefined') { - ctx = new webkitAudioContext(); - } else { - usingWebAudio = false; - } - } catch(e) { - usingWebAudio = false; - } - - if (!usingWebAudio) { - if (typeof Audio !== 'undefined') { - try { - new Audio(); - } catch(e) { - noAudio = true; - } - } else { - noAudio = true; - } - } - - // create a master gain node - if (usingWebAudio) { - var masterGain = (typeof ctx.createGain === 'undefined') ? ctx.createGainNode() : ctx.createGain(); - masterGain.gain.value = 1; - masterGain.connect(ctx.destination); - } - - // create global controller - var HowlerGlobal = function(codecs) { - this._volume = 1; - this._muted = false; - this.usingWebAudio = usingWebAudio; - this.ctx = ctx; - this.noAudio = noAudio; - this._howls = []; - this._codecs = codecs; - this.iOSAutoEnable = true; - }; - HowlerGlobal.prototype = { - /** - * Get/set the global volume for all sounds. - * @param {Float} vol Volume from 0.0 to 1.0. - * @return {Howler/Float} Returns self or current volume. - */ - volume: function(vol) { - var self = this; - - // make sure volume is a number - vol = parseFloat(vol); - - if (vol >= 0 && vol <= 1) { - self._volume = vol; - - if (usingWebAudio) { - masterGain.gain.value = vol; - } - - // loop through cache and change volume of all nodes that are using HTML5 Audio - for (var key in self._howls) { - if (self._howls.hasOwnProperty(key) && self._howls[key]._webAudio === false) { - // loop through the audio nodes - for (var i=0; i 0) ? node._pos : self._sprite[sprite][0] / 1000; - - // determine how long to play for - var duration = 0; - if (self._webAudio) { - duration = self._sprite[sprite][1] / 1000 - node._pos; - if (node._pos > 0) { - pos = self._sprite[sprite][0] / 1000 + pos; - } - } else { - duration = self._sprite[sprite][1] / 1000 - (pos - self._sprite[sprite][0] / 1000); - } - - // determine if this sound should be looped - var loop = !!(self._loop || self._sprite[sprite][2]); - - // set timer to fire the 'onend' event - var soundId = (typeof callback === 'string') ? callback : Math.round(Date.now() * Math.random()) + '', - timerId; - (function() { - var data = { - id: soundId, - sprite: sprite, - loop: loop - }; - timerId = setTimeout(function() { - // if looping, restart the track - if (!self._webAudio && loop) { - self.stop(data.id).play(sprite, data.id); - } - - // set web audio node to paused at end - if (self._webAudio && !loop) { - self._nodeById(data.id).paused = true; - self._nodeById(data.id)._pos = 0; - - // clear the end timer - self._clearEndTimer(data.id); - } - - // end the track if it is HTML audio and a sprite - if (!self._webAudio && !loop) { - self.stop(data.id); - } - - // fire ended event - self.on('end', soundId); - }, duration * 1000); - - // store the reference to the timer - self._onendTimer.push({timer: timerId, id: data.id}); - })(); - - if (self._webAudio) { - var loopStart = self._sprite[sprite][0] / 1000, - loopEnd = self._sprite[sprite][1] / 1000; - - // set the play id to this node and load into context - node.id = soundId; - node.paused = false; - refreshBuffer(self, [loop, loopStart, loopEnd], soundId); - self._playStart = ctx.currentTime; - node.gain.value = self._volume; - - if (typeof node.bufferSource.start === 'undefined') { - loop ? node.bufferSource.noteGrainOn(0, pos, 86400) : node.bufferSource.noteGrainOn(0, pos, duration); - } else { - loop ? node.bufferSource.start(0, pos, 86400) : node.bufferSource.start(0, pos, duration); - } - } else { - if (node.readyState === 4 || !node.readyState && navigator.isCocoonJS) { - node.readyState = 4; - node.id = soundId; - node.currentTime = pos; - node.muted = Howler._muted || node.muted; - node.volume = self._volume * Howler.volume(); - setTimeout(function() { node.play(); }, 0); - } else { - self._clearEndTimer(soundId); - - (function(){ - var sound = self, - playSprite = sprite, - fn = callback, - newNode = node; - var listener = function() { - sound.play(playSprite, fn); - - // clear the event listener - newNode.removeEventListener('canplaythrough', listener, false); - }; - newNode.addEventListener('canplaythrough', listener, false); - })(); - - return self; - } - } - - // fire the play event and send the soundId back in the callback - self.on('play'); - if (typeof callback === 'function') callback(soundId); - - return self; - }); - - return self; - }, - - /** - * Pause playback and save the current position. - * @param {String} id (optional) The play instance ID. - * @return {Howl} - */ - pause: function(id) { - var self = this; - - // if the sound hasn't been loaded, add it to the event queue - if (!self._loaded) { - self.on('play', function() { - self.pause(id); - }); - - return self; - } - - // clear 'onend' timer - self._clearEndTimer(id); - - var activeNode = (id) ? self._nodeById(id) : self._activeNode(); - if (activeNode) { - activeNode._pos = self.pos(null, id); - - if (self._webAudio) { - // make sure the sound has been created - if (!activeNode.bufferSource || activeNode.paused) { - return self; - } - - activeNode.paused = true; - if (typeof activeNode.bufferSource.stop === 'undefined') { - activeNode.bufferSource.noteOff(0); - } else { - activeNode.bufferSource.stop(0); - } - } else { - activeNode.pause(); - } - } - - self.on('pause'); - - return self; - }, - - /** - * Stop playback and reset to start. - * @param {String} id (optional) The play instance ID. - * @return {Howl} - */ - stop: function(id) { - var self = this; - - // if the sound hasn't been loaded, add it to the event queue - if (!self._loaded) { - self.on('play', function() { - self.stop(id); - }); - - return self; - } - - // clear 'onend' timer - self._clearEndTimer(id); - - var activeNode = (id) ? self._nodeById(id) : self._activeNode(); - if (activeNode) { - activeNode._pos = 0; - - if (self._webAudio) { - // make sure the sound has been created - if (!activeNode.bufferSource || activeNode.paused) { - return self; - } - - activeNode.paused = true; - - if (typeof activeNode.bufferSource.stop === 'undefined') { - activeNode.bufferSource.noteOff(0); - } else { - activeNode.bufferSource.stop(0); - } - } else if (!isNaN(activeNode.duration)) { - activeNode.pause(); - activeNode.currentTime = 0; - } - } - - return self; - }, - - /** - * Mute this sound. - * @param {String} id (optional) The play instance ID. - * @return {Howl} - */ - mute: function(id) { - var self = this; - - // if the sound hasn't been loaded, add it to the event queue - if (!self._loaded) { - self.on('play', function() { - self.mute(id); - }); - - return self; - } - - var activeNode = (id) ? self._nodeById(id) : self._activeNode(); - if (activeNode) { - if (self._webAudio) { - activeNode.gain.value = 0; - } else { - activeNode.muted = true; - } - } - - return self; - }, - - /** - * Unmute this sound. - * @param {String} id (optional) The play instance ID. - * @return {Howl} - */ - unmute: function(id) { - var self = this; - - // if the sound hasn't been loaded, add it to the event queue - if (!self._loaded) { - self.on('play', function() { - self.unmute(id); - }); - - return self; - } - - var activeNode = (id) ? self._nodeById(id) : self._activeNode(); - if (activeNode) { - if (self._webAudio) { - activeNode.gain.value = self._volume; - } else { - activeNode.muted = false; - } - } - - return self; - }, - - /** - * Get/set volume of this sound. - * @param {Float} vol Volume from 0.0 to 1.0. - * @param {String} id (optional) The play instance ID. - * @return {Howl/Float} Returns self or current volume. - */ - volume: function(vol, id) { - var self = this; - - // make sure volume is a number - vol = parseFloat(vol); - - if (vol >= 0 && vol <= 1) { - self._volume = vol; - - // if the sound hasn't been loaded, add it to the event queue - if (!self._loaded) { - self.on('play', function() { - self.volume(vol, id); - }); - - return self; - } - - var activeNode = (id) ? self._nodeById(id) : self._activeNode(); - if (activeNode) { - if (self._webAudio) { - activeNode.gain.value = vol; - } else { - activeNode.volume = vol * Howler.volume(); - } - } - - return self; - } else { - return self._volume; - } - }, - - /** - * Get/set whether to loop the sound. - * @param {Boolean} loop To loop or not to loop, that is the question. - * @return {Howl/Boolean} Returns self or current looping value. - */ - loop: function(loop) { - var self = this; - - if (typeof loop === 'boolean') { - self._loop = loop; - - return self; - } else { - return self._loop; - } - }, - - /** - * Get/set sound sprite definition. - * @param {Object} sprite Example: {spriteName: [offset, duration, loop]} - * @param {Integer} offset Where to begin playback in milliseconds - * @param {Integer} duration How long to play in milliseconds - * @param {Boolean} loop (optional) Set true to loop this sprite - * @return {Howl} Returns current sprite sheet or self. - */ - sprite: function(sprite) { - var self = this; - - if (typeof sprite === 'object') { - self._sprite = sprite; - - return self; - } else { - return self._sprite; - } - }, - - /** - * Get/set the position of playback. - * @param {Float} pos The position to move current playback to. - * @param {String} id (optional) The play instance ID. - * @return {Howl/Float} Returns self or current playback position. - */ - pos: function(pos, id) { - var self = this; - - // if the sound hasn't been loaded, add it to the event queue - if (!self._loaded) { - self.on('load', function() { - self.pos(pos); - }); - - return typeof pos === 'number' ? self : self._pos || 0; - } - - // make sure we are dealing with a number for pos - pos = parseFloat(pos); - - var activeNode = (id) ? self._nodeById(id) : self._activeNode(); - if (activeNode) { - if (pos >= 0) { - self.pause(id); - activeNode._pos = pos; - self.play(activeNode._sprite, id); - - return self; - } else { - return self._webAudio ? activeNode._pos + (ctx.currentTime - self._playStart) : activeNode.currentTime; - } - } else if (pos >= 0) { - return self; - } else { - // find the first inactive node to return the pos for - for (var i=0; i= 0 || x < 0) { - if (self._webAudio) { - var activeNode = (id) ? self._nodeById(id) : self._activeNode(); - if (activeNode) { - self._pos3d = [x, y, z]; - activeNode.panner.setPosition(x, y, z); - activeNode.panner.panningModel = self._model || 'HRTF'; - } - } - } else { - return self._pos3d; - } - - return self; - }, - - /** - * Fade a currently playing sound between two volumes. - * @param {Number} from The volume to fade from (0.0 to 1.0). - * @param {Number} to The volume to fade to (0.0 to 1.0). - * @param {Number} len Time in milliseconds to fade. - * @param {Function} callback (optional) Fired when the fade is complete. - * @param {String} id (optional) The play instance ID. - * @return {Howl} - */ - fade: function(from, to, len, callback, id) { - var self = this, - diff = Math.abs(from - to), - dir = from > to ? 'down' : 'up', - steps = diff / 0.01, - stepTime = len / steps; - - // if the sound hasn't been loaded, add it to the event queue - if (!self._loaded) { - self.on('load', function() { - self.fade(from, to, len, callback, id); - }); - - return self; - } - - // set the volume to the start position - self.volume(from, id); - - for (var i=1; i<=steps; i++) { - (function() { - var change = self._volume + (dir === 'up' ? 0.01 : -0.01) * i, - vol = Math.round(1000 * change) / 1000, - toVol = to; - - setTimeout(function() { - self.volume(vol, id); - - if (vol === toVol) { - if (callback) callback(); - } - }, stepTime * i); - })(); - } - }, - - /** - * [DEPRECATED] Fade in the current sound. - * @param {Float} to Volume to fade to (0.0 to 1.0). - * @param {Number} len Time in milliseconds to fade. - * @param {Function} callback - * @return {Howl} - */ - fadeIn: function(to, len, callback) { - return this.volume(0).play().fade(0, to, len, callback); - }, - - /** - * [DEPRECATED] Fade out the current sound and pause when finished. - * @param {Float} to Volume to fade to (0.0 to 1.0). - * @param {Number} len Time in milliseconds to fade. - * @param {Function} callback - * @param {String} id (optional) The play instance ID. - * @return {Howl} - */ - fadeOut: function(to, len, callback, id) { - var self = this; - - return self.fade(self._volume, to, len, function() { - if (callback) callback(); - self.pause(id); - - // fire ended event - self.on('end'); - }, id); - }, - - /** - * Get an audio node by ID. - * @return {Howl} Audio node. - */ - _nodeById: function(id) { - var self = this, - node = self._audioNode[0]; - - // find the node with this ID - for (var i=0; i=0; i--) { - if (inactive <= 5) { - break; - } - - if (self._audioNode[i].paused) { - // disconnect the audio source if using Web Audio - if (self._webAudio) { - self._audioNode[i].disconnect(0); - } - - inactive--; - self._audioNode.splice(i, 1); - } - } - }, - - /** - * Clear 'onend' timeout before it ends. - * @param {String} soundId The play instance ID. - */ - _clearEndTimer: function(soundId) { - var self = this, - index = 0; - - // loop through the timers to find the one associated with this sound - for (var i=0; i= 0) { - Howler._howls.splice(index, 1); - } - - // delete this sound from the cache - delete cache[self._src]; - self = null; - } - - }; - - // only define these functions when using WebAudio - if (usingWebAudio) { - - /** - * Buffer a sound from URL (or from cache) and decode to audio source (Web Audio API). - * @param {Object} obj The Howl object for the sound to load. - * @param {String} url The path to the sound file. - */ - var loadBuffer = function(obj, url) { - // check if the buffer has already been cached - if (url in cache) { - // set the duration from the cache - obj._duration = cache[url].duration; - - // load the sound into this object - loadSound(obj); - return; - } - - if (/^data:[^;]+;base64,/.test(url)) { - // Decode base64 data-URIs because some browsers cannot load data-URIs with XMLHttpRequest. - var data = atob(url.split(',')[1]); - var dataView = new Uint8Array(data.length); - for (var i=0; i= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = jQuery.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - // adding 1 corrects loss of precision from parseFloat (#15100) - var realStringObj = obj && obj.toString(); - return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0; - }, - - isPlainObject: function( obj ) { - - // Not plain objects: - // - Any object or value whose internal [[Class]] property is not "[object Object]" - // - DOM nodes - // - window - if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.constructor && - !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { - return false; - } - - // If the function hasn't returned already, we're confident that - // |obj| is a plain object, created by {} or constructed with new Object - return true; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android<4.0, iOS<6 (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - var script, - indirect = eval; - - code = jQuery.trim( code ); - - if ( code ) { - - // If the code includes a valid, prologue position - // strict mode pragma, execute code by injecting a - // script tag into the document. - if ( code.indexOf( "use strict" ) === 1 ) { - script = document.createElement( "script" ); - script.text = code; - document.head.appendChild( script ).parentNode.removeChild( script ); - } else { - - // Otherwise, avoid the DOM node creation, insertion - // and removal by using an indirect global eval - - indirect( code ); - } - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Support: IE9-11+ - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android<4.1 - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -// JSHint would error on this code due to the Symbol not being defined in ES5. -// Defining this global in .jshintrc would create a danger of using the global -// unguarded in another place, it seems safer to just disable JSHint for these -// three lines. -/* jshint ignore: start */ -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} -/* jshint ignore: end */ - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: iOS 8.2 (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.2.1 - * http://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2015-10-17 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // http://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, nidselect, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']"; - while ( i-- ) { - groups[i] = nidselect + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, parent, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( (parent = document.defaultView) && parent.top !== parent ) { - // Support: IE 11 - if ( parent.addEventListener ) { - parent.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", unloadHandler ); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( document.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var m = context.getElementById( id ); - return m ? [ m ] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - docElem.appendChild( div ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibing-combinator selector` fails - if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( (oldCache = uniqueCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context === document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( div ) { - div.innerHTML = ""; - return div.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - -var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ ); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - } ); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, - len = this.length, - ret = [], - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - // Support: Blackberry 4.6 - // gEBID returns nodes no longer in the document (#6963) - if ( elem && elem.parentNode ) { - - // Inject the element directly into the jQuery object - this.length = 1; - this[ 0 ] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( pos ? - pos.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - return elem.contentDocument || jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnotwhite = ( /\S+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( jQuery.isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ], - [ "notify", "progress", jQuery.Callbacks( "memory" ) ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this === promise ? newDefer.promise() : this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( function() { - - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || - ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. - // If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // Add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .progress( updateFunc( i, progressContexts, progressValues ) ) - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ); - } else { - --remaining; - } - } - } - - // If we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -} ); - - -// The deferred used on DOM ready -var readyList; - -jQuery.fn.ready = function( fn ) { - - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - jQuery( document ).off( "ready" ); - } - } -} ); - -/** - * The ready event handler and self cleanup method - */ -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called - // after the browser event has already occurred. - // Support: IE9-10 only - // Older IE sometimes signals "interactive" too soon - if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - - } else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); - } - } - return readyList.promise( obj ); -}; - -// Kick off the DOM ready check even if the user does not -jQuery.ready.promise(); - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - len ? fn( elems[ 0 ], key ) : emptyGet; -}; -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - /* jshint -W018 */ - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - register: function( owner, initial ) { - var value = initial || {}; - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable, non-writable property - // configurability must be true to allow the property to be - // deleted with the delete operator - } else { - Object.defineProperty( owner, this.expando, { - value: value, - writable: true, - configurable: true - } ); - } - return owner[ this.expando ]; - }, - cache: function( owner ) { - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( !acceptData( owner ) ) { - return {}; - } - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - if ( typeof data === "string" ) { - cache[ data ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ prop ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - owner[ this.expando ] && owner[ this.expando ][ key ]; - }, - access: function( owner, key, value ) { - var stored; - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - stored = this.get( owner, key ); - - return stored !== undefined ? - stored : this.get( owner, jQuery.camelCase( key ) ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, name, camel, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key === undefined ) { - this.register( owner ); - - } else { - - // Support array or space separated string of keys - if ( jQuery.isArray( key ) ) { - - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = key.concat( key.map( jQuery.camelCase ) ); - } else { - camel = jQuery.camelCase( key ); - - // Try the string as a key before any manipulation - if ( key in cache ) { - name = [ key, camel ]; - } else { - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - name = camel; - name = name in cache ? - [ name ] : ( name.match( rnotwhite ) || [] ); - } - } - - i = name.length; - - while ( i-- ) { - delete cache[ name[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <= 35-45+ - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://code.google.com/p/chromium/issues/detail?id=378607 - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE11+ - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data, camelKey; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // with the key as-is - data = dataUser.get( elem, key ) || - - // Try to find dashed key if it exists (gh-2779) - // This is for 2.2.x only - dataUser.get( elem, key.replace( rmultiDash, "-$&" ).toLowerCase() ); - - if ( data !== undefined ) { - return data; - } - - camelKey = jQuery.camelCase( key ); - - // Attempt to get data from the cache - // with the key camelized - data = dataUser.get( elem, camelKey ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, camelKey, undefined ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - camelKey = jQuery.camelCase( key ); - this.each( function() { - - // First, attempt to store a copy or reference of any - // data that might've been store with a camelCased key. - var data = dataUser.get( this, camelKey ); - - // For HTML5 data-* attribute interop, we have to - // store property names with dashes in a camelCase form. - // This might not apply to all properties...* - dataUser.set( this, camelKey, value ); - - // *... In the case of properties that might _actually_ - // have dashes, we need to also store a copy of that - // unchanged property. - if ( key.indexOf( "-" ) > -1 && data !== undefined ) { - dataUser.set( this, key, value ); - } - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHidden = function( elem, el ) { - - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || - !jQuery.contains( elem.ownerDocument, elem ); - }; - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, - scale = 1, - maxIterations = 20, - currentValue = tween ? - function() { return tween.cur(); } : - function() { return jQuery.css( elem, prop, "" ); }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - do { - - // If previous iteration zeroed out, double until we get *something*. - // Use string for doubling so we don't accidentally see scale as unchanged below - scale = scale || ".5"; - - // Adjust and apply - initialInUnit = initialInUnit / scale; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Update scale, tolerating zero or NaN from tween.cur() - // Break the loop if scale is unchanged or perfect, or if we've just had enough. - } while ( - scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations - ); - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([\w:-]+)/ ); - -var rscriptType = ( /^$|\/(?:java|ecma)script/i ); - - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // Support: IE9 - option: [ 1, "" ], - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
    " ], - col: [ 2, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - _default: [ 0, "", "" ] -}; - -// Support: IE9 -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - - -function getAll( context, tag ) { - - // Support: IE9-11+ - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== "undefined" ? - context.querySelectorAll( tag || "*" ) : - []; - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], ret ) : - ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - - // Support: Android<4.1, PhantomJS<2 - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android<4.1, PhantomJS<2 - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0-4.3, Safari<=5.1 - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Safari<=5.1, Android<4.2 - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<=11+ - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE9 -// See #13393 for more info -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = {}; - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, j, ret, matched, handleObj, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, matches, sel, handleObj, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Support (at least): Chrome, IE9 - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // - // Support: Firefox<=42+ - // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343) - if ( delegateCount && cur.nodeType && - ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push( { elem: cur, handlers: matches } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " + - "metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split( " " ), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: ( "button buttons clientX clientY offsetX offsetY pageX pageY " + - "screenX screenY toElement" ).split( " " ), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + - ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + - ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: Cordova 2.5 (WebKit) (#13255) - // All events should have a target; Cordova deviceready doesn't - if ( !event.target ) { - event.target = document; - } - - // Support: Safari 6.0+, Chrome<28 - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android<4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://code.google.com/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, - - // Support: IE 10-11, Edge 10240+ - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -function manipulationTarget( elem, content ) { - if ( jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return elem.getElementsByTagName( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android<4.1, PhantomJS<2 - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <= 35-45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <= 35-45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - - // Keep domManip exposed until 3.0 (gh-2225) - domManip: domManip, - - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: QtWebKit - // .get() because push.apply(_, arraylike) throws - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); - - -var iframe, - elemdisplay = { - - // Support: Firefox - // We have to pre-define these values for FF (#10227) - HTML: "block", - BODY: "block" - }; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ - -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - display = jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = ( iframe || jQuery( "