~fluix/fluix.one

600ce73ac4577b427ebdab85d5f02ccb4faf4e73 — Steven Guikal a month ago abae0e7
Add ECOO 2021 blog post
A content/blog/ecoo-2021.md => content/blog/ecoo-2021.md +118 -0
@@ 0,0 1,118 @@
---
title: "Hosting a 700 Person Programming Contest - ECOO 2021"
date: 2021-05-05
draft: false
---

On May 1st, 2021, the 36th annual Educational Computing Organization of Ontario (ECOO) Programming Contest was held. This contest has been the culmination of over a month of work by Theodore Preduta, [Larry Yuan](https://larry.science/), [Keenan Gugeler](https://dmoj.ca/user/Riolku), Christopher Trevisan, and myself, alongside Valentina Krasteva and David Stermole and the support of [ECOO](https://ecoo.org/) and [ECOO-CS](http://ecoocs.org/). This is my second year involved in the hosting of this event so I figured I would write about the setup and all that went right and wrong.

### Background

This programming contest was run on a platform called [DMOJ](https://dmoj.ca/), an [AGPL-license online judge](https://github.com/DMOJ/), for accepting competitor code and rating its correctness. [A fork](https://github.com/fluix-dev/ecoo-site) was created with various unnecessary functionalities removed. In a broad sense, DMOJ works in the following manner:

<img src="background.svg">

This year's contest contained [six (6) problems](https://dmoj.ca/problems/?search=ECOO21) ranging in difficulty from complete beginner to the highest level of competitive programming. A big thanks goes to Keenan and Chris for creating these problems and [Andrew Qi Tang](https://andrewqt.github.io/) for testing them before the competition.

### Network

Nearly 700 people signed up to do the contest and we wanted to make sure that the site ran smoothly. Last year's approach was to use a smaller number (&lt;5) of more powerful site servers behind a loadbalancer to distribute load. This vertical scaling approach worked quite well, but we decided to try a more horizontal-scaling based approach this year with a larger number of less powerful servers. Our entire network was setup on [DigitalOcean Droplets](https://www.digitalocean.com/products/droplets/) with the database and individual sites on 2 core / 2 GB RAM systems and everything else on 1 core / 1 GB RAM. All internal networking was done with DigitalOcean's provided private networking and formed the following topology:

<img src="topology.svg">

Our load balancer, central servers, and judges performed fantastically. They maintained low load throughout the entire contest, even during our fuck up (explained soon). Throughout the competition, we deployed roughly fifteen (15) sites running a [Django](https://www.djangoproject.com/) [app](https://github.com/fluix-dev/ecoo-site) with [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) and ten (10) judges running a [Docker](https://www.docker.com/) container with a [Python app](https://github.com/dmoj/judge-server) using the DigitalOcean API. Generally, it's best that every judge has identical hardware so that competitor submissions run at consistent speeds and get the same number of points every time. Unfortunately, this is rather difficult to get with a cloud provider because of shared resources and different hardware.[^4] For us, we figured the differences weren't drastic enough to warrant pursuing more complicated setups.

[^4]: If you'd like to read more on this topic and the solution that DMOJ settled with, see their wonderful [blog post](https://dmoj.ca/post/179-new-judges-and-new-runtimes).

As the contest began, we very quickly noticed horrible latencies and a constant stream of 500 errors. At the *very* beginning of the contest this was expected &mdash; the main contest page that competitors had open automatically refreshes when the contest begins &mdash; but several minutes in and the latencies just kept getting worse. Thinking about what was different this year and looking at a browser's network inspector while on the main scoreboard page revealed what was up. You see, the scoreboard is updated live with the help of an event server which informs connected browsers when to fetch new results. Last year, this websocket connection was disabled for non-organizers for fear of overloading the event server. It turns out that overloading the *event server* wouldn't have been an issue, but the subsequent requests from all connections to get the latest results were. Because of how quickly submissions were being made at the start of the contest, the sites became overloaded as each competitor opened several simultaneous connections.

Ideally, this would be fixed by sending the updated results over the websocket connection or, at the very least, caching the updated results that competitors were querying. As a quick fix though, we just dropped the scoreboard update event on our event server and left it at that. From then on, everything ran smoothly until the end of the competition which finished with one competitor completely finishing all the problems and several others getting partial points on the last problem.[^1]

[^1]: If you're interested in the scoring/ranking format used, see [the Rules](rules.pdf#subsection.2.9).

To end off this section, here are some mildly interesting statistics for the runtime of the competitions, including any practice rounds and some setup time. Full reports from [GoAccess](https://goaccess.io/) &mdash; an awesome log analysis tool &mdash; can also be found below.

|Metric|[ECOO 2020](report-2020.html)|[ECOO 2021](report-2021.html)|
|-|-|-|
|Registered Competitors|713|692|
|Total requests|1,335,283|615,575|
|Peak New Requests/sec[^3]|185|892|
|Visitors|3,700|6,646|
|500 Errors|62,664|22,946|
|Goaccess Report|[report-2020.html](report-2020.html)|[report-2021.html](report-2021.html)|

[^3]: From a quick `grep` of nginx logs &mdash; may not be accurate.

### Cheating

Cheating must be considered in any competitive activity, especially those in online environments. This year, all online resources were permitted which we hoped would decrease the usefulness of cheating. However, as this was still an individual contest, cheating by communicating with others was still likely. Luckily, since 2019,[^2] DMOJ has integrated the [Stanford Measure of Software Similarity (MOSS)](https://theory.stanford.edu/~aiken/moss/) API to automatically submit competitor source code and check for plagiarism. This system compares code similarity but has knowledge of language syntax so simple changes to style or variable naming is useless. As an excellent example, let's take these three submissions from three different students at the same school (you know who you are!) which MOSS flagged:

[^2]: First implemented in [#913](https://github.com/DMOJ/online-judge/pull/913) with better integration in [#1118](https://github.com/DMOJ/online-judge/pull/1118).

```py
Numbers, M, KS = input().split()
output = [-1, 0]*int(Numbers)

for i in range(int(KS)):
    First, Second, Third = map(int, input().split())

    if output[(Second*2)-1] < Third:
        output[(Second*2)-1] = Third
        output[(Second*2)-2] = First
    
for i in range(0, len(output), 2):
    print(output[i], end=" ")
```

*This student clearly likes some verbosity in variable names.*

```py
# Inputs
# N =  number of questions
# M = number of professors
# K = number of emails sent

N, M, K = input().split()
output = [-1, 0]*int(N)

for i in range(int(K)):
    # A = the professor  
    # B = question that was asked
    # C = score given to answer
    A, B, C = map(int, input().split())

    if output[(B*2)-1] < C:
        output[(B*2)-1] = C
        output[(B*2)-2] = A
    
for i in range(0, len(output), 2):
    print(output[i], end=" ")
```

*Short variable names which correspond to the question but nice comments to explain what they are.*

```py
N, M, K = input().split()
out = [-1, 0]*int(N)

for i in range(int(K)):
    A, B, C = map(int, input().split())
    if out[(B*2)-1] < C:
        out[(B*2)-1] = C
        out[(B*2)-2] = A
    
for i in range(0, len(out), 2):
    print(out[i], end=" ")
```

*The absolute minimum &mdash; a standard of competitive programmers.*

All three of these students, alongside nearly twenty (20) others have been disqualified: a similar amount of cheaters to last year so nothing too surprising. 

### Conclusion

Overall, just like last year, I really enjoyed running this contest and setting up some of the infrastructure and systems behind it. While it definitely didn't run perfectly, I think we did pretty well and provided a good experience to competitors. Unfortunately, apart from the nginx (and other service) logs, we didn't really collect any kind of system metrics for future analysis. I was planning to setup Prometheus but couldn't do it in time. Next time, I'll definitely make it a priority so we can get some better insight into any kinds of bottlenecks and so I can write a much more detailed writeup!

---

Have any questions or comments? Send me an email: [steven@fluix.one](mailto:steven@fluix.one)

A static/blog/ecoo-2021/background.svg => static/blog/ecoo-2021/background.svg +7 -0
@@ 0,0 1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg xmlns="http://www.w3.org/2000/svg" width="761" height="412" xmlns:xlink="http://www.w3.org/1999/xlink"><source><![CDATA[Competitor->Site: Submits Source Code
Site->Bridge: Sends source code
Bridge->Judge:Dispatches Judge
Note over Judge:Runs source
Judge->Bridge: Sends results
Judge-->Bridge:
Note over Bridge: Updates ranking]]></source><desc></desc><defs><marker viewBox="0 0 5 5" markerWidth="5" markerHeight="5" orient="auto" refX="5" refY="2.5" id="markerArrowBlock"><path d="M 0 0 L 5 2.5 L 0 5 z"></path></marker><marker viewBox="0 0 9.6 16" markerWidth="4" markerHeight="16" orient="auto" refX="9.6" refY="8" id="markerArrowOpen"><path d="M 9.6,8 1.92,16 0,13.7 5.76,8 0,2.286 1.92,0 9.6,8 z"></path></marker></defs><g class="title"></g><g class="actor"><rect x="10" y="20" width="116.33333587646484" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="20" y="45" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="20">Competitor</tspan></text></g><g class="actor"><rect x="10" y="353" width="116.33333587646484" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="20" y="378" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="20">Competitor</tspan></text></g><line x1="68.16666793823242" x2="68.16666793823242" y1="59" y2="353" style="stroke-width: 2px;" stroke="#000000" fill="none"></line><g class="actor"><rect x="241.93334197998047" y="20" width="58.53333282470703" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="251.93334197998047" y="45" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="251.93334197998047">Site</tspan></text></g><g class="actor"><rect x="241.93334197998047" y="353" width="58.53333282470703" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="251.93334197998047" y="378" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="251.93334197998047">Site</tspan></text></g><line x1="271.200008392334" x2="271.200008392334" y1="59" y2="353" style="stroke-width: 2px;" stroke="#000000" fill="none"></line><g class="actor"><rect x="416.06667137145996" y="20" width="77.79999923706055" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="426.06667137145996" y="45" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="426.06667137145996">Bridge</tspan></text></g><g class="actor"><rect x="416.06667137145996" y="353" width="77.79999923706055" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="426.06667137145996" y="378" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="426.06667137145996">Bridge</tspan></text></g><line x1="454.96667098999023" x2="454.96667098999023" y1="59" y2="353" style="stroke-width: 2px;" stroke="#000000" fill="none"></line><g class="actor"><rect x="595.0166683197021" y="20" width="68.16666793823242" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="605.0166683197021" y="45" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="605.0166683197021">Judge</tspan></text></g><g class="actor"><rect x="595.0166683197021" y="353" width="68.16666793823242" height="39" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="605.0166683197021" y="378" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="605.0166683197021">Judge</tspan></text></g><line x1="629.1000022888184" x2="629.1000022888184" y1="59" y2="353" style="stroke-width: 2px;" stroke="#000000" fill="none"></line><g class="signal"><text x="78.16666793823242" y="89.5" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="78.16666793823242">Submits Source Code</tspan></text><line x1="68.16666793823242" x2="271.200008392334" y1="98" y2="98" style="stroke-width: 2px; marker-end: url(&quot;#markerArrowBlock&quot;);" stroke="#000000" fill="none"></line></g><g class="signal"><text x="281.200008392334" y="128.5" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="281.200008392334">Sends source code</tspan></text><line x1="271.200008392334" x2="454.96667098999023" y1="137" y2="137" style="stroke-width: 2px; marker-end: url(&quot;#markerArrowBlock&quot;);" stroke="#000000" fill="none"></line></g><g class="signal"><text x="464.96667098999023" y="167.5" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="464.96667098999023">Dispatches Judge</tspan></text><line x1="454.96667098999023" x2="629.1000022888184" y1="176" y2="176" style="stroke-width: 2px; marker-end: url(&quot;#markerArrowBlock&quot;);" stroke="#000000" fill="none"></line></g><g class="note"><rect x="571.1166687011719" y="196" width="115.96666717529297" height="29" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="576.1166687011719" y="216" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="576.1166687011719">Runs source</tspan></text></g><g class="signal"><text x="479.4166717529297" y="255.5" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="479.4166717529297">Sends results</tspan></text><line x1="629.1000022888184" x2="454.96667098999023" y1="264" y2="264" style="stroke-width: 2px; marker-end: url(&quot;#markerArrowBlock&quot;);" stroke="#000000" fill="none"></line></g><g class="signal"><text x="542.0333366394043" y="289" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="542.0333366394043"></tspan></text><line x1="629.1000022888184" x2="454.96667098999023" y1="284" y2="284" style="stroke-width: 2px; stroke-dasharray: 6px, 2px; marker-end: url(&quot;#markerArrowBlock&quot;);" stroke="#000000" fill="none"></line></g><g class="note"><rect x="377.71667098999023" y="304" width="154.5" height="29" style="stroke-width: 2px;" stroke="#000000" fill="#ffffff"></rect><text x="382.71667098999023" y="324" style="font-size: 16px; font-family: Andale Mono, monospace;"><tspan x="382.71667098999023">Updates ranking</tspan></text></g></svg>

A static/blog/ecoo-2021/report-2020.html => static/blog/ecoo-2021/report-2020.html +5647 -0
@@ 0,0 1,5647 @@
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="referrer" content="no-referrer">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="google" content="notranslate">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="robots" content="noindex, nofollow">
  <link rel="icon" href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAADGxsYAWFhYABwcHABfAP8A/9dfAADXrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiIiIiIiIjMlUkQgAiIiIiIiIiIiIiIzJVJEIAAAIiIiIiIiIiIiMyVSRCAAIiIiIiIiIiIiIRERERERERERERERERERERIiIiIiIiIiIgACVVUiIiIiIiIiIiIiIiIAAlVVIiIiIiIiIiIiIiIhEREREREREREREREREREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" type="image/x-icon">
  <title>Server&nbsp;Statistics</title>
  <style>
    @font-face {
      font-family: 'fa';
      src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
      font-weight: normal;
      font-style: normal;
    }

    [class^="fa-"],
    [class*=" fa-"] {
      font-family: 'fa' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale
    }

    .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-square-o:before {
      content: "\f096";
    }

    .fa-user:before {
      content: "\f007"
    }

    .fa-th-large:before {
      content: "\f009"
    }

    .fa-th-list:before {
      content: "\f00b"
    }

    .fa-check:before {
      content: "\f00c"
    }

    .fa-close:before {
      content: "\f00d"
    }

    .fa-remove:before {
      content: "\f00d"
    }

    .fa-times:before {
      content: "\f00d"
    }

    .fa-cog:before {
      content: "\f013"
    }

    .fa-gear:before {
      content: "\f013"
    }

    .fa-file-o:before {
      content: "\f016"
    }

    .fa-clock-o:before {
      content: "\f017"
    }

    .fa-refresh:before {
      content: "\f021"
    }

    .fa-list-alt:before {
      content: "\f022"
    }

    .fa-list:before {
      content: "\f03a"
    }

    .fa-map-marker:before {
      content: "\f041"
    }

    .fa-check-square-o:before {
      content: "\f046"
    }

    .fa-chevron-left:before {
      content: "\f053"
    }

    .fa-chevron-right:before {
      content: "\f054"
    }

    .fa-exclamation-triangle:before {
      content: "\f071"
    }

    .fa-warning:before {
      content: "\f071"
    }

    .fa-bar-chart:before {
      content: "\f080"
    }

    .fa-bar-chart-o:before {
      content: "\f080"
    }

    .fa-cogs:before {
      content: "\f085"
    }

    .fa-gears:before {
      content: "\f085"
    }

    .fa-external-link:before {
      content: "\f08e"
    }

    .fa-bell-o:before {
      content: "\f0a2"
    }

    .fa-group:before {
      content: "\f0c0"
    }

    .fa-users:before {
      content: "\f0c0"
    }

    .fa-bars:before {
      content: "\f0c9"
    }

    .fa-navicon:before {
      content: "\f0c9"
    }

    .fa-reorder:before {
      content: "\f0c9"
    }

    .fa-table:before {
      content: "\f0ce"
    }

    .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-sort:before {
      content: "\f0dc"
    }

    .fa-unsorted:before {
      content: "\f0dc"
    }

    .fa-dashboard:before {
      content: "\f0e4"
    }

    .fa-tachometer:before {
      content: "\f0e4"
    }

    .fa-angle-double-left:before {
      content: "\f100"
    }

    .fa-angle-double-right:before {
      content: "\f101"
    }

    .fa-angle-left:before {
      content: "\f104"
    }

    .fa-angle-right:before {
      content: "\f105"
    }

    .fa-desktop:before {
      content: "\f108"
    }

    .fa-circle-o:before {
      content: "\f10c"
    }

    .fa-circle:before {
      content: "\f111"
    }

    .fa-code:before {
      content: "\f121"
    }

    .fa-file:before {
      content: "\f15b"
    }

    .fa-file-text:before {
      content: "\f15c"
    }

    .fa-google:before {
      content: "\f1a0"
    }

    .fa-circle-o-notch:before {
      content: "\f1ce"
    }

    .fa-bell-slash-o:before {
      content: "\f1f7"
    }

    .fa-area-chart:before {
      content: "\f1fe"
    }

    .fa-chrome:before {
      content: "\f268"
    }

    .fa-hashtag:before {
      content: "\f292"
    }

    .fa-question-circle-o:before {
      content: "\f29c"
    }
  </style>
  <style>
    /*! http://getbootstrap.com/customize/?id=f8abc08c888af89b2ed8cd64f48a1fe3 */
    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,
    menu,
    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-color: 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 {
      -webkit-box-sizing: content-box;
      -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"] {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      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;
      -webkit-box-sizing: content-box;
      -moz-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
    }

    /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
    @media print {

      *,
      *:before,
      *:after {
        background: transparent !important;
        color: #000 !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        text-shadow: none !important
      }

      a,
      a:visited {
        text-decoration: underline
      }

      a[href]:after {
        content: " ("attr(href) ")"
      }

      abbr[title]:after {
        content: " ("attr(title) ")"
      }

      a[href^="#"]:after,
      a[href^="javascript:"]: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
      }

      .navbar {
        display: none
      }

      .btn>.caret,
      .dropup>.btn>.caret {
        border-top-color: #000 !important
      }

      .label {
        border: 1px solid #000
      }

      .table {
        border-collapse: collapse !important
      }

      .table td,
      .table th {
        background-color: #fff !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: 10px;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
    }

    body {
      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-size: 14px;
      line-height: 1.42857143;
      color: #333;
      background-color: #fff
    }

    input,
    button,
    select,
    textarea {
      font-family: inherit;
      font-size: inherit;
      line-height: inherit
    }

    a {
      color: #337ab7;
      text-decoration: none
    }

    a:hover,
    a:focus {
      color: #23527c;
      text-decoration: underline
    }

    a:focus {
      outline: 5px auto -webkit-focus-ring-color;
      outline-offset: -2px
    }

    figure {
      margin: 0
    }

    img {
      vertical-align: middle
    }

    .img-responsive {
      display: block;
      max-width: 100%;
      height: auto
    }

    .img-rounded {
      border-radius: 6px
    }

    .img-thumbnail {
      padding: 4px;
      line-height: 1.42857143;
      background-color: #fff;
      border: 1px solid #ddd;
      border-radius: 4px;
      -webkit-transition: all .2s ease-in-out;
      -o-transition: all .2s ease-in-out;
      transition: all .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 #eee
    }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      padding: 0;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      border: 0
    }

    .sr-only-focusable:active,
    .sr-only-focusable:focus {
      position: static;
      width: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      clip: auto
    }

    [role="button"] {
      cursor: pointer
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .h1,
    .h2,
    .h3,
    .h4,
    .h5,
    .h6 {
      font-family: inherit;
      font-weight: 500;
      line-height: 1.1;
      color: inherit
    }

    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: #777
    }

    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: 24px
    }

    h4,
    .h4 {
      font-size: 18px
    }

    h5,
    .h5 {
      font-size: 14px
    }

    h6,
    .h6 {
      font-size: 12px
    }

    p {
      margin: 0 0 10px
    }

    .lead {
      margin-bottom: 20px;
      font-size: 16px;
      font-weight: 300;
      line-height: 1.4
    }

    @media (min-width:768px) {
      .lead {
        font-size: 21px
      }
    }

    small,
    .small {
      font-size: 85%
    }

    mark,
    .mark {
      background-color: #fcf8e3;
      padding: .2em
    }

    .text-left {
      text-align: left
    }

    .text-right {
      text-align: right
    }

    .text-center {
      text-align: center
    }

    .text-justify {
      text-align: justify
    }

    .text-nowrap {
      white-space: nowrap
    }

    .text-lowercase {
      text-transform: lowercase
    }

    .text-uppercase {
      text-transform: uppercase
    }

    .text-capitalize {
      text-transform: capitalize
    }

    .text-muted {
      color: #777
    }

    .text-primary {
      color: #337ab7
    }

    a.text-primary:hover,
    a.text-primary:focus {
      color: #286090
    }

    .text-success {
      color: #3c763d
    }

    a.text-success:hover,
    a.text-success:focus {
      color: #2b542c
    }

    .text-info {
      color: #31708f
    }

    a.text-info:hover,
    a.text-info:focus {
      color: #245269
    }

    .text-warning {
      color: #8a6d3b
    }

    a.text-warning:hover,
    a.text-warning:focus {
      color: #66512c
    }

    .text-danger {
      color: #a94442
    }

    a.text-danger:hover,
    a.text-danger:focus {
      color: #843534
    }

    .bg-primary {
      color: #fff;
      background-color: #337ab7
    }

    a.bg-primary:hover,
    a.bg-primary:focus {
      background-color: #286090
    }

    .bg-success {
      background-color: #dff0d8
    }

    a.bg-success:hover,
    a.bg-success:focus {
      background-color: #c1e2b3
    }

    .bg-info {
      background-color: #d9edf7
    }

    a.bg-info:hover,
    a.bg-info:focus {
      background-color: #afd9ee
    }

    .bg-warning {
      background-color: #fcf8e3
    }

    a.bg-warning:hover,
    a.bg-warning:focus {
      background-color: #f7ecb5
    }

    .bg-danger {
      background-color: #f2dede
    }

    a.bg-danger:hover,
    a.bg-danger:focus {
      background-color: #e4b9b9
    }

    .page-header {
      padding-bottom: 9px;
      margin: 40px 0 20px;
      border-bottom: 1px solid #eee
    }

    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;
      margin-left: -5px
    }

    .list-inline>li {
      display: inline-block;
      padding-left: 5px;
      padding-right: 5px
    }

    dl {
      margin-top: 0;
      margin-bottom: 20px
    }

    dt,
    dd {
      line-height: 1.42857143
    }

    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 #777
    }

    .initialism {
      font-size: 90%;
      text-transform: uppercase
    }

    blockquote {
      padding: 10px 20px;
      margin: 0 0 20px;
      font-size: 17.5px;
      border-left: 5px solid #eee
    }

    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.42857143;
      color: #777
    }

    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 #eee;
      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'
    }

    address {
      margin-bottom: 20px;
      font-style: normal;
      line-height: 1.42857143
    }

    .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.66666667%
    }

    .col-xs-10 {
      width: 83.33333333%
    }

    .col-xs-9 {
      width: 75%
    }

    .col-xs-8 {
      width: 66.66666667%
    }

    .col-xs-7 {
      width: 58.33333333%
    }

    .col-xs-6 {
      width: 50%
    }

    .col-xs-5 {
      width: 41.66666667%
    }

    .col-xs-4 {
      width: 33.33333333%
    }

    .col-xs-3 {
      width: 25%
    }

    .col-xs-2 {
      width: 16.66666667%
    }

    .col-xs-1 {
      width: 8.33333333%
    }

    .col-xs-pull-12 {
      right: 100%
    }

    .col-xs-pull-11 {
      right: 91.66666667%
    }

    .col-xs-pull-10 {
      right: 83.33333333%
    }

    .col-xs-pull-9 {
      right: 75%
    }

    .col-xs-pull-8 {
      right: 66.66666667%
    }

    .col-xs-pull-7 {
      right: 58.33333333%
    }

    .col-xs-pull-6 {
      right: 50%
    }

    .col-xs-pull-5 {
      right: 41.66666667%
    }

    .col-xs-pull-4 {
      right: 33.33333333%
    }

    .col-xs-pull-3 {
      right: 25%
    }

    .col-xs-pull-2 {
      right: 16.66666667%
    }

    .col-xs-pull-1 {
      right: 8.33333333%
    }

    .col-xs-pull-0 {
      right: auto
    }

    .col-xs-push-12 {
      left: 100%
    }

    .col-xs-push-11 {
      left: 91.66666667%
    }

    .col-xs-push-10 {
      left: 83.33333333%
    }

    .col-xs-push-9 {
      left: 75%
    }

    .col-xs-push-8 {
      left: 66.66666667%
    }

    .col-xs-push-7 {
      left: 58.33333333%
    }

    .col-xs-push-6 {
      left: 50%
    }

    .col-xs-push-5 {
      left: 41.66666667%
    }

    .col-xs-push-4 {
      left: 33.33333333%
    }

    .col-xs-push-3 {
      left: 25%
    }

    .col-xs-push-2 {
      left: 16.66666667%
    }

    .col-xs-push-1 {
      left: 8.33333333%
    }

    .col-xs-push-0 {
      left: auto
    }

    .col-xs-offset-12 {
      margin-left: 100%
    }

    .col-xs-offset-11 {
      margin-left: 91.66666667%
    }

    .col-xs-offset-10 {
      margin-left: 83.33333333%
    }

    .col-xs-offset-9 {
      margin-left: 75%
    }

    .col-xs-offset-8 {
      margin-left: 66.66666667%
    }

    .col-xs-offset-7 {
      margin-left: 58.33333333%
    }

    .col-xs-offset-6 {
      margin-left: 50%
    }

    .col-xs-offset-5 {
      margin-left: 41.66666667%
    }

    .col-xs-offset-4 {
      margin-left: 33.33333333%
    }

    .col-xs-offset-3 {
      margin-left: 25%
    }

    .col-xs-offset-2 {
      margin-left: 16.66666667%
    }

    .col-xs-offset-1 {
      margin-left: 8.33333333%
    }

    .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.66666667%
      }

      .col-sm-10 {
        width: 83.33333333%
      }

      .col-sm-9 {
        width: 75%
      }

      .col-sm-8 {
        width: 66.66666667%
      }

      .col-sm-7 {
        width: 58.33333333%
      }

      .col-sm-6 {
        width: 50%
      }

      .col-sm-5 {
        width: 41.66666667%
      }

      .col-sm-4 {
        width: 33.33333333%
      }

      .col-sm-3 {
        width: 25%
      }

      .col-sm-2 {
        width: 16.66666667%
      }

      .col-sm-1 {
        width: 8.33333333%
      }

      .col-sm-pull-12 {
        right: 100%
      }

      .col-sm-pull-11 {
        right: 91.66666667%
      }

      .col-sm-pull-10 {
        right: 83.33333333%
      }

      .col-sm-pull-9 {
        right: 75%
      }

      .col-sm-pull-8 {
        right: 66.66666667%
      }

      .col-sm-pull-7 {
        right: 58.33333333%
      }

      .col-sm-pull-6 {
        right: 50%
      }

      .col-sm-pull-5 {
        right: 41.66666667%
      }

      .col-sm-pull-4 {
        right: 33.33333333%
      }

      .col-sm-pull-3 {
        right: 25%
      }

      .col-sm-pull-2 {
        right: 16.66666667%
      }

      .col-sm-pull-1 {
        right: 8.33333333%
      }

      .col-sm-pull-0 {
        right: auto
      }

      .col-sm-push-12 {
        left: 100%
      }

      .col-sm-push-11 {
        left: 91.66666667%
      }

      .col-sm-push-10 {
        left: 83.33333333%
      }

      .col-sm-push-9 {
        left: 75%
      }

      .col-sm-push-8 {
        left: 66.66666667%
      }

      .col-sm-push-7 {
        left: 58.33333333%
      }

      .col-sm-push-6 {
        left: 50%
      }

      .col-sm-push-5 {
        left: 41.66666667%
      }

      .col-sm-push-4 {
        left: 33.33333333%
      }

      .col-sm-push-3 {
        left: 25%
      }

      .col-sm-push-2 {
        left: 16.66666667%
      }

      .col-sm-push-1 {
        left: 8.33333333%
      }

      .col-sm-push-0 {
        left: auto
      }

      .col-sm-offset-12 {
        margin-left: 100%
      }

      .col-sm-offset-11 {
        margin-left: 91.66666667%
      }

      .col-sm-offset-10 {
        margin-left: 83.33333333%
      }

      .col-sm-offset-9 {
        margin-left: 75%
      }

      .col-sm-offset-8 {
        margin-left: 66.66666667%
      }

      .col-sm-offset-7 {
        margin-left: 58.33333333%
      }

      .col-sm-offset-6 {
        margin-left: 50%
      }

      .col-sm-offset-5 {
        margin-left: 41.66666667%
      }

      .col-sm-offset-4 {
        margin-left: 33.33333333%
      }

      .col-sm-offset-3 {
        margin-left: 25%
      }

      .col-sm-offset-2 {
        margin-left: 16.66666667%
      }

      .col-sm-offset-1 {
        margin-left: 8.33333333%
      }

      .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.66666667%
      }

      .col-md-10 {
        width: 83.33333333%
      }

      .col-md-9 {
        width: 75%
      }

      .col-md-8 {
        width: 66.66666667%
      }

      .col-md-7 {
        width: 58.33333333%
      }

      .col-md-6 {
        width: 50%
      }

      .col-md-5 {
        width: 41.66666667%
      }

      .col-md-4 {
        width: 33.33333333%
      }

      .col-md-3 {
        width: 25%
      }

      .col-md-2 {
        width: 16.66666667%
      }

      .col-md-1 {
        width: 8.33333333%
      }

      .col-md-pull-12 {
        right: 100%
      }

      .col-md-pull-11 {
        right: 91.66666667%
      }

      .col-md-pull-10 {
        right: 83.33333333%
      }

      .col-md-pull-9 {
        right: 75%
      }

      .col-md-pull-8 {
        right: 66.66666667%
      }

      .col-md-pull-7 {
        right: 58.33333333%
      }

      .col-md-pull-6 {
        right: 50%
      }

      .col-md-pull-5 {
        right: 41.66666667%
      }

      .col-md-pull-4 {
        right: 33.33333333%
      }

      .col-md-pull-3 {
        right: 25%
      }

      .col-md-pull-2 {
        right: 16.66666667%
      }

      .col-md-pull-1 {
        right: 8.33333333%
      }

      .col-md-pull-0 {
        right: auto
      }

      .col-md-push-12 {
        left: 100%
      }

      .col-md-push-11 {
        left: 91.66666667%
      }

      .col-md-push-10 {
        left: 83.33333333%
      }

      .col-md-push-9 {
        left: 75%
      }

      .col-md-push-8 {
        left: 66.66666667%
      }

      .col-md-push-7 {
        left: 58.33333333%
      }

      .col-md-push-6 {
        left: 50%
      }

      .col-md-push-5 {
        left: 41.66666667%
      }

      .col-md-push-4 {
        left: 33.33333333%
      }

      .col-md-push-3 {
        left: 25%
      }

      .col-md-push-2 {
        left: 16.66666667%
      }

      .col-md-push-1 {
        left: 8.33333333%
      }

      .col-md-push-0 {
        left: auto
      }

      .col-md-offset-12 {
        margin-left: 100%
      }

      .col-md-offset-11 {
        margin-left: 91.66666667%
      }

      .col-md-offset-10 {
        margin-left: 83.33333333%
      }

      .col-md-offset-9 {
        margin-left: 75%
      }

      .col-md-offset-8 {
        margin-left: 66.66666667%
      }

      .col-md-offset-7 {
        margin-left: 58.33333333%
      }

      .col-md-offset-6 {
        margin-left: 50%
      }

      .col-md-offset-5 {
        margin-left: 41.66666667%
      }

      .col-md-offset-4 {
        margin-left: 33.33333333%
      }

      .col-md-offset-3 {
        margin-left: 25%
      }

      .col-md-offset-2 {
        margin-left: 16.66666667%
      }

      .col-md-offset-1 {
        margin-left: 8.33333333%
      }

      .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.66666667%
      }

      .col-lg-10 {
        width: 83.33333333%
      }

      .col-lg-9 {
        width: 75%
      }

      .col-lg-8 {
        width: 66.66666667%
      }

      .col-lg-7 {
        width: 58.33333333%
      }

      .col-lg-6 {
        width: 50%
      }

      .col-lg-5 {
        width: 41.66666667%
      }

      .col-lg-4 {
        width: 33.33333333%
      }

      .col-lg-3 {
        width: 25%
      }

      .col-lg-2 {
        width: 16.66666667%
      }

      .col-lg-1 {
        width: 8.33333333%
      }

      .col-lg-pull-12 {
        right: 100%
      }

      .col-lg-pull-11 {
        right: 91.66666667%
      }

      .col-lg-pull-10 {
        right: 83.33333333%
      }

      .col-lg-pull-9 {
        right: 75%
      }

      .col-lg-pull-8 {
        right: 66.66666667%
      }

      .col-lg-pull-7 {
        right: 58.33333333%
      }

      .col-lg-pull-6 {
        right: 50%
      }

      .col-lg-pull-5 {
        right: 41.66666667%
      }

      .col-lg-pull-4 {
        right: 33.33333333%
      }

      .col-lg-pull-3 {
        right: 25%
      }

      .col-lg-pull-2 {
        right: 16.66666667%
      }

      .col-lg-pull-1 {
        right: 8.33333333%
      }

      .col-lg-pull-0 {
        right: auto
      }

      .col-lg-push-12 {
        left: 100%
      }

      .col-lg-push-11 {
        left: 91.66666667%
      }

      .col-lg-push-10 {
        left: 83.33333333%
      }

      .col-lg-push-9 {
        left: 75%
      }

      .col-lg-push-8 {
        left: 66.66666667%
      }

      .col-lg-push-7 {
        left: 58.33333333%
      }

      .col-lg-push-6 {
        left: 50%
      }

      .col-lg-push-5 {
        left: 41.66666667%
      }

      .col-lg-push-4 {
        left: 33.33333333%
      }

      .col-lg-push-3 {
        left: 25%
      }

      .col-lg-push-2 {
        left: 16.66666667%
      }

      .col-lg-push-1 {
        left: 8.33333333%
      }

      .col-lg-push-0 {
        left: auto
      }

      .col-lg-offset-12 {
        margin-left: 100%
      }

      .col-lg-offset-11 {
        margin-left: 91.66666667%
      }

      .col-lg-offset-10 {
        margin-left: 83.33333333%
      }

      .col-lg-offset-9 {
        margin-left: 75%
      }

      .col-lg-offset-8 {
        margin-left: 66.66666667%
      }

      .col-lg-offset-7 {
        margin-left: 58.33333333%
      }

      .col-lg-offset-6 {
        margin-left: 50%
      }

      .col-lg-offset-5 {
        margin-left: 41.66666667%
      }

      .col-lg-offset-4 {
        margin-left: 33.33333333%
      }

      .col-lg-offset-3 {
        margin-left: 25%
      }

      .col-lg-offset-2 {
        margin-left: 16.66666667%
      }

      .col-lg-offset-1 {
        margin-left: 8.33333333%
      }

      .col-lg-offset-0 {
        margin-left: 0
      }
    }

    table {
      background-color: transparent
    }

    caption {
      padding-top: 8px;
      padding-bottom: 8px;
      color: #777;
      text-align: left
    }

    th {
      text-align: left
    }

    .table {
      width: 100%;
      max-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.42857143;
      vertical-align: top;
      border-top: 1px solid #ddd
    }

    .table>thead>tr>th {
      vertical-align: bottom;
      border-bottom: 2px solid #ddd
    }

    .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 #ddd
    }

    .table .table {
      background-color: #fff
    }

    .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 #ddd
    }

    .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 #ddd
    }

    .table-bordered>thead>tr>th,
    .table-bordered>thead>tr>td {
      border-bottom-width: 2px
    }

    .table-striped>tbody>tr:nth-of-type(odd) {
      background-color: #f9f9f9
    }

    .table-hover>tbody>tr:hover {
      background-color: #f5f5f5
    }

    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: #f5f5f5
    }

    .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:hover>.active,
    .table-hover>tbody>tr.active:hover>th {
      background-color: #e8e8e8
    }

    .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:hover>.success,
    .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:hover>.info,
    .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:hover>.warning,
    .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:hover>.danger,
    .table-hover>tbody>tr.danger:hover>th {
      background-color: #ebcccc
    }

    .table-responsive {
      overflow-x: auto;
      min-height: 0.01%
    }

    @media screen and (max-width:767px) {
      .table-responsive {
        width: 100%;
        margin-bottom: 15px;
        overflow-y: hidden;
        -ms-overflow-style: -ms-autohiding-scrollbar;
        border: 1px solid #ddd
      }

      .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: #333;
      border: 0;
      border-bottom: 1px solid #e5e5e5
    }

    label {
      display: inline-block;
      max-width: 100%;
      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;
      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: 5px auto -webkit-focus-ring-color;
      outline-offset: -2px
    }

    output {
      display: block;
      padding-top: 7px;
      font-size: 14px;
      line-height: 1.42857143;
      color: #555
    }

    .form-control {
      display: block;
      width: 100%;
      height: 34px;
      padding: 6px 12px;
      font-size: 14px;
      line-height: 1.42857143;
      color: #555;
      background-color: #fff;
      background-image: none;
      border: 1px solid #ccc;
      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, -webkit-box-shadow ease-in-out .15s;
      -o-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: #999;
      opacity: 1
    }

    .form-control:-ms-input-placeholder {
      color: #999
    }

    .form-control::-webkit-input-placeholder {
      color: #999
    }

    .form-control::-ms-expand {
      border: 0;
      background-color: transparent
    }

    .form-control[disabled],
    .form-control[readonly],
    fieldset[disabled] .form-control {
      background-color: #eee;
      opacity: 1
    }

    .form-control[disabled],
    fieldset[disabled] .form-control {
      cursor: not-allowed
    }

    textarea.form-control {
      height: auto
    }

    input[type="search"] {
      -webkit-appearance: none
    }

    @media screen and (-webkit-min-device-pixel-ratio:0) {

      input[type="date"].form-control,
      input[type="time"].form-control,
      input[type="datetime-local"].form-control,
      input[type="month"].form-control {
        line-height: 34px
      }

      input[type="date"].input-sm,
      input[type="time"].input-sm,
      input[type="datetime-local"].input-sm,
      input[type="month"].input-sm,
      .input-group-sm input[type="date"],
      .input-group-sm input[type="time"],
      .input-group-sm input[type="datetime-local"],
      .input-group-sm input[type="month"] {
        line-height: 30px
      }

      input[type="date"].input-lg,
      input[type="time"].input-lg,
      input[type="datetime-local"].input-lg,
      input[type="month"].input-lg,
      .input-group-lg input[type="date"],
      .input-group-lg input[type="time"],
      .input-group-lg input[type="datetime-local"],
      .input-group-lg input[type="month"] {
        line-height: 46px
      }
    }

    .form-group {
      margin-bottom: 15px
    }

    .radio,
    .checkbox {
      position: relative;
      display: block;
      margin-top: 10px;
      margin-bottom: 10px
    }

    .radio label,
    .checkbox label {
      min-height: 20px;
      padding-left: 20px;
      margin-bottom: 0;
      font-weight: normal;
      cursor: pointer
    }

    .radio input[type="radio"],
    .radio-inline input[type="radio"],
    .checkbox input[type="checkbox"],
    .checkbox-inline input[type="checkbox"] {
      position: absolute;
      margin-left: -20px;
      margin-top: 4px \9
    }

    .radio+.radio,
    .checkbox+.checkbox {
      margin-top: -5px
    }

    .radio-inline,
    .checkbox-inline {
      position: relative;
      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],
    input[type="radio"].disabled,
    input[type="checkbox"].disabled,
    fieldset[disabled] input[type="radio"],
    fieldset[disabled] input[type="checkbox"] {
      cursor: not-allowed
    }

    .radio-inline.disabled,
    .checkbox-inline.disabled,
    fieldset[disabled] .radio-inline,
    fieldset[disabled] .checkbox-inline {
      cursor: not-allowed
    }

    .radio.disabled label,
    .checkbox.disabled label,
    fieldset[disabled] .radio label,
    fieldset[disabled] .checkbox label {
      cursor: not-allowed
    }

    .form-control-static {
      padding-top: 7px;
      padding-bottom: 7px;
      margin-bottom: 0;
      min-height: 34px
    }

    .form-control-static.input-lg,
    .form-control-static.input-sm {
      padding-left: 0;
      padding-right: 0
    }

    .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
    }

    .form-group-sm .form-control {
      height: 30px;
      padding: 5px 10px;
      font-size: 12px;
      line-height: 1.5;
      border-radius: 3px
    }

    .form-group-sm select.form-control {
      height: 30px;
      line-height: 30px
    }

    .form-group-sm textarea.form-control,
    .form-group-sm select[multiple].form-control {
      height: auto
    }

    .form-group-sm .form-control-static {
      height: 30px;
      min-height: 32px;
      padding: 6px 10px;
      font-size: 12px;
      line-height: 1.5
    }

    .input-lg {
      height: 46px;
      padding: 10px 16px;
      font-size: 18px;
      line-height: 1.3333333;
      border-radius: 6px
    }

    select.input-lg {
      height: 46px;
      line-height: 46px
    }

    textarea.input-lg,
    select[multiple].input-lg {
      height: auto
    }

    .form-group-lg .form-control {
      height: 46px;
      padding: 10px 16px;
      font-size: 18px;
      line-height: 1.3333333;
      border-radius: 6px
    }

    .form-group-lg select.form-control {
      height: 46px;
      line-height: 46px
    }

    .form-group-lg textarea.form-control,
    .form-group-lg select[multiple].form-control {
      height: auto
    }

    .form-group-lg .form-control-static {
      height: 46px;
      min-height: 38px;
      padding: 11px 16px;
      font-size: 18px;
      line-height: 1.3333333
    }

    .has-feedback {
      position: relative
    }

    .has-feedback .form-control {
      padding-right: 42.5px
    }

    .form-control-feedback {
      position: absolute;
      top: 0;
      right: 0;
      z-index: 2;
      display: block;
      width: 34px;
      height: 34px;
      line-height: 34px;
      text-align: center;
      pointer-events: none
    }

    .input-lg+.form-control-feedback,
    .input-group-lg+.form-control-feedback,
    .form-group-lg .form-control+.form-control-feedback {
      width: 46px;
      height: 46px;
      line-height: 46px
    }

    .input-sm+.form-control-feedback,
    .input-group-sm+.form-control-feedback,
    .form-group-sm .form-control+.form-control-feedback {
      width: 30px;
      height: 30px;
      line-height: 30px
    }

    .has-success .help-block,
    .has-success .control-label,
    .has-success .radio,
    .has-success .checkbox,
    .has-success .radio-inline,
    .has-success .checkbox-inline,
    .has-success.radio label,
    .has-success.checkbox label,
    .has-success.radio-inline label,
    .has-success.checkbox-inline label {
      color: #3c763d
    }

    .has-success .form-control {
      border-color: #3c763d;
      -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: #2b542c;
      -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
      box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168
    }

    .has-success .input-group-addon {
      color: #3c763d;
      border-color: #3c763d;
      background-color: #dff0d8
    }

    .has-success .form-control-feedback {
      color: #3c763d
    }

    .has-warning .help-block,
    .has-warning .control-label,
    .has-warning .radio,
    .has-warning .checkbox,
    .has-warning .radio-inline,
    .has-warning .checkbox-inline,
    .has-warning.radio label,
    .has-warning.checkbox label,
    .has-warning.radio-inline label,
    .has-warning.checkbox-inline label {
      color: #8a6d3b
    }

    .has-warning .form-control {
      border-color: #8a6d3b;
      -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: #66512c;
      -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
      box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b
    }

    .has-warning .input-group-addon {
      color: #8a6d3b;
      border-color: #8a6d3b;
      background-color: #fcf8e3
    }

    .has-warning .form-control-feedback {
      color: #8a6d3b
    }

    .has-error .help-block,
    .has-error .control-label,
    .has-error .radio,
    .has-error .checkbox,
    .has-error .radio-inline,
    .has-error .checkbox-inline,
    .has-error.radio label,
    .has-error.checkbox label,
    .has-error.radio-inline label,
    .has-error.checkbox-inline label {
      color: #a94442
    }

    .has-error .form-control {
      border-color: #a94442;
      -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: #843534;
      -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
      box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483
    }

    .has-error .input-group-addon {
      color: #a94442;
      border-color: #a94442;
      background-color: #f2dede
    }

    .has-error .form-control-feedback {
      color: #a94442
    }

    .has-feedback label~.form-control-feedback {
      top: 25px
    }

    .has-feedback label.sr-only~.form-control-feedback {
      top: 0
    }

    .help-block {
      display: block;
      margin-top: 5px;
      margin-bottom: 10px;
      color: #737373
    }

    @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 .form-control-static {
        display: inline-block
      }

      .form-inline .input-group {
        display: inline-table;
        vertical-align: middle
      }

      .form-inline .input-group .input-group-addon,
      .form-inline .input-group .input-group-btn,
      .form-inline .input-group .form-control {
        width: auto
      }

      .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;
        vertical-align: middle
      }

      .form-inline .radio label,
      .form-inline .checkbox label {
        padding-left: 0
      }

      .form-inline .radio input[type="radio"],
      .form-inline .checkbox input[type="checkbox"] {
        position: relative;
        margin-left: 0
      }

      .form-inline .has-feedback .form-control-feedback {
        top: 0
      }
    }

    .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
    }

    @media (min-width:768px) {
      .form-horizontal .control-label {
        text-align: right;
        margin-bottom: 0;
        padding-top: 7px
      }
    }

    .form-horizontal .has-feedback .form-control-feedback {
      right: 15px
    }

    @media (min-width:768px) {
      .form-horizontal .form-group-lg .control-label {
        padding-top: 11px;
        font-size: 18px
      }
    }

    @media (min-width:768px) {
      .form-horizontal .form-group-sm .control-label {
        padding-top: 6px;
        font-size: 12px
      }
    }

    .btn {
      display: inline-block;
      margin-bottom: 0;
      font-weight: normal;
      text-align: center;
      vertical-align: middle;
      -ms-touch-action: manipulation;
      touch-action: manipulation;
      cursor: pointer;
      background-image: none;
      border: 1px solid transparent;
      white-space: nowrap;
      padding: 6px 12px;
      font-size: 14px;
      line-height: 1.42857143;
      border-radius: 4px;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none
    }

    .btn:focus,
    .btn:active:focus,
    .btn.active:focus,
    .btn.focus,
    .btn:active.focus,
    .btn.active.focus {
      outline: 5px auto -webkit-focus-ring-color;
      outline-offset: -2px
    }

    .btn:hover,
    .btn:focus,
    .btn.focus {
      color: #333;
      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;
      opacity: .65;
      filter: alpha(opacity=65);
      -webkit-box-shadow: none;
      box-shadow: none
    }

    a.btn.disabled,
    fieldset[disabled] a.btn {
      pointer-events: none
    }

    .btn-default {
      color: #333;
      background-color: #fff;
      border-color: #ccc
    }

    .btn-default:focus,
    .btn-default.focus {
      color: #333;
      background-color: #e6e6e6;
      border-color: #8c8c8c
    }

    .btn-default:hover {
      color: #333;
      background-color: #e6e6e6;
      border-color: #adadad
    }

    .btn-default:active,
    .btn-default.active,
    .open>.dropdown-toggle.btn-default {
      color: #333;
      background-color: #e6e6e6;
      border-color: #adadad
    }

    .btn-default:active:hover,
    .btn-default.active:hover,
    .open>.dropdown-toggle.btn-default:hover,
    .btn-default:active:focus,
    .btn-default.active:focus,
    .open>.dropdown-toggle.btn-default:focus,
    .btn-default:active.focus,
    .btn-default.active.focus,
    .open>.dropdown-toggle.btn-default.focus {
      color: #333;
      background-color: #d4d4d4;
      border-color: #8c8c8c
    }

    .btn-default:active,
    .btn-default.active,
    .open>.dropdown-toggle.btn-default {
      background-image: none
    }

    .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.focus,
    .btn-default[disabled].focus,
    fieldset[disabled] .btn-default.focus {
      background-color: #fff;
      border-color: #ccc
    }

    .btn-default .badge {
      color: #fff;
      background-color: #333
    }

    .btn-primary {
      color: #fff;
      background-color: #337ab7;
      border-color: #2e6da4
    }

    .btn-primary:focus,
    .btn-primary.focus {
      color: #fff;
      background-color: #286090;
      border-color: #122b40
    }

    .btn-primary:hover {
      color: #fff;
      background-color: #286090;
      border-color: #204d74
    }

    .btn-primary:active,
    .btn-primary.active,
    .open>.dropdown-toggle.btn-primary {
      color: #fff;
      background-color: #286090;
      border-color: #204d74
    }

    .btn-primary:active:hover,
    .btn-primary.active:hover,
    .open>.dropdown-toggle.btn-primary:hover,
    .btn-primary:active:focus,
    .btn-primary.active:focus,
    .open>.dropdown-toggle.btn-primary:focus,
    .btn-primary:active.focus,
    .btn-primary.active.focus,
    .open>.dropdown-toggle.btn-primary.focus {
      color: #fff;
      background-color: #204d74;
      border-color: #122b40
    }

    .btn-primary:active,
    .btn-primary.active,
    .open>.dropdown-toggle.btn-primary {
      background-image: none
    }

    .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.focus,
    .btn-primary[disabled].focus,
    fieldset[disabled] .btn-primary.focus {
      background-color: #337ab7;
      border-color: #2e6da4
    }

    .btn-primary .badge {
      color: #337ab7;
      background-color: #fff
    }

    .btn-success {
      color: #fff;
      background-color: #5cb85c;
      border-color: #4cae4c
    }

    .btn-success:focus,
    .btn-success.focus {
      color: #fff;
      background-color: #449d44;
      border-color: #255625
    }

    .btn-success:hover {
      color: #fff;
      background-color: #449d44;
      border-color: #398439
    }

    .btn-success:active,
    .btn-success.active,
    .open>.dropdown-toggle.btn-success {
      color: #fff;
      background-color: #449d44;
      border-color: #398439
    }

    .btn-success:active:hover,
    .btn-success.active:hover,
    .open>.dropdown-toggle.btn-success:hover,
    .btn-success:active:focus,
    .btn-success.active:focus,
    .open>.dropdown-toggle.btn-success:focus,
    .btn-success:active.focus,
    .btn-success.active.focus,
    .open>.dropdown-toggle.btn-success.focus {
      color: #fff;
      background-color: #398439;
      border-color: #255625
    }

    .btn-success:active,
    .btn-success.active,
    .open>.dropdown-toggle.btn-success {
      background-image: none
    }

    .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.focus,
    .btn-success[disabled].focus,
    fieldset[disabled] .btn-success.focus {
      background-color: #5cb85c;
      border-color: #4cae4c
    }

    .btn-success .badge {
      color: #5cb85c;
      background-color: #fff
    }

    .btn-info {
      color: #fff;
      background-color: #5bc0de;
      border-color: #46b8da
    }

    .btn-info:focus,
    .btn-info.focus {
      color: #fff;
      background-color: #31b0d5;
      border-color: #1b6d85
    }

    .btn-info:hover {
      color: #fff;
      background-color: #31b0d5;
      border-color: #269abc
    }

    .btn-info:active,
    .btn-info.active,
    .open>.dropdown-toggle.btn-info {
      color: #fff;
      background-color: #31b0d5;
      border-color: #269abc
    }

    .btn-info:active:hover,
    .btn-info.active:hover,
    .open>.dropdown-toggle.btn-info:hover,
    .btn-info:active:focus,
    .btn-info.active:focus,
    .open>.dropdown-toggle.btn-info:focus,
    .btn-info:active.focus,
    .btn-info.active.focus,
    .open>.dropdown-toggle.btn-info.focus {
      color: #fff;
      background-color: #269abc;
      border-color: #1b6d85
    }

    .btn-info:active,
    .btn-info.active,
    .open>.dropdown-toggle.btn-info {
      background-image: none
    }

    .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.focus,
    .btn-info[disabled].focus,
    fieldset[disabled] .btn-info.focus {
      background-color: #5bc0de;
      border-color: #46b8da
    }

    .btn-info .badge {
      color: #5bc0de;
      background-color: #fff
    }

    .btn-warning {
      color: #fff;
      background-color: #f0ad4e;
      border-color: #eea236
    }

    .btn-warning:focus,
    .btn-warning.focus {
      color: #fff;
      background-color: #ec971f;
      border-color: #985f0d
    }

    .btn-warning:hover {
      color: #fff;
      background-color: #ec971f;
      border-color: #d58512
    }

    .btn-warning:active,
    .btn-warning.active,
    .open>.dropdown-toggle.btn-warning {
      color: #fff;
      background-color: #ec971f;
      border-color: #d58512
    }

    .btn-warning:active:hover,
    .btn-warning.active:hover,
    .open>.dropdown-toggle.btn-warning:hover,
    .btn-warning:active:focus,
    .btn-warning.active:focus,
    .open>.dropdown-toggle.btn-warning:focus,
    .btn-warning:active.focus,
    .btn-warning.active.focus,
    .open>.dropdown-toggle.btn-warning.focus {
      color: #fff;
      background-color: #d58512;
      border-color: #985f0d
    }

    .btn-warning:active,
    .btn-warning.active,
    .open>.dropdown-toggle.btn-warning {
      background-image: none
    }

    .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.focus,
    .btn-warning[disabled].focus,
    fieldset[disabled] .btn-warning.focus {
      background-color: #f0ad4e;
      border-color: #eea236
    }

    .btn-warning .badge {
      color: #f0ad4e;
      background-color: #fff
    }

    .btn-danger {
      color: #fff;
      background-color: #d9534f;
      border-color: #d43f3a
    }

    .btn-danger:focus,
    .btn-danger.focus {
      color: #fff;
      background-color: #c9302c;
      border-color: #761c19
    }

    .btn-danger:hover {
      color: #fff;
      background-color: #c9302c;
      border-color: #ac2925
    }

    .btn-danger:active,
    .btn-danger.active,
    .open>.dropdown-toggle.btn-danger {
      color: #fff;
      background-color: #c9302c;
      border-color: #ac2925
    }

    .btn-danger:active:hover,
    .btn-danger.active:hover,
    .open>.dropdown-toggle.btn-danger:hover,
    .btn-danger:active:focus,
    .btn-danger.active:focus,
    .open>.dropdown-toggle.btn-danger:focus,
    .btn-danger:active.focus,
    .btn-danger.active.focus,
    .open>.dropdown-toggle.btn-danger.focus {
      color: #fff;
      background-color: #ac2925;
      border-color: #761c19
    }

    .btn-danger:active,
    .btn-danger.active,
    .open>.dropdown-toggle.btn-danger {
      background-image: none
    }

    .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.focus,
    .btn-danger[disabled].focus,
    fieldset[disabled] .btn-danger.focus {
      background-color: #d9534f;
      border-color: #d43f3a
    }

    .btn-danger .badge {
      color: #d9534f;
      background-color: #fff
    }

    .btn-link {
      color: #337ab7;
      font-weight: normal;
      border-radius: 0
    }

    .btn-link,
    .btn-link:active,
    .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: #23527c;
      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: #777;
      text-decoration: none
    }

    .btn-lg {
      padding: 10px 16px;
      font-size: 18px;
      line-height: 1.3333333;
      border-radius: 6px
    }

    .btn-sm {
      padding: 5px 10px;
      font-size: 12px;
      line-height: 1.5;
      border-radius: 3px
    }

    .btn-xs {
      padding: 1px 5px;
      font-size: 12px;
      line-height: 1.5;
      border-radius: 3px
    }

    .btn-block {
      display: block;
      width: 100%
    }

    .btn-block+.btn-block {
      margin-top: 5px
    }

    input[type="submit"].btn-block,
    input[type="reset"].btn-block,
    input[type="button"].btn-block {
      width: 100%
    }

    .caret {
      display: inline-block;
      width: 0;
      height: 0;
      margin-left: 2px;
      vertical-align: middle;
      border-top: 4px dashed;
      border-top: 4px solid \9;
      border-right: 4px solid transparent;
      border-left: 4px solid transparent
    }

    .dropup,
    .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;
      text-align: left;
      background-color: #fff;
      border: 1px solid #ccc;
      border: 1px solid rgba(0, 0, 0, 0.15);
      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);
      -webkit-background-clip: padding-box;
      background-clip: padding-box
    }

    .dropdown-menu.pull-right {
      right: 0;
      left: auto
    }

    .dropdown-menu .divider {
      height: 1px;
      margin: 9px 0;
      overflow: hidden;
      background-color: #e5e5e5
    }

    .dropdown-menu>li>a {
      display: block;
      padding: 3px 20px;
      clear: both;
      font-weight: normal;
      line-height: 1.42857143;
      color: #333;
      white-space: nowrap
    }

    .dropdown-menu>li>a:hover,
    .dropdown-menu>li>a:focus {
      text-decoration: none;
      color: #262626;
      background-color: #f5f5f5
    }

    .dropdown-menu>.active>a,
    .dropdown-menu>.active>a:hover,
    .dropdown-menu>.active>a:focus {
      color: #fff;
      text-decoration: none;
      outline: 0;
      background-color: #337ab7
    }

    .dropdown-menu>.disabled>a,
    .dropdown-menu>.disabled>a:hover,
    .dropdown-menu>.disabled>a:focus {
      color: #777
    }

    .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.42857143;
      color: #777;
      white-space: nowrap
    }

    .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 dashed;
      border-bottom: 4px solid \9;
      content: ""
    }

    .dropup .dropdown-menu,
    .navbar-fixed-bottom .dropdown .dropdown-menu {
      top: auto;
      bottom: 100%;
      margin-bottom: 2px
    }

    @media (min-width:768px) {
      .navbar-right .dropdown-menu {
        left: auto;
        right: 0
      }

      .navbar-right .dropdown-menu-left {
        left: 0;
        right: auto
      }
    }

    .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.42857143;
      text-decoration: none;
      color: #337ab7;
      background-color: #fff;
      border: 1px solid #ddd;
      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 {
      z-index: 2;
      color: #23527c;
      background-color: #eee;
      border-color: #ddd
    }

    .pagination>.active>a,
    .pagination>.active>span,
    .pagination>.active>a:hover,
    .pagination>.active>span:hover,
    .pagination>.active>a:focus,
    .pagination>.active>span:focus {
      z-index: 3;
      color: #fff;
      background-color: #337ab7;
      border-color: #337ab7;
      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: #777;
      background-color: #fff;
      border-color: #ddd;
      cursor: not-allowed
    }

    .pagination-lg>li>a,
    .pagination-lg>li>span {
      padding: 10px 16px;
      font-size: 18px;
      line-height: 1.3333333
    }

    .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;
      line-height: 1.5
    }

    .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
    }

    .label {
      display: inline;
      padding: .2em .6em .3em;
      font-size: 75%;
      font-weight: bold;
      line-height: 1;
      color: #fff;
      text-align: center;
      white-space: nowrap;
      vertical-align: baseline;
      border-radius: .25em
    }

    a.label:hover,
    a.label:focus {
      color: #fff;
      text-decoration: none;
      cursor: pointer
    }

    .label:empty {
      display: none
    }

    .btn .label {
      position: relative;
      top: -1px
    }

    .label-default {
      background-color: #777
    }

    .label-default[href]:hover,
    .label-default[href]:focus {
      background-color: #5e5e5e
    }

    .label-primary {
      background-color: #337ab7
    }

    .label-primary[href]:hover,
    .label-primary[href]:focus {
      background-color: #286090
    }

    .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
    }

    .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,
    .alert-dismissible {
      padding-right: 35px
    }

    .alert-dismissable .close,
    .alert-dismissible .close {
      position: relative;
      top: -2px;
      right: -21px;
      color: inherit
    }

    .alert-success {
      background-color: #dff0d8;
      border-color: #d6e9c6;
      color: #3c763d
    }

    .alert-success hr {
      border-top-color: #c9e2b3
    }

    .alert-success .alert-link {
      color: #2b542c
    }

    .alert-info {
      background-color: #d9edf7;
      border-color: #bce8f1;
      color: #31708f
    }

    .alert-info hr {
      border-top-color: #a6e1ec
    }

    .alert-info .alert-link {
      color: #245269
    }

    .alert-warning {
      background-color: #fcf8e3;
      border-color: #faebcc;
      color: #8a6d3b
    }

    .alert-warning hr {
      border-top-color: #f7e1b5
    }

    .alert-warning .alert-link {
      color: #66512c
    }

    .alert-danger {
      background-color: #f2dede;
      border-color: #ebccd1;
      color: #a94442
    }

    .alert-danger hr {
      border-top-color: #e4b9c0
    }

    .alert-danger .alert-link {
      color: #843534
    }

    .clearfix:before,
    .clearfix:after,
    .dl-horizontal dd:before,
    .dl-horizontal dd: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 {
      content: " ";
      display: table
    }

    .clearfix:after,
    .dl-horizontal dd:after,
    .container:after,
    .container-fluid:after,
    .row:after,
    .form-horizontal .form-group: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
    }

    .affix {
      position: fixed
    }

    @-ms-viewport {
      width: device-width
    }

    .visible-xs,
    .visible-sm,
    .visible-md,
    .visible-lg {
      display: none !important
    }

    .visible-xs-block,
    .visible-xs-inline,
    .visible-xs-inline-block,
    .visible-sm-block,
    .visible-sm-inline,
    .visible-sm-inline-block,
    .visible-md-block,
    .visible-md-inline,
    .visible-md-inline-block,
    .visible-lg-block,
    .visible-lg-inline,
    .visible-lg-inline-block {
      display: none !important
    }

    @media (max-width:767px) {
      .visible-xs {
        display: block !important
      }

      table.visible-xs {
        display: table !important
      }

      tr.visible-xs {
        display: table-row !important
      }

      th.visible-xs,
      td.visible-xs {
        display: table-cell !important
      }
    }

    @media (max-width:767px) {
      .visible-xs-block {
        display: block !important
      }
    }

    @media (max-width:767px) {
      .visible-xs-inline {
        display: inline !important
      }
    }

    @media (max-width:767px) {
      .visible-xs-inline-block {
        display: inline-block !important
      }
    }

    @media (min-width:768px) and (max-width:991px) {
      .visible-sm {
        display: block !important
      }

      table.visible-sm {
        display: table !important
      }

      tr.visible-sm {
        display: table-row !important
      }

      th.visible-sm,
      td.visible-sm {
        display: table-cell !important
      }
    }

    @media (min-width:768px) and (max-width:991px) {
      .visible-sm-block {
        display: block !important
      }
    }

    @media (min-width:768px) and (max-width:991px) {
      .visible-sm-inline {
        display: inline !important
      }
    }

    @media (min-width:768px) and (max-width:991px) {
      .visible-sm-inline-block {
        display: inline-block !important
      }
    }

    @media (min-width:992px) and (max-width:1199px) {
      .visible-md {
        display: block !important
      }

      table.visible-md {
        display: table !important
      }

      tr.visible-md {
        display: table-row !important
      }

      th.visible-md,
      td.visible-md {
        display: table-cell !important
      }
    }

    @media (min-width:992px) and (max-width:1199px) {
      .visible-md-block {
        display: block !important
      }
    }

    @media (min-width:992px) and (max-width:1199px) {
      .visible-md-inline {
        display: inline !important
      }
    }

    @media (min-width:992px) and (max-width:1199px) {
      .visible-md-inline-block {
        display: inline-block !important
      }
    }

    @media (min-width:1200px) {
      .visible-lg {
        display: block !important
      }

      table.visible-lg {
        display: table !important
      }

      tr.visible-lg {
        display: table-row !important
      }

      th.visible-lg,
      td.visible-lg {
        display: table-cell !important
      }
    }

    @media (min-width:1200px) {
      .visible-lg-block {
        display: block !important
      }
    }

    @media (min-width:1200px) {
      .visible-lg-inline {
        display: inline !important
      }
    }

    @media (min-width:1200px) {
      .visible-lg-inline-block {
        display: inline-block !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 !important
      }

      tr.visible-print {
        display: table-row !important
      }

      th.visible-print,
      td.visible-print {
        display: table-cell !important
      }
    }

    .visible-print-block {
      display: none !important
    }

    @media print {
      .visible-print-block {
        display: block !important
      }
    }

    .visible-print-inline {
      display: none !important
    }

    @media print {
      .visible-print-inline {
        display: inline !important
      }
    }

    .visible-print-inline-block {
      display: none !important
    }

    @media print {
      .visible-print-inline-block {
        display: inline-block !important
      }
    }

    @media print {
      .hidden-print {
        display: none !important
      }
    }
  </style>
  <style>
    /* GLOBAL */
    html,
    body {
      background: #f0f0f0;
      overflow-x: hidden;
    }

    h1 {
      font-weight: bold;
      letter-spacing: -3px;
    }

    h3 {
      font-size: 21px;
      letter-spacing: -1px;
    }

    .h-dashboard {
      text-transform: lowercase;
    }

    .page-header {
      border-bottom: 1px solid rgba(0, 0, 0, 0.15);
      margin: 25px 0 20px;
      position: relative;
    }

    .page-header h1 {
      margin: 0;
    }

    .pagination {
      margin: 5px 0;
    }

    .clickable,
    .expandable>td {
      cursor: pointer;
    }

    .spinner {
      color: #999;
      left: 50%;
      position: absolute;
      top: 50%;
    }

    .powered {
      bottom: 190px;
      color: #9E9E9E;
      font-size: smaller;
      position: absolute;
      right: 20px;
      transform-origin: 100% 0;
      transform: rotate(-90deg);
    }

    .powered a {
      color: #636363;
    }

    .powered span {
      color: #007bc3;
    }

    .dropdown-header {
      color: #007bc3;
      padding: 3px 25px;
      text-transform: uppercase;
    }

    .gheader {
      letter-spacing: -1px;
      text-transform: uppercase;
    }

    h5.gheader {
      letter-spacing: 0;
    }

    .panel-header h4.gheader {
      margin-top: 20px;
    }

    .panel-header .gheader small {
      font-size: 69%;
    }

    /* NAVIGATION */
    nav {
      -webkit-transition: left .2s;
      background: #1C1C1C;
      border-right: 3px solid #5bc0de;
      height: 100%;
      left: -236px;
      overflow: hidden;
      position: fixed;
      top: 0;
      transition: left .2s;
      width: 300px;
      z-index: 2;
    }

    nav .nav-list {
      height: 100%;
      overflow-y: auto;
      width: 350px;
    }

    nav header {
      margin: 40px 20px 30px;
    }