Difference between revisions of "Team:Hangzhou-H14Z"

Line 50: Line 50:
 
       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
 
       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
 
     <![endif]-->
 
     <![endif]-->
 +
   
 +
    <style type="text/css">
 +
    /*!
 +
* Bootstrap v3.3.2 (http://getbootstrap.com)
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
*/
 +
 +
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
 +
html {
 +
  font-family: sans-serif;
 +
  -webkit-text-size-adjust: 100%;
 +
      -ms-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 {
 +
  margin: .67em 0;
 +
  font-size: 2em;
 +
}
 +
mark {
 +
  color: #000;
 +
  background: #ff0;
 +
}
 +
small {
 +
  font-size: 80%;
 +
}
 +
sub,
 +
sup {
 +
  position: relative;
 +
  font-size: 75%;
 +
  line-height: 0;
 +
  vertical-align: baseline;
 +
}
 +
sup {
 +
  top: -.5em;
 +
}
 +
sub {
 +
  bottom: -.25em;
 +
}
 +
img {
 +
  border: 0;
 +
}
 +
svg:not(:root) {
 +
  overflow: hidden;
 +
}
 +
figure {
 +
  margin: 1em 40px;
 +
}
 +
hr {
 +
  height: 0;
 +
  -webkit-box-sizing: content-box;
 +
    -moz-box-sizing: content-box;
 +
          box-sizing: content-box;
 +
}
 +
pre {
 +
  overflow: auto;
 +
}
 +
code,
 +
kbd,
 +
pre,
 +
samp {
 +
  font-family: monospace, monospace;
 +
  font-size: 1em;
 +
}
 +
button,
 +
input,
 +
optgroup,
 +
select,
 +
textarea {
 +
  margin: 0;
 +
  font: inherit;
 +
  color: inherit;
 +
}
 +
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 {
 +
  padding: 0;
 +
  border: 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-box-sizing: content-box;
 +
    -moz-box-sizing: content-box;
 +
          box-sizing: content-box;
 +
  -webkit-appearance: textfield;
 +
}
 +
input[type="search"]::-webkit-search-cancel-button,
 +
input[type="search"]::-webkit-search-decoration {
 +
  -webkit-appearance: none;
 +
}
 +
fieldset {
 +
  padding: .35em .625em .75em;
 +
  margin: 0 2px;
 +
  border: 1px solid #c0c0c0;
 +
}
 +
legend {
 +
  padding: 0;
 +
  border: 0;
 +
}
 +
textarea {
 +
  overflow: auto;
 +
}
 +
optgroup {
 +
  font-weight: bold;
 +
}
 +
table {
 +
  border-spacing: 0;
 +
  border-collapse: collapse;
 +
}
 +
td,
 +
th {
 +
  padding: 0;
 +
}
 +
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
 +
@media print {
 +
  *,
 +
  *:before,
 +
  *:after {
 +
    color: #000 !important;
 +
    text-shadow: none !important;
 +
    background: transparent !important;
 +
    -webkit-box-shadow: none !important;
 +
            box-shadow: none !important;
 +
  }
 +
  a,
 +
  a:visited {
 +
    text-decoration: underline;
 +
  }
 +
  a[href]:after {
 +
    content: " (" attr(href) ")";
 +
  }
 +
  abbr[title]:after {
 +
    content: " (" attr(title) ")";
 +
  }
 +
  a[href^="#"]: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;
 +
  }
 +
  select {
 +
    background: #fff !important;
 +
  }
 +
  .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;
 +
  }
 +
}
 +
@font-face {
 +
  font-family: 'Glyphicons Halflings';
 +
 +
  src: url('../fonts/glyphicons-halflings-regular.eot');
 +
  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
 +
}
 +
.glyphicon {
 +
  position: relative;
 +
  top: 1px;
 +
  display: inline-block;
 +
  font-family: 'Glyphicons Halflings';
 +
  font-style: normal;
 +
  font-weight: normal;
 +
  line-height: 1;
 +
 +
  -webkit-font-smoothing: antialiased;
 +
  -moz-osx-font-smoothing: grayscale;
 +
}
 +
.glyphicon-asterisk:before {
 +
  content: "\2a";
 +
}
 +
.glyphicon-plus:before {
 +
  content: "\2b";
 +
}
 +
.glyphicon-euro:before,
 +
.glyphicon-eur:before {
 +
  content: "\20ac";
 +
}
 +
.glyphicon-minus:before {
 +
  content: "\2212";
 +
}
 +
.glyphicon-cloud:before {
 +
  content: "\2601";
 +
}
 +
.glyphicon-envelope:before {
 +
  content: "\2709";
 +
}
 +
.glyphicon-pencil:before {
 +
  content: "\270f";
 +
}
 +
.glyphicon-glass:before {
 +
  content: "\e001";
 +
}
 +
.glyphicon-music:before {
 +
  content: "\e002";
 +
}
 +
.glyphicon-search:before {
 +
  content: "\e003";
 +
}
 +
.glyphicon-heart:before {
 +
  content: "\e005";
 +
}
 +
.glyphicon-star:before {
 +
  content: "\e006";
 +
}
 +
.glyphicon-star-empty:before {
 +
  content: "\e007";
 +
}
 +
.glyphicon-user:before {
 +
  content: "\e008";
 +
}
 +
.glyphicon-film:before {
 +
  content: "\e009";
 +
}
 +
.glyphicon-th-large:before {
 +
  content: "\e010";
 +
}
 +
.glyphicon-th:before {
 +
  content: "\e011";
 +
}
 +
.glyphicon-th-list:before {
 +
  content: "\e012";
 +
}
 +
.glyphicon-ok:before {
 +
  content: "\e013";
 +
}
 +
.glyphicon-remove:before {
 +
  content: "\e014";
 +
}
 +
.glyphicon-zoom-in:before {
 +
  content: "\e015";
 +
}
 +
.glyphicon-zoom-out:before {
 +
  content: "\e016";
 +
}
 +
.glyphicon-off:before {
 +
  content: "\e017";
 +
}
 +
.glyphicon-signal:before {
 +
  content: "\e018";
 +
}
 +
.glyphicon-cog:before {
 +
  content: "\e019";
 +
}
 +
.glyphicon-trash:before {
 +
  content: "\e020";
 +
}
 +
.glyphicon-home:before {
 +
  content: "\e021";
 +
}
 +
.glyphicon-file:before {
 +
  content: "\e022";
 +
}
 +
.glyphicon-time:before {
 +
  content: "\e023";
 +
}
 +
.glyphicon-road:before {
 +
  content: "\e024";
 +
}
 +
.glyphicon-download-alt:before {
 +
  content: "\e025";
 +
}
 +
.glyphicon-download:before {
 +
  content: "\e026";
 +
}
 +
.glyphicon-upload:before {
 +
  content: "\e027";
 +
}
 +
.glyphicon-inbox:before {
 +
  content: "\e028";
 +
}
 +
.glyphicon-play-circle:before {
 +
  content: "\e029";
 +
}
 +
.glyphicon-repeat:before {
 +
  content: "\e030";
 +
}
 +
.glyphicon-refresh:before {
 +
  content: "\e031";
 +
}
 +
.glyphicon-list-alt:before {
 +
  content: "\e032";
 +
}
 +
.glyphicon-lock:before {
 +
  content: "\e033";
 +
}
 +
.glyphicon-flag:before {
 +
  content: "\e034";
 +
}
 +
.glyphicon-headphones:before {
 +
  content: "\e035";
 +
}
 +
.glyphicon-volume-off:before {
 +
  content: "\e036";
 +
}
 +
.glyphicon-volume-down:before {
 +
  content: "\e037";
 +
}
 +
.glyphicon-volume-up:before {
 +
  content: "\e038";
 +
}
 +
.glyphicon-qrcode:before {
 +
  content: "\e039";
 +
}
 +
.glyphicon-barcode:before {
 +
  content: "\e040";
 +
}
 +
.glyphicon-tag:before {
 +
  content: "\e041";
 +
}
 +
.glyphicon-tags:before {
 +
  content: "\e042";
 +
}
 +
.glyphicon-book:before {
 +
  content: "\e043";
 +
}
 +
.glyphicon-bookmark:before {
 +
  content: "\e044";
 +
}
 +
.glyphicon-print:before {
 +
  content: "\e045";
 +
}
 +
.glyphicon-camera:before {
 +
  content: "\e046";
 +
}
 +
.glyphicon-font:before {
 +
  content: "\e047";
 +
}
 +
.glyphicon-bold:before {
 +
  content: "\e048";
 +
}
 +
.glyphicon-italic:before {
 +
  content: "\e049";
 +
}
 +
.glyphicon-text-height:before {
 +
  content: "\e050";
 +
}
 +
.glyphicon-text-width:before {
 +
  content: "\e051";
 +
}
 +
.glyphicon-align-left:before {
 +
  content: "\e052";
 +
}
 +
.glyphicon-align-center:before {
 +
  content: "\e053";
 +
}
 +
.glyphicon-align-right:before {
 +
  content: "\e054";
 +
}
 +
.glyphicon-align-justify:before {
 +
  content: "\e055";
 +
}
 +
.glyphicon-list:before {
 +
  content: "\e056";
 +
}
 +
.glyphicon-indent-left:before {
 +
  content: "\e057";
 +
}
 +
.glyphicon-indent-right:before {
 +
  content: "\e058";
 +
}
 +
.glyphicon-facetime-video:before {
 +
  content: "\e059";
 +
}
 +
.glyphicon-picture:before {
 +
  content: "\e060";
 +
}
 +
.glyphicon-map-marker:before {
 +
  content: "\e062";
 +
}
 +
.glyphicon-adjust:before {
 +
  content: "\e063";
 +
}
 +
.glyphicon-tint:before {
 +
  content: "\e064";
 +
}
 +
.glyphicon-edit:before {
 +
  content: "\e065";
 +
}
 +
.glyphicon-share:before {
 +
  content: "\e066";
 +
}
 +
.glyphicon-check:before {
 +
  content: "\e067";
 +
}
 +
.glyphicon-move:before {
 +
  content: "\e068";
 +
}
 +
.glyphicon-step-backward:before {
 +
  content: "\e069";
 +
}
 +
.glyphicon-fast-backward:before {
 +
  content: "\e070";
 +
}
 +
.glyphicon-backward:before {
 +
  content: "\e071";
 +
}
 +
.glyphicon-play:before {
 +
  content: "\e072";
 +
}
 +
.glyphicon-pause:before {
 +
  content: "\e073";
 +
}
 +
.glyphicon-stop:before {
 +
  content: "\e074";
 +
}
 +
.glyphicon-forward:before {
 +
  content: "\e075";
 +
}
 +
.glyphicon-fast-forward:before {
 +
  content: "\e076";
 +
}
 +
.glyphicon-step-forward:before {
 +
  content: "\e077";
 +
}
 +
.glyphicon-eject:before {
 +
  content: "\e078";
 +
}
 +
.glyphicon-chevron-left:before {
 +
  content: "\e079";
 +
}
 +
.glyphicon-chevron-right:before {
 +
  content: "\e080";
 +
}
 +
.glyphicon-plus-sign:before {
 +
  content: "\e081";
 +
}
 +
.glyphicon-minus-sign:before {
 +
  content: "\e082";
 +
}
 +
.glyphicon-remove-sign:before {
 +
  content: "\e083";
 +
}
 +
.glyphicon-ok-sign:before {
 +
  content: "\e084";
 +
}
 +
.glyphicon-question-sign:before {
 +
  content: "\e085";
 +
}
 +
.glyphicon-info-sign:before {
 +
  content: "\e086";
 +
}
 +
.glyphicon-screenshot:before {
 +
  content: "\e087";
 +
}
 +
.glyphicon-remove-circle:before {
 +
  content: "\e088";
 +
}
 +
.glyphicon-ok-circle:before {
 +
  content: "\e089";
 +
}
 +
.glyphicon-ban-circle:before {
 +
  content: "\e090";
 +
}
 +
.glyphicon-arrow-left:before {
 +
  content: "\e091";
 +
}
 +
.glyphicon-arrow-right:before {
 +
  content: "\e092";
 +
}
 +
.glyphicon-arrow-up:before {
 +
  content: "\e093";
 +
}
 +
.glyphicon-arrow-down:before {
 +
  content: "\e094";
 +
}
 +
.glyphicon-share-alt:before {
 +
  content: "\e095";
 +
}
 +
.glyphicon-resize-full:before {
 +
  content: "\e096";
 +
}
 +
.glyphicon-resize-small:before {
 +
  content: "\e097";
 +
}
 +
.glyphicon-exclamation-sign:before {
 +
  content: "\e101";
 +
}
 +
.glyphicon-gift:before {
 +
  content: "\e102";
 +
}
 +
.glyphicon-leaf:before {
 +
  content: "\e103";
 +
}
 +
.glyphicon-fire:before {
 +
  content: "\e104";
 +
}
 +
.glyphicon-eye-open:before {
 +
  content: "\e105";
 +
}
 +
.glyphicon-eye-close:before {
 +
  content: "\e106";
 +
}
 +
.glyphicon-warning-sign:before {
 +
  content: "\e107";
 +
}
 +
.glyphicon-plane:before {
 +
  content: "\e108";
 +
}
 +
.glyphicon-calendar:before {
 +
  content: "\e109";
 +
}
 +
.glyphicon-random:before {
 +
  content: "\e110";
 +
}
 +
.glyphicon-comment:before {
 +
  content: "\e111";
 +
}
 +
.glyphicon-magnet:before {
 +
  content: "\e112";
 +
}
 +
.glyphicon-chevron-up:before {
 +
  content: "\e113";
 +
}
 +
.glyphicon-chevron-down:before {
 +
  content: "\e114";
 +
}
 +
.glyphicon-retweet:before {
 +
  content: "\e115";
 +
}
 +
.glyphicon-shopping-cart:before {
 +
  content: "\e116";
 +
}
 +
.glyphicon-folder-close:before {
 +
  content: "\e117";
 +
}
 +
.glyphicon-folder-open:before {
 +
  content: "\e118";
 +
}
 +
.glyphicon-resize-vertical:before {
 +
  content: "\e119";
 +
}
 +
.glyphicon-resize-horizontal:before {
 +
  content: "\e120";
 +
}
 +
.glyphicon-hdd:before {
 +
  content: "\e121";
 +
}
 +
.glyphicon-bullhorn:before {
 +
  content: "\e122";
 +
}
 +
.glyphicon-bell:before {
 +
  content: "\e123";
 +
}
 +
.glyphicon-certificate:before {
 +
  content: "\e124";
 +
}
 +
.glyphicon-thumbs-up:before {
 +
  content: "\e125";
 +
}
 +
.glyphicon-thumbs-down:before {
 +
  content: "\e126";
 +
}
 +
.glyphicon-hand-right:before {
 +
  content: "\e127";
 +
}
 +
.glyphicon-hand-left:before {
 +
  content: "\e128";
 +
}
 +
.glyphicon-hand-up:before {
 +
  content: "\e129";
 +
}
 +
.glyphicon-hand-down:before {
 +
  content: "\e130";
 +
}
 +
.glyphicon-circle-arrow-right:before {
 +
  content: "\e131";
 +
}
 +
.glyphicon-circle-arrow-left:before {
 +
  content: "\e132";
 +
}
 +
.glyphicon-circle-arrow-up:before {
 +
  content: "\e133";
 +
}
 +
.glyphicon-circle-arrow-down:before {
 +
  content: "\e134";
 +
}
 +
.glyphicon-globe:before {
 +
  content: "\e135";
 +
}
 +
.glyphicon-wrench:before {
 +
  content: "\e136";
 +
}
 +
.glyphicon-tasks:before {
 +
  content: "\e137";
 +
}
 +
.glyphicon-filter:before {
 +
  content: "\e138";
 +
}
 +
.glyphicon-briefcase:before {
 +
  content: "\e139";
 +
}
 +
.glyphicon-fullscreen:before {
 +
  content: "\e140";
 +
}
 +
.glyphicon-dashboard:before {
 +
  content: "\e141";
 +
}
 +
.glyphicon-paperclip:before {
 +
  content: "\e142";
 +
}
 +
.glyphicon-heart-empty:before {
 +
  content: "\e143";
 +
}
 +
.glyphicon-link:before {
 +
  content: "\e144";
 +
}
 +
.glyphicon-phone:before {
 +
  content: "\e145";
 +
}
 +
.glyphicon-pushpin:before {
 +
  content: "\e146";
 +
}
 +
.glyphicon-usd:before {
 +
  content: "\e148";
 +
}
 +
.glyphicon-gbp:before {
 +
  content: "\e149";
 +
}
 +
.glyphicon-sort:before {
 +
  content: "\e150";
 +
}
 +
.glyphicon-sort-by-alphabet:before {
 +
  content: "\e151";
 +
}
 +
.glyphicon-sort-by-alphabet-alt:before {
 +
  content: "\e152";
 +
}
 +
.glyphicon-sort-by-order:before {
 +
  content: "\e153";
 +
}
 +
.glyphicon-sort-by-order-alt:before {
 +
  content: "\e154";
 +
}
 +
.glyphicon-sort-by-attributes:before {
 +
  content: "\e155";
 +
}
 +
.glyphicon-sort-by-attributes-alt:before {
 +
  content: "\e156";
 +
}
 +
.glyphicon-unchecked:before {
 +
  content: "\e157";
 +
}
 +
.glyphicon-expand:before {
 +
  content: "\e158";
 +
}
 +
.glyphicon-collapse-down:before {
 +
  content: "\e159";
 +
}
 +
.glyphicon-collapse-up:before {
 +
  content: "\e160";
 +
}
 +
.glyphicon-log-in:before {
 +
  content: "\e161";
 +
}
 +
.glyphicon-flash:before {
 +
  content: "\e162";
 +
}
 +
.glyphicon-log-out:before {
 +
  content: "\e163";
 +
}
 +
.glyphicon-new-window:before {
 +
  content: "\e164";
 +
}
 +
.glyphicon-record:before {
 +
  content: "\e165";
 +
}
 +
.glyphicon-save:before {
 +
  content: "\e166";
 +
}
 +
.glyphicon-open:before {
 +
  content: "\e167";
 +
}
 +
.glyphicon-saved:before {
 +
  content: "\e168";
 +
}
 +
.glyphicon-import:before {
 +
  content: "\e169";
 +
}
 +
.glyphicon-export:before {
 +
  content: "\e170";
 +
}
 +
.glyphicon-send:before {
 +
  content: "\e171";
 +
}
 +
.glyphicon-floppy-disk:before {
 +
  content: "\e172";
 +
}
 +
.glyphicon-floppy-saved:before {
 +
  content: "\e173";
 +
}
 +
.glyphicon-floppy-remove:before {
 +
  content: "\e174";
 +
}
 +
.glyphicon-floppy-save:before {
 +
  content: "\e175";
 +
}
 +
.glyphicon-floppy-open:before {
 +
  content: "\e176";
 +
}
 +
.glyphicon-credit-card:before {
 +
  content: "\e177";
 +
}
 +
.glyphicon-transfer:before {
 +
  content: "\e178";
 +
}
 +
.glyphicon-cutlery:before {
 +
  content: "\e179";
 +
}
 +
.glyphicon-header:before {
 +
  content: "\e180";
 +
}
 +
.glyphicon-compressed:before {
 +
  content: "\e181";
 +
}
 +
.glyphicon-earphone:before {
 +
  content: "\e182";
 +
}
 +
.glyphicon-phone-alt:before {
 +
  content: "\e183";
 +
}
 +
.glyphicon-tower:before {
 +
  content: "\e184";
 +
}
 +
.glyphicon-stats:before {
 +
  content: "\e185";
 +
}
 +
.glyphicon-sd-video:before {
 +
  content: "\e186";
 +
}
 +
.glyphicon-hd-video:before {
 +
  content: "\e187";
 +
}
 +
.glyphicon-subtitles:before {
 +
  content: "\e188";
 +
}
 +
.glyphicon-sound-stereo:before {
 +
  content: "\e189";
 +
}
 +
.glyphicon-sound-dolby:before {
 +
  content: "\e190";
 +
}
 +
.glyphicon-sound-5-1:before {
 +
  content: "\e191";
 +
}
 +
.glyphicon-sound-6-1:before {
 +
  content: "\e192";
 +
}
 +
.glyphicon-sound-7-1:before {
 +
  content: "\e193";
 +
}
 +
.glyphicon-copyright-mark:before {
 +
  content: "\e194";
 +
}
 +
.glyphicon-registration-mark:before {
 +
  content: "\e195";
 +
}
 +
.glyphicon-cloud-download:before {
 +
  content: "\e197";
 +
}
 +
.glyphicon-cloud-upload:before {
 +
  content: "\e198";
 +
}
 +
.glyphicon-tree-conifer:before {
 +
  content: "\e199";
 +
}
 +
.glyphicon-tree-deciduous:before {
 +
  content: "\e200";
 +
}
 +
.glyphicon-cd:before {
 +
  content: "\e201";
 +
}
 +
.glyphicon-save-file:before {
 +
  content: "\e202";
 +
}
 +
.glyphicon-open-file:before {
 +
  content: "\e203";
 +
}
 +
.glyphicon-level-up:before {
 +
  content: "\e204";
 +
}
 +
.glyphicon-copy:before {
 +
  content: "\e205";
 +
}
 +
.glyphicon-paste:before {
 +
  content: "\e206";
 +
}
 +
.glyphicon-alert:before {
 +
  content: "\e209";
 +
}
 +
.glyphicon-equalizer:before {
 +
  content: "\e210";
 +
}
 +
.glyphicon-king:before {
 +
  content: "\e211";
 +
}
 +
.glyphicon-queen:before {
 +
  content: "\e212";
 +
}
 +
.glyphicon-pawn:before {
 +
  content: "\e213";
 +
}
 +
.glyphicon-bishop:before {
 +
  content: "\e214";
 +
}
 +
.glyphicon-knight:before {
 +
  content: "\e215";
 +
}
 +
.glyphicon-baby-formula:before {
 +
  content: "\e216";
 +
}
 +
.glyphicon-tent:before {
 +
  content: "\26fa";
 +
}
 +
.glyphicon-blackboard:before {
 +
  content: "\e218";
 +
}
 +
.glyphicon-bed:before {
 +
  content: "\e219";
 +
}
 +
.glyphicon-apple:before {
 +
  content: "\f8ff";
 +
}
 +
.glyphicon-erase:before {
 +
  content: "\e221";
 +
}
 +
.glyphicon-hourglass:before {
 +
  content: "\231b";
 +
}
 +
.glyphicon-lamp:before {
 +
  content: "\e223";
 +
}
 +
.glyphicon-duplicate:before {
 +
  content: "\e224";
 +
}
 +
.glyphicon-piggy-bank:before {
 +
  content: "\e225";
 +
}
 +
.glyphicon-scissors:before {
 +
  content: "\e226";
 +
}
 +
.glyphicon-bitcoin:before {
 +
  content: "\e227";
 +
}
 +
.glyphicon-yen:before {
 +
  content: "\00a5";
 +
}
 +
.glyphicon-ruble:before {
 +
  content: "\20bd";
 +
}
 +
.glyphicon-scale:before {
 +
  content: "\e230";
 +
}
 +
.glyphicon-ice-lolly:before {
 +
  content: "\e231";
 +
}
 +
.glyphicon-ice-lolly-tasted:before {
 +
  content: "\e232";
 +
}
 +
.glyphicon-education:before {
 +
  content: "\e233";
 +
}
 +
.glyphicon-option-horizontal:before {
 +
  content: "\e234";
 +
}
 +
.glyphicon-option-vertical:before {
 +
  content: "\e235";
 +
}
 +
.glyphicon-menu-hamburger:before {
 +
  content: "\e236";
 +
}
 +
.glyphicon-modal-window:before {
 +
  content: "\e237";
 +
}
 +
.glyphicon-oil:before {
 +
  content: "\e238";
 +
}
 +
.glyphicon-grain:before {
 +
  content: "\e239";
 +
}
 +
.glyphicon-sunglasses:before {
 +
  content: "\e240";
 +
}
 +
.glyphicon-text-size:before {
 +
  content: "\e241";
 +
}
 +
.glyphicon-text-color:before {
 +
  content: "\e242";
 +
}
 +
.glyphicon-text-background:before {
 +
  content: "\e243";
 +
}
 +
.glyphicon-object-align-top:before {
 +
  content: "\e244";
 +
}
 +
.glyphicon-object-align-bottom:before {
 +
  content: "\e245";
 +
}
 +
.glyphicon-object-align-horizontal:before {
 +
  content: "\e246";
 +
}
 +
.glyphicon-object-align-left:before {
 +
  content: "\e247";
 +
}
 +
.glyphicon-object-align-vertical:before {
 +
  content: "\e248";
 +
}
 +
.glyphicon-object-align-right:before {
 +
  content: "\e249";
 +
}
 +
.glyphicon-triangle-right:before {
 +
  content: "\e250";
 +
}
 +
.glyphicon-triangle-left:before {
 +
  content: "\e251";
 +
}
 +
.glyphicon-triangle-bottom:before {
 +
  content: "\e252";
 +
}
 +
.glyphicon-triangle-top:before {
 +
  content: "\e253";
 +
}
 +
.glyphicon-console:before {
 +
  content: "\e254";
 +
}
 +
.glyphicon-superscript:before {
 +
  content: "\e255";
 +
}
 +
.glyphicon-subscript:before {
 +
  content: "\e256";
 +
}
 +
.glyphicon-menu-left:before {
 +
  content: "\e257";
 +
}
 +
.glyphicon-menu-right:before {
 +
  content: "\e258";
 +
}
 +
.glyphicon-menu-down:before {
 +
  content: "\e259";
 +
}
 +
.glyphicon-menu-up:before {
 +
  content: "\e260";
 +
}
 +
* {
 +
  -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: thin dotted;
 +
  outline: 5px auto -webkit-focus-ring-color;
 +
  outline-offset: -2px;
 +
}
 +
figure {
 +
  margin: 0;
 +
}
 +
img {
 +
  vertical-align: middle;
 +
}
 +
.img-responsive,
 +
.thumbnail > img,
 +
.thumbnail a > img,
 +
.carousel-inner > .item > img,
 +
.carousel-inner > .item > a > img {
 +
  display: block;
 +
  max-width: 100%;
 +
  height: auto;
 +
}
 +
.img-rounded {
 +
  border-radius: 6px;
 +
}
 +
.img-thumbnail {
 +
  display: inline-block;
 +
  max-width: 100%;
 +
  height: auto;
 +
  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;
 +
}
 +
.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;
 +
  padding: 0;
 +
  margin: -1px;
 +
  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;
 +
}
 +
h1,
 +
h2,
 +
h3,
 +
h4,
 +
h5,
 +
h6,
 +
h10,
 +
.h1,
 +
.h2,
 +
.h3,
 +
.h4,
 +
.h5,
 +
.h6
 +
.h10{
 +
  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 {
 +
  padding: .2em;
 +
  background-color: #fcf8e3;
 +
}
 +
.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 {
 +
  color: #286090;
 +
}
 +
.text-success {
 +
  color: #3c763d;
 +
}
 +
a.text-success:hover {
 +
  color: #2b542c;
 +
}
 +
.text-info {
 +
  color: #31708f;
 +
}
 +
a.text-info:hover {
 +
  color: #245269;
 +
}
 +
.text-warning {
 +
  color: #8a6d3b;
 +
}
 +
a.text-warning:hover {
 +
  color: #66512c;
 +
}
 +
.text-danger {
 +
  color: #a94442;
 +
}
 +
a.text-danger:hover {
 +
  color: #843534;
 +
}
 +
.bg-primary {
 +
  color: #fff;
 +
  background-color: #337ab7;
 +
}
 +
a.bg-primary:hover {
 +
  background-color: #286090;
 +
}
 +
.bg-success {
 +
  background-color: #dff0d8;
 +
}
 +
a.bg-success:hover {
 +
  background-color: #c1e2b3;
 +
}
 +
.bg-info {
 +
  background-color: #d9edf7;
 +
}
 +
a.bg-info:hover {
 +
  background-color: #afd9ee;
 +
}
 +
.bg-warning {
 +
  background-color: #fcf8e3;
 +
}
 +
a.bg-warning:hover {
 +
  background-color: #f7ecb5;
 +
}
 +
.bg-danger {
 +
  background-color: #f2dede;
 +
}
 +
a.bg-danger:hover {
 +
  background-color: #e4b9b9;
 +
}
 +
.page-header {
 +
  padding-bottom: 9px;
 +
  margin: 40px 0 20px;
 +
  border-bottom: 1px solid #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;
 +
  margin-left: -5px;
 +
  list-style: none;
 +
}
 +
.list-inline > li {
 +
  display: inline-block;
 +
  padding-right: 5px;
 +
  padding-left: 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;
 +
    overflow: hidden;
 +
    clear: left;
 +
    text-align: right;
 +
    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;
 +
  text-align: right;
 +
  border-right: 5px solid #eee;
 +
  border-left: 0;
 +
}
 +
.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;
 +
}
 +
code,
 +
kbd,
 +
pre,
 +
samp {
 +
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
 +
}
 +
code {
 +
  padding: 2px 4px;
 +
  font-size: 90%;
 +
  color: #c7254e;
 +
  background-color: #f9f2f4;
 +
  border-radius: 4px;
 +
}
 +
kbd {
 +
  padding: 2px 4px;
 +
  font-size: 90%;
 +
  color: #fff;
 +
  background-color: #333;
 +
  border-radius: 3px;
 +
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
 +
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
 +
}
 +
kbd kbd {
 +
  padding: 0;
 +
  font-size: 100%;
 +
  font-weight: bold;
 +
  -webkit-box-shadow: none;
 +
          box-shadow: none;
 +
}
 +
pre {
 +
  display: block;
 +
  padding: 9.5px;
 +
  margin: 0 0 10px;
 +
  font-size: 13px;
 +
  line-height: 1.42857143;
 +
  color: #333;
 +
  word-break: break-all;
 +
  word-wrap: break-word;
 +
  background-color: #f5f5f5;
 +
  border: 1px solid #ccc;
 +
  border-radius: 4px;
 +
}
 +
pre code {
 +
  padding: 0;
 +
  font-size: inherit;
 +
  color: inherit;
 +
  white-space: pre-wrap;
 +
  background-color: transparent;
 +
  border-radius: 0;
 +
}
 +
.pre-scrollable {
 +
  max-height: 340px;
 +
  overflow-y: scroll;
 +
}
 +
.container {
 +
  padding-right: 15px;
 +
  padding-left: 15px;
 +
  margin-right: auto;
 +
  margin-left: auto;
 +
}
 +
@media (min-width: 768px) {
 +
  .container {
 +
    width: 750px;
 +
  }
 +
}
 +
@media (min-width: 992px) {
 +
  .container {
 +
    width: 970px;
 +
  }
 +
}
 +
@media (min-width: 1200px) {
 +
  .container {
 +
    width: 1170px;
 +
  }
 +
}
 +
.container-fluid {
 +
  padding-right: 15px;
 +
  padding-left: 15px;
 +
  margin-right: auto;
 +
  margin-left: auto;
 +
}
 +
.row {
 +
  margin-right: -15px;
 +
  margin-left: -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-right: 15px;
 +
  padding-left: 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;
 +
  display: table-column;
 +
  float: none;
 +
}
 +
table td[class*="col-"],
 +
table th[class*="col-"] {
 +
  position: static;
 +
  display: table-cell;
 +
  float: none;
 +
}
 +
.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 {
 +
  min-height: .01%;
 +
  overflow-x: auto;
 +
}
 +
@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 {
 +
  min-width: 0;
 +
  padding: 0;
 +
  margin: 0;
 +
  border: 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: thin dotted;
 +
  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, .075);
 +
          box-shadow: inset 0 1px 1px rgba(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, .6);
 +
          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .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[disabled],
 +
.form-control[readonly],
 +
fieldset[disabled] .form-control {
 +
  cursor: not-allowed;
 +
  background-color: #eee;
 +
  opacity: 1;
 +
}
 +
textarea.form-control {
 +
  height: auto;
 +
}
 +
input[type="search"] {
 +
  -webkit-appearance: none;
 +
}
 +
@media screen and (-webkit-min-device-pixel-ratio: 0) {
 +
  input[type="date"],
 +
  input[type="time"],
 +
  input[type="datetime-local"],
 +
  input[type="month"] {
 +
    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-top: 4px \9;
 +
  margin-left: -20px;
 +
}
 +
.radio + .radio,
 +
.checkbox + .checkbox {
 +
  margin-top: -5px;
 +
}
 +
.radio-inline,
 +
.checkbox-inline {
 +
  display: inline-block;
 +
  padding-left: 20px;
 +
  margin-bottom: 0;
 +
  font-weight: normal;
 +
  vertical-align: middle;
 +
  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;
 +
}
 +
.form-control-static.input-lg,
 +
.form-control-static.input-sm {
 +
  padding-right: 0;
 +
  padding-left: 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;
 +
}
 +
select.form-group-sm .form-control {
 +
  height: 30px;
 +
  line-height: 30px;
 +
}
 +
textarea.form-group-sm .form-control,
 +
select[multiple].form-group-sm .form-control {
 +
  height: auto;
 +
}
 +
.form-group-sm .form-control-static {
 +
  height: 30px;
 +
  padding: 5px 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;
 +
}
 +
select.form-group-lg .form-control {
 +
  height: 46px;
 +
  line-height: 46px;
 +
}
 +
textarea.form-group-lg .form-control,
 +
select[multiple].form-group-lg .form-control {
 +
  height: auto;
 +
}
 +
.form-group-lg .form-control-static {
 +
  height: 46px;
 +
  padding: 10px 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 {
 +
  width: 46px;
 +
  height: 46px;
 +
  line-height: 46px;
 +
}
 +
.input-sm + .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, .075);
 +
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
 +
}
 +
.has-success .form-control:focus {
 +
  border-color: #2b542c;
 +
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
 +
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
 +
}
 +
.has-success .input-group-addon {
 +
  color: #3c763d;
 +
  background-color: #dff0d8;
 +
  border-color: #3c763d;
 +
}
 +
.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, .075);
 +
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
 +
}
 +
.has-warning .form-control:focus {
 +
  border-color: #66512c;
 +
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
 +
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
 +
}
 +
.has-warning .input-group-addon {
 +
  color: #8a6d3b;
 +
  background-color: #fcf8e3;
 +
  border-color: #8a6d3b;
 +
}
 +
.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, .075);
 +
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
 +
}
 +
.has-error .form-control:focus {
 +
  border-color: #843534;
 +
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
 +
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
 +
}
 +
.has-error .input-group-addon {
 +
  color: #a94442;
 +
  background-color: #f2dede;
 +
  border-color: #a94442;
 +
}
 +
.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 {
 +
  padding-top: 7px;
 +
  margin-top: 0;
 +
  margin-bottom: 0;
 +
}
 +
.form-horizontal .radio,
 +
.form-horizontal .checkbox {
 +
  min-height: 27px;
 +
}
 +
.form-horizontal .form-group {
 +
  margin-right: -15px;
 +
  margin-left: -15px;
 +
}
 +
@media (min-width: 768px) {
 +
  .form-horizontal .control-label {
 +
    padding-top: 7px;
 +
    margin-bottom: 0;
 +
    text-align: right;
 +
  }
 +
}
 +
.form-horizontal .has-feedback .form-control-feedback {
 +
  right: 15px;
 +
}
 +
@media (min-width: 768px) {
 +
  .form-horizontal .form-group-lg .control-label {
 +
    padding-top: 14.333333px;
 +
  }
 +
}
 +
@media (min-width: 768px) {
 +
  .form-horizontal .form-group-sm .control-label {
 +
    padding-top: 6px;
 +
  }
 +
}
 +
.btn {
 +
  display: inline-block;
 +
  padding: 6px 12px;
 +
  margin-bottom: 0;
 +
  font-size: 14px;
 +
  font-weight: normal;
 +
  line-height: 1.42857143;
 +
  text-align: center;
 +
  white-space: nowrap;
 +
  vertical-align: middle;
 +
  -ms-touch-action: manipulation;
 +
      touch-action: manipulation;
 +
  cursor: pointer;
 +
  -webkit-user-select: none;
 +
    -moz-user-select: none;
 +
      -ms-user-select: none;
 +
          user-select: none;
 +
  background-image: none;
 +
  border: 1px solid transparent;
 +
  border-radius: 4px;
 +
}
 +
.btn:focus,
 +
.btn:active:focus,
 +
.btn.active:focus,
 +
.btn.focus,
 +
.btn:active.focus,
 +
.btn.active.focus {
 +
  outline: thin dotted;
 +
  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 {
 +
  background-image: none;
 +
  outline: 0;
 +
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
 +
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
 +
}
 +
.btn.disabled,
 +
.btn[disabled],
 +
fieldset[disabled] .btn {
 +
  pointer-events: none;
 +
  cursor: not-allowed;
 +
  filter: alpha(opacity=65);
 +
  -webkit-box-shadow: none;
 +
          box-shadow: none;
 +
  opacity: .65;
 +
}
 +
.btn-default {
 +
  color: #333;
 +
  background-color: #fff;
 +
  border-color: #ccc;
 +
}
 +
.btn-default:hover,
 +
.btn-default:focus,
 +
.btn-default.focus,
 +
.btn-default:active,
 +
.btn-default.active,
 +
.open > .dropdown-toggle.btn-default {
 +
  color: #333;
 +
  background-color: #e6e6e6;
 +
  border-color: #adadad;
 +
}
 +
.btn-default:active,
 +
.btn-default.active,
 +
.open > .dropdown-toggle.btn-default {
 +
  background-image: none;
 +
}
 +
.btn-default.disabled,
 +
.btn-default[disabled],
 +
fieldset[disabled] .btn-default,
 +
.btn-default.disabled:hover,
 +
.btn-default[disabled]:hover,
 +
fieldset[disabled] .btn-default:hover,
 +
.btn-default.disabled:focus,
 +
.btn-default[disabled]:focus,
 +
fieldset[disabled] .btn-default:focus,
 +
.btn-default.disabled.focus,
 +
.btn-default[disabled].focus,
 +
fieldset[disabled] .btn-default.focus,
 +
.btn-default.disabled:active,
 +
.btn-default[disabled]:active,
 +
fieldset[disabled] .btn-default:active,
 +
.btn-default.disabled.active,
 +
.btn-default[disabled].active,
 +
fieldset[disabled] .btn-default.active {
 +
  background-color: #fff;
 +
  border-color: #ccc;
 +
}
 +
.btn-default .badge {
 +
  color: #fff;
 +
  background-color: #333;
 +
}
 +
.btn-primary {
 +
  color: #fff;
 +
  background-color: #337ab7;
 +
  border-color: #2e6da4;
 +
}
 +
.btn-primary:hover,
 +
.btn-primary:focus,
 +
.btn-primary.focus,
 +
.btn-primary:active,
 +
.btn-primary.active,
 +
.open > .dropdown-toggle.btn-primary {
 +
  color: #fff;
 +
  background-color: #286090;
 +
  border-color: #204d74;
 +
}
 +
.btn-primary:active,
 +
.btn-primary.active,
 +
.open > .dropdown-toggle.btn-primary {
 +
  background-image: none;
 +
}
 +
.btn-primary.disabled,
 +
.btn-primary[disabled],
 +
fieldset[disabled] .btn-primary,
 +
.btn-primary.disabled:hover,
 +
.btn-primary[disabled]:hover,
 +
fieldset[disabled] .btn-primary:hover,
 +
.btn-primary.disabled:focus,
 +
.btn-primary[disabled]:focus,
 +
fieldset[disabled] .btn-primary:focus,
 +
.btn-primary.disabled.focus,
 +
.btn-primary[disabled].focus,
 +
fieldset[disabled] .btn-primary.focus,
 +
.btn-primary.disabled:active,
 +
.btn-primary[disabled]:active,
 +
fieldset[disabled] .btn-primary:active,
 +
.btn-primary.disabled.active,
 +
.btn-primary[disabled].active,
 +
fieldset[disabled] .btn-primary.active {
 +
  background-color: #337ab7;
 +
  border-color: #2e6da4;
 +
}
 +
.btn-primary .badge {
 +
  color: #337ab7;
 +
  background-color: #fff;
 +
}
 +
.btn-success {
 +
  color: #fff;
 +
  background-color: #5cb85c;
 +
  border-color: #4cae4c;
 +
}
 +
.btn-success:hover,
 +
.btn-success:focus,
 +
.btn-success.focus,
 +
.btn-success:active,
 +
.btn-success.active,
 +
.open > .dropdown-toggle.btn-success {
 +
  color: #fff;
 +
  background-color: #449d44;
 +
  border-color: #398439;
 +
}
 +
.btn-success:active,
 +
.btn-success.active,
 +
.open > .dropdown-toggle.btn-success {
 +
  background-image: none;
 +
}
 +
.btn-success.disabled,
 +
.btn-success[disabled],
 +
fieldset[disabled] .btn-success,
 +
.btn-success.disabled:hover,
 +
.btn-success[disabled]:hover,
 +
fieldset[disabled] .btn-success:hover,
 +
.btn-success.disabled:focus,
 +
.btn-success[disabled]:focus,
 +
fieldset[disabled] .btn-success:focus,
 +
.btn-success.disabled.focus,
 +
.btn-success[disabled].focus,
 +
fieldset[disabled] .btn-success.focus,
 +
.btn-success.disabled:active,
 +
.btn-success[disabled]:active,
 +
fieldset[disabled] .btn-success:active,
 +
.btn-success.disabled.active,
 +
.btn-success[disabled].active,
 +
fieldset[disabled] .btn-success.active {
 +
  background-color: #5cb85c;
 +
  border-color: #4cae4c;
 +
}
 +
.btn-success .badge {
 +
  color: #5cb85c;
 +
  background-color: #fff;
 +
}
 +
.btn-info {
 +
  color: #fff;
 +
  background-color: #5bc0de;
 +
  border-color: #46b8da;
 +
}
 +
.btn-info:hover,
 +
.btn-info:focus,
 +
.btn-info.focus,
 +
.btn-info:active,
 +
.btn-info.active,
 +
.open > .dropdown-toggle.btn-info {
 +
  color: #fff;
 +
  background-color: #31b0d5;
 +
  border-color: #269abc;
 +
}
 +
.btn-info:active,
 +
.btn-info.active,
 +
.open > .dropdown-toggle.btn-info {
 +
  background-image: none;
 +
}
 +
.btn-info.disabled,
 +
.btn-info[disabled],
 +
fieldset[disabled] .btn-info,
 +
.btn-info.disabled:hover,
 +
.btn-info[disabled]:hover,
 +
fieldset[disabled] .btn-info:hover,
 +
.btn-info.disabled:focus,
 +
.btn-info[disabled]:focus,
 +
fieldset[disabled] .btn-info:focus,
 +
.btn-info.disabled.focus,
 +
.btn-info[disabled].focus,
 +
fieldset[disabled] .btn-info.focus,
 +
.btn-info.disabled:active,
 +
.btn-info[disabled]:active,
 +
fieldset[disabled] .btn-info:active,
 +
.btn-info.disabled.active,
 +
.btn-info[disabled].active,
 +
fieldset[disabled] .btn-info.active {
 +
  background-color: #5bc0de;
 +
  border-color: #46b8da;
 +
}
 +
.btn-info .badge {
 +
  color: #5bc0de;
 +
  background-color: #fff;
 +
}
 +
.btn-warning {
 +
  color: #fff;
 +
  background-color: #f0ad4e;
 +
  border-color: #eea236;
 +
}
 +
.btn-warning:hover,
 +
.btn-warning:focus,
 +
.btn-warning.focus,
 +
.btn-warning:active,
 +
.btn-warning.active,
 +
.open > .dropdown-toggle.btn-warning {
 +
  color: #fff;
 +
  background-color: #ec971f;
 +
  border-color: #d58512;
 +
}
 +
.btn-warning:active,
 +
.btn-warning.active,
 +
.open > .dropdown-toggle.btn-warning {
 +
  background-image: none;
 +
}
 +
.btn-warning.disabled,
 +
.btn-warning[disabled],
 +
fieldset[disabled] .btn-warning,
 +
.btn-warning.disabled:hover,
 +
.btn-warning[disabled]:hover,
 +
fieldset[disabled] .btn-warning:hover,
 +
.btn-warning.disabled:focus,
 +
.btn-warning[disabled]:focus,
 +
fieldset[disabled] .btn-warning:focus,
 +
.btn-warning.disabled.focus,
 +
.btn-warning[disabled].focus,
 +
fieldset[disabled] .btn-warning.focus,
 +
.btn-warning.disabled:active,
 +
.btn-warning[disabled]:active,
 +
fieldset[disabled] .btn-warning:active,
 +
.btn-warning.disabled.active,
 +
.btn-warning[disabled].active,
 +
fieldset[disabled] .btn-warning.active {
 +
  background-color: #f0ad4e;
 +
  border-color: #eea236;
 +
}
 +
.btn-warning .badge {
 +
  color: #f0ad4e;
 +
  background-color: #fff;
 +
}
 +
.btn-danger {
 +
  color: #fff;
 +
  background-color: #d9534f;
 +
  border-color: #d43f3a;
 +
}
 +
.btn-danger:hover,
 +
.btn-danger:focus,
 +
.btn-danger.focus,
 +
.btn-danger:active,
 +
.btn-danger.active,
 +
.open > .dropdown-toggle.btn-danger {
 +
  color: #fff;
 +
  background-color: #c9302c;
 +
  border-color: #ac2925;
 +
}
 +
.btn-danger:active,
 +
.btn-danger.active,
 +
.open > .dropdown-toggle.btn-danger {
 +
  background-image: none;
 +
}
 +
.btn-danger.disabled,
 +
.btn-danger[disabled],
 +
fieldset[disabled] .btn-danger,
 +
.btn-danger.disabled:hover,
 +
.btn-danger[disabled]:hover,
 +
fieldset[disabled] .btn-danger:hover,
 +
.btn-danger.disabled:focus,
 +
.btn-danger[disabled]:focus,
 +
fieldset[disabled] .btn-danger:focus,
 +
.btn-danger.disabled.focus,
 +
.btn-danger[disabled].focus,
 +
fieldset[disabled] .btn-danger.focus,
 +
.btn-danger.disabled:active,
 +
.btn-danger[disabled]:active,
 +
fieldset[disabled] .btn-danger:active,
 +
.btn-danger.disabled.active,
 +
.btn-danger[disabled].active,
 +
fieldset[disabled] .btn-danger.active {
 +
  background-color: #d9534f;
 +
  border-color: #d43f3a;
 +
}
 +
.btn-danger .badge {
 +
  color: #d9534f;
 +
  background-color: #fff;
 +
}
 +
.btn-link {
 +
  font-weight: normal;
 +
  color: #337ab7;
 +
  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,
 +
.btn-group-lg > .btn {
 +
  padding: 10px 16px;
 +
  font-size: 18px;
 +
  line-height: 1.3333333;
 +
  border-radius: 6px;
 +
}
 +
.btn-sm,
 +
.btn-group-sm > .btn {
 +
  padding: 5px 10px;
 +
  font-size: 12px;
 +
  line-height: 1.5;
 +
  border-radius: 3px;
 +
}
 +
.btn-xs,
 +
.btn-group-xs > .btn {
 +
  padding: 1px 5px;
 +
  font-size: 12px;
 +
  line-height: 1.5;
 +
  border-radius: 3px;
 +
}
 +
.btn-block {
 +
  display: block;
 +
  width: 100%;
 +
}
 +
.btn-block + .btn-block {
 +
  margin-top: 5px;
 +
}
 +
input[type="submit"].btn-block,
 +
input[type="reset"].btn-block,
 +
input[type="button"].btn-block {
 +
  width: 100%;
 +
}
 +
.fade {
 +
  opacity: 0;
 +
  -webkit-transition: opacity .15s linear;
 +
      -o-transition: opacity .15s linear;
 +
          transition: opacity .15s linear;
 +
}
 +
.fade.in {
 +
  opacity: 1;
 +
}
 +
.collapse {
 +
  display: none;
 +
  visibility: hidden;
 +
}
 +
.collapse.in {
 +
  display: block;
 +
  visibility: visible;
 +
}
 +
tr.collapse.in {
 +
  display: table-row;
 +
}
 +
tbody.collapse.in {
 +
  display: table-row-group;
 +
}
 +
.collapsing {
 +
  position: relative;
 +
  height: 0;
 +
  overflow: hidden;
 +
  -webkit-transition-timing-function: ease;
 +
      -o-transition-timing-function: ease;
 +
          transition-timing-function: ease;
 +
  -webkit-transition-duration: .35s;
 +
      -o-transition-duration: .35s;
 +
          transition-duration: .35s;
 +
  -webkit-transition-property: height, visibility;
 +
      -o-transition-property: height, visibility;
 +
          transition-property: height, visibility;
 +
}
 +
.caret {
 +
  display: inline-block;
 +
  width: 0;
 +
  height: 0;
 +
  margin-left: 2px;
 +
  vertical-align: middle;
 +
  border-top: 4px solid;
 +
  border-right: 4px solid transparent;
 +
  border-left: 4px solid transparent;
 +
}
 +
.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;
 +
  font-size: 14px;
 +
  text-align: left;
 +
  list-style: none;
 +
  background-color: #fff;
 +
  -webkit-background-clip: padding-box;
 +
          background-clip: padding-box;
 +
  border: 1px solid #ccc;
 +
  border: 1px solid rgba(0, 0, 0, .15);
 +
  border-radius: 4px;
 +
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
 +
          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
 +
}
 +
.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 {
 +
  color: #262626;
 +
  text-decoration: none;
 +
  background-color: #f5f5f5;
 +
}
 +
.dropdown-menu > .active > a,
 +
.dropdown-menu > .active > a:hover,
 +
.dropdown-menu > .active > a:focus {
 +
  color: #fff;
 +
  text-decoration: none;
 +
  background-color: #337ab7;
 +
  outline: 0;
 +
}
 +
.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;
 +
  cursor: not-allowed;
 +
  background-color: transparent;
 +
  background-image: none;
 +
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 +
}
 +
.open > .dropdown-menu {
 +
  display: block;
 +
}
 +
.open > a {
 +
  outline: 0;
 +
}
 +
.dropdown-menu-right {
 +
  right: 0;
 +
  left: auto;
 +
}
 +
.dropdown-menu-left {
 +
  right: auto;
 +
  left: 0;
 +
}
 +
.dropdown-header {
 +
  display: block;
 +
  padding: 3px 20px;
 +
  font-size: 12px;
 +
  line-height: 1.42857143;
 +
  color: #777;
 +
  white-space: nowrap;
 +
}
 +
.dropdown-backdrop {
 +
  position: fixed;
 +
  top: 0;
 +
  right: 0;
 +
  bottom: 0;
 +
  left: 0;
 +
  z-index: 990;
 +
}
 +
.pull-right > .dropdown-menu {
 +
  right: 0;
 +
  left: auto;
 +
}
 +
.dropup .caret,
 +
.navbar-fixed-bottom .dropdown .caret {
 +
  content: "";
 +
  border-top: 0;
 +
  border-bottom: 4px solid;
 +
}
 +
.dropup .dropdown-menu,
 +
.navbar-fixed-bottom .dropdown .dropdown-menu {
 +
  top: auto;
 +
  bottom: 100%;
 +
  margin-bottom: 2px;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-right .dropdown-menu {
 +
    right: 0;
 +
    left: auto;
 +
  }
 +
  .navbar-right .dropdown-menu-left {
 +
    right: auto;
 +
    left: 0;
 +
  }
 +
}
 +
.btn-group,
 +
.btn-group-vertical {
 +
  position: relative;
 +
  display: inline-block;
 +
  vertical-align: middle;
 +
}
 +
.btn-group > .btn,
 +
.btn-group-vertical > .btn {
 +
  position: relative;
 +
  float: left;
 +
}
 +
.btn-group > .btn:hover,
 +
.btn-group-vertical > .btn:hover,
 +
.btn-group > .btn:focus,
 +
.btn-group-vertical > .btn:focus,
 +
.btn-group > .btn:active,
 +
.btn-group-vertical > .btn:active,
 +
.btn-group > .btn.active,
 +
.btn-group-vertical > .btn.active {
 +
  z-index: 2;
 +
}
 +
.btn-group .btn + .btn,
 +
.btn-group .btn + .btn-group,
 +
.btn-group .btn-group + .btn,
 +
.btn-group .btn-group + .btn-group {
 +
  margin-left: -1px;
 +
}
 +
.btn-toolbar {
 +
  margin-left: -5px;
 +
}
 +
.btn-toolbar .btn-group,
 +
.btn-toolbar .input-group {
 +
  float: left;
 +
}
 +
.btn-toolbar > .btn,
 +
.btn-toolbar > .btn-group,
 +
.btn-toolbar > .input-group {
 +
  margin-left: 5px;
 +
}
 +
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
 +
  border-radius: 0;
 +
}
 +
.btn-group > .btn:first-child {
 +
  margin-left: 0;
 +
}
 +
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
 +
  border-top-right-radius: 0;
 +
  border-bottom-right-radius: 0;
 +
}
 +
.btn-group > .btn:last-child:not(:first-child),
 +
.btn-group > .dropdown-toggle:not(:first-child) {
 +
  border-top-left-radius: 0;
 +
  border-bottom-left-radius: 0;
 +
}
 +
.btn-group > .btn-group {
 +
  float: left;
 +
}
 +
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
 +
  border-radius: 0;
 +
}
 +
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
 +
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
 +
  border-top-right-radius: 0;
 +
  border-bottom-right-radius: 0;
 +
}
 +
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
 +
  border-top-left-radius: 0;
 +
  border-bottom-left-radius: 0;
 +
}
 +
.btn-group .dropdown-toggle:active,
 +
.btn-group.open .dropdown-toggle {
 +
  outline: 0;
 +
}
 +
.btn-group > .btn + .dropdown-toggle {
 +
  padding-right: 8px;
 +
  padding-left: 8px;
 +
}
 +
.btn-group > .btn-lg + .dropdown-toggle {
 +
  padding-right: 12px;
 +
  padding-left: 12px;
 +
}
 +
.btn-group.open .dropdown-toggle {
 +
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
 +
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
 +
}
 +
.btn-group.open .dropdown-toggle.btn-link {
 +
  -webkit-box-shadow: none;
 +
          box-shadow: none;
 +
}
 +
.btn .caret {
 +
  margin-left: 0;
 +
}
 +
.btn-lg .caret {
 +
  border-width: 5px 5px 0;
 +
  border-bottom-width: 0;
 +
}
 +
.dropup .btn-lg .caret {
 +
  border-width: 0 5px 5px;
 +
}
 +
.btn-group-vertical > .btn,
 +
.btn-group-vertical > .btn-group,
 +
.btn-group-vertical > .btn-group > .btn {
 +
  display: block;
 +
  float: none;
 +
  width: 100%;
 +
  max-width: 100%;
 +
}
 +
.btn-group-vertical > .btn-group > .btn {
 +
  float: none;
 +
}
 +
.btn-group-vertical > .btn + .btn,
 +
.btn-group-vertical > .btn + .btn-group,
 +
.btn-group-vertical > .btn-group + .btn,
 +
.btn-group-vertical > .btn-group + .btn-group {
 +
  margin-top: -1px;
 +
  margin-left: 0;
 +
}
 +
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
 +
  border-radius: 0;
 +
}
 +
.btn-group-vertical > .btn:first-child:not(:last-child) {
 +
  border-top-right-radius: 4px;
 +
  border-bottom-right-radius: 0;
 +
  border-bottom-left-radius: 0;
 +
}
 +
.btn-group-vertical > .btn:last-child:not(:first-child) {
 +
  border-top-left-radius: 0;
 +
  border-top-right-radius: 0;
 +
  border-bottom-left-radius: 4px;
 +
}
 +
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
 +
  border-radius: 0;
 +
}
 +
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
 +
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
 +
  border-bottom-right-radius: 0;
 +
  border-bottom-left-radius: 0;
 +
}
 +
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
 +
  border-top-left-radius: 0;
 +
  border-top-right-radius: 0;
 +
}
 +
.btn-group-justified {
 +
  display: table;
 +
  width: 100%;
 +
  table-layout: fixed;
 +
  border-collapse: separate;
 +
}
 +
.btn-group-justified > .btn,
 +
.btn-group-justified > .btn-group {
 +
  display: table-cell;
 +
  float: none;
 +
  width: 1%;
 +
}
 +
.btn-group-justified > .btn-group .btn {
 +
  width: 100%;
 +
}
 +
.btn-group-justified > .btn-group .dropdown-menu {
 +
  left: auto;
 +
}
 +
[data-toggle="buttons"] > .btn input[type="radio"],
 +
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
 +
[data-toggle="buttons"] > .btn input[type="checkbox"],
 +
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
 +
  position: absolute;
 +
  clip: rect(0, 0, 0, 0);
 +
  pointer-events: none;
 +
}
 +
.input-group {
 +
  position: relative;
 +
  display: table;
 +
  border-collapse: separate;
 +
}
 +
.input-group[class*="col-"] {
 +
  float: none;
 +
  padding-right: 0;
 +
  padding-left: 0;
 +
}
 +
.input-group .form-control {
 +
  position: relative;
 +
  z-index: 2;
 +
  float: left;
 +
  width: 100%;
 +
  margin-bottom: 0;
 +
}
 +
.input-group-lg > .form-control,
 +
.input-group-lg > .input-group-addon,
 +
.input-group-lg > .input-group-btn > .btn {
 +
  height: 46px;
 +
  padding: 10px 16px;
 +
  font-size: 18px;
 +
  line-height: 1.3333333;
 +
  border-radius: 6px;
 +
}
 +
select.input-group-lg > .form-control,
 +
select.input-group-lg > .input-group-addon,
 +
select.input-group-lg > .input-group-btn > .btn {
 +
  height: 46px;
 +
  line-height: 46px;
 +
}
 +
textarea.input-group-lg > .form-control,
 +
textarea.input-group-lg > .input-group-addon,
 +
textarea.input-group-lg > .input-group-btn > .btn,
 +
select[multiple].input-group-lg > .form-control,
 +
select[multiple].input-group-lg > .input-group-addon,
 +
select[multiple].input-group-lg > .input-group-btn > .btn {
 +
  height: auto;
 +
}
 +
.input-group-sm > .form-control,
 +
.input-group-sm > .input-group-addon,
 +
.input-group-sm > .input-group-btn > .btn {
 +
  height: 30px;
 +
  padding: 5px 10px;
 +
  font-size: 12px;
 +
  line-height: 1.5;
 +
  border-radius: 3px;
 +
}
 +
select.input-group-sm > .form-control,
 +
select.input-group-sm > .input-group-addon,
 +
select.input-group-sm > .input-group-btn > .btn {
 +
  height: 30px;
 +
  line-height: 30px;
 +
}
 +
textarea.input-group-sm > .form-control,
 +
textarea.input-group-sm > .input-group-addon,
 +
textarea.input-group-sm > .input-group-btn > .btn,
 +
select[multiple].input-group-sm > .form-control,
 +
select[multiple].input-group-sm > .input-group-addon,
 +
select[multiple].input-group-sm > .input-group-btn > .btn {
 +
  height: auto;
 +
}
 +
.input-group-addon,
 +
.input-group-btn,
 +
.input-group .form-control {
 +
  display: table-cell;
 +
}
 +
.input-group-addon:not(:first-child):not(:last-child),
 +
.input-group-btn:not(:first-child):not(:last-child),
 +
.input-group .form-control:not(:first-child):not(:last-child) {
 +
  border-radius: 0;
 +
}
 +
.input-group-addon,
 +
.input-group-btn {
 +
  width: 1%;
 +
  white-space: nowrap;
 +
  vertical-align: middle;
 +
}
 +
.input-group-addon {
 +
  padding: 6px 12px;
 +
  font-size: 14px;
 +
  font-weight: normal;
 +
  line-height: 1;
 +
  color: #555;
 +
  text-align: center;
 +
  background-color: #eee;
 +
  border: 1px solid #ccc;
 +
  border-radius: 4px;
 +
}
 +
.input-group-addon.input-sm {
 +
  padding: 5px 10px;
 +
  font-size: 12px;
 +
  border-radius: 3px;
 +
}
 +
.input-group-addon.input-lg {
 +
  padding: 10px 16px;
 +
  font-size: 18px;
 +
  border-radius: 6px;
 +
}
 +
.input-group-addon input[type="radio"],
 +
.input-group-addon input[type="checkbox"] {
 +
  margin-top: 0;
 +
}
 +
.input-group .form-control:first-child,
 +
.input-group-addon:first-child,
 +
.input-group-btn:first-child > .btn,
 +
.input-group-btn:first-child > .btn-group > .btn,
 +
.input-group-btn:first-child > .dropdown-toggle,
 +
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
 +
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
 +
  border-top-right-radius: 0;
 +
  border-bottom-right-radius: 0;
 +
}
 +
.input-group-addon:first-child {
 +
  border-right: 0;
 +
}
 +
.input-group .form-control:last-child,
 +
.input-group-addon:last-child,
 +
.input-group-btn:last-child > .btn,
 +
.input-group-btn:last-child > .btn-group > .btn,
 +
.input-group-btn:last-child > .dropdown-toggle,
 +
.input-group-btn:first-child > .btn:not(:first-child),
 +
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
 +
  border-top-left-radius: 0;
 +
  border-bottom-left-radius: 0;
 +
}
 +
.input-group-addon:last-child {
 +
  border-left: 0;
 +
}
 +
.input-group-btn {
 +
  position: relative;
 +
  font-size: 0;
 +
  white-space: nowrap;
 +
}
 +
.input-group-btn > .btn {
 +
  position: relative;
 +
}
 +
.input-group-btn > .btn + .btn {
 +
  margin-left: -1px;
 +
}
 +
.input-group-btn > .btn:hover,
 +
.input-group-btn > .btn:focus,
 +
.input-group-btn > .btn:active {
 +
  z-index: 2;
 +
}
 +
.input-group-btn:first-child > .btn,
 +
.input-group-btn:first-child > .btn-group {
 +
  margin-right: -1px;
 +
}
 +
.input-group-btn:last-child > .btn,
 +
.input-group-btn:last-child > .btn-group {
 +
  margin-left: -1px;
 +
}
 +
.nav {
 +
  padding-left: 0;
 +
  margin-bottom: 0;
 +
  list-style: none;
 +
}
 +
.nav > li {
 +
  position: relative;
 +
  display: block;
 +
}
 +
.nav > li > a {
 +
  position: relative;
 +
  display: block;
 +
  padding: 10px 15px;
 +
}
 +
.nav > li > a:hover,
 +
.nav > li > a:focus {
 +
  text-decoration: none;
 +
  background-color: #eee;
 +
}
 +
.nav > li.disabled > a {
 +
  color: #777;
 +
}
 +
.nav > li.disabled > a:hover,
 +
.nav > li.disabled > a:focus {
 +
  color: #777;
 +
  text-decoration: none;
 +
  cursor: not-allowed;
 +
  background-color: transparent;
 +
}
 +
.nav .open > a,
 +
.nav .open > a:hover,
 +
.nav .open > a:focus {
 +
  background-color: #eee;
 +
  border-color: #337ab7;
 +
}
 +
.nav .nav-divider {
 +
  height: 1px;
 +
  margin: 9px 0;
 +
  overflow: hidden;
 +
  background-color: #e5e5e5;
 +
}
 +
.nav > li > a > img {
 +
  max-width: none;
 +
}
 +
.nav-tabs {
 +
  border-bottom: 1px solid #ddd;
 +
}
 +
.nav-tabs > li {
 +
  float: left;
 +
  margin-bottom: -1px;
 +
}
 +
.nav-tabs > li > a {
 +
  margin-right: 2px;
 +
  line-height: 1.42857143;
 +
  border: 1px solid transparent;
 +
  border-radius: 4px 4px 0 0;
 +
}
 +
.nav-tabs > li > a:hover {
 +
  border-color: #eee #eee #ddd;
 +
}
 +
.nav-tabs > li.active > a,
 +
.nav-tabs > li.active > a:hover,
 +
.nav-tabs > li.active > a:focus {
 +
  color: #555;
 +
  cursor: default;
 +
  background-color: #fff;
 +
  border: 1px solid #ddd;
 +
  border-bottom-color: transparent;
 +
}
 +
.nav-tabs.nav-justified {
 +
  width: 100%;
 +
  border-bottom: 0;
 +
}
 +
.nav-tabs.nav-justified > li {
 +
  float: none;
 +
}
 +
.nav-tabs.nav-justified > li > a {
 +
  margin-bottom: 5px;
 +
  text-align: center;
 +
}
 +
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
 +
  top: auto;
 +
  left: auto;
 +
}
 +
@media (min-width: 768px) {
 +
  .nav-tabs.nav-justified > li {
 +
    display: table-cell;
 +
    width: 1%;
 +
  }
 +
  .nav-tabs.nav-justified > li > a {
 +
    margin-bottom: 0;
 +
  }
 +
}
 +
.nav-tabs.nav-justified > li > a {
 +
  margin-right: 0;
 +
  border-radius: 4px;
 +
}
 +
.nav-tabs.nav-justified > .active > a,
 +
.nav-tabs.nav-justified > .active > a:hover,
 +
.nav-tabs.nav-justified > .active > a:focus {
 +
  border: 1px solid #ddd;
 +
}
 +
@media (min-width: 768px) {
 +
  .nav-tabs.nav-justified > li > a {
 +
    border-bottom: 1px solid #ddd;
 +
    border-radius: 4px 4px 0 0;
 +
  }
 +
  .nav-tabs.nav-justified > .active > a,
 +
  .nav-tabs.nav-justified > .active > a:hover,
 +
  .nav-tabs.nav-justified > .active > a:focus {
 +
    border-bottom-color: #fff;
 +
  }
 +
}
 +
.nav-pills > li {
 +
  float: left;
 +
}
 +
.nav-pills > li > a {
 +
  border-radius: 4px;
 +
}
 +
.nav-pills > li + li {
 +
  margin-left: 2px;
 +
}
 +
.nav-pills > li.active > a,
 +
.nav-pills > li.active > a:hover,
 +
.nav-pills > li.active > a:focus {
 +
  color: #fff;
 +
  background-color: #337ab7;
 +
}
 +
.nav-stacked > li {
 +
  float: none;
 +
}
 +
.nav-stacked > li + li {
 +
  margin-top: 2px;
 +
  margin-left: 0;
 +
}
 +
.nav-justified {
 +
  width: 100%;
 +
}
 +
.nav-justified > li {
 +
  float: none;
 +
}
 +
.nav-justified > li > a {
 +
  margin-bottom: 5px;
 +
  text-align: center;
 +
}
 +
.nav-justified > .dropdown .dropdown-menu {
 +
  top: auto;
 +
  left: auto;
 +
}
 +
@media (min-width: 768px) {
 +
  .nav-justified > li {
 +
    display: table-cell;
 +
    width: 1%;
 +
  }
 +
  .nav-justified > li > a {
 +
    margin-bottom: 0;
 +
  }
 +
}
 +
.nav-tabs-justified {
 +
  border-bottom: 0;
 +
}
 +
.nav-tabs-justified > li > a {
 +
  margin-right: 0;
 +
  border-radius: 4px;
 +
}
 +
.nav-tabs-justified > .active > a,
 +
.nav-tabs-justified > .active > a:hover,
 +
.nav-tabs-justified > .active > a:focus {
 +
  border: 1px solid #ddd;
 +
}
 +
@media (min-width: 768px) {
 +
  .nav-tabs-justified > li > a {
 +
    border-bottom: 1px solid #ddd;
 +
    border-radius: 4px 4px 0 0;
 +
  }
 +
  .nav-tabs-justified > .active > a,
 +
  .nav-tabs-justified > .active > a:hover,
 +
  .nav-tabs-justified > .active > a:focus {
 +
    border-bottom-color: #fff;
 +
  }
 +
}
 +
.tab-content > .tab-pane {
 +
  display: none;
 +
  visibility: hidden;
 +
}
 +
.tab-content > .active {
 +
  display: block;
 +
  visibility: visible;
 +
}
 +
.nav-tabs .dropdown-menu {
 +
  margin-top: -1px;
 +
  border-top-left-radius: 0;
 +
  border-top-right-radius: 0;
 +
}
 +
.navbar {
 +
  position: relative;
 +
  min-height: 50px;
 +
  margin-bottom: 20px;
 +
  border: 1px solid transparent;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar {
 +
    border-radius: 4px;
 +
  }
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-header {
 +
    float: left;
 +
  }
 +
}
 +
.navbar-collapse {
 +
  padding-right: 15px;
 +
  padding-left: 15px;
 +
  overflow-x: visible;
 +
  -webkit-overflow-scrolling: touch;
 +
  border-top: 1px solid transparent;
 +
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
 +
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
 +
}
 +
.navbar-collapse.in {
 +
  overflow-y: auto;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-collapse {
 +
    width: auto;
 +
    border-top: 0;
 +
    -webkit-box-shadow: none;
 +
            box-shadow: none;
 +
  }
 +
  .navbar-collapse.collapse {
 +
    display: block !important;
 +
    height: auto !important;
 +
    padding-bottom: 0;
 +
    overflow: visible !important;
 +
    visibility: visible !important;
 +
  }
 +
  .navbar-collapse.in {
 +
    overflow-y: visible;
 +
  }
 +
  .navbar-fixed-top .navbar-collapse,
 +
  .navbar-static-top .navbar-collapse,
 +
  .navbar-fixed-bottom .navbar-collapse {
 +
    padding-right: 0;
 +
    padding-left: 0;
 +
  }
 +
}
 +
.navbar-fixed-top .navbar-collapse,
 +
.navbar-fixed-bottom .navbar-collapse {
 +
  max-height: 340px;
 +
}
 +
@media (max-device-width: 480px) and (orientation: landscape) {
 +
  .navbar-fixed-top .navbar-collapse,
 +
  .navbar-fixed-bottom .navbar-collapse {
 +
    max-height: 200px;
 +
  }
 +
}
 +
.container > .navbar-header,
 +
.container-fluid > .navbar-header,
 +
.container > .navbar-collapse,
 +
.container-fluid > .navbar-collapse {
 +
  margin-right: -15px;
 +
  margin-left: -15px;
 +
}
 +
@media (min-width: 768px) {
 +
  .container > .navbar-header,
 +
  .container-fluid > .navbar-header,
 +
  .container > .navbar-collapse,
 +
  .container-fluid > .navbar-collapse {
 +
    margin-right: 0;
 +
    margin-left: 0;
 +
  }
 +
}
 +
.navbar-static-top {
 +
  z-index: 1000;
 +
  border-width: 0 0 1px;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-static-top {
 +
    border-radius: 0;
 +
  }
 +
}
 +
.navbar-fixed-top,
 +
.navbar-fixed-bottom {
 +
  position: fixed;
 +
  right: 0;
 +
  left: 0;
 +
  z-index: 1030;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-fixed-top,
 +
  .navbar-fixed-bottom {
 +
    border-radius: 0;
 +
  }
 +
}
 +
.navbar-fixed-top {
 +
  top: 0;
 +
  border-width: 0 0 1px;
 +
}
 +
.navbar-fixed-bottom {
 +
  bottom: 0;
 +
  margin-bottom: 0;
 +
  border-width: 1px 0 0;
 +
}
 +
.navbar-brand {
 +
  float: left;
 +
  height: 50px;
 +
  padding: 15px 15px;
 +
  font-size: 18px;
 +
  line-height: 20px;
 +
}
 +
.navbar-brand:hover,
 +
.navbar-brand:focus {
 +
  text-decoration: none;
 +
}
 +
.navbar-brand > img {
 +
  display: block;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar > .container .navbar-brand,
 +
  .navbar > .container-fluid .navbar-brand {
 +
    margin-left: -15px;
 +
  }
 +
}
 +
.navbar-toggle {
 +
  position: relative;
 +
  float: right;
 +
  padding: 9px 10px;
 +
  margin-top: 8px;
 +
  margin-right: 15px;
 +
  margin-bottom: 8px;
 +
  background-color: transparent;
 +
  background-image: none;
 +
  border: 1px solid transparent;
 +
  border-radius: 4px;
 +
}
 +
.navbar-toggle:focus {
 +
  outline: 0;
 +
}
 +
.navbar-toggle .icon-bar {
 +
  display: block;
 +
  width: 22px;
 +
  height: 2px;
 +
  border-radius: 1px;
 +
}
 +
.navbar-toggle .icon-bar + .icon-bar {
 +
  margin-top: 4px;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-toggle {
 +
    display: none;
 +
  }
 +
}
 +
.navbar-nav {
 +
  margin: 7.5px -15px;
 +
}
 +
.navbar-nav > li > a {
 +
  padding-top: 10px;
 +
  padding-bottom: 10px;
 +
  line-height: 20px;
 +
}
 +
@media (max-width: 767px) {
 +
  .navbar-nav .open .dropdown-menu {
 +
    position: static;
 +
    float: none;
 +
    width: auto;
 +
    margin-top: 0;
 +
    background-color: transparent;
 +
    border: 0;
 +
    -webkit-box-shadow: none;
 +
            box-shadow: none;
 +
  }
 +
  .navbar-nav .open .dropdown-menu > li > a,
 +
  .navbar-nav .open .dropdown-menu .dropdown-header {
 +
    padding: 5px 15px 5px 25px;
 +
  }
 +
  .navbar-nav .open .dropdown-menu > li > a {
 +
    line-height: 20px;
 +
  }
 +
  .navbar-nav .open .dropdown-menu > li > a:hover,
 +
  .navbar-nav .open .dropdown-menu > li > a:focus {
 +
    background-image: none;
 +
  }
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-nav {
 +
    float: left;
 +
    margin: 0;
 +
  }
 +
  .navbar-nav > li {
 +
    float: left;
 +
  }
 +
  .navbar-nav > li > a {
 +
    padding-top: 15px;
 +
    padding-bottom: 15px;
 +
  }
 +
}
 +
.navbar-form {
 +
  padding: 10px 15px;
 +
  margin-top: 8px;
 +
  margin-right: -15px;
 +
  margin-bottom: 8px;
 +
  margin-left: -15px;
 +
  border-top: 1px solid transparent;
 +
  border-bottom: 1px solid transparent;
 +
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
 +
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-form .form-group {
 +
    display: inline-block;
 +
    margin-bottom: 0;
 +
    vertical-align: middle;
 +
  }
 +
  .navbar-form .form-control {
 +
    display: inline-block;
 +
    width: auto;
 +
    vertical-align: middle;
 +
  }
 +
  .navbar-form .form-control-static {
 +
    display: inline-block;
 +
  }
 +
  .navbar-form .input-group {
 +
    display: inline-table;
 +
    vertical-align: middle;
 +
  }
 +
  .navbar-form .input-group .input-group-addon,
 +
  .navbar-form .input-group .input-group-btn,
 +
  .navbar-form .input-group .form-control {
 +
    width: auto;
 +
  }
 +
  .navbar-form .input-group > .form-control {
 +
    width: 100%;
 +
  }
 +
  .navbar-form .control-label {
 +
    margin-bottom: 0;
 +
    vertical-align: middle;
 +
  }
 +
  .navbar-form .radio,
 +
  .navbar-form .checkbox {
 +
    display: inline-block;
 +
    margin-top: 0;
 +
    margin-bottom: 0;
 +
    vertical-align: middle;
 +
  }
 +
  .navbar-form .radio label,
 +
  .navbar-form .checkbox label {
 +
    padding-left: 0;
 +
  }
 +
  .navbar-form .radio input[type="radio"],
 +
  .navbar-form .checkbox input[type="checkbox"] {
 +
    position: relative;
 +
    margin-left: 0;
 +
  }
 +
  .navbar-form .has-feedback .form-control-feedback {
 +
    top: 0;
 +
  }
 +
}
 +
@media (max-width: 767px) {
 +
  .navbar-form .form-group {
 +
    margin-bottom: 5px;
 +
  }
 +
  .navbar-form .form-group:last-child {
 +
    margin-bottom: 0;
 +
  }
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-form {
 +
    width: auto;
 +
    padding-top: 0;
 +
    padding-bottom: 0;
 +
    margin-right: 0;
 +
    margin-left: 0;
 +
    border: 0;
 +
    -webkit-box-shadow: none;
 +
            box-shadow: none;
 +
  }
 +
}
 +
.navbar-nav > li > .dropdown-menu {
 +
  margin-top: 0;
 +
  border-top-left-radius: 0;
 +
  border-top-right-radius: 0;
 +
}
 +
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
 +
  margin-bottom: 0;
 +
  border-top-left-radius: 4px;
 +
  border-top-right-radius: 4px;
 +
  border-bottom-right-radius: 0;
 +
  border-bottom-left-radius: 0;
 +
}
 +
.navbar-btn {
 +
  margin-top: 8px;
 +
  margin-bottom: 8px;
 +
}
 +
.navbar-btn.btn-sm {
 +
  margin-top: 10px;
 +
  margin-bottom: 10px;
 +
}
 +
.navbar-btn.btn-xs {
 +
  margin-top: 14px;
 +
  margin-bottom: 14px;
 +
}
 +
.navbar-text {
 +
  margin-top: 15px;
 +
  margin-bottom: 15px;
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-text {
 +
    float: left;
 +
    margin-right: 15px;
 +
    margin-left: 15px;
 +
  }
 +
}
 +
@media (min-width: 768px) {
 +
  .navbar-left {
 +
    float: left !important;
 +
  }
 +
  .navbar-right {
 +
    float: right !important;
 +
    margin-right: -15px;
 +
  }
 +
  .navbar-right ~ .navbar-right {
 +
    margin-right: 0;
 +
  }
 +
}
 +
.navbar-default {
 +
  background-color: #f8f8f8;
 +
  border-color: #e7e7e7;
 +
}
 +
.navbar-default .navbar-brand {
 +
  color: #777;
 +
}
 +
.navbar-default .navbar-brand:hover,
 +
.navbar-default .navbar-brand:focus {
 +
  color: #5e5e5e;
 +
  background-color: transparent;
 +
}
 +
.navbar-default .navbar-text {
 +
  color: #777;
 +
}
 +
.navbar-default .navbar-nav > li > a {
 +
  color: #777;
 +
}
 +
.navbar-default .navbar-nav > li > a:hover,
 +
.navbar-default .navbar-nav > li > a:focus {
 +
  color: #333;
 +
  background-color: transparent;
 +
}
 +
.navbar-default .navbar-nav > .active > a,
 +
.navbar-default .navbar-nav > .active > a:hover,
 +
.navbar-default .navbar-nav > .active > a:focus {
 +
  color: #555;
 +
  background-color: #e7e7e7;
 +
}
 +
.navbar-default .navbar-nav > .disabled > a,
 +
.navbar-default .navbar-nav > .disabled > a:hover,
 +
.navbar-default .navbar-nav > .disabled > a:focus {
 +
  color: #ccc;
 +
  background-color: transparent;
 +
}
 +
.navbar-default .navbar-toggle {
 +
  border-color: #ddd;
 +
}
 +
.navbar-default .navbar-toggle:hover,
 +
.navbar-default .navbar-toggle:focus {
 +
  background-color: #ddd;
 +
}
 +
.navbar-default .navbar-toggle .icon-bar {
 +
  background-color: #888;
 +
}
 +
.navbar-default .navbar-collapse,
 +
.navbar-default .navbar-form {
 +
  border-color: #e7e7e7;
 +
}
 +
.navbar-default .navbar-nav > .open > a,
 +
.navbar-default .navbar-nav > .open > a:hover,
 +
.navbar-default .navbar-nav > .open > a:focus {
 +
  color: #555;
 +
  background-color: #e7e7e7;
 +
}
 +
@media (max-width: 767px) {
 +
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
 +
    color: #777;
 +
  }
 +
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
 +
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
 +
    color: #333;
 +
    background-color: transparent;
 +
  }
 +
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
 +
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
 +
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
 +
    color: #555;
 +
    background-color: #e7e7e7;
 +
  }
 +
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
 +
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
 +
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
 +
    color: #ccc;
 +
    background-color: transparent;
 +
  }
 +
}
 +
.navbar-default .navbar-link {
 +
  color: #777;
 +
}
 +
.navbar-default .navbar-link:hover {
 +
  color: #333;
 +
}
 +
.navbar-default .btn-link {
 +
  color: #777;
 +
}
 +
.navbar-default .btn-link:hover,
 +
.navbar-default .btn-link:focus {
 +
  color: #333;
 +
}
 +
.navbar-default .btn-link[disabled]:hover,
 +
fieldset[disabled] .navbar-default .btn-link:hover,
 +
.navbar-default .btn-link[disabled]:focus,
 +
fieldset[disabled] .navbar-default .btn-link:focus {
 +
  color: #ccc;
 +
}
 +
.navbar-inverse {
 +
  background-color: #222;
 +
  border-color: #080808;
 +
}
 +
.navbar-inverse .navbar-brand {
 +
  color: #9d9d9d;
 +
}
 +
.navbar-inverse .navbar-brand:hover,
 +
.navbar-inverse .navbar-brand:focus {
 +
  color: #fff;
 +
  background-color: transparent;
 +
}
 +
.navbar-inverse .navbar-text {
 +
  color: #9d9d9d;
 +
}
 +
.navbar-inverse .navbar-nav > li > a {
 +
  color: #9d9d9d;
 +
}
 +
.navbar-inverse .navbar-nav > li > a:hover,
 +
.navbar-inverse .navbar-nav > li > a:focus {
 +
  color: #fff;
 +
  background-color: transparent;
 +
}
 +
.navbar-inverse .navbar-nav > .active > a,
 +
.navbar-inverse .navbar-nav > .active > a:hover,
 +
.navbar-inverse .navbar-nav > .active > a:focus {
 +
  color: #fff;
 +
  background-color: #080808;
 +
}
 +
.navbar-inverse .navbar-nav > .disabled > a,
 +
.navbar-inverse .navbar-nav > .disabled > a:hover,
 +
.navbar-inverse .navbar-nav > .disabled > a:focus {
 +
  color: #444;
 +
  background-color: transparent;
 +
}
 +
.navbar-inverse .navbar-toggle {
 +
  border-color: #333;
 +
}
 +
.navbar-inverse .navbar-toggle:hover,
 +
.navbar-inverse .navbar-toggle:focus {
 +
  background-color: #333;
 +
}
 +
.navbar-inverse .navbar-toggle .icon-bar {
 +
  background-color: #fff;
 +
}
 +
.navbar-inverse .navbar-collapse,
 +
.navbar-inverse .navbar-form {
 +
  border-color: #101010;
 +
}
 +
.navbar-inverse .navbar-nav > .open > a,
 +
.navbar-inverse .navbar-nav > .open > a:hover,
 +
.navbar-inverse .navbar-nav > .open > a:focus {
 +
  color: #fff;
 +
  background-color: #080808;
 +
}
 +
@media (max-width: 767px) {
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
 +
    border-color: #080808;
 +
  }
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
 +
    background-color: #080808;
 +
  }
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
 +
    color: #9d9d9d;
 +
  }
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
 +
    color: #fff;
 +
    background-color: transparent;
 +
  }
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
 +
    color: #fff;
 +
    background-color: #080808;
 +
  }
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
 +
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
 +
    color: #444;
 +
    background-color: transparent;
 +
  }
 +
}
 +
.navbar-inverse .navbar-link {
 +
  color: #9d9d9d;
 +
}
 +
.navbar-inverse .navbar-link:hover {
 +
  color: #fff;
 +
}
 +
.navbar-inverse .btn-link {
 +
  color: #9d9d9d;
 +
}
 +
.navbar-inverse .btn-link:hover,
 +
.navbar-inverse .btn-link:focus {
 +
  color: #fff;
 +
}
 +
.navbar-inverse .btn-link[disabled]:hover,
 +
fieldset[disabled] .navbar-inverse .btn-link:hover,
 +
.navbar-inverse .btn-link[disabled]:focus,
 +
fieldset[disabled] .navbar-inverse .btn-link:focus {
 +
  color: #444;
 +
}
 +
.breadcrumb {
 +
  padding: 8px 15px;
 +
  margin-bottom: 20px;
 +
  list-style: none;
 +
  background-color: #f5f5f5;
 +
  border-radius: 4px;
 +
}
 +
.breadcrumb > li {
 +
  display: inline-block;
 +
}
 +
.breadcrumb > li + li:before {
 +
  padding: 0 5px;
 +
  color: #ccc;
 +
  content: "/\00a0";
 +
}
 +
.breadcrumb > .active {
 +
  color: #777;
 +
}
 +
.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;
 +
  margin-left: -1px;
 +
  line-height: 1.42857143;
 +
  color: #337ab7;
 +
  text-decoration: none;
 +
  background-color: #fff;
 +
  border: 1px solid #ddd;
 +
}
 +
.pagination > li:first-child > a,
 +
.pagination > li:first-child > span {
 +
  margin-left: 0;
 +
  border-top-left-radius: 4px;
 +
  border-bottom-left-radius: 4px;
 +
}
 +
.pagination > li:last-child > a,
 +
.pagination > li:last-child > span {
 +
  border-top-right-radius: 4px;
 +
  border-bottom-right-radius: 4px;
 +
}
 +
.pagination > li > a:hover,
 +
.pagination > li > span:hover,
 +
.pagination > li > a:focus,
 +
.pagination > li > span:focus {
 +
  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: 2;
 +
  color: #fff;
 +
  cursor: default;
 +
  background-color: #337ab7;
 +
  border-color: #337ab7;
 +
}
 +
.pagination > .disabled > span,
 +
.pagination > .disabled > span:hover,
 +
.pagination > .disabled > span:focus,
 +
.pagination > .disabled > a,
 +
.pagination > .disabled > a:hover,
 +
.pagination > .disabled > a:focus {
 +
  color: #777;
 +
  cursor: not-allowed;
 +
  background-color: #fff;
 +
  border-color: #ddd;
 +
}
 +
.pagination-lg > li > a,
 +
.pagination-lg > li > span {
 +
  padding: 10px 16px;
 +
  font-size: 18px;
 +
}
 +
.pagination-lg > li:first-child > a,
 +
.pagination-lg > li:first-child > span {
 +
  border-top-left-radius: 6px;
 +
  border-bottom-left-radius: 6px;
 +
}
 +
.pagination-lg > li:last-child > a,
 +
.pagination-lg > li:last-child > span {
 +
  border-top-right-radius: 6px;
 +
  border-bottom-right-radius: 6px;
 +
}
 +
.pagination-sm > li > a,
 +
.pagination-sm > li > span {
 +
  padding: 5px 10px;
 +
  font-size: 12px;
 +
}
 +
.pagination-sm > li:first-child > a,
 +
.pagination-sm > li:first-child > span {
 +
  border-top-left-radius: 3px;
 +
  border-bottom-left-radius: 3px;
 +
}
 +
.pagination-sm > li:last-child > a,
 +
.pagination-sm > li:last-child > span {
 +
  border-top-right-radius: 3px;
 +
  border-bottom-right-radius: 3px;
 +
}
 +
.pager {
 +
  padding-left: 0;
 +
  margin: 20px 0;
 +
  text-align: center;
 +
  list-style: none;
 +
}
 +
.pager li {
 +
  display: inline;
 +
}
 +
.pager li > a,
 +
.pager li > span {
 +
  display: inline-block;
 +
  padding: 5px 14px;
 +
  background-color: #fff;
 +
  border: 1px solid #ddd;
 +
  border-radius: 15px;
 +
}
 +
.pager li > a:hover,
 +
.pager li > a:focus {
 +
  text-decoration: none;
 +
  background-color: #eee;
 +
}
 +
.pager .next > a,
 +
.pager .next > span {
 +
  float: right;
 +
}
 +
.pager .previous > a,
 +
.pager .previous > span {
 +
  float: left;
 +
}
 +
.pager .disabled > a,
 +
.pager .disabled > a:hover,
 +
.pager .disabled > a:focus,
 +
.pager .disabled > span {
 +
  color: #777;
 +
  cursor: not-allowed;
 +
  background-color: #fff;
 +
}
 +
.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;
 +
}
 +
.badge {
 +
  display: inline-block;
 +
  min-width: 10px;
 +
  padding: 3px 7px;
 +
  font-size: 12px;
 +
  font-weight: bold;
 +
  line-height: 1;
 +
  color: #fff;
 +
  text-align: center;
 +
  white-space: nowrap;
 +
  vertical-align: baseline;
 +
  background-color: #777;
 +
  border-radius: 10px;
 +
}
 +
.badge:empty {
 +
  display: none;
 +
}
 +
.btn .badge {
 +
  position: relative;
 +
  top: -1px;
 +
}
 +
.btn-xs .badge {
 +
  top: 0;
 +
  padding: 1px 5px;
 +
}
 +
a.badge:hover,
 +
a.badge:focus {
 +
  color: #fff;
 +
  text-decoration: none;
 +
  cursor: pointer;
 +
}
 +
.list-group-item.active > .badge,
 +
.nav-pills > .active > a > .badge {
 +
  color: #337ab7;
 +
  background-color: #fff;
 +
}
 +
.list-group-item > .badge {
 +
  float: right;
 +
}
 +
.list-group-item > .badge + .badge {
 +
  margin-right: 5px;
 +
}
 +
.nav-pills > li > a > .badge {
 +
  margin-left: 3px;
 +
}
 +
.jumbotron {
 +
  padding: 30px 15px;
 +
  margin-bottom: 30px;
 +
  color: inherit;
 +
  background-color: #eee;
 +
}
 +
.jumbotron h1,
 +
.jumbotron .h1 {
 +
  color: inherit;
 +
}
 +
.jumbotron p {
 +
  margin-bottom: 15px;
 +
  font-size: 21px;
 +
  font-weight: 200;
 +
}
 +
.jumbotron > hr {
 +
  border-top-color: #d5d5d5;
 +
}
 +
.container .jumbotron,
 +
.container-fluid .jumbotron {
 +
  border-radius: 6px;
 +
}
 +
.jumbotron .container {
 +
  max-width: 100%;
 +
}
 +
@media screen and (min-width: 768px) {
 +
  .jumbotron {
 +
    padding: 48px 0;
 +
  }
 +
  .container .jumbotron,
 +
  .container-fluid .jumbotron {
 +
    padding-right: 60px;
 +
    padding-left: 60px;
 +
  }
 +
  .jumbotron h1,
 +
  .jumbotron .h1 {
 +
    font-size: 63px;
 +
  }
 +
}
 +
.thumbnail {
 +
  display: block;
 +
  padding: 4px;
 +
  margin-bottom: 20px;
 +
  line-height: 1.42857143;
 +
  background-color: #fff;
 +
  border: 1px solid #ddd;
 +
  border-radius: 4px;
 +
  -webkit-transition: border .2s ease-in-out;
 +
      -o-transition: border .2s ease-in-out;
 +
          transition: border .2s ease-in-out;
 +
}
 +
.thumbnail > img,
 +
.thumbnail a > img {
 +
  margin-right: auto;
 +
  margin-left: auto;
 +
}
 +
a.thumbnail:hover,
 +
a.thumbnail:focus,
 +
a.thumbnail.active {
 +
  border-color: #337ab7;
 +
}
 +
.thumbnail .caption {
 +
  padding: 9px;
 +
  color: #333;
 +
}
 +
.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 {
 +
  color: #3c763d;
 +
  background-color: #dff0d8;
 +
  border-color: #d6e9c6;
 +
}
 +
.alert-success hr {
 +
  border-top-color: #c9e2b3;
 +
}
 +
.alert-success .alert-link {
 +
  color: #2b542c;
 +
}
 +
.alert-info {
 +
  color: #31708f;
 +
  background-color: #d9edf7;
 +
  border-color: #bce8f1;
 +
}
 +
.alert-info hr {
 +
  border-top-color: #a6e1ec;
 +
}
 +
.alert-info .alert-link {
 +
  color: #245269;
 +
}
 +
.alert-warning {
 +
  color: #8a6d3b;
 +
  background-color: #fcf8e3;
 +
  border-color: #faebcc;
 +
}
 +
.alert-warning hr {
 +
  border-top-color: #f7e1b5;
 +
}
 +
.alert-warning .alert-link {
 +
  color: #66512c;
 +
}
 +
.alert-danger {
 +
  color: #a94442;
 +
  background-color: #f2dede;
 +
  border-color: #ebccd1;
 +
}
 +
.alert-danger hr {
 +
  border-top-color: #e4b9c0;
 +
}
 +
.alert-danger .alert-link {
 +
  color: #843534;
 +
}
 +
@-webkit-keyframes progress-bar-stripes {
 +
  from {
 +
    background-position: 40px 0;
 +
  }
 +
  to {
 +
    background-position: 0 0;
 +
  }
 +
}
 +
@-o-keyframes progress-bar-stripes {
 +
  from {
 +
    background-position: 40px 0;
 +
  }
 +
  to {
 +
    background-position: 0 0;
 +
  }
 +
}
 +
@keyframes progress-bar-stripes {
 +
  from {
 +
    background-position: 40px 0;
 +
  }
 +
  to {
 +
    background-position: 0 0;
 +
  }
 +
}
 +
.progress {
 +
  height: 20px;
 +
  margin-bottom: 20px;
 +
  overflow: hidden;
 +
  background-color: #f5f5f5;
 +
  border-radius: 4px;
 +
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
 +
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
 +
}
 +
.progress-bar {
 +
  float: left;
 +
  width: 0;
 +
  height: 100%;
 +
  font-size: 12px;
 +
  line-height: 20px;
 +
  color: #fff;
 +
  text-align: center;
 +
  background-color: #337ab7;
 +
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
 +
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
 +
  -webkit-transition: width .6s ease;
 +
      -o-transition: width .6s ease;
 +
          transition: width .6s ease;
 +
}
 +
.progress-striped .progress-bar,
 +
.progress-bar-striped {
 +
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:        linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  -webkit-background-size: 40px 40px;
 +
          background-size: 40px 40px;
 +
}
 +
.progress.active .progress-bar,
 +
.progress-bar.active {
 +
  -webkit-animation: progress-bar-stripes 2s linear infinite;
 +
      -o-animation: progress-bar-stripes 2s linear infinite;
 +
          animation: progress-bar-stripes 2s linear infinite;
 +
}
 +
.progress-bar-success {
 +
  background-color: #5cb85c;
 +
}
 +
.progress-striped .progress-bar-success {
 +
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:        linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
}
 +
.progress-bar-info {
 +
  background-color: #5bc0de;
 +
}
 +
.progress-striped .progress-bar-info {
 +
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:        linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
}
 +
.progress-bar-warning {
 +
  background-color: #f0ad4e;
 +
}
 +
.progress-striped .progress-bar-warning {
 +
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:        linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
}
 +
.progress-bar-danger {
 +
  background-color: #d9534f;
 +
}
 +
.progress-striped .progress-bar-danger {
 +
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
  background-image:        linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
 +
}
 +
.media {
 +
  margin-top: 15px;
 +
}
 +
.media:first-child {
 +
  margin-top: 0;
 +
}
 +
.media,
 +
.media-body {
 +
  overflow: hidden;
 +
  zoom: 1;
 +
}
 +
.media-body {
 +
  width: 10000px;
 +
}
 +
.media-object {
 +
  display: block;
 +
}
 +
.media-right,
 +
.media > .pull-right {
 +
  padding-left: 10px;
 +
}
 +
.media-left,
 +
.media > .pull-left {
 +
  padding-right: 10px;
 +
}
 +
.media-left,
 +
.media-right,
 +
.media-body {
 +
  display: table-cell;
 +
  vertical-align: top;
 +
}
 +
.media-middle {
 +
  vertical-align: middle;
 +
}
 +
.media-bottom {
 +
  vertical-align: bottom;
 +
}
 +
.media-heading {
 +
  margin-top: 0;
 +
  margin-bottom: 5px;
 +
}
 +
.media-list {
 +
  padding-left: 0;
 +
  list-style: none;
 +
}
 +
.list-group {
 +
  padding-left: 0;
 +
  margin-bottom: 20px;
 +
}
 +
.list-group-item {
 +
  position: relative;
 +
  display: block;
 +
  padding: 10px 15px;
 +
  margin-bottom: -1px;
 +
  background-color: #fff;
 +
  border: 1px solid #ddd;
 +
}
 +
.list-group-item:first-child {
 +
  border-top-left-radius: 4px;
 +
  border-top-right-radius: 4px;
 +
}
 +
.list-group-item:last-child {
 +
  margin-bottom: 0;
 +
  border-bottom-right-radius: 4px;
 +
  border-bottom-left-radius: 4px;
 +
}
 +
a.list-group-item {
 +
  color: #555;
 +
}
 +
a.list-group-item .list-group-item-heading {
 +
  color: #333;
 +
}
 +
a.list-group-item:hover,
 +
a.list-group-item:focus {
 +
  color: #555;
 +
  text-decoration: none;
 +
  background-color: #f5f5f5;
 +
}
 +
.list-group-item.disabled,
 +
.list-group-item.disabled:hover,
 +
.list-group-item.disabled:focus {
 +
  color: #777;
 +
  cursor: not-allowed;
 +
  background-color: #eee;
 +
}
 +
.list-group-item.disabled .list-group-item-heading,
 +
.list-group-item.disabled:hover .list-group-item-heading,
 +
.list-group-item.disabled:focus .list-group-item-heading {
 +
  color: inherit;
 +
}
 +
.list-group-item.disabled .list-group-item-text,
 +
.list-group-item.disabled:hover .list-group-item-text,
 +
.list-group-item.disabled:focus .list-group-item-text {
 +
  color: #777;
 +
}
 +
.list-group-item.active,
 +
.list-group-item.active:hover,
 +
.list-group-item.active:focus {
 +
  z-index: 2;
 +
  color: #fff;
 +
  background-color: #337ab7;
 +
  border-color: #337ab7;
 +
}
 +
.list-group-item.active .list-group-item-heading,
 +
.list-group-item.active:hover .list-group-item-heading,
 +
.list-group-item.active:focus .list-group-item-heading,
 +
.list-group-item.active .list-group-item-heading > small,
 +
.list-group-item.active:hover .list-group-item-heading > small,
 +
.list-group-item.active:focus .list-group-item-heading > small,
 +
.list-group-item.active .list-group-item-heading > .small,
 +
.list-group-item.active:hover .list-group-item-heading > .small,
 +
.list-group-item.active:focus .list-group-item-heading > .small {
 +
  color: inherit;
 +
}
 +
.list-group-item.active .list-group-item-text,
 +
.list-group-item.active:hover .list-group-item-text,
 +
.list-group-item.active:focus .list-group-item-text {
 +
  color: #c7ddef;
 +
}
 +
.list-group-item-success {
 +
  color: #3c763d;
 +
  background-color: #dff0d8;
 +
}
 +
a.list-group-item-success {
 +
  color: #3c763d;
 +
}
 +
a.list-group-item-success .list-group-item-heading {
 +
  color: inherit;
 +
}
 +
a.list-group-item-success:hover,
 +
a.list-group-item-success:focus {
 +
  color: #3c763d;
 +
  background-color: #d0e9c6;
 +
}
 +
a.list-group-item-success.active,
 +
a.list-group-item-success.active:hover,
 +
a.list-group-item-success.active:focus {
 +
  color: #fff;
 +
  background-color: #3c763d;
 +
  border-color: #3c763d;
 +
}
 +
.list-group-item-info {
 +
  color: #31708f;
 +
  background-color: #d9edf7;
 +
}
 +
a.list-group-item-info {
 +
  color: #31708f;
 +
}
 +
a.list-group-item-info .list-group-item-heading {
 +
  color: inherit;
 +
}
 +
a.list-group-item-info:hover,
 +
a.list-group-item-info:focus {
 +
  color: #31708f;
 +
  background-color: #c4e3f3;
 +
}
 +
a.list-group-item-info.active,
 +
a.list-group-item-info.active:hover,
 +
a.list-group-item-info.active:focus {
 +
  color: #fff;
 +
  background-color: #31708f;
 +
  border-color: #31708f;
 +
}
 +
.list-group-item-warning {
 +
  color: #8a6d3b;
 +
  background-color: #fcf8e3;
 +
}
 +
a.list-group-item-warning {
 +
  color: #8a6d3b;
 +
}
 +
a.list-group-item-warning .list-group-item-heading {
 +
  color: inherit;
 +
}
 +
a.list-group-item-warning:hover,
 +
a.list-group-item-warning:focus {
 +
  color: #8a6d3b;
 +
  background-color: #faf2cc;
 +
}
 +
a.list-group-item-warning.active,
 +
a.list-group-item-warning.active:hover,
 +
a.list-group-item-warning.active:focus {
 +
  color: #fff;
 +
  background-color: #8a6d3b;
 +
  border-color: #8a6d3b;
 +
}
 +
.list-group-item-danger {
 +
  color: #a94442;
 +
  background-color: #f2dede;
 +
}
 +
a.list-group-item-danger {
 +
  color: #a94442;
 +
}
 +
a.list-group-item-danger .list-group-item-heading {
 +
  color: inherit;
 +
}
 +
a.list-group-item-danger:hover,
 +
a.list-group-item-danger:focus {
 +
  color: #a94442;
 +
  background-color: #ebcccc;
 +
}
 +
a.list-group-item-danger.active,
 +
a.list-group-item-danger.active:hover,
 +
a.list-group-item-danger.active:focus {
 +
  color: #fff;
 +
  background-color: #a94442;
 +
  border-color: #a94442;
 +
}
 +
.list-group-item-heading {
 +
  margin-top: 0;
 +
  margin-bottom: 5px;
 +
}
 +
.list-group-item-text {
 +
  margin-bottom: 0;
 +
  line-height: 1.3;
 +
}
 +
.panel {
 +
  margin-bottom: 20px;
 +
  background-color: #fff;
 +
  border: 1px solid transparent;
 +
  border-radius: 4px;
 +
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
 +
          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
 +
}
 +
.panel-body {
 +
  padding: 15px;
 +
}
 +
.panel-heading {
 +
  padding: 10px 15px;
 +
  border-bottom: 1px solid transparent;
 +
  border-top-left-radius: 3px;
 +
  border-top-right-radius: 3px;
 +
}
 +
.panel-heading > .dropdown .dropdown-toggle {
 +
  color: inherit;
 +
}
 +
.panel-title {
 +
  margin-top: 0;
 +
  margin-bottom: 0;
 +
  font-size: 16px;
 +
  color: inherit;
 +
}
 +
.panel-title > a,
 +
.panel-title > small,
 +
.panel-title > .small,
 +
.panel-title > small > a,
 +
.panel-title > .small > a {
 +
  color: inherit;
 +
}
 +
.panel-footer {
 +
  padding: 10px 15px;
 +
  background-color: #f5f5f5;
 +
  border-top: 1px solid #ddd;
 +
  border-bottom-right-radius: 3px;
 +
  border-bottom-left-radius: 3px;
 +
}
 +
.panel > .list-group,
 +
.panel > .panel-collapse > .list-group {
 +
  margin-bottom: 0;
 +
}
 +
.panel > .list-group .list-group-item,
 +
.panel > .panel-collapse > .list-group .list-group-item {
 +
  border-width: 1px 0;
 +
  border-radius: 0;
 +
}
 +
.panel > .list-group:first-child .list-group-item:first-child,
 +
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
 +
  border-top: 0;
 +
  border-top-left-radius: 3px;
 +
  border-top-right-radius: 3px;
 +
}
 +
.panel > .list-group:last-child .list-group-item:last-child,
 +
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
 +
  border-bottom: 0;
 +
  border-bottom-right-radius: 3px;
 +
  border-bottom-left-radius: 3px;
 +
}
 +
.panel-heading + .list-group .list-group-item:first-child {
 +
  border-top-width: 0;
 +
}
 +
.list-group + .panel-footer {
 +
  border-top-width: 0;
 +
}
 +
.panel > .table,
 +
.panel > .table-responsive > .table,
 +
.panel > .panel-collapse > .table {
 +
  margin-bottom: 0;
 +
}
 +
.panel > .table caption,
 +
.panel > .table-responsive > .table caption,
 +
.panel > .panel-collapse > .table caption {
 +
  padding-right: 15px;
 +
  padding-left: 15px;
 +
}
 +
.panel > .table:first-child,
 +
.panel > .table-responsive:first-child > .table:first-child {
 +
  border-top-left-radius: 3px;
 +
  border-top-right-radius: 3px;
 +
}
 +
.panel > .table:first-child > thead:first-child > tr:first-child,
 +
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
 +
.panel > .table:first-child > tbody:first-child > tr:first-child,
 +
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
 +
  border-top-left-radius: 3px;
 +
  border-top-right-radius: 3px;
 +
}
 +
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
 +
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
 +
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
 +
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
 +
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
 +
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
 +
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
 +
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
 +
  border-top-left-radius: 3px;
 +
}
 +
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
 +
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
 +
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
 +
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
 +
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
 +
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
 +
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
 +
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
 +
  border-top-right-radius: 3px;
 +
}
 +
.panel > .table:last-child,
 +
.panel > .table-responsive:last-child > .table:last-child {
 +
  border-bottom-right-radius: 3px;
 +
  border-bottom-left-radius: 3px;
 +
}
 +
.panel > .table:last-child > tbody:last-child > tr:last-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
 +
.panel > .table:last-child > tfoot:last-child > tr:last-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
 +
  border-bottom-right-radius: 3px;
 +
  border-bottom-left-radius: 3px;
 +
}
 +
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
 +
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
 +
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
 +
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
 +
  border-bottom-left-radius: 3px;
 +
}
 +
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
 +
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
 +
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
 +
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
 +
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
 +
  border-bottom-right-radius: 3px;
 +
}
 +
.panel > .panel-body + .table,
 +
.panel > .panel-body + .table-responsive,
 +
.panel > .table + .panel-body,
 +
.panel > .table-responsive + .panel-body {
 +
  border-top: 1px solid #ddd;
 +
}
 +
.panel > .table > tbody:first-child > tr:first-child th,
 +
.panel > .table > tbody:first-child > tr:first-child td {
 +
  border-top: 0;
 +
}
 +
.panel > .table-bordered,
 +
.panel > .table-responsive > .table-bordered {
 +
  border: 0;
 +
}
 +
.panel > .table-bordered > thead > tr > th:first-child,
 +
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
 +
.panel > .table-bordered > tbody > tr > th:first-child,
 +
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
 +
.panel > .table-bordered > tfoot > tr > th:first-child,
 +
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
 +
.panel > .table-bordered > thead > tr > td:first-child,
 +
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
 +
.panel > .table-bordered > tbody > tr > td:first-child,
 +
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
 +
.panel > .table-bordered > tfoot > tr > td:first-child,
 +
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
 +
  border-left: 0;
 +
}
 +
.panel > .table-bordered > thead > tr > th:last-child,
 +
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
 +
.panel > .table-bordered > tbody > tr > th:last-child,
 +
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
 +
.panel > .table-bordered > tfoot > tr > th:last-child,
 +
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
 +
.panel > .table-bordered > thead > tr > td:last-child,
 +
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
 +
.panel > .table-bordered > tbody > tr > td:last-child,
 +
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
 +
.panel > .table-bordered > tfoot > tr > td:last-child,
 +
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
 +
  border-right: 0;
 +
}
 +
.panel > .table-bordered > thead > tr:first-child > td,
 +
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
 +
.panel > .table-bordered > tbody > tr:first-child > td,
 +
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
 +
.panel > .table-bordered > thead > tr:first-child > th,
 +
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
 +
.panel > .table-bordered > tbody > tr:first-child > th,
 +
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
 +
  border-bottom: 0;
 +
}
 +
.panel > .table-bordered > tbody > tr:last-child > td,
 +
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
 +
.panel > .table-bordered > tfoot > tr:last-child > td,
 +
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
 +
.panel > .table-bordered > tbody > tr:last-child > th,
 +
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
 +
.panel > .table-bordered > tfoot > tr:last-child > th,
 +
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
 +
  border-bottom: 0;
 +
}
 +
.panel > .table-responsive {
 +
  margin-bottom: 0;
 +
  border: 0;
 +
}
 +
.panel-group {
 +
  margin-bottom: 20px;
 +
}
 +
.panel-group .panel {
 +
  margin-bottom: 0;
 +
  border-radius: 4px;
 +
}
 +
.panel-group .panel + .panel {
 +
  margin-top: 5px;
 +
}
 +
.panel-group .panel-heading {
 +
  border-bottom: 0;
 +
}
 +
.panel-group .panel-heading + .panel-collapse > .panel-body,
 +
.panel-group .panel-heading + .panel-collapse > .list-group {
 +
  border-top: 1px solid #ddd;
 +
}
 +
.panel-group .panel-footer {
 +
  border-top: 0;
 +
}
 +
.panel-group .panel-footer + .panel-collapse .panel-body {
 +
  border-bottom: 1px solid #ddd;
 +
}
 +
.panel-default {
 +
  border-color: #ddd;
 +
}
 +
.panel-default > .panel-heading {
 +
  color: #333;
 +
  background-color: #f5f5f5;
 +
  border-color: #ddd;
 +
}
 +
.panel-default > .panel-heading + .panel-collapse > .panel-body {
 +
  border-top-color: #ddd;
 +
}
 +
.panel-default > .panel-heading .badge {
 +
  color: #f5f5f5;
 +
  background-color: #333;
 +
}
 +
.panel-default > .panel-footer + .panel-collapse > .panel-body {
 +
  border-bottom-color: #ddd;
 +
}
 +
.panel-primary {
 +
  border-color: #337ab7;
 +
}
 +
.panel-primary > .panel-heading {
 +
  color: #fff;
 +
  background-color: #337ab7;
 +
  border-color: #337ab7;
 +
}
 +
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
 +
  border-top-color: #337ab7;
 +
}
 +
.panel-primary > .panel-heading .badge {
 +
  color: #337ab7;
 +
  background-color: #fff;
 +
}
 +
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
 +
  border-bottom-color: #337ab7;
 +
}
 +
.panel-success {
 +
  border-color: #d6e9c6;
 +
}
 +
.panel-success > .panel-heading {
 +
  color: #3c763d;
 +
  background-color: #dff0d8;
 +
  border-color: #d6e9c6;
 +
}
 +
.panel-success > .panel-heading + .panel-collapse > .panel-body {
 +
  border-top-color: #d6e9c6;
 +
}
 +
.panel-success > .panel-heading .badge {
 +
  color: #dff0d8;
 +
  background-color: #3c763d;
 +
}
 +
.panel-success > .panel-footer + .panel-collapse > .panel-body {
 +
  border-bottom-color: #d6e9c6;
 +
}
 +
.panel-info {
 +
  border-color: #bce8f1;
 +
}
 +
.panel-info > .panel-heading {
 +
  color: #31708f;
 +
  background-color: #d9edf7;
 +
  border-color: #bce8f1;
 +
}
 +
.panel-info > .panel-heading + .panel-collapse > .panel-body {
 +
  border-top-color: #bce8f1;
 +
}
 +
.panel-info > .panel-heading .badge {
 +
  color: #d9edf7;
 +
  background-color: #31708f;
 +
}
 +
.panel-info > .panel-footer + .panel-collapse > .panel-body {
 +
  border-bottom-color: #bce8f1;
 +
}
 +
.panel-warning {
 +
  border-color: #faebcc;
 +
}
 +
.panel-warning > .panel-heading {
 +
  color: #8a6d3b;
 +
  background-color: #fcf8e3;
 +
  border-color: #faebcc;
 +
}
 +
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
 +
  border-top-color: #faebcc;
 +
}
 +
.panel-warning > .panel-heading .badge {
 +
  color: #fcf8e3;
 +
  background-color: #8a6d3b;
 +
}
 +
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
 +
  border-bottom-color: #faebcc;
 +
}
 +
.panel-danger {
 +
  border-color: #ebccd1;
 +
}
 +
.panel-danger > .panel-heading {
 +
  color: #a94442;
 +
  background-color: #f2dede;
 +
  border-color: #ebccd1;
 +
}
 +
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
 +
  border-top-color: #ebccd1;
 +
}
 +
.panel-danger > .panel-heading .badge {
 +
  color: #f2dede;
 +
  background-color: #a94442;
 +
}
 +
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
 +
  border-bottom-color: #ebccd1;
 +
}
 +
.embed-responsive {
 +
  position: relative;
 +
  display: block;
 +
  height: 0;
 +
  padding: 0;
 +
  overflow: hidden;
 +
}
 +
.embed-responsive .embed-responsive-item,
 +
.embed-responsive iframe,
 +
.embed-responsive embed,
 +
.embed-responsive object,
 +
.embed-responsive video {
 +
  position: absolute;
 +
  top: 0;
 +
  bottom: 0;
 +
  left: 0;
 +
  width: 100%;
 +
  height: 100%;
 +
  border: 0;
 +
}
 +
.embed-responsive.embed-responsive-16by9 {
 +
  padding-bottom: 56.25%;
 +
}
 +
.embed-responsive.embed-responsive-4by3 {
 +
  padding-bottom: 75%;
 +
}
 +
.well {
 +
  min-height: 20px;
 +
  padding: 19px;
 +
  margin-bottom: 20px;
 +
  background-color: #f5f5f5;
 +
  border: 1px solid #e3e3e3;
 +
  border-radius: 4px;
 +
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
 +
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
 +
}
 +
.well blockquote {
 +
  border-color: #ddd;
 +
  border-color: rgba(0, 0, 0, .15);
 +
}
 +
.well-lg {
 +
  padding: 24px;
 +
  border-radius: 6px;
 +
}
 +
.well-sm {
 +
  padding: 9px;
 +
  border-radius: 3px;
 +
}
 +
.close {
 +
  float: right;
 +
  font-size: 21px;
 +
  font-weight: bold;
 +
  line-height: 1;
 +
  color: #000;
 +
  text-shadow: 0 1px 0 #fff;
 +
  filter: alpha(opacity=20);
 +
  opacity: .2;
 +
}
 +
.close:hover,
 +
.close:focus {
 +
  color: #000;
 +
  text-decoration: none;
 +
  cursor: pointer;
 +
  filter: alpha(opacity=50);
 +
  opacity: .5;
 +
}
 +
button.close {
 +
  -webkit-appearance: none;
 +
  padding: 0;
 +
  cursor: pointer;
 +
  background: transparent;
 +
  border: 0;
 +
}
 +
.modal-open {
 +
  overflow: hidden;
 +
}
 +
.modal {
 +
  position: fixed;
 +
  top: 0;
 +
  right: 0;
 +
  bottom: 0;
 +
  left: 0;
 +
  z-index: 1040;
 +
  display: none;
 +
  overflow: hidden;
 +
  -webkit-overflow-scrolling: touch;
 +
  outline: 0;
 +
}
 +
.modal.fade .modal-dialog {
 +
  -webkit-transition: -webkit-transform .3s ease-out;
 +
      -o-transition:      -o-transform .3s ease-out;
 +
          transition:        transform .3s ease-out;
 +
  -webkit-transform: translate(0, -25%);
 +
      -ms-transform: translate(0, -25%);
 +
      -o-transform: translate(0, -25%);
 +
          transform: translate(0, -25%);
 +
}
 +
.modal.in .modal-dialog {
 +
  -webkit-transform: translate(0, 0);
 +
      -ms-transform: translate(0, 0);
 +
      -o-transform: translate(0, 0);
 +
          transform: translate(0, 0);
 +
}
 +
.modal-open .modal {
 +
  overflow-x: hidden;
 +
  overflow-y: auto;
 +
}
 +
.modal-dialog {
 +
  position: relative;
 +
  width: auto;
 +
  margin: 10px;
 +
}
 +
.modal-content {
 +
  position: relative;
 +
  background-color: #fff;
 +
  -webkit-background-clip: padding-box;
 +
          background-clip: padding-box;
 +
  border: 1px solid #999;
 +
  border: 1px solid rgba(0, 0, 0, .2);
 +
  border-radius: 6px;
 +
  outline: 0;
 +
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
 +
          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
 +
}
 +
.modal-backdrop {
 +
  position: absolute;
 +
  top: 0;
 +
  right: 0;
 +
  left: 0;
 +
  background-color: #000;
 +
}
 +
.modal-backdrop.fade {
 +
  filter: alpha(opacity=0);
 +
  opacity: 0;
 +
}
 +
.modal-backdrop.in {
 +
  filter: alpha(opacity=50);
 +
  opacity: .5;
 +
}
 +
.modal-header {
 +
  min-height: 16.42857143px;
 +
  padding: 15px;
 +
  border-bottom: 1px solid #e5e5e5;
 +
}
 +
.modal-header .close {
 +
  margin-top: -2px;
 +
}
 +
.modal-title {
 +
  margin: 0;
 +
  line-height: 1.42857143;
 +
}
 +
.modal-body {
 +
  position: relative;
 +
  padding: 15px;
 +
}
 +
.modal-footer {
 +
  padding: 15px;
 +
  text-align: right;
 +
  border-top: 1px solid #e5e5e5;
 +
}
 +
.modal-footer .btn + .btn {
 +
  margin-bottom: 0;
 +
  margin-left: 5px;
 +
}
 +
.modal-footer .btn-group .btn + .btn {
 +
  margin-left: -1px;
 +
}
 +
.modal-footer .btn-block + .btn-block {
 +
  margin-left: 0;
 +
}
 +
.modal-scrollbar-measure {
 +
  position: absolute;
 +
  top: -9999px;
 +
  width: 50px;
 +
  height: 50px;
 +
  overflow: scroll;
 +
}
 +
@media (min-width: 768px) {
 +
  .modal-dialog {
 +
    width: 600px;
 +
    margin: 30px auto;
 +
  }
 +
  .modal-content {
 +
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
 +
            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
 +
  }
 +
  .modal-sm {
 +
    width: 300px;
 +
  }
 +
}
 +
@media (min-width: 992px) {
 +
  .modal-lg {
 +
    width: 900px;
 +
  }
 +
}
 +
.tooltip {
 +
  position: absolute;
 +
  z-index: 1070;
 +
  display: block;
 +
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 +
  font-size: 12px;
 +
  font-weight: normal;
 +
  line-height: 1.4;
 +
  visibility: visible;
 +
  filter: alpha(opacity=0);
 +
  opacity: 0;
 +
}
 +
.tooltip.in {
 +
  filter: alpha(opacity=90);
 +
  opacity: .9;
 +
}
 +
.tooltip.top {
 +
  padding: 5px 0;
 +
  margin-top: -3px;
 +
}
 +
.tooltip.right {
 +
  padding: 0 5px;
 +
  margin-left: 3px;
 +
}
 +
.tooltip.bottom {
 +
  padding: 5px 0;
 +
  margin-top: 3px;
 +
}
 +
.tooltip.left {
 +
  padding: 0 5px;
 +
  margin-left: -3px;
 +
}
 +
.tooltip-inner {
 +
  max-width: 200px;
 +
  padding: 3px 8px;
 +
  color: #fff;
 +
  text-align: center;
 +
  text-decoration: none;
 +
  background-color: #000;
 +
  border-radius: 4px;
 +
}
 +
.tooltip-arrow {
 +
  position: absolute;
 +
  width: 0;
 +
  height: 0;
 +
  border-color: transparent;
 +
  border-style: solid;
 +
}
 +
.tooltip.top .tooltip-arrow {
 +
  bottom: 0;
 +
  left: 50%;
 +
  margin-left: -5px;
 +
  border-width: 5px 5px 0;
 +
  border-top-color: #000;
 +
}
 +
.tooltip.top-left .tooltip-arrow {
 +
  right: 5px;
 +
  bottom: 0;
 +
  margin-bottom: -5px;
 +
  border-width: 5px 5px 0;
 +
  border-top-color: #000;
 +
}
 +
.tooltip.top-right .tooltip-arrow {
 +
  bottom: 0;
 +
  left: 5px;
 +
  margin-bottom: -5px;
 +
  border-width: 5px 5px 0;
 +
  border-top-color: #000;
 +
}
 +
.tooltip.right .tooltip-arrow {
 +
  top: 50%;
 +
  left: 0;
 +
  margin-top: -5px;
 +
  border-width: 5px 5px 5px 0;
 +
  border-right-color: #000;
 +
}
 +
.tooltip.left .tooltip-arrow {
 +
  top: 50%;
 +
  right: 0;
 +
  margin-top: -5px;
 +
  border-width: 5px 0 5px 5px;
 +
  border-left-color: #000;
 +
}
 +
.tooltip.bottom .tooltip-arrow {
 +
  top: 0;
 +
  left: 50%;
 +
  margin-left: -5px;
 +
  border-width: 0 5px 5px;
 +
  border-bottom-color: #000;
 +
}
 +
.tooltip.bottom-left .tooltip-arrow {
 +
  top: 0;
 +
  right: 5px;
 +
  margin-top: -5px;
 +
  border-width: 0 5px 5px;
 +
  border-bottom-color: #000;
 +
}
 +
.tooltip.bottom-right .tooltip-arrow {
 +
  top: 0;
 +
  left: 5px;
 +
  margin-top: -5px;
 +
  border-width: 0 5px 5px;
 +
  border-bottom-color: #000;
 +
}
 +
.popover {
 +
  position: absolute;
 +
  top: 0;
 +
  left: 0;
 +
  z-index: 1060;
 +
  display: none;
 +
  max-width: 276px;
 +
  padding: 1px;
 +
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 +
  font-size: 14px;
 +
  font-weight: normal;
 +
  line-height: 1.42857143;
 +
  text-align: left;
 +
  white-space: normal;
 +
  background-color: #fff;
 +
  -webkit-background-clip: padding-box;
 +
          background-clip: padding-box;
 +
  border: 1px solid #ccc;
 +
  border: 1px solid rgba(0, 0, 0, .2);
 +
  border-radius: 6px;
 +
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
 +
          box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
 +
}
 +
.popover.top {
 +
  margin-top: -10px;
 +
}
 +
.popover.right {
 +
  margin-left: 10px;
 +
}
 +
.popover.bottom {
 +
  margin-top: 10px;
 +
}
 +
.popover.left {
 +
  margin-left: -10px;
 +
}
 +
.popover-title {
 +
  padding: 8px 14px;
 +
  margin: 0;
 +
  font-size: 14px;
 +
  background-color: #f7f7f7;
 +
  border-bottom: 1px solid #ebebeb;
 +
  border-radius: 5px 5px 0 0;
 +
}
 +
.popover-content {
 +
  padding: 9px 14px;
 +
}
 +
.popover > .arrow,
 +
.popover > .arrow:after {
 +
  position: absolute;
 +
  display: block;
 +
  width: 0;
 +
  height: 0;
 +
  border-color: transparent;
 +
  border-style: solid;
 +
}
 +
.popover > .arrow {
 +
  border-width: 11px;
 +
}
 +
.popover > .arrow:after {
 +
  content: "";
 +
  border-width: 10px;
 +
}
 +
.popover.top > .arrow {
 +
  bottom: -11px;
 +
  left: 50%;
 +
  margin-left: -11px;
 +
  border-top-color: #999;
 +
  border-top-color: rgba(0, 0, 0, .25);
 +
  border-bottom-width: 0;
 +
}
 +
.popover.top > .arrow:after {
 +
  bottom: 1px;
 +
  margin-left: -10px;
 +
  content: " ";
 +
  border-top-color: #fff;
 +
  border-bottom-width: 0;
 +
}
 +
.popover.right > .arrow {
 +
  top: 50%;
 +
  left: -11px;
 +
  margin-top: -11px;
 +
  border-right-color: #999;
 +
  border-right-color: rgba(0, 0, 0, .25);
 +
  border-left-width: 0;
 +
}
 +
.popover.right > .arrow:after {
 +
  bottom: -10px;
 +
  left: 1px;
 +
  content: " ";
 +
  border-right-color: #fff;
 +
  border-left-width: 0;
 +
}
 +
.popover.bottom > .arrow {
 +
  top: -11px;
 +
  left: 50%;
 +
  margin-left: -11px;
 +
  border-top-width: 0;
 +
  border-bottom-color: #999;
 +
  border-bottom-color: rgba(0, 0, 0, .25);
 +
}
 +
.popover.bottom > .arrow:after {
 +
  top: 1px;
 +
  margin-left: -10px;
 +
  content: " ";
 +
  border-top-width: 0;
 +
  border-bottom-color: #fff;
 +
}
 +
.popover.left > .arrow {
 +
  top: 50%;
 +
  right: -11px;
 +
  margin-top: -11px;
 +
  border-right-width: 0;
 +
  border-left-color: #999;
 +
  border-left-color: rgba(0, 0, 0, .25);
 +
}
 +
.popover.left > .arrow:after {
 +
  right: 1px;
 +
  bottom: -10px;
 +
  content: " ";
 +
  border-right-width: 0;
 +
  border-left-color: #fff;
 +
}
 +
.carousel {
 +
  position: relative;
 +
}
 +
.carousel-inner {
 +
  position: relative;
 +
  width: 100%;
 +
  overflow: hidden;
 +
}
 +
.carousel-inner > .item {
 +
  position: relative;
 +
  display: none;
 +
  -webkit-transition: .6s ease-in-out left;
 +
      -o-transition: .6s ease-in-out left;
 +
          transition: .6s ease-in-out left;
 +
}
 +
.carousel-inner > .item > img,
 +
.carousel-inner > .item > a > img {
 +
  line-height: 1;
 +
}
 +
@media all and (transform-3d), (-webkit-transform-3d) {
 +
  .carousel-inner > .item {
 +
    -webkit-transition: -webkit-transform .6s ease-in-out;
 +
        -o-transition:      -o-transform .6s ease-in-out;
 +
            transition:        transform .6s ease-in-out;
 +
 +
    -webkit-backface-visibility: hidden;
 +
            backface-visibility: hidden;
 +
    -webkit-perspective: 1000;
 +
            perspective: 1000;
 +
  }
 +
  .carousel-inner > .item.next,
 +
  .carousel-inner > .item.active.right {
 +
    left: 0;
 +
    -webkit-transform: translate3d(100%, 0, 0);
 +
            transform: translate3d(100%, 0, 0);
 +
  }
 +
  .carousel-inner > .item.prev,
 +
  .carousel-inner > .item.active.left {
 +
    left: 0;
 +
    -webkit-transform: translate3d(-100%, 0, 0);
 +
            transform: translate3d(-100%, 0, 0);
 +
  }
 +
  .carousel-inner > .item.next.left,
 +
  .carousel-inner > .item.prev.right,
 +
  .carousel-inner > .item.active {
 +
    left: 0;
 +
    -webkit-transform: translate3d(0, 0, 0);
 +
            transform: translate3d(0, 0, 0);
 +
  }
 +
}
 +
.carousel-inner > .active,
 +
.carousel-inner > .next,
 +
.carousel-inner > .prev {
 +
  display: block;
 +
}
 +
.carousel-inner > .active {
 +
  left: 0;
 +
}
 +
.carousel-inner > .next,
 +
.carousel-inner > .prev {
 +
  position: absolute;
 +
  top: 0;
 +
  width: 100%;
 +
}
 +
.carousel-inner > .next {
 +
  left: 100%;
 +
}
 +
.carousel-inner > .prev {
 +
  left: -100%;
 +
}
 +
.carousel-inner > .next.left,
 +
.carousel-inner > .prev.right {
 +
  left: 0;
 +
}
 +
.carousel-inner > .active.left {
 +
  left: -100%;
 +
}
 +
.carousel-inner > .active.right {
 +
  left: 100%;
 +
}
 +
.carousel-control {
 +
  position: absolute;
 +
  top: 0;
 +
  bottom: 0;
 +
  left: 0;
 +
  width: 15%;
 +
  font-size: 20px;
 +
  color: #fff;
 +
  text-align: center;
 +
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
 +
  filter: alpha(opacity=50);
 +
  opacity: .5;
 +
}
 +
.carousel-control.left {
 +
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
 +
  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
 +
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
 +
  background-image:        linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
 +
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
 +
  background-repeat: repeat-x;
 +
}
 +
.carousel-control.right {
 +
  right: 0;
 +
  left: auto;
 +
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
 +
  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
 +
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
 +
  background-image:        linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
 +
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
 +
  background-repeat: repeat-x;
 +
}
 +
.carousel-control:hover,
 +
.carousel-control:focus {
 +
  color: #fff;
 +
  text-decoration: none;
 +
  filter: alpha(opacity=90);
 +
  outline: 0;
 +
  opacity: .9;
 +
}
 +
.carousel-control .icon-prev,
 +
.carousel-control .icon-next,
 +
.carousel-control .glyphicon-chevron-left,
 +
.carousel-control .glyphicon-chevron-right {
 +
  position: absolute;
 +
  top: 50%;
 +
  z-index: 5;
 +
  display: inline-block;
 +
}
 +
.carousel-control .icon-prev,
 +
.carousel-control .glyphicon-chevron-left {
 +
  left: 50%;
 +
  margin-left: -10px;
 +
}
 +
.carousel-control .icon-next,
 +
.carousel-control .glyphicon-chevron-right {
 +
  right: 50%;
 +
  margin-right: -10px;
 +
}
 +
.carousel-control .icon-prev,
 +
.carousel-control .icon-next {
 +
  width: 20px;
 +
  height: 20px;
 +
  margin-top: -10px;
 +
  font-family: serif;
 +
  line-height: 1;
 +
}
 +
.carousel-control .icon-prev:before {
 +
  content: '\2039';
 +
}
 +
.carousel-control .icon-next:before {
 +
  content: '\203a';
 +
}
 +
.carousel-indicators {
 +
  position: absolute;
 +
  bottom: 10px;
 +
  left: 50%;
 +
  z-index: 15;
 +
  width: 60%;
 +
  padding-left: 0;
 +
  margin-left: -30%;
 +
  text-align: center;
 +
  list-style: none;
 +
}
 +
.carousel-indicators li {
 +
  display: inline-block;
 +
  width: 10px;
 +
  height: 10px;
 +
  margin: 1px;
 +
  text-indent: -999px;
 +
  cursor: pointer;
 +
  background-color: #000 \9;
 +
  background-color: rgba(0, 0, 0, 0);
 +
  border: 1px solid #fff;
 +
  border-radius: 10px;
 +
}
 +
.carousel-indicators .active {
 +
  width: 12px;
 +
  height: 12px;
 +
  margin: 0;
 +
  background-color: #fff;
 +
}
 +
.carousel-caption {
 +
  position: absolute;
 +
  right: 15%;
 +
  bottom: 20px;
 +
  left: 15%;
 +
  z-index: 10;
 +
  padding-top: 20px;
 +
  padding-bottom: 20px;
 +
  color: #fff;
 +
  text-align: center;
 +
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
 +
}
 +
.carousel-caption .btn {
 +
  text-shadow: none;
 +
}
 +
@media screen and (min-width: 768px) {
 +
  .carousel-control .glyphicon-chevron-left,
 +
  .carousel-control .glyphicon-chevron-right,
 +
  .carousel-control .icon-prev,
 +
  .carousel-control .icon-next {
 +
    width: 30px;
 +
    height: 30px;
 +
    margin-top: -15px;
 +
    font-size: 30px;
 +
  }
 +
  .carousel-control .glyphicon-chevron-left,
 +
  .carousel-control .icon-prev {
 +
    margin-left: -15px;
 +
  }
 +
  .carousel-control .glyphicon-chevron-right,
 +
  .carousel-control .icon-next {
 +
    margin-right: -15px;
 +
  }
 +
  .carousel-caption {
 +
    right: 20%;
 +
    left: 20%;
 +
    padding-bottom: 30px;
 +
  }
 +
  .carousel-indicators {
 +
    bottom: 20px;
 +
  }
 +
}
 +
.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,
 +
.btn-toolbar:before,
 +
.btn-toolbar:after,
 +
.btn-group-vertical > .btn-group:before,
 +
.btn-group-vertical > .btn-group:after,
 +
.nav:before,
 +
.nav:after,
 +
.navbar:before,
 +
.navbar:after,
 +
.navbar-header:before,
 +
.navbar-header:after,
 +
.navbar-collapse:before,
 +
.navbar-collapse:after,
 +
.pager:before,
 +
.pager:after,
 +
.panel-body:before,
 +
.panel-body:after,
 +
.modal-footer:before,
 +
.modal-footer:after {
 +
  display: table;
 +
  content: " ";
 +
}
 +
.clearfix:after,
 +
.dl-horizontal dd:after,
 +
.container:after,
 +
.container-fluid:after,
 +
.row:after,
 +
.form-horizontal .form-group:after,
 +
.btn-toolbar:after,
 +
.btn-group-vertical > .btn-group:after,
 +
.nav:after,
 +
.navbar:after,
 +
.navbar-header:after,
 +
.navbar-collapse:after,
 +
.pager:after,
 +
.panel-body:after,
 +
.modal-footer:after {
 +
  clear: both;
 +
}
 +
.center-block {
 +
  display: block;
 +
  margin-right: auto;
 +
  margin-left: auto;
 +
}
 +
.pull-right {
 +
  float: right !important;
 +
}
 +
.pull-left {
 +
  float: left !important;
 +
}
 +
.hide {
 +
  display: none !important;
 +
}
 +
.show {
 +
  display: block !important;
 +
}
 +
.invisible {
 +
  visibility: hidden;
 +
}
 +
.text-hide {
 +
  font: 0/0 a;
 +
  color: transparent;
 +
  text-shadow: none;
 +
  background-color: transparent;
 +
  border: 0;
 +
}
 +
.hidden {
 +
  display: none !important;
 +
  visibility: hidden !important;
 +
}
 +
.affix {
 +
  position: fixed;
 +
}
 +
@-ms-viewport {
 +
  width: device-width;
 +
}
 +
.visible-xs,
 +
.visible-sm,
 +
.visible-md,
 +
.visible-lg {
 +
  display: none !important;
 +
}
 +
.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;
 +
  }
 +
  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;
 +
  }
 +
  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;
 +
  }
 +
  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;
 +
  }
 +
  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;
 +
  }
 +
  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;
 +
  }
 +
}
 +
/*# sourceMappingURL=bootstrap.css.map */
 +
@charset "UTF-8";
 +
/*!
 +
Animate.css - http://daneden.me/animate
 +
Licensed under the MIT license - http://opensource.org/licenses/MIT
 +
 +
Copyright (c) 2014 Daniel Eden
 +
*/
 +
 +
.animated {
 +
  -webkit-animation-duration: 1s;
 +
          animation-duration: 1s;
 +
  -webkit-animation-fill-mode: both;
 +
          animation-fill-mode: both;
 +
}
 +
 +
.animated.infinite {
 +
  -webkit-animation-iteration-count: infinite;
 +
          animation-iteration-count: infinite;
 +
}
 +
 +
.animated.hinge {
 +
  -webkit-animation-duration: 2s;
 +
          animation-duration: 2s;
 +
}
 +
 +
@-webkit-keyframes bounce {
 +
  0%, 20%, 53%, 80%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
    -webkit-transform: translate3d(0,0,0);
 +
            transform: translate3d(0,0,0);
 +
  }
 +
 +
  40%, 43% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
            transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
    -webkit-transform: translate3d(0, -30px, 0);
 +
            transform: translate3d(0, -30px, 0);
 +
  }
 +
 +
  70% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
            transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
    -webkit-transform: translate3d(0, -15px, 0);
 +
            transform: translate3d(0, -15px, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(0,-4px,0);
 +
            transform: translate3d(0,-4px,0);
 +
  }
 +
}
 +
 +
@keyframes bounce {
 +
  0%, 20%, 53%, 80%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
    -webkit-transform: translate3d(0,0,0);
 +
            transform: translate3d(0,0,0);
 +
  }
 +
 +
  40%, 43% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
            transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
    -webkit-transform: translate3d(0, -30px, 0);
 +
            transform: translate3d(0, -30px, 0);
 +
  }
 +
 +
  70% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
            transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 +
    -webkit-transform: translate3d(0, -15px, 0);
 +
            transform: translate3d(0, -15px, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(0,-4px,0);
 +
            transform: translate3d(0,-4px,0);
 +
  }
 +
}
 +
 +
.bounce {
 +
  -webkit-animation-name: bounce;
 +
          animation-name: bounce;
 +
  -webkit-transform-origin: center bottom;
 +
      -ms-transform-origin: center bottom;
 +
          transform-origin: center bottom;
 +
}
 +
 +
@-webkit-keyframes flash {
 +
  0%, 50%, 100% {
 +
    opacity: 1;
 +
  }
 +
 +
  25%, 75% {
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes flash {
 +
  0%, 50%, 100% {
 +
    opacity: 1;
 +
  }
 +
 +
  25%, 75% {
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.flash {
 +
  -webkit-animation-name: flash;
 +
          animation-name: flash;
 +
}
 +
 +
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
 +
 +
@-webkit-keyframes pulse {
 +
  0% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
 +
  50% {
 +
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
 +
            transform: scale3d(1.05, 1.05, 1.05);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
@keyframes pulse {
 +
  0% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
 +
  50% {
 +
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
 +
            transform: scale3d(1.05, 1.05, 1.05);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
.pulse {
 +
  -webkit-animation-name: pulse;
 +
          animation-name: pulse;
 +
}
 +
 +
@-webkit-keyframes rubberBand {
 +
  0% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: scale3d(1.25, 0.75, 1);
 +
            transform: scale3d(1.25, 0.75, 1);
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: scale3d(0.75, 1.25, 1);
 +
            transform: scale3d(0.75, 1.25, 1);
 +
  }
 +
 +
  50% {
 +
    -webkit-transform: scale3d(1.15, 0.85, 1);
 +
            transform: scale3d(1.15, 0.85, 1);
 +
  }
 +
 +
  65% {
 +
    -webkit-transform: scale3d(.95, 1.05, 1);
 +
            transform: scale3d(.95, 1.05, 1);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: scale3d(1.05, .95, 1);
 +
            transform: scale3d(1.05, .95, 1);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
@keyframes rubberBand {
 +
  0% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: scale3d(1.25, 0.75, 1);
 +
            transform: scale3d(1.25, 0.75, 1);
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: scale3d(0.75, 1.25, 1);
 +
            transform: scale3d(0.75, 1.25, 1);
 +
  }
 +
 +
  50% {
 +
    -webkit-transform: scale3d(1.15, 0.85, 1);
 +
            transform: scale3d(1.15, 0.85, 1);
 +
  }
 +
 +
  65% {
 +
    -webkit-transform: scale3d(.95, 1.05, 1);
 +
            transform: scale3d(.95, 1.05, 1);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: scale3d(1.05, .95, 1);
 +
            transform: scale3d(1.05, .95, 1);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
.rubberBand {
 +
  -webkit-animation-name: rubberBand;
 +
          animation-name: rubberBand;
 +
}
 +
 +
@-webkit-keyframes shake {
 +
  0%, 100% {
 +
    -webkit-transform: translate3d(0, 0, 0);
 +
            transform: translate3d(0, 0, 0);
 +
  }
 +
 +
  10%, 30%, 50%, 70%, 90% {
 +
    -webkit-transform: translate3d(-10px, 0, 0);
 +
            transform: translate3d(-10px, 0, 0);
 +
  }
 +
 +
  20%, 40%, 60%, 80% {
 +
    -webkit-transform: translate3d(10px, 0, 0);
 +
            transform: translate3d(10px, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes shake {
 +
  0%, 100% {
 +
    -webkit-transform: translate3d(0, 0, 0);
 +
            transform: translate3d(0, 0, 0);
 +
  }
 +
 +
  10%, 30%, 50%, 70%, 90% {
 +
    -webkit-transform: translate3d(-10px, 0, 0);
 +
            transform: translate3d(-10px, 0, 0);
 +
  }
 +
 +
  20%, 40%, 60%, 80% {
 +
    -webkit-transform: translate3d(10px, 0, 0);
 +
            transform: translate3d(10px, 0, 0);
 +
  }
 +
}
 +
 +
.shake {
 +
  -webkit-animation-name: shake;
 +
          animation-name: shake;
 +
}
 +
 +
@-webkit-keyframes swing {
 +
  20% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
 +
            transform: rotate3d(0, 0, 1, 15deg);
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
 +
            transform: rotate3d(0, 0, 1, -10deg);
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
 +
            transform: rotate3d(0, 0, 1, 5deg);
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
 +
            transform: rotate3d(0, 0, 1, -5deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
 +
            transform: rotate3d(0, 0, 1, 0deg);
 +
  }
 +
}
 +
 +
@keyframes swing {
 +
  20% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
 +
            transform: rotate3d(0, 0, 1, 15deg);
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
 +
            transform: rotate3d(0, 0, 1, -10deg);
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
 +
            transform: rotate3d(0, 0, 1, 5deg);
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
 +
            transform: rotate3d(0, 0, 1, -5deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
 +
            transform: rotate3d(0, 0, 1, 0deg);
 +
  }
 +
}
 +
 +
.swing {
 +
  -webkit-transform-origin: top center;
 +
      -ms-transform-origin: top center;
 +
          transform-origin: top center;
 +
  -webkit-animation-name: swing;
 +
          animation-name: swing;
 +
}
 +
 +
@-webkit-keyframes tada {
 +
  0% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
 +
  10%, 20% {
 +
    -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
 +
            transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
 +
  }
 +
 +
  30%, 50%, 70%, 90% {
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
 +
            transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
 +
  }
 +
 +
  40%, 60%, 80% {
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
 +
            transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
@keyframes tada {
 +
  0% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
 +
  10%, 20% {
 +
    -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
 +
            transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
 +
  }
 +
 +
  30%, 50%, 70%, 90% {
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
 +
            transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
 +
  }
 +
 +
  40%, 60%, 80% {
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
 +
            transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
.tada {
 +
  -webkit-animation-name: tada;
 +
          animation-name: tada;
 +
}
 +
 +
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
 +
 +
@-webkit-keyframes wobble {
 +
  0% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
 +
  15% {
 +
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
 +
            transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
 +
            transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
 +
  }
 +
 +
  45% {
 +
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
 +
            transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
 +
            transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
 +
            transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes wobble {
 +
  0% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
 +
  15% {
 +
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
 +
            transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
 +
            transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
 +
  }
 +
 +
  45% {
 +
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
 +
            transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
 +
            transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
 +
            transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.wobble {
 +
  -webkit-animation-name: wobble;
 +
          animation-name: wobble;
 +
}
 +
 +
@-webkit-keyframes bounceIn {
 +
  0%, 20%, 40%, 60%, 80%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
 +
  20% {
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
 +
            transform: scale3d(1.1, 1.1, 1.1);
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: scale3d(.9, .9, .9);
 +
            transform: scale3d(.9, .9, .9);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
 +
            transform: scale3d(1.03, 1.03, 1.03);
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: scale3d(.97, .97, .97);
 +
            transform: scale3d(.97, .97, .97);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
@keyframes bounceIn {
 +
  0%, 20%, 40%, 60%, 80%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
 +
  20% {
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
 +
            transform: scale3d(1.1, 1.1, 1.1);
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: scale3d(.9, .9, .9);
 +
            transform: scale3d(.9, .9, .9);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
 +
            transform: scale3d(1.03, 1.03, 1.03);
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: scale3d(.97, .97, .97);
 +
            transform: scale3d(.97, .97, .97);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(1, 1, 1);
 +
            transform: scale3d(1, 1, 1);
 +
  }
 +
}
 +
 +
.bounceIn {
 +
  -webkit-animation-name: bounceIn;
 +
          animation-name: bounceIn;
 +
  -webkit-animation-duration: .75s;
 +
          animation-duration: .75s;
 +
}
 +
 +
@-webkit-keyframes bounceInDown {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -3000px, 0);
 +
            transform: translate3d(0, -3000px, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, 25px, 0);
 +
            transform: translate3d(0, 25px, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(0, -10px, 0);
 +
            transform: translate3d(0, -10px, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(0, 5px, 0);
 +
            transform: translate3d(0, 5px, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes bounceInDown {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -3000px, 0);
 +
            transform: translate3d(0, -3000px, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, 25px, 0);
 +
            transform: translate3d(0, 25px, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(0, -10px, 0);
 +
            transform: translate3d(0, -10px, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(0, 5px, 0);
 +
            transform: translate3d(0, 5px, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.bounceInDown {
 +
  -webkit-animation-name: bounceInDown;
 +
          animation-name: bounceInDown;
 +
}
 +
 +
@-webkit-keyframes bounceInLeft {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-3000px, 0, 0);
 +
            transform: translate3d(-3000px, 0, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(25px, 0, 0);
 +
            transform: translate3d(25px, 0, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(-10px, 0, 0);
 +
            transform: translate3d(-10px, 0, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(5px, 0, 0);
 +
            transform: translate3d(5px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes bounceInLeft {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-3000px, 0, 0);
 +
            transform: translate3d(-3000px, 0, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(25px, 0, 0);
 +
            transform: translate3d(25px, 0, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(-10px, 0, 0);
 +
            transform: translate3d(-10px, 0, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(5px, 0, 0);
 +
            transform: translate3d(5px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.bounceInLeft {
 +
  -webkit-animation-name: bounceInLeft;
 +
          animation-name: bounceInLeft;
 +
}
 +
 +
@-webkit-keyframes bounceInRight {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(3000px, 0, 0);
 +
            transform: translate3d(3000px, 0, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(-25px, 0, 0);
 +
            transform: translate3d(-25px, 0, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(10px, 0, 0);
 +
            transform: translate3d(10px, 0, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(-5px, 0, 0);
 +
            transform: translate3d(-5px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes bounceInRight {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(3000px, 0, 0);
 +
            transform: translate3d(3000px, 0, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(-25px, 0, 0);
 +
            transform: translate3d(-25px, 0, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(10px, 0, 0);
 +
            transform: translate3d(10px, 0, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(-5px, 0, 0);
 +
            transform: translate3d(-5px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.bounceInRight {
 +
  -webkit-animation-name: bounceInRight;
 +
          animation-name: bounceInRight;
 +
}
 +
 +
@-webkit-keyframes bounceInUp {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 3000px, 0);
 +
            transform: translate3d(0, 3000px, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, -20px, 0);
 +
            transform: translate3d(0, -20px, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(0, 10px, 0);
 +
            transform: translate3d(0, 10px, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(0, -5px, 0);
 +
            transform: translate3d(0, -5px, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translate3d(0, 0, 0);
 +
            transform: translate3d(0, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes bounceInUp {
 +
  0%, 60%, 75%, 90%, 100% {
 +
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
            transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 +
  }
 +
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 3000px, 0);
 +
            transform: translate3d(0, 3000px, 0);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, -20px, 0);
 +
            transform: translate3d(0, -20px, 0);
 +
  }
 +
 +
  75% {
 +
    -webkit-transform: translate3d(0, 10px, 0);
 +
            transform: translate3d(0, 10px, 0);
 +
  }
 +
 +
  90% {
 +
    -webkit-transform: translate3d(0, -5px, 0);
 +
            transform: translate3d(0, -5px, 0);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translate3d(0, 0, 0);
 +
            transform: translate3d(0, 0, 0);
 +
  }
 +
}
 +
 +
.bounceInUp {
 +
  -webkit-animation-name: bounceInUp;
 +
          animation-name: bounceInUp;
 +
}
 +
 +
@-webkit-keyframes bounceOut {
 +
  20% {
 +
    -webkit-transform: scale3d(.9, .9, .9);
 +
            transform: scale3d(.9, .9, .9);
 +
  }
 +
 +
  50%, 55% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
 +
            transform: scale3d(1.1, 1.1, 1.1);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
}
 +
 +
@keyframes bounceOut {
 +
  20% {
 +
    -webkit-transform: scale3d(.9, .9, .9);
 +
            transform: scale3d(.9, .9, .9);
 +
  }
 +
 +
  50%, 55% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
 +
            transform: scale3d(1.1, 1.1, 1.1);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
}
 +
 +
.bounceOut {
 +
  -webkit-animation-name: bounceOut;
 +
          animation-name: bounceOut;
 +
  -webkit-animation-duration: .75s;
 +
          animation-duration: .75s;
 +
}
 +
 +
@-webkit-keyframes bounceOutDown {
 +
  20% {
 +
    -webkit-transform: translate3d(0, 10px, 0);
 +
            transform: translate3d(0, 10px, 0);
 +
  }
 +
 +
  40%, 45% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, -20px, 0);
 +
            transform: translate3d(0, -20px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 2000px, 0);
 +
            transform: translate3d(0, 2000px, 0);
 +
  }
 +
}
 +
 +
@keyframes bounceOutDown {
 +
  20% {
 +
    -webkit-transform: translate3d(0, 10px, 0);
 +
            transform: translate3d(0, 10px, 0);
 +
  }
 +
 +
  40%, 45% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, -20px, 0);
 +
            transform: translate3d(0, -20px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 2000px, 0);
 +
            transform: translate3d(0, 2000px, 0);
 +
  }
 +
}
 +
 +
.bounceOutDown {
 +
  -webkit-animation-name: bounceOutDown;
 +
          animation-name: bounceOutDown;
 +
}
 +
 +
@-webkit-keyframes bounceOutLeft {
 +
  20% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(20px, 0, 0);
 +
            transform: translate3d(20px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-2000px, 0, 0);
 +
            transform: translate3d(-2000px, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes bounceOutLeft {
 +
  20% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(20px, 0, 0);
 +
            transform: translate3d(20px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-2000px, 0, 0);
 +
            transform: translate3d(-2000px, 0, 0);
 +
  }
 +
}
 +
 +
.bounceOutLeft {
 +
  -webkit-animation-name: bounceOutLeft;
 +
          animation-name: bounceOutLeft;
 +
}
 +
 +
@-webkit-keyframes bounceOutRight {
 +
  20% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(-20px, 0, 0);
 +
            transform: translate3d(-20px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(2000px, 0, 0);
 +
            transform: translate3d(2000px, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes bounceOutRight {
 +
  20% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(-20px, 0, 0);
 +
            transform: translate3d(-20px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(2000px, 0, 0);
 +
            transform: translate3d(2000px, 0, 0);
 +
  }
 +
}
 +
 +
.bounceOutRight {
 +
  -webkit-animation-name: bounceOutRight;
 +
          animation-name: bounceOutRight;
 +
}
 +
 +
@-webkit-keyframes bounceOutUp {
 +
  20% {
 +
    -webkit-transform: translate3d(0, -10px, 0);
 +
            transform: translate3d(0, -10px, 0);
 +
  }
 +
 +
  40%, 45% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, 20px, 0);
 +
            transform: translate3d(0, 20px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -2000px, 0);
 +
            transform: translate3d(0, -2000px, 0);
 +
  }
 +
}
 +
 +
@keyframes bounceOutUp {
 +
  20% {
 +
    -webkit-transform: translate3d(0, -10px, 0);
 +
            transform: translate3d(0, -10px, 0);
 +
  }
 +
 +
  40%, 45% {
 +
    opacity: 1;
 +
    -webkit-transform: translate3d(0, 20px, 0);
 +
            transform: translate3d(0, 20px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -2000px, 0);
 +
            transform: translate3d(0, -2000px, 0);
 +
  }
 +
}
 +
 +
.bounceOutUp {
 +
  -webkit-animation-name: bounceOutUp;
 +
          animation-name: bounceOutUp;
 +
}
 +
 +
@-webkit-keyframes fadeIn {
 +
  0% {opacity: 0;}
 +
  100% {opacity: 1;}
 +
}
 +
 +
@keyframes fadeIn {
 +
  0% {opacity: 0;}
 +
  100% {opacity: 1;}
 +
}
 +
 +
.fadeIn {
 +
  -webkit-animation-name: fadeIn;
 +
          animation-name: fadeIn;
 +
}
 +
 +
@-webkit-keyframes fadeInDown {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -100%, 0);
 +
            transform: translate3d(0, -100%, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInDown {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -100%, 0);
 +
            transform: translate3d(0, -100%, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInDown {
 +
  -webkit-animation-name: fadeInDown;
 +
          animation-name: fadeInDown;
 +
}
 +
 +
@-webkit-keyframes fadeInDownBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -2000px, 0);
 +
            transform: translate3d(0, -2000px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInDownBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -2000px, 0);
 +
            transform: translate3d(0, -2000px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInDownBig {
 +
  -webkit-animation-name: fadeInDownBig;
 +
          animation-name: fadeInDownBig;
 +
}
 +
 +
@-webkit-keyframes fadeInLeft {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-100%, 0, 0);
 +
            transform: translate3d(-100%, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInLeft {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-100%, 0, 0);
 +
            transform: translate3d(-100%, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInLeft {
 +
  -webkit-animation-name: fadeInLeft;
 +
          animation-name: fadeInLeft;
 +
}
 +
 +
@-webkit-keyframes fadeInLeftBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-2000px, 0, 0);
 +
            transform: translate3d(-2000px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInLeftBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-2000px, 0, 0);
 +
            transform: translate3d(-2000px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInLeftBig {
 +
  -webkit-animation-name: fadeInLeftBig;
 +
          animation-name: fadeInLeftBig;
 +
}
 +
 +
@-webkit-keyframes fadeInRight {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(100%, 0, 0);
 +
            transform: translate3d(100%, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInRight {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(100%, 0, 0);
 +
            transform: translate3d(100%, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInRight {
 +
  -webkit-animation-name: fadeInRight;
 +
          animation-name: fadeInRight;
 +
}
 +
 +
@-webkit-keyframes fadeInRightBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(2000px, 0, 0);
 +
            transform: translate3d(2000px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInRightBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(2000px, 0, 0);
 +
            transform: translate3d(2000px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInRightBig {
 +
  -webkit-animation-name: fadeInRightBig;
 +
          animation-name: fadeInRightBig;
 +
}
 +
 +
@-webkit-keyframes fadeInUp {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 100%, 0);
 +
            transform: translate3d(0, 100%, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInUp {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 100%, 0);
 +
            transform: translate3d(0, 100%, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInUp {
 +
  -webkit-animation-name: fadeInUp;
 +
          animation-name: fadeInUp;
 +
}
 +
 +
@-webkit-keyframes fadeInUpBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 2000px, 0);
 +
            transform: translate3d(0, 2000px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes fadeInUpBig {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 2000px, 0);
 +
            transform: translate3d(0, 2000px, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.fadeInUpBig {
 +
  -webkit-animation-name: fadeInUpBig;
 +
          animation-name: fadeInUpBig;
 +
}
 +
 +
@-webkit-keyframes fadeOut {
 +
  0% {opacity: 1;}
 +
  100% {opacity: 0;}
 +
}
 +
 +
@keyframes fadeOut {
 +
  0% {opacity: 1;}
 +
  100% {opacity: 0;}
 +
}
 +
 +
.fadeOut {
 +
  -webkit-animation-name: fadeOut;
 +
          animation-name: fadeOut;
 +
}
 +
 +
@-webkit-keyframes fadeOutDown {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 100%, 0);
 +
            transform: translate3d(0, 100%, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutDown {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 100%, 0);
 +
            transform: translate3d(0, 100%, 0);
 +
  }
 +
}
 +
 +
.fadeOutDown {
 +
  -webkit-animation-name: fadeOutDown;
 +
          animation-name: fadeOutDown;
 +
}
 +
 +
@-webkit-keyframes fadeOutDownBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 2000px, 0);
 +
            transform: translate3d(0, 2000px, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutDownBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, 2000px, 0);
 +
            transform: translate3d(0, 2000px, 0);
 +
  }
 +
}
 +
 +
.fadeOutDownBig {
 +
  -webkit-animation-name: fadeOutDownBig;
 +
          animation-name: fadeOutDownBig;
 +
}
 +
 +
@-webkit-keyframes fadeOutLeft {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-100%, 0, 0);
 +
            transform: translate3d(-100%, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutLeft {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-100%, 0, 0);
 +
            transform: translate3d(-100%, 0, 0);
 +
  }
 +
}
 +
 +
.fadeOutLeft {
 +
  -webkit-animation-name: fadeOutLeft;
 +
          animation-name: fadeOutLeft;
 +
}
 +
 +
@-webkit-keyframes fadeOutLeftBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-2000px, 0, 0);
 +
            transform: translate3d(-2000px, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutLeftBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-2000px, 0, 0);
 +
            transform: translate3d(-2000px, 0, 0);
 +
  }
 +
}
 +
 +
.fadeOutLeftBig {
 +
  -webkit-animation-name: fadeOutLeftBig;
 +
          animation-name: fadeOutLeftBig;
 +
}
 +
 +
@-webkit-keyframes fadeOutRight {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(100%, 0, 0);
 +
            transform: translate3d(100%, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutRight {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(100%, 0, 0);
 +
            transform: translate3d(100%, 0, 0);
 +
  }
 +
}
 +
 +
.fadeOutRight {
 +
  -webkit-animation-name: fadeOutRight;
 +
          animation-name: fadeOutRight;
 +
}
 +
 +
@-webkit-keyframes fadeOutRightBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(2000px, 0, 0);
 +
            transform: translate3d(2000px, 0, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutRightBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(2000px, 0, 0);
 +
            transform: translate3d(2000px, 0, 0);
 +
  }
 +
}
 +
 +
.fadeOutRightBig {
 +
  -webkit-animation-name: fadeOutRightBig;
 +
          animation-name: fadeOutRightBig;
 +
}
 +
 +
@-webkit-keyframes fadeOutUp {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -100%, 0);
 +
            transform: translate3d(0, -100%, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutUp {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -100%, 0);
 +
            transform: translate3d(0, -100%, 0);
 +
  }
 +
}
 +
 +
.fadeOutUp {
 +
  -webkit-animation-name: fadeOutUp;
 +
          animation-name: fadeOutUp;
 +
}
 +
 +
@-webkit-keyframes fadeOutUpBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -2000px, 0);
 +
            transform: translate3d(0, -2000px, 0);
 +
  }
 +
}
 +
 +
@keyframes fadeOutUpBig {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(0, -2000px, 0);
 +
            transform: translate3d(0, -2000px, 0);
 +
  }
 +
}
 +
 +
.fadeOutUpBig {
 +
  -webkit-animation-name: fadeOutUpBig;
 +
          animation-name: fadeOutUpBig;
 +
}
 +
 +
@-webkit-keyframes flip {
 +
  0% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
 +
    -webkit-animation-timing-function: ease-out;
 +
            animation-timing-function: ease-out;
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
 +
            transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
 +
    -webkit-animation-timing-function: ease-out;
 +
            animation-timing-function: ease-out;
 +
  }
 +
 +
  50% {
 +
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
 +
            transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
 +
    -webkit-animation-timing-function: ease-in;
 +
            animation-timing-function: ease-in;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
 +
            transform: perspective(400px) scale3d(.95, .95, .95);
 +
    -webkit-animation-timing-function: ease-in;
 +
            animation-timing-function: ease-in;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
    -webkit-animation-timing-function: ease-in;
 +
            animation-timing-function: ease-in;
 +
  }
 +
}
 +
 +
@keyframes flip {
 +
  0% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
 +
    -webkit-animation-timing-function: ease-out;
 +
            animation-timing-function: ease-out;
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
 +
            transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
 +
    -webkit-animation-timing-function: ease-out;
 +
            animation-timing-function: ease-out;
 +
  }
 +
 +
  50% {
 +
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
 +
            transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
 +
    -webkit-animation-timing-function: ease-in;
 +
            animation-timing-function: ease-in;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
 +
            transform: perspective(400px) scale3d(.95, .95, .95);
 +
    -webkit-animation-timing-function: ease-in;
 +
            animation-timing-function: ease-in;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
    -webkit-animation-timing-function: ease-in;
 +
            animation-timing-function: ease-in;
 +
  }
 +
}
 +
 +
.animated.flip {
 +
  -webkit-backface-visibility: visible;
 +
          backface-visibility: visible;
 +
  -webkit-animation-name: flip;
 +
          animation-name: flip;
 +
}
 +
 +
@-webkit-keyframes flipInX {
 +
  0% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
    opacity: 0;
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
 +
    opacity: 1;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
}
 +
 +
@keyframes flipInX {
 +
  0% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
    opacity: 0;
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
 +
    opacity: 1;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
}
 +
 +
.flipInX {
 +
  -webkit-backface-visibility: visible !important;
 +
          backface-visibility: visible !important;
 +
  -webkit-animation-name: flipInX;
 +
          animation-name: flipInX;
 +
}
 +
 +
@-webkit-keyframes flipInY {
 +
  0% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
    opacity: 0;
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
 +
    opacity: 1;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
}
 +
 +
@keyframes flipInY {
 +
  0% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
    opacity: 0;
 +
  }
 +
 +
  40% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
 +
    -webkit-transition-timing-function: ease-in;
 +
            transition-timing-function: ease-in;
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
 +
    opacity: 1;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
}
 +
 +
.flipInY {
 +
  -webkit-backface-visibility: visible !important;
 +
          backface-visibility: visible !important;
 +
  -webkit-animation-name: flipInY;
 +
          animation-name: flipInY;
 +
}
 +
 +
@-webkit-keyframes flipOutX {
 +
  0% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes flipOutX {
 +
  0% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.flipOutX {
 +
  -webkit-animation-name: flipOutX;
 +
          animation-name: flipOutX;
 +
  -webkit-animation-duration: .75s;
 +
          animation-duration: .75s;
 +
  -webkit-backface-visibility: visible !important;
 +
          backface-visibility: visible !important;
 +
}
 +
 +
@-webkit-keyframes flipOutY {
 +
  0% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes flipOutY {
 +
  0% {
 +
    -webkit-transform: perspective(400px);
 +
            transform: perspective(400px);
 +
  }
 +
 +
  30% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
            transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.flipOutY {
 +
  -webkit-backface-visibility: visible !important;
 +
          backface-visibility: visible !important;
 +
  -webkit-animation-name: flipOutY;
 +
          animation-name: flipOutY;
 +
  -webkit-animation-duration: .75s;
 +
          animation-duration: .75s;
 +
}
 +
 +
@-webkit-keyframes lightSpeedIn {
 +
  0% {
 +
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
 +
            transform: translate3d(100%, 0, 0) skewX(-30deg);
 +
    opacity: 0;
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: skewX(20deg);
 +
            transform: skewX(20deg);
 +
    opacity: 1;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: skewX(-5deg);
 +
            transform: skewX(-5deg);
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
@keyframes lightSpeedIn {
 +
  0% {
 +
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
 +
            transform: translate3d(100%, 0, 0) skewX(-30deg);
 +
    opacity: 0;
 +
  }
 +
 +
  60% {
 +
    -webkit-transform: skewX(20deg);
 +
            transform: skewX(20deg);
 +
    opacity: 1;
 +
  }
 +
 +
  80% {
 +
    -webkit-transform: skewX(-5deg);
 +
            transform: skewX(-5deg);
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
.lightSpeedIn {
 +
  -webkit-animation-name: lightSpeedIn;
 +
          animation-name: lightSpeedIn;
 +
  -webkit-animation-timing-function: ease-out;
 +
          animation-timing-function: ease-out;
 +
}
 +
 +
@-webkit-keyframes lightSpeedOut {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
 +
            transform: translate3d(100%, 0, 0) skewX(30deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes lightSpeedOut {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
 +
            transform: translate3d(100%, 0, 0) skewX(30deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.lightSpeedOut {
 +
  -webkit-animation-name: lightSpeedOut;
 +
          animation-name: lightSpeedOut;
 +
  -webkit-animation-timing-function: ease-in;
 +
          animation-timing-function: ease-in;
 +
}
 +
 +
@-webkit-keyframes rotateIn {
 +
  0% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
 +
            transform: rotate3d(0, 0, 1, -200deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
@keyframes rotateIn {
 +
  0% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
 +
            transform: rotate3d(0, 0, 1, -200deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
.rotateIn {
 +
  -webkit-animation-name: rotateIn;
 +
          animation-name: rotateIn;
 +
}
 +
 +
@-webkit-keyframes rotateInDownLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
 +
            transform: rotate3d(0, 0, 1, -45deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
@keyframes rotateInDownLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
 +
            transform: rotate3d(0, 0, 1, -45deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
.rotateInDownLeft {
 +
  -webkit-animation-name: rotateInDownLeft;
 +
          animation-name: rotateInDownLeft;
 +
}
 +
 +
@-webkit-keyframes rotateInDownRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
 +
            transform: rotate3d(0, 0, 1, 45deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
@keyframes rotateInDownRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
 +
            transform: rotate3d(0, 0, 1, 45deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
.rotateInDownRight {
 +
  -webkit-animation-name: rotateInDownRight;
 +
          animation-name: rotateInDownRight;
 +
}
 +
 +
@-webkit-keyframes rotateInUpLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
 +
            transform: rotate3d(0, 0, 1, 45deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
@keyframes rotateInUpLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
 +
            transform: rotate3d(0, 0, 1, 45deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
.rotateInUpLeft {
 +
  -webkit-animation-name: rotateInUpLeft;
 +
          animation-name: rotateInUpLeft;
 +
}
 +
 +
@-webkit-keyframes rotateInUpRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
 +
            transform: rotate3d(0, 0, 1, -90deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
@keyframes rotateInUpRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
 +
            transform: rotate3d(0, 0, 1, -90deg);
 +
    opacity: 0;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
.rotateInUpRight {
 +
  -webkit-animation-name: rotateInUpRight;
 +
          animation-name: rotateInUpRight;
 +
}
 +
 +
@-webkit-keyframes rotateOut {
 +
  0% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
 +
            transform: rotate3d(0, 0, 1, 200deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes rotateOut {
 +
  0% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: center;
 +
            transform-origin: center;
 +
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
 +
            transform: rotate3d(0, 0, 1, 200deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.rotateOut {
 +
  -webkit-animation-name: rotateOut;
 +
          animation-name: rotateOut;
 +
}
 +
 +
@-webkit-keyframes rotateOutDownLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
 +
            transform: rotate3d(0, 0, 1, 45deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes rotateOutDownLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
 +
            transform: rotate3d(0, 0, 1, 45deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.rotateOutDownLeft {
 +
  -webkit-animation-name: rotateOutDownLeft;
 +
          animation-name: rotateOutDownLeft;
 +
}
 +
 +
@-webkit-keyframes rotateOutDownRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
 +
            transform: rotate3d(0, 0, 1, -45deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes rotateOutDownRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
 +
            transform: rotate3d(0, 0, 1, -45deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.rotateOutDownRight {
 +
  -webkit-animation-name: rotateOutDownRight;
 +
          animation-name: rotateOutDownRight;
 +
}
 +
 +
@-webkit-keyframes rotateOutUpLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
 +
            transform: rotate3d(0, 0, 1, -45deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes rotateOutUpLeft {
 +
  0% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: left bottom;
 +
            transform-origin: left bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
 +
            transform: rotate3d(0, 0, 1, -45deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.rotateOutUpLeft {
 +
  -webkit-animation-name: rotateOutUpLeft;
 +
          animation-name: rotateOutUpLeft;
 +
}
 +
 +
@-webkit-keyframes rotateOutUpRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
 +
            transform: rotate3d(0, 0, 1, 90deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes rotateOutUpRight {
 +
  0% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform-origin: right bottom;
 +
            transform-origin: right bottom;
 +
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
 +
            transform: rotate3d(0, 0, 1, 90deg);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.rotateOutUpRight {
 +
  -webkit-animation-name: rotateOutUpRight;
 +
          animation-name: rotateOutUpRight;
 +
}
 +
 +
@-webkit-keyframes hinge {
 +
  0% {
 +
    -webkit-transform-origin: top left;
 +
            transform-origin: top left;
 +
    -webkit-animation-timing-function: ease-in-out;
 +
            animation-timing-function: ease-in-out;
 +
  }
 +
 +
  20%, 60% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
 +
            transform: rotate3d(0, 0, 1, 80deg);
 +
    -webkit-transform-origin: top left;
 +
            transform-origin: top left;
 +
    -webkit-animation-timing-function: ease-in-out;
 +
            animation-timing-function: ease-in-out;
 +
  }
 +
 +
  40%, 80% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
 +
            transform: rotate3d(0, 0, 1, 60deg);
 +
    -webkit-transform-origin: top left;
 +
            transform-origin: top left;
 +
    -webkit-animation-timing-function: ease-in-out;
 +
            animation-timing-function: ease-in-out;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translate3d(0, 700px, 0);
 +
            transform: translate3d(0, 700px, 0);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes hinge {
 +
  0% {
 +
    -webkit-transform-origin: top left;
 +
            transform-origin: top left;
 +
    -webkit-animation-timing-function: ease-in-out;
 +
            animation-timing-function: ease-in-out;
 +
  }
 +
 +
  20%, 60% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
 +
            transform: rotate3d(0, 0, 1, 80deg);
 +
    -webkit-transform-origin: top left;
 +
            transform-origin: top left;
 +
    -webkit-animation-timing-function: ease-in-out;
 +
            animation-timing-function: ease-in-out;
 +
  }
 +
 +
  40%, 80% {
 +
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
 +
            transform: rotate3d(0, 0, 1, 60deg);
 +
    -webkit-transform-origin: top left;
 +
            transform-origin: top left;
 +
    -webkit-animation-timing-function: ease-in-out;
 +
            animation-timing-function: ease-in-out;
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translate3d(0, 700px, 0);
 +
            transform: translate3d(0, 700px, 0);
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.hinge {
 +
  -webkit-animation-name: hinge;
 +
          animation-name: hinge;
 +
}
 +
 +
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
 +
 +
@-webkit-keyframes rollIn {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
 +
            transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
@keyframes rollIn {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
 +
            transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
 +
  }
 +
 +
  100% {
 +
    opacity: 1;
 +
    -webkit-transform: none;
 +
            transform: none;
 +
  }
 +
}
 +
 +
.rollIn {
 +
  -webkit-animation-name: rollIn;
 +
          animation-name: rollIn;
 +
}
 +
 +
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
 +
 +
@-webkit-keyframes rollOut {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
 +
            transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
 +
  }
 +
}
 +
 +
@keyframes rollOut {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
 +
            transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
 +
  }
 +
}
 +
 +
.rollOut {
 +
  -webkit-animation-name: rollOut;
 +
          animation-name: rollOut;
 +
}
 +
 +
@-webkit-keyframes zoomIn {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
 +
  50% {
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
@keyframes zoomIn {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
 +
  50% {
 +
    opacity: 1;
 +
  }
 +
}
 +
 +
.zoomIn {
 +
  -webkit-animation-name: zoomIn;
 +
          animation-name: zoomIn;
 +
}
 +
 +
@-webkit-keyframes zoomInDown {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
@keyframes zoomInDown {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
.zoomInDown {
 +
  -webkit-animation-name: zoomInDown;
 +
          animation-name: zoomInDown;
 +
}
 +
 +
@-webkit-keyframes zoomInLeft {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
@keyframes zoomInLeft {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
.zoomInLeft {
 +
  -webkit-animation-name: zoomInLeft;
 +
          animation-name: zoomInLeft;
 +
}
 +
 +
@-webkit-keyframes zoomInRight {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
@keyframes zoomInRight {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
.zoomInRight {
 +
  -webkit-animation-name: zoomInRight;
 +
          animation-name: zoomInRight;
 +
}
 +
 +
@-webkit-keyframes zoomInUp {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
@keyframes zoomInUp {
 +
  0% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  60% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
.zoomInUp {
 +
  -webkit-animation-name: zoomInUp;
 +
          animation-name: zoomInUp;
 +
}
 +
 +
@-webkit-keyframes zoomOut {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  50% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
@keyframes zoomOut {
 +
  0% {
 +
    opacity: 1;
 +
  }
 +
 +
  50% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.3, .3, .3);
 +
            transform: scale3d(.3, .3, .3);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
  }
 +
}
 +
 +
.zoomOut {
 +
  -webkit-animation-name: zoomOut;
 +
          animation-name: zoomOut;
 +
}
 +
 +
@-webkit-keyframes zoomOutDown {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
 +
    -webkit-transform-origin: center bottom;
 +
            transform-origin: center bottom;
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
@keyframes zoomOutDown {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
 +
    -webkit-transform-origin: center bottom;
 +
            transform-origin: center bottom;
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
.zoomOutDown {
 +
  -webkit-animation-name: zoomOutDown;
 +
          animation-name: zoomOutDown;
 +
}
 +
 +
@-webkit-keyframes zoomOutLeft {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
 +
            transform: scale(.1) translate3d(-2000px, 0, 0);
 +
    -webkit-transform-origin: left center;
 +
            transform-origin: left center;
 +
  }
 +
}
 +
 +
@keyframes zoomOutLeft {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
 +
            transform: scale(.1) translate3d(-2000px, 0, 0);
 +
    -webkit-transform-origin: left center;
 +
            transform-origin: left center;
 +
  }
 +
}
 +
 +
.zoomOutLeft {
 +
  -webkit-animation-name: zoomOutLeft;
 +
          animation-name: zoomOutLeft;
 +
}
 +
 +
@-webkit-keyframes zoomOutRight {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
 +
            transform: scale(.1) translate3d(2000px, 0, 0);
 +
    -webkit-transform-origin: right center;
 +
            transform-origin: right center;
 +
  }
 +
}
 +
 +
@keyframes zoomOutRight {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
 +
            transform: scale(.1) translate3d(2000px, 0, 0);
 +
    -webkit-transform-origin: right center;
 +
            transform-origin: right center;
 +
  }
 +
}
 +
 +
.zoomOutRight {
 +
  -webkit-animation-name: zoomOutRight;
 +
          animation-name: zoomOutRight;
 +
}
 +
 +
@-webkit-keyframes zoomOutUp {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
 +
    -webkit-transform-origin: center bottom;
 +
            transform-origin: center bottom;
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
@keyframes zoomOutUp {
 +
  40% {
 +
    opacity: 1;
 +
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
            transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
 +
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
            animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
 +
  }
 +
 +
  100% {
 +
    opacity: 0;
 +
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
 +
            transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
 +
    -webkit-transform-origin: center bottom;
 +
            transform-origin: center bottom;
 +
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
            animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
 +
  }
 +
}
 +
 +
.zoomOutUp {
 +
  -webkit-animation-name: zoomOutUp;
 +
          animation-name: zoomOutUp;
 +
}
 +
 +
@-webkit-keyframes slideInDown {
 +
  0% {
 +
    -webkit-transform: translateY(-100%);
 +
            transform: translateY(-100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
}
 +
 +
@keyframes slideInDown {
 +
  0% {
 +
    -webkit-transform: translateY(-100%);
 +
            transform: translateY(-100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
}
 +
 +
.slideInDown {
 +
  -webkit-animation-name: slideInDown;
 +
          animation-name: slideInDown;
 +
}
 +
 +
@-webkit-keyframes slideInLeft {
 +
  0% {
 +
    -webkit-transform: translateX(-100%);
 +
            transform: translateX(-100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
}
 +
 +
@keyframes slideInLeft {
 +
  0% {
 +
    -webkit-transform: translateX(-100%);
 +
            transform: translateX(-100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
}
 +
 +
.slideInLeft {
 +
  -webkit-animation-name: slideInLeft;
 +
          animation-name: slideInLeft;
 +
}
 +
 +
@-webkit-keyframes slideInRight {
 +
  0% {
 +
    -webkit-transform: translateX(100%);
 +
            transform: translateX(100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
}
 +
 +
@keyframes slideInRight {
 +
  0% {
 +
    -webkit-transform: translateX(100%);
 +
            transform: translateX(100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
}
 +
 +
.slideInRight {
 +
  -webkit-animation-name: slideInRight;
 +
          animation-name: slideInRight;
 +
}
 +
 +
@-webkit-keyframes slideInUp {
 +
  0% {
 +
    -webkit-transform: translateY(100%);
 +
            transform: translateY(100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
}
 +
 +
@keyframes slideInUp {
 +
  0% {
 +
    -webkit-transform: translateY(100%);
 +
            transform: translateY(100%);
 +
    visibility: visible;
 +
  }
 +
 +
  100% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
}
 +
 +
.slideInUp {
 +
  -webkit-animation-name: slideInUp;
 +
          animation-name: slideInUp;
 +
}
 +
 +
@-webkit-keyframes slideOutDown {
 +
  0% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateY(100%);
 +
            transform: translateY(100%);
 +
  }
 +
}
 +
 +
@keyframes slideOutDown {
 +
  0% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateY(100%);
 +
            transform: translateY(100%);
 +
  }
 +
}
 +
 +
.slideOutDown {
 +
  -webkit-animation-name: slideOutDown;
 +
          animation-name: slideOutDown;
 +
}
 +
 +
@-webkit-keyframes slideOutLeft {
 +
  0% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateX(-100%);
 +
            transform: translateX(-100%);
 +
  }
 +
}
 +
 +
@keyframes slideOutLeft {
 +
  0% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateX(-100%);
 +
            transform: translateX(-100%);
 +
  }
 +
}
 +
 +
.slideOutLeft {
 +
  -webkit-animation-name: slideOutLeft;
 +
          animation-name: slideOutLeft;
 +
}
 +
 +
@-webkit-keyframes slideOutRight {
 +
  0% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateX(100%);
 +
            transform: translateX(100%);
 +
  }
 +
}
 +
 +
@keyframes slideOutRight {
 +
  0% {
 +
    -webkit-transform: translateX(0);
 +
            transform: translateX(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateX(100%);
 +
            transform: translateX(100%);
 +
  }
 +
}
 +
 +
.slideOutRight {
 +
  -webkit-animation-name: slideOutRight;
 +
          animation-name: slideOutRight;
 +
}
 +
 +
@-webkit-keyframes slideOutUp {
 +
  0% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateY(-100%);
 +
            transform: translateY(-100%);
 +
  }
 +
}
 +
 +
@keyframes slideOutUp {
 +
  0% {
 +
    -webkit-transform: translateY(0);
 +
            transform: translateY(0);
 +
  }
 +
 +
  100% {
 +
    visibility: hidden;
 +
    -webkit-transform: translateY(-100%);
 +
            transform: translateY(-100%);
 +
  }
 +
}
 +
 +
.slideOutUp {
 +
  -webkit-animation-name: slideOutUp;
 +
          animation-name: slideOutUp;
 +
}
 +
/*
 +
* Nivo Lightbox v1.2.0
 +
* http://dev7studios.com/nivo-lightbox
 +
*
 +
* Copyright 2013, Dev7studios
 +
* Free to use and abuse under the MIT license.
 +
* http://www.opensource.org/licenses/mit-license.php
 +
*/
 +
 +
.nivo-lightbox-overlay {
 +
    position: fixed;
 +
    top: 0;
 +
    left: 0;
 +
    z-index: 99998;
 +
    width: 100%;
 +
    height: 100%;
 +
    overflow: hidden;
 +
    visibility: hidden;
 +
    opacity: 0;
 +
    -webkit-box-sizing: border-box;
 +
    -moz-box-sizing: border-box;
 +
    box-sizing: border-box;
 +
}
 +
.nivo-lightbox-overlay.nivo-lightbox-open {
 +
    visibility: visible;
 +
    opacity: 1;
 +
}
 +
.nivo-lightbox-wrap  {
 +
    position: absolute;
 +
    top: 10%;
 +
    bottom: 10%;
 +
    left: 10%;
 +
    right: 10%;
 +
}
 +
.nivo-lightbox-content {
 +
    width: 100%;
 +
    height: 100%;
 +
}
 +
.nivo-lightbox-title-wrap {
 +
    position: absolute;
 +
    bottom: 0;
 +
    left: 0;
 +
    width: 100%;
 +
    z-index: 99999;
 +
    text-align: center;
 +
}
 +
.nivo-lightbox-nav { display: none; }
 +
.nivo-lightbox-prev {
 +
    position: absolute;
 +
    top: 50%;
 +
    left: 0;
 +
}
 +
.nivo-lightbox-next {
 +
    position: absolute;
 +
    top: 50%;
 +
    right: 0;
 +
}
 +
.nivo-lightbox-close {
 +
    position: absolute;
 +
    top: 2%;
 +
    right: 2%;
 +
}
 +
 +
.nivo-lightbox-image { text-align: center; }
 +
.nivo-lightbox-image img {
 +
    max-width: 100%;
 +
    max-height: 100%;
 +
    width: auto;
 +
    height: auto;
 +
    vertical-align: middle;
 +
}
 +
.nivo-lightbox-content iframe {
 +
    width: 100%;
 +
    height: 100%;
 +
}
 +
.nivo-lightbox-inline,
 +
.nivo-lightbox-ajax {
 +
    max-height: 100%;
 +
    overflow: auto;
 +
    -webkit-box-sizing: border-box;
 +
    -moz-box-sizing: border-box;
 +
    box-sizing: border-box;
 +
    /* https://bugzilla.mozilla.org/show_bug.cgi?id=308801 */
 +
}
 +
.nivo-lightbox-error {
 +
    display: table;
 +
    text-align: center;
 +
    width: 100%;
 +
    height: 100%;
 +
    color: #fff;
 +
    text-shadow: 0 1px 1px #000;
 +
}
 +
.nivo-lightbox-error p {
 +
    display: table-cell;
 +
    vertical-align: middle;
 +
}
 +
 +
/* Effects
 +
**********************************************/
 +
.nivo-lightbox-notouch .nivo-lightbox-effect-fade,
 +
.nivo-lightbox-notouch .nivo-lightbox-effect-fadeScale,
 +
.nivo-lightbox-notouch .nivo-lightbox-effect-slideLeft,
 +
.nivo-lightbox-notouch .nivo-lightbox-effect-slideRight,
 +
.nivo-lightbox-notouch .nivo-lightbox-effect-slideUp,
 +
.nivo-lightbox-notouch .nivo-lightbox-effect-slideDown,
 +
.nivo-lightbox-notouch .nivo-lightbox-effect-fall {
 +
    -webkit-transition: all 0.2s ease-in-out;
 +
      -moz-transition: all 0.2s ease-in-out;
 +
        -ms-transition: all 0.2s ease-in-out;
 +
        -o-transition: all 0.2s ease-in-out;
 +
            transition: all 0.2s ease-in-out;
 +
}
 +
 +
/* fadeScale */
 +
.nivo-lightbox-effect-fadeScale .nivo-lightbox-wrap {
 +
    -webkit-transition: all 0.3s;
 +
      -moz-transition: all 0.3s;
 +
        -ms-transition: all 0.3s;
 +
        -o-transition: all 0.3s;
 +
            transition: all 0.3s;
 +
    -webkit-transform: scale(0.7);
 +
      -moz-transform: scale(0.7);
 +
        -ms-transform: scale(0.7);
 +
            transform: scale(0.7);
 +
}
 +
.nivo-lightbox-effect-fadeScale.nivo-lightbox-open .nivo-lightbox-wrap {
 +
    -webkit-transform: scale(1);
 +
      -moz-transform: scale(1);
 +
        -ms-transform: scale(1);
 +
            transform: scale(1);
 +
}
 +
 +
/* slideLeft / slideRight / slideUp / slideDown */
 +
.nivo-lightbox-effect-slideLeft .nivo-lightbox-wrap,
 +
.nivo-lightbox-effect-slideRight .nivo-lightbox-wrap,
 +
.nivo-lightbox-effect-slideUp .nivo-lightbox-wrap,
 +
.nivo-lightbox-effect-slideDown .nivo-lightbox-wrap {
 +
    -webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
 +
      -moz-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
 +
        -ms-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
 +
        -o-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
 +
            transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
 +
}
 +
.nivo-lightbox-effect-slideLeft .nivo-lightbox-wrap {
 +
    -webkit-transform: translateX(-10%);
 +
      -moz-transform: translateX(-10%);
 +
        -ms-transform: translateX(-10%);
 +
            transform: translateX(-10%);
 +
}
 +
.nivo-lightbox-effect-slideRight .nivo-lightbox-wrap {
 +
    -webkit-transform: translateX(10%);
 +
      -moz-transform: translateX(10%);
 +
        -ms-transform: translateX(10%);
 +
            transform: translateX(10%);
 +
}
 +
.nivo-lightbox-effect-slideLeft.nivo-lightbox-open .nivo-lightbox-wrap,
 +
.nivo-lightbox-effect-slideRight.nivo-lightbox-open .nivo-lightbox-wrap {
 +
    -webkit-transform: translateX(0);
 +
      -moz-transform: translateX(0);
 +
        -ms-transform: translateX(0);
 +
            transform: translateX(0);
 +
}
 +
.nivo-lightbox-effect-slideDown .nivo-lightbox-wrap {
 +
    -webkit-transform: translateY(-10%);
 +
      -moz-transform: translateY(-10%);
 +
        -ms-transform: translateY(-10%);
 +
            transform: translateY(-10%);
 +
}
 +
.nivo-lightbox-effect-slideUp .nivo-lightbox-wrap {
 +
    -webkit-transform: translateY(10%);
 +
      -moz-transform: translateY(10%);
 +
        -ms-transform: translateY(10%);
 +
            transform: translateY(10%);
 +
}
 +
.nivo-lightbox-effect-slideUp.nivo-lightbox-open .nivo-lightbox-wrap,
 +
.nivo-lightbox-effect-slideDown.nivo-lightbox-open .nivo-lightbox-wrap {
 +
    -webkit-transform: translateY(0);
 +
      -moz-transform: translateY(0);
 +
        -ms-transform: translateY(0);
 +
            transform: translateY(0);
 +
}
 +
 +
/* fall */
 +
.nivo-lightbox-body-effect-fall .nivo-lightbox-effect-fall {
 +
    -webkit-perspective: 1000px;
 +
      -moz-perspective: 1000px;
 +
            perspective: 1000px;
 +
}
 +
.nivo-lightbox-effect-fall .nivo-lightbox-wrap {
 +
    -webkit-transition: all 0.3s ease-out;
 +
      -moz-transition: all 0.3s ease-out;
 +
        -ms-transition: all 0.3s ease-out;
 +
        -o-transition: all 0.3s ease-out;
 +
            transition: all 0.3s ease-out;
 +
    -webkit-transform: translateZ(300px);
 +
      -moz-transform: translateZ(300px);
 +
        -ms-transform: translateZ(300px);
 +
            transform: translateZ(300px);
 +
}
 +
.nivo-lightbox-effect-fall.nivo-lightbox-open .nivo-lightbox-wrap {
 +
    -webkit-transform: translateZ(0);
 +
      -moz-transform: translateZ(0);
 +
        -ms-transform: translateZ(0);
 +
            transform: translateZ(0);
 +
}
 +
/*
 +
*  Core Owl Carousel CSS File
 +
*  v1.3.2
 +
*/
 +
 +
/* clearfix */
 +
.owl-carousel .owl-wrapper:after {
 +
    content: ".";
 +
    display: block;
 +
    clear: both;
 +
    visibility: hidden;
 +
    line-height: 0;
 +
    height: 0;
 +
}
 +
/* display none until init */
 +
.owl-carousel{
 +
    display: none;
 +
    position: relative;
 +
    width: 100%;
 +
    -ms-touch-action: pan-y;
 +
}
 +
.owl-carousel .owl-wrapper{
 +
    display: none;
 +
    position: relative;
 +
    -webkit-transform: translate3d(0px, 0px, 0px);
 +
}
 +
.owl-carousel .owl-wrapper-outer{
 +
    overflow: hidden;
 +
    position: relative;
 +
    width: 100%;
 +
}
 +
.owl-carousel .owl-wrapper-outer.autoHeight{
 +
    -webkit-transition: height 500ms ease-in-out;
 +
    -moz-transition: height 500ms ease-in-out;
 +
    -ms-transition: height 500ms ease-in-out;
 +
    -o-transition: height 500ms ease-in-out;
 +
    transition: height 500ms ease-in-out;
 +
}
 +
   
 +
.owl-carousel .owl-item{
 +
    float: left;
 +
}
 +
.owl-controls .owl-page,
 +
.owl-controls .owl-buttons div{
 +
    cursor: pointer;
 +
}
 +
.owl-controls {
 +
    -webkit-user-select: none;
 +
    -khtml-user-select: none;
 +
    -moz-user-select: none;
 +
    -ms-user-select: none;
 +
    user-select: none;
 +
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
 +
}
 +
 +
/* mouse grab icon */
 +
.grabbing {
 +
    cursor:url(grabbing.png) 8 8, move;
 +
}
 +
 +
/* fix */
 +
.owl-carousel  .owl-wrapper,
 +
.owl-carousel  .owl-item{
 +
    -webkit-backface-visibility: hidden;
 +
    -moz-backface-visibility:    hidden;
 +
    -ms-backface-visibility:    hidden;
 +
  -webkit-transform: translate3d(0,0,0);
 +
  -moz-transform: translate3d(0,0,0);
 +
  -ms-transform: translate3d(0,0,0);
 +
}
 +
 +
/*
 +
*  Owl Carousel Owl Demo Theme
 +
*  v1.3.2
 +
*/
 +
 +
.owl-theme .owl-controls{
 +
    margin-top: 10px;
 +
    text-align: center;
 +
}
 +
 +
/* Styling Next and Prev buttons */
 +
 +
.owl-theme .owl-controls .owl-buttons div{
 +
    color: #FFF;
 +
    display: inline-block;
 +
    zoom: 1;
 +
    *display: inline;/*IE7 life-saver */
 +
    margin: 5px;
 +
    padding: 3px 10px;
 +
    font-size: 12px;
 +
    -webkit-border-radius: 30px;
 +
    -moz-border-radius: 30px;
 +
    border-radius: 30px;
 +
    background: #869791;
 +
    filter: Alpha(Opacity=50);/*IE7 fix*/
 +
    opacity: 0.5;
 +
}
 +
/* Clickable class fix problem with hover on touch devices */
 +
/* Use it for non-touch hover action */
 +
.owl-theme .owl-controls.clickable .owl-buttons div:hover{
 +
    filter: Alpha(Opacity=100);/*IE7 fix*/
 +
    opacity: 1;
 +
    text-decoration: none;
 +
}
 +
 +
/* Styling Pagination*/
 +
 +
.owl-theme .owl-controls .owl-page{
 +
    display: inline-block;
 +
    zoom: 1;
 +
    *display: inline;/*IE7 life-saver */
 +
}
 +
.owl-theme .owl-controls .owl-page span{
 +
    display: block;
 +
    width: 12px;
 +
    height: 12px;
 +
    margin: 5px 7px;
 +
    filter: Alpha(Opacity=50);/*IE7 fix*/
 +
    opacity: 0.5;
 +
    -webkit-border-radius: 20px;
 +
    -moz-border-radius: 20px;
 +
    border-radius: 20px;
 +
    background: #869791;
 +
}
 +
 +
.owl-theme .owl-controls .owl-page.active span,
 +
.owl-theme .owl-controls.clickable .owl-page:hover span{
 +
    filter: Alpha(Opacity=100);/*IE7 fix*/
 +
    opacity: 1;
 +
}
 +
 +
/* If PaginationNumbers is true */
 +
 +
.owl-theme .owl-controls .owl-page span.owl-numbers{
 +
    height: auto;
 +
    width: auto;
 +
    color: #FFF;
 +
    padding: 2px 10px;
 +
    font-size: 12px;
 +
    -webkit-border-radius: 30px;
 +
    -moz-border-radius: 30px;
 +
    border-radius: 30px;
 +
}
 +
 +
/* preloading images */
 +
.owl-item.loading{
 +
    min-height: 150px;
 +
    background: url(AjaxLoader.gif) no-repeat center center
 +
}
 +
/* iPads (portrait and landscape) ----------- */
 +
@media (max-width: 768px) {
 +
    body{ overflow-x: hidden;}
 +
    .navbar-header {
 +
        float: none;
 +
    }
 +
    .navbar-toggle {
 +
        display: block;
 +
    }
 +
    .navbar-collapse {
 +
        border-top: 1px solid transparent;
 +
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
 +
    }
 +
    .navbar-collapse.collapse {
 +
        display: none !important;
 +
    }
 +
    .navbar-fixed-top .navbar-collapse,
 +
    .navbar-fixed-bottom .navbar-collapse {
 +
      max-height: 420px;
 +
      text-align: center;
 +
    }
 +
    .gray-bg .vline {
 +
        left: 11%;
 +
    }
 +
    .navbar-right {
 +
        float: none !important;
 +
        margin-right: -15px;
 +
    }
 +
    .navbar-nav {
 +
        float: center !important;
 +
        margin: 7.5px -15px;
 +
    }
 +
    .navbar-nav>li {
 +
        float: none;
 +
    }
 +
    .navbar-nav>li>a {
 +
        padding-top: 10px;
 +
        padding-bottom: 10px;
 +
    }
 +
    .navbar-text {
 +
        float: none;
 +
        margin: 15px 0;
 +
    }
 +
    .navbar-collapse.collapse.in {display: block!important;}
 +
    .collapsing {overflow: hidden!important; }
 +
    .navbar-nav {margin: 0 -15px;}
 +
    .navbar-nav .open .dropdown-menu > li > a, .navbar-nav .open .dropdown-menu .dropdown-header {
 +
        padding: 10px 15px 10px 25px;
 +
    }
 +
    .price.panel-default {
 +
        margin: 40px;
 +
    }
 +
    .price.featured.panel-default {
 +
        margin: 40px;
 +
    }
 +
    .content-heading{ margin-top: 80px;}
 +
    .ipad-wrapper .app-wrap {left: 22%;}
 +
    #tf-home.app .content-heading.text-left{text-align: center;}
 +
    #itemsWorkTwo .box .hover-text i.fa {
 +
        top: 0%;
 +
    }
 +
}
 +
@media (max-width: 768px) {
 +
    #tf-home.slider .content-heading {
 +
        margin-top: 30px;
 +
    }
 +
    #tf-home.slider h1 {
 +
        color: #FC3;
 +
        font-size: 28px;
 +
    }
 +
    .slider .content-heading p.lead { margin-bottom: 20px; }
 +
    .slider .carousel-indicators { bottom: 30px; }
 +
}
 +
@media (max-width: 603px) {
 +
    .slider a.goto-btn { display: none;}
 +
    .ipad-wrapper .app-wrap {left: 16%;}
 +
    #tf-footer .pull-left,
 +
    #tf-footer .pull-right {
 +
        float: none !important;
 +
        text-align: center;
 +
    }
 +
}
 +
 +
@media (max-width: 460px) {
 +
    .gray-bg .vline {
 +
        left: 15%;
 +
    }
 +
    .meta-detail { display: none; }
 +
    h1 { font-size: 34px;}
 +
    #tf-home.slider h1 { font-size: 26px;}
 +
    p.lead { display: none;}
 +
    .slider .carousel-indicators { bottom: 0px; }
 +
    .ipad-wrapper .app-wrap {left: 3%;}
 +
}
 +
@media (max-width: 360px) {
 +
    #tf-services,
 +
    #tf-pricing,
 +
    .section-header,
 +
    .about-right-content,
 +
    #tf-features,
 +
    #feature,
 +
    #tf-works,
 +
    #tf-blog,
 +
    #tf-contact {
 +
      padding: 20px 0;
 +
    }
 +
    p{ font-size: 12px}
 +
    h2{ font-size: 20px;}
 +
    h4{ line-height: 20px;}
 +
    ul.list-inline.cat > li{  margin-bottom: 20px;}
 +
    .gray-bg .vline { left: 20%;}
 +
    .post-meta {min-height: 50px;}
 +
    .price.panel-default {
 +
        margin: 20px;
 +
    }
 +
    .price.featured.panel-default {
 +
        margin: 20px;
 +
    }
 +
    h1 {font-size: 26px}
 +
    #tf-home.slider{ display: none;}
 +
    #tf-intro.slider{ margin-top: 70px !important}
 +
    .ipad-wrapper .app-wrap {display: none;}
 +
    a.goto-btn {
 +
        margin-right: auto;
 +
        margin: 0 10px;
 +
    }
 +
    a.goto-btn {
 +
        display: inline-block;
 +
    }
 +
    .blog .post-meta {min-height: 55px;}
 +
}
 +
@media (max-width: 320px) {
 +
    .post-wrap .post .media-body p {display: none;}
 +
    .gray-bg .vline { left: 25%;}
 +
    .nav.nav-pills > li > a { font-size: 11px;}
 +
    ul.features li span.fa {
 +
        font-size: 30px;
 +
        margin-top: 2px;
 +
    }
 +
    .post-tab .nav-tabs > li > a {
 +
        padding: 5px 10px;
 +
    }
 +
}
 +
@import url(http://fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic);
 +
body,
 +
html {
 +
    -webkit-font-smoothing: antialiased !important;
 +
    -moz-osx-font-smoothing: grayscale;
 +
    overflow-y: auto;
 +
    overflow-x: hidden;
 +
    font-family: 'Lato', sans-serif;
 +
    color: #6f6f6f;
 +
}
 +
::-webkit-scrollbar { width: 2px;  }/* for vertical scrollbars */
 +
::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.1); }
 +
::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.5); }
 +
 +
@media (min-width: 1200px) {
 +
    .container { width: 1100px }
 +
}
 +
h1 {
 +
    font-weight: 900;
 +
    text-transform: uppercase;
 +
    font-family: adele;
 +
    font-size: 57px;
 +
}
 +
h1 small { text-transform: lowercase }
 +
h2 {
 +
    line-height: 24px;
 +
    font-weight: 300;
 +
}
 +
h5 {
 +
    font-size: 16px;
 +
}
 +
h10 {
 +
    font-family: adele;
 +
    font-size: 25px;
 +
    color: #00BAB9;
 +
}
 +
h11 {
 +
    font-size:10px;
 +
}
 +
p { font-size: 14px }
 +
a {
 +
    color: inherit;
 +
    transition: all 0.5s;
 +
}
 +
a:hover,
 +
a:focus {
 +
    text-decoration: none;
 +
    color: #00BAB9;
 +
}
 +
.highlight { color: #00BAB9 }
 +
.clearfix:after {
 +
    visibility: hidden;
 +
    display: block;
 +
    font-size: 0;
 +
    content: " ";
 +
    clear: both;
 +
    height: 0;
 +
}
 +
.clearfix { display: inline-block }
 +
* html .clearfix { height: 1% }
 +
.clearfix { display: block }
 +
/* Navigation */
 +
#tf-menu {
 +
    margin-bottom: 0;
 +
    background-color: #ffffff;
 +
    padding: 10px 0;
 +
    height: auto;
 +
}
 +
.navbar-brand img {
 +
    height: 30px;
 +
    width: auto;
 +
}
 +
.navbar-brand { padding: 12px 15px }
 +
.navbar-nav > li > a {
 +
    font-size: 13px;
 +
    font-weight: 700;
 +
    border-bottom: 2px solid transparent;
 +
    padding: 5px 5px;
 +
    margin: 8px 10px;
 +
    text-transform: uppercase;
 +
    transition: all 0.5s;
 +
}
 +
.navbar-default .navbar-nav > li > a.active,
 +
.navbar-default .navbar-nav > li > a:hover,
 +
.navbar-default .navbar-nav > li > a:focus {
 +
    color: #333;
 +
    border-bottom: 4px solid #00BAB9;
 +
}
 +
.navbar-default .navbar-toggle { border-color: transparent }
 +
.navbar-default .navbar-toggle:hover,
 +
.navbar-default .navbar-toggle:focus { background-color: transparent }
 +
.navbar-default .navbar-toggle:hover>.navbar-default .navbar-toggle .icon-bar,
 +
.navbar-default .navbar-toggle:focus>.navbar-default .navbar-toggle .icon-bar { color: #00BAB9 }
 +
/* Header Page */
 +
#tf-header {
 +
    padding: 20px 0;
 +
    background: #00bab9;
 +
    margin-top: 70px;
 +
    color: #ffffff;
 +
}
 +
#tf-header .breadcrumb {
 +
    padding: 8px 15px;
 +
    margin-bottom: 20px;
 +
    list-style: none;
 +
    background-color: transparent;
 +
    border-radius: 4px;
 +
    margin-left: -10px;
 +
    margin-top: -10px;
 +
}
 +
#tf-header .breadcrumb > li + li:before {
 +
    padding: 0 5px;
 +
    color: #FFF;
 +
    content: "/\00a0";
 +
}
 +
#tf-header .breadcrumb > li a { color: #ffffff }
 +
/* Home Style */
 +
#tf-home {
 +
    background: url(h14zcmx01.jpg);
 +
    background-size: cover;
 +
    background-position: center;
 +
    background-attachment: fixed;
 +
    background-repeat: no-repeat;
 +
    color: #cfcfcf;
 +
}
 +
#tf-home .overlay {
 +
    background: -moz-linear-gradient(top,  rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.73) 17%, rgba(0,0,0,0.66) 35%, rgba(0,0,0,0.55) 62%, rgba(0,0,0,0.4) 100%); /* FF3.6+ */
 +
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.8)), color-stop(17%,rgba(0,0,0,0.73)), color-stop(35%,rgba(0,0,0,0.66)), color-stop(62%,rgba(0,0,0,0.55)), color-stop(100%,rgba(0,0,0,0.4))); /* Chrome,Safari4+ */
 +
    background: -webkit-linear-gradient(top,  rgba(0,0,0,0.8) 0%,rgba(0,0,0,0.73) 17%,rgba(0,0,0,0.66) 35%,rgba(0,0,0,0.55) 62%,rgba(0,0,0,0.4) 100%); /* Chrome10+,Safari5.1+ */
 +
    background: -o-linear-gradient(top,  rgba(0,0,0,0.8) 0%,rgba(0,0,0,0.73) 17%,rgba(0,0,0,0.66) 35%,rgba(0,0,0,0.55) 62%,rgba(0,0,0,0.4) 100%); /* Opera 11.10+ */
 +
    background: -ms-linear-gradient(top,  rgba(0,0,0,0.8) 0%,rgba(0,0,0,0.73) 17%,rgba(0,0,0,0.66) 35%,rgba(0,0,0,0.55) 62%,rgba(0,0,0,0.4) 100%); /* IE10+ */
 +
    background: linear-gradient(to bottom,  rgba(0,0,0,0.8) 0%,rgba(0,0,0,0.73) 17%,rgba(0,0,0,0.66) 35%,rgba(0,0,0,0.55) 62%,rgba(0,0,0,0.4) 100%); /* W3C */
 +
    padding: 20% 0;
 +
    background-attachment: fixed;
 +
}
 +
#tf-home .overlay {
 +
}
 +
 +
#tf-home h1 { color: #0bab9b }
 +
.content-heading p.lead { margin-bottom: 80px }
 +
a.goto-btn {
 +
    font-size: 18px;
 +
    font-weight: 700;
 +
    border-bottom: 2px solid transparent;
 +
    padding: 10px 0;
 +
    transition: all 0.5s;
 +
}
 +
a.goto-btn:hover {
 +
    color: #ffffff;
 +
    border-bottom: 2px solid #00BAB9;
 +
}
 +
/* Home Section Style 2 - With Video*/
 +
#tf-home.video .overlay {
 +
    padding: 0;
 +
    padding-top: 10%;
 +
}
 +
.img-wrapper { position: relative }
 +
.img-wrapper img.img-responsive { margin: 0 auto !important }
 +
.img-wrapper i.fa {
 +
    position: absolute;
 +
    z-index: 10;
 +
    top: 50%;
 +
    font-size: 25px;
 +
    background: rgba(32, 22, 22, 0.29);
 +
    padding: 18px 23px;
 +
    height: 60px;
 +
    width: 60px;
 +
    text-align: center;
 +
    border-radius: 50%;
 +
    color: #ffffff;
 +
    margin-left: -30px;
 +
    transition: all 0.3s;
 +
}
 +
.img-wrapper i.fa:hover { background: #00BAB9 }
 +
/* Home Section Style 3 - Slider*/
 +
#tf-home.slider { background: none }
 +
#tf-home.slider .overlay { padding: 0 }
 +
.carousel-caption {
 +
    position: absolute;
 +
    right: 15%;
 +
    top: 28%;
 +
    bottom: auto;
 +
    left: 15%;
 +
    z-index: 10;
 +
    padding-top: 20px;
 +
    padding-bottom: 0;
 +
    color: #fff;
 +
    text-align: center;
 +
    text-shadow: none;
 +
}
 +
.carousel-indicators li {
 +
    display: inline-block;
 +
    width: 12px;
 +
    height: 12px;
 +
    margin: 1px;
 +
    text-indent: -999px;
 +
    cursor: pointer;
 +
    background-color: rgba(0, 0, 0, 0);
 +
    border: 1px solid #fff;
 +
    border-radius: 10px;
 +
}
 +
.carousel-indicators {
 +
    position: absolute;
 +
    bottom: 60px;
 +
    left: 50%;
 +
    z-index: 15;
 +
    width: 60%;
 +
    padding-left: 0;
 +
    margin-left: -30%;
 +
    text-align: center;
 +
    list-style: none;
 +
}
 +
.carousel-indicators .active {
 +
    width: 14px;
 +
    height: 14px;
 +
    margin: 0;
 +
    background-color: #00BAB9;
 +
}
 +
.carousel-fade .carousel-inner .item {
 +
    opacity: 0;
 +
    transition-property: opacity;
 +
}
 +
.carousel-fade .carousel-inner .active { opacity: 1 }
 +
.carousel-fade .carousel-inner .active.left,
 +
.carousel-fade .carousel-inner .active.right {
 +
    left: 0;
 +
    opacity: 0;
 +
    z-index: 1;
 +
}
 +
.carousel-fade .carousel-inner .next.left,
 +
.carousel-fade .carousel-inner .prev.right { opacity: 1 }
 +
.carousel-fade .carousel-control { z-index: 2 }
 +
/* Home Section Style 4 - App Header Style*/
 +
#tf-home.app .overlay { padding: 10% 0 5% 0 }
 +
#tf-home.app {background: url(../img/bg/02.jpg);}
 +
a.goto-btn { margin-right: 30px }
 +
.ipad-wrapper .app-wrap {
 +
    position: relative;
 +
    width: 395px;
 +
}
 +
.app-wrap {
 +
    position: absolute;
 +
    background: url(../img/header4.png);
 +
    width: 395px;
 +
    height: 540px;
 +
    background-repeat: no-repeat;
 +
    z-index: 2;
 +
    left: 5%;
 +
}
 +
#owl-demo .item img {
 +
    position: relative;
 +
    width: 305px;
 +
    height: auto;
 +
    left: 12%;
 +
    margin-top: 46px;
 +
    z-index: -1;
 +
}
 +
.app .content-heading.text-left { padding: 15% 0 }
 +
#tf-home.app .owl-theme .owl-controls .owl-page span {
 +
    width: 15px;
 +
    height: 15px;
 +
    margin: 5px;
 +
    background: #ffffff !important;
 +
    border: 2px solid transparent;
 +
    opacity: 1;
 +
}
 +
#tf-home.app .owl-theme .owl-controls {
 +
    margin-top: 60px;
 +
    text-align: center;
 +
}
 +
#tf-home.app .owl-theme .owl-controls .owl-page.active span,
 +
#tf-home.app .owl-theme .owl-controls.clickable .owl-page:hover span { border: 2px solid #00BAB9 }
 +
 +
/* Home Parallax Effect */
 +
.bcg {
 +
  background-position: center center;
 +
  background-repeat: no-repeat;
 +
  background-attachment: fixed;
 +
  background-size: cover;
 +
  height: 100%;
 +
  width: 100%;
 +
}
 +
 +
#tf-home.parallax .bcg { background-image:url('../img/bg/slider03.jpg'); }
 +
.parallax  .content-heading{
 +
    padding: 20% 0;
 +
    text-align: center;
 +
}
 +
/* Intro Section */
 +
#tf-intro {
 +
    background-color: #0bab9b;
 +
    padding: 5% 0;
 +
    color: #ffffff;
 +
    text-align: center;
 +
}
 +
#tf-intro img.intro-logo {
 +
    margin: 0 auto;
 +
    margin-bottom: 30px;
 +
}
 +
/* Service Section */
 +
#tf-services { padding: 60px 0 }
 +
.section-header {
 +
    padding: 40px 0;
 +
    text-align: center;
 +
}
 +
.section-header h2 { text-transform: uppercase }
 +
.section-header h5 { letter-spacing: 1px }
 +
.fancy {
 +
    line-height: 0.5;
 +
    text-align: center;
 +
    margin-bottom: 40px;
 +
    margin-top: 20px;
 +
}
 +
.fancy span {
 +
    display: inline-block;
 +
    position: relative;
 +
}
 +
.fancy span:before,
 +
.fancy span:after {
 +
    content: "";
 +
    position: absolute;
 +
    height: 5px;
 +
    border-bottom: 1px solid #f1f1f1;
 +
    top: 15px;
 +
    width: 400px;
 +
}
 +
.fancy span:before {
 +
    right: 100%;
 +
    margin-right: 10px;
 +
}
 +
.fancy span:after {
 +
    left: 100%;
 +
    margin-left: 10px;
 +
}
 +
/* service lists */
 +
.service { margin-bottom: 20px }
 +
.service .media-right i.fa {
 +
    text-align: center;
 +
    font-size: 30px;
 +
    background-color: #00BAB9;
 +
    color: #ffffff;
 +
    padding: 25px 0;
 +
    border-radius: 50px;
 +
    border-top-left-radius: 0;
 +
    margin: 0 10px;
 +
    margin-right: 20px;
 +
    width: 82px;
 +
    height: 80px;
 +
    transition: background-color 0.5s;
 +
}
 +
.service .media-left i.fa {
 +
    text-align: center;
 +
    font-size: 30px;
 +
    background-color: #00BAB9;
 +
    color: #ffffff;
 +
    padding: 25px 0;
 +
    border-radius: 50px;
 +
    border-top-right-radius: 0;
 +
    margin: 0 10px;
 +
    margin-left: 20px;
 +
    width: 82px;
 +
    height: 80px;
 +
    transition: background-color 0.5s;
 +
}
 +
.process:hover i.fa,
 +
.service:hover i.fa { background-color: #333333 }
 +
h4.media-heading {
 +
    margin-top: 0;
 +
    margin-bottom: 5px;
 +
    font-size: 16px;
 +
    font-weight: 400;
 +
    text-transform: uppercase;
 +
    color: #333;
 +
    line-height: 20px;
 +
}
 +
/* About Us */
 +
#tf-about { padding: 40px 0 }
 +
.gray-bg { background-color: #f3f3f3 }
 +
.img-wrap .profile-img {
 +
    position: relative;
 +
    margin-bottom: 40px;
 +
}
 +
.profile-img .social {
 +
    position: absolute;
 +
    z-index: 1;
 +
    bottom: -10px;
 +
    left: 50px;
 +
}
 +
.about-right-content { padding: 40px 0 }
 +
.about-left-content { padding-bottom: 60px }
 +
.about-left-content h2,
 +
.about-left-content h2 small { color: #333 }
 +
.about-left-content h2 small { font-weight: 300 }
 +
ul.social li a.fa {
 +
    background: #00BAB9;
 +
    width: 50px;
 +
    height: 50px;
 +
    padding: 15px;
 +
    text-align: center;
 +
    margin-right: -5px;
 +
    font-size: 20px;
 +
    color: #ffffff;
 +
    margin-bottom: 0;
 +
}
 +
ul.social li a.fa:hover { background-color: #333333 }
 +
/* Skills Progress Bar */
 +
.progress {
 +
    height: 12px;
 +
    margin-bottom: 20px;
 +
    overflow: hidden;
 +
    background-color: #999999;
 +
    border-radius: 0;
 +
    -webkit-box-shadow: none;
 +
    box-shadow: none;
 +
}
 +
.progress-bar {
 +
    float: left;
 +
    width: 0;
 +
    height: 100%;
 +
    font-size: 12px;
 +
    line-height: 20px;
 +
    color: #fff;
 +
    text-align: center;
 +
    background-color: #00BAB9;
 +
    -webkit-box-shadow: none;
 +
    box-shadow: none;
 +
    -webkit-transition: width .6s ease;
 +
    -o-transition: width .6s ease;
 +
    transition: width .6s ease;
 +
}
 +
.skills {
 +
    margin-top: 30px;
 +
    padding: 20px 0;
 +
}
 +
.skillset p {
 +
    font-size: 13px;
 +
    margin-bottom: 5px;
 +
}
 +
/* Counter */
 +
#tf-counter {
 +
    border-top: 1px solid #D1D1D1;
 +
    border-bottom: 1px solid #D1D1D1;
 +
}
 +
.facts { padding: 0 }
 +
.facts .count-box { position: relative }
 +
.count-box {
 +
    -webkit-backface-visibility: hidden;
 +
    border-left: 1px solid #d3d3d3;
 +
    padding: 40px 0;
 +
    margin: 0;
 +
    overflow: hidden;
 +
    transition: all 0.5s;
 +
    transform: translateX(0px) translateY(0%);
 +
    -webkit-transform: translateX(0px) translateY(0%);
 +
    -moz-transform: translateX(0px) translateY(0%);
 +
    -ms-transform: translateX(0px) translateY(0%);
 +
    -o-transform: translateX(0px) translateY(0%);
 +
}
 +
/*.count-box .hover-bg{
 +
  position: absolute;
 +
  display: block;
 +
  background-color: #FFCC32;
 +
  width: 100%;
 +
  height: 100%;
 +
  z-index: -1;
 +
  transition: all 0.5s;
 +
  transform: translateX(0px) translateY(150px);
 +
  -webkit-transform: translateX(0px) translateY(150px);
 +
  -ms-transform: translateX(0px) translateY(150px);
 +
    -o-transform: translateX(0px) translateY(150px);
 +
    opacity: 0;
 +
}
 +
.count-box:hover .hover-bg{
 +
  background: #FFCC32;
 +
  color: #fff !important;
 +
  transform: translateX(0px) translateY(-40px);
 +
    -webkit-transform: translateX(0px) translateY(-40px);
 +
    -moz-transform: translateX(0px) translateY(-40px);
 +
    -ms-transform: translateX(0px) translateY(-40px);
 +
    -o-transform: translateX(0px) translateY(-40px);
 +
    opacity: 1;
 +
}*/
 +
.count-box:hover,
 +
.count-box:hover > i.fa { color: #ffffff }
 +
.count-box:hover {
 +
    -webkit-backface-visibility: hidden;
 +
    background-color: #00BAB9;
 +
}
 +
.counter i.fa {
 +
    font-size: 40px;
 +
    color: #00BAB9;
 +
}
 +
.count-box.last { border-right: 1px solid #d3d3d3 }
 +
/* Portfolio / Works Sections */
 +
#tf-team { padding: 60px 0 }
 +
#team .item {
 +
    padding: 30px 0px;
 +
    margin: 5px 20px;
 +
    -webkit-border-radius: 3px;
 +
    -moz-border-radius: 3px;
 +
    border-radius: 3px;
 +
}
 +
.item .hover-bg {
 +
    position: relative;
 +
    overflow: hidden;
 +
}
 +
.hover-bg .hover-text {
 +
    position: absolute;
 +
    display: block;
 +
    bottom: 0;
 +
    width: 100%;
 +
    height: 25%;
 +
    padding: 20px;
 +
    color: #ffffff;
 +
    transition: all 0.8s;
 +
    -webkit-transition: all 08s;
 +
    -moz-transition: all 0.8s;
 +
    -o-transition: all 0.8s;
 +
}
 +
.hover-bg .hover-text.on { opacity: 1 }
 +
.hover-bg .hover-text.off {
 +
    transition: all 0.3s;
 +
    -webkit-transition: all 0.3s;
 +
    -moz-transition: all 0.3s;
 +
    -o-transition: all 0.3s;
 +
    -webkit-transform: translateX(100%) translateY(-90%);
 +
    transform: translateX(100%) translateY(-90%);
 +
    opacity: 1;
 +
    background: rgba(0, 0, 0, 0.70);
 +
}
 +
.hover-bg:hover .hover-text.off {
 +
    -webkit-transform: translateX(0%) translateY(-90%);
 +
    transform: translateX(0%)  translateY(-90%);
 +
    opacity: 1;
 +
}
 +
.owl-theme .owl-controls .owl-page span {
 +
    width: 15px;
 +
    height: 15px;
 +
    margin: 5px;
 +
    background: #bababa;
 +
}
 +
/* Why Us or Features Section */
 +
#tf-features,
 +
#feature { padding: 60px 0 }
 +
.features-content { padding: 0 30px 0 }
 +
.features-content h4 {
 +
    text-transform: uppercase;
 +
    margin-bottom: 20px;
 +
    color: #333333;
 +
}
 +
.nav.nav-pills > li > a {
 +
    position: relative;
 +
    display: block;
 +
    background-color: #ffffff;
 +
    padding: 65px;
 +
    border-bottom: 3px solid #cccccc;
 +
    text-transform: uppercase;
 +
    margin-bottom: 5px;
 +
}
 +
.nav.nav-pills > li > a small {
 +
    text-transform: lowercase;
 +
    font-style: italic;
 +
}
 +
.nav.nav-pills > li > a:hover,
 +
.nav-pills > li.active > a,
 +
.nav-pills > li.active > a:hover,
 +
.nav-pills > li.active > a:focus {
 +
    color: #fff;
 +
    background-color: #00BAB9;
 +
    padding: 25px;
 +
    border-bottom: 3px solid #996600;
 +
}
 +
.nav-pills > li > a { border-radius: 4px }
 +
ul.features li span.fa {
 +
    font-size: 35px;
 +
    vertical-align: middle;
 +
    margin-right: 20px;
 +
    float: left;
 +
    clear: both;
 +
    margin-top: 5px;
 +
}
 +
/* Portfolio or works blocks */
 +
#tf-works { padding: 60px 0 }
 +
ul.cat { margin: 30px 0 }
 +
ul.cat li a {
 +
    background: inherit;
 +
    border: 1px solid;
 +
    padding: 5px 10px;
 +
    border-radius: 3px;
 +
}
 +
ul.cat li a:hover,
 +
ul.cat li a:focus,
 +
ul.cat li a.active {
 +
    background: #f1f1f1;
 +
    border: 1px solid;
 +
    padding: 5px 10px;
 +
    border-radius: 3px;
 +
    color: inherit;
 +
}
 +
.nopadding { padding: 0 }
 +
.box a { margin: 2px }
 +
.box .hover-bg {
 +
    position: relative;
 +
    overflow: hidden;
 +
}
 +
.box .hover-bg .hover-text {
 +
    height: 100%;
 +
    bottom: 0;
 +
    -webkit-transform: translateX(0%) translateY(0%);
 +
    transform: translateX(0%) translateY(0%);
 +
    background: transparent;
 +
}
 +
.box:hover .hover-bg .hover-text { background-color: rgba(1, 1, 1, 0.5) }
 +
.box .hover-bg:hover .hover-text.off {
 +
    -webkit-transform: translateX(0%) translateY(0%);
 +
    transform: translateX(0%)  translateY(0%);
 +
    opacity: 1;
 +
    transition: all 0.3s;
 +
    -webkit-transition: all 0.3s;
 +
    -o-transition: all 0.3s;
 +
}
 +
.box .hover-text i.fa {
 +
    font-size: 20px;
 +
    background: #00BAB9;
 +
    padding: 13px;
 +
    position: relative;
 +
    top: 40%;
 +
    border-radius: 50%;
 +
    width: 45px;
 +
    height: 45px;
 +
    transition: all 0.5s;
 +
}
 +
.box .hover-text i.fa:hover { background: #333333 }
 +
.box .hover-text i.fa.fa-expand {
 +
    border-top-right-radius: 0;
 +
    -webkit-transform: translateX(-400%) translateY(0%);
 +
    transform: translateX(-400%)  translateY(0%);
 +
    opacity: 0;
 +
    transition: all 0.5s;
 +
}
 +
.box:hover .hover-text i.fa.fa-expand {
 +
    -webkit-transform: translateX(0%) translateY(0%);
 +
    transform: translateX(0%)  translateY(0%);
 +
    opacity: 1;
 +
}
 +
.box .hover-text i.fa.fa-chain {
 +
    border-top-left-radius: 0;
 +
    -webkit-transform: translateX(400%) translateY(0%);
 +
    transform: translateX(400%)  translateY(0%);
 +
    opacity: 0;
 +
    transition: all 0.5s;
 +
}
 +
.box:hover .hover-text i.fa.fa-chain {
 +
    -webkit-transform: translateX(0%) translateY(0%);
 +
    transform: translateX(0%)  translateY(0%);
 +
    opacity: 1;
 +
}
 +
/* Style 2 - Not Fullwidth */
 +
#itemsWorkThree .box,
 +
#itemsWorkTwo .box { margin-bottom: 30px }
 +
#itemsWorkTwo .hover-bg .hover-text { padding: 30% 0 }
 +
#itemsWorkTwo .box:hover .hover-bg .hover-text {
 +
    background-color: rgba(255, 223, 125, 0.70);
 +
    border: 10px solid rgba(185, 156, 72, 0.80);
 +
}
 +
#itemsWorkTwo .box .hover-bg .hover-text h5 small {
 +
    text-transform: capitalize;
 +
    color: #000000;
 +
}
 +
#itemsWorkTwo .box .hover-bg .hover-text h5 {
 +
    font-weight: 700;
 +
    text-transform: uppercase;
 +
    color: #000000;
 +
    -webkit-transform: translateX(0%) translateY(400%);
 +
    transform: translateX(0%)  translateY(400%);
 +
    opacity: 0;
 +
    transition: all 0.5s;
 +
}
 +
#itemsWorkTwo .box:hover .hover-bg .hover-text.off h5 {
 +
    -webkit-transform: translateX(0%) translateY(0%);
 +
    transform: translateX(0%)  translateY(0%);
 +
    opacity: 1;
 +
}
 +
#itemsWorkTwo .box .hover-text i.fa {
 +
    font-size: 20px;
 +
    background: transparent;
 +
    padding: 13px;
 +
    position: relative;
 +
    top: 40%;
 +
    border-radius: 50%;
 +
    width: 45px;
 +
    height: 45px;
 +
    transition: all 0.5s;
 +
    border: 1px solid #ffffff;
 +
}
 +
#itemsWorkTwo .box .hover-text i.fa:hover { background: #333333 }
 +
/* Portfolio Style #3 */
 +
#itemsWorkThree .box h5 {
 +
    border: 1px solid #ddd;
 +
    padding: 10px 0;
 +
    margin: 0;
 +
}
 +
/* Isotope Filter */
 +
.isotope-item { z-index: 2 }
 +
.isotope-hidden.isotope-item { z-index: 1 }
 +
.isotope,
 +
.isotope .isotope-item {
 +
    /* change duration value to whatever you like */
 +
    -webkit-transition-duration: 0.8s;
 +
    -moz-transition-duration: 0.8s;
 +
    transition-duration: 0.8s;
 +
}
 +
.isotope-item {
 +
    margin-right: -1px;
 +
    -webkit-backface-visibility: hidden;
 +
    backface-visibility: hidden;
 +
}
 +
.isotope {
 +
    -webkit-transition-property: height, width;
 +
    -moz-transition-property: height, width;
 +
    transition-property: height, width;
 +
}
 +
.isotope .isotope-item {
 +
    -webkit-transition-property: -webkit-transform, opacity;
 +
    -moz-transition-property: -moz-transform, opacity;
 +
    transition-property: transform, opacity;
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-title {
 +
    font-size: 14px;
 +
    background: #f1f1f1;
 +
    border: 1px solid #333;
 +
    letter-spacing: 2px;
 +
    color: #333;
 +
    text-transform: uppercase;
 +
    letter-spacing: 2px;
 +
    padding: 10px 35px;
 +
    border-radius: 2px;
 +
}
 +
.nivo-lightbox-theme-default.nivo-lightbox-overlay {
 +
    background: #ffffff !important;
 +
    background: rgba(255, 255, 255, 1) !important;
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-nav,
 +
.nivo-lightbox-theme-default .nivo-lightbox-close { opacity: 1 }
 +
.nivo-lightbox-error {
 +
    color: #C59A6D !important;
 +
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0) !important;
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-image img {
 +
    background: #fff;
 +
    -webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
    -moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
    box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
    border-top: 4px solid #ffcc33;
 +
}
 +
/* Single Portfolio Detail */
 +
#work-detail-one,
 +
#work-detail-two,
 +
#work-detail-three { padding: 60px 0 }
 +
.work-detail .dl-horizontal dt {
 +
    text-align: left;
 +
    margin-bottom: 10px;
 +
}
 +
.work-related-thumb { margin-bottom: 30px }
 +
.work-related-thumb .img-thumbnail {
 +
    display: inline-block;
 +
    max-width: 100%;
 +
    height: auto;
 +
    padding: 0;
 +
    line-height: 1.42857143;
 +
    background-color: transparent;
 +
    border: 1px solid transparent;
 +
    border-radius: 0;
 +
    -webkit-transition: all .2s ease-in-out;
 +
    -o-transition: all .2s ease-in-out;
 +
    transition: all .2s ease-in-out;
 +
}
 +
.work-related-thumb .img-thumbnail:hover { opacity: 0.8 }
 +
/* Process Section */
 +
#tf-process { padding: 60px 0 }
 +
.process i.fa {
 +
    text-align: center;
 +
    font-size: 30px;
 +
    background-color: #00BAB9;
 +
    color: #ffffff;
 +
    padding: 25px 0;
 +
    border: 4px solid #ffffff;
 +
    border-radius: 50px;
 +
    border-top-left-radius: 0;
 +
    margin: 0 10px;
 +
    margin-right: 20px;
 +
    width: 92px;
 +
    height: 90px;
 +
    transition: background-color 0.5s;
 +
}
 +
#tf-process .gray-bg { position: relative }
 +
.gray-bg .vline {
 +
    position: absolute;
 +
    height: 100%;
 +
    padding: 5px;
 +
    border-left: 3px solid #ffffff;
 +
    left: 20%;
 +
}
 +
#process { padding: 60px 0 20px 0 }
 +
.process { margin-bottom: 40px }
 +
/* Pricing Section */
 +
#tf-pricing { padding: 60px 0 }
 +
#tf-pricing {text-align:center;}
 +
.price h1 { font-size: 50px }
 +
.price { text-align: center }
 +
.price.panel-default { border-color: #333 }
 +
.price.panel-default > .panel-heading {
 +
    font-size: 20px;
 +
    text-transform: uppercase;
 +
    font-weight: 600;
 +
    color: #FFF;
 +
    background-color: #333333;
 +
    border-color: inherit;
 +
}
 +
.price .panel-heading { padding: 30px 15px }
 +
.price .panel-body { border-bottom: 1px solid }
 +
.price ul.list-unstyled { padding: 20px }
 +
.price ul.list-unstyled li { padding: 10px 0 }
 +
.price ul.list-unstyled li small { margin-top: -10px }
 +
/* Featured */
 +
.price.featured {
 +
    -moz-box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.31);
 +
    -webkit-box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.31);
 +
    box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.31);
 +
}
 +
.price.featured.panel-default {
 +
    border-color: #00BAB9;
 +
    background-color: #ffffff;
 +
    margin-top: -20px;
 +
    position: relative;
 +
    z-index: 1;
 +
    margin-left: -5px;
 +
    margin-right: -5px;
 +
}
 +
.price.featured.panel-default { border-color: #00BAB9 }
 +
.price.featured.panel-default > .panel-heading { background-color: #00BAB9 }
 +
.featured .panel-body { margin-top: 20px }
 +
.featured .panel-body,
 +
.featured.panel-default > .panel-heading { border-color: #00BAB9 }
 +
.featured .tf-btn { margin-top: 20px }
 +
.btn:focus,
 +
.btn:active:focus,
 +
.btn.active:focus,
 +
.btn.focus,
 +
.btn:active.focus,
 +
.btn.active.focus {
 +
    outline: 0;
 +
    outline: 0;
 +
    outline-offset: 0;
 +
}
 +
.btn:active,
 +
.btn.active {
 +
    background-image: none;
 +
    outline: 0;
 +
    -webkit-box-shadow: none;
 +
    box-shadow: none;
 +
}
 +
.tf-btn {
 +
    font-size: 12px;
 +
    word-spacing: 2px;
 +
    font-weight: 700;
 +
    padding: 10px 20px;
 +
    background-color: #333333;
 +
    text-transform: uppercase;
 +
    border-color: #333333;
 +
    transition: all 0.5s;
 +
}
 +
.tf-btn:focus,
 +
.tf-btn:hover {
 +
    background-color: #333333;
 +
    border-color: #00BAB9;
 +
}
 +
.color {
 +
    background-color: #00BAB9;
 +
    border-color: #00BAB9;
 +
}
 +
.color:focus,
 +
.color:hover {
 +
    border-color: #333333;
 +
    background-color: #00BAB9;
 +
}
 +
/* Blog Section */
 +
#tf-blog,
 +
#blog-post { padding: 60px 0 }
 +
#blog-post a.btn { margin: auto 0 }
 +
.post-wrap { position: relative }
 +
.media.post {
 +
    background: #fff;
 +
    padding: 10px;
 +
}
 +
.post-wrap {
 +
    position: relative;
 +
    margin-bottom: 30px;
 +
    transition: all 0.5s;
 +
}
 +
.post-meta {
 +
    border-top: 1px solid #ebebeb;
 +
    background-color: #ffffff;
 +
    padding: 5px 10px;
 +
    height: auto;
 +
    position: relative;
 +
    min-height: 35px;
 +
}
 +
ul.metas li:after {
 +
    content: ' / ';
 +
    margin-right: 3px;
 +
    margin-left: 3px;
 +
}
 +
ul.metas li:last-child:after { content: ' ' }
 +
ul.metas li a { color: #00BAB9 }
 +
.meta-detail {
 +
    background: #f4f4f4;
 +
    border-radius: 3px;
 +
    padding: 2px;
 +
}
 +
/* Contact Section */
 +
/*********************************
 +
/* Map Section
 +
**********************************/
 +
#tf-contact { padding: 60px 0 }
 +
#map {
 +
    position: relative;
 +
    width: 100%;
 +
    height: 400px;
 +
}
 +
.contact-detail {
 +
    text-align: center;
 +
    margin: 60px 0;
 +
}
 +
.contact-detail i.fa {
 +
    text-align: center;
 +
    font-size: 30px;
 +
    background-color: #00BAB9;
 +
    color: #ffffff;
 +
    padding: 25px 0;
 +
    border-radius: 50px;
 +
    border-top-left-radius: 0;
 +
    margin: 0 10px;
 +
    margin-right: 20px;
 +
    width: 82px;
 +
    height: 80px;
 +
    transition: background-color 0.5s;
 +
}
 +
.contact-detail:hover i.fa { background-color: #333333 }
 +
form#contact-form { padding: 40px 0 }
 +
.contact form#contact-form {padding: 0}
 +
.form-control:focus {
 +
    border-color: inherit;
 +
    outline: 0;
 +
    -webkit-box-shadow: none;
 +
    box-shadow: none;
 +
}
 +
.form-control {
 +
    display: block;
 +
    width: 100%;
 +
    height: 44px;
 +
    padding: 10px 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: none;
 +
    box-shadow: none;
 +
    -webkit-transition: none;
 +
    -o-transition: none;
 +
    transition: none;
 +
}
 +
p.help-block.text-danger ul li {
 +
    display: block;
 +
    margin-left: -20px;
 +
    color: #00BAB9;
 +
}
 +
#success .alert-danger {
 +
    color: #00BAB9;
 +
    background-color: #FDFDFD;
 +
    border-color: #00BAB9;
 +
    margin-bottom: 10px;
 +
}
 +
/* Footer */
 +
#tf-footer {
 +
    padding: 3% 0 2% 0;
 +
    background-color: #00BAB9;
 +
    color: #ffffff;
 +
}
 +
ul.social li a i {
 +
    font-size: 18px;
 +
    background: transparent;
 +
    width: 32px;
 +
    height: 32px;
 +
    padding: 7px 0;
 +
    text-align: center;
 +
    border-radius: 50%;
 +
    border-top-left-radius: 0;
 +
    border: 1px solid transparent;
 +
    color: #ffffff;
 +
    transition: all 0.5s;
 +
}
 +
ul.social li a i:hover { border-color: #ffffff }
 +
/* Blog Page */
 +
.blog .media.post {
 +
    background: #fff;
 +
    padding: 10px;
 +
    border: 1px solid #E9E9E9;
 +
    border-bottom-color: transparent;
 +
    border-top-left-radius: 5px;
 +
    border-top-right-radius: 5px;
 +
}
 +
.blog .post-meta {
 +
    border-top: 1px solid #ebebeb;
 +
    background-color: #ffffff;
 +
    padding: 5px 10px;
 +
    height: auto;
 +
    position: relative;
 +
    min-height: 35px;
 +
    border: 1px solid #ebebeb;
 +
    border-bottom-left-radius: 5px;
 +
    border-bottom-right-radius: 5px;
 +
}
 +
.pagination > li > a,
 +
.pagination > li > span {
 +
    position: relative;
 +
    float: left;
 +
    padding: 6px 12px;
 +
    margin-left: 0;
 +
    line-height: 1.42857143;
 +
    color: #FFFFFF;
 +
    text-decoration: none;
 +
    background-color: #00BAB9;
 +
    border: 1px solid #00BAB9;
 +
    margin: 3px 3px;
 +
    font-weight: 700;
 +
    text-transform: uppercase;
 +
    border-radius: 5px;
 +
}
 +
.pagination > li > a.active,
 +
.pagination > li > a:hover,
 +
.pagination > li > span:hover,
 +
.pagination > li > a:focus,
 +
.pagination > li > span:focus {
 +
    color: #FFFFFF;
 +
    background-color: #00BAB9;
 +
    border-color: #00BAB9;
 +
}
 +
/* Sidebar */
 +
.widget {
 +
    margin-bottom: 40px;
 +
    padding: 0 20px;
 +
}
 +
.comment h4,
 +
.widget h4,
 +
h4.text-uppercase {
 +
    font-weight: 300;
 +
    color: #00BAB9;
 +
}
 +
.comment h4 span.comments { color: #333333 }
 +
/* Search */
 +
button.btn.btn-default {
 +
    padding: 11px 15px;
 +
    color: #ffffff;
 +
    background: #00BAB9;
 +
}
 +
/* Categories and Archive Widget */
 +
ul.bullet-lists { margin-top: 20px }
 +
ul.list-unstyled.bullet-lists li span.fa.fa-circle {
 +
    font-size: 8px;
 +
    vertical-align: middle;
 +
    margin-right: 10px;
 +
    color: #00BAB9;
 +
}
 +
ul.list-unstyled.bullet-lists li { padding: 5px 0 }
 +
ul.list-unstyled.bullet-lists li:hover { color: #00BAB9 }
 +
/* Post Tab */
 +
.post-tab .nav-tabs > li > a {
 +
    margin-right: -1px;
 +
    line-height: 1.42857143;
 +
    border: 1px solid #ddd;
 +
    border-radius: 0px 0px 0 0;
 +
}
 +
.post-tab .list-group-item:first-child {
 +
    border-top-left-radius: 0;
 +
    border-top-right-radius: 0;
 +
    margin-top: -1px;
 +
}
 +
.post-tab .nav-tabs > li > a:hover,
 +
.post-tab .nav-tabs > li > a:focus {
 +
    color: #FFF;
 +
    background-color: #FC3;
 +
    border: 1px solid #ddd;
 +
    border-bottom-color: transparent;
 +
}
 +
/* Tags */
 +
ul.list-inline.bullet-lists li a { color: inherit }
 +
ul.list-inline.bullet-lists li {
 +
    background: #F8F8F8;
 +
    padding: 5px 10px;
 +
    margin-bottom: 5px;
 +
    margin-right: 2px;
 +
    border: 1px solid #F4F4F4;
 +
    border-radius: 3px;
 +
    transition: all 0.3s;
 +
}
 +
ul.list-inline.bullet-lists li:hover { background: #00BAB9 }
 +
/* Single Blog Post */
 +
.blog-post .post-wrap img,
 +
.work-detail img.featured { margin: 20px 0 }
 +
ul.meta-tags li a { font-style: italic }
 +
ul.meta-tags li:after { content: ',' }
 +
ul.meta-tags li:last-child:after { content: ' ' }
 +
/* Author Box */
 +
.media.post-author {
 +
    background: #00BAB9;
 +
    padding: 20px;
 +
    margin-top: -1px;
 +
}
 +
.media.post-author a { content: inherit }
 +
.blog-post .post-wrap {
 +
    padding: 20px;
 +
    margin-bottom: 0;
 +
    border: 1px solid #DDDDDD;
 +
    border-top-right-radius: 4px;
 +
    border-top-left-radius: 4px;
 +
}
 +
/* Comment */
 +
.media.comment-block {
 +
    border: 1px solid #DDD;
 +
    padding: 20px;
 +
}
 +
.comment { margin-top: 40px }
 +
.comment form { margin-top: -30px }
 +
.comment input,
 +
.comment textarea { margin-bottom: 15px }
 +
/*
 +
* Nivo Lightbox Default Theme v1.0
 +
* http://dev7studios.com/nivo-lightbox
 +
*
 +
* Copyright 2013, Dev7studios
 +
* Free to use and abuse under the MIT license.
 +
* http://www.opensource.org/licenses/mit-license.php
 +
*/
 +
 +
.nivo-lightbox-theme-default.nivo-lightbox-overlay {
 +
  background: #666;
 +
  background: rgba(0,0,0,0.6);
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-content.nivo-lightbox-loading { background: url(loading.gif) no-repeat 50% 50%; }
 +
 +
.nivo-lightbox-theme-default .nivo-lightbox-nav {
 +
  top: 10%;
 +
  width: 8%;
 +
  height: 80%;
 +
  text-indent: -9999px;
 +
  background-repeat: no-repeat;
 +
  background-position: 50% 50%;
 +
  opacity: 0.5;
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-nav:hover {
 +
  opacity: 1;
 +
    -webkit-animation: pulse .5s;
 +
    animation: pulse .5s;
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-prev {
 +
  background-image: url(prev.png);
 +
  border-radius: 0 3px 3px 0;
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-next {
 +
  background-image: url(next.png);
 +
  border-radius: 3px 0 0 3px;
 +
}
 +
 +
.nivo-lightbox-theme-default .nivo-lightbox-close {
 +
  display: block;
 +
  background: url(close.png) no-repeat ;
 +
  width: 48px;
 +
  height: 48px;
 +
  text-indent: -9999px;
 +
  padding: 0px;
 +
  opacity: 0.5;
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-close:hover {
 +
    opacity: 1;
 +
    -webkit-animation: pulse .5s;
 +
    animation: pulse .5s;
 +
 +
}
 +
 +
.nivo-lightbox-theme-default .nivo-lightbox-title-wrap { bottom: -7%; }
 +
.nivo-lightbox-theme-default .nivo-lightbox-title {
 +
  font: 14px/20px 'Helvetica Neue', Helvetica, Arial, sans-serif;
 +
  font-style: normal;
 +
  font-weight: normal;
 +
  background: #000;
 +
  color: #fff;
 +
  padding: 7px 15px;
 +
  border-radius: 30px;
 +
}
 +
 +
.nivo-lightbox-theme-default .nivo-lightbox-image img {
 +
  background: #fff;
 +
  -webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
    -moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
          box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
}
 +
.nivo-lightbox-theme-default .nivo-lightbox-ajax,
 +
.nivo-lightbox-theme-default .nivo-lightbox-inline {
 +
  background: #fff;
 +
  padding: 40px;
 +
  -webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
    -moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
          box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
 +
}
 +
 +
@media (-webkit-min-device-pixel-ratio: 1.3),
 +
      (-o-min-device-pixel-ratio: 2.6/2),
 +
      (min--moz-device-pixel-ratio: 1.3),
 +
      (min-device-pixel-ratio: 1.3),
 +
      (min-resolution: 1.3dppx) {
 +
 +
  .nivo-lightbox-theme-default .nivo-lightbox-content.nivo-lightbox-loading {
 +
    background-image: url(loading%402x.gif);
 +
    background-size: 32px 32px;
 +
  }
 +
  .nivo-lightbox-theme-default .nivo-lightbox-prev {
 +
    background-image: url(prev%402x.png);
 +
    background-size: 48px 48px;
 +
  }
 +
  .nivo-lightbox-theme-default .nivo-lightbox-next {
 +
    background-image: url(next%402x.png);
 +
    background-size: 48px 48px;
 +
  }
 +
  .nivo-lightbox-theme-default .nivo-lightbox-close {
 +
    background-image: url(close%402x.png);
 +
    background-size: 48px 48px;
 +
  }
 +
 
 +
}
 +
 +
    </style>
 +
    <script type="text/javascript">
 +
/* Modernizr 2.8.3 (Custom Build) | MIT & BSD
 +
* Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
 +
*/
 +
;window.Modernizr=function(a,b,c){function C(a){j.cssText=a}function D(a,b){return C(n.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a){var e=a[d];if(!F(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),H(e,b,c))}function J(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.8.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return I("flexWrap")},s.flexboxlegacy=function(){return I("boxDirection")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!I("indexedDB",a)},s.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(j.backgroundColor,"rgba")},s.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(j.backgroundColor,"rgba")||F(j.backgroundColor,"hsla")},s.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return I("backgroundSize")},s.borderimage=function(){return I("borderImage")},s.borderradius=function(){return I("borderRadius")},s.boxshadow=function(){return I("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return D("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return I("animationName")},s.csscolumns=function(){return I("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),F(j.backgroundImage,"gradient")},s.cssreflections=function(){return I("boxReflect")},s.csstransforms=function(){return!!I("transform")},s.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return I("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var K in s)B(s,K)&&(x=K.toLowerCase(),e[x]=s[K](),v.push((e[x]?"":"no-")+x));return e.input||J(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)B(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},C(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function q(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?o(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function r(a){a||(a=b);var c=n(a);return s.shivCSS&&!g&&!c.hasCSS&&(c.hasCSS=!!l(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||q(a,c),a}var c="3.7.0",d=a.html5||{},e=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g,h="_html5shiv",i=0,j={},k;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.hasEvent=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=y,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
 +
</script>
 
   </head>
 
   </head>
   <body>
+
   <body background="../img/bg/01.jpg" >
  
 
     <!-- Main Navigation  
 
     <!-- Main Navigation  
Line 227: Line 11,703:
 
                             <li role="presentation"> <!-- feature tab menu #5 -->
 
                             <li role="presentation"> <!-- feature tab menu #5 -->
 
                                 <a href="#f5" aria-controls="f5" role="tab" data-toggle="tab">
 
                                 <a href="#f5" aria-controls="f5" role="tab" data-toggle="tab">
                                     Procedures in detail<br>
+
                                     Procedures in detail   &nbsp;&nbsp;&nbsp;&nbsp;    part I<br>
 +
                                </a>
 +
                            </li>
 +
                              <li role="presentation"> <!-- feature tab menu #5 -->
 +
                                <a href="#f8" aria-controls="f8" role="tab" data-toggle="tab">
 +
                                    Procedures in detail    &nbsp;&nbsp;&nbsp;&nbsp;  part II<br>
 +
                                </a>
 +
                            </li>
 +
                            <li role="presentation"> <!-- feature tab menu #5 -->
 +
                                <a href="#f8" aria-controls="f9" role="tab" data-toggle="tab">
 +
                                      Results of Experiments & Analysis<br>
 
                                 </a>
 
                                 </a>
 
                             </li>
 
                             </li>
Line 250: Line 11,736:
 
                                 <h4>Project's background part I</h4>
 
                                 <h4>Project's background part I</h4>
 
                                 <p>&nbsp; &nbsp; &nbsp; &nbsp;The area near Qiantang River has a profound history of wealth. Hangzhou, in the heart of this area, situated many astonishing lithic cultural relics. Most of them were made during The Ten Kingdoms (A.D. 891-A.D. 979) and Song Dynasty (A.D. 960- A.D. 1279). Not only do those lithic relics represent the cutting edge of stone carving technology in contemporary time, but also they provide historians and archaeologists with solid historical evidence. </p><p>&nbsp; &nbsp; &nbsp; &nbsp;
 
                                 <p>&nbsp; &nbsp; &nbsp; &nbsp;The area near Qiantang River has a profound history of wealth. Hangzhou, in the heart of this area, situated many astonishing lithic cultural relics. Most of them were made during The Ten Kingdoms (A.D. 891-A.D. 979) and Song Dynasty (A.D. 960- A.D. 1279). Not only do those lithic relics represent the cutting edge of stone carving technology in contemporary time, but also they provide historians and archaeologists with solid historical evidence. </p><p>&nbsp; &nbsp; &nbsp; &nbsp;
There are three main types of lithic relics in Hangzhou; they are stone sculptures, stone towers also known as Dhavaja, and stone inscriptions. The stone sculptures are primarily represented by Feilai Peak (飞来峰), Ciyun Ridge (慈云岭), and Statue of Mahakala in Baocheng Temple (宝成寺麻曷葛剌). Stone Towers are primarily represented by White Tower (白塔). Stone inscriptions are primarily represented by Hetingwuhe Fubei on Lonely Mountain (孤山放鹤亭舞鹤赋碑).</p><p>&nbsp; &nbsp; &nbsp; &nbsp; Plus, Feilai Peak and White Tower are National Key Historical Relics.  
+
    There are three main types of lithic relics in Hangzhou; they are stone sculptures, stone towers also known as Dhavaja, and stone inscriptions. The stone sculptures are primarily represented by Feilai Peak (飞来峰), Ciyun Ridge (慈云岭), and Statue of Mahakala in Baocheng Temple (宝成寺麻曷葛剌). Stone Towers are primarily represented by White Tower (白塔). Stone inscriptions are primarily represented by Hetingwuhe Fubei on Lonely Mountain (孤山放鹤亭舞鹤赋碑).</p><p>&nbsp; &nbsp; &nbsp; &nbsp; Plus, Feilai Peak and White Tower are National Key Historical Relics.  
Most lithic relics encounter physical, chemical and biological interaction, resulting in weathering corrosion, pulverisation lesion, cracking, contamination, and colour mottling. Those phenomena jeopardise the value of lithic relics and even lithic relics themselves, and the lithic relics in Hangzhou are not of exceptions. <p/><p>&nbsp; &nbsp; &nbsp; &nbsp;
+
    Most lithic relics encounter physical, chemical and biological interaction, resulting in weathering corrosion, pulverisation lesion, cracking, contamination, and colour mottling. Those phenomena jeopardise the value of lithic relics and even lithic relics themselves, and the lithic relics in Hangzhou are not of exceptions. <p/><p>&nbsp; &nbsp; &nbsp; &nbsp;
In 2002, some of the classic lithic relics were inspected and it was found that the surface of Feilai Peak Sculpture was greatly ruined (Figure 1), and there is leaking on Ciyun Ridge Sculpture (Figure 2)..</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;Meanwhile, Cultural Relics Department of China has been trying to maintain and recover the lithic relics. Since 2002, Cultural Relics Department of China mainly has been removing surface deposit, depleting pounding, strengthening crag, and changing flora; the government washed Feilai Peak Sculpture for many times (Figure 3).Government built a top above the Ciyun Peak Sculpture, this relic no longer had to expose to sun and rain henceforward (Figure 4).</p><p> &nbsp;&nbsp;&nbsp;&nbsp;White Tower was comprehensively cleaned and strengthened by silicone by Zhejiang University of Technology (Figure 5).</p>
+
    In 2002, some of the classic lithic relics were inspected and it was found that the surface of Feilai Peak Sculpture was greatly ruined (Figure 1), and there is leaking on Ciyun Ridge Sculpture (Figure 2)..</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;Meanwhile, Cultural Relics Department of China has been trying to maintain and recover the lithic relics. Since 2002, Cultural Relics Department of China mainly has been removing surface deposit, depleting pounding, strengthening crag, and changing flora; the government washed Feilai Peak Sculpture for many times (Figure 3).Government built a top above the Ciyun Peak Sculpture, this relic no longer had to expose to sun and rain henceforward (Figure 4).</p><p> &nbsp;&nbsp;&nbsp;&nbsp;White Tower was comprehensively cleaned and strengthened by silicone by Zhejiang University of Technology (Figure 5).</p>
    <div id="myCarousel" class="carousel slide">
+
                            <div id="myCarousel" class="carousel slide">
                          <ol class="carousel-indicators">
+
                            <ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
+
                                <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
+
                                <li data-target="#myCarousel" data-slide-to="1"></li>
 
                                 <li data-target="#myCarousel" data-slide-to="2"></li>
 
                                 <li data-target="#myCarousel" data-slide-to="2"></li>
 
                                 <li data-target="#myCarousel" data-slide-to="3"></li>
 
                                 <li data-target="#myCarousel" data-slide-to="3"></li>
Line 263: Line 11,749:
 
                                 <li data-target="#myCarousel" data-slide-to="6"></li>
 
                                 <li data-target="#myCarousel" data-slide-to="6"></li>
 
                                 <li data-target="#myCarousel" data-slide-to="7"></li>
 
                                 <li data-target="#myCarousel" data-slide-to="7"></li>
</ol>   
+
                            </ol>   
    <div class="carousel-inner">
+
                            <div class="carousel-inner">
 
                             <div class="item active">
 
                             <div class="item active">
          <img src="img/relics/fg1.png" alt="First slide">
+
                            <img src="img/relics/fg1.png" alt="First slide">
 
                             <br>
 
                             <br>
 
                             <center><p>Figure 1</p></center>
 
                             <center><p>Figure 1</p></center>
    </div>
+
                            </div>
 
                              
 
                              
 
                             <div class="item">
 
                             <div class="item">
Line 277: Line 11,763:
 
                             </div>
 
                             </div>
 
                             <div class="item">
 
                             <div class="item">
          <img src="img/relics/fg31.png" alt="First slide">
+
                            <img src="img/relics/fg31.png" alt="First slide">
 
                             <br>
 
                             <br>
 
                             <center><p>Figure 3-1</p></center>
 
                             <center><p>Figure 3-1</p></center>
    </div>
+
                            </div>
 
                              
 
                              
 
                             <div class="item">
 
                             <div class="item">
Line 314: Line 11,800:
 
                                 <h4>Project's background part II</h4>
 
                                 <h4>Project's background part II</h4>
 
                                 <p>&nbsp;&nbsp;&nbsp;&nbsp; The power plants and railways were removed. During the washing, the staff intentionally left part of this tower intact, and made an contrast for further research of anti-contamination and anti-weathering (Figure 5-3, 5-4)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;However, 2015 field research shows most external lithic murals, statue, and towers still suffer from damage. Some even have distraction in main stone body. Meanwhile, there grows moss. Indoor stone inscriptions though are visible; there are obvious and irremovable cracks. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;
 
                                 <p>&nbsp;&nbsp;&nbsp;&nbsp; The power plants and railways were removed. During the washing, the staff intentionally left part of this tower intact, and made an contrast for further research of anti-contamination and anti-weathering (Figure 5-3, 5-4)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;However, 2015 field research shows most external lithic murals, statue, and towers still suffer from damage. Some even have distraction in main stone body. Meanwhile, there grows moss. Indoor stone inscriptions though are visible; there are obvious and irremovable cracks. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;
Today, most preservation of lithic relics employ physical, chemical, or engineer approaches no matter where. It has been proven by reality that each of those approaches has fatal disadvantages for long-standing preservation of lithic relics, and those disadvantages would even lead to the ruin of lithic relics.</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;Since forever, there are two categories of methods to preserve-- organic and inorganic. Organic materials cannot reach the standard of time to preserve relics such as epoxy resin, acrylic resin, silicone, etc.; inorganic materials would form hard shell that is not compatible or even react with the lithic relics, such as lime, barium hydroxide, and sulphuric acid. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;
+
    Today, most preservation of lithic relics employ physical, chemical, or engineer approaches no matter where. It has been proven by reality that each of those approaches has fatal disadvantages for long-standing preservation of lithic relics, and those disadvantages would even lead to the ruin of lithic relics.</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;Since forever, there are two categories of methods to preserve-- organic and inorganic. Organic materials cannot reach the standard of time to preserve relics such as epoxy resin, acrylic resin, silicone, etc.; inorganic materials would form hard shell that is not compatible or even react with the lithic relics, such as lime, barium hydroxide, and sulphuric acid. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;
In conclusion, finding a long-standing, inexpensive, and efficient method to preserve lithic relics is an impending issue. </p>
+
    In conclusion, finding a long-standing, inexpensive, and efficient method to preserve lithic relics is an impending issue. </p>
 
                               <div id="myCarouselt" class="carousel slide">
 
                               <div id="myCarouselt" class="carousel slide">
                          <ol class="carousel-indicators">
+
                            <ol class="carousel-indicators">
    <li data-target="#myCarouselt" data-slide-to="0" class="active"></li>
+
                                <li data-target="#myCarouselt" data-slide-to="0" class="active"></li>
    <li data-target="#myCarouselt" data-slide-to="1"></li>
+
                                <li data-target="#myCarouselt" data-slide-to="1"></li>
</ol>   
+
                            </ol>   
    <div class="carousel-inner">
+
                            <div class="carousel-inner">
 
                             <div class="item active">
 
                             <div class="item active">
          <img src="img/relics/fg53.png" alt="First slide">
+
                            <img src="img/relics/fg53.png" alt="First slide">
 
                             <br>
 
                             <br>
 
                             <center><p>Figure 5-3</p></center>
 
                             <center><p>Figure 5-3</p></center>
    </div>
+
                            </div>
 
                              
 
                              
 
                             <div class="item">
 
                             <div class="item">
Line 335: Line 11,821:
 
                             </div>
 
                             </div>
 
                             </div>
 
                             </div>
                              </div>
+
                                </div>
 
                             <div role="tabpanel" class="tab-pane fade" id="f4"> <!-- feature #2 content -->
 
                             <div role="tabpanel" class="tab-pane fade" id="f4"> <!-- feature #2 content -->
 
                                 <h4>Principles of experiments</h4>
 
                                 <h4>Principles of experiments</h4>
 
                               <p>&nbsp;&nbsp;&nbsp;&nbsp;The documents cited shows that even after natural weathering, biological decomposition, and acid rain erosion for a time period of time, some stone inscriptions, which are on rock surface containing calcium, remain in good condition because there is a thin layer of naturally formed semitransparent mineralised film that is hydrophilic and compact on such rock surface.</p><p>&nbsp;&nbsp;&nbsp;&nbsp; In some part under the fine film, knife scratches on the stone from over a thousand years ago are still visible indistinctly. According to solid analysis, natural mineralised film is primarily composed of calcium oxalate monohydrate [Ca(COO)2·H2O] whose process of composition is interfered by microorganism.</p><p> &nbsp;&nbsp;&nbsp;&nbsp;
 
                               <p>&nbsp;&nbsp;&nbsp;&nbsp;The documents cited shows that even after natural weathering, biological decomposition, and acid rain erosion for a time period of time, some stone inscriptions, which are on rock surface containing calcium, remain in good condition because there is a thin layer of naturally formed semitransparent mineralised film that is hydrophilic and compact on such rock surface.</p><p>&nbsp;&nbsp;&nbsp;&nbsp; In some part under the fine film, knife scratches on the stone from over a thousand years ago are still visible indistinctly. According to solid analysis, natural mineralised film is primarily composed of calcium oxalate monohydrate [Ca(COO)2·H2O] whose process of composition is interfered by microorganism.</p><p> &nbsp;&nbsp;&nbsp;&nbsp;
There are some advantages of calcium oxalate being a film as follows,</p>
+
    There are some advantages of calcium oxalate being a film as follows,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1) In water, especially in acidulous water, the solubility of calcium oxalate is one order of magnitude smaller than normal calcium carbonate.</p>
+
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1) In water, especially in acidulous water, the solubility of calcium oxalate is one order of magnitude smaller than normal calcium carbonate.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2) Organically oriented calcium oxalate crystal's particles are fine and compact, which prevent the infiltration of toxic and harmful materials. </p>
+
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2) Organically oriented calcium oxalate crystal's particles are fine and compact, which prevent the infiltration of toxic and harmful materials. </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3) The system can't be easily broken by external forces in that there is no distinct boundary between calcium carbonate rock and calcium oxalate film.</p>
+
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3) The system can't be easily broken by external forces in that there is no distinct boundary between calcium carbonate rock and calcium oxalate film.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;So, this research project has chosen E. coli that has been transcribed with lipase to clean some stone relics that are covered with oil; then, we use E. coli, with transcription, that can secrete oxalate acid upon the stone relics. Therefore, there forms calcium oxalate to be protection film in order to preserve lithic relics.</p>  
+
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;So, this research project has chosen E. coli that has been transcribed with lipase to clean some stone relics that are covered with oil; then, we use E. coli, with transcription, that can secrete oxalate acid upon the stone relics. Therefore, there forms calcium oxalate to be protection film in order to preserve lithic relics.</p>  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If we use chemical methods to generate calcium oxalate, we have to immerse the lithic relics in the chemical liquid; however, it is not suitable for the preservation of large-scale outdoor lithic relics. In fact, the natural existing calcium oxalate comes from the reaction of oxalate acid generated by microorganism and calcium compound on the surface of stone. This research project will utilise genetic engineering methods to "graft" the gene that generates calcium oxalate into Escherichia coli (E. coil).</p><p>&nbsp;&nbsp;&nbsp;&nbsp;Then oxalate acid reacts with calcium lithic relics to generate calcium oxalate, which stimulates its natural formation process. Finally, there forms a fine layer to protect the lithic relics. </p>
+
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If we use chemical methods to generate calcium oxalate, we have to immerse the lithic relics in the chemical liquid; however, it is not suitable for the preservation of large-scale outdoor lithic relics. In fact, the natural existing calcium oxalate comes from the reaction of oxalate acid generated by microorganism and calcium compound on the surface of stone. This research project will utilise genetic engineering methods to "graft" the gene that generates calcium oxalate into Escherichia coli (E. coil).</p><p>&nbsp;&nbsp;&nbsp;&nbsp;Then oxalate acid reacts with calcium lithic relics to generate calcium oxalate, which stimulates its natural formation process. Finally, there forms a fine layer to protect the lithic relics. </p>
                              </div>
+
                                </div>
 
                               <div role="tabpanel" class="tab-pane fade" id="f5"> <!-- feature #2 content -->
 
                               <div role="tabpanel" class="tab-pane fade" id="f5"> <!-- feature #2 content -->
                                 <h4>Procedures in details</h4>
+
                                 <h4>Procedures in detail</h4>
                              <p>&nbsp;&nbsp;&nbsp;&nbsp;
+
 
4 实验过程</p>
+
  <p>1.1  Experiment reagents and equipment
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.1  实验试剂及仪器</p>
+
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.1.1 目的基因 草酰乙酸乙酰基水解酶(oxaloacetate acetyl hydrolase 简写OAH)是本实验所使用的目的基因片段,主要功效是在表达时将草酰乙酸转化为草酸,草酸进而于钙结合生成草酸钙起到文物保护的作用。此目的基因片段从基因库中查的基因序列后由美国IDT公司直接合成得到。 </p>
+
  <p>&nbsp;&nbsp;&nbsp;&nbsp;1.1.1 Target genes</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;4.1.2 菌种和质粒 本实验使用的质粒为pET-28a,使用的大肠杆菌为TOP-10感受态细胞,购于天根生化科技有限公司</p>
+
  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1) Lipase: lipase is the target gene segment of this experiment, and the gene sequence is synthesised by IDT Inc. </p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2) Oxaloacetate acetylhydrolase, abbreviation OAH, is the target gene segment of these experiments. The main function of OAH is to transfer oxaloacetic acid to oxalate acid; thus the oxalate acid reacts with the calcium ion to form calcium oxalate that preserves the relics. The target gene segment is synthesised by IDT Inc. after found in gene pool.  
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.1.3 酶与试剂 实验所使用的限制性内切酶购于NEB,连接酶购于天根生化,DNA纯化试剂盒以及质粒提取试剂盒均购于天根生化。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.1.4 PCR引物 根据OAH以测得的序列,由Invitrogen合成了如下引物:</p>
+
  <p>&nbsp;&nbsp;&nbsp;&nbsp;上游引物:5’-ATCATCTTGCATATGGCGTCCACCATTGCTGTT-3’(划线部分为Nde i酶切位点)</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;下游引物:5’-TTTCCTTTTGCGGCCGCTTAG-3’(划线部分为Not i酶切位点)</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.1.5 培养基 实验使用的培养基为LB,以配备200ml的量为例,需要如下材料:胰蛋白胨2g,酵母提取物1g,NaCl 2g,加水至200ml。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;实验使用的培养板加入卡那抗性,一配备400ml为例,需要以下材料:胰蛋白胨 4g,酵母提取物 2g,NaCl 4g,Agar琼脂粉6g,卡那霉素 1.2ml</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.实验步骤</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.2.1 PCR扩增 因为目的基因片段的G-C碱基对含量很高,所以PCR扩增时需使用GC Buffer,参照Takara产品目录配200ul体系:GC buffer 100ul,dntp mixture 16ul, 前引物 4ul, 后引物 4ul,DNA模板 4ul, Taq 2ul, H2O 70ul。用60℃-70℃进行梯度扩增,寻找引物合适的退火温度。发现在第六条带最亮,再按照上述配成新的体系在适宜温度下进行PCR扩增,得到加上接头的基因片段</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.2.2 做完PCR之后,因有较多的杂条带,故将所有扩增得到的产物跑胶,将所需片段切胶纯化。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.2.3 进行酶切,分别在目的基因片段和载体pET-28a中加入Not I 和 Nde I 的限制性内切酶。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.2.4 进行连接并设置对照组。实验组:大片段+小片段+T4 DNA Ligase+Buffer</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;对照组:大片段
+
在16℃的环境下连接过夜。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.2.5 使用DNA纯化试剂盒提取连接后产物,转化进TOP-10感受态细胞,涂在配置好的带卡那抗性的培养板上,放在37℃的恒温环境下培养。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.2.6 根据菌落的生长情况,将实验组的细菌进行质粒提取,并再次用上述的两种酶进行酶切后跑胶,如果跑胶后大片段和小片段的位置正确,则连接完成。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.2.7 测序。</p>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;4.3  实验结果
+
 
  </p>
 
  </p>
                              </div>
+
<p>&nbsp;&nbsp;&nbsp;&nbsp;1.1.2 Strain and Plasmid
 +
This experiment uses plasmid pET-28a, and the E. coli is TOP-10 competent cell, provided by TIANGEN Biotech CO., LTD.
 +
</p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;1.1.3 Enzyme and Reagents This experiment uses restriction enzyme provided by NEB; T4 DNA Ligase, TIANprep Mini Plasmid Kit, and TIANquick Midi Purification Kit are provided by Tiangen Biotech CO., LTD.
 +
</p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;1.1.4 PCR Primer</p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1) Lipase:
 +
    According to the sequences and the MCS (multiple cloning sites) to the destination vector of the Lipase, XhoI and NcoI are chosen to be the enzyme cutting cites for the inserting enzyme cutting cites. There form the following primers:
 +
</p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;Sense primer: 5’-AAGCAAGCCCATGGAATTTGTAA-3’ (Underlined proportion is Ncoi enzyme cutting cite)
 +
</p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;Anti-sense primer: 5’-TTTTGTTGCTCGAGTTAATTCG-3’ (Underlined proportion is Xhoi enzyme cutting cite)
 +
</p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
(2) OAH:
 +
  According to the sequence detected by OAH, the primer is synthesised by the Invireogen:</p>
 +
  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sense primer: 5’-ATCATCTTGCATATGGCGTCCACCATTGCTGTT-3’ (Underlined proportion is Ndei enzyme cutting cite)</p>
 +
  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Anti-sense primer: 5’-TTTCCTTTTGCGGCCGCTTAG-3’ (Underlined proportion is Noti enzyme cutting cite)</p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;1.1.5 Substrate Medium</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1) The experiment contains LB substrate media. Take the example of confecting 200mL; the materials needed are 2g of tryptone, 1g of yeast extract, 4g of sodium chloride, and 200mL of water with 1000× ratio of chloramphenicol. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2) The experiment contains LB substrate media. Take the example of confecting 200mL; the materials needed are 2g of tryptone, 1g of yeast extract, 4g of sodium chloride, and 200mL of water with 1000× ratio of Kanamycin Sulfate.</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3) The experiment contains Kanamycin Sulfate substrate media. Take the example of confecting 400mL; the materials needed are 4g of tryptone, 2g of yeast extract, 4g of sodium chloride, 6g AGAR powder and 1.2mL
 +
</p>
 +
 
 +
 
 +
                                </div>
 +
                               
 +
              <div role="tabpanel" class="tab-pane fade" id="f8"> <!-- feature #2 content -->
 +
                                <h4>Procedures in detail</h4>
 +
                                <p>1.2 Procedures of Experiments<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.2.1 PCR Proliferation
 +
</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Due to high content of G-C base-pairs in target gene segments, GC Buffer is required in PCR proliferation. Refer to Takara's protocols to prepare 200μL of system: 100μL of GC Buffer, 16μL of dntp mixture, 4μL of sense primer, 4μL of anti-sense primer, 4μL of DNA templet, 2μL of Taq, and 70μL of H2O. 60°C-70°C is used for Gradient PCR, the sixth bad is the brightest (Figure 9) thus the temperature of such is best for annealing. In new system, PCR is proceeded in that temperature; finally we get the gene segments with gene linkers. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;1.2.2 Gel electrophoresis, purification</p><p>&nbsp;&nbsp;&nbsp;&nbsp;1.2.3 Digestion</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Put NotI and NdeI restriction endonuclease in gene segment and vector pET-28a respectively. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;1.2.4</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linking and setting the groups Experimental group:plasmid after digestion + target gene + T4 DNA Ligase + buffer
 +
Control group: plasmid after digestion *Experiment conducted under 16°C</p><p>&nbsp;&nbsp;&nbsp;&nbsp;1.2.5 </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use DNA purification kit to extract product after linking; transcribe in TOP-10 competent cell, put on Kanamycin Sulfate substrate media and then culture under 37°C. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;1.2.6</p><p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;According to the growth of strains, bacterium plasmid is extracted with digesting with two enzymes above. Recheck the correctness of position and size to assure that it has been linked. </p><p>&nbsp;&nbsp;&nbsp;&nbsp;1.2.7 Sequencing by Sangon Shanghai, China</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;1.2.8 Functional Test of Lipase</p>
 +
<p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1) Fasten the AGAR Plane: 2.5g of AGAR powder, 6.25mL of tributyrin, 18.75mL 3g/dL of polyvinyl alcohol, 2.5mL 1g/dL Victorian Blue, 225mL of H2O. Heat and resolve the AGAR powder, pure into substrate media, chilling.
 +
IPTG solution: weigh 1.2g of IPTG and put it into centrifugal tubes. Add 40mL of H2O, resolve, then to the constant volume of 50mL. Use 0.22μm strainer to filter out the other bacteria, then put into refrigerator of -20°C. </p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2) Transcribe the lipase enzyme plasmid into BL-21 competent cell of E. coli, culture. </p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3) Pick bacteria into small colonies from growing strains on the cultivation board, which has been configured with a medium, Kanamycin, and join the 0.1 mmol/L IPTG solution to carry on the induction, six hours later to take on the culture medium centrifugal supernatant, get with lipase protein nutrient solution.</p>
 +
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(4) From fixed AGAR plate with holes, pick bacteria. Burn alcohol burner against the bottom of AGAR to assure it is stick. Put 30μL into the holes, lie horizontally in 30°C incubator for a while and then observe the change of colour. </p>
 +
 
 +
         
 +
                                </div>
 
                        
 
                        
 
                         </div> <!-- end tab content wrapper -->
 
                         </div> <!-- end tab content wrapper -->
Line 377: Line 11,881:
 
                 </div> <!-- end row -->
 
                 </div> <!-- end row -->
 
             </div> <!-- end container -->
 
             </div> <!-- end container -->
</div>
+
            </div>
        </div>
+
            </div>
 
             </div>
 
             </div>
  
Line 409: Line 11,913:
 
                              
 
                              
 
                             <p><h10>Zhengdong  Chen</h10></p>
 
                             <p><h10>Zhengdong  Chen</h10></p>
                             <a title="Freedom Project #1" href="img/portfolio/dongdong.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/dongdong.png">
+
                             <a title="Team Member #1" href="cmxdongdong.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxdongdong.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                              
 
                              
 
                         </div><!-- End Hover Description -->
 
                         </div><!-- End Hover Description -->
                             <img src="img/portfolio/01.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt01.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 424: Line 11,928:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                               <p><h10>Yue Wu</h10></p>
 
                               <p><h10>Yue Wu</h10></p>
                               <a title="Freedom Project #1" href="img/portfolio/wuyue.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/wuyue.png">
+
                               <a title="Team Member #2" href="cmxwuyue.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxwuyue.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/02.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt02.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 438: Line 11,942:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                             <p><h10>Shuyang Zhou</h10></p>
 
                             <p><h10>Shuyang Zhou</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/shuyangzhou.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/shuyangzhou.png">
+
                                 <a title="Team Member #3" href="cmxshuyangzhou.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxshuyangzhou.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                              
 
                              
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/03.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt03.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 453: Line 11,957:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                             <p><h10>Haobo Shao</h10></p>
 
                             <p><h10>Haobo Shao</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/haoboshao.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/haoboshao.png">
+
                                 <a title="Team Member #4" href="cmxhaoboshao.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxhaoboshao.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                                
 
                                
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/04.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt04.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 468: Line 11,972:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                             <p><h10>Yunfeng Guo</h10></p>
 
                             <p><h10>Yunfeng Guo</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/05@2x.jpg" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/05@2x.jpg">
+
                                 <a title="Team Member #5" href="cmxyunfengguo.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxyunfengguo.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                              
 
                              
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/05.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt05.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 483: Line 11,987:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                             <p><h10>Minxing Chen</h10></p>
 
                             <p><h10>Minxing Chen</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/minxingchen.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/minxingchen.png">
+
                                 <a title="Team Member #6" href="cmxminxingchen.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxminxingchen.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                                  
 
                                  
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/06.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt06.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 498: Line 12,002:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                           <p> <h10>Jingcheng Shi</h10></p>
 
                           <p> <h10>Jingcheng Shi</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/jingchengshi.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/0jingchengshi.png">
+
                                 <a title="Team Member #7" href="cmxjingchengshi.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxjingchengshi.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                                  
 
                                  
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/07.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt07.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 513: Line 12,017:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                             <p><h10>Juncheng Luo</h10></p>
 
                             <p><h10>Juncheng Luo</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/junchengluo.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/junchengluo.png">
+
                                 <a title="Team Member #8" href="cmxjunchengluo.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxjunchengluo.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                              
 
                              
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/08.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt08.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>  
 
                         </div>  
 
                     </div>
 
                     </div>
Line 528: Line 12,032:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                           <p> <h10>Wei He</h10></p>
 
                           <p> <h10>Wei He</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/weihe.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/weihe.png">
+
                                 <a title="Team Member #9" href="cmxweihe.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxweihe.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                                  
 
                                  
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/10.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt10.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 543: Line 12,047:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                           <p> <h10>Yuning Gu</h10></p>
 
                           <p> <h10>Yuning Gu</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/07@2x.jpg" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/07@2x.jpg">
+
                                 <a title="Team Member #10" href="cmxyuninggu.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxyuninggu.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                                  
 
                                  
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/11.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt11.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 558: Line 12,062:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                           <p> <h10>Xiaomei Tang</h10></p>
 
                           <p> <h10>Xiaomei Tang</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/07@2x.jpg" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/07@2x.jpg">
+
                                 <a title="Team Member #11" href="cmxxiaomeitang.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxxiaomeitang.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                                  
 
                                  
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/07.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt13.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 573: Line 12,077:
 
                             <div class="hover-text off">
 
                             <div class="hover-text off">
 
                           <p> <h10>Jie Zheng</h10></p>
 
                           <p> <h10>Jie Zheng</h10></p>
                                 <a title="Freedom Project #1" href="img/portfolio/07@2x.jpg" data-lightbox-gallery="gallery1" data-lightbox-hidpi="img/portfolio/07@2x.jpg">
+
                                 <a title="Team Member #12" href="cmxjiezheng.png" data-lightbox-gallery="gallery1" data-lightbox-hidpi="cmxjiezheng.png">
 
                                     <i class="fa fa-expand"></i>
 
                                     <i class="fa fa-expand"></i>
 
                                 </a>
 
                                 </a>
 
                                  
 
                                  
 
                             </div>
 
                             </div>
                             <img src="img/portfolio/07.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
+
                             <img src="h14zcmxt14.jpg" class="img-responsive" alt="Image"> <!-- Portfolio Image -->
 
                         </div>
 
                         </div>
 
                     </div>
 
                     </div>
Line 688: Line 12,192:
  
 
     <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
 
     <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
+
     <script type="text/javascript">/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
    <script type="text/javascript" src="js/jquery.1.11.1.js"></script>
+
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
    <!-- Include all compiled plugins (below), or include individual files as needed -->
+
return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)
    <script type="text/javascript" src="js/bootstrap.js"></script>
+
}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
 +
</script>
 +
<script type="text/javascript">/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
 +
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
 +
if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
 +
},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});</script>
 +
<script type=>/*!
 +
* Bootstrap v3.3.2 (http://getbootstrap.com)
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
*/
  
    <script type="text/javascript" src="js/owl.carousel.js"></script><!-- Owl Carousel Plugin -->
+
if (typeof jQuery === 'undefined') {
 +
  throw new Error('Bootstrap\'s JavaScript requires jQuery')
 +
}
  
    <script type="text/javascript" src="js/SmoothScroll.js"></script>
+
+function ($) {
 +
  'use strict';
 +
  var version = $.fn.jquery.split(' ')[0].split('.')
 +
  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
 +
    throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
 +
  }
 +
}(jQuery);
  
    <!-- Google Map -->
+
/* ========================================================================
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyASm3CwaK9qtcZEWYa-iQwHaGi3gcosAJc&amp;sensor=false"></script>
+
* Bootstrap: transition.js v3.3.2
    <script type="text/javascript" src="js/map.js"></script>
+
* http://getbootstrap.com/javascript/#transitions
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
  
    <!-- Parallax Effects -->
 
    <script type="text/javascript" src="js/skrollr.js"></script>
 
    <script type="text/javascript" src="js/imagesloaded.js"></script>
 
  
 +
+function ($) {
 +
  'use strict';
 +
 +
  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
 +
  // ============================================================
 +
 +
  function transitionEnd() {
 +
    var el = document.createElement('bootstrap')
 +
 +
    var transEndEventNames = {
 +
      WebkitTransition : 'webkitTransitionEnd',
 +
      MozTransition    : 'transitionend',
 +
      OTransition      : 'oTransitionEnd otransitionend',
 +
      transition      : 'transitionend'
 +
    }
 +
 +
    for (var name in transEndEventNames) {
 +
      if (el.style[name] !== undefined) {
 +
        return { end: transEndEventNames[name] }
 +
      }
 +
    }
 +
 +
    return false // explicit for ie8 (  ._.)
 +
  }
 +
 +
  // http://blog.alexmaccaw.com/css-transitions
 +
  $.fn.emulateTransitionEnd = function (duration) {
 +
    var called = false
 +
    var $el = this
 +
    $(this).one('bsTransitionEnd', function () { called = true })
 +
    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
 +
    setTimeout(callback, duration)
 +
    return this
 +
  }
 +
 +
  $(function () {
 +
    $.support.transition = transitionEnd()
 +
 +
    if (!$.support.transition) return
 +
 +
    $.event.special.bsTransitionEnd = {
 +
      bindType: $.support.transition.end,
 +
      delegateType: $.support.transition.end,
 +
      handle: function (e) {
 +
        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
 +
      }
 +
    }
 +
  })
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: alert.js v3.3.2
 +
* http://getbootstrap.com/javascript/#alerts
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // ALERT CLASS DEFINITION
 +
  // ======================
 +
 +
  var dismiss = '[data-dismiss="alert"]'
 +
  var Alert  = function (el) {
 +
    $(el).on('click', dismiss, this.close)
 +
  }
 +
 +
  Alert.VERSION = '3.3.2'
 +
 +
  Alert.TRANSITION_DURATION = 150
 +
 +
  Alert.prototype.close = function (e) {
 +
    var $this    = $(this)
 +
    var selector = $this.attr('data-target')
 +
 +
    if (!selector) {
 +
      selector = $this.attr('href')
 +
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 +
    }
 +
 +
    var $parent = $(selector)
 +
 +
    if (e) e.preventDefault()
 +
 +
    if (!$parent.length) {
 +
      $parent = $this.closest('.alert')
 +
    }
 +
 +
    $parent.trigger(e = $.Event('close.bs.alert'))
 +
 +
    if (e.isDefaultPrevented()) return
 +
 +
    $parent.removeClass('in')
 +
 +
    function removeElement() {
 +
      // detach from parent, fire event then clean up data
 +
      $parent.detach().trigger('closed.bs.alert').remove()
 +
    }
 +
 +
    $.support.transition && $parent.hasClass('fade') ?
 +
      $parent
 +
        .one('bsTransitionEnd', removeElement)
 +
        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
 +
      removeElement()
 +
  }
 +
 +
 +
  // ALERT PLUGIN DEFINITION
 +
  // =======================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this = $(this)
 +
      var data  = $this.data('bs.alert')
 +
 +
      if (!data) $this.data('bs.alert', (data = new Alert(this)))
 +
      if (typeof option == 'string') data[option].call($this)
 +
    })
 +
  }
 +
 +
  var old = $.fn.alert
 +
 +
  $.fn.alert            = Plugin
 +
  $.fn.alert.Constructor = Alert
 +
 +
 +
  // ALERT NO CONFLICT
 +
  // =================
 +
 +
  $.fn.alert.noConflict = function () {
 +
    $.fn.alert = old
 +
    return this
 +
  }
 +
 +
 +
  // ALERT DATA-API
 +
  // ==============
 +
 +
  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: button.js v3.3.2
 +
* http://getbootstrap.com/javascript/#buttons
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // BUTTON PUBLIC CLASS DEFINITION
 +
  // ==============================
 +
 +
  var Button = function (element, options) {
 +
    this.$element  = $(element)
 +
    this.options  = $.extend({}, Button.DEFAULTS, options)
 +
    this.isLoading = false
 +
  }
 +
 +
  Button.VERSION  = '3.3.2'
 +
 +
  Button.DEFAULTS = {
 +
    loadingText: 'loading...'
 +
  }
 +
 +
  Button.prototype.setState = function (state) {
 +
    var d    = 'disabled'
 +
    var $el  = this.$element
 +
    var val  = $el.is('input') ? 'val' : 'html'
 +
    var data = $el.data()
 +
 +
    state = state + 'Text'
 +
 +
    if (data.resetText == null) $el.data('resetText', $el[val]())
 +
 +
    // push to event loop to allow forms to submit
 +
    setTimeout($.proxy(function () {
 +
      $el[val](data[state] == null ? this.options[state] : data[state])
 +
 +
      if (state == 'loadingText') {
 +
        this.isLoading = true
 +
        $el.addClass(d).attr(d, d)
 +
      } else if (this.isLoading) {
 +
        this.isLoading = false
 +
        $el.removeClass(d).removeAttr(d)
 +
      }
 +
    }, this), 0)
 +
  }
 +
 +
  Button.prototype.toggle = function () {
 +
    var changed = true
 +
    var $parent = this.$element.closest('[data-toggle="buttons"]')
 +
 +
    if ($parent.length) {
 +
      var $input = this.$element.find('input')
 +
      if ($input.prop('type') == 'radio') {
 +
        if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
 +
        else $parent.find('.active').removeClass('active')
 +
      }
 +
      if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
 +
    } else {
 +
      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
 +
    }
 +
 +
    if (changed) this.$element.toggleClass('active')
 +
  }
 +
 +
 +
  // BUTTON PLUGIN DEFINITION
 +
  // ========================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.button')
 +
      var options = typeof option == 'object' && option
 +
 +
      if (!data) $this.data('bs.button', (data = new Button(this, options)))
 +
 +
      if (option == 'toggle') data.toggle()
 +
      else if (option) data.setState(option)
 +
    })
 +
  }
 +
 +
  var old = $.fn.button
 +
 +
  $.fn.button            = Plugin
 +
  $.fn.button.Constructor = Button
 +
 +
 +
  // BUTTON NO CONFLICT
 +
  // ==================
 +
 +
  $.fn.button.noConflict = function () {
 +
    $.fn.button = old
 +
    return this
 +
  }
 +
 +
 +
  // BUTTON DATA-API
 +
  // ===============
 +
 +
  $(document)
 +
    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 +
      var $btn = $(e.target)
 +
      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
 +
      Plugin.call($btn, 'toggle')
 +
      e.preventDefault()
 +
    })
 +
    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 +
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
 +
    })
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: carousel.js v3.3.2
 +
* http://getbootstrap.com/javascript/#carousel
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // CAROUSEL CLASS DEFINITION
 +
  // =========================
 +
 +
  var Carousel = function (element, options) {
 +
    this.$element    = $(element)
 +
    this.$indicators = this.$element.find('.carousel-indicators')
 +
    this.options    = options
 +
    this.paused      =
 +
    this.sliding    =
 +
    this.interval    =
 +
    this.$active    =
 +
    this.$items      = null
 +
 +
    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
 +
 +
    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
 +
      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
 +
      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
 +
  }
 +
 +
  Carousel.VERSION  = '3.3.2'
 +
 +
  Carousel.TRANSITION_DURATION = 600
 +
 +
  Carousel.DEFAULTS = {
 +
    interval: 5000,
 +
    pause: 'hover',
 +
    wrap: true,
 +
    keyboard: true
 +
  }
 +
 +
  Carousel.prototype.keydown = function (e) {
 +
    if (/input|textarea/i.test(e.target.tagName)) return
 +
    switch (e.which) {
 +
      case 37: this.prev(); break
 +
      case 39: this.next(); break
 +
      default: return
 +
    }
 +
 +
    e.preventDefault()
 +
  }
 +
 +
  Carousel.prototype.cycle = function (e) {
 +
    e || (this.paused = false)
 +
 +
    this.interval && clearInterval(this.interval)
 +
 +
    this.options.interval
 +
      && !this.paused
 +
      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
 +
 +
    return this
 +
  }
 +
 +
  Carousel.prototype.getItemIndex = function (item) {
 +
    this.$items = item.parent().children('.item')
 +
    return this.$items.index(item || this.$active)
 +
  }
 +
 +
  Carousel.prototype.getItemForDirection = function (direction, active) {
 +
    var activeIndex = this.getItemIndex(active)
 +
    var willWrap = (direction == 'prev' && activeIndex === 0)
 +
                || (direction == 'next' && activeIndex == (this.$items.length - 1))
 +
    if (willWrap && !this.options.wrap) return active
 +
    var delta = direction == 'prev' ? -1 : 1
 +
    var itemIndex = (activeIndex + delta) % this.$items.length
 +
    return this.$items.eq(itemIndex)
 +
  }
 +
 +
  Carousel.prototype.to = function (pos) {
 +
    var that        = this
 +
    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
 +
 +
    if (pos > (this.$items.length - 1) || pos < 0) return
 +
 +
    if (this.sliding)      return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
 +
    if (activeIndex == pos) return this.pause().cycle()
 +
 +
    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
 +
  }
 +
 +
  Carousel.prototype.pause = function (e) {
 +
    e || (this.paused = true)
 +
 +
    if (this.$element.find('.next, .prev').length && $.support.transition) {
 +
      this.$element.trigger($.support.transition.end)
 +
      this.cycle(true)
 +
    }
 +
 +
    this.interval = clearInterval(this.interval)
 +
 +
    return this
 +
  }
 +
 +
  Carousel.prototype.next = function () {
 +
    if (this.sliding) return
 +
    return this.slide('next')
 +
  }
 +
 +
  Carousel.prototype.prev = function () {
 +
    if (this.sliding) return
 +
    return this.slide('prev')
 +
  }
 +
 +
  Carousel.prototype.slide = function (type, next) {
 +
    var $active  = this.$element.find('.item.active')
 +
    var $next    = next || this.getItemForDirection(type, $active)
 +
    var isCycling = this.interval
 +
    var direction = type == 'next' ? 'left' : 'right'
 +
    var that      = this
 +
 +
    if ($next.hasClass('active')) return (this.sliding = false)
 +
 +
    var relatedTarget = $next[0]
 +
    var slideEvent = $.Event('slide.bs.carousel', {
 +
      relatedTarget: relatedTarget,
 +
      direction: direction
 +
    })
 +
    this.$element.trigger(slideEvent)
 +
    if (slideEvent.isDefaultPrevented()) return
 +
 +
    this.sliding = true
 +
 +
    isCycling && this.pause()
 +
 +
    if (this.$indicators.length) {
 +
      this.$indicators.find('.active').removeClass('active')
 +
      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
 +
      $nextIndicator && $nextIndicator.addClass('active')
 +
    }
 +
 +
    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
 +
    if ($.support.transition && this.$element.hasClass('slide')) {
 +
      $next.addClass(type)
 +
      $next[0].offsetWidth // force reflow
 +
      $active.addClass(direction)
 +
      $next.addClass(direction)
 +
      $active
 +
        .one('bsTransitionEnd', function () {
 +
          $next.removeClass([type, direction].join(' ')).addClass('active')
 +
          $active.removeClass(['active', direction].join(' '))
 +
          that.sliding = false
 +
          setTimeout(function () {
 +
            that.$element.trigger(slidEvent)
 +
          }, 0)
 +
        })
 +
        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
 +
    } else {
 +
      $active.removeClass('active')
 +
      $next.addClass('active')
 +
      this.sliding = false
 +
      this.$element.trigger(slidEvent)
 +
    }
 +
 +
    isCycling && this.cycle()
 +
 +
    return this
 +
  }
 +
 +
 +
  // CAROUSEL PLUGIN DEFINITION
 +
  // ==========================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.carousel')
 +
      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
 +
      var action  = typeof option == 'string' ? option : options.slide
 +
 +
      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
 +
      if (typeof option == 'number') data.to(option)
 +
      else if (action) data[action]()
 +
      else if (options.interval) data.pause().cycle()
 +
    })
 +
  }
 +
 +
  var old = $.fn.carousel
 +
 +
  $.fn.carousel            = Plugin
 +
  $.fn.carousel.Constructor = Carousel
 +
 +
 +
  // CAROUSEL NO CONFLICT
 +
  // ====================
 +
 +
  $.fn.carousel.noConflict = function () {
 +
    $.fn.carousel = old
 +
    return this
 +
  }
 +
 +
 +
  // CAROUSEL DATA-API
 +
  // =================
 +
 +
  var clickHandler = function (e) {
 +
    var href
 +
    var $this  = $(this)
 +
    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
 +
    if (!$target.hasClass('carousel')) return
 +
    var options = $.extend({}, $target.data(), $this.data())
 +
    var slideIndex = $this.attr('data-slide-to')
 +
    if (slideIndex) options.interval = false
 +
 +
    Plugin.call($target, options)
 +
 +
    if (slideIndex) {
 +
      $target.data('bs.carousel').to(slideIndex)
 +
    }
 +
 +
    e.preventDefault()
 +
  }
 +
 +
  $(document)
 +
    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
 +
    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
 +
 +
  $(window).on('load', function () {
 +
    $('[data-ride="carousel"]').each(function () {
 +
      var $carousel = $(this)
 +
      Plugin.call($carousel, $carousel.data())
 +
    })
 +
  })
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: collapse.js v3.3.2
 +
* http://getbootstrap.com/javascript/#collapse
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // COLLAPSE PUBLIC CLASS DEFINITION
 +
  // ================================
 +
 +
  var Collapse = function (element, options) {
 +
    this.$element      = $(element)
 +
    this.options      = $.extend({}, Collapse.DEFAULTS, options)
 +
    this.$trigger      = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
 +
    this.transitioning = null
 +
 +
    if (this.options.parent) {
 +
      this.$parent = this.getParent()
 +
    } else {
 +
      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
 +
    }
 +
 +
    if (this.options.toggle) this.toggle()
 +
  }
 +
 +
  Collapse.VERSION  = '3.3.2'
 +
 +
  Collapse.TRANSITION_DURATION = 350
 +
 +
  Collapse.DEFAULTS = {
 +
    toggle: true,
 +
    trigger: '[data-toggle="collapse"]'
 +
  }
 +
 +
  Collapse.prototype.dimension = function () {
 +
    var hasWidth = this.$element.hasClass('width')
 +
    return hasWidth ? 'width' : 'height'
 +
  }
 +
 +
  Collapse.prototype.show = function () {
 +
    if (this.transitioning || this.$element.hasClass('in')) return
 +
 +
    var activesData
 +
    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
 +
 +
    if (actives && actives.length) {
 +
      activesData = actives.data('bs.collapse')
 +
      if (activesData && activesData.transitioning) return
 +
    }
 +
 +
    var startEvent = $.Event('show.bs.collapse')
 +
    this.$element.trigger(startEvent)
 +
    if (startEvent.isDefaultPrevented()) return
 +
 +
    if (actives && actives.length) {
 +
      Plugin.call(actives, 'hide')
 +
      activesData || actives.data('bs.collapse', null)
 +
    }
 +
 +
    var dimension = this.dimension()
 +
 +
    this.$element
 +
      .removeClass('collapse')
 +
      .addClass('collapsing')[dimension](0)
 +
      .attr('aria-expanded', true)
 +
 +
    this.$trigger
 +
      .removeClass('collapsed')
 +
      .attr('aria-expanded', true)
 +
 +
    this.transitioning = 1
 +
 +
    var complete = function () {
 +
      this.$element
 +
        .removeClass('collapsing')
 +
        .addClass('collapse in')[dimension]('')
 +
      this.transitioning = 0
 +
      this.$element
 +
        .trigger('shown.bs.collapse')
 +
    }
 +
 +
    if (!$.support.transition) return complete.call(this)
 +
 +
    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
 +
 +
    this.$element
 +
      .one('bsTransitionEnd', $.proxy(complete, this))
 +
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
 +
  }
 +
 +
  Collapse.prototype.hide = function () {
 +
    if (this.transitioning || !this.$element.hasClass('in')) return
 +
 +
    var startEvent = $.Event('hide.bs.collapse')
 +
    this.$element.trigger(startEvent)
 +
    if (startEvent.isDefaultPrevented()) return
 +
 +
    var dimension = this.dimension()
 +
 +
    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
 +
 +
    this.$element
 +
      .addClass('collapsing')
 +
      .removeClass('collapse in')
 +
      .attr('aria-expanded', false)
 +
 +
    this.$trigger
 +
      .addClass('collapsed')
 +
      .attr('aria-expanded', false)
 +
 +
    this.transitioning = 1
 +
 +
    var complete = function () {
 +
      this.transitioning = 0
 +
      this.$element
 +
        .removeClass('collapsing')
 +
        .addClass('collapse')
 +
        .trigger('hidden.bs.collapse')
 +
    }
 +
 +
    if (!$.support.transition) return complete.call(this)
 +
 +
    this.$element
 +
      [dimension](0)
 +
      .one('bsTransitionEnd', $.proxy(complete, this))
 +
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
 +
  }
 +
 +
  Collapse.prototype.toggle = function () {
 +
    this[this.$element.hasClass('in') ? 'hide' : 'show']()
 +
  }
 +
 +
  Collapse.prototype.getParent = function () {
 +
    return $(this.options.parent)
 +
      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
 +
      .each($.proxy(function (i, element) {
 +
        var $element = $(element)
 +
        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
 +
      }, this))
 +
      .end()
 +
  }
 +
 +
  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
 +
    var isOpen = $element.hasClass('in')
 +
 +
    $element.attr('aria-expanded', isOpen)
 +
    $trigger
 +
      .toggleClass('collapsed', !isOpen)
 +
      .attr('aria-expanded', isOpen)
 +
  }
 +
 +
  function getTargetFromTrigger($trigger) {
 +
    var href
 +
    var target = $trigger.attr('data-target')
 +
      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
 +
 +
    return $(target)
 +
  }
 +
 +
 +
  // COLLAPSE PLUGIN DEFINITION
 +
  // ==========================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.collapse')
 +
      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
 +
 +
      if (!data && options.toggle && option == 'show') options.toggle = false
 +
      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
 +
      if (typeof option == 'string') data[option]()
 +
    })
 +
  }
 +
 +
  var old = $.fn.collapse
 +
 +
  $.fn.collapse            = Plugin
 +
  $.fn.collapse.Constructor = Collapse
 +
 +
 +
  // COLLAPSE NO CONFLICT
 +
  // ====================
 +
 +
  $.fn.collapse.noConflict = function () {
 +
    $.fn.collapse = old
 +
    return this
 +
  }
 +
 +
 +
  // COLLAPSE DATA-API
 +
  // =================
 +
 +
  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
 +
    var $this  = $(this)
 +
 +
    if (!$this.attr('data-target')) e.preventDefault()
 +
 +
    var $target = getTargetFromTrigger($this)
 +
    var data    = $target.data('bs.collapse')
 +
    var option  = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
 +
 +
    Plugin.call($target, option)
 +
  })
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: dropdown.js v3.3.2
 +
* http://getbootstrap.com/javascript/#dropdowns
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // DROPDOWN CLASS DEFINITION
 +
  // =========================
 +
 +
  var backdrop = '.dropdown-backdrop'
 +
  var toggle  = '[data-toggle="dropdown"]'
 +
  var Dropdown = function (element) {
 +
    $(element).on('click.bs.dropdown', this.toggle)
 +
  }
 +
 +
  Dropdown.VERSION = '3.3.2'
 +
 +
  Dropdown.prototype.toggle = function (e) {
 +
    var $this = $(this)
 +
 +
    if ($this.is('.disabled, :disabled')) return
 +
 +
    var $parent  = getParent($this)
 +
    var isActive = $parent.hasClass('open')
 +
 +
    clearMenus()
 +
 +
    if (!isActive) {
 +
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
 +
        // if mobile we use a backdrop because click events don't delegate
 +
        $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
 +
      }
 +
 +
      var relatedTarget = { relatedTarget: this }
 +
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
 +
 +
      if (e.isDefaultPrevented()) return
 +
 +
      $this
 +
        .trigger('focus')
 +
        .attr('aria-expanded', 'true')
 +
 +
      $parent
 +
        .toggleClass('open')
 +
        .trigger('shown.bs.dropdown', relatedTarget)
 +
    }
 +
 +
    return false
 +
  }
 +
 +
  Dropdown.prototype.keydown = function (e) {
 +
    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
 +
 +
    var $this = $(this)
 +
 +
    e.preventDefault()
 +
    e.stopPropagation()
 +
 +
    if ($this.is('.disabled, :disabled')) return
 +
 +
    var $parent  = getParent($this)
 +
    var isActive = $parent.hasClass('open')
 +
 +
    if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
 +
      if (e.which == 27) $parent.find(toggle).trigger('focus')
 +
      return $this.trigger('click')
 +
    }
 +
 +
    var desc = ' li:not(.divider):visible a'
 +
    var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
 +
 +
    if (!$items.length) return
 +
 +
    var index = $items.index(e.target)
 +
 +
    if (e.which == 38 && index > 0)                index--                        // up
 +
    if (e.which == 40 && index < $items.length - 1) index++                        // down
 +
    if (!~index)                                      index = 0
 +
 +
    $items.eq(index).trigger('focus')
 +
  }
 +
 +
  function clearMenus(e) {
 +
    if (e && e.which === 3) return
 +
    $(backdrop).remove()
 +
    $(toggle).each(function () {
 +
      var $this        = $(this)
 +
      var $parent      = getParent($this)
 +
      var relatedTarget = { relatedTarget: this }
 +
 +
      if (!$parent.hasClass('open')) return
 +
 +
      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
 +
 +
      if (e.isDefaultPrevented()) return
 +
 +
      $this.attr('aria-expanded', 'false')
 +
      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
 +
    })
 +
  }
 +
 +
  function getParent($this) {
 +
    var selector = $this.attr('data-target')
 +
 +
    if (!selector) {
 +
      selector = $this.attr('href')
 +
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 +
    }
 +
 +
    var $parent = selector && $(selector)
 +
 +
    return $parent && $parent.length ? $parent : $this.parent()
 +
  }
 +
 +
 +
  // DROPDOWN PLUGIN DEFINITION
 +
  // ==========================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this = $(this)
 +
      var data  = $this.data('bs.dropdown')
 +
 +
      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
 +
      if (typeof option == 'string') data[option].call($this)
 +
    })
 +
  }
 +
 +
  var old = $.fn.dropdown
 +
 +
  $.fn.dropdown            = Plugin
 +
  $.fn.dropdown.Constructor = Dropdown
 +
 +
 +
  // DROPDOWN NO CONFLICT
 +
  // ====================
 +
 +
  $.fn.dropdown.noConflict = function () {
 +
    $.fn.dropdown = old
 +
    return this
 +
  }
 +
 +
 +
  // APPLY TO STANDARD DROPDOWN ELEMENTS
 +
  // ===================================
 +
 +
  $(document)
 +
    .on('click.bs.dropdown.data-api', clearMenus)
 +
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
 +
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
 +
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
 +
    .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
 +
    .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: modal.js v3.3.2
 +
* http://getbootstrap.com/javascript/#modals
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // MODAL CLASS DEFINITION
 +
  // ======================
 +
 +
  var Modal = function (element, options) {
 +
    this.options        = options
 +
    this.$body          = $(document.body)
 +
    this.$element      = $(element)
 +
    this.$backdrop      =
 +
    this.isShown        = null
 +
    this.scrollbarWidth = 0
 +
 +
    if (this.options.remote) {
 +
      this.$element
 +
        .find('.modal-content')
 +
        .load(this.options.remote, $.proxy(function () {
 +
          this.$element.trigger('loaded.bs.modal')
 +
        }, this))
 +
    }
 +
  }
 +
 +
  Modal.VERSION  = '3.3.2'
 +
 +
  Modal.TRANSITION_DURATION = 300
 +
  Modal.BACKDROP_TRANSITION_DURATION = 150
 +
 +
  Modal.DEFAULTS = {
 +
    backdrop: true,
 +
    keyboard: true,
 +
    show: true
 +
  }
 +
 +
  Modal.prototype.toggle = function (_relatedTarget) {
 +
    return this.isShown ? this.hide() : this.show(_relatedTarget)
 +
  }
 +
 +
  Modal.prototype.show = function (_relatedTarget) {
 +
    var that = this
 +
    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
 +
 +
    this.$element.trigger(e)
 +
 +
    if (this.isShown || e.isDefaultPrevented()) return
 +
 +
    this.isShown = true
 +
 +
    this.checkScrollbar()
 +
    this.setScrollbar()
 +
    this.$body.addClass('modal-open')
 +
 +
    this.escape()
 +
    this.resize()
 +
 +
    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
 +
 +
    this.backdrop(function () {
 +
      var transition = $.support.transition && that.$element.hasClass('fade')
 +
 +
      if (!that.$element.parent().length) {
 +
        that.$element.appendTo(that.$body) // don't move modals dom position
 +
      }
 +
 +
      that.$element
 +
        .show()
 +
        .scrollTop(0)
 +
 +
      if (that.options.backdrop) that.adjustBackdrop()
 +
      that.adjustDialog()
 +
 +
      if (transition) {
 +
        that.$element[0].offsetWidth // force reflow
 +
      }
 +
 +
      that.$element
 +
        .addClass('in')
 +
        .attr('aria-hidden', false)
 +
 +
      that.enforceFocus()
 +
 +
      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
 +
 +
      transition ?
 +
        that.$element.find('.modal-dialog') // wait for modal to slide in
 +
          .one('bsTransitionEnd', function () {
 +
            that.$element.trigger('focus').trigger(e)
 +
          })
 +
          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 +
        that.$element.trigger('focus').trigger(e)
 +
    })
 +
  }
 +
 +
  Modal.prototype.hide = function (e) {
 +
    if (e) e.preventDefault()
 +
 +
    e = $.Event('hide.bs.modal')
 +
 +
    this.$element.trigger(e)
 +
 +
    if (!this.isShown || e.isDefaultPrevented()) return
 +
 +
    this.isShown = false
 +
 +
    this.escape()
 +
    this.resize()
 +
 +
    $(document).off('focusin.bs.modal')
 +
 +
    this.$element
 +
      .removeClass('in')
 +
      .attr('aria-hidden', true)
 +
      .off('click.dismiss.bs.modal')
 +
 +
    $.support.transition && this.$element.hasClass('fade') ?
 +
      this.$element
 +
        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
 +
        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 +
      this.hideModal()
 +
  }
 +
 +
  Modal.prototype.enforceFocus = function () {
 +
    $(document)
 +
      .off('focusin.bs.modal') // guard against infinite focus loop
 +
      .on('focusin.bs.modal', $.proxy(function (e) {
 +
        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
 +
          this.$element.trigger('focus')
 +
        }
 +
      }, this))
 +
  }
 +
 +
  Modal.prototype.escape = function () {
 +
    if (this.isShown && this.options.keyboard) {
 +
      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
 +
        e.which == 27 && this.hide()
 +
      }, this))
 +
    } else if (!this.isShown) {
 +
      this.$element.off('keydown.dismiss.bs.modal')
 +
    }
 +
  }
 +
 +
  Modal.prototype.resize = function () {
 +
    if (this.isShown) {
 +
      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
 +
    } else {
 +
      $(window).off('resize.bs.modal')
 +
    }
 +
  }
 +
 +
  Modal.prototype.hideModal = function () {
 +
    var that = this
 +
    this.$element.hide()
 +
    this.backdrop(function () {
 +
      that.$body.removeClass('modal-open')
 +
      that.resetAdjustments()
 +
      that.resetScrollbar()
 +
      that.$element.trigger('hidden.bs.modal')
 +
    })
 +
  }
 +
 +
  Modal.prototype.removeBackdrop = function () {
 +
    this.$backdrop && this.$backdrop.remove()
 +
    this.$backdrop = null
 +
  }
 +
 +
  Modal.prototype.backdrop = function (callback) {
 +
    var that = this
 +
    var animate = this.$element.hasClass('fade') ? 'fade' : ''
 +
 +
    if (this.isShown && this.options.backdrop) {
 +
      var doAnimate = $.support.transition && animate
 +
 +
      this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
 +
        .prependTo(this.$element)
 +
        .on('click.dismiss.bs.modal', $.proxy(function (e) {
 +
          if (e.target !== e.currentTarget) return
 +
          this.options.backdrop == 'static'
 +
            ? this.$element[0].focus.call(this.$element[0])
 +
            : this.hide.call(this)
 +
        }, this))
 +
 +
      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 +
 +
      this.$backdrop.addClass('in')
 +
 +
      if (!callback) return
 +
 +
      doAnimate ?
 +
        this.$backdrop
 +
          .one('bsTransitionEnd', callback)
 +
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 +
        callback()
 +
 +
    } else if (!this.isShown && this.$backdrop) {
 +
      this.$backdrop.removeClass('in')
 +
 +
      var callbackRemove = function () {
 +
        that.removeBackdrop()
 +
        callback && callback()
 +
      }
 +
      $.support.transition && this.$element.hasClass('fade') ?
 +
        this.$backdrop
 +
          .one('bsTransitionEnd', callbackRemove)
 +
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 +
        callbackRemove()
 +
 +
    } else if (callback) {
 +
      callback()
 +
    }
 +
  }
 +
 +
  // these following methods are used to handle overflowing modals
 +
 +
  Modal.prototype.handleUpdate = function () {
 +
    if (this.options.backdrop) this.adjustBackdrop()
 +
    this.adjustDialog()
 +
  }
 +
 +
  Modal.prototype.adjustBackdrop = function () {
 +
    this.$backdrop
 +
      .css('height', 0)
 +
      .css('height', this.$element[0].scrollHeight)
 +
  }
 +
 +
  Modal.prototype.adjustDialog = function () {
 +
    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
 +
 +
    this.$element.css({
 +
      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
 +
      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
 +
    })
 +
  }
 +
 +
  Modal.prototype.resetAdjustments = function () {
 +
    this.$element.css({
 +
      paddingLeft: '',
 +
      paddingRight: ''
 +
    })
 +
  }
 +
 +
  Modal.prototype.checkScrollbar = function () {
 +
    this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
 +
    this.scrollbarWidth = this.measureScrollbar()
 +
  }
 +
 +
  Modal.prototype.setScrollbar = function () {
 +
    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
 +
    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
 +
  }
 +
 +
  Modal.prototype.resetScrollbar = function () {
 +
    this.$body.css('padding-right', '')
 +
  }
 +
 +
  Modal.prototype.measureScrollbar = function () { // thx walsh
 +
    var scrollDiv = document.createElement('div')
 +
    scrollDiv.className = 'modal-scrollbar-measure'
 +
    this.$body.append(scrollDiv)
 +
    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
 +
    this.$body[0].removeChild(scrollDiv)
 +
    return scrollbarWidth
 +
  }
 +
 +
 +
  // MODAL PLUGIN DEFINITION
 +
  // =======================
 +
 +
  function Plugin(option, _relatedTarget) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.modal')
 +
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
 +
 +
      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
 +
      if (typeof option == 'string') data[option](_relatedTarget)
 +
      else if (options.show) data.show(_relatedTarget)
 +
    })
 +
  }
 +
 +
  var old = $.fn.modal
 +
 +
  $.fn.modal            = Plugin
 +
  $.fn.modal.Constructor = Modal
 +
 +
 +
  // MODAL NO CONFLICT
 +
  // =================
 +
 +
  $.fn.modal.noConflict = function () {
 +
    $.fn.modal = old
 +
    return this
 +
  }
 +
 +
 +
  // MODAL DATA-API
 +
  // ==============
 +
 +
  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
 +
    var $this  = $(this)
 +
    var href    = $this.attr('href')
 +
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
 +
    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
 +
 +
    if ($this.is('a')) e.preventDefault()
 +
 +
    $target.one('show.bs.modal', function (showEvent) {
 +
      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
 +
      $target.one('hidden.bs.modal', function () {
 +
        $this.is(':visible') && $this.trigger('focus')
 +
      })
 +
    })
 +
    Plugin.call($target, option, this)
 +
  })
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: tooltip.js v3.3.2
 +
* http://getbootstrap.com/javascript/#tooltip
 +
* Inspired by the original jQuery.tipsy by Jason Frame
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // TOOLTIP PUBLIC CLASS DEFINITION
 +
  // ===============================
 +
 +
  var Tooltip = function (element, options) {
 +
    this.type      =
 +
    this.options    =
 +
    this.enabled    =
 +
    this.timeout    =
 +
    this.hoverState =
 +
    this.$element  = null
 +
 +
    this.init('tooltip', element, options)
 +
  }
 +
 +
  Tooltip.VERSION  = '3.3.2'
 +
 +
  Tooltip.TRANSITION_DURATION = 150
 +
 +
  Tooltip.DEFAULTS = {
 +
    animation: true,
 +
    placement: 'top',
 +
    selector: false,
 +
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
 +
    trigger: 'hover focus',
 +
    title: '',
 +
    delay: 0,
 +
    html: false,
 +
    container: false,
 +
    viewport: {
 +
      selector: 'body',
 +
      padding: 0
 +
    }
 +
  }
 +
 +
  Tooltip.prototype.init = function (type, element, options) {
 +
    this.enabled  = true
 +
    this.type      = type
 +
    this.$element  = $(element)
 +
    this.options  = this.getOptions(options)
 +
    this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
 +
 +
    var triggers = this.options.trigger.split(' ')
 +
 +
    for (var i = triggers.length; i--;) {
 +
      var trigger = triggers[i]
 +
 +
      if (trigger == 'click') {
 +
        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
 +
      } else if (trigger != 'manual') {
 +
        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
 +
        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
 +
 +
        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
 +
        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
 +
      }
 +
    }
 +
 +
    this.options.selector ?
 +
      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
 +
      this.fixTitle()
 +
  }
 +
 +
  Tooltip.prototype.getDefaults = function () {
 +
    return Tooltip.DEFAULTS
 +
  }
 +
 +
  Tooltip.prototype.getOptions = function (options) {
 +
    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
 +
 +
    if (options.delay && typeof options.delay == 'number') {
 +
      options.delay = {
 +
        show: options.delay,
 +
        hide: options.delay
 +
      }
 +
    }
 +
 +
    return options
 +
  }
 +
 +
  Tooltip.prototype.getDelegateOptions = function () {
 +
    var options  = {}
 +
    var defaults = this.getDefaults()
 +
 +
    this._options && $.each(this._options, function (key, value) {
 +
      if (defaults[key] != value) options[key] = value
 +
    })
 +
 +
    return options
 +
  }
 +
 +
  Tooltip.prototype.enter = function (obj) {
 +
    var self = obj instanceof this.constructor ?
 +
      obj : $(obj.currentTarget).data('bs.' + this.type)
 +
 +
    if (self && self.$tip && self.$tip.is(':visible')) {
 +
      self.hoverState = 'in'
 +
      return
 +
    }
 +
 +
    if (!self) {
 +
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 +
      $(obj.currentTarget).data('bs.' + this.type, self)
 +
    }
 +
 +
    clearTimeout(self.timeout)
 +
 +
    self.hoverState = 'in'
 +
 +
    if (!self.options.delay || !self.options.delay.show) return self.show()
 +
 +
    self.timeout = setTimeout(function () {
 +
      if (self.hoverState == 'in') self.show()
 +
    }, self.options.delay.show)
 +
  }
 +
 +
  Tooltip.prototype.leave = function (obj) {
 +
    var self = obj instanceof this.constructor ?
 +
      obj : $(obj.currentTarget).data('bs.' + this.type)
 +
 +
    if (!self) {
 +
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 +
      $(obj.currentTarget).data('bs.' + this.type, self)
 +
    }
 +
 +
    clearTimeout(self.timeout)
 +
 +
    self.hoverState = 'out'
 +
 +
    if (!self.options.delay || !self.options.delay.hide) return self.hide()
 +
 +
    self.timeout = setTimeout(function () {
 +
      if (self.hoverState == 'out') self.hide()
 +
    }, self.options.delay.hide)
 +
  }
 +
 +
  Tooltip.prototype.show = function () {
 +
    var e = $.Event('show.bs.' + this.type)
 +
 +
    if (this.hasContent() && this.enabled) {
 +
      this.$element.trigger(e)
 +
 +
      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
 +
      if (e.isDefaultPrevented() || !inDom) return
 +
      var that = this
 +
 +
      var $tip = this.tip()
 +
 +
      var tipId = this.getUID(this.type)
 +
 +
      this.setContent()
 +
      $tip.attr('id', tipId)
 +
      this.$element.attr('aria-describedby', tipId)
 +
 +
      if (this.options.animation) $tip.addClass('fade')
 +
 +
      var placement = typeof this.options.placement == 'function' ?
 +
        this.options.placement.call(this, $tip[0], this.$element[0]) :
 +
        this.options.placement
 +
 +
      var autoToken = /\s?auto?\s?/i
 +
      var autoPlace = autoToken.test(placement)
 +
      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
 +
 +
      $tip
 +
        .detach()
 +
        .css({ top: 0, left: 0, display: 'block' })
 +
        .addClass(placement)
 +
        .data('bs.' + this.type, this)
 +
 +
      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
 +
 +
      var pos          = this.getPosition()
 +
      var actualWidth  = $tip[0].offsetWidth
 +
      var actualHeight = $tip[0].offsetHeight
 +
 +
      if (autoPlace) {
 +
        var orgPlacement = placement
 +
        var $container  = this.options.container ? $(this.options.container) : this.$element.parent()
 +
        var containerDim = this.getPosition($container)
 +
 +
        placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top'    :
 +
                    placement == 'top'    && pos.top    - actualHeight < containerDim.top    ? 'bottom' :
 +
                    placement == 'right'  && pos.right  + actualWidth  > containerDim.width  ? 'left'  :
 +
                    placement == 'left'  && pos.left  - actualWidth  < containerDim.left  ? 'right'  :
 +
                    placement
 +
 +
        $tip
 +
          .removeClass(orgPlacement)
 +
          .addClass(placement)
 +
      }
 +
 +
      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
 +
 +
      this.applyPlacement(calculatedOffset, placement)
 +
 +
      var complete = function () {
 +
        var prevHoverState = that.hoverState
 +
        that.$element.trigger('shown.bs.' + that.type)
 +
        that.hoverState = null
 +
 +
        if (prevHoverState == 'out') that.leave(that)
 +
      }
 +
 +
      $.support.transition && this.$tip.hasClass('fade') ?
 +
        $tip
 +
          .one('bsTransitionEnd', complete)
 +
          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 +
        complete()
 +
    }
 +
  }
 +
 +
  Tooltip.prototype.applyPlacement = function (offset, placement) {
 +
    var $tip  = this.tip()
 +
    var width  = $tip[0].offsetWidth
 +
    var height = $tip[0].offsetHeight
 +
 +
    // manually read margins because getBoundingClientRect includes difference
 +
    var marginTop = parseInt($tip.css('margin-top'), 10)
 +
    var marginLeft = parseInt($tip.css('margin-left'), 10)
 +
 +
    // we must check for NaN for ie 8/9
 +
    if (isNaN(marginTop))  marginTop  = 0
 +
    if (isNaN(marginLeft)) marginLeft = 0
 +
 +
    offset.top  = offset.top  + marginTop
 +
    offset.left = offset.left + marginLeft
 +
 +
    // $.fn.offset doesn't round pixel values
 +
    // so we use setOffset directly with our own function B-0
 +
    $.offset.setOffset($tip[0], $.extend({
 +
      using: function (props) {
 +
        $tip.css({
 +
          top: Math.round(props.top),
 +
          left: Math.round(props.left)
 +
        })
 +
      }
 +
    }, offset), 0)
 +
 +
    $tip.addClass('in')
 +
 +
    // check to see if placing tip in new offset caused the tip to resize itself
 +
    var actualWidth  = $tip[0].offsetWidth
 +
    var actualHeight = $tip[0].offsetHeight
 +
 +
    if (placement == 'top' && actualHeight != height) {
 +
      offset.top = offset.top + height - actualHeight
 +
    }
 +
 +
    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
 +
 +
    if (delta.left) offset.left += delta.left
 +
    else offset.top += delta.top
 +
 +
    var isVertical          = /top|bottom/.test(placement)
 +
    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
 +
    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
 +
 +
    $tip.offset(offset)
 +
    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
 +
  }
 +
 +
  Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
 +
    this.arrow()
 +
      .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
 +
      .css(isHorizontal ? 'top' : 'left', '')
 +
  }
 +
 +
  Tooltip.prototype.setContent = function () {
 +
    var $tip  = this.tip()
 +
    var title = this.getTitle()
 +
 +
    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
 +
    $tip.removeClass('fade in top bottom left right')
 +
  }
 +
 +
  Tooltip.prototype.hide = function (callback) {
 +
    var that = this
 +
    var $tip = this.tip()
 +
    var e    = $.Event('hide.bs.' + this.type)
 +
 +
    function complete() {
 +
      if (that.hoverState != 'in') $tip.detach()
 +
      that.$element
 +
        .removeAttr('aria-describedby')
 +
        .trigger('hidden.bs.' + that.type)
 +
      callback && callback()
 +
    }
 +
 +
    this.$element.trigger(e)
 +
 +
    if (e.isDefaultPrevented()) return
 +
 +
    $tip.removeClass('in')
 +
 +
    $.support.transition && this.$tip.hasClass('fade') ?
 +
      $tip
 +
        .one('bsTransitionEnd', complete)
 +
        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 +
      complete()
 +
 +
    this.hoverState = null
 +
 +
    return this
 +
  }
 +
 +
  Tooltip.prototype.fixTitle = function () {
 +
    var $e = this.$element
 +
    if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
 +
      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
 +
    }
 +
  }
 +
 +
  Tooltip.prototype.hasContent = function () {
 +
    return this.getTitle()
 +
  }
 +
 +
  Tooltip.prototype.getPosition = function ($element) {
 +
    $element  = $element || this.$element
 +
 +
    var el    = $element[0]
 +
    var isBody = el.tagName == 'BODY'
 +
 +
    var elRect    = el.getBoundingClientRect()
 +
    if (elRect.width == null) {
 +
      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
 +
      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
 +
    }
 +
    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
 +
    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
 +
    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
 +
 +
    return $.extend({}, elRect, scroll, outerDims, elOffset)
 +
  }
 +
 +
  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
 +
    return placement == 'bottom' ? { top: pos.top + pos.height,  left: pos.left + pos.width / 2 - actualWidth / 2 } :
 +
          placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
 +
          placement == 'left'  ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
 +
        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
 +
 +
  }
 +
 +
  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
 +
    var delta = { top: 0, left: 0 }
 +
    if (!this.$viewport) return delta
 +
 +
    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
 +
    var viewportDimensions = this.getPosition(this.$viewport)
 +
 +
    if (/right|left/.test(placement)) {
 +
      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
 +
      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
 +
      if (topEdgeOffset < viewportDimensions.top) { // top overflow
 +
        delta.top = viewportDimensions.top - topEdgeOffset
 +
      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
 +
        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
 +
      }
 +
    } else {
 +
      var leftEdgeOffset  = pos.left - viewportPadding
 +
      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
 +
      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
 +
        delta.left = viewportDimensions.left - leftEdgeOffset
 +
      } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
 +
        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
 +
      }
 +
    }
 +
 +
    return delta
 +
  }
 +
 +
  Tooltip.prototype.getTitle = function () {
 +
    var title
 +
    var $e = this.$element
 +
    var o  = this.options
 +
 +
    title = $e.attr('data-original-title')
 +
      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
 +
 +
    return title
 +
  }
 +
 +
  Tooltip.prototype.getUID = function (prefix) {
 +
    do prefix += ~~(Math.random() * 1000000)
 +
    while (document.getElementById(prefix))
 +
    return prefix
 +
  }
 +
 +
  Tooltip.prototype.tip = function () {
 +
    return (this.$tip = this.$tip || $(this.options.template))
 +
  }
 +
 +
  Tooltip.prototype.arrow = function () {
 +
    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
 +
  }
 +
 +
  Tooltip.prototype.enable = function () {
 +
    this.enabled = true
 +
  }
 +
 +
  Tooltip.prototype.disable = function () {
 +
    this.enabled = false
 +
  }
 +
 +
  Tooltip.prototype.toggleEnabled = function () {
 +
    this.enabled = !this.enabled
 +
  }
 +
 +
  Tooltip.prototype.toggle = function (e) {
 +
    var self = this
 +
    if (e) {
 +
      self = $(e.currentTarget).data('bs.' + this.type)
 +
      if (!self) {
 +
        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
 +
        $(e.currentTarget).data('bs.' + this.type, self)
 +
      }
 +
    }
 +
 +
    self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
 +
  }
 +
 +
  Tooltip.prototype.destroy = function () {
 +
    var that = this
 +
    clearTimeout(this.timeout)
 +
    this.hide(function () {
 +
      that.$element.off('.' + that.type).removeData('bs.' + that.type)
 +
    })
 +
  }
 +
 +
 +
  // TOOLTIP PLUGIN DEFINITION
 +
  // =========================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.tooltip')
 +
      var options = typeof option == 'object' && option
 +
 +
      if (!data && option == 'destroy') return
 +
      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
 +
      if (typeof option == 'string') data[option]()
 +
    })
 +
  }
 +
 +
  var old = $.fn.tooltip
 +
 +
  $.fn.tooltip            = Plugin
 +
  $.fn.tooltip.Constructor = Tooltip
 +
 +
 +
  // TOOLTIP NO CONFLICT
 +
  // ===================
 +
 +
  $.fn.tooltip.noConflict = function () {
 +
    $.fn.tooltip = old
 +
    return this
 +
  }
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: popover.js v3.3.2
 +
* http://getbootstrap.com/javascript/#popovers
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // POPOVER PUBLIC CLASS DEFINITION
 +
  // ===============================
 +
 +
  var Popover = function (element, options) {
 +
    this.init('popover', element, options)
 +
  }
 +
 +
  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
 +
 +
  Popover.VERSION  = '3.3.2'
 +
 +
  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
 +
    placement: 'right',
 +
    trigger: 'click',
 +
    content: '',
 +
    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
 +
  })
 +
 +
 +
  // NOTE: POPOVER EXTENDS tooltip.js
 +
  // ================================
 +
 +
  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
 +
 +
  Popover.prototype.constructor = Popover
 +
 +
  Popover.prototype.getDefaults = function () {
 +
    return Popover.DEFAULTS
 +
  }
 +
 +
  Popover.prototype.setContent = function () {
 +
    var $tip    = this.tip()
 +
    var title  = this.getTitle()
 +
    var content = this.getContent()
 +
 +
    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
 +
    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
 +
      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
 +
    ](content)
 +
 +
    $tip.removeClass('fade top bottom left right in')
 +
 +
    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
 +
    // this manually by checking the contents.
 +
    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
 +
  }
 +
 +
  Popover.prototype.hasContent = function () {
 +
    return this.getTitle() || this.getContent()
 +
  }
 +
 +
  Popover.prototype.getContent = function () {
 +
    var $e = this.$element
 +
    var o  = this.options
 +
 +
    return $e.attr('data-content')
 +
      || (typeof o.content == 'function' ?
 +
            o.content.call($e[0]) :
 +
            o.content)
 +
  }
 +
 +
  Popover.prototype.arrow = function () {
 +
    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
 +
  }
 +
 +
  Popover.prototype.tip = function () {
 +
    if (!this.$tip) this.$tip = $(this.options.template)
 +
    return this.$tip
 +
  }
 +
 +
 +
  // POPOVER PLUGIN DEFINITION
 +
  // =========================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.popover')
 +
      var options = typeof option == 'object' && option
 +
 +
      if (!data && option == 'destroy') return
 +
      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
 +
      if (typeof option == 'string') data[option]()
 +
    })
 +
  }
 +
 +
  var old = $.fn.popover
 +
 +
  $.fn.popover            = Plugin
 +
  $.fn.popover.Constructor = Popover
 +
 +
 +
  // POPOVER NO CONFLICT
 +
  // ===================
 +
 +
  $.fn.popover.noConflict = function () {
 +
    $.fn.popover = old
 +
    return this
 +
  }
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: scrollspy.js v3.3.2
 +
* http://getbootstrap.com/javascript/#scrollspy
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // SCROLLSPY CLASS DEFINITION
 +
  // ==========================
 +
 +
  function ScrollSpy(element, options) {
 +
    var process  = $.proxy(this.process, this)
 +
 +
    this.$body          = $('body')
 +
    this.$scrollElement = $(element).is('body') ? $(window) : $(element)
 +
    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
 +
    this.selector      = (this.options.target || '') + ' .nav li > a'
 +
    this.offsets        = []
 +
    this.targets        = []
 +
    this.activeTarget  = null
 +
    this.scrollHeight  = 0
 +
 +
    this.$scrollElement.on('scroll.bs.scrollspy', process)
 +
    this.refresh()
 +
    this.process()
 +
  }
 +
 +
  ScrollSpy.VERSION  = '3.3.2'
 +
 +
  ScrollSpy.DEFAULTS = {
 +
    offset: 10
 +
  }
 +
 +
  ScrollSpy.prototype.getScrollHeight = function () {
 +
    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
 +
  }
 +
 +
  ScrollSpy.prototype.refresh = function () {
 +
    var offsetMethod = 'offset'
 +
    var offsetBase  = 0
 +
 +
    if (!$.isWindow(this.$scrollElement[0])) {
 +
      offsetMethod = 'position'
 +
      offsetBase  = this.$scrollElement.scrollTop()
 +
    }
 +
 +
    this.offsets = []
 +
    this.targets = []
 +
    this.scrollHeight = this.getScrollHeight()
 +
 +
    var self    = this
 +
 +
    this.$body
 +
      .find(this.selector)
 +
      .map(function () {
 +
        var $el  = $(this)
 +
        var href  = $el.data('target') || $el.attr('href')
 +
        var $href = /^#./.test(href) && $(href)
 +
 +
        return ($href
 +
          && $href.length
 +
          && $href.is(':visible')
 +
          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
 +
      })
 +
      .sort(function (a, b) { return a[0] - b[0] })
 +
      .each(function () {
 +
        self.offsets.push(this[0])
 +
        self.targets.push(this[1])
 +
      })
 +
  }
 +
 +
  ScrollSpy.prototype.process = function () {
 +
    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
 +
    var scrollHeight = this.getScrollHeight()
 +
    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
 +
    var offsets      = this.offsets
 +
    var targets      = this.targets
 +
    var activeTarget = this.activeTarget
 +
    var i
 +
 +
    if (this.scrollHeight != scrollHeight) {
 +
      this.refresh()
 +
    }
 +
 +
    if (scrollTop >= maxScroll) {
 +
      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
 +
    }
 +
 +
    if (activeTarget && scrollTop < offsets[0]) {
 +
      this.activeTarget = null
 +
      return this.clear()
 +
    }
 +
 +
    for (i = offsets.length; i--;) {
 +
      activeTarget != targets[i]
 +
        && scrollTop >= offsets[i]
 +
        && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
 +
        && this.activate(targets[i])
 +
    }
 +
  }
 +
 +
  ScrollSpy.prototype.activate = function (target) {
 +
    this.activeTarget = target
 +
 +
    this.clear()
 +
 +
    var selector = this.selector +
 +
        '[data-target="' + target + '"],' +
 +
        this.selector + '[href="' + target + '"]'
 +
 +
    var active = $(selector)
 +
      .parents('li')
 +
      .addClass('active')
 +
 +
    if (active.parent('.dropdown-menu').length) {
 +
      active = active
 +
        .closest('li.dropdown')
 +
        .addClass('active')
 +
    }
 +
 +
    active.trigger('activate.bs.scrollspy')
 +
  }
 +
 +
  ScrollSpy.prototype.clear = function () {
 +
    $(this.selector)
 +
      .parentsUntil(this.options.target, '.active')
 +
      .removeClass('active')
 +
  }
 +
 +
 +
  // SCROLLSPY PLUGIN DEFINITION
 +
  // ===========================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.scrollspy')
 +
      var options = typeof option == 'object' && option
 +
 +
      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
 +
      if (typeof option == 'string') data[option]()
 +
    })
 +
  }
 +
 +
  var old = $.fn.scrollspy
 +
 +
  $.fn.scrollspy            = Plugin
 +
  $.fn.scrollspy.Constructor = ScrollSpy
 +
 +
 +
  // SCROLLSPY NO CONFLICT
 +
  // =====================
 +
 +
  $.fn.scrollspy.noConflict = function () {
 +
    $.fn.scrollspy = old
 +
    return this
 +
  }
 +
 +
 +
  // SCROLLSPY DATA-API
 +
  // ==================
 +
 +
  $(window).on('load.bs.scrollspy.data-api', function () {
 +
    $('[data-spy="scroll"]').each(function () {
 +
      var $spy = $(this)
 +
      Plugin.call($spy, $spy.data())
 +
    })
 +
  })
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: tab.js v3.3.2
 +
* http://getbootstrap.com/javascript/#tabs
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // TAB CLASS DEFINITION
 +
  // ====================
 +
 +
  var Tab = function (element) {
 +
    this.element = $(element)
 +
  }
 +
 +
  Tab.VERSION = '3.3.2'
 +
 +
  Tab.TRANSITION_DURATION = 150
 +
 +
  Tab.prototype.show = function () {
 +
    var $this    = this.element
 +
    var $ul      = $this.closest('ul:not(.dropdown-menu)')
 +
    var selector = $this.data('target')
 +
 +
    if (!selector) {
 +
      selector = $this.attr('href')
 +
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 +
    }
 +
 +
    if ($this.parent('li').hasClass('active')) return
 +
 +
    var $previous = $ul.find('.active:last a')
 +
    var hideEvent = $.Event('hide.bs.tab', {
 +
      relatedTarget: $this[0]
 +
    })
 +
    var showEvent = $.Event('show.bs.tab', {
 +
      relatedTarget: $previous[0]
 +
    })
 +
 +
    $previous.trigger(hideEvent)
 +
 +
    $this.trigger(showEvent)
 +
 +
    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
 +
 +
    var $target = $(selector)
 +
 +
    this.activate($this.closest('li'), $ul)
 +
    this.activate($target, $target.parent(), function () {
 +
      $previous.trigger({
 +
        type: 'hidden.bs.tab',
 +
        relatedTarget: $this[0]
 +
      })
 +
      $this.trigger({
 +
        type: 'shown.bs.tab',
 +
        relatedTarget: $previous[0]
 +
      })
 +
    })
 +
  }
 +
 +
  Tab.prototype.activate = function (element, container, callback) {
 +
    var $active    = container.find('> .active')
 +
    var transition = callback
 +
      && $.support.transition
 +
      && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
 +
 +
    function next() {
 +
      $active
 +
        .removeClass('active')
 +
        .find('> .dropdown-menu > .active')
 +
          .removeClass('active')
 +
        .end()
 +
        .find('[data-toggle="tab"]')
 +
          .attr('aria-expanded', false)
 +
 +
      element
 +
        .addClass('active')
 +
        .find('[data-toggle="tab"]')
 +
          .attr('aria-expanded', true)
 +
 +
      if (transition) {
 +
        element[0].offsetWidth // reflow for transition
 +
        element.addClass('in')
 +
      } else {
 +
        element.removeClass('fade')
 +
      }
 +
 +
      if (element.parent('.dropdown-menu')) {
 +
        element
 +
          .closest('li.dropdown')
 +
            .addClass('active')
 +
          .end()
 +
          .find('[data-toggle="tab"]')
 +
            .attr('aria-expanded', true)
 +
      }
 +
 +
      callback && callback()
 +
    }
 +
 +
    $active.length && transition ?
 +
      $active
 +
        .one('bsTransitionEnd', next)
 +
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
 +
      next()
 +
 +
    $active.removeClass('in')
 +
  }
 +
 +
 +
  // TAB PLUGIN DEFINITION
 +
  // =====================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this = $(this)
 +
      var data  = $this.data('bs.tab')
 +
 +
      if (!data) $this.data('bs.tab', (data = new Tab(this)))
 +
      if (typeof option == 'string') data[option]()
 +
    })
 +
  }
 +
 +
  var old = $.fn.tab
 +
 +
  $.fn.tab            = Plugin
 +
  $.fn.tab.Constructor = Tab
 +
 +
 +
  // TAB NO CONFLICT
 +
  // ===============
 +
 +
  $.fn.tab.noConflict = function () {
 +
    $.fn.tab = old
 +
    return this
 +
  }
 +
 +
 +
  // TAB DATA-API
 +
  // ============
 +
 +
  var clickHandler = function (e) {
 +
    e.preventDefault()
 +
    Plugin.call($(this), 'show')
 +
  }
 +
 +
  $(document)
 +
    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
 +
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
 +
 +
}(jQuery);
 +
 +
/* ========================================================================
 +
* Bootstrap: affix.js v3.3.2
 +
* http://getbootstrap.com/javascript/#affix
 +
* ========================================================================
 +
* Copyright 2011-2015 Twitter, Inc.
 +
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 +
* ======================================================================== */
 +
 +
 +
+function ($) {
 +
  'use strict';
 +
 +
  // AFFIX CLASS DEFINITION
 +
  // ======================
 +
 +
  var Affix = function (element, options) {
 +
    this.options = $.extend({}, Affix.DEFAULTS, options)
 +
 +
    this.$target = $(this.options.target)
 +
      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
 +
      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
 +
 +
    this.$element    = $(element)
 +
    this.affixed      =
 +
    this.unpin        =
 +
    this.pinnedOffset = null
 +
 +
    this.checkPosition()
 +
  }
 +
 +
  Affix.VERSION  = '3.3.2'
 +
 +
  Affix.RESET    = 'affix affix-top affix-bottom'
 +
 +
  Affix.DEFAULTS = {
 +
    offset: 0,
 +
    target: window
 +
  }
 +
 +
  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
 +
    var scrollTop    = this.$target.scrollTop()
 +
    var position    = this.$element.offset()
 +
    var targetHeight = this.$target.height()
 +
 +
    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
 +
 +
    if (this.affixed == 'bottom') {
 +
      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
 +
      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
 +
    }
 +
 +
    var initializing  = this.affixed == null
 +
    var colliderTop    = initializing ? scrollTop : position.top
 +
    var colliderHeight = initializing ? targetHeight : height
 +
 +
    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
 +
    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
 +
 +
    return false
 +
  }
 +
 +
  Affix.prototype.getPinnedOffset = function () {
 +
    if (this.pinnedOffset) return this.pinnedOffset
 +
    this.$element.removeClass(Affix.RESET).addClass('affix')
 +
    var scrollTop = this.$target.scrollTop()
 +
    var position  = this.$element.offset()
 +
    return (this.pinnedOffset = position.top - scrollTop)
 +
  }
 +
 +
  Affix.prototype.checkPositionWithEventLoop = function () {
 +
    setTimeout($.proxy(this.checkPosition, this), 1)
 +
  }
 +
 +
  Affix.prototype.checkPosition = function () {
 +
    if (!this.$element.is(':visible')) return
 +
 +
    var height      = this.$element.height()
 +
    var offset      = this.options.offset
 +
    var offsetTop    = offset.top
 +
    var offsetBottom = offset.bottom
 +
    var scrollHeight = $('body').height()
 +
 +
    if (typeof offset != 'object')        offsetBottom = offsetTop = offset
 +
    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
 +
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
 +
 +
    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
 +
 +
    if (this.affixed != affix) {
 +
      if (this.unpin != null) this.$element.css('top', '')
 +
 +
      var affixType = 'affix' + (affix ? '-' + affix : '')
 +
      var e        = $.Event(affixType + '.bs.affix')
 +
 +
      this.$element.trigger(e)
 +
 +
      if (e.isDefaultPrevented()) return
 +
 +
      this.affixed = affix
 +
      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
 +
 +
      this.$element
 +
        .removeClass(Affix.RESET)
 +
        .addClass(affixType)
 +
        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
 +
    }
 +
 +
    if (affix == 'bottom') {
 +
      this.$element.offset({
 +
        top: scrollHeight - height - offsetBottom
 +
      })
 +
    }
 +
  }
 +
 +
 +
  // AFFIX PLUGIN DEFINITION
 +
  // =======================
 +
 +
  function Plugin(option) {
 +
    return this.each(function () {
 +
      var $this  = $(this)
 +
      var data    = $this.data('bs.affix')
 +
      var options = typeof option == 'object' && option
 +
 +
      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
 +
      if (typeof option == 'string') data[option]()
 +
    })
 +
  }
 +
 +
  var old = $.fn.affix
 +
 +
  $.fn.affix            = Plugin
 +
  $.fn.affix.Constructor = Affix
 +
 +
 +
  // AFFIX NO CONFLICT
 +
  // =================
 +
 +
  $.fn.affix.noConflict = function () {
 +
    $.fn.affix = old
 +
    return this
 +
  }
 +
 +
 +
  // AFFIX DATA-API
 +
  // ==============
 +
 +
  $(window).on('load', function () {
 +
    $('[data-spy="affix"]').each(function () {
 +
      var $spy = $(this)
 +
      var data = $spy.data()
 +
 +
      data.offset = data.offset || {}
 +
 +
      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
 +
      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
 +
 +
      Plugin.call($spy, data)
 +
    })
 +
  })
 +
 +
}(jQuery);
 +
</script>
 +
<script type="text/javascript">/*
 +
*  jQuery OwlCarousel v1.3.2
 +
*
 +
*  Copyright (c) 2013 Bartosz Wojciechowski
 +
*  http://www.owlgraphic.com/owlcarousel/
 +
*
 +
*  Licensed under MIT
 +
*
 +
*/
 +
 +
/*JS Lint helpers: */
 +
/*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
 +
/*jslint nomen: true, continue:true */
 +
 +
if (typeof Object.create !== "function") {
 +
    Object.create = function (obj) {
 +
        function F() {}
 +
        F.prototype = obj;
 +
        return new F();
 +
    };
 +
}
 +
(function ($, window, document) {
 +
 +
    var Carousel = {
 +
        init : function (options, el) {
 +
            var base = this;
 +
 +
            base.$elem = $(el);
 +
            base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
 +
 +
            base.userOptions = options;
 +
            base.loadContent();
 +
        },
 +
 +
        loadContent : function () {
 +
            var base = this, url;
 +
 +
            function getData(data) {
 +
                var i, content = "";
 +
                if (typeof base.options.jsonSuccess === "function") {
 +
                    base.options.jsonSuccess.apply(this, [data]);
 +
                } else {
 +
                    for (i in data.owl) {
 +
                        if (data.owl.hasOwnProperty(i)) {
 +
                            content += data.owl[i].item;
 +
                        }
 +
                    }
 +
                    base.$elem.html(content);
 +
                }
 +
                base.logIn();
 +
            }
 +
 +
            if (typeof base.options.beforeInit === "function") {
 +
                base.options.beforeInit.apply(this, [base.$elem]);
 +
            }
 +
 +
            if (typeof base.options.jsonPath === "string") {
 +
                url = base.options.jsonPath;
 +
                $.getJSON(url, getData);
 +
            } else {
 +
                base.logIn();
 +
            }
 +
        },
 +
 +
        logIn : function () {
 +
            var base = this;
 +
 +
            base.$elem.data("owl-originalStyles", base.$elem.attr("style"))
 +
                      .data("owl-originalClasses", base.$elem.attr("class"));
 +
 +
            base.$elem.css({opacity: 0});
 +
            base.orignalItems = base.options.items;
 +
            base.checkBrowser();
 +
            base.wrapperWidth = 0;
 +
            base.checkVisible = null;
 +
            base.setVars();
 +
        },
 +
 +
        setVars : function () {
 +
            var base = this;
 +
            if (base.$elem.children().length === 0) {return false; }
 +
            base.baseClass();
 +
            base.eventTypes();
 +
            base.$userItems = base.$elem.children();
 +
            base.itemsAmount = base.$userItems.length;
 +
            base.wrapItems();
 +
            base.$owlItems = base.$elem.find(".owl-item");
 +
            base.$owlWrapper = base.$elem.find(".owl-wrapper");
 +
            base.playDirection = "next";
 +
            base.prevItem = 0;
 +
            base.prevArr = [0];
 +
            base.currentItem = 0;
 +
            base.customEvents();
 +
            base.onStartup();
 +
        },
 +
 +
        onStartup : function () {
 +
            var base = this;
 +
            base.updateItems();
 +
            base.calculateAll();
 +
            base.buildControls();
 +
            base.updateControls();
 +
            base.response();
 +
            base.moveEvents();
 +
            base.stopOnHover();
 +
            base.owlStatus();
 +
 +
            if (base.options.transitionStyle !== false) {
 +
                base.transitionTypes(base.options.transitionStyle);
 +
            }
 +
            if (base.options.autoPlay === true) {
 +
                base.options.autoPlay = 5000;
 +
            }
 +
            base.play();
 +
 +
            base.$elem.find(".owl-wrapper").css("display", "block");
 +
 +
            if (!base.$elem.is(":visible")) {
 +
                base.watchVisibility();
 +
            } else {
 +
                base.$elem.css("opacity", 1);
 +
            }
 +
            base.onstartup = false;
 +
            base.eachMoveUpdate();
 +
            if (typeof base.options.afterInit === "function") {
 +
                base.options.afterInit.apply(this, [base.$elem]);
 +
            }
 +
        },
 +
 +
        eachMoveUpdate : function () {
 +
            var base = this;
 +
 +
            if (base.options.lazyLoad === true) {
 +
                base.lazyLoad();
 +
            }
 +
            if (base.options.autoHeight === true) {
 +
                base.autoHeight();
 +
            }
 +
            base.onVisibleItems();
 +
 +
            if (typeof base.options.afterAction === "function") {
 +
                base.options.afterAction.apply(this, [base.$elem]);
 +
            }
 +
        },
 +
 +
        updateVars : function () {
 +
            var base = this;
 +
            if (typeof base.options.beforeUpdate === "function") {
 +
                base.options.beforeUpdate.apply(this, [base.$elem]);
 +
            }
 +
            base.watchVisibility();
 +
            base.updateItems();
 +
            base.calculateAll();
 +
            base.updatePosition();
 +
            base.updateControls();
 +
            base.eachMoveUpdate();
 +
            if (typeof base.options.afterUpdate === "function") {
 +
                base.options.afterUpdate.apply(this, [base.$elem]);
 +
            }
 +
        },
 +
 +
        reload : function () {
 +
            var base = this;
 +
            window.setTimeout(function () {
 +
                base.updateVars();
 +
            }, 0);
 +
        },
 +
 +
        watchVisibility : function () {
 +
            var base = this;
 +
 +
            if (base.$elem.is(":visible") === false) {
 +
                base.$elem.css({opacity: 0});
 +
                window.clearInterval(base.autoPlayInterval);
 +
                window.clearInterval(base.checkVisible);
 +
            } else {
 +
                return false;
 +
            }
 +
            base.checkVisible = window.setInterval(function () {
 +
                if (base.$elem.is(":visible")) {
 +
                    base.reload();
 +
                    base.$elem.animate({opacity: 1}, 200);
 +
                    window.clearInterval(base.checkVisible);
 +
                }
 +
            }, 500);
 +
        },
 +
 +
        wrapItems : function () {
 +
            var base = this;
 +
            base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
 +
            base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
 +
            base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
 +
            base.$elem.css("display", "block");
 +
        },
 +
 +
        baseClass : function () {
 +
            var base = this,
 +
                hasBaseClass = base.$elem.hasClass(base.options.baseClass),
 +
                hasThemeClass = base.$elem.hasClass(base.options.theme);
 +
 +
            if (!hasBaseClass) {
 +
                base.$elem.addClass(base.options.baseClass);
 +
            }
 +
 +
            if (!hasThemeClass) {
 +
                base.$elem.addClass(base.options.theme);
 +
            }
 +
        },
 +
 +
        updateItems : function () {
 +
            var base = this, width, i;
 +
 +
            if (base.options.responsive === false) {
 +
                return false;
 +
            }
 +
            if (base.options.singleItem === true) {
 +
                base.options.items = base.orignalItems = 1;
 +
                base.options.itemsCustom = false;
 +
                base.options.itemsDesktop = false;
 +
                base.options.itemsDesktopSmall = false;
 +
                base.options.itemsTablet = false;
 +
                base.options.itemsTabletSmall = false;
 +
                base.options.itemsMobile = false;
 +
                return false;
 +
            }
 +
 +
            width = $(base.options.responsiveBaseWidth).width();
 +
 +
            if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
 +
                base.options.items = base.orignalItems;
 +
            }
 +
            if (base.options.itemsCustom !== false) {
 +
                //Reorder array by screen size
 +
                base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
 +
 +
                for (i = 0; i < base.options.itemsCustom.length; i += 1) {
 +
                    if (base.options.itemsCustom[i][0] <= width) {
 +
                        base.options.items = base.options.itemsCustom[i][1];
 +
                    }
 +
                }
 +
 +
            } else {
 +
 +
                if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
 +
                    base.options.items = base.options.itemsDesktop[1];
 +
                }
 +
 +
                if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
 +
                    base.options.items = base.options.itemsDesktopSmall[1];
 +
                }
 +
 +
                if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
 +
                    base.options.items = base.options.itemsTablet[1];
 +
                }
 +
 +
                if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
 +
                    base.options.items = base.options.itemsTabletSmall[1];
 +
                }
 +
 +
                if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
 +
                    base.options.items = base.options.itemsMobile[1];
 +
                }
 +
            }
 +
 +
            //if number of items is less than declared
 +
            if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
 +
                base.options.items = base.itemsAmount;
 +
            }
 +
        },
 +
 +
        response : function () {
 +
            var base = this,
 +
                smallDelay,
 +
                lastWindowWidth;
 +
 +
            if (base.options.responsive !== true) {
 +
                return false;
 +
            }
 +
            lastWindowWidth = $(window).width();
 +
 +
            base.resizer = function () {
 +
                if ($(window).width() !== lastWindowWidth) {
 +
                    if (base.options.autoPlay !== false) {
 +
                        window.clearInterval(base.autoPlayInterval);
 +
                    }
 +
                    window.clearTimeout(smallDelay);
 +
                    smallDelay = window.setTimeout(function () {
 +
                        lastWindowWidth = $(window).width();
 +
                        base.updateVars();
 +
                    }, base.options.responsiveRefreshRate);
 +
                }
 +
            };
 +
            $(window).resize(base.resizer);
 +
        },
 +
 +
        updatePosition : function () {
 +
            var base = this;
 +
            base.jumpTo(base.currentItem);
 +
            if (base.options.autoPlay !== false) {
 +
                base.checkAp();
 +
            }
 +
        },
 +
 +
        appendItemsSizes : function () {
 +
            var base = this,
 +
                roundPages = 0,
 +
                lastItem = base.itemsAmount - base.options.items;
 +
 +
            base.$owlItems.each(function (index) {
 +
                var $this = $(this);
 +
                $this
 +
                    .css({"width": base.itemWidth})
 +
                    .data("owl-item", Number(index));
 +
 +
                if (index % base.options.items === 0 || index === lastItem) {
 +
                    if (!(index > lastItem)) {
 +
                        roundPages += 1;
 +
                    }
 +
                }
 +
                $this.data("owl-roundPages", roundPages);
 +
            });
 +
        },
 +
 +
        appendWrapperSizes : function () {
 +
            var base = this,
 +
                width = base.$owlItems.length * base.itemWidth;
 +
 +
            base.$owlWrapper.css({
 +
                "width": width * 2,
 +
                "left": 0
 +
            });
 +
            base.appendItemsSizes();
 +
        },
 +
 +
        calculateAll : function () {
 +
            var base = this;
 +
            base.calculateWidth();
 +
            base.appendWrapperSizes();
 +
            base.loops();
 +
            base.max();
 +
        },
 +
 +
        calculateWidth : function () {
 +
            var base = this;
 +
            base.itemWidth = Math.round(base.$elem.width() / base.options.items);
 +
        },
 +
 +
        max : function () {
 +
            var base = this,
 +
                maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
 +
            if (base.options.items > base.itemsAmount) {
 +
                base.maximumItem = 0;
 +
                maximum = 0;
 +
                base.maximumPixels = 0;
 +
            } else {
 +
                base.maximumItem = base.itemsAmount - base.options.items;
 +
                base.maximumPixels = maximum;
 +
            }
 +
            return maximum;
 +
        },
 +
 +
        min : function () {
 +
            return 0;
 +
        },
 +
 +
        loops : function () {
 +
            var base = this,
 +
                prev = 0,
 +
                elWidth = 0,
 +
                i,
 +
                item,
 +
                roundPageNum;
 +
 +
            base.positionsInArray = [0];
 +
            base.pagesInArray = [];
 +
 +
            for (i = 0; i < base.itemsAmount; i += 1) {
 +
                elWidth += base.itemWidth;
 +
                base.positionsInArray.push(-elWidth);
 +
 +
                if (base.options.scrollPerPage === true) {
 +
                    item = $(base.$owlItems[i]);
 +
                    roundPageNum = item.data("owl-roundPages");
 +
                    if (roundPageNum !== prev) {
 +
                        base.pagesInArray[prev] = base.positionsInArray[i];
 +
                        prev = roundPageNum;
 +
                    }
 +
                }
 +
            }
 +
        },
 +
 +
        buildControls : function () {
 +
            var base = this;
 +
            if (base.options.navigation === true || base.options.pagination === true) {
 +
                base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
 +
            }
 +
            if (base.options.pagination === true) {
 +
                base.buildPagination();
 +
            }
 +
            if (base.options.navigation === true) {
 +
                base.buildButtons();
 +
            }
 +
        },
 +
 +
        buildButtons : function () {
 +
            var base = this,
 +
                buttonsWrapper = $("<div class=\"owl-buttons\"/>");
 +
            base.owlControls.append(buttonsWrapper);
 +
 +
            base.buttonPrev = $("<div/>", {
 +
                "class" : "owl-prev",
 +
                "html" : base.options.navigationText[0] || ""
 +
            });
 +
 +
            base.buttonNext = $("<div/>", {
 +
                "class" : "owl-next",
 +
                "html" : base.options.navigationText[1] || ""
 +
            });
 +
 +
            buttonsWrapper
 +
                .append(base.buttonPrev)
 +
                .append(base.buttonNext);
 +
 +
            buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
 +
                event.preventDefault();
 +
            });
 +
 +
            buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
 +
                event.preventDefault();
 +
                if ($(this).hasClass("owl-next")) {
 +
                    base.next();
 +
                } else {
 +
                    base.prev();
 +
                }
 +
            });
 +
        },
 +
 +
        buildPagination : function () {
 +
            var base = this;
 +
 +
            base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
 +
            base.owlControls.append(base.paginationWrapper);
 +
 +
            base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
 +
                event.preventDefault();
 +
                if (Number($(this).data("owl-page")) !== base.currentItem) {
 +
                    base.goTo(Number($(this).data("owl-page")), true);
 +
                }
 +
            });
 +
        },
 +
 +
        updatePagination : function () {
 +
            var base = this,
 +
                counter,
 +
                lastPage,
 +
                lastItem,
 +
                i,
 +
                paginationButton,
 +
                paginationButtonInner;
 +
 +
            if (base.options.pagination === false) {
 +
                return false;
 +
            }
 +
 +
            base.paginationWrapper.html("");
 +
 +
            counter = 0;
 +
            lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
 +
 +
            for (i = 0; i < base.itemsAmount; i += 1) {
 +
                if (i % base.options.items === 0) {
 +
                    counter += 1;
 +
                    if (lastPage === i) {
 +
                        lastItem = base.itemsAmount - base.options.items;
 +
                    }
 +
                    paginationButton = $("<div/>", {
 +
                        "class" : "owl-page"
 +
                    });
 +
                    paginationButtonInner = $("<span></span>", {
 +
                        "text": base.options.paginationNumbers === true ? counter : "",
 +
                        "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
 +
                    });
 +
                    paginationButton.append(paginationButtonInner);
 +
 +
                    paginationButton.data("owl-page", lastPage === i ? lastItem : i);
 +
                    paginationButton.data("owl-roundPages", counter);
 +
 +
                    base.paginationWrapper.append(paginationButton);
 +
                }
 +
            }
 +
            base.checkPagination();
 +
        },
 +
        checkPagination : function () {
 +
            var base = this;
 +
            if (base.options.pagination === false) {
 +
                return false;
 +
            }
 +
            base.paginationWrapper.find(".owl-page").each(function () {
 +
                if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
 +
                    base.paginationWrapper
 +
                        .find(".owl-page")
 +
                        .removeClass("active");
 +
                    $(this).addClass("active");
 +
                }
 +
            });
 +
        },
 +
 +
        checkNavigation : function () {
 +
            var base = this;
 +
 +
            if (base.options.navigation === false) {
 +
                return false;
 +
            }
 +
            if (base.options.rewindNav === false) {
 +
                if (base.currentItem === 0 && base.maximumItem === 0) {
 +
                    base.buttonPrev.addClass("disabled");
 +
                    base.buttonNext.addClass("disabled");
 +
                } else if (base.currentItem === 0 && base.maximumItem !== 0) {
 +
                    base.buttonPrev.addClass("disabled");
 +
                    base.buttonNext.removeClass("disabled");
 +
                } else if (base.currentItem === base.maximumItem) {
 +
                    base.buttonPrev.removeClass("disabled");
 +
                    base.buttonNext.addClass("disabled");
 +
                } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
 +
                    base.buttonPrev.removeClass("disabled");
 +
                    base.buttonNext.removeClass("disabled");
 +
                }
 +
            }
 +
        },
 +
 +
        updateControls : function () {
 +
            var base = this;
 +
            base.updatePagination();
 +
            base.checkNavigation();
 +
            if (base.owlControls) {
 +
                if (base.options.items >= base.itemsAmount) {
 +
                    base.owlControls.hide();
 +
                } else {
 +
                    base.owlControls.show();
 +
                }
 +
            }
 +
        },
 +
 +
        destroyControls : function () {
 +
            var base = this;
 +
            if (base.owlControls) {
 +
                base.owlControls.remove();
 +
            }
 +
        },
 +
 +
        next : function (speed) {
 +
            var base = this;
 +
 +
            if (base.isTransition) {
 +
                return false;
 +
            }
 +
 +
            base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
 +
            if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
 +
                if (base.options.rewindNav === true) {
 +
                    base.currentItem = 0;
 +
                    speed = "rewind";
 +
                } else {
 +
                    base.currentItem = base.maximumItem;
 +
                    return false;
 +
                }
 +
            }
 +
            base.goTo(base.currentItem, speed);
 +
        },
 +
 +
        prev : function (speed) {
 +
            var base = this;
 +
 +
            if (base.isTransition) {
 +
                return false;
 +
            }
 +
 +
            if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
 +
                base.currentItem = 0;
 +
            } else {
 +
                base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
 +
            }
 +
            if (base.currentItem < 0) {
 +
                if (base.options.rewindNav === true) {
 +
                    base.currentItem = base.maximumItem;
 +
                    speed = "rewind";
 +
                } else {
 +
                    base.currentItem = 0;
 +
                    return false;
 +
                }
 +
            }
 +
            base.goTo(base.currentItem, speed);
 +
        },
 +
 +
        goTo : function (position, speed, drag) {
 +
            var base = this,
 +
                goToPixel;
 +
 +
            if (base.isTransition) {
 +
                return false;
 +
            }
 +
            if (typeof base.options.beforeMove === "function") {
 +
                base.options.beforeMove.apply(this, [base.$elem]);
 +
            }
 +
            if (position >= base.maximumItem) {
 +
                position = base.maximumItem;
 +
            } else if (position <= 0) {
 +
                position = 0;
 +
            }
 +
 +
            base.currentItem = base.owl.currentItem = position;
 +
            if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
 +
                base.swapSpeed(0);
 +
                if (base.browser.support3d === true) {
 +
                    base.transition3d(base.positionsInArray[position]);
 +
                } else {
 +
                    base.css2slide(base.positionsInArray[position], 1);
 +
                }
 +
                base.afterGo();
 +
                base.singleItemTransition();
 +
                return false;
 +
            }
 +
            goToPixel = base.positionsInArray[position];
 +
 +
            if (base.browser.support3d === true) {
 +
                base.isCss3Finish = false;
 +
 +
                if (speed === true) {
 +
                    base.swapSpeed("paginationSpeed");
 +
                    window.setTimeout(function () {
 +
                        base.isCss3Finish = true;
 +
                    }, base.options.paginationSpeed);
 +
 +
                } else if (speed === "rewind") {
 +
                    base.swapSpeed(base.options.rewindSpeed);
 +
                    window.setTimeout(function () {
 +
                        base.isCss3Finish = true;
 +
                    }, base.options.rewindSpeed);
 +
 +
                } else {
 +
                    base.swapSpeed("slideSpeed");
 +
                    window.setTimeout(function () {
 +
                        base.isCss3Finish = true;
 +
                    }, base.options.slideSpeed);
 +
                }
 +
                base.transition3d(goToPixel);
 +
            } else {
 +
                if (speed === true) {
 +
                    base.css2slide(goToPixel, base.options.paginationSpeed);
 +
                } else if (speed === "rewind") {
 +
                    base.css2slide(goToPixel, base.options.rewindSpeed);
 +
                } else {
 +
                    base.css2slide(goToPixel, base.options.slideSpeed);
 +
                }
 +
            }
 +
            base.afterGo();
 +
        },
 +
 +
        jumpTo : function (position) {
 +
            var base = this;
 +
            if (typeof base.options.beforeMove === "function") {
 +
                base.options.beforeMove.apply(this, [base.$elem]);
 +
            }
 +
            if (position >= base.maximumItem || position === -1) {
 +
                position = base.maximumItem;
 +
            } else if (position <= 0) {
 +
                position = 0;
 +
            }
 +
            base.swapSpeed(0);
 +
            if (base.browser.support3d === true) {
 +
                base.transition3d(base.positionsInArray[position]);
 +
            } else {
 +
                base.css2slide(base.positionsInArray[position], 1);
 +
            }
 +
            base.currentItem = base.owl.currentItem = position;
 +
            base.afterGo();
 +
        },
 +
 +
        afterGo : function () {
 +
            var base = this;
 +
 +
            base.prevArr.push(base.currentItem);
 +
            base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
 +
            base.prevArr.shift(0);
 +
 +
            if (base.prevItem !== base.currentItem) {
 +
                base.checkPagination();
 +
                base.checkNavigation();
 +
                base.eachMoveUpdate();
 +
 +
                if (base.options.autoPlay !== false) {
 +
                    base.checkAp();
 +
                }
 +
            }
 +
            if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
 +
                base.options.afterMove.apply(this, [base.$elem]);
 +
            }
 +
        },
 +
 +
        stop : function () {
 +
            var base = this;
 +
            base.apStatus = "stop";
 +
            window.clearInterval(base.autoPlayInterval);
 +
        },
 +
 +
        checkAp : function () {
 +
            var base = this;
 +
            if (base.apStatus !== "stop") {
 +
                base.play();
 +
            }
 +
        },
 +
 +
        play : function () {
 +
            var base = this;
 +
            base.apStatus = "play";
 +
            if (base.options.autoPlay === false) {
 +
                return false;
 +
            }
 +
            window.clearInterval(base.autoPlayInterval);
 +
            base.autoPlayInterval = window.setInterval(function () {
 +
                base.next(true);
 +
            }, base.options.autoPlay);
 +
        },
 +
 +
        swapSpeed : function (action) {
 +
            var base = this;
 +
            if (action === "slideSpeed") {
 +
                base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
 +
            } else if (action === "paginationSpeed") {
 +
                base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
 +
            } else if (typeof action !== "string") {
 +
                base.$owlWrapper.css(base.addCssSpeed(action));
 +
            }
 +
        },
 +
 +
        addCssSpeed : function (speed) {
 +
            return {
 +
                "-webkit-transition": "all " + speed + "ms ease",
 +
                "-moz-transition": "all " + speed + "ms ease",
 +
                "-o-transition": "all " + speed + "ms ease",
 +
                "transition": "all " + speed + "ms ease"
 +
            };
 +
        },
 +
 +
        removeTransition : function () {
 +
            return {
 +
                "-webkit-transition": "",
 +
                "-moz-transition": "",
 +
                "-o-transition": "",
 +
                "transition": ""
 +
            };
 +
        },
 +
 +
        doTranslate : function (pixels) {
 +
            return {
 +
                "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
 +
                "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
 +
                "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
 +
                "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
 +
                "transform": "translate3d(" + pixels + "px, 0px,0px)"
 +
            };
 +
        },
 +
 +
        transition3d : function (value) {
 +
            var base = this;
 +
            base.$owlWrapper.css(base.doTranslate(value));
 +
        },
 +
 +
        css2move : function (value) {
 +
            var base = this;
 +
            base.$owlWrapper.css({"left" : value});
 +
        },
 +
 +
        css2slide : function (value, speed) {
 +
            var base = this;
 +
 +
            base.isCssFinish = false;
 +
            base.$owlWrapper.stop(true, true).animate({
 +
                "left" : value
 +
            }, {
 +
                duration : speed || base.options.slideSpeed,
 +
                complete : function () {
 +
                    base.isCssFinish = true;
 +
                }
 +
            });
 +
        },
 +
 +
        checkBrowser : function () {
 +
            var base = this,
 +
                translate3D = "translate3d(0px, 0px, 0px)",
 +
                tempElem = document.createElement("div"),
 +
                regex,
 +
                asSupport,
 +
                support3d,
 +
                isTouch;
 +
 +
            tempElem.style.cssText = "  -moz-transform:" + translate3D +
 +
 +
                                  "; -ms-transform:"    + translate3D +
 +
                                  "; -o-transform:"      + translate3D +
 +
                                  "; -webkit-transform:" + translate3D +
 +
                                  "; transform:"        + translate3D;
 +
            regex = /translate3d\(0px, 0px, 0px\)/g;
 +
            asSupport = tempElem.style.cssText.match(regex);
 +
            support3d = (asSupport !== null && asSupport.length === 1);
 +
 +
            isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
 +
 +
            base.browser = {
 +
                "support3d" : support3d,
 +
                "isTouch" : isTouch
 +
            };
 +
        },
 +
 +
        moveEvents : function () {
 +
            var base = this;
 +
            if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
 +
                base.gestures();
 +
                base.disabledEvents();
 +
            }
 +
        },
 +
 +
        eventTypes : function () {
 +
            var base = this,
 +
                types = ["s", "e", "x"];
 +
 +
            base.ev_types = {};
 +
 +
            if (base.options.mouseDrag === true && base.options.touchDrag === true) {
 +
                types = [
 +
                    "touchstart.owl mousedown.owl",
 +
                    "touchmove.owl mousemove.owl",
 +
                    "touchend.owl touchcancel.owl mouseup.owl"
 +
                ];
 +
            } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
 +
                types = [
 +
                    "touchstart.owl",
 +
                    "touchmove.owl",
 +
                    "touchend.owl touchcancel.owl"
 +
                ];
 +
            } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
 +
                types = [
 +
                    "mousedown.owl",
 +
                    "mousemove.owl",
 +
                    "mouseup.owl"
 +
                ];
 +
            }
 +
 +
            base.ev_types.start = types[0];
 +
            base.ev_types.move = types[1];
 +
            base.ev_types.end = types[2];
 +
        },
 +
 +
        disabledEvents :  function () {
 +
            var base = this;
 +
            base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
 +
            base.$elem.on("mousedown.disableTextSelect", function (e) {
 +
                return $(e.target).is('input, textarea, select, option');
 +
            });
 +
        },
 +
 +
        gestures : function () {
 +
            /*jslint unparam: true*/
 +
            var base = this,
 +
                locals = {
 +
                    offsetX : 0,
 +
                    offsetY : 0,
 +
                    baseElWidth : 0,
 +
                    relativePos : 0,
 +
                    position: null,
 +
                    minSwipe : null,
 +
                    maxSwipe: null,
 +
                    sliding : null,
 +
                    dargging: null,
 +
                    targetElement : null
 +
                };
 +
 +
            base.isCssFinish = true;
 +
 +
            function getTouches(event) {
 +
                if (event.touches !== undefined) {
 +
                    return {
 +
                        x : event.touches[0].pageX,
 +
                        y : event.touches[0].pageY
 +
                    };
 +
                }
 +
 +
                if (event.touches === undefined) {
 +
                    if (event.pageX !== undefined) {
 +
                        return {
 +
                            x : event.pageX,
 +
                            y : event.pageY
 +
                        };
 +
                    }
 +
                    if (event.pageX === undefined) {
 +
                        return {
 +
                            x : event.clientX,
 +
                            y : event.clientY
 +
                        };
 +
                    }
 +
                }
 +
            }
 +
 +
            function swapEvents(type) {
 +
                if (type === "on") {
 +
                    $(document).on(base.ev_types.move, dragMove);
 +
                    $(document).on(base.ev_types.end, dragEnd);
 +
                } else if (type === "off") {
 +
                    $(document).off(base.ev_types.move);
 +
                    $(document).off(base.ev_types.end);
 +
                }
 +
            }
 +
 +
            function dragStart(event) {
 +
                var ev = event.originalEvent || event || window.event,
 +
                    position;
 +
 +
                if (ev.which === 3) {
 +
                    return false;
 +
                }
 +
                if (base.itemsAmount <= base.options.items) {
 +
                    return;
 +
                }
 +
                if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
 +
                    return false;
 +
                }
 +
                if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
 +
                    return false;
 +
                }
 +
 +
                if (base.options.autoPlay !== false) {
 +
                    window.clearInterval(base.autoPlayInterval);
 +
                }
 +
 +
                if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
 +
                    base.$owlWrapper.addClass("grabbing");
 +
                }
 +
 +
                base.newPosX = 0;
 +
                base.newRelativeX = 0;
 +
 +
                $(this).css(base.removeTransition());
 +
 +
                position = $(this).position();
 +
                locals.relativePos = position.left;
 +
 +
                locals.offsetX = getTouches(ev).x - position.left;
 +
                locals.offsetY = getTouches(ev).y - position.top;
 +
 +
                swapEvents("on");
 +
 +
                locals.sliding = false;
 +
                locals.targetElement = ev.target || ev.srcElement;
 +
            }
 +
 +
            function dragMove(event) {
 +
                var ev = event.originalEvent || event || window.event,
 +
                    minSwipe,
 +
                    maxSwipe;
 +
 +
                base.newPosX = getTouches(ev).x - locals.offsetX;
 +
                base.newPosY = getTouches(ev).y - locals.offsetY;
 +
                base.newRelativeX = base.newPosX - locals.relativePos;
 +
 +
                if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
 +
                    locals.dragging = true;
 +
                    base.options.startDragging.apply(base, [base.$elem]);
 +
                }
 +
 +
                if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
 +
                    if (ev.preventDefault !== undefined) {
 +
                        ev.preventDefault();
 +
                    } else {
 +
                        ev.returnValue = false;
 +
                    }
 +
                    locals.sliding = true;
 +
                }
 +
 +
                if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
 +
                    $(document).off("touchmove.owl");
 +
                }
 +
 +
                minSwipe = function () {
 +
                    return base.newRelativeX / 5;
 +
                };
 +
 +
                maxSwipe = function () {
 +
                    return base.maximumPixels + base.newRelativeX / 5;
 +
                };
 +
 +
                base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
 +
                if (base.browser.support3d === true) {
 +
                    base.transition3d(base.newPosX);
 +
                } else {
 +
                    base.css2move(base.newPosX);
 +
                }
 +
            }
 +
 +
            function dragEnd(event) {
 +
                var ev = event.originalEvent || event || window.event,
 +
                    newPosition,
 +
                    handlers,
 +
                    owlStopEvent;
 +
 +
                ev.target = ev.target || ev.srcElement;
 +
 +
                locals.dragging = false;
 +
 +
                if (base.browser.isTouch !== true) {
 +
                    base.$owlWrapper.removeClass("grabbing");
 +
                }
 +
 +
                if (base.newRelativeX < 0) {
 +
                    base.dragDirection = base.owl.dragDirection = "left";
 +
                } else {
 +
                    base.dragDirection = base.owl.dragDirection = "right";
 +
                }
 +
 +
                if (base.newRelativeX !== 0) {
 +
                    newPosition = base.getNewPosition();
 +
                    base.goTo(newPosition, false, "drag");
 +
                    if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
 +
                        $(ev.target).on("click.disable", function (ev) {
 +
                            ev.stopImmediatePropagation();
 +
                            ev.stopPropagation();
 +
                            ev.preventDefault();
 +
                            $(ev.target).off("click.disable");
 +
                        });
 +
                        handlers = $._data(ev.target, "events").click;
 +
                        owlStopEvent = handlers.pop();
 +
                        handlers.splice(0, 0, owlStopEvent);
 +
                    }
 +
                }
 +
                swapEvents("off");
 +
            }
 +
            base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
 +
        },
 +
 +
        getNewPosition : function () {
 +
            var base = this,
 +
                newPosition = base.closestItem();
 +
 +
            if (newPosition > base.maximumItem) {
 +
                base.currentItem = base.maximumItem;
 +
                newPosition  = base.maximumItem;
 +
            } else if (base.newPosX >= 0) {
 +
                newPosition = 0;
 +
                base.currentItem = 0;
 +
            }
 +
            return newPosition;
 +
        },
 +
        closestItem : function () {
 +
            var base = this,
 +
                array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
 +
                goal = base.newPosX,
 +
                closest = null;
 +
 +
            $.each(array, function (i, v) {
 +
                if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
 +
                    closest = v;
 +
                    if (base.options.scrollPerPage === true) {
 +
                        base.currentItem = $.inArray(closest, base.positionsInArray);
 +
                    } else {
 +
                        base.currentItem = i;
 +
                    }
 +
                } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
 +
                    if (base.options.scrollPerPage === true) {
 +
                        closest = array[i + 1] || array[array.length - 1];
 +
                        base.currentItem = $.inArray(closest, base.positionsInArray);
 +
                    } else {
 +
                        closest = array[i + 1];
 +
                        base.currentItem = i + 1;
 +
                    }
 +
                }
 +
            });
 +
            return base.currentItem;
 +
        },
 +
 +
        moveDirection : function () {
 +
            var base = this,
 +
                direction;
 +
            if (base.newRelativeX < 0) {
 +
                direction = "right";
 +
                base.playDirection = "next";
 +
            } else {
 +
                direction = "left";
 +
                base.playDirection = "prev";
 +
            }
 +
            return direction;
 +
        },
 +
 +
        customEvents : function () {
 +
            /*jslint unparam: true*/
 +
            var base = this;
 +
            base.$elem.on("owl.next", function () {
 +
                base.next();
 +
            });
 +
            base.$elem.on("owl.prev", function () {
 +
                base.prev();
 +
            });
 +
            base.$elem.on("owl.play", function (event, speed) {
 +
                base.options.autoPlay = speed;
 +
                base.play();
 +
                base.hoverStatus = "play";
 +
            });
 +
            base.$elem.on("owl.stop", function () {
 +
                base.stop();
 +
                base.hoverStatus = "stop";
 +
            });
 +
            base.$elem.on("owl.goTo", function (event, item) {
 +
                base.goTo(item);
 +
            });
 +
            base.$elem.on("owl.jumpTo", function (event, item) {
 +
                base.jumpTo(item);
 +
            });
 +
        },
 +
 +
        stopOnHover : function () {
 +
            var base = this;
 +
            if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
 +
                base.$elem.on("mouseover", function () {
 +
                    base.stop();
 +
                });
 +
                base.$elem.on("mouseout", function () {
 +
                    if (base.hoverStatus !== "stop") {
 +
                        base.play();
 +
                    }
 +
                });
 +
            }
 +
        },
 +
 +
        lazyLoad : function () {
 +
            var base = this,
 +
                i,
 +
                $item,
 +
                itemNumber,
 +
                $lazyImg,
 +
                follow;
 +
 +
            if (base.options.lazyLoad === false) {
 +
                return false;
 +
            }
 +
            for (i = 0; i < base.itemsAmount; i += 1) {
 +
                $item = $(base.$owlItems[i]);
 +
 +
                if ($item.data("owl-loaded") === "loaded") {
 +
                    continue;
 +
                }
 +
 +
                itemNumber = $item.data("owl-item");
 +
                $lazyImg = $item.find(".lazyOwl");
 +
 +
                if (typeof $lazyImg.data("src") !== "string") {
 +
                    $item.data("owl-loaded", "loaded");
 +
                    continue;
 +
                }
 +
                if ($item.data("owl-loaded") === undefined) {
 +
                    $lazyImg.hide();
 +
                    $item.addClass("loading").data("owl-loaded", "checked");
 +
                }
 +
                if (base.options.lazyFollow === true) {
 +
                    follow = itemNumber >= base.currentItem;
 +
                } else {
 +
                    follow = true;
 +
                }
 +
                if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
 +
                    base.lazyPreload($item, $lazyImg);
 +
                }
 +
            }
 +
        },
 +
 +
        lazyPreload : function ($item, $lazyImg) {
 +
            var base = this,
 +
                iterations = 0,
 +
                isBackgroundImg;
 +
 +
            if ($lazyImg.prop("tagName") === "DIV") {
 +
                $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
 +
                isBackgroundImg = true;
 +
            } else {
 +
                $lazyImg[0].src = $lazyImg.data("src");
 +
            }
 +
 +
            function showImage() {
 +
                $item.data("owl-loaded", "loaded").removeClass("loading");
 +
                $lazyImg.removeAttr("data-src");
 +
                if (base.options.lazyEffect === "fade") {
 +
                    $lazyImg.fadeIn(400);
 +
                } else {
 +
                    $lazyImg.show();
 +
                }
 +
                if (typeof base.options.afterLazyLoad === "function") {
 +
                    base.options.afterLazyLoad.apply(this, [base.$elem]);
 +
                }
 +
            }
 +
 +
            function checkLazyImage() {
 +
                iterations += 1;
 +
                if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
 +
                    showImage();
 +
                } else if (iterations <= 100) {//if image loads in less than 10 seconds
 +
                    window.setTimeout(checkLazyImage, 100);
 +
                } else {
 +
                    showImage();
 +
                }
 +
            }
 +
 +
            checkLazyImage();
 +
        },
 +
 +
        autoHeight : function () {
 +
            var base = this,
 +
                $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
 +
                iterations;
 +
 +
            function addHeight() {
 +
                var $currentItem = $(base.$owlItems[base.currentItem]).height();
 +
                base.wrapperOuter.css("height", $currentItem + "px");
 +
                if (!base.wrapperOuter.hasClass("autoHeight")) {
 +
                    window.setTimeout(function () {
 +
                        base.wrapperOuter.addClass("autoHeight");
 +
                    }, 0);
 +
                }
 +
            }
 +
 +
            function checkImage() {
 +
                iterations += 1;
 +
                if (base.completeImg($currentimg.get(0))) {
 +
                    addHeight();
 +
                } else if (iterations <= 100) { //if image loads in less than 10 seconds
 +
                    window.setTimeout(checkImage, 100);
 +
                } else {
 +
                    base.wrapperOuter.css("height", ""); //Else remove height attribute
 +
                }
 +
            }
 +
 +
            if ($currentimg.get(0) !== undefined) {
 +
                iterations = 0;
 +
                checkImage();
 +
            } else {
 +
                addHeight();
 +
            }
 +
        },
 +
 +
        completeImg : function (img) {
 +
            var naturalWidthType;
 +
 +
            if (!img.complete) {
 +
                return false;
 +
            }
 +
            naturalWidthType = typeof img.naturalWidth;
 +
            if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
 +
                return false;
 +
            }
 +
            return true;
 +
        },
 +
 +
        onVisibleItems : function () {
 +
            var base = this,
 +
                i;
 +
 +
            if (base.options.addClassActive === true) {
 +
                base.$owlItems.removeClass("active");
 +
            }
 +
            base.visibleItems = [];
 +
            for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
 +
                base.visibleItems.push(i);
 +
 +
                if (base.options.addClassActive === true) {
 +
                    $(base.$owlItems[i]).addClass("active");
 +
                }
 +
            }
 +
            base.owl.visibleItems = base.visibleItems;
 +
        },
 +
 +
        transitionTypes : function (className) {
 +
            var base = this;
 +
            //Currently available: "fade", "backSlide", "goDown", "fadeUp"
 +
            base.outClass = "owl-" + className + "-out";
 +
            base.inClass = "owl-" + className + "-in";
 +
        },
 +
 +
        singleItemTransition : function () {
 +
            var base = this,
 +
                outClass = base.outClass,
 +
                inClass = base.inClass,
 +
                $currentItem = base.$owlItems.eq(base.currentItem),
 +
                $prevItem = base.$owlItems.eq(base.prevItem),
 +
                prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
 +
                origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
 +
                animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
 +
 +
            base.isTransition = true;
 +
 +
            base.$owlWrapper
 +
                .addClass('owl-origin')
 +
                .css({
 +
                    "-webkit-transform-origin" : origin + "px",
 +
                    "-moz-perspective-origin" : origin + "px",
 +
                    "perspective-origin" : origin + "px"
 +
                });
 +
            function transStyles(prevPos) {
 +
                return {
 +
                    "position" : "relative",
 +
                    "left" : prevPos + "px"
 +
                };
 +
            }
 +
 +
            $prevItem
 +
                .css(transStyles(prevPos, 10))
 +
                .addClass(outClass)
 +
                .on(animEnd, function () {
 +
                    base.endPrev = true;
 +
                    $prevItem.off(animEnd);
 +
                    base.clearTransStyle($prevItem, outClass);
 +
                });
 +
 +
            $currentItem
 +
                .addClass(inClass)
 +
                .on(animEnd, function () {
 +
                    base.endCurrent = true;
 +
                    $currentItem.off(animEnd);
 +
                    base.clearTransStyle($currentItem, inClass);
 +
                });
 +
        },
 +
 +
        clearTransStyle : function (item, classToRemove) {
 +
            var base = this;
 +
            item.css({
 +
                "position" : "",
 +
                "left" : ""
 +
            }).removeClass(classToRemove);
 +
 +
            if (base.endPrev && base.endCurrent) {
 +
                base.$owlWrapper.removeClass('owl-origin');
 +
                base.endPrev = false;
 +
                base.endCurrent = false;
 +
                base.isTransition = false;
 +
            }
 +
        },
 +
 +
        owlStatus : function () {
 +
            var base = this;
 +
            base.owl = {
 +
                "userOptions"  : base.userOptions,
 +
                "baseElement"  : base.$elem,
 +
                "userItems"    : base.$userItems,
 +
                "owlItems"      : base.$owlItems,
 +
                "currentItem"  : base.currentItem,
 +
                "prevItem"      : base.prevItem,
 +
                "visibleItems"  : base.visibleItems,
 +
                "isTouch"      : base.browser.isTouch,
 +
                "browser"      : base.browser,
 +
                "dragDirection" : base.dragDirection
 +
            };
 +
        },
 +
 +
        clearEvents : function () {
 +
            var base = this;
 +
            base.$elem.off(".owl owl mousedown.disableTextSelect");
 +
            $(document).off(".owl owl");
 +
            $(window).off("resize", base.resizer);
 +
        },
 +
 +
        unWrap : function () {
 +
            var base = this;
 +
            if (base.$elem.children().length !== 0) {
 +
                base.$owlWrapper.unwrap();
 +
                base.$userItems.unwrap().unwrap();
 +
                if (base.owlControls) {
 +
                    base.owlControls.remove();
 +
                }
 +
            }
 +
            base.clearEvents();
 +
            base.$elem
 +
                .attr("style", base.$elem.data("owl-originalStyles") || "")
 +
                .attr("class", base.$elem.data("owl-originalClasses"));
 +
        },
 +
 +
        destroy : function () {
 +
            var base = this;
 +
            base.stop();
 +
            window.clearInterval(base.checkVisible);
 +
            base.unWrap();
 +
            base.$elem.removeData();
 +
        },
 +
 +
        reinit : function (newOptions) {
 +
            var base = this,
 +
                options = $.extend({}, base.userOptions, newOptions);
 +
            base.unWrap();
 +
            base.init(options, base.$elem);
 +
        },
 +
 +
        addItem : function (htmlString, targetPosition) {
 +
            var base = this,
 +
                position;
 +
 +
            if (!htmlString) {return false; }
 +
 +
            if (base.$elem.children().length === 0) {
 +
                base.$elem.append(htmlString);
 +
                base.setVars();
 +
                return false;
 +
            }
 +
            base.unWrap();
 +
            if (targetPosition === undefined || targetPosition === -1) {
 +
                position = -1;
 +
            } else {
 +
                position = targetPosition;
 +
            }
 +
            if (position >= base.$userItems.length || position === -1) {
 +
                base.$userItems.eq(-1).after(htmlString);
 +
            } else {
 +
                base.$userItems.eq(position).before(htmlString);
 +
            }
 +
 +
            base.setVars();
 +
        },
 +
 +
        removeItem : function (targetPosition) {
 +
            var base = this,
 +
                position;
 +
 +
            if (base.$elem.children().length === 0) {
 +
                return false;
 +
            }
 +
            if (targetPosition === undefined || targetPosition === -1) {
 +
                position = -1;
 +
            } else {
 +
                position = targetPosition;
 +
            }
 +
 +
            base.unWrap();
 +
            base.$userItems.eq(position).remove();
 +
            base.setVars();
 +
        }
 +
 +
    };
 +
 +
    $.fn.owlCarousel = function (options) {
 +
        return this.each(function () {
 +
            if ($(this).data("owl-init") === true) {
 +
                return false;
 +
            }
 +
            $(this).data("owl-init", true);
 +
            var carousel = Object.create(Carousel);
 +
            carousel.init(options, this);
 +
            $.data(this, "owlCarousel", carousel);
 +
        });
 +
    };
 +
 +
    $.fn.owlCarousel.options = {
 +
 +
        items : 5,
 +
        itemsCustom : false,
 +
        itemsDesktop : [1199, 4],
 +
        itemsDesktopSmall : [979, 3],
 +
        itemsTablet : [768, 2],
 +
        itemsTabletSmall : false,
 +
        itemsMobile : [479, 1],
 +
        singleItem : false,
 +
        itemsScaleUp : false,
 +
 +
        slideSpeed : 200,
 +
        paginationSpeed : 800,
 +
        rewindSpeed : 1000,
 +
 +
        autoPlay : false,
 +
        stopOnHover : false,
 +
 +
        navigation : false,
 +
        navigationText : ["prev", "next"],
 +
        rewindNav : true,
 +
        scrollPerPage : false,
 +
 +
        pagination : true,
 +
        paginationNumbers : false,
 +
 +
        responsive : true,
 +
        responsiveRefreshRate : 200,
 +
        responsiveBaseWidth : window,
 +
 +
        baseClass : "owl-carousel",
 +
        theme : "owl-theme",
 +
 +
        lazyLoad : false,
 +
        lazyFollow : true,
 +
        lazyEffect : "fade",
 +
 +
        autoHeight : false,
 +
 +
        jsonPath : false,
 +
        jsonSuccess : false,
 +
 +
        dragBeforeAnimFinish : true,
 +
        mouseDrag : true,
 +
        touchDrag : true,
 +
 +
        addClassActive : false,
 +
        transitionStyle : false,
 +
 +
        beforeUpdate : false,
 +
        afterUpdate : false,
 +
        beforeInit : false,
 +
        afterInit : false,
 +
        beforeMove : false,
 +
        afterMove : false,
 +
        afterAction : false,
 +
        startDragging : false,
 +
        afterLazyLoad: false
 +
    };
 +
}(jQuery, window, document));</script><!-- Owl Carousel Plugin -->
 +
<script type="text/javascript">// SmoothScroll for websites v1.2.1
 +
// Licensed under the terms of the MIT license.
 +
 +
// People involved
 +
//  - Balazs Galambosi (maintainer) 
 +
//  - Michael Herf    (Pulse Algorithm)
 +
 +
(function(){
 +
 
 +
// Scroll Variables (tweakable)
 +
var defaultOptions = {
 +
 +
    // Scrolling Core
 +
    frameRate        : 150, // [Hz]
 +
    animationTime    : 400, // [px]
 +
    stepSize        : 120, // [px]
 +
 +
    // Pulse (less tweakable)
 +
    // ratio of "tail" to "acceleration"
 +
    pulseAlgorithm  : true,
 +
    pulseScale      : 8,
 +
    pulseNormalize  : 1,
 +
 +
    // Acceleration
 +
    accelerationDelta : 20,  // 20
 +
    accelerationMax  : 1,  // 1
 +
 +
    // Keyboard Settings
 +
    keyboardSupport  : true,  // option
 +
    arrowScroll      : 50,    // [px]
 +
 +
    // Other
 +
    touchpadSupport  : true,
 +
    fixedBackground  : true,
 +
    excluded          : ""   
 +
};
 +
 +
var options = defaultOptions;
 +
 +
 +
// Other Variables
 +
var isExcluded = false;
 +
var isFrame = false;
 +
var direction = { x: 0, y: 0 };
 +
var initDone  = false;
 +
var root = document.documentElement;
 +
var activeElement;
 +
var observer;
 +
var deltaBuffer = [ 120, 120, 120 ];
 +
 +
var key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32,
 +
            pageup: 33, pagedown: 34, end: 35, home: 36 };
 +
 +
 +
/***********************************************
 +
* SETTINGS
 +
***********************************************/
 +
 +
var options = defaultOptions;
 +
 +
 +
/***********************************************
 +
* INITIALIZE
 +
***********************************************/
 +
 +
/**
 +
* Tests if smooth scrolling is allowed. Shuts down everything if not.
 +
*/
 +
function initTest() {
 +
 +
    var disableKeyboard = false;
 +
   
 +
    // disable keyboard support if anything above requested it
 +
    if (disableKeyboard) {
 +
        removeEvent("keydown", keydown);
 +
    }
 +
 +
    if (options.keyboardSupport && !disableKeyboard) {
 +
        addEvent("keydown", keydown);
 +
    }
 +
}
 +
 +
/**
 +
* Sets up scrolls array, determines if frames are involved.
 +
*/
 +
function init() {
 +
 
 +
    if (!document.body) return;
 +
 +
    var body = document.body;
 +
    var html = document.documentElement;
 +
    var windowHeight = window.innerHeight;
 +
    var scrollHeight = body.scrollHeight;
 +
   
 +
    // check compat mode for root element
 +
    root = (document.compatMode.indexOf('CSS') >= 0) ? html : body;
 +
    activeElement = body;
 +
   
 +
    initTest();
 +
    initDone = true;
 +
 +
    // Checks if this script is running in a frame
 +
    if (top != self) {
 +
        isFrame = true;
 +
    }
 +
 +
    /**
 +
    * This fixes a bug where the areas left and right to
 +
    * the content does not trigger the onmousewheel event
 +
    * on some pages. e.g.: html, body { height: 100% }
 +
    */
 +
    else if (scrollHeight > windowHeight &&
 +
            (body.offsetHeight <= windowHeight ||
 +
            html.offsetHeight <= windowHeight)) {
 +
 +
        html.style.height = 'auto';
 +
        setTimeout(refresh, 10);
 +
 +
        // clearfix
 +
        if (root.offsetHeight <= windowHeight) {
 +
            var underlay = document.createElement("div");
 +
            underlay.style.clear = "both";
 +
            body.appendChild(underlay);
 +
        }
 +
    }
 +
 +
    // disable fixed background
 +
    if (!options.fixedBackground && !isExcluded) {
 +
        body.style.backgroundAttachment = "scroll";
 +
        html.style.backgroundAttachment = "scroll";
 +
    }
 +
}
 +
 +
 +
/************************************************
 +
* SCROLLING
 +
************************************************/
 +
 +
var que = [];
 +
var pending = false;
 +
var lastScroll = +new Date;
 +
 +
/**
 +
* Pushes scroll actions to the scrolling queue.
 +
*/
 +
function scrollArray(elem, left, top, delay) {
 +
   
 +
    delay || (delay = 1000);
 +
    directionCheck(left, top);
 +
 +
    if (options.accelerationMax != 1) {
 +
        var now = +new Date;
 +
        var elapsed = now - lastScroll;
 +
        if (elapsed < options.accelerationDelta) {
 +
            var factor = (1 + (30 / elapsed)) / 2;
 +
            if (factor > 1) {
 +
                factor = Math.min(factor, options.accelerationMax);
 +
                left *= factor;
 +
                top  *= factor;
 +
            }
 +
        }
 +
        lastScroll = +new Date;
 +
    }         
 +
   
 +
    // push a scroll command
 +
    que.push({
 +
        x: left,
 +
        y: top,
 +
        lastX: (left < 0) ? 0.99 : -0.99,
 +
        lastY: (top  < 0) ? 0.99 : -0.99,
 +
        start: +new Date
 +
    });
 +
       
 +
    // don't act if there's a pending queue
 +
    if (pending) {
 +
        return;
 +
    } 
 +
 +
    var scrollWindow = (elem === document.body);
 +
   
 +
    var step = function (time) {
 +
       
 +
        var now = +new Date;
 +
        var scrollX = 0;
 +
        var scrollY = 0;
 +
   
 +
        for (var i = 0; i < que.length; i++) {
 +
           
 +
            var item = que[i];
 +
            var elapsed  = now - item.start;
 +
            var finished = (elapsed >= options.animationTime);
 +
           
 +
            // scroll position: [0, 1]
 +
            var position = (finished) ? 1 : elapsed / options.animationTime;
 +
           
 +
            // easing [optional]
 +
            if (options.pulseAlgorithm) {
 +
                position = pulse(position);
 +
            }
 +
           
 +
            // only need the difference
 +
            var x = (item.x * position - item.lastX) >> 0;
 +
            var y = (item.y * position - item.lastY) >> 0;
 +
           
 +
            // add this to the total scrolling
 +
            scrollX += x;
 +
            scrollY += y;           
 +
           
 +
            // update last values
 +
            item.lastX += x;
 +
            item.lastY += y;
 +
       
 +
            // delete and step back if it's over
 +
            if (finished) {
 +
                que.splice(i, 1); i--;
 +
            }         
 +
        }
 +
 +
        // scroll left and top
 +
        if (scrollWindow) {
 +
            window.scrollBy(scrollX, scrollY);
 +
        }
 +
        else {
 +
            if (scrollX) elem.scrollLeft += scrollX;
 +
            if (scrollY) elem.scrollTop  += scrollY;                   
 +
        }
 +
       
 +
        // clean up if there's nothing left to do
 +
        if (!left && !top) {
 +
            que = [];
 +
        }
 +
       
 +
        if (que.length) {
 +
            requestFrame(step, elem, (delay / options.frameRate + 1));
 +
        } else {
 +
            pending = false;
 +
        }
 +
    };
 +
   
 +
    // start a new queue of actions
 +
    requestFrame(step, elem, 0);
 +
    pending = true;
 +
}
 +
 +
 +
/***********************************************
 +
* EVENTS
 +
***********************************************/
 +
 +
/**
 +
* Mouse wheel handler.
 +
* @param {Object} event
 +
*/
 +
function wheel(event) {
 +
 +
    if (!initDone) {
 +
        init();
 +
    }
 +
   
 +
    var target = event.target;
 +
    var overflowing = overflowingAncestor(target);
 +
   
 +
    // use default if there's no overflowing
 +
    // element or default action is prevented   
 +
    if (!overflowing || event.defaultPrevented ||
 +
        isNodeName(activeElement, "embed") ||
 +
      (isNodeName(target, "embed") && /\.pdf/i.test(target.src))) {
 +
        return true;
 +
    }
 +
 +
    var deltaX = event.wheelDeltaX || 0;
 +
    var deltaY = event.wheelDeltaY || 0;
 +
   
 +
    // use wheelDelta if deltaX/Y is not available
 +
    if (!deltaX && !deltaY) {
 +
        deltaY = event.wheelDelta || 0;
 +
    }
 +
 +
    // check if it's a touchpad scroll that should be ignored
 +
    if (!options.touchpadSupport && isTouchpad(deltaY)) {
 +
        return true;
 +
    }
 +
 +
    // scale by step size
 +
    // delta is 120 most of the time
 +
    // synaptics seems to send 1 sometimes
 +
    if (Math.abs(deltaX) > 1.2) {
 +
        deltaX *= options.stepSize / 120;
 +
    }
 +
    if (Math.abs(deltaY) > 1.2) {
 +
        deltaY *= options.stepSize / 120;
 +
    }
 +
   
 +
    scrollArray(overflowing, -deltaX, -deltaY);
 +
    event.preventDefault();
 +
}
 +
 +
/**
 +
* Keydown event handler.
 +
* @param {Object} event
 +
*/
 +
function keydown(event) {
 +
 +
    var target  = event.target;
 +
    var modifier = event.ctrlKey || event.altKey || event.metaKey ||
 +
                  (event.shiftKey && event.keyCode !== key.spacebar);
 +
   
 +
    // do nothing if user is editing text
 +
    // or using a modifier key (except shift)
 +
    // or in a dropdown
 +
    if ( /input|textarea|select|embed/i.test(target.nodeName) ||
 +
        target.isContentEditable ||
 +
        event.defaultPrevented  ||
 +
        modifier ) {
 +
      return true;
 +
    }
 +
    // spacebar should trigger button press
 +
    if (isNodeName(target, "button") &&
 +
        event.keyCode === key.spacebar) {
 +
      return true;
 +
    }
 +
   
 +
    var shift, x = 0, y = 0;
 +
    var elem = overflowingAncestor(activeElement);
 +
    var clientHeight = elem.clientHeight;
 +
 +
    if (elem == document.body) {
 +
        clientHeight = window.innerHeight;
 +
    }
 +
 +
    switch (event.keyCode) {
 +
        case key.up:
 +
            y = -options.arrowScroll;
 +
            break;
 +
        case key.down:
 +
            y = options.arrowScroll;
 +
            break;       
 +
        case key.spacebar: // (+ shift)
 +
            shift = event.shiftKey ? 1 : -1;
 +
            y = -shift * clientHeight * 0.9;
 +
            break;
 +
        case key.pageup:
 +
            y = -clientHeight * 0.9;
 +
            break;
 +
        case key.pagedown:
 +
            y = clientHeight * 0.9;
 +
            break;
 +
        case key.home:
 +
            y = -elem.scrollTop;
 +
            break;
 +
        case key.end:
 +
            var damt = elem.scrollHeight - elem.scrollTop - clientHeight;
 +
            y = (damt > 0) ? damt+10 : 0;
 +
            break;
 +
        case key.left:
 +
            x = -options.arrowScroll;
 +
            break;
 +
        case key.right:
 +
            x = options.arrowScroll;
 +
            break;           
 +
        default:
 +
            return true; // a key we don't care about
 +
    }
 +
 +
    scrollArray(elem, x, y);
 +
    event.preventDefault();
 +
}
 +
 +
/**
 +
* Mousedown event only for updating activeElement
 +
*/
 +
function mousedown(event) {
 +
    activeElement = event.target;
 +
}
 +
 +
 +
/***********************************************
 +
* OVERFLOW
 +
***********************************************/
 +
 +
var cache = {}; // cleared out every once in while
 +
setInterval(function () { cache = {}; }, 10 * 1000);
 +
 +
var uniqueID = (function () {
 +
    var i = 0;
 +
    return function (el) {
 +
        return el.uniqueID || (el.uniqueID = i++);
 +
    };
 +
})();
 +
 +
function setCache(elems, overflowing) {
 +
    for (var i = elems.length; i--;)
 +
        cache[uniqueID(elems[i])] = overflowing;
 +
    return overflowing;
 +
}
 +
 +
function overflowingAncestor(el) {
 +
    var elems = [];
 +
    var rootScrollHeight = root.scrollHeight;
 +
    do {
 +
        var cached = cache[uniqueID(el)];
 +
        if (cached) {
 +
            return setCache(elems, cached);
 +
        }
 +
        elems.push(el);
 +
        if (rootScrollHeight === el.scrollHeight) {
 +
            if (!isFrame || root.clientHeight + 10 < rootScrollHeight) {
 +
                return setCache(elems, document.body); // scrolling root in WebKit
 +
            }
 +
        } else if (el.clientHeight + 10 < el.scrollHeight) {
 +
            overflow = getComputedStyle(el, "").getPropertyValue("overflow-y");
 +
            if (overflow === "scroll" || overflow === "auto") {
 +
                return setCache(elems, el);
 +
            }
 +
        }
 +
    } while (el = el.parentNode);
 +
}
 +
 +
 +
/***********************************************
 +
* HELPERS
 +
***********************************************/
 +
 +
function addEvent(type, fn, bubble) {
 +
    window.addEventListener(type, fn, (bubble||false));
 +
}
 +
 +
function removeEvent(type, fn, bubble) {
 +
    window.removeEventListener(type, fn, (bubble||false)); 
 +
}
 +
 +
function isNodeName(el, tag) {
 +
    return (el.nodeName||"").toLowerCase() === tag.toLowerCase();
 +
}
 +
 +
function directionCheck(x, y) {
 +
    x = (x > 0) ? 1 : -1;
 +
    y = (y > 0) ? 1 : -1;
 +
    if (direction.x !== x || direction.y !== y) {
 +
        direction.x = x;
 +
        direction.y = y;
 +
        que = [];
 +
        lastScroll = 0;
 +
    }
 +
}
 +
 +
var deltaBufferTimer;
 +
 +
function isTouchpad(deltaY) {
 +
    if (!deltaY) return;
 +
    deltaY = Math.abs(deltaY)
 +
    deltaBuffer.push(deltaY);
 +
    deltaBuffer.shift();
 +
    clearTimeout(deltaBufferTimer);
 +
 +
    var allEquals    = (deltaBuffer[0] == deltaBuffer[1] &&
 +
                        deltaBuffer[1] == deltaBuffer[2]);
 +
    var allDivisable = (isDivisible(deltaBuffer[0], 120) &&
 +
                        isDivisible(deltaBuffer[1], 120) &&
 +
                        isDivisible(deltaBuffer[2], 120));
 +
    return !(allEquals || allDivisable);
 +
}
 +
 +
function isDivisible(n, divisor) {
 +
    return (Math.floor(n / divisor) == n / divisor);
 +
}
 +
 +
var requestFrame = (function () {
 +
      return  window.requestAnimationFrame      ||
 +
              window.webkitRequestAnimationFrame ||
 +
              function (callback, element, delay) {
 +
                  window.setTimeout(callback, delay || (1000/60));
 +
              };
 +
})();
 +
 +
 +
/***********************************************
 +
* PULSE
 +
***********************************************/
 +
 +
/**
 +
* Viscous fluid with a pulse for part and decay for the rest.
 +
* - Applies a fixed force over an interval (a damped acceleration), and
 +
* - Lets the exponential bleed away the velocity over a longer interval
 +
* - Michael Herf, http://stereopsis.com/stopping/
 +
*/
 +
function pulse_(x) {
 +
    var val, start, expx;
 +
    // test
 +
    x = x * options.pulseScale;
 +
    if (x < 1) { // acceleartion
 +
        val = x - (1 - Math.exp(-x));
 +
    } else {    // tail
 +
        // the previous animation ended here:
 +
        start = Math.exp(-1);
 +
        // simple viscous drag
 +
        x -= 1;
 +
        expx = 1 - Math.exp(-x);
 +
        val = start + (expx * (1 - start));
 +
    }
 +
    return val * options.pulseNormalize;
 +
}
 +
 +
function pulse(x) {
 +
    if (x >= 1) return 1;
 +
    if (x <= 0) return 0;
 +
 +
    if (options.pulseNormalize == 1) {
 +
        options.pulseNormalize /= pulse_(1);
 +
    }
 +
    return pulse_(x);
 +
}
 +
 +
var isChrome = /chrome/i.test(window.navigator.userAgent);
 +
var isMouseWheelSupported = 'onmousewheel' in document;
 +
 +
if (isMouseWheelSupported && isChrome) {
 +
addEvent("mousedown", mousedown);
 +
addEvent("mousewheel", wheel);
 +
addEvent("load", init);
 +
};
 +
 +
})();</script>
 +
<script type="text/javascript" >/*!
 +
* skrollr core
 +
*
 +
* Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr
 +
*
 +
* Free to use under terms of MIT license
 +
*/
 +
(function(window, document, undefined) {
 +
'use strict';
 +
 +
/*
 +
* Global api.
 +
*/
 +
var skrollr = window.skrollr = {
 +
get: function() {
 +
return _instance;
 +
},
 +
//Main entry point.
 +
init: function(options) {
 +
return _instance || new Skrollr(options);
 +
},
 +
VERSION: '0.6.21'
 +
};
 +
 +
//Minify optimization.
 +
var hasProp = Object.prototype.hasOwnProperty;
 +
var Math = window.Math;
 +
var getStyle = window.getComputedStyle;
 +
 +
//They will be filled when skrollr gets initialized.
 +
var documentElement;
 +
var body;
 +
 +
var EVENT_TOUCHSTART = 'touchstart';
 +
var EVENT_TOUCHMOVE = 'touchmove';
 +
var EVENT_TOUCHCANCEL = 'touchcancel';
 +
var EVENT_TOUCHEND = 'touchend';
 +
 +
var SKROLLABLE_CLASS = 'skrollable';
 +
var SKROLLABLE_BEFORE_CLASS = SKROLLABLE_CLASS + '-before';
 +
var SKROLLABLE_BETWEEN_CLASS = SKROLLABLE_CLASS + '-between';
 +
var SKROLLABLE_AFTER_CLASS = SKROLLABLE_CLASS + '-after';
 +
 +
var SKROLLR_CLASS = 'skrollr';
 +
var NO_SKROLLR_CLASS = 'no-' + SKROLLR_CLASS;
 +
var SKROLLR_DESKTOP_CLASS = SKROLLR_CLASS + '-desktop';
 +
var SKROLLR_MOBILE_CLASS = SKROLLR_CLASS + '-mobile';
 +
 +
var DEFAULT_EASING = 'linear';
 +
var DEFAULT_DURATION = 1000;//ms
 +
var DEFAULT_MOBILE_DECELERATION = 0.004;//pixel/ms²
 +
 +
var DEFAULT_SMOOTH_SCROLLING_DURATION = 200;//ms
 +
 +
var ANCHOR_START = 'start';
 +
var ANCHOR_END = 'end';
 +
var ANCHOR_CENTER = 'center';
 +
var ANCHOR_BOTTOM = 'bottom';
 +
 +
//The property which will be added to the DOM element to hold the ID of the skrollable.
 +
var SKROLLABLE_ID_DOM_PROPERTY = '___skrollable_id';
 +
 +
var rxTouchIgnoreTags = /^(?:input|textarea|button|select)$/i;
 +
 +
var rxTrim = /^\s+|\s+$/g;
 +
 +
//Find all data-attributes. data-[_constant]-[offset]-[anchor]-[anchor].
 +
var rxKeyframeAttribute = /^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/;
 +
 +
var rxPropValue = /\s*([\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi;
 +
 +
//Easing function names follow the property in square brackets.
 +
var rxPropEasing = /^([a-z\-]+)\[(\w+)\]$/;
 +
 +
var rxCamelCase = /-([a-z])/g;
 +
var rxCamelCaseFn = function(str, letter) {
 +
return letter.toUpperCase();
 +
};
 +
 +
//Numeric values with optional sign.
 +
var rxNumericValue = /[\-+]?[\d]*\.?[\d]+/g;
 +
 +
//Used to replace occurences of {?} with a number.
 +
var rxInterpolateString = /\{\?\}/g;
 +
 +
//Finds rgb(a) colors, which don't use the percentage notation.
 +
var rxRGBAIntegerColor = /rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g;
 +
 +
//Finds all gradients.
 +
var rxGradient = /[a-z\-]+-gradient/g;
 +
 +
//Vendor prefix. Will be set once skrollr gets initialized.
 +
var theCSSPrefix = '';
 +
var theDashedCSSPrefix = '';
 +
 +
//Will be called once (when skrollr gets initialized).
 +
var detectCSSPrefix = function() {
 +
//Only relevant prefixes. May be extended.
 +
//Could be dangerous if there will ever be a CSS property which actually starts with "ms". Don't hope so.
 +
var rxPrefixes = /^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/;
 +
 +
//Detect prefix for current browser by finding the first property using a prefix.
 +
if(!getStyle) {
 +
return;
 +
}
 +
 +
var style = getStyle(body, null);
 +
 +
for(var k in style) {
 +
//We check the key and if the key is a number, we check the value as well, because safari's getComputedStyle returns some weird array-like thingy.
 +
theCSSPrefix = (k.match(rxPrefixes) || (+k == k && style[k].match(rxPrefixes)));
 +
 +
if(theCSSPrefix) {
 +
break;
 +
}
 +
}
 +
 +
//Did we even detect a prefix?
 +
if(!theCSSPrefix) {
 +
theCSSPrefix = theDashedCSSPrefix = '';
 +
 +
return;
 +
}
 +
 +
theCSSPrefix = theCSSPrefix[0];
 +
 +
//We could have detected either a dashed prefix or this camelCaseish-inconsistent stuff.
 +
if(theCSSPrefix.slice(0,1) === '-') {
 +
theDashedCSSPrefix = theCSSPrefix;
 +
 +
//There's no logic behind these. Need a look up.
 +
theCSSPrefix = ({
 +
'-webkit-': 'webkit',
 +
'-moz-': 'Moz',
 +
'-ms-': 'ms',
 +
'-o-': 'O'
 +
})[theCSSPrefix];
 +
} else {
 +
theDashedCSSPrefix = '-' + theCSSPrefix.toLowerCase() + '-';
 +
}
 +
};
 +
 +
var polyfillRAF = function() {
 +
var requestAnimFrame = window.requestAnimationFrame || window[theCSSPrefix.toLowerCase() + 'RequestAnimationFrame'];
 +
 +
var lastTime = _now();
 +
 +
if(_isMobile || !requestAnimFrame) {
 +
requestAnimFrame = function(callback) {
 +
//How long did it take to render?
 +
var deltaTime = _now() - lastTime;
 +
var delay = Math.max(0, 1000 / 60 - deltaTime);
 +
 +
return window.setTimeout(function() {
 +
lastTime = _now();
 +
callback();
 +
}, delay);
 +
};
 +
}
 +
 +
return requestAnimFrame;
 +
};
 +
 +
var polyfillCAF = function() {
 +
var cancelAnimFrame = window.cancelAnimationFrame || window[theCSSPrefix.toLowerCase() + 'CancelAnimationFrame'];
 +
 +
if(_isMobile || !cancelAnimFrame) {
 +
cancelAnimFrame = function(timeout) {
 +
return window.clearTimeout(timeout);
 +
};
 +
}
 +
 +
return cancelAnimFrame;
 +
};
 +
 +
//Built-in easing functions.
 +
var easings = {
 +
begin: function() {
 +
return 0;
 +
},
 +
end: function() {
 +
return 1;
 +
},
 +
linear: function(p) {
 +
return p;
 +
},
 +
quadratic: function(p) {
 +
return p * p;
 +
},
 +
cubic: function(p) {
 +
return p * p * p;
 +
},
 +
swing: function(p) {
 +
return (-Math.cos(p * Math.PI) / 2) + 0.5;
 +
},
 +
sqrt: function(p) {
 +
return Math.sqrt(p);
 +
},
 +
outCubic: function(p) {
 +
return (Math.pow((p - 1), 3) + 1);
 +
},
 +
//see https://www.desmos.com/calculator/tbr20s8vd2 for how I did this
 +
bounce: function(p) {
 +
var a;
 +
 +
if(p <= 0.5083) {
 +
a = 3;
 +
} else if(p <= 0.8489) {
 +
a = 9;
 +
} else if(p <= 0.96208) {
 +
a = 27;
 +
} else if(p <= 0.99981) {
 +
a = 91;
 +
} else {
 +
return 1;
 +
}
 +
 +
return 1 - Math.abs(3 * Math.cos(p * a * 1.028) / a);
 +
}
 +
};
 +
 +
/**
 +
* Constructor.
 +
*/
 +
function Skrollr(options) {
 +
documentElement = document.documentElement;
 +
body = document.body;
 +
 +
detectCSSPrefix();
 +
 +
_instance = this;
 +
 +
options = options || {};
 +
 +
_constants = options.constants || {};
 +
 +
//We allow defining custom easings or overwrite existing.
 +
if(options.easing) {
 +
for(var e in options.easing) {
 +
easings[e] = options.easing[e];
 +
}
 +
}
 +
 +
_edgeStrategy = options.edgeStrategy || 'set';
 +
 +
_listeners = {
 +
//Function to be called right before rendering.
 +
beforerender: options.beforerender,
 +
 +
//Function to be called right after finishing rendering.
 +
render: options.render
 +
};
 +
 +
//forceHeight is true by default
 +
_forceHeight = options.forceHeight !== false;
 +
 +
if(_forceHeight) {
 +
_scale = options.scale || 1;
 +
}
 +
 +
_mobileDeceleration = options.mobileDeceleration || DEFAULT_MOBILE_DECELERATION;
 +
 +
_smoothScrollingEnabled = options.smoothScrolling !== false;
 +
_smoothScrollingDuration = options.smoothScrollingDuration || DEFAULT_SMOOTH_SCROLLING_DURATION;
 +
 +
//Dummy object. Will be overwritten in the _render method when smooth scrolling is calculated.
 +
_smoothScrolling = {
 +
targetTop: _instance.getScrollTop()
 +
};
 +
 +
//A custom check function may be passed.
 +
_isMobile = ((options.mobileCheck || function() {
 +
return (/Android|iPhone|iPad|iPod|BlackBerry/i).test(navigator.userAgent || navigator.vendor || window.opera);
 +
})());
 +
 +
if(_isMobile) {
 +
_skrollrBody = document.getElementById('skrollr-body');
 +
 +
//Detect 3d transform if there's a skrollr-body (only needed for #skrollr-body).
 +
if(_skrollrBody) {
 +
_detect3DTransforms();
 +
}
 +
 +
_initMobile();
 +
_updateClass(documentElement, [SKROLLR_CLASS, SKROLLR_MOBILE_CLASS], [NO_SKROLLR_CLASS]);
 +
} else {
 +
_updateClass(documentElement, [SKROLLR_CLASS, SKROLLR_DESKTOP_CLASS], [NO_SKROLLR_CLASS]);
 +
}
 +
 +
//Triggers parsing of elements and a first reflow.
 +
_instance.refresh();
 +
 +
_addEvent(window, 'resize orientationchange', function() {
 +
var width = documentElement.clientWidth;
 +
var height = documentElement.clientHeight;
 +
 +
//Only reflow if the size actually changed (#271).
 +
if(height !== _lastViewportHeight || width !== _lastViewportWidth) {
 +
_lastViewportHeight = height;
 +
_lastViewportWidth = width;
 +
 +
_requestReflow = true;
 +
}
 +
});
 +
 +
var requestAnimFrame = polyfillRAF();
 +
 +
//Let's go.
 +
(function animloop(){
 +
_render();
 +
_animFrame = requestAnimFrame(animloop);
 +
}());
 +
 +
return _instance;
 +
}
 +
 +
/**
 +
* (Re)parses some or all elements.
 +
*/
 +
Skrollr.prototype.refresh = function(elements) {
 +
var elementIndex;
 +
var elementsLength;
 +
var ignoreID = false;
 +
 +
//Completely reparse anything without argument.
 +
if(elements === undefined) {
 +
//Ignore that some elements may already have a skrollable ID.
 +
ignoreID = true;
 +
 +
_skrollables = [];
 +
_skrollableIdCounter = 0;
 +
 +
elements = document.getElementsByTagName('*');
 +
} else {
 +
//We accept a single element or an array of elements.
 +
elements = [].concat(elements);
 +
}
 +
 +
elementIndex = 0;
 +
elementsLength = elements.length;
 +
 +
for(; elementIndex < elementsLength; elementIndex++) {
 +
var el = elements[elementIndex];
 +
var anchorTarget = el;
 +
var keyFrames = [];
 +
 +
//If this particular element should be smooth scrolled.
 +
var smoothScrollThis = _smoothScrollingEnabled;
 +
 +
//The edge strategy for this particular element.
 +
var edgeStrategy = _edgeStrategy;
 +
 +
if(!el.attributes) {
 +
continue;
 +
}
 +
 +
//Iterate over all attributes and search for key frame attributes.
 +
var attributeIndex = 0;
 +
var attributesLength = el.attributes.length;
 +
 +
for (; attributeIndex < attributesLength; attributeIndex++) {
 +
var attr = el.attributes[attributeIndex];
 +
 +
if(attr.name === 'data-anchor-target') {
 +
anchorTarget = document.querySelector(attr.value);
 +
 +
if(anchorTarget === null) {
 +
throw 'Unable to find anchor target "' + attr.value + '"';
 +
}
 +
 +
continue;
 +
}
 +
 +
//Global smooth scrolling can be overridden by the element attribute.
 +
if(attr.name === 'data-smooth-scrolling') {
 +
smoothScrollThis = attr.value !== 'off';
 +
 +
continue;
 +
}
 +
 +
//Global edge strategy can be overridden by the element attribute.
 +
if(attr.name === 'data-edge-strategy') {
 +
edgeStrategy = attr.value;
 +
 +
continue;
 +
}
 +
 +
var match = attr.name.match(rxKeyframeAttribute);
 +
 +
if(match === null) {
 +
continue;
 +
}
 +
 +
var kf = {
 +
props: attr.value,
 +
//Point back to the element as well.
 +
element: el
 +
};
 +
 +
keyFrames.push(kf);
 +
 +
var constant = match[1];
 +
 +
if(constant) {
 +
//Strip the underscore prefix.
 +
kf.constant = constant.substr(1);
 +
}
 +
 +
//Get the key frame offset.
 +
var offset = match[2];
 +
 +
//Is it a percentage offset?
 +
if(/p$/.test(offset)) {
 +
kf.isPercentage = true;
 +
kf.offset = (offset.slice(0, -1) | 0) / 100;
 +
} else {
 +
kf.offset = (offset | 0);
 +
}
 +
 +
var anchor1 = match[3];
 +
 +
//If second anchor is not set, the first will be taken for both.
 +
var anchor2 = match[4] || anchor1;
 +
 +
//"absolute" (or "classic") mode, where numbers mean absolute scroll offset.
 +
if(!anchor1 || anchor1 === ANCHOR_START || anchor1 === ANCHOR_END) {
 +
kf.mode = 'absolute';
 +
 +
//data-end needs to be calculated after all key frames are known.
 +
if(anchor1 === ANCHOR_END) {
 +
kf.isEnd = true;
 +
} else if(!kf.isPercentage) {
 +
//For data-start we can already set the key frame w/o calculations.
 +
//#59: "scale" options should only affect absolute mode.
 +
kf.offset = kf.offset * _scale;
 +
}
 +
}
 +
//"relative" mode, where numbers are relative to anchors.
 +
else {
 +
kf.mode = 'relative';
 +
kf.anchors = [anchor1, anchor2];
 +
}
 +
}
 +
 +
//Does this element have key frames?
 +
if(!keyFrames.length) {
 +
continue;
 +
}
 +
 +
//Will hold the original style and class attributes before we controlled the element (see #80).
 +
var styleAttr, classAttr;
 +
 +
var id;
 +
 +
if(!ignoreID && SKROLLABLE_ID_DOM_PROPERTY in el) {
 +
//We already have this element under control. Grab the corresponding skrollable id.
 +
id = el[SKROLLABLE_ID_DOM_PROPERTY];
 +
styleAttr = _skrollables[id].styleAttr;
 +
classAttr = _skrollables[id].classAttr;
 +
} else {
 +
//It's an unknown element. Asign it a new skrollable id.
 +
id = (el[SKROLLABLE_ID_DOM_PROPERTY] = _skrollableIdCounter++);
 +
styleAttr = el.style.cssText;
 +
classAttr = _getClass(el);
 +
}
 +
 +
_skrollables[id] = {
 +
element: el,
 +
styleAttr: styleAttr,
 +
classAttr: classAttr,
 +
anchorTarget: anchorTarget,
 +
keyFrames: keyFrames,
 +
smoothScrolling: smoothScrollThis,
 +
edgeStrategy: edgeStrategy
 +
};
 +
 +
_updateClass(el, [SKROLLABLE_CLASS], []);
 +
}
 +
 +
//Reflow for the first time.
 +
_reflow();
 +
 +
//Now that we got all key frame numbers right, actually parse the properties.
 +
elementIndex = 0;
 +
elementsLength = elements.length;
 +
 +
for(; elementIndex < elementsLength; elementIndex++) {
 +
var sk = _skrollables[elements[elementIndex][SKROLLABLE_ID_DOM_PROPERTY]];
 +
 +
if(sk === undefined) {
 +
continue;
 +
}
 +
 +
//Parse the property string to objects
 +
_parseProps(sk);
 +
 +
//Fill key frames with missing properties from left and right
 +
_fillProps(sk);
 +
}
 +
 +
return _instance;
 +
};
 +
 +
/**
 +
* Transform "relative" mode to "absolute" mode.
 +
* That is, calculate anchor position and offset of element.
 +
*/
 +
Skrollr.prototype.relativeToAbsolute = function(element, viewportAnchor, elementAnchor) {
 +
var viewportHeight = documentElement.clientHeight;
 +
var box = element.getBoundingClientRect();
 +
var absolute = box.top;
 +
 +
//#100: IE doesn't supply "height" with getBoundingClientRect.
 +
var boxHeight = box.bottom - box.top;
 +
 +
if(viewportAnchor === ANCHOR_BOTTOM) {
 +
absolute -= viewportHeight;
 +
} else if(viewportAnchor === ANCHOR_CENTER) {
 +
absolute -= viewportHeight / 2;
 +
}
 +
 +
if(elementAnchor === ANCHOR_BOTTOM) {
 +
absolute += boxHeight;
 +
} else if(elementAnchor === ANCHOR_CENTER) {
 +
absolute += boxHeight / 2;
 +
}
 +
 +
//Compensate scrolling since getBoundingClientRect is relative to viewport.
 +
absolute += _instance.getScrollTop();
 +
 +
return (absolute + 0.5) | 0;
 +
};
 +
 +
/**
 +
* Animates scroll top to new position.
 +
*/
 +
Skrollr.prototype.animateTo = function(top, options) {
 +
options = options || {};
 +
 +
var now = _now();
 +
var scrollTop = _instance.getScrollTop();
 +
 +
//Setting this to a new value will automatically cause the current animation to stop, if any.
 +
_scrollAnimation = {
 +
startTop: scrollTop,
 +
topDiff: top - scrollTop,
 +
targetTop: top,
 +
duration: options.duration || DEFAULT_DURATION,
 +
startTime: now,
 +
endTime: now + (options.duration || DEFAULT_DURATION),
 +
easing: easings[options.easing || DEFAULT_EASING],
 +
done: options.done
 +
};
 +
 +
//Don't queue the animation if there's nothing to animate.
 +
if(!_scrollAnimation.topDiff) {
 +
if(_scrollAnimation.done) {
 +
_scrollAnimation.done.call(_instance, false);
 +
}
 +
 +
_scrollAnimation = undefined;
 +
}
 +
 +
return _instance;
 +
};
 +
 +
/**
 +
* Stops animateTo animation.
 +
*/
 +
Skrollr.prototype.stopAnimateTo = function() {
 +
if(_scrollAnimation && _scrollAnimation.done) {
 +
_scrollAnimation.done.call(_instance, true);
 +
}
 +
 +
_scrollAnimation = undefined;
 +
};
 +
 +
/**
 +
* Returns if an animation caused by animateTo is currently running.
 +
*/
 +
Skrollr.prototype.isAnimatingTo = function() {
 +
return !!_scrollAnimation;
 +
};
 +
 +
Skrollr.prototype.setScrollTop = function(top, force) {
 +
_forceRender = (force === true);
 +
 +
if(_isMobile) {
 +
_mobileOffset = Math.min(Math.max(top, 0), _maxKeyFrame);
 +
} else {
 +
window.scrollTo(0, top);
 +
}
 +
 +
return _instance;
 +
};
 +
 +
Skrollr.prototype.getScrollTop = function() {
 +
if(_isMobile) {
 +
return _mobileOffset;
 +
} else {
 +
return window.pageYOffset || documentElement.scrollTop || body.scrollTop || 0;
 +
}
 +
};
 +
 +
Skrollr.prototype.getMaxScrollTop = function() {
 +
return _maxKeyFrame;
 +
};
 +
 +
Skrollr.prototype.on = function(name, fn) {
 +
_listeners[name] = fn;
 +
 +
return _instance;
 +
};
 +
 +
Skrollr.prototype.off = function(name) {
 +
delete _listeners[name];
 +
 +
return _instance;
 +
};
 +
 +
Skrollr.prototype.destroy = function() {
 +
var cancelAnimFrame = polyfillCAF();
 +
cancelAnimFrame(_animFrame);
 +
_removeAllEvents();
 +
 +
_updateClass(documentElement, [NO_SKROLLR_CLASS], [SKROLLR_CLASS, SKROLLR_DESKTOP_CLASS, SKROLLR_MOBILE_CLASS]);
 +
 +
var skrollableIndex = 0;
 +
var skrollablesLength = _skrollables.length;
 +
 +
for(; skrollableIndex < skrollablesLength; skrollableIndex++) {
 +
_reset(_skrollables[skrollableIndex].element);
 +
}
 +
 +
documentElement.style.overflow = body.style.overflow = 'auto';
 +
documentElement.style.height = body.style.height = 'auto';
 +
 +
if(_skrollrBody) {
 +
skrollr.setStyle(_skrollrBody, 'transform', 'none');
 +
}
 +
 +
_instance = undefined;
 +
_skrollrBody = undefined;
 +
_listeners = undefined;
 +
_forceHeight = undefined;
 +
_maxKeyFrame = 0;
 +
_scale = 1;
 +
_constants = undefined;
 +
_mobileDeceleration = undefined;
 +
_direction = 'down';
 +
_lastTop = -1;
 +
_lastViewportWidth = 0;
 +
_lastViewportHeight = 0;
 +
_requestReflow = false;
 +
_scrollAnimation = undefined;
 +
_smoothScrollingEnabled = undefined;
 +
_smoothScrollingDuration = undefined;
 +
_smoothScrolling = undefined;
 +
_forceRender = undefined;
 +
_skrollableIdCounter = 0;
 +
_edgeStrategy = undefined;
 +
_isMobile = false;
 +
_mobileOffset = 0;
 +
_translateZ = undefined;
 +
};
 +
 +
/*
 +
Private methods.
 +
*/
 +
 +
var _initMobile = function() {
 +
var initialElement;
 +
var initialTouchY;
 +
var initialTouchX;
 +
var currentElement;
 +
var currentTouchY;
 +
var currentTouchX;
 +
var lastTouchY;
 +
var deltaY;
 +
 +
var initialTouchTime;
 +
var currentTouchTime;
 +
var lastTouchTime;
 +
var deltaTime;
 +
 +
_addEvent(documentElement, [EVENT_TOUCHSTART, EVENT_TOUCHMOVE, EVENT_TOUCHCANCEL, EVENT_TOUCHEND].join(' '), function(e) {
 +
var touch = e.changedTouches[0];
 +
 +
currentElement = e.target;
 +
 +
//We don't want text nodes.
 +
while(currentElement.nodeType === 3) {
 +
currentElement = currentElement.parentNode;
 +
}
 +
 +
currentTouchY = touch.clientY;
 +
currentTouchX = touch.clientX;
 +
currentTouchTime = e.timeStamp;
 +
 +
if(!rxTouchIgnoreTags.test(currentElement.tagName)) {
 +
e.preventDefault();
 +
}
 +
 +
switch(e.type) {
 +
case EVENT_TOUCHSTART:
 +
//The last element we tapped on.
 +
if(initialElement) {
 +
initialElement.blur();
 +
}
 +
 +
_instance.stopAnimateTo();
 +
 +
initialElement = currentElement;
 +
 +
initialTouchY = lastTouchY = currentTouchY;
 +
initialTouchX = currentTouchX;
 +
initialTouchTime = currentTouchTime;
 +
 +
break;
 +
case EVENT_TOUCHMOVE:
 +
//Prevent default event on touchIgnore elements in case they don't have focus yet.
 +
if(rxTouchIgnoreTags.test(currentElement.tagName) && document.activeElement !== currentElement) {
 +
e.preventDefault();
 +
}
 +
 +
deltaY = currentTouchY - lastTouchY;
 +
deltaTime = currentTouchTime - lastTouchTime;
 +
 +
_instance.setScrollTop(_mobileOffset - deltaY, true);
 +
 +
lastTouchY = currentTouchY;
 +
lastTouchTime = currentTouchTime;
 +
break;
 +
default:
 +
case EVENT_TOUCHCANCEL:
 +
case EVENT_TOUCHEND:
 +
var distanceY = initialTouchY - currentTouchY;
 +
var distanceX = initialTouchX - currentTouchX;
 +
var distance2 = distanceX * distanceX + distanceY * distanceY;
 +
 +
//Check if it was more like a tap (moved less than 7px).
 +
if(distance2 < 49) {
 +
if(!rxTouchIgnoreTags.test(initialElement.tagName)) {
 +
initialElement.focus();
 +
 +
//It was a tap, click the element.
 +
var clickEvent = document.createEvent('MouseEvents');
 +
clickEvent.initMouseEvent('click', true, true, e.view, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, 0, null);
 +
initialElement.dispatchEvent(clickEvent);
 +
}
 +
 +
return;
 +
}
 +
 +
initialElement = undefined;
 +
 +
var speed = deltaY / deltaTime;
 +
 +
//Cap speed at 3 pixel/ms.
 +
speed = Math.max(Math.min(speed, 3), -3);
 +
 +
var duration = Math.abs(speed / _mobileDeceleration);
 +
var targetOffset = speed * duration + 0.5 * _mobileDeceleration * duration * duration;
 +
var targetTop = _instance.getScrollTop() - targetOffset;
 +
 +
//Relative duration change for when scrolling above bounds.
 +
var targetRatio = 0;
 +
 +
//Change duration proportionally when scrolling would leave bounds.
 +
if(targetTop > _maxKeyFrame) {
 +
targetRatio = (_maxKeyFrame - targetTop) / targetOffset;
 +
 +
targetTop = _maxKeyFrame;
 +
} else if(targetTop < 0) {
 +
targetRatio = -targetTop / targetOffset;
 +
 +
targetTop = 0;
 +
}
 +
 +
duration = duration * (1 - targetRatio);
 +
 +
_instance.animateTo((targetTop + 0.5) | 0, {easing: 'outCubic', duration: duration});
 +
break;
 +
}
 +
});
 +
 +
//Just in case there has already been some native scrolling, reset it.
 +
window.scrollTo(0, 0);
 +
documentElement.style.overflow = body.style.overflow = 'hidden';
 +
};
 +
 +
/**
 +
* Updates key frames which depend on others / need to be updated on resize.
 +
* That is "end" in "absolute" mode and all key frames in "relative" mode.
 +
* Also handles constants, because they may change on resize.
 +
*/
 +
var _updateDependentKeyFrames = function() {
 +
var viewportHeight = documentElement.clientHeight;
 +
var processedConstants = _processConstants();
 +
var skrollable;
 +
var element;
 +
var anchorTarget;
 +
var keyFrames;
 +
var keyFrameIndex;
 +
var keyFramesLength;
 +
var kf;
 +
var skrollableIndex;
 +
var skrollablesLength;
 +
var offset;
 +
var constantValue;
 +
 +
//First process all relative-mode elements and find the max key frame.
 +
skrollableIndex = 0;
 +
skrollablesLength = _skrollables.length;
 +
 +
for(; skrollableIndex < skrollablesLength; skrollableIndex++) {
 +
skrollable = _skrollables[skrollableIndex];
 +
element = skrollable.element;
 +
anchorTarget = skrollable.anchorTarget;
 +
keyFrames = skrollable.keyFrames;
 +
 +
keyFrameIndex = 0;
 +
keyFramesLength = keyFrames.length;
 +
 +
for(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {
 +
kf = keyFrames[keyFrameIndex];
 +
 +
offset = kf.offset;
 +
constantValue = processedConstants[kf.constant] || 0;
 +
 +
kf.frame = offset;
 +
 +
if(kf.isPercentage) {
 +
//Convert the offset to percentage of the viewport height.
 +
offset = offset * viewportHeight;
 +
 +
//Absolute + percentage mode.
 +
kf.frame = offset;
 +
}
 +
 +
if(kf.mode === 'relative') {
 +
_reset(element);
 +
 +
kf.frame = _instance.relativeToAbsolute(anchorTarget, kf.anchors[0], kf.anchors[1]) - offset;
 +
 +
_reset(element, true);
 +
}
 +
 +
kf.frame += constantValue;
 +
 +
//Only search for max key frame when forceHeight is enabled.
 +
if(_forceHeight) {
 +
//Find the max key frame, but don't use one of the data-end ones for comparison.
 +
if(!kf.isEnd && kf.frame > _maxKeyFrame) {
 +
_maxKeyFrame = kf.frame;
 +
}
 +
}
 +
}
 +
}
 +
 +
//#133: The document can be larger than the maxKeyFrame we found.
 +
_maxKeyFrame = Math.max(_maxKeyFrame, _getDocumentHeight());
 +
 +
//Now process all data-end keyframes.
 +
skrollableIndex = 0;
 +
skrollablesLength = _skrollables.length;
 +
 +
for(; skrollableIndex < skrollablesLength; skrollableIndex++) {
 +
skrollable = _skrollables[skrollableIndex];
 +
keyFrames = skrollable.keyFrames;
 +
 +
keyFrameIndex = 0;
 +
keyFramesLength = keyFrames.length;
 +
 +
for(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {
 +
kf = keyFrames[keyFrameIndex];
 +
 +
constantValue = processedConstants[kf.constant] || 0;
 +
 +
if(kf.isEnd) {
 +
kf.frame = _maxKeyFrame - kf.offset + constantValue;
 +
}
 +
}
 +
 +
skrollable.keyFrames.sort(_keyFrameComparator);
 +
}
 +
};
 +
 +
/**
 +
* Calculates and sets the style properties for the element at the given frame.
 +
* @param fakeFrame The frame to render at when smooth scrolling is enabled.
 +
* @param actualFrame The actual frame we are at.
 +
*/
 +
var _calcSteps = function(fakeFrame, actualFrame) {
 +
//Iterate over all skrollables.
 +
var skrollableIndex = 0;
 +
var skrollablesLength = _skrollables.length;
 +
 +
for(; skrollableIndex < skrollablesLength; skrollableIndex++) {
 +
var skrollable = _skrollables[skrollableIndex];
 +
var element = skrollable.element;
 +
var frame = skrollable.smoothScrolling ? fakeFrame : actualFrame;
 +
var frames = skrollable.keyFrames;
 +
var firstFrame = frames[0].frame;
 +
var lastFrame = frames[frames.length - 1].frame;
 +
var beforeFirst = frame < firstFrame;
 +
var afterLast = frame > lastFrame;
 +
var firstOrLastFrame = frames[beforeFirst ? 0 : frames.length - 1];
 +
var key;
 +
var value;
 +
 +
//If we are before/after the first/last frame, set the styles according to the given edge strategy.
 +
if(beforeFirst || afterLast) {
 +
//Check if we already handled this edge case last time.
 +
//Note: using setScrollTop it's possible that we jumped from one edge to the other.
 +
if(beforeFirst && skrollable.edge === -1 || afterLast && skrollable.edge === 1) {
 +
continue;
 +
}
 +
 +
//Add the skrollr-before or -after class.
 +
_updateClass(element, [beforeFirst ? SKROLLABLE_BEFORE_CLASS : SKROLLABLE_AFTER_CLASS], [SKROLLABLE_BEFORE_CLASS, SKROLLABLE_BETWEEN_CLASS, SKROLLABLE_AFTER_CLASS]);
 +
 +
//Remember that we handled the edge case (before/after the first/last keyframe).
 +
skrollable.edge = beforeFirst ? -1 : 1;
 +
 +
switch(skrollable.edgeStrategy) {
 +
case 'reset':
 +
_reset(element);
 +
continue;
 +
case 'ease':
 +
//Handle this case like it would be exactly at first/last keyframe and just pass it on.
 +
frame = firstOrLastFrame.frame;
 +
break;
 +
default:
 +
case 'set':
 +
var props = firstOrLastFrame.props;
 +
 +
for(key in props) {
 +
if(hasProp.call(props, key)) {
 +
value = _interpolateString(props[key].value);
 +
 +
skrollr.setStyle(element, key, value);
 +
}
 +
}
 +
 +
continue;
 +
}
 +
} else {
 +
//Did we handle an edge last time?
 +
if(skrollable.edge !== 0) {
 +
_updateClass(element, [SKROLLABLE_CLASS, SKROLLABLE_BETWEEN_CLASS], [SKROLLABLE_BEFORE_CLASS, SKROLLABLE_AFTER_CLASS]);
 +
skrollable.edge = 0;
 +
}
 +
}
 +
 +
//Find out between which two key frames we are right now.
 +
var keyFrameIndex = 0;
 +
var framesLength = frames.length - 1;
 +
 +
for(; keyFrameIndex < framesLength; keyFrameIndex++) {
 +
if(frame >= frames[keyFrameIndex].frame && frame <= frames[keyFrameIndex + 1].frame) {
 +
var left = frames[keyFrameIndex];
 +
var right = frames[keyFrameIndex + 1];
 +
 +
for(key in left.props) {
 +
if(hasProp.call(left.props, key)) {
 +
var progress = (frame - left.frame) / (right.frame - left.frame);
 +
 +
//Transform the current progress using the given easing function.
 +
progress = left.props[key].easing(progress);
 +
 +
//Interpolate between the two values
 +
value = _calcInterpolation(left.props[key].value, right.props[key].value, progress);
 +
 +
value = _interpolateString(value);
 +
 +
skrollr.setStyle(element, key, value);
 +
}
 +
}
 +
 +
break;
 +
}
 +
}
 +
}
 +
};
 +
 +
/**
 +
* Renders all elements.
 +
*/
 +
var _render = function() {
 +
if(_requestReflow) {
 +
_requestReflow = false;
 +
_reflow();
 +
}
 +
 +
//We may render something else than the actual scrollbar position.
 +
var renderTop = _instance.getScrollTop();
 +
 +
//If there's an animation, which ends in current render call, call the callback after rendering.
 +
var afterAnimationCallback;
 +
var now = _now();
 +
var progress;
 +
 +
//Before actually rendering handle the scroll animation, if any.
 +
if(_scrollAnimation) {
 +
//It's over
 +
if(now >= _scrollAnimation.endTime) {
 +
renderTop = _scrollAnimation.targetTop;
 +
afterAnimationCallback = _scrollAnimation.done;
 +
_scrollAnimation = undefined;
 +
} else {
 +
//Map the current progress to the new progress using given easing function.
 +
progress = _scrollAnimation.easing((now - _scrollAnimation.startTime) / _scrollAnimation.duration);
 +
 +
renderTop = (_scrollAnimation.startTop + progress * _scrollAnimation.topDiff) | 0;
 +
}
 +
 +
_instance.setScrollTop(renderTop, true);
 +
}
 +
//Smooth scrolling only if there's no animation running and if we're not forcing the rendering.
 +
else if(!_forceRender) {
 +
var smoothScrollingDiff = _smoothScrolling.targetTop - renderTop;
 +
 +
//The user scrolled, start new smooth scrolling.
 +
if(smoothScrollingDiff) {
 +
_smoothScrolling = {
 +
startTop: _lastTop,
 +
topDiff: renderTop - _lastTop,
 +
targetTop: renderTop,
 +
startTime: _lastRenderCall,
 +
endTime: _lastRenderCall + _smoothScrollingDuration
 +
};
 +
}
 +
 +
//Interpolate the internal scroll position (not the actual scrollbar).
 +
if(now <= _smoothScrolling.endTime) {
 +
//Map the current progress to the new progress using easing function.
 +
progress = easings.sqrt((now - _smoothScrolling.startTime) / _smoothScrollingDuration);
 +
 +
renderTop = (_smoothScrolling.startTop + progress * _smoothScrolling.topDiff) | 0;
 +
}
 +
}
 +
 +
//That's were we actually "scroll" on mobile.
 +
if(_isMobile && _skrollrBody) {
 +
//Set the transform ("scroll it").
 +
skrollr.setStyle(_skrollrBody, 'transform', 'translate(0, ' + -(_mobileOffset) + 'px) ' + _translateZ);
 +
}
 +
 +
//Did the scroll position even change?
 +
if(_forceRender || _lastTop !== renderTop) {
 +
//Remember in which direction are we scrolling?
 +
_direction = (renderTop > _lastTop) ? 'down' : (renderTop < _lastTop ? 'up' : _direction);
 +
 +
_forceRender = false;
 +
 +
var listenerParams = {
 +
curTop: renderTop,
 +
lastTop: _lastTop,
 +
maxTop: _maxKeyFrame,
 +
direction: _direction
 +
};
 +
 +
//Tell the listener we are about to render.
 +
var continueRendering = _listeners.beforerender && _listeners.beforerender.call(_instance, listenerParams);
 +
 +
//The beforerender listener function is able the cancel rendering.
 +
if(continueRendering !== false) {
 +
//Now actually interpolate all the styles.
 +
_calcSteps(renderTop, _instance.getScrollTop());
 +
 +
//Remember when we last rendered.
 +
_lastTop = renderTop;
 +
 +
if(_listeners.render) {
 +
_listeners.render.call(_instance, listenerParams);
 +
}
 +
}
 +
 +
if(afterAnimationCallback) {
 +
afterAnimationCallback.call(_instance, false);
 +
}
 +
}
 +
 +
_lastRenderCall = now;
 +
};
 +
 +
/**
 +
* Parses the properties for each key frame of the given skrollable.
 +
*/
 +
var _parseProps = function(skrollable) {
 +
//Iterate over all key frames
 +
var keyFrameIndex = 0;
 +
var keyFramesLength = skrollable.keyFrames.length;
 +
 +
for(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {
 +
var frame = skrollable.keyFrames[keyFrameIndex];
 +
var easing;
 +
var value;
 +
var prop;
 +
var props = {};
 +
 +
var match;
 +
 +
while((match = rxPropValue.exec(frame.props)) !== null) {
 +
prop = match[1];
 +
value = match[2];
 +
 +
easing = prop.match(rxPropEasing);
 +
 +
//Is there an easing specified for this prop?
 +
if(easing !== null) {
 +
prop = easing[1];
 +
easing = easing[2];
 +
} else {
 +
easing = DEFAULT_EASING;
 +
}
 +
 +
//Exclamation point at first position forces the value to be taken literal.
 +
value = value.indexOf('!') ? _parseProp(value) : [value.slice(1)];
 +
 +
//Save the prop for this key frame with his value and easing function
 +
props[prop] = {
 +
value: value,
 +
easing: easings[easing]
 +
};
 +
}
 +
 +
frame.props = props;
 +
}
 +
};
 +
 +
/**
 +
* Parses a value extracting numeric values and generating a format string
 +
* for later interpolation of the new values in old string.
 +
*
 +
* @param val The CSS value to be parsed.
 +
* @return Something like ["rgba(?%,?%, ?%,?)", 100, 50, 0, .7]
 +
* where the first element is the format string later used
 +
* and all following elements are the numeric value.
 +
*/
 +
var _parseProp = function(val) {
 +
var numbers = [];
 +
 +
//One special case, where floats don't work.
 +
//We replace all occurences of rgba colors
 +
//which don't use percentage notation with the percentage notation.
 +
rxRGBAIntegerColor.lastIndex = 0;
 +
val = val.replace(rxRGBAIntegerColor, function(rgba) {
 +
return rgba.replace(rxNumericValue, function(n) {
 +
return n / 255 * 100 + '%';
 +
});
 +
});
 +
 +
//Handle prefixing of "gradient" values.
 +
//For now only the prefixed value will be set. Unprefixed isn't supported anyway.
 +
if(theDashedCSSPrefix) {
 +
rxGradient.lastIndex = 0;
 +
val = val.replace(rxGradient, function(s) {
 +
return theDashedCSSPrefix + s;
 +
});
 +
}
 +
 +
//Now parse ANY number inside this string and create a format string.
 +
val = val.replace(rxNumericValue, function(n) {
 +
numbers.push(+n);
 +
return '{?}';
 +
});
 +
 +
//Add the formatstring as first value.
 +
numbers.unshift(val);
 +
 +
return numbers;
 +
};
 +
 +
/**
 +
* Fills the key frames with missing left and right hand properties.
 +
* If key frame 1 has property X and key frame 2 is missing X,
 +
* but key frame 3 has X again, then we need to assign X to key frame 2 too.
 +
*
 +
* @param sk A skrollable.
 +
*/
 +
var _fillProps = function(sk) {
 +
//Will collect the properties key frame by key frame
 +
var propList = {};
 +
var keyFrameIndex;
 +
var keyFramesLength;
 +
 +
//Iterate over all key frames from left to right
 +
keyFrameIndex = 0;
 +
keyFramesLength = sk.keyFrames.length;
 +
 +
for(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {
 +
_fillPropForFrame(sk.keyFrames[keyFrameIndex], propList);
 +
}
 +
 +
//Now do the same from right to fill the last gaps
 +
 +
propList = {};
 +
 +
//Iterate over all key frames from right to left
 +
keyFrameIndex = sk.keyFrames.length - 1;
 +
 +
for(; keyFrameIndex >= 0; keyFrameIndex--) {
 +
_fillPropForFrame(sk.keyFrames[keyFrameIndex], propList);
 +
}
 +
};
 +
 +
var _fillPropForFrame = function(frame, propList) {
 +
var key;
 +
 +
//For each key frame iterate over all right hand properties and assign them,
 +
//but only if the current key frame doesn't have the property by itself
 +
for(key in propList) {
 +
//The current frame misses this property, so assign it.
 +
if(!hasProp.call(frame.props, key)) {
 +
frame.props[key] = propList[key];
 +
}
 +
}
 +
 +
//Iterate over all props of the current frame and collect them
 +
for(key in frame.props) {
 +
propList[key] = frame.props[key];
 +
}
 +
};
 +
 +
/**
 +
* Calculates the new values for two given values array.
 +
*/
 +
var _calcInterpolation = function(val1, val2, progress) {
 +
var valueIndex;
 +
var val1Length = val1.length;
 +
 +
//They both need to have the same length
 +
if(val1Length !== val2.length) {
 +
throw 'Can\'t interpolate between "' + val1[0] + '" and "' + val2[0] + '"';
 +
}
 +
 +
//Add the format string as first element.
 +
var interpolated = [val1[0]];
 +
 +
valueIndex = 1;
 +
 +
for(; valueIndex < val1Length; valueIndex++) {
 +
//That's the line where the two numbers are actually interpolated.
 +
interpolated[valueIndex] = val1[valueIndex] + ((val2[valueIndex] - val1[valueIndex]) * progress);
 +
}
 +
 +
return interpolated;
 +
};
 +
 +
/**
 +
* Interpolates the numeric values into the format string.
 +
*/
 +
var _interpolateString = function(val) {
 +
var valueIndex = 1;
 +
 +
rxInterpolateString.lastIndex = 0;
 +
 +
return val[0].replace(rxInterpolateString, function() {
 +
return val[valueIndex++];
 +
});
 +
};
 +
 +
/**
 +
* Resets the class and style attribute to what it was before skrollr manipulated the element.
 +
* Also remembers the values it had before reseting, in order to undo the reset.
 +
*/
 +
var _reset = function(elements, undo) {
 +
//We accept a single element or an array of elements.
 +
elements = [].concat(elements);
 +
 +
var skrollable;
 +
var element;
 +
var elementsIndex = 0;
 +
var elementsLength = elements.length;
 +
 +
for(; elementsIndex < elementsLength; elementsIndex++) {
 +
element = elements[elementsIndex];
 +
skrollable = _skrollables[element[SKROLLABLE_ID_DOM_PROPERTY]];
 +
 +
//Couldn't find the skrollable for this DOM element.
 +
if(!skrollable) {
 +
continue;
 +
}
 +
 +
if(undo) {
 +
//Reset class and style to the "dirty" (set by skrollr) values.
 +
element.style.cssText = skrollable.dirtyStyleAttr;
 +
_updateClass(element, skrollable.dirtyClassAttr);
 +
} else {
 +
//Remember the "dirty" (set by skrollr) class and style.
 +
skrollable.dirtyStyleAttr = element.style.cssText;
 +
skrollable.dirtyClassAttr = _getClass(element);
 +
 +
//Reset class and style to what it originally was.
 +
element.style.cssText = skrollable.styleAttr;
 +
_updateClass(element, skrollable.classAttr);
 +
}
 +
}
 +
};
 +
 +
/**
 +
* Detects support for 3d transforms by applying it to the skrollr-body.
 +
*/
 +
var _detect3DTransforms = function() {
 +
_translateZ = 'translateZ(0)';
 +
skrollr.setStyle(_skrollrBody, 'transform', _translateZ);
 +
 +
var computedStyle = getStyle(_skrollrBody);
 +
var computedTransform = computedStyle.getPropertyValue('transform');
 +
var computedTransformWithPrefix = computedStyle.getPropertyValue(theDashedCSSPrefix + 'transform');
 +
var has3D = (computedTransform && computedTransform !== 'none') || (computedTransformWithPrefix && computedTransformWithPrefix !== 'none');
 +
 +
if(!has3D) {
 +
_translateZ = '';
 +
}
 +
};
 +
 +
/**
 +
* Set the CSS property on the given element. Sets prefixed properties as well.
 +
*/
 +
skrollr.setStyle = function(el, prop, val) {
 +
var style = el.style;
 +
 +
//Camel case.
 +
prop = prop.replace(rxCamelCase, rxCamelCaseFn).replace('-', '');
 +
 +
//Make sure z-index gets a <integer>.
 +
//This is the only <integer> case we need to handle.
 +
if(prop === 'zIndex') {
 +
if(isNaN(val)) {
 +
//If it's not a number, don't touch it.
 +
//It could for example be "auto" (#351).
 +
style[prop] = val;
 +
} else {
 +
//Floor the number.
 +
style[prop] = '' + (val | 0);
 +
}
 +
}
 +
//#64: "float" can't be set across browsers. Needs to use "cssFloat" for all except IE.
 +
else if(prop === 'float') {
 +
style.styleFloat = style.cssFloat = val;
 +
}
 +
else {
 +
//Need try-catch for old IE.
 +
try {
 +
//Set prefixed property if there's a prefix.
 +
if(theCSSPrefix) {
 +
style[theCSSPrefix + prop.slice(0,1).toUpperCase() + prop.slice(1)] = val;
 +
}
 +
 +
//Set unprefixed.
 +
style[prop] = val;
 +
} catch(ignore) {}
 +
}
 +
};
 +
 +
/**
 +
* Cross browser event handling.
 +
*/
 +
var _addEvent = skrollr.addEvent = function(element, names, callback) {
 +
var intermediate = function(e) {
 +
//Normalize IE event stuff.
 +
e = e || window.event;
 +
 +
if(!e.target) {
 +
e.target = e.srcElement;
 +
}
 +
 +
if(!e.preventDefault) {
 +
e.preventDefault = function() {
 +
e.returnValue = false;
 +
};
 +
}
 +
 +
return callback.call(this, e);
 +
};
 +
 +
names = names.split(' ');
 +
 +
var name;
 +
var nameCounter = 0;
 +
var namesLength = names.length;
 +
 +
for(; nameCounter < namesLength; nameCounter++) {
 +
name = names[nameCounter];
 +
 +
if(element.addEventListener) {
 +
element.addEventListener(name, callback, false);
 +
} else {
 +
element.attachEvent('on' + name, intermediate);
 +
}
 +
 +
//Remember the events to be able to flush them later.
 +
_registeredEvents.push({
 +
element: element,
 +
name: name,
 +
listener: callback
 +
});
 +
}
 +
};
 +
 +
var _removeEvent = skrollr.removeEvent = function(element, names, callback) {
 +
names = names.split(' ');
 +
 +
var nameCounter = 0;
 +
var namesLength = names.length;
 +
 +
for(; nameCounter < namesLength; nameCounter++) {
 +
if(element.removeEventListener) {
 +
element.removeEventListener(names[nameCounter], callback, false);
 +
} else {
 +
element.detachEvent('on' + names[nameCounter], callback);
 +
}
 +
}
 +
};
 +
 +
var _removeAllEvents = function() {
 +
var eventData;
 +
var eventCounter = 0;
 +
var eventsLength = _registeredEvents.length;
 +
 +
for(; eventCounter < eventsLength; eventCounter++) {
 +
eventData = _registeredEvents[eventCounter];
 +
 +
_removeEvent(eventData.element, eventData.name, eventData.listener);
 +
}
 +
 +
_registeredEvents = [];
 +
};
 +
 +
var _reflow = function() {
 +
var pos = _instance.getScrollTop();
 +
 +
//Will be recalculated by _updateDependentKeyFrames.
 +
_maxKeyFrame = 0;
 +
 +
if(_forceHeight && !_isMobile) {
 +
//un-"force" the height to not mess with the calculations in _updateDependentKeyFrames (#216).
 +
body.style.height = 'auto';
 +
}
 +
 +
_updateDependentKeyFrames();
 +
 +
if(_forceHeight && !_isMobile) {
 +
//"force" the height.
 +
body.style.height = (_maxKeyFrame + documentElement.clientHeight) + 'px';
 +
}
 +
 +
//The scroll offset may now be larger than needed (on desktop the browser/os prevents scrolling farther than the bottom).
 +
if(_isMobile) {
 +
_instance.setScrollTop(Math.min(_instance.getScrollTop(), _maxKeyFrame));
 +
} else {
 +
//Remember and reset the scroll pos (#217).
 +
_instance.setScrollTop(pos, true);
 +
}
 +
 +
_forceRender = true;
 +
};
 +
 +
/*
 +
* Returns a copy of the constants object where all functions and strings have been evaluated.
 +
*/
 +
var _processConstants = function() {
 +
var viewportHeight = documentElement.clientHeight;
 +
var copy = {};
 +
var prop;
 +
var value;
 +
 +
for(prop in _constants) {
 +
value = _constants[prop];
 +
 +
if(typeof value === 'function') {
 +
value = value.call(_instance);
 +
}
 +
//Percentage offset.
 +
else if((/p$/).test(value)) {
 +
value = (value.slice(0, -1) / 100) * viewportHeight;
 +
}
 +
 +
copy[prop] = value;
 +
}
 +
 +
return copy;
 +
};
 +
 +
/*
 +
* Returns the height of the document.
 +
*/
 +
var _getDocumentHeight = function() {
 +
var skrollrBodyHeight = (_skrollrBody && _skrollrBody.offsetHeight || 0);
 +
var bodyHeight = Math.max(skrollrBodyHeight, body.scrollHeight, body.offsetHeight, documentElement.scrollHeight, documentElement.offsetHeight, documentElement.clientHeight);
 +
 +
return bodyHeight - documentElement.clientHeight;
 +
};
 +
 +
/**
 +
* Returns a string of space separated classnames for the current element.
 +
* Works with SVG as well.
 +
*/
 +
var _getClass = function(element) {
 +
var prop = 'className';
 +
 +
//SVG support by using className.baseVal instead of just className.
 +
if(window.SVGElement && element instanceof window.SVGElement) {
 +
element = element[prop];
 +
prop = 'baseVal';
 +
}
 +
 +
return element[prop];
 +
};
 +
 +
/**
 +
* Adds and removes a CSS classes.
 +
* Works with SVG as well.
 +
* add and remove are arrays of strings,
 +
* or if remove is ommited add is a string and overwrites all classes.
 +
*/
 +
var _updateClass = function(element, add, remove) {
 +
var prop = 'className';
 +
 +
//SVG support by using className.baseVal instead of just className.
 +
if(window.SVGElement && element instanceof window.SVGElement) {
 +
element = element[prop];
 +
prop = 'baseVal';
 +
}
 +
 +
//When remove is ommited, we want to overwrite/set the classes.
 +
if(remove === undefined) {
 +
element[prop] = add;
 +
return;
 +
}
 +
 +
//Cache current classes. We will work on a string before passing back to DOM.
 +
var val = element[prop];
 +
 +
//All classes to be removed.
 +
var classRemoveIndex = 0;
 +
var removeLength = remove.length;
 +
 +
for(; classRemoveIndex < removeLength; classRemoveIndex++) {
 +
val = _untrim(val).replace(_untrim(remove[classRemoveIndex]), ' ');
 +
}
 +
 +
val = _trim(val);
 +
 +
//All classes to be added.
 +
var classAddIndex = 0;
 +
var addLength = add.length;
 +
 +
for(; classAddIndex < addLength; classAddIndex++) {
 +
//Only add if el not already has class.
 +
if(_untrim(val).indexOf(_untrim(add[classAddIndex])) === -1) {
 +
val += ' ' + add[classAddIndex];
 +
}
 +
}
 +
 +
element[prop] = _trim(val);
 +
};
 +
 +
var _trim = function(a) {
 +
return a.replace(rxTrim, '');
 +
};
 +
 +
/**
 +
* Adds a space before and after the string.
 +
*/
 +
var _untrim = function(a) {
 +
return ' ' + a + ' ';
 +
};
 +
 +
var _now = Date.now || function() {
 +
return +new Date();
 +
};
 +
 +
var _keyFrameComparator = function(a, b) {
 +
return a.frame - b.frame;
 +
};
 +
 +
/*
 +
* Private variables.
 +
*/
 +
 +
//Singleton
 +
var _instance;
 +
 +
/*
 +
A list of all elements which should be animated associated with their the metadata.
 +
Exmaple skrollable with two key frames animating from 100px width to 20px:
 +
 +
skrollable = {
 +
element: <the DOM element>,
 +
styleAttr: <style attribute of the element before skrollr>,
 +
classAttr: <class attribute of the element before skrollr>,
 +
keyFrames: [
 +
{
 +
frame: 100,
 +
props: {
 +
width: {
 +
value: ['{?}px', 100],
 +
easing: <reference to easing function>
 +
}
 +
},
 +
mode: "absolute"
 +
},
 +
{
 +
frame: 200,
 +
props: {
 +
width: {
 +
value: ['{?}px', 20],
 +
easing: <reference to easing function>
 +
}
 +
},
 +
mode: "absolute"
 +
}
 +
]
 +
};
 +
*/
 +
var _skrollables;
 +
 +
var _skrollrBody;
 +
 +
var _listeners;
 +
var _forceHeight;
 +
var _maxKeyFrame = 0;
 +
 +
var _scale = 1;
 +
var _constants;
 +
 +
var _mobileDeceleration;
 +
 +
//Current direction (up/down).
 +
var _direction = 'down';
 +
 +
//The last top offset value. Needed to determine direction.
 +
var _lastTop = -1;
 +
 +
//The last time we called the render method (doesn't mean we rendered!).
 +
var _lastRenderCall = _now();
 +
 +
//For detecting if it actually resized (#271).
 +
var _lastViewportWidth = 0;
 +
var _lastViewportHeight = 0;
 +
 +
var _requestReflow = false;
 +
 +
//Will contain data about a running scrollbar animation, if any.
 +
var _scrollAnimation;
 +
 +
var _smoothScrollingEnabled;
 +
 +
var _smoothScrollingDuration;
 +
 +
//Will contain settins for smooth scrolling if enabled.
 +
var _smoothScrolling;
 +
 +
//Can be set by any operation/event to force rendering even if the scrollbar didn't move.
 +
var _forceRender;
 +
 +
//Each skrollable gets an unique ID incremented for each skrollable.
 +
//The ID is the index in the _skrollables array.
 +
var _skrollableIdCounter = 0;
 +
 +
var _edgeStrategy;
 +
 +
 +
//Mobile specific vars. Will be stripped by UglifyJS when not in use.
 +
var _isMobile = false;
 +
 +
//The virtual scroll offset when using mobile scrolling.
 +
var _mobileOffset = 0;
 +
 +
//If the browser supports 3d transforms, this will be filled with 'translateZ(0)' (empty string otherwise).
 +
var _translateZ;
 +
 +
//Will contain data about registered events by skrollr.
 +
var _registeredEvents = [];
 +
 +
//Animation frame id returned by RequestAnimationFrame (or timeout when RAF is not supported).
 +
var _animFrame;
 +
}(window, document));</script>
 +
<script type="text/javascript">/*!
 +
* imagesLoaded PACKAGED v3.0.4
 +
* JavaScript is all like "You images are done yet or what?"
 +
* MIT License
 +
*/
 +
 +
 +
/*!
 +
* EventEmitter v4.2.4 - git.io/ee
 +
* Oliver Caldwell
 +
* MIT license
 +
* @preserve
 +
*/
 +
 +
(function () {
 +
 +
 +
/**
 +
* Class for managing events.
 +
* Can be extended to provide event functionality in other classes.
 +
*
 +
* @class EventEmitter Manages event registering and emitting.
 +
*/
 +
function EventEmitter() {}
 +
 +
// Shortcuts to improve speed and size
 +
 +
// Easy access to the prototype
 +
var proto = EventEmitter.prototype;
 +
 +
/**
 +
* Finds the index of the listener for the event in it's storage array.
 +
*
 +
* @param {Function[]} listeners Array of listeners to search through.
 +
* @param {Function} listener Method to look for.
 +
* @return {Number} Index of the specified listener, -1 if not found
 +
* @api private
 +
*/
 +
function indexOfListener(listeners, listener) {
 +
var i = listeners.length;
 +
while (i--) {
 +
if (listeners[i].listener === listener) {
 +
return i;
 +
}
 +
}
 +
 +
return -1;
 +
}
 +
 +
/**
 +
* Alias a method while keeping the context correct, to allow for overwriting of target method.
 +
*
 +
* @param {String} name The name of the target method.
 +
* @return {Function} The aliased method
 +
* @api private
 +
*/
 +
function alias(name) {
 +
return function aliasClosure() {
 +
return this[name].apply(this, arguments);
 +
};
 +
}
 +
 +
/**
 +
* Returns the listener array for the specified event.
 +
* Will initialise the event object and listener arrays if required.
 +
* Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.
 +
* Each property in the object response is an array of listener functions.
 +
*
 +
* @param {String|RegExp} evt Name of the event to return the listeners from.
 +
* @return {Function[]|Object} All listener functions for the event.
 +
*/
 +
proto.getListeners = function getListeners(evt) {
 +
var events = this._getEvents();
 +
var response;
 +
var key;
 +
 +
// Return a concatenated array of all matching events if
 +
// the selector is a regular expression.
 +
if (typeof evt === 'object') {
 +
response = {};
 +
for (key in events) {
 +
if (events.hasOwnProperty(key) && evt.test(key)) {
 +
response[key] = events[key];
 +
}
 +
}
 +
}
 +
else {
 +
response = events[evt] || (events[evt] = []);
 +
}
 +
 +
return response;
 +
};
 +
 +
/**
 +
* Takes a list of listener objects and flattens it into a list of listener functions.
 +
*
 +
* @param {Object[]} listeners Raw listener objects.
 +
* @return {Function[]} Just the listener functions.
 +
*/
 +
proto.flattenListeners = function flattenListeners(listeners) {
 +
var flatListeners = [];
 +
var i;
 +
 +
for (i = 0; i < listeners.length; i += 1) {
 +
flatListeners.push(listeners[i].listener);
 +
}
 +
 +
return flatListeners;
 +
};
 +
 +
/**
 +
* Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.
 +
*
 +
* @param {String|RegExp} evt Name of the event to return the listeners from.
 +
* @return {Object} All listener functions for an event in an object.
 +
*/
 +
proto.getListenersAsObject = function getListenersAsObject(evt) {
 +
var listeners = this.getListeners(evt);
 +
var response;
 +
 +
if (listeners instanceof Array) {
 +
response = {};
 +
response[evt] = listeners;
 +
}
 +
 +
return response || listeners;
 +
};
 +
 +
/**
 +
* Adds a listener function to the specified event.
 +
* The listener will not be added if it is a duplicate.
 +
* If the listener returns true then it will be removed after it is called.
 +
* If you pass a regular expression as the event name then the listener will be added to all events that match it.
 +
*
 +
* @param {String|RegExp} evt Name of the event to attach the listener to.
 +
* @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.addListener = function addListener(evt, listener) {
 +
var listeners = this.getListenersAsObject(evt);
 +
var listenerIsWrapped = typeof listener === 'object';
 +
var key;
 +
 +
for (key in listeners) {
 +
if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {
 +
listeners[key].push(listenerIsWrapped ? listener : {
 +
listener: listener,
 +
once: false
 +
});
 +
}
 +
}
 +
 +
return this;
 +
};
 +
 +
/**
 +
* Alias of addListener
 +
*/
 +
proto.on = alias('addListener');
 +
 +
/**
 +
* Semi-alias of addListener. It will add a listener that will be
 +
* automatically removed after it's first execution.
 +
*
 +
* @param {String|RegExp} evt Name of the event to attach the listener to.
 +
* @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.addOnceListener = function addOnceListener(evt, listener) {
 +
return this.addListener(evt, {
 +
listener: listener,
 +
once: true
 +
});
 +
};
 +
 +
/**
 +
* Alias of addOnceListener.
 +
*/
 +
proto.once = alias('addOnceListener');
 +
 +
/**
 +
* Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.
 +
* You need to tell it what event names should be matched by a regex.
 +
*
 +
* @param {String} evt Name of the event to create.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.defineEvent = function defineEvent(evt) {
 +
this.getListeners(evt);
 +
return this;
 +
};
 +
 +
/**
 +
* Uses defineEvent to define multiple events.
 +
*
 +
* @param {String[]} evts An array of event names to define.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.defineEvents = function defineEvents(evts) {
 +
for (var i = 0; i < evts.length; i += 1) {
 +
this.defineEvent(evts[i]);
 +
}
 +
return this;
 +
};
 +
 +
/**
 +
* Removes a listener function from the specified event.
 +
* When passed a regular expression as the event name, it will remove the listener from all events that match it.
 +
*
 +
* @param {String|RegExp} evt Name of the event to remove the listener from.
 +
* @param {Function} listener Method to remove from the event.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.removeListener = function removeListener(evt, listener) {
 +
var listeners = this.getListenersAsObject(evt);
 +
var index;
 +
var key;
 +
 +
for (key in listeners) {
 +
if (listeners.hasOwnProperty(key)) {
 +
index = indexOfListener(listeners[key], listener);
 +
 +
if (index !== -1) {
 +
listeners[key].splice(index, 1);
 +
}
 +
}
 +
}
 +
 +
return this;
 +
};
 +
 +
/**
 +
* Alias of removeListener
 +
*/
 +
proto.off = alias('removeListener');
 +
 +
/**
 +
* Adds listeners in bulk using the manipulateListeners method.
 +
* If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.
 +
* You can also pass it a regular expression to add the array of listeners to all events that match it.
 +
* Yeah, this function does quite a bit. That's probably a bad thing.
 +
*
 +
* @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.
 +
* @param {Function[]} [listeners] An optional array of listener functions to add.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.addListeners = function addListeners(evt, listeners) {
 +
// Pass through to manipulateListeners
 +
return this.manipulateListeners(false, evt, listeners);
 +
};
 +
 +
/**
 +
* Removes listeners in bulk using the manipulateListeners method.
 +
* If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.
 +
* You can also pass it an event name and an array of listeners to be removed.
 +
* You can also pass it a regular expression to remove the listeners from all events that match it.
 +
*
 +
* @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.
 +
* @param {Function[]} [listeners] An optional array of listener functions to remove.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.removeListeners = function removeListeners(evt, listeners) {
 +
// Pass through to manipulateListeners
 +
return this.manipulateListeners(true, evt, listeners);
 +
};
 +
 +
/**
 +
* Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.
 +
* The first argument will determine if the listeners are removed (true) or added (false).
 +
* If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.
 +
* You can also pass it an event name and an array of listeners to be added/removed.
 +
* You can also pass it a regular expression to manipulate the listeners of all events that match it.
 +
*
 +
* @param {Boolean} remove True if you want to remove listeners, false if you want to add.
 +
* @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.
 +
* @param {Function[]} [listeners] An optional array of listener functions to add/remove.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {
 +
var i;
 +
var value;
 +
var single = remove ? this.removeListener : this.addListener;
 +
var multiple = remove ? this.removeListeners : this.addListeners;
 +
 +
// If evt is an object then pass each of it's properties to this method
 +
if (typeof evt === 'object' && !(evt instanceof RegExp)) {
 +
for (i in evt) {
 +
if (evt.hasOwnProperty(i) && (value = evt[i])) {
 +
// Pass the single listener straight through to the singular method
 +
if (typeof value === 'function') {
 +
single.call(this, i, value);
 +
}
 +
else {
 +
// Otherwise pass back to the multiple function
 +
multiple.call(this, i, value);
 +
}
 +
}
 +
}
 +
}
 +
else {
 +
// So evt must be a string
 +
// And listeners must be an array of listeners
 +
// Loop over it and pass each one to the multiple method
 +
i = listeners.length;
 +
while (i--) {
 +
single.call(this, evt, listeners[i]);
 +
}
 +
}
 +
 +
return this;
 +
};
 +
 +
/**
 +
* Removes all listeners from a specified event.
 +
* If you do not specify an event then all listeners will be removed.
 +
* That means every event will be emptied.
 +
* You can also pass a regex to remove all events that match it.
 +
*
 +
* @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.removeEvent = function removeEvent(evt) {
 +
var type = typeof evt;
 +
var events = this._getEvents();
 +
var key;
 +
 +
// Remove different things depending on the state of evt
 +
if (type === 'string') {
 +
// Remove all listeners for the specified event
 +
delete events[evt];
 +
}
 +
else if (type === 'object') {
 +
// Remove all events matching the regex.
 +
for (key in events) {
 +
if (events.hasOwnProperty(key) && evt.test(key)) {
 +
delete events[key];
 +
}
 +
}
 +
}
 +
else {
 +
// Remove all listeners in all events
 +
delete this._events;
 +
}
 +
 +
return this;
 +
};
 +
 +
/**
 +
* Alias of removeEvent.
 +
*
 +
* Added to mirror the node API.
 +
*/
 +
proto.removeAllListeners = alias('removeEvent');
 +
 +
/**
 +
* Emits an event of your choice.
 +
* When emitted, every listener attached to that event will be executed.
 +
* If you pass the optional argument array then those arguments will be passed to every listener upon execution.
 +
* Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.
 +
* So they will not arrive within the array on the other side, they will be separate.
 +
* You can also pass a regular expression to emit to all events that match it.
 +
*
 +
* @param {String|RegExp} evt Name of the event to emit and execute listeners for.
 +
* @param {Array} [args] Optional array of arguments to be passed to each listener.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.emitEvent = function emitEvent(evt, args) {
 +
var listeners = this.getListenersAsObject(evt);
 +
var listener;
 +
var i;
 +
var key;
 +
var response;
 +
 +
for (key in listeners) {
 +
if (listeners.hasOwnProperty(key)) {
 +
i = listeners[key].length;
 +
 +
while (i--) {
 +
// If the listener returns true then it shall be removed from the event
 +
// The function is executed either with a basic call or an apply if there is an args array
 +
listener = listeners[key][i];
 +
 +
if (listener.once === true) {
 +
this.removeListener(evt, listener.listener);
 +
}
 +
 +
response = listener.listener.apply(this, args || []);
 +
 +
if (response === this._getOnceReturnValue()) {
 +
this.removeListener(evt, listener.listener);
 +
}
 +
}
 +
}
 +
}
 +
 +
return this;
 +
};
 +
 +
/**
 +
* Alias of emitEvent
 +
*/
 +
proto.trigger = alias('emitEvent');
 +
 +
/**
 +
* Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.
 +
* As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.
 +
*
 +
* @param {String|RegExp} evt Name of the event to emit and execute listeners for.
 +
* @param {...*} Optional additional arguments to be passed to each listener.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.emit = function emit(evt) {
 +
var args = Array.prototype.slice.call(arguments, 1);
 +
return this.emitEvent(evt, args);
 +
};
 +
 +
/**
 +
* Sets the current value to check against when executing listeners. If a
 +
* listeners return value matches the one set here then it will be removed
 +
* after execution. This value defaults to true.
 +
*
 +
* @param {*} value The new value to check for when executing listeners.
 +
* @return {Object} Current instance of EventEmitter for chaining.
 +
*/
 +
proto.setOnceReturnValue = function setOnceReturnValue(value) {
 +
this._onceReturnValue = value;
 +
return this;
 +
};
 +
 +
/**
 +
* Fetches the current value to check against when executing listeners. If
 +
* the listeners return value matches this one then it should be removed
 +
* automatically. It will return true by default.
 +
*
 +
* @return {*|Boolean} The current value to check for or the default, true.
 +
* @api private
 +
*/
 +
proto._getOnceReturnValue = function _getOnceReturnValue() {
 +
if (this.hasOwnProperty('_onceReturnValue')) {
 +
return this._onceReturnValue;
 +
}
 +
else {
 +
return true;
 +
}
 +
};
 +
 +
/**
 +
* Fetches the events object and creates one if required.
 +
*
 +
* @return {Object} The events storage object.
 +
* @api private
 +
*/
 +
proto._getEvents = function _getEvents() {
 +
return this._events || (this._events = {});
 +
};
 +
 +
// Expose the class either via AMD, CommonJS or the global object
 +
if (typeof define === 'function' && define.amd) {
 +
define('eventEmitter/EventEmitter',[],function () {
 +
return EventEmitter;
 +
});
 +
}
 +
else if (typeof module === 'object' && module.exports){
 +
module.exports = EventEmitter;
 +
}
 +
else {
 +
this.EventEmitter = EventEmitter;
 +
}
 +
}.call(this));
 +
 +
/*!
 +
* eventie v1.0.3
 +
* event binding helper
 +
*  eventie.bind( elem, 'click', myFn )
 +
*  eventie.unbind( elem, 'click', myFn )
 +
*/
 +
 +
/*jshint browser: true, undef: true, unused: true */
 +
/*global define: false */
 +
 +
( function( window ) {
 +
 +
 +
 +
var docElem = document.documentElement;
 +
 +
var bind = function() {};
 +
 +
if ( docElem.addEventListener ) {
 +
  bind = function( obj, type, fn ) {
 +
    obj.addEventListener( type, fn, false );
 +
  };
 +
} else if ( docElem.attachEvent ) {
 +
  bind = function( obj, type, fn ) {
 +
    obj[ type + fn ] = fn.handleEvent ?
 +
      function() {
 +
        var event = window.event;
 +
        // add event.target
 +
        event.target = event.target || event.srcElement;
 +
        fn.handleEvent.call( fn, event );
 +
      } :
 +
      function() {
 +
        var event = window.event;
 +
        // add event.target
 +
        event.target = event.target || event.srcElement;
 +
        fn.call( obj, event );
 +
      };
 +
    obj.attachEvent( "on" + type, obj[ type + fn ] );
 +
  };
 +
}
 +
 +
var unbind = function() {};
 +
 +
if ( docElem.removeEventListener ) {
 +
  unbind = function( obj, type, fn ) {
 +
    obj.removeEventListener( type, fn, false );
 +
  };
 +
} else if ( docElem.detachEvent ) {
 +
  unbind = function( obj, type, fn ) {
 +
    obj.detachEvent( "on" + type, obj[ type + fn ] );
 +
    try {
 +
      delete obj[ type + fn ];
 +
    } catch ( err ) {
 +
      // can't delete window object properties
 +
      obj[ type + fn ] = undefined;
 +
    }
 +
  };
 +
}
 +
 +
var eventie = {
 +
  bind: bind,
 +
  unbind: unbind
 +
};
 +
 +
// transport
 +
if ( typeof define === 'function' && define.amd ) {
 +
  // AMD
 +
  define( 'eventie/eventie',eventie );
 +
} else {
 +
  // browser global
 +
  window.eventie = eventie;
 +
}
 +
 +
})( this );
 +
 +
/*!
 +
* imagesLoaded v3.0.4
 +
* JavaScript is all like "You images are done yet or what?"
 +
* MIT License
 +
*/
 +
 +
( function( window ) {
 +
 +
 +
 +
var $ = window.jQuery;
 +
var console = window.console;
 +
var hasConsole = typeof console !== 'undefined';
 +
 +
// -------------------------- helpers -------------------------- //
 +
 +
// extend objects
 +
function extend( a, b ) {
 +
  for ( var prop in b ) {
 +
    a[ prop ] = b[ prop ];
 +
  }
 +
  return a;
 +
}
 +
 +
var objToString = Object.prototype.toString;
 +
function isArray( obj ) {
 +
  return objToString.call( obj ) === '[object Array]';
 +
}
 +
 +
// turn element or nodeList into an array
 +
function makeArray( obj ) {
 +
  var ary = [];
 +
  if ( isArray( obj ) ) {
 +
    // use object if already an array
 +
    ary = obj;
 +
  } else if ( typeof obj.length === 'number' ) {
 +
    // convert nodeList to array
 +
    for ( var i=0, len = obj.length; i < len; i++ ) {
 +
      ary.push( obj[i] );
 +
    }
 +
  } else {
 +
    // array of single index
 +
    ary.push( obj );
 +
  }
 +
  return ary;
 +
}
 +
 +
// --------------------------  -------------------------- //
 +
 +
function defineImagesLoaded( EventEmitter, eventie ) {
 +
 +
  /**
 +
  * @param {Array, Element, NodeList, String} elem
 +
  * @param {Object or Function} options - if function, use as callback
 +
  * @param {Function} onAlways - callback function
 +
  */
 +
  function ImagesLoaded( elem, options, onAlways ) {
 +
    // coerce ImagesLoaded() without new, to be new ImagesLoaded()
 +
    if ( !( this instanceof ImagesLoaded ) ) {
 +
      return new ImagesLoaded( elem, options );
 +
    }
 +
    // use elem as selector string
 +
    if ( typeof elem === 'string' ) {
 +
      elem = document.querySelectorAll( elem );
 +
    }
 +
 +
    this.elements = makeArray( elem );
 +
    this.options = extend( {}, this.options );
 +
 +
    if ( typeof options === 'function' ) {
 +
      onAlways = options;
 +
    } else {
 +
      extend( this.options, options );
 +
    }
 +
 +
    if ( onAlways ) {
 +
      this.on( 'always', onAlways );
 +
    }
 +
 +
    this.getImages();
 +
 +
    if ( $ ) {
 +
      // add jQuery Deferred object
 +
      this.jqDeferred = new $.Deferred();
 +
    }
 +
 +
    // HACK check async to allow time to bind listeners
 +
    var _this = this;
 +
    setTimeout( function() {
 +
      _this.check();
 +
    });
 +
  }
 +
 +
  ImagesLoaded.prototype = new EventEmitter();
 +
 +
  ImagesLoaded.prototype.options = {};
 +
 +
  ImagesLoaded.prototype.getImages = function() {
 +
    this.images = [];
 +
 +
    // filter & find items if we have an item selector
 +
    for ( var i=0, len = this.elements.length; i < len; i++ ) {
 +
      var elem = this.elements[i];
 +
      // filter siblings
 +
      if ( elem.nodeName === 'IMG' ) {
 +
        this.addImage( elem );
 +
      }
 +
      // find children
 +
      var childElems = elem.querySelectorAll('img');
 +
      // concat childElems to filterFound array
 +
      for ( var j=0, jLen = childElems.length; j < jLen; j++ ) {
 +
        var img = childElems[j];
 +
        this.addImage( img );
 +
      }
 +
    }
 +
  };
 +
 +
  /**
 +
  * @param {Image} img
 +
  */
 +
  ImagesLoaded.prototype.addImage = function( img ) {
 +
    var loadingImage = new LoadingImage( img );
 +
    this.images.push( loadingImage );
 +
  };
 +
 +
  ImagesLoaded.prototype.check = function() {
 +
    var _this = this;
 +
    var checkedCount = 0;
 +
    var length = this.images.length;
 +
    this.hasAnyBroken = false;
 +
    // complete if no images
 +
    if ( !length ) {
 +
      this.complete();
 +
      return;
 +
    }
 +
 +
    function onConfirm( image, message ) {
 +
      if ( _this.options.debug && hasConsole ) {
 +
        console.log( 'confirm', image, message );
 +
      }
 +
 +
      _this.progress( image );
 +
      checkedCount++;
 +
      if ( checkedCount === length ) {
 +
        _this.complete();
 +
      }
 +
      return true; // bind once
 +
    }
 +
 +
    for ( var i=0; i < length; i++ ) {
 +
      var loadingImage = this.images[i];
 +
      loadingImage.on( 'confirm', onConfirm );
 +
      loadingImage.check();
 +
    }
 +
  };
 +
 +
  ImagesLoaded.prototype.progress = function( image ) {
 +
    this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
 +
    // HACK - Chrome triggers event before object properties have changed. #83
 +
    var _this = this;
 +
    setTimeout( function() {
 +
      _this.emit( 'progress', _this, image );
 +
      if ( _this.jqDeferred ) {
 +
        _this.jqDeferred.notify( _this, image );
 +
      }
 +
    });
 +
  };
 +
 +
  ImagesLoaded.prototype.complete = function() {
 +
    var eventName = this.hasAnyBroken ? 'fail' : 'done';
 +
    this.isComplete = true;
 +
    var _this = this;
 +
    // HACK - another setTimeout so that confirm happens after progress
 +
    setTimeout( function() {
 +
      _this.emit( eventName, _this );
 +
      _this.emit( 'always', _this );
 +
      if ( _this.jqDeferred ) {
 +
        var jqMethod = _this.hasAnyBroken ? 'reject' : 'resolve';
 +
        _this.jqDeferred[ jqMethod ]( _this );
 +
      }
 +
    });
 +
  };
 +
 +
  // -------------------------- jquery -------------------------- //
 +
 +
  if ( $ ) {
 +
    $.fn.imagesLoaded = function( options, callback ) {
 +
      var instance = new ImagesLoaded( this, options, callback );
 +
      return instance.jqDeferred.promise( $(this) );
 +
    };
 +
  }
 +
 +
 +
  // --------------------------  -------------------------- //
 +
 +
  var cache = {};
 +
 +
  function LoadingImage( img ) {
 +
    this.img = img;
 +
  }
 +
 +
  LoadingImage.prototype = new EventEmitter();
 +
 +
  LoadingImage.prototype.check = function() {
 +
    // first check cached any previous images that have same src
 +
    var cached = cache[ this.img.src ];
 +
    if ( cached ) {
 +
      this.useCached( cached );
 +
      return;
 +
    }
 +
    // add this to cache
 +
    cache[ this.img.src ] = this;
 +
 +
    // If complete is true and browser supports natural sizes,
 +
    // try to check for image status manually.
 +
    if ( this.img.complete && this.img.naturalWidth !== undefined ) {
 +
      // report based on naturalWidth
 +
      this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
 +
      return;
 +
    }
 +
 +
    // If none of the checks above matched, simulate loading on detached element.
 +
    var proxyImage = this.proxyImage = new Image();
 +
    eventie.bind( proxyImage, 'load', this );
 +
    eventie.bind( proxyImage, 'error', this );
 +
    proxyImage.src = this.img.src;
 +
  };
 +
 +
  LoadingImage.prototype.useCached = function( cached ) {
 +
    if ( cached.isConfirmed ) {
 +
      this.confirm( cached.isLoaded, 'cached was confirmed' );
 +
    } else {
 +
      var _this = this;
 +
      cached.on( 'confirm', function( image ) {
 +
        _this.confirm( image.isLoaded, 'cache emitted confirmed' );
 +
        return true; // bind once
 +
      });
 +
    }
 +
  };
 +
 +
  LoadingImage.prototype.confirm = function( isLoaded, message ) {
 +
    this.isConfirmed = true;
 +
    this.isLoaded = isLoaded;
 +
    this.emit( 'confirm', this, message );
 +
  };
 +
 +
  // trigger specified handler for event type
 +
  LoadingImage.prototype.handleEvent = function( event ) {
 +
    var method = 'on' + event.type;
 +
    if ( this[ method ] ) {
 +
      this[ method ]( event );
 +
    }
 +
  };
 +
 +
  LoadingImage.prototype.onload = function() {
 +
    this.confirm( true, 'onload' );
 +
    this.unbindProxyEvents();
 +
  };
 +
 +
  LoadingImage.prototype.onerror = function() {
 +
    this.confirm( false, 'onerror' );
 +
    this.unbindProxyEvents();
 +
  };
 +
 +
  LoadingImage.prototype.unbindProxyEvents = function() {
 +
    eventie.unbind( this.proxyImage, 'load', this );
 +
    eventie.unbind( this.proxyImage, 'error', this );
 +
  };
 +
 +
  // -----  ----- //
 +
 +
  return ImagesLoaded;
 +
}
 +
 +
// -------------------------- transport -------------------------- //
 +
 +
if ( typeof define === 'function' && define.amd ) {
 +
  // AMD
 +
  define( [
 +
      'eventEmitter/EventEmitter',
 +
      'eventie/eventie'
 +
    ],
 +
    defineImagesLoaded );
 +
} else {
 +
  // browser global
 +
  window.imagesLoaded = defineImagesLoaded(
 +
    window.EventEmitter,
 +
    window.eventie
 +
  );
 +
}
 +
 +
})( window );</script>
 
     <!-- Portfolio Filter -->
 
     <!-- Portfolio Filter -->
    <script type="text/javascript" src="js/jquery.isotope.js"></script>
+
<script type="text/javascript">/**
 +
* Isotope v1.5.25
 +
* An exquisite jQuery plugin for magical layouts
 +
* http://isotope.metafizzy.co
 +
*
 +
* Commercial use requires one-time license fee
 +
* http://metafizzy.co/#licenses
 +
*
 +
* Copyright 2012 David DeSandro / Metafizzy
 +
*/
 +
 
 +
/*jshint asi: true, browser: true, curly: true, eqeqeq: true, forin: false, immed: false, newcap: true, noempty: true, strict: true, undef: true */
 +
/*global jQuery: false */
 +
 
 +
(function( window, $, undefined ){
 +
 
 +
  'use strict';
 +
 
 +
  // get global vars
 +
  var document = window.document;
 +
  var Modernizr = window.Modernizr;
 +
 
 +
  // helper function
 +
  var capitalize = function( str ) {
 +
    return str.charAt(0).toUpperCase() + str.slice(1);
 +
  };
 +
 
 +
  // ========================= getStyleProperty by kangax ===============================
 +
  // http://perfectionkills.com/feature-testing-css-properties/
 +
 
 +
  var prefixes = 'Moz Webkit O Ms'.split(' ');
 +
 
 +
  var getStyleProperty = function( propName ) {
 +
    var style = document.documentElement.style,
 +
        prefixed;
 +
 
 +
    // test standard property first
 +
    if ( typeof style[propName] === 'string' ) {
 +
      return propName;
 +
    }
 +
 
 +
    // capitalize
 +
    propName = capitalize( propName );
 +
 
 +
    // test vendor specific properties
 +
    for ( var i=0, len = prefixes.length; i < len; i++ ) {
 +
      prefixed = prefixes[i] + propName;
 +
      if ( typeof style[ prefixed ] === 'string' ) {
 +
        return prefixed;
 +
      }
 +
    }
 +
  };
 +
 
 +
  var transformProp = getStyleProperty('transform'),
 +
      transitionProp = getStyleProperty('transitionProperty');
 +
 
 +
 
 +
  // ========================= miniModernizr ===============================
 +
  // <3<3<3 and thanks to Faruk and Paul for doing the heavy lifting
 +
 
 +
  /*!
 +
  * Modernizr v1.6ish: miniModernizr for Isotope
 +
  * http://www.modernizr.com
 +
  *
 +
  * Developed by:
 +
  * - Faruk Ates  http://farukat.es/
 +
  * - Paul Irish  http://paulirish.com/
 +
  *
 +
  * Copyright (c) 2009-2010
 +
  * Dual-licensed under the BSD or MIT licenses.
 +
  * http://www.modernizr.com/license/
 +
  */
 +
 
 +
  /*
 +
  * This version whittles down the script just to check support for
 +
  * CSS transitions, transforms, and 3D transforms.
 +
  */
 +
 
 +
  var tests = {
 +
    csstransforms: function() {
 +
      return !!transformProp;
 +
    },
 +
 
 +
    csstransforms3d: function() {
 +
      var test = !!getStyleProperty('perspective');
 +
      // double check for Chrome's false positive
 +
      if ( test ) {
 +
        var vendorCSSPrefixes = ' -o- -moz- -ms- -webkit- -khtml- '.split(' '),
 +
            mediaQuery = '@media (' + vendorCSSPrefixes.join('transform-3d),(') + 'modernizr)',
 +
            $style = $('<style>' + mediaQuery + '{#modernizr{height:3px}}' + '</style>')
 +
                        .appendTo('head'),
 +
            $div = $('<div id="modernizr" />').appendTo('html');
 +
 
 +
        test = $div.height() === 3;
 +
 
 +
        $div.remove();
 +
        $style.remove();
 +
      }
 +
      return test;
 +
    },
 +
 
 +
    csstransitions: function() {
 +
      return !!transitionProp;
 +
    }
 +
  };
 +
 
 +
  var testName;
 +
 
 +
  if ( Modernizr ) {
 +
    // if there's a previous Modernzir, check if there are necessary tests
 +
    for ( testName in tests) {
 +
      if ( !Modernizr.hasOwnProperty( testName ) ) {
 +
        // if test hasn't been run, use addTest to run it
 +
        Modernizr.addTest( testName, tests[ testName ] );
 +
      }
 +
    }
 +
  } else {
 +
    // or create new mini Modernizr that just has the 3 tests
 +
    Modernizr = window.Modernizr = {
 +
      _version : '1.6ish: miniModernizr for Isotope'
 +
    };
 +
 
 +
    var classes = ' ';
 +
    var result;
 +
 
 +
    // Run through tests
 +
    for ( testName in tests) {
 +
      result = tests[ testName ]();
 +
      Modernizr[ testName ] = result;
 +
      classes += ' ' + ( result ?  '' : 'no-' ) + testName;
 +
    }
 +
 
 +
    // Add the new classes to the <html> element.
 +
    $('html').addClass( classes );
 +
  }
 +
 
 +
 
 +
  // ========================= isoTransform ===============================
 +
 
 +
  /**
 +
  *  provides hooks for .css({ scale: value, translate: [x, y] })
 +
  *  Progressively enhanced CSS transforms
 +
  *  Uses hardware accelerated 3D transforms for Safari
 +
  *  or falls back to 2D transforms.
 +
  */
 +
 
 +
  if ( Modernizr.csstransforms ) {
 +
 
 +
        // i.e. transformFnNotations.scale(0.5) >> 'scale3d( 0.5, 0.5, 1)'
 +
    var transformFnNotations = Modernizr.csstransforms3d ?
 +
      { // 3D transform functions
 +
        translate : function ( position ) {
 +
          return 'translate3d(' + position[0] + 'px, ' + position[1] + 'px, 0) ';
 +
        },
 +
        scale : function ( scale ) {
 +
          return 'scale3d(' + scale + ', ' + scale + ', 1) ';
 +
        }
 +
      } :
 +
      { // 2D transform functions
 +
        translate : function ( position ) {
 +
          return 'translate(' + position[0] + 'px, ' + position[1] + 'px) ';
 +
        },
 +
        scale : function ( scale ) {
 +
          return 'scale(' + scale + ') ';
 +
        }
 +
      }
 +
    ;
 +
 
 +
    var setIsoTransform = function ( elem, name, value ) {
 +
          // unpack current transform data
 +
      var data =  $.data( elem, 'isoTransform' ) || {},
 +
          newData = {},
 +
          fnName,
 +
          transformObj = {},
 +
          transformValue;
 +
 
 +
      // i.e. newData.scale = 0.5
 +
      newData[ name ] = value;
 +
      // extend new value over current data
 +
      $.extend( data, newData );
 +
 
 +
      for ( fnName in data ) {
 +
        transformValue = data[ fnName ];
 +
        transformObj[ fnName ] = transformFnNotations[ fnName ]( transformValue );
 +
      }
 +
 
 +
      // get proper order
 +
      // ideally, we could loop through this give an array, but since we only have
 +
      // a couple transforms we're keeping track of, we'll do it like so
 +
      var translateFn = transformObj.translate || '',
 +
          scaleFn = transformObj.scale || '',
 +
          // sorting so translate always comes first
 +
          valueFns = translateFn + scaleFn;
 +
 
 +
      // set data back in elem
 +
      $.data( elem, 'isoTransform', data );
 +
 
 +
      // set name to vendor specific property
 +
      elem.style[ transformProp ] = valueFns;
 +
    };
 +
 
 +
    // ==================== scale ===================
 +
 
 +
    $.cssNumber.scale = true;
 +
 
 +
    $.cssHooks.scale = {
 +
      set: function( elem, value ) {
 +
        // uncomment this bit if you want to properly parse strings
 +
        // if ( typeof value === 'string' ) {
 +
        //  value = parseFloat( value );
 +
        // }
 +
        setIsoTransform( elem, 'scale', value );
 +
      },
 +
      get: function( elem, computed ) {
 +
        var transform = $.data( elem, 'isoTransform' );
 +
        return transform && transform.scale ? transform.scale : 1;
 +
      }
 +
    };
 +
 
 +
    $.fx.step.scale = function( fx ) {
 +
      $.cssHooks.scale.set( fx.elem, fx.now+fx.unit );
 +
    };
 +
 
 +
 
 +
    // ==================== translate ===================
 +
 
 +
    $.cssNumber.translate = true;
 +
 
 +
    $.cssHooks.translate = {
 +
      set: function( elem, value ) {
 +
 
 +
        // uncomment this bit if you want to properly parse strings
 +
        // if ( typeof value === 'string' ) {
 +
        //  value = value.split(' ');
 +
        // }
 +
        //
 +
        // var i, val;
 +
        // for ( i = 0; i < 2; i++ ) {
 +
        //  val = value[i];
 +
        //  if ( typeof val === 'string' ) {
 +
        //    val = parseInt( val );
 +
        //  }
 +
        // }
 +
 
 +
        setIsoTransform( elem, 'translate', value );
 +
      },
 +
 
 +
      get: function( elem, computed ) {
 +
        var transform = $.data( elem, 'isoTransform' );
 +
        return transform && transform.translate ? transform.translate : [ 0, 0 ];
 +
      }
 +
    };
 +
 
 +
  }
 +
 
 +
  // ========================= get transition-end event ===============================
 +
  var transitionEndEvent, transitionDurProp;
 +
 
 +
  if ( Modernizr.csstransitions ) {
 +
    transitionEndEvent = {
 +
      WebkitTransitionProperty: 'webkitTransitionEnd',  // webkit
 +
      MozTransitionProperty: 'transitionend',
 +
      OTransitionProperty: 'oTransitionEnd otransitionend',
 +
      transitionProperty: 'transitionend'
 +
    }[ transitionProp ];
 +
 
 +
    transitionDurProp = getStyleProperty('transitionDuration');
 +
  }
 +
 
 +
  // ========================= smartresize ===============================
 +
 
 +
  /*
 +
  * smartresize: debounced resize event for jQuery
 +
  *
 +
  * latest version and complete README available on Github:
 +
  * https://github.com/louisremi/jquery.smartresize.js
 +
  *
 +
  * Copyright 2011 @louis_remi
 +
  * Licensed under the MIT license.
 +
  */
 +
 
 +
  var $event = $.event,
 +
      dispatchMethod = $.event.handle ? 'handle' : 'dispatch',
 +
      resizeTimeout;
 +
 
 +
  $event.special.smartresize = {
 +
    setup: function() {
 +
      $(this).bind( "resize", $event.special.smartresize.handler );
 +
    },
 +
    teardown: function() {
 +
      $(this).unbind( "resize", $event.special.smartresize.handler );
 +
    },
 +
    handler: function( event, execAsap ) {
 +
      // Save the context
 +
      var context = this,
 +
          args = arguments;
 +
 
 +
      // set correct event type
 +
      event.type = "smartresize";
 +
 
 +
      if ( resizeTimeout ) { clearTimeout( resizeTimeout ); }
 +
      resizeTimeout = setTimeout(function() {
 +
        $event[ dispatchMethod ].apply( context, args );
 +
      }, execAsap === "execAsap"? 0 : 100 );
 +
    }
 +
  };
 +
 
 +
  $.fn.smartresize = function( fn ) {
 +
    return fn ? this.bind( "smartresize", fn ) : this.trigger( "smartresize", ["execAsap"] );
 +
  };
 +
 
 +
 
 +
 
 +
// ========================= Isotope ===============================
 +
 
 +
 
 +
  // our "Widget" object constructor
 +
  $.Isotope = function( options, element, callback ){
 +
    this.element = $( element );
 +
 
 +
    this._create( options );
 +
    this._init( callback );
 +
  };
 +
 
 +
  // styles of container element we want to keep track of
 +
  var isoContainerStyles = [ 'width', 'height' ];
 +
 
 +
  var $window = $(window);
 +
 
 +
  $.Isotope.settings = {
 +
    resizable: true,
 +
    layoutMode : 'masonry',
 +
    containerClass : 'isotope',
 +
    itemClass : 'isotope-item',
 +
    hiddenClass : 'isotope-hidden',
 +
    hiddenStyle: { opacity: 0, scale: 0.001 },
 +
    visibleStyle: { opacity: 1, scale: 1 },
 +
    containerStyle: {
 +
      position: 'relative',
 +
      overflow: 'hidden'
 +
    },
 +
    animationEngine: 'best-available',
 +
    animationOptions: {
 +
      queue: false,
 +
      duration: 800
 +
    },
 +
    sortBy : 'original-order',
 +
    sortAscending : true,
 +
    resizesContainer : true,
 +
    transformsEnabled: true,
 +
    itemPositionDataEnabled: false
 +
  };
 +
 
 +
  $.Isotope.prototype = {
 +
 
 +
    // sets up widget
 +
    _create : function( options ) {
 +
 
 +
      this.options = $.extend( {}, $.Isotope.settings, options );
 +
 
 +
      this.styleQueue = [];
 +
      this.elemCount = 0;
 +
 
 +
      // get original styles in case we re-apply them in .destroy()
 +
      var elemStyle = this.element[0].style;
 +
      this.originalStyle = {};
 +
      // keep track of container styles
 +
      var containerStyles = isoContainerStyles.slice(0);
 +
      for ( var prop in this.options.containerStyle ) {
 +
        containerStyles.push( prop );
 +
      }
 +
      for ( var i=0, len = containerStyles.length; i < len; i++ ) {
 +
        prop = containerStyles[i];
 +
        this.originalStyle[ prop ] = elemStyle[ prop ] || '';
 +
      }
 +
      // apply container style from options
 +
      this.element.css( this.options.containerStyle );
 +
 
 +
      this._updateAnimationEngine();
 +
      this._updateUsingTransforms();
 +
 
 +
      // sorting
 +
      var originalOrderSorter = {
 +
        'original-order' : function( $elem, instance ) {
 +
          instance.elemCount ++;
 +
          return instance.elemCount;
 +
        },
 +
        random : function() {
 +
          return Math.random();
 +
        }
 +
      };
 +
 
 +
      this.options.getSortData = $.extend( this.options.getSortData, originalOrderSorter );
 +
 
 +
      // need to get atoms
 +
      this.reloadItems();
 +
 
 +
      // get top left position of where the bricks should be
 +
      this.offset = {
 +
        left: parseInt( ( this.element.css('padding-left') || 0 ), 10 ),
 +
        top: parseInt( ( this.element.css('padding-top') || 0 ), 10 )
 +
      };
 +
 
 +
      // add isotope class first time around
 +
      var instance = this;
 +
      setTimeout( function() {
 +
        instance.element.addClass( instance.options.containerClass );
 +
      }, 0 );
 +
 
 +
      // bind resize method
 +
      if ( this.options.resizable ) {
 +
        $window.bind( 'smartresize.isotope', function() {
 +
          instance.resize();
 +
        });
 +
      }
 +
 
 +
      // dismiss all click events from hidden events
 +
      this.element.delegate( '.' + this.options.hiddenClass, 'click', function(){
 +
        return false;
 +
      });
 +
 
 +
    },
 +
 
 +
    _getAtoms : function( $elems ) {
 +
      var selector = this.options.itemSelector,
 +
          // filter & find
 +
          $atoms = selector ? $elems.filter( selector ).add( $elems.find( selector ) ) : $elems,
 +
          // base style for atoms
 +
          atomStyle = { position: 'absolute' };
 +
 
 +
      // filter out text nodes
 +
      $atoms = $atoms.filter( function( i, atom ) {
 +
        return atom.nodeType === 1;
 +
      });
 +
 
 +
      if ( this.usingTransforms ) {
 +
        atomStyle.left = 0;
 +
        atomStyle.top = 0;
 +
      }
 +
 
 +
      $atoms.css( atomStyle ).addClass( this.options.itemClass );
 +
 
 +
      this.updateSortData( $atoms, true );
 +
 
 +
      return $atoms;
 +
    },
 +
 
 +
    // _init fires when your instance is first created
 +
    // (from the constructor above), and when you
 +
    // attempt to initialize the widget again (by the bridge)
 +
    // after it has already been initialized.
 +
    _init : function( callback ) {
 +
 
 +
      this.$filteredAtoms = this._filter( this.$allAtoms );
 +
      this._sort();
 +
      this.reLayout( callback );
 +
 
 +
    },
 +
 
 +
    option : function( opts ){
 +
      // change options AFTER initialization:
 +
      // signature: $('#foo').bar({ cool:false });
 +
      if ( $.isPlainObject( opts ) ){
 +
        this.options = $.extend( true, this.options, opts );
 +
 
 +
        // trigger _updateOptionName if it exists
 +
        var updateOptionFn;
 +
        for ( var optionName in opts ) {
 +
          updateOptionFn = '_update' + capitalize( optionName );
 +
          if ( this[ updateOptionFn ] ) {
 +
            this[ updateOptionFn ]();
 +
          }
 +
        }
 +
      }
 +
    },
 +
 
 +
    // ====================== updaters ====================== //
 +
    // kind of like setters
 +
 
 +
    _updateAnimationEngine : function() {
 +
      var animationEngine = this.options.animationEngine.toLowerCase().replace( /[ _\-]/g, '');
 +
      var isUsingJQueryAnimation;
 +
      // set applyStyleFnName
 +
      switch ( animationEngine ) {
 +
        case 'css' :
 +
        case 'none' :
 +
          isUsingJQueryAnimation = false;
 +
          break;
 +
        case 'jquery' :
 +
          isUsingJQueryAnimation = true;
 +
          break;
 +
        default : // best available
 +
          isUsingJQueryAnimation = !Modernizr.csstransitions;
 +
      }
 +
      this.isUsingJQueryAnimation = isUsingJQueryAnimation;
 +
      this._updateUsingTransforms();
 +
    },
 +
 
 +
    _updateTransformsEnabled : function() {
 +
      this._updateUsingTransforms();
 +
    },
 +
 
 +
    _updateUsingTransforms : function() {
 +
      var usingTransforms = this.usingTransforms = this.options.transformsEnabled &&
 +
        Modernizr.csstransforms && Modernizr.csstransitions && !this.isUsingJQueryAnimation;
 +
 
 +
      // prevent scales when transforms are disabled
 +
      if ( !usingTransforms ) {
 +
        delete this.options.hiddenStyle.scale;
 +
        delete this.options.visibleStyle.scale;
 +
      }
 +
 
 +
      this.getPositionStyles = usingTransforms ? this._translate : this._positionAbs;
 +
    },
 +
 
 +
 
 +
    // ====================== Filtering ======================
 +
 
 +
    _filter : function( $atoms ) {
 +
      var filter = this.options.filter === '' ? '*' : this.options.filter;
 +
 
 +
      if ( !filter ) {
 +
        return $atoms;
 +
      }
 +
 
 +
      var hiddenClass    = this.options.hiddenClass,
 +
          hiddenSelector = '.' + hiddenClass,
 +
          $hiddenAtoms  = $atoms.filter( hiddenSelector ),
 +
          $atomsToShow  = $hiddenAtoms;
 +
 
 +
      if ( filter !== '*' ) {
 +
        $atomsToShow = $hiddenAtoms.filter( filter );
 +
        var $atomsToHide = $atoms.not( hiddenSelector ).not( filter ).addClass( hiddenClass );
 +
        this.styleQueue.push({ $el: $atomsToHide, style: this.options.hiddenStyle });
 +
      }
 +
 
 +
      this.styleQueue.push({ $el: $atomsToShow, style: this.options.visibleStyle });
 +
      $atomsToShow.removeClass( hiddenClass );
 +
 
 +
      return $atoms.filter( filter );
 +
    },
 +
 
 +
    // ====================== Sorting ======================
 +
 
 +
    updateSortData : function( $atoms, isIncrementingElemCount ) {
 +
      var instance = this,
 +
          getSortData = this.options.getSortData,
 +
          $this, sortData;
 +
      $atoms.each(function(){
 +
        $this = $(this);
 +
        sortData = {};
 +
        // get value for sort data based on fn( $elem ) passed in
 +
        for ( var key in getSortData ) {
 +
          if ( !isIncrementingElemCount && key === 'original-order' ) {
 +
            // keep original order original
 +
            sortData[ key ] = $.data( this, 'isotope-sort-data' )[ key ];
 +
          } else {
 +
            sortData[ key ] = getSortData[ key ]( $this, instance );
 +
          }
 +
        }
 +
        // apply sort data to element
 +
        $.data( this, 'isotope-sort-data', sortData );
 +
      });
 +
    },
 +
 
 +
    // used on all the filtered atoms
 +
    _sort : function() {
 +
 
 +
      var sortBy = this.options.sortBy,
 +
          getSorter = this._getSorter,
 +
          sortDir = this.options.sortAscending ? 1 : -1,
 +
          sortFn = function( alpha, beta ) {
 +
            var a = getSorter( alpha, sortBy ),
 +
                b = getSorter( beta, sortBy );
 +
            // fall back to original order if data matches
 +
            if ( a === b && sortBy !== 'original-order') {
 +
              a = getSorter( alpha, 'original-order' );
 +
              b = getSorter( beta, 'original-order' );
 +
            }
 +
            return ( ( a > b ) ? 1 : ( a < b ) ? -1 : 0 ) * sortDir;
 +
          };
 +
 
 +
      this.$filteredAtoms.sort( sortFn );
 +
    },
 +
 
 +
    _getSorter : function( elem, sortBy ) {
 +
      return $.data( elem, 'isotope-sort-data' )[ sortBy ];
 +
    },
 +
 
 +
    // ====================== Layout Helpers ======================
 +
 
 +
    _translate : function( x, y ) {
 +
      return { translate : [ x, y ] };
 +
    },
 +
 
 +
    _positionAbs : function( x, y ) {
 +
      return { left: x, top: y };
 +
    },
 +
 
 +
    _pushPosition : function( $elem, x, y ) {
 +
      x = Math.round( x + this.offset.left );
 +
      y = Math.round( y + this.offset.top );
 +
      var position = this.getPositionStyles( x, y );
 +
      this.styleQueue.push({ $el: $elem, style: position });
 +
      if ( this.options.itemPositionDataEnabled ) {
 +
        $elem.data('isotope-item-position', {x: x, y: y} );
 +
      }
 +
    },
 +
 
 +
 
 +
    // ====================== General Layout ======================
 +
 
 +
    // used on collection of atoms (should be filtered, and sorted before )
 +
    // accepts atoms-to-be-laid-out to start with
 +
    layout : function( $elems, callback ) {
 +
 
 +
      var layoutMode = this.options.layoutMode;
 +
 
 +
      // layout logic
 +
      this[ '_' +  layoutMode + 'Layout' ]( $elems );
 +
 
 +
      // set the size of the container
 +
      if ( this.options.resizesContainer ) {
 +
        var containerStyle = this[ '_' +  layoutMode + 'GetContainerSize' ]();
 +
        this.styleQueue.push({ $el: this.element, style: containerStyle });
 +
      }
 +
 
 +
      this._processStyleQueue( $elems, callback );
 +
 
 +
      this.isLaidOut = true;
 +
    },
 +
 
 +
    _processStyleQueue : function( $elems, callback ) {
 +
      // are we animating the layout arrangement?
 +
      // use plugin-ish syntax for css or animate
 +
      var styleFn = !this.isLaidOut ? 'css' : (
 +
            this.isUsingJQueryAnimation ? 'animate' : 'css'
 +
          ),
 +
          animOpts = this.options.animationOptions,
 +
          onLayout = this.options.onLayout,
 +
          objStyleFn, processor,
 +
          triggerCallbackNow, callbackFn;
 +
 
 +
      // default styleQueue processor, may be overwritten down below
 +
      processor = function( i, obj ) {
 +
        obj.$el[ styleFn ]( obj.style, animOpts );
 +
      };
 +
 
 +
      if ( this._isInserting && this.isUsingJQueryAnimation ) {
 +
        // if using styleQueue to insert items
 +
        processor = function( i, obj ) {
 +
          // only animate if it not being inserted
 +
          objStyleFn = obj.$el.hasClass('no-transition') ? 'css' : styleFn;
 +
          obj.$el[ objStyleFn ]( obj.style, animOpts );
 +
        };
 +
 
 +
      } else if ( callback || onLayout || animOpts.complete ) {
 +
        // has callback
 +
        var isCallbackTriggered = false,
 +
            // array of possible callbacks to trigger
 +
            callbacks = [ callback, onLayout, animOpts.complete ],
 +
            instance = this;
 +
        triggerCallbackNow = true;
 +
        // trigger callback only once
 +
        callbackFn = function() {
 +
          if ( isCallbackTriggered ) {
 +
            return;
 +
          }
 +
          var hollaback;
 +
          for (var i=0, len = callbacks.length; i < len; i++) {
 +
            hollaback = callbacks[i];
 +
            if ( typeof hollaback === 'function' ) {
 +
              hollaback.call( instance.element, $elems, instance );
 +
            }
 +
          }
 +
          isCallbackTriggered = true;
 +
        };
 +
 
 +
        if ( this.isUsingJQueryAnimation && styleFn === 'animate' ) {
 +
          // add callback to animation options
 +
          animOpts.complete = callbackFn;
 +
          triggerCallbackNow = false;
 +
 
 +
        } else if ( Modernizr.csstransitions ) {
 +
          // detect if first item has transition
 +
          var i = 0,
 +
              firstItem = this.styleQueue[0],
 +
              testElem = firstItem && firstItem.$el,
 +
              styleObj;
 +
          // get first non-empty jQ object
 +
          while ( !testElem || !testElem.length ) {
 +
            styleObj = this.styleQueue[ i++ ];
 +
            // HACK: sometimes styleQueue[i] is undefined
 +
            if ( !styleObj ) {
 +
              return;
 +
            }
 +
            testElem = styleObj.$el;
 +
          }
 +
          // get transition duration of the first element in that object
 +
          // yeah, this is inexact
 +
          var duration = parseFloat( getComputedStyle( testElem[0] )[ transitionDurProp ] );
 +
          if ( duration > 0 ) {
 +
            processor = function( i, obj ) {
 +
              obj.$el[ styleFn ]( obj.style, animOpts )
 +
                // trigger callback at transition end
 +
                .one( transitionEndEvent, callbackFn );
 +
            };
 +
            triggerCallbackNow = false;
 +
          }
 +
        }
 +
      }
 +
 
 +
      // process styleQueue
 +
      $.each( this.styleQueue, processor );
 +
 
 +
      if ( triggerCallbackNow ) {
 +
        callbackFn();
 +
      }
 +
 
 +
      // clear out queue for next time
 +
      this.styleQueue = [];
 +
    },
 +
 
 +
 
 +
    resize : function() {
 +
      if ( this[ '_' + this.options.layoutMode + 'ResizeChanged' ]() ) {
 +
        this.reLayout();
 +
      }
 +
    },
 +
 
 +
 
 +
    reLayout : function( callback ) {
 +
 
 +
      this[ '_' +  this.options.layoutMode + 'Reset' ]();
 +
      this.layout( this.$filteredAtoms, callback );
 +
 
 +
    },
 +
 
 +
    // ====================== Convenience methods ======================
 +
 
 +
    // ====================== Adding items ======================
 +
 
 +
    // adds a jQuery object of items to a isotope container
 +
    addItems : function( $content, callback ) {
 +
      var $newAtoms = this._getAtoms( $content );
 +
      // add new atoms to atoms pools
 +
      this.$allAtoms = this.$allAtoms.add( $newAtoms );
 +
 
 +
      if ( callback ) {
 +
        callback( $newAtoms );
 +
      }
 +
    },
 +
 
 +
    // convienence method for adding elements properly to any layout
 +
    // positions items, hides them, then animates them back in <--- very sezzy
 +
    insert : function( $content, callback ) {
 +
      // position items
 +
      this.element.append( $content );
 +
 
 +
      var instance = this;
 +
      this.addItems( $content, function( $newAtoms ) {
 +
        var $newFilteredAtoms = instance._filter( $newAtoms );
 +
        instance._addHideAppended( $newFilteredAtoms );
 +
        instance._sort();
 +
        instance.reLayout();
 +
        instance._revealAppended( $newFilteredAtoms, callback );
 +
      });
 +
 
 +
    },
 +
 
 +
    // convienence method for working with Infinite Scroll
 +
    appended : function( $content, callback ) {
 +
      var instance = this;
 +
      this.addItems( $content, function( $newAtoms ) {
 +
        instance._addHideAppended( $newAtoms );
 +
        instance.layout( $newAtoms );
 +
        instance._revealAppended( $newAtoms, callback );
 +
      });
 +
    },
 +
 
 +
    // adds new atoms, then hides them before positioning
 +
    _addHideAppended : function( $newAtoms ) {
 +
      this.$filteredAtoms = this.$filteredAtoms.add( $newAtoms );
 +
      $newAtoms.addClass('no-transition');
 +
 
 +
      this._isInserting = true;
 +
 
 +
      // apply hidden styles
 +
      this.styleQueue.push({ $el: $newAtoms, style: this.options.hiddenStyle });
 +
    },
 +
 
 +
    // sets visible style on new atoms
 +
    _revealAppended : function( $newAtoms, callback ) {
 +
      var instance = this;
 +
      // apply visible style after a sec
 +
      setTimeout( function() {
 +
        // enable animation
 +
        $newAtoms.removeClass('no-transition');
 +
        // reveal newly inserted filtered elements
 +
        instance.styleQueue.push({ $el: $newAtoms, style: instance.options.visibleStyle });
 +
        instance._isInserting = false;
 +
        instance._processStyleQueue( $newAtoms, callback );
 +
      }, 10 );
 +
    },
 +
 
 +
    // gathers all atoms
 +
    reloadItems : function() {
 +
      this.$allAtoms = this._getAtoms( this.element.children() );
 +
    },
 +
 
 +
    // removes elements from Isotope widget
 +
    remove: function( $content, callback ) {
 +
      // remove elements immediately from Isotope instance
 +
      this.$allAtoms = this.$allAtoms.not( $content );
 +
      this.$filteredAtoms = this.$filteredAtoms.not( $content );
 +
      // remove() as a callback, for after transition / animation
 +
      var instance = this;
 +
      var removeContent = function() {
 +
        $content.remove();
 +
        if ( callback ) {
 +
          callback.call( instance.element );
 +
        }
 +
      };
 +
 
 +
      if ( $content.filter( ':not(.' + this.options.hiddenClass + ')' ).length ) {
 +
        // if any non-hidden content needs to be removed
 +
        this.styleQueue.push({ $el: $content, style: this.options.hiddenStyle });
 +
        this._sort();
 +
        this.reLayout( removeContent );
 +
      } else {
 +
        // remove it now
 +
        removeContent();
 +
      }
 +
 
 +
    },
 +
 
 +
    shuffle : function( callback ) {
 +
      this.updateSortData( this.$allAtoms );
 +
      this.options.sortBy = 'random';
 +
      this._sort();
 +
      this.reLayout( callback );
 +
    },
 +
 
 +
    // destroys widget, returns elements and container back (close) to original style
 +
    destroy : function() {
 +
 
 +
      var usingTransforms = this.usingTransforms;
 +
      var options = this.options;
 +
 
 +
      this.$allAtoms
 +
        .removeClass( options.hiddenClass + ' ' + options.itemClass )
 +
        .each(function(){
 +
          var style = this.style;
 +
          style.position = '';
 +
          style.top = '';
 +
          style.left = '';
 +
          style.opacity = '';
 +
          if ( usingTransforms ) {
 +
            style[ transformProp ] = '';
 +
          }
 +
        });
 +
 
 +
      // re-apply saved container styles
 +
      var elemStyle = this.element[0].style;
 +
      for ( var prop in this.originalStyle ) {
 +
        elemStyle[ prop ] = this.originalStyle[ prop ];
 +
      }
 +
 
 +
      this.element
 +
        .unbind('.isotope')
 +
        .undelegate( '.' + options.hiddenClass, 'click' )
 +
        .removeClass( options.containerClass )
 +
        .removeData('isotope');
 +
 
 +
      $window.unbind('.isotope');
 +
 
 +
    },
 +
 
 +
 
 +
    // ====================== LAYOUTS ======================
 +
 
 +
    // calculates number of rows or columns
 +
    // requires columnWidth or rowHeight to be set on namespaced object
 +
    // i.e. this.masonry.columnWidth = 200
 +
    _getSegments : function( isRows ) {
 +
      var namespace = this.options.layoutMode,
 +
          measure  = isRows ? 'rowHeight' : 'columnWidth',
 +
          size    = isRows ? 'height' : 'width',
 +
          segmentsName = isRows ? 'rows' : 'cols',
 +
          containerSize = this.element[ size ](),
 +
          segments,
 +
                    // i.e. options.masonry && options.masonry.columnWidth
 +
          segmentSize = this.options[ namespace ] && this.options[ namespace ][ measure ] ||
 +
                    // or use the size of the first item, i.e. outerWidth
 +
                    this.$filteredAtoms[ 'outer' + capitalize(size) ](true) ||
 +
                    // if there's no items, use size of container
 +
                    containerSize;
 +
 
 +
      segments = Math.floor( containerSize / segmentSize );
 +
      segments = Math.max( segments, 1 );
 +
 
 +
      // i.e. this.masonry.cols = ....
 +
      this[ namespace ][ segmentsName ] = segments;
 +
      // i.e. this.masonry.columnWidth = ...
 +
      this[ namespace ][ measure ] = segmentSize;
 +
 
 +
    },
 +
 
 +
    _checkIfSegmentsChanged : function( isRows ) {
 +
      var namespace = this.options.layoutMode,
 +
          segmentsName = isRows ? 'rows' : 'cols',
 +
          prevSegments = this[ namespace ][ segmentsName ];
 +
      // update cols/rows
 +
      this._getSegments( isRows );
 +
      // return if updated cols/rows is not equal to previous
 +
      return ( this[ namespace ][ segmentsName ] !== prevSegments );
 +
    },
 +
 
 +
    // ====================== Masonry ======================
 +
 
 +
    _masonryReset : function() {
 +
      // layout-specific props
 +
      this.masonry = {};
 +
      // FIXME shouldn't have to call this again
 +
      this._getSegments();
 +
      var i = this.masonry.cols;
 +
      this.masonry.colYs = [];
 +
      while (i--) {
 +
        this.masonry.colYs.push( 0 );
 +
      }
 +
    },
 +
 
 +
    _masonryLayout : function( $elems ) {
 +
      var instance = this,
 +
          props = instance.masonry;
 +
      $elems.each(function(){
 +
        var $this  = $(this),
 +
            //how many columns does this brick span
 +
            colSpan = Math.ceil( $this.outerWidth(true) / props.columnWidth );
 +
        colSpan = Math.min( colSpan, props.cols );
 +
 
 +
        if ( colSpan === 1 ) {
 +
          // if brick spans only one column, just like singleMode
 +
          instance._masonryPlaceBrick( $this, props.colYs );
 +
        } else {
 +
          // brick spans more than one column
 +
          // how many different places could this brick fit horizontally
 +
          var groupCount = props.cols + 1 - colSpan,
 +
              groupY = [],
 +
              groupColY,
 +
              i;
 +
 
 +
          // for each group potential horizontal position
 +
          for ( i=0; i < groupCount; i++ ) {
 +
            // make an array of colY values for that one group
 +
            groupColY = props.colYs.slice( i, i+colSpan );
 +
            // and get the max value of the array
 +
            groupY[i] = Math.max.apply( Math, groupColY );
 +
          }
 +
 
 +
          instance._masonryPlaceBrick( $this, groupY );
 +
        }
 +
      });
 +
    },
 +
 
 +
    // worker method that places brick in the columnSet
 +
    //  with the the minY
 +
    _masonryPlaceBrick : function( $brick, setY ) {
 +
      // get the minimum Y value from the columns
 +
      var minimumY = Math.min.apply( Math, setY ),
 +
          shortCol = 0;
 +
 
 +
      // Find index of short column, the first from the left
 +
      for (var i=0, len = setY.length; i < len; i++) {
 +
        if ( setY[i] === minimumY ) {
 +
          shortCol = i;
 +
          break;
 +
        }
 +
      }
 +
 
 +
      // position the brick
 +
      var x = this.masonry.columnWidth * shortCol,
 +
          y = minimumY;
 +
      this._pushPosition( $brick, x, y );
 +
 
 +
      // apply setHeight to necessary columns
 +
      var setHeight = minimumY + $brick.outerHeight(true),
 +
          setSpan = this.masonry.cols + 1 - len;
 +
      for ( i=0; i < setSpan; i++ ) {
 +
        this.masonry.colYs[ shortCol + i ] = setHeight;
 +
      }
 +
 
 +
    },
 +
 
 +
    _masonryGetContainerSize : function() {
 +
      var containerHeight = Math.max.apply( Math, this.masonry.colYs );
 +
      return { height: containerHeight };
 +
    },
 +
 
 +
    _masonryResizeChanged : function() {
 +
      return this._checkIfSegmentsChanged();
 +
    },
 +
 
 +
    // ====================== fitRows ======================
 +
 
 +
    _fitRowsReset : function() {
 +
      this.fitRows = {
 +
        x : 0,
 +
        y : 0,
 +
        height : 0
 +
      };
 +
    },
 +
 
 +
    _fitRowsLayout : function( $elems ) {
 +
      var instance = this,
 +
          containerWidth = this.element.width(),
 +
          props = this.fitRows;
 +
 
 +
      $elems.each( function() {
 +
        var $this = $(this),
 +
            atomW = $this.outerWidth(true),
 +
            atomH = $this.outerHeight(true);
 +
 
 +
        if ( props.x !== 0 && atomW + props.x > containerWidth ) {
 +
          // if this element cannot fit in the current row
 +
          props.x = 0;
 +
          props.y = props.height;
 +
        }
 +
 
 +
        // position the atom
 +
        instance._pushPosition( $this, props.x, props.y );
 +
 
 +
        props.height = Math.max( props.y + atomH, props.height );
 +
        props.x += atomW;
 +
 
 +
      });
 +
    },
 +
 
 +
    _fitRowsGetContainerSize : function () {
 +
      return { height : this.fitRows.height };
 +
    },
 +
 
 +
    _fitRowsResizeChanged : function() {
 +
      return true;
 +
    },
 +
 
 +
 
 +
    // ====================== cellsByRow ======================
 +
 
 +
    _cellsByRowReset : function() {
 +
      this.cellsByRow = {
 +
        index : 0
 +
      };
 +
      // get this.cellsByRow.columnWidth
 +
      this._getSegments();
 +
      // get this.cellsByRow.rowHeight
 +
      this._getSegments(true);
 +
    },
 +
 
 +
    _cellsByRowLayout : function( $elems ) {
 +
      var instance = this,
 +
          props = this.cellsByRow;
 +
      $elems.each( function(){
 +
        var $this = $(this),
 +
            col = props.index % props.cols,
 +
            row = Math.floor( props.index / props.cols ),
 +
            x = ( col + 0.5 ) * props.columnWidth - $this.outerWidth(true) / 2,
 +
            y = ( row + 0.5 ) * props.rowHeight - $this.outerHeight(true) / 2;
 +
        instance._pushPosition( $this, x, y );
 +
        props.index ++;
 +
      });
 +
    },
 +
 
 +
    _cellsByRowGetContainerSize : function() {
 +
      return { height : Math.ceil( this.$filteredAtoms.length / this.cellsByRow.cols ) * this.cellsByRow.rowHeight + this.offset.top };
 +
    },
 +
 
 +
    _cellsByRowResizeChanged : function() {
 +
      return this._checkIfSegmentsChanged();
 +
    },
 +
 
 +
 
 +
    // ====================== straightDown ======================
 +
 
 +
    _straightDownReset : function() {
 +
      this.straightDown = {
 +
        y : 0
 +
      };
 +
    },
 +
 
 +
    _straightDownLayout : function( $elems ) {
 +
      var instance = this;
 +
      $elems.each( function( i ){
 +
        var $this = $(this);
 +
        instance._pushPosition( $this, 0, instance.straightDown.y );
 +
        instance.straightDown.y += $this.outerHeight(true);
 +
      });
 +
    },
 +
 
 +
    _straightDownGetContainerSize : function() {
 +
      return { height : this.straightDown.y };
 +
    },
 +
 
 +
    _straightDownResizeChanged : function() {
 +
      return true;
 +
    },
 +
 
 +
 
 +
    // ====================== masonryHorizontal ======================
 +
 
 +
    _masonryHorizontalReset : function() {
 +
      // layout-specific props
 +
      this.masonryHorizontal = {};
 +
      // FIXME shouldn't have to call this again
 +
      this._getSegments( true );
 +
      var i = this.masonryHorizontal.rows;
 +
      this.masonryHorizontal.rowXs = [];
 +
      while (i--) {
 +
        this.masonryHorizontal.rowXs.push( 0 );
 +
      }
 +
    },
 +
 
 +
    _masonryHorizontalLayout : function( $elems ) {
 +
      var instance = this,
 +
          props = instance.masonryHorizontal;
 +
      $elems.each(function(){
 +
        var $this  = $(this),
 +
            //how many rows does this brick span
 +
            rowSpan = Math.ceil( $this.outerHeight(true) / props.rowHeight );
 +
        rowSpan = Math.min( rowSpan, props.rows );
 +
 
 +
        if ( rowSpan === 1 ) {
 +
          // if brick spans only one column, just like singleMode
 +
          instance._masonryHorizontalPlaceBrick( $this, props.rowXs );
 +
        } else {
 +
          // brick spans more than one row
 +
          // how many different places could this brick fit horizontally
 +
          var groupCount = props.rows + 1 - rowSpan,
 +
              groupX = [],
 +
              groupRowX, i;
 +
 
 +
          // for each group potential horizontal position
 +
          for ( i=0; i < groupCount; i++ ) {
 +
            // make an array of colY values for that one group
 +
            groupRowX = props.rowXs.slice( i, i+rowSpan );
 +
            // and get the max value of the array
 +
            groupX[i] = Math.max.apply( Math, groupRowX );
 +
          }
 +
 
 +
          instance._masonryHorizontalPlaceBrick( $this, groupX );
 +
        }
 +
      });
 +
    },
 +
 
 +
    _masonryHorizontalPlaceBrick : function( $brick, setX ) {
 +
      // get the minimum Y value from the columns
 +
      var minimumX  = Math.min.apply( Math, setX ),
 +
          smallRow  = 0;
 +
      // Find index of smallest row, the first from the top
 +
      for (var i=0, len = setX.length; i < len; i++) {
 +
        if ( setX[i] === minimumX ) {
 +
          smallRow = i;
 +
          break;
 +
        }
 +
      }
 +
 
 +
      // position the brick
 +
      var x = minimumX,
 +
          y = this.masonryHorizontal.rowHeight * smallRow;
 +
      this._pushPosition( $brick, x, y );
 +
 
 +
      // apply setHeight to necessary columns
 +
      var setWidth = minimumX + $brick.outerWidth(true),
 +
          setSpan = this.masonryHorizontal.rows + 1 - len;
 +
      for ( i=0; i < setSpan; i++ ) {
 +
        this.masonryHorizontal.rowXs[ smallRow + i ] = setWidth;
 +
      }
 +
    },
 +
 
 +
    _masonryHorizontalGetContainerSize : function() {
 +
      var containerWidth = Math.max.apply( Math, this.masonryHorizontal.rowXs );
 +
      return { width: containerWidth };
 +
    },
 +
 
 +
    _masonryHorizontalResizeChanged : function() {
 +
      return this._checkIfSegmentsChanged(true);
 +
    },
 +
 
 +
 
 +
    // ====================== fitColumns ======================
 +
 
 +
    _fitColumnsReset : function() {
 +
      this.fitColumns = {
 +
        x : 0,
 +
        y : 0,
 +
        width : 0
 +
      };
 +
    },
 +
 
 +
    _fitColumnsLayout : function( $elems ) {
 +
      var instance = this,
 +
          containerHeight = this.element.height(),
 +
          props = this.fitColumns;
 +
      $elems.each( function() {
 +
        var $this = $(this),
 +
            atomW = $this.outerWidth(true),
 +
            atomH = $this.outerHeight(true);
 +
 
 +
        if ( props.y !== 0 && atomH + props.y > containerHeight ) {
 +
          // if this element cannot fit in the current column
 +
          props.x = props.width;
 +
          props.y = 0;
 +
        }
 +
 
 +
        // position the atom
 +
        instance._pushPosition( $this, props.x, props.y );
 +
 
 +
        props.width = Math.max( props.x + atomW, props.width );
 +
        props.y += atomH;
 +
 
 +
      });
 +
    },
 +
 
 +
    _fitColumnsGetContainerSize : function () {
 +
      return { width : this.fitColumns.width };
 +
    },
 +
 
 +
    _fitColumnsResizeChanged : function() {
 +
      return true;
 +
    },
 +
 
 +
 
 +
 
 +
    // ====================== cellsByColumn ======================
 +
 
 +
    _cellsByColumnReset : function() {
 +
      this.cellsByColumn = {
 +
        index : 0
 +
      };
 +
      // get this.cellsByColumn.columnWidth
 +
      this._getSegments();
 +
      // get this.cellsByColumn.rowHeight
 +
      this._getSegments(true);
 +
    },
 +
 
 +
    _cellsByColumnLayout : function( $elems ) {
 +
      var instance = this,
 +
          props = this.cellsByColumn;
 +
      $elems.each( function(){
 +
        var $this = $(this),
 +
            col = Math.floor( props.index / props.rows ),
 +
            row = props.index % props.rows,
 +
            x = ( col + 0.5 ) * props.columnWidth - $this.outerWidth(true) / 2,
 +
            y = ( row + 0.5 ) * props.rowHeight - $this.outerHeight(true) / 2;
 +
        instance._pushPosition( $this, x, y );
 +
        props.index ++;
 +
      });
 +
    },
 +
 
 +
    _cellsByColumnGetContainerSize : function() {
 +
      return { width : Math.ceil( this.$filteredAtoms.length / this.cellsByColumn.rows ) * this.cellsByColumn.columnWidth };
 +
    },
 +
 
 +
    _cellsByColumnResizeChanged : function() {
 +
      return this._checkIfSegmentsChanged(true);
 +
    },
 +
 
 +
    // ====================== straightAcross ======================
 +
 
 +
    _straightAcrossReset : function() {
 +
      this.straightAcross = {
 +
        x : 0
 +
      };
 +
    },
 +
 
 +
    _straightAcrossLayout : function( $elems ) {
 +
      var instance = this;
 +
      $elems.each( function( i ){
 +
        var $this = $(this);
 +
        instance._pushPosition( $this, instance.straightAcross.x, 0 );
 +
        instance.straightAcross.x += $this.outerWidth(true);
 +
      });
 +
    },
 +
 
 +
    _straightAcrossGetContainerSize : function() {
 +
      return { width : this.straightAcross.x };
 +
    },
 +
 
 +
    _straightAcrossResizeChanged : function() {
 +
      return true;
 +
    }
 +
 
 +
  };
 +
 
 +
 
 +
  // ======================= imagesLoaded Plugin ===============================
 +
  /*!
 +
  * jQuery imagesLoaded plugin v1.1.0
 +
  * http://github.com/desandro/imagesloaded
 +
  *
 +
  * MIT License. by Paul Irish et al.
 +
  */
 +
 
 +
 
 +
  // $('#my-container').imagesLoaded(myFunction)
 +
  // or
 +
  // $('img').imagesLoaded(myFunction)
 +
 
 +
  // execute a callback when all images have loaded.
 +
  // needed because .load() doesn't work on cached images
 +
 
 +
  // callback function gets image collection as argument
 +
  //  `this` is the container
 +
 
 +
  $.fn.imagesLoaded = function( callback ) {
 +
    var $this = this,
 +
        $images = $this.find('img').add( $this.filter('img') ),
 +
        len = $images.length,
 +
        blank = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==',
 +
        loaded = [];
 +
 
 +
    function triggerCallback() {
 +
      callback.call( $this, $images );
 +
    }
 +
 
 +
    function imgLoaded( event ) {
 +
      var img = event.target;
 +
      if ( img.src !== blank && $.inArray( img, loaded ) === -1 ){
 +
        loaded.push( img );
 +
        if ( --len <= 0 ){
 +
          setTimeout( triggerCallback );
 +
          $images.unbind( '.imagesLoaded', imgLoaded );
 +
        }
 +
      }
 +
    }
 +
 
 +
    // if no images, trigger immediately
 +
    if ( !len ) {
 +
      triggerCallback();
 +
    }
 +
 
 +
    $images.bind( 'load.imagesLoaded error.imagesLoaded',  imgLoaded ).each( function() {
 +
      // cached images don't fire load sometimes, so we reset src.
 +
      var src = this.src;
 +
      // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
 +
      // data uri bypasses webkit log warning (thx doug jones)
 +
      this.src = blank;
 +
      this.src = src;
 +
    });
 +
 
 +
    return $this;
 +
  };
 +
 
 +
 
 +
  // helper function for logging errors
 +
  // $.error breaks jQuery chaining
 +
  var logError = function( message ) {
 +
    if ( window.console ) {
 +
      window.console.error( message );
 +
    }
 +
  };
 +
 
 +
  // =======================  Plugin bridge  ===============================
 +
  // leverages data method to either create or return $.Isotope constructor
 +
  // A bit from jQuery UI
 +
  //  https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.widget.js
 +
  // A bit from jcarousel
 +
  //  https://github.com/jsor/jcarousel/blob/master/lib/jquery.jcarousel.js
 +
 
 +
  $.fn.isotope = function( options, callback ) {
 +
    if ( typeof options === 'string' ) {
 +
      // call method
 +
      var args = Array.prototype.slice.call( arguments, 1 );
 +
 
 +
      this.each(function(){
 +
        var instance = $.data( this, 'isotope' );
 +
        if ( !instance ) {
 +
          logError( "cannot call methods on isotope prior to initialization; " +
 +
              "attempted to call method '" + options + "'" );
 +
          return;
 +
        }
 +
        if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
 +
          logError( "no such method '" + options + "' for isotope instance" );
 +
          return;
 +
        }
 +
        // apply method
 +
        instance[ options ].apply( instance, args );
 +
      });
 +
    } else {
 +
      this.each(function() {
 +
        var instance = $.data( this, 'isotope' );
 +
        if ( instance ) {
 +
          // apply options & init
 +
          instance.option( options );
 +
          instance._init( callback );
 +
        } else {
 +
          // initialize new instance
 +
          $.data( this, 'isotope', new $.Isotope( options, this, callback ) );
 +
        }
 +
      });
 +
    }
 +
    // return jQuery object
 +
    // so plugin methods do not have to
 +
    return this;
 +
  };
 +
 
 +
})( window, jQuery );</script>
  
 
     <!-- LightBox Nivo -->
 
     <!-- LightBox Nivo -->
    <script type="text/javascript" src="js/nivo-lightbox.min.js"></script>
+
<script type="text/javascript">/*
 +
* Nivo Lightbox v1.2.0
 +
* http://dev7studios.com/nivo-lightbox
 +
*
 +
* Copyright 2013, Dev7studios
 +
* Free to use and abuse under the MIT license.
 +
* http://www.opensource.org/licenses/mit-license.php
 +
*/
 +
(function(e,t,n,r){function o(t,n){this.el=t;this.$el=e(this.el);this.options=e.extend({},s,n);this._defaults=s;this._name=i;this.init()}var i="nivoLightbox",s={effect:"fade",theme:"default",keyboardNav:true,clickOverlayToClose:true,onInit:function(){},beforeShowLightbox:function(){},afterShowLightbox:function(e){},beforeHideLightbox:function(){},afterHideLightbox:function(){},onPrev:function(e){},onNext:function(e){},errorMessage:"The requested content cannot be loaded. Please try again later."};o.prototype={init:function(){var t=this;if(!e("html").hasClass("nivo-lightbox-notouch"))e("html").addClass("nivo-lightbox-notouch");if("ontouchstart"in n)e("html").removeClass("nivo-lightbox-notouch");this.$el.on("click",function(e){t.showLightbox(e)});if(this.options.keyboardNav){e("body").off("keyup").on("keyup",function(n){var r=n.keyCode?n.keyCode:n.which;if(r==27)t.destructLightbox();if(r==37)e(".nivo-lightbox-prev").trigger("click");if(r==39)e(".nivo-lightbox-next").trigger("click")})}this.options.onInit.call(this)},showLightbox:function(t){var n=this,r=this.$el;var i=this.checkContent(r);if(!i)return;t.preventDefault();this.options.beforeShowLightbox.call(this);var s=this.constructLightbox();if(!s)return;var o=s.find(".nivo-lightbox-content");if(!o)return;e("body").addClass("nivo-lightbox-body-effect-"+this.options.effect);this.processContent(o,r);if(this.$el.attr("data-lightbox-gallery")){var u=e('[data-lightbox-gallery="'+this.$el.attr("data-lightbox-gallery")+'"]');e(".nivo-lightbox-nav").show();e(".nivo-lightbox-prev").off("click").on("click",function(t){t.preventDefault();var i=u.index(r);r=u.eq(i-1);if(!e(r).length)r=u.last();n.processContent(o,r);n.options.onPrev.call(this,[r])});e(".nivo-lightbox-next").off("click").on("click",function(t){t.preventDefault();var i=u.index(r);r=u.eq(i+1);if(!e(r).length)r=u.first();n.processContent(o,r);n.options.onNext.call(this,[r])})}setTimeout(function(){s.addClass("nivo-lightbox-open");n.options.afterShowLightbox.call(this,[s])},1)},checkContent:function(e){var t=this,n=e.attr("href"),r=n.match(/(youtube|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/);if(n.match(/\.(jpeg|jpg|gif|png)$/i)!==null){return true}else if(r){return true}else if(e.attr("data-lightbox-type")=="ajax"){return true}else if(n.substring(0,1)=="#"&&e.attr("data-lightbox-type")=="inline"){return true}else if(e.attr("data-lightbox-type")=="iframe"){return true}return false},processContent:function(n,r){var i=this,s=r.attr("href"),o=s.match(/(youtube|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/);n.html("").addClass("nivo-lightbox-loading");if(this.isHidpi()&&r.attr("data-lightbox-hidpi")){s=r.attr("data-lightbox-hidpi")}if(s.match(/\.(jpeg|jpg|gif|png)$/i)!==null){var u=e("<img>",{src:s});u.one("load",function(){var r=e('<div class="nivo-lightbox-image" />');r.append(u);n.html(r).removeClass("nivo-lightbox-loading");r.css({"line-height":e(".nivo-lightbox-content").height()+"px",height:e(".nivo-lightbox-content").height()+"px"});e(t).resize(function(){r.css({"line-height":e(".nivo-lightbox-content").height()+"px",height:e(".nivo-lightbox-content").height()+"px"})})}).each(function(){if(this.complete)e(this).load()});u.error(function(){var t=e('<div class="nivo-lightbox-error"><p>'+i.options.errorMessage+"</p></div>");n.html(t).removeClass("nivo-lightbox-loading")})}else if(o){var a="",f="nivo-lightbox-video";if(o[1]=="youtube"){a="http://www.youtube.com/embed/"+o[4];f="nivo-lightbox-youtube"}if(o[1]=="youtu"){a="http://www.youtube.com/embed/"+o[3];f="nivo-lightbox-youtube"}if(o[1]=="vimeo"){a="http://player.vimeo.com/video/"+o[3];f="nivo-lightbox-vimeo"}if(a){var l=e("<iframe>",{src:a,"class":f,frameborder:0,vspace:0,hspace:0,scrolling:"auto"});n.html(l);l.load(function(){n.removeClass("nivo-lightbox-loading")})}}else if(r.attr("data-lightbox-type")=="ajax"){e.ajax({url:s,cache:false,success:function(r){var i=e('<div class="nivo-lightbox-ajax" />');i.append(r);n.html(i).removeClass("nivo-lightbox-loading");if(i.outerHeight()<n.height()){i.css({position:"relative",top:"50%","margin-top":-(i.outerHeight()/2)+"px"})}e(t).resize(function(){if(i.outerHeight()<n.height()){i.css({position:"relative",top:"50%","margin-top":-(i.outerHeight()/2)+"px"})}})},error:function(){var t=e('<div class="nivo-lightbox-error"><p>'+i.options.errorMessage+"</p></div>");n.html(t).removeClass("nivo-lightbox-loading")}})}else if(s.substring(0,1)=="#"&&r.attr("data-lightbox-type")=="inline"){if(e(s).length){var c=e('<div class="nivo-lightbox-inline" />');c.append(e(s).clone().show());n.html(c).removeClass("nivo-lightbox-loading");if(c.outerHeight()<n.height()){c.css({position:"relative",top:"50%","margin-top":-(c.outerHeight()/2)+"px"})}e(t).resize(function(){if(c.outerHeight()<n.height()){c.css({position:"relative",top:"50%","margin-top":-(c.outerHeight()/2)+"px"})}})}else{var h=e('<div class="nivo-lightbox-error"><p>'+i.options.errorMessage+"</p></div>");n.html(h).removeClass("nivo-lightbox-loading")}}else if(r.attr("data-lightbox-type")=="iframe"){var p=e("<iframe>",{src:s,"class":"nivo-lightbox-item",frameborder:0,vspace:0,hspace:0,scrolling:"auto"});n.html(p);p.load(function(){n.removeClass("nivo-lightbox-loading")})}else{return false}if(r.attr("title")){var d=e("<span>",{"class":"nivo-lightbox-title"});d.text(r.attr("title"));e(".nivo-lightbox-title-wrap").html(d)}else{e(".nivo-lightbox-title-wrap").html("")}},constructLightbox:function(){if(e(".nivo-lightbox-overlay").length)return e(".nivo-lightbox-overlay");var t=e("<div>",{"class":"nivo-lightbox-overlay nivo-lightbox-theme-"+this.options.theme+" nivo-lightbox-effect-"+this.options.effect});var n=e("<div>",{"class":"nivo-lightbox-wrap"});var r=e("<div>",{"class":"nivo-lightbox-content"});var i=e('<a href="#" class="nivo-lightbox-nav nivo-lightbox-prev">Previous</a><a href="#" class="nivo-lightbox-nav nivo-lightbox-next">Next</a>');var s=e('<a href="#" class="nivo-lightbox-close" title="Close">Close</a>');var o=e("<div>",{"class":"nivo-lightbox-title-wrap"});var u=0;if(u)t.addClass("nivo-lightbox-ie");n.append(r);n.append(o);t.append(n);t.append(i);t.append(s);e("body").append(t);var a=this;if(a.options.clickOverlayToClose){t.on("click",function(t){if(t.target===this||e(t.target).hasClass("nivo-lightbox-content")||e(t.target).hasClass("nivo-lightbox-image")){a.destructLightbox()}})}s.on("click",function(e){e.preventDefault();a.destructLightbox()});return t},destructLightbox:function(){var t=this;this.options.beforeHideLightbox.call(this);e(".nivo-lightbox-overlay").removeClass("nivo-lightbox-open");e(".nivo-lightbox-nav").hide();e("body").removeClass("nivo-lightbox-body-effect-"+t.options.effect);var n=0;if(n){e(".nivo-lightbox-overlay iframe").attr("src"," ");e(".nivo-lightbox-overlay iframe").remove()}e(".nivo-lightbox-prev").off("click");e(".nivo-lightbox-next").off("click");e(".nivo-lightbox-content").empty();this.options.afterHideLightbox.call(this)},isHidpi:function(){var e="(-webkit-min-device-pixel-ratio: 1.5),                              (min--moz-device-pixel-ratio: 1.5),                              (-o-min-device-pixel-ratio: 3/2),                              (min-resolution: 1.5dppx)";if(t.devicePixelRatio>1)return true;if(t.matchMedia&&t.matchMedia(e).matches)return true;return false}};e.fn[i]=function(t){return this.each(function(){if(!e.data(this,i)){e.data(this,i,new o(this,t))}})}})(jQuery,window,document)
 +
</script>
  
 
     <!-- Contact page-->
 
     <!-- Contact page-->
    <script type="text/javascript" src="js/jqBootstrapValidation.js"></script>
+
<script type="text/javascript">/* jqBootstrapValidation
     <script type="text/javascript" src="js/contact.js"></script>
+
* A plugin for automating validation on Twitter Bootstrap formatted forms.
 +
*
 +
* v1.3.6
 +
*
 +
* License: MIT <http://opensource.org/licenses/mit-license.php> - see LICENSE file
 +
*
 +
* http://ReactiveRaven.github.com/jqBootstrapValidation/
 +
*/
 +
 
 +
(function( $ ){
 +
 
 +
var createdElements = [];
 +
 
 +
var defaults = {
 +
options: {
 +
prependExistingHelpBlock: false,
 +
sniffHtml: true, // sniff for 'required', 'maxlength', etc
 +
preventSubmit: true, // stop the form submit event from firing if validation fails
 +
submitError: false, // function called if there is an error when trying to submit
 +
submitSuccess: false, // function called just before a successful submit event is sent to the server
 +
            semanticallyStrict: false, // set to true to tidy up generated HTML output
 +
autoAdd: {
 +
helpBlocks: true
 +
},
 +
            filter: function () {
 +
                // return $(this).is(":visible"); // only validate elements you can see
 +
                return true; // validate everything
 +
            }
 +
},
 +
    methods: {
 +
      init : function( options ) {
 +
 
 +
        var settings = $.extend(true, {}, defaults);
 +
 
 +
        settings.options = $.extend(true, settings.options, options);
 +
 
 +
        var $siblingElements = this;
 +
 
 +
        var uniqueForms = $.unique(
 +
          $siblingElements.map( function () {
 +
            return $(this).parents("form")[0];
 +
          }).toArray()
 +
        );
 +
 
 +
        $(uniqueForms).bind("submit", function (e) {
 +
          var $form = $(this);
 +
          var warningsFound = 0;
 +
          var $inputs = $form.find("input,textarea,select").not("[type=submit],[type=image]").filter(settings.options.filter);
 +
          $inputs.trigger("submit.validation").trigger("validationLostFocus.validation");
 +
 
 +
          $inputs.each(function (i, el) {
 +
            var $this = $(el),
 +
              $controlGroup = $this.parents(".form-group").first();
 +
            if (
 +
              $controlGroup.hasClass("warning")
 +
            ) {
 +
              $controlGroup.removeClass("warning").addClass("error");
 +
              warningsFound++;
 +
            }
 +
          });
 +
 
 +
          $inputs.trigger("validationLostFocus.validation");
 +
 
 +
          if (warningsFound) {
 +
            if (settings.options.preventSubmit) {
 +
              e.preventDefault();
 +
            }
 +
            $form.addClass("error");
 +
            if ($.isFunction(settings.options.submitError)) {
 +
              settings.options.submitError($form, e, $inputs.jqBootstrapValidation("collectErrors", true));
 +
            }
 +
          } else {
 +
            $form.removeClass("error");
 +
            if ($.isFunction(settings.options.submitSuccess)) {
 +
              settings.options.submitSuccess($form, e);
 +
            }
 +
          }
 +
        });
 +
 
 +
        return this.each(function(){
 +
 
 +
          // Get references to everything we're interested in
 +
          var $this = $(this),
 +
            $controlGroup = $this.parents(".form-group").first(),
 +
            $helpBlock = $controlGroup.find(".help-block").first(),
 +
            $form = $this.parents("form").first(),
 +
            validatorNames = [];
 +
 
 +
          // create message container if not exists
 +
          if (!$helpBlock.length && settings.options.autoAdd && settings.options.autoAdd.helpBlocks) {
 +
              $helpBlock = $('<div class="help-block" />');
 +
              $controlGroup.find('.controls').append($helpBlock);
 +
createdElements.push($helpBlock[0]);
 +
          }
 +
 
 +
          // =============================================================
 +
          //                                    SNIFF HTML FOR VALIDATORS
 +
          // =============================================================
 +
 
 +
          // *snort sniff snuffle*
 +
 
 +
          if (settings.options.sniffHtml) {
 +
            var message = "";
 +
            // ---------------------------------------------------------
 +
            //                                                  PATTERN
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("pattern") !== undefined) {
 +
              message = "Not in the expected format<!-- data-validation-pattern-message to override -->";
 +
              if ($this.data("validationPatternMessage")) {
 +
                message = $this.data("validationPatternMessage");
 +
              }
 +
              $this.data("validationPatternMessage", message);
 +
              $this.data("validationPatternRegex", $this.attr("pattern"));
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                      MAX
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("max") !== undefined || $this.attr("aria-valuemax") !== undefined) {
 +
              var max = ($this.attr("max") !== undefined ? $this.attr("max") : $this.attr("aria-valuemax"));
 +
              message = "Too high: Maximum of '" + max + "'<!-- data-validation-max-message to override -->";
 +
              if ($this.data("validationMaxMessage")) {
 +
                message = $this.data("validationMaxMessage");
 +
              }
 +
              $this.data("validationMaxMessage", message);
 +
              $this.data("validationMaxMax", max);
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                      MIN
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("min") !== undefined || $this.attr("aria-valuemin") !== undefined) {
 +
              var min = ($this.attr("min") !== undefined ? $this.attr("min") : $this.attr("aria-valuemin"));
 +
              message = "Too low: Minimum of '" + min + "'<!-- data-validation-min-message to override -->";
 +
              if ($this.data("validationMinMessage")) {
 +
                message = $this.data("validationMinMessage");
 +
              }
 +
              $this.data("validationMinMessage", message);
 +
              $this.data("validationMinMin", min);
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                MAXLENGTH
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("maxlength") !== undefined) {
 +
              message = "Too long: Maximum of '" + $this.attr("maxlength") + "' characters<!-- data-validation-maxlength-message to override -->";
 +
              if ($this.data("validationMaxlengthMessage")) {
 +
                message = $this.data("validationMaxlengthMessage");
 +
              }
 +
              $this.data("validationMaxlengthMessage", message);
 +
              $this.data("validationMaxlengthMaxlength", $this.attr("maxlength"));
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                MINLENGTH
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("minlength") !== undefined) {
 +
              message = "Too short: Minimum of '" + $this.attr("minlength") + "' characters<!-- data-validation-minlength-message to override -->";
 +
              if ($this.data("validationMinlengthMessage")) {
 +
                message = $this.data("validationMinlengthMessage");
 +
              }
 +
              $this.data("validationMinlengthMessage", message);
 +
              $this.data("validationMinlengthMinlength", $this.attr("minlength"));
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                  REQUIRED
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("required") !== undefined || $this.attr("aria-required") !== undefined) {
 +
              message = settings.builtInValidators.required.message;
 +
              if ($this.data("validationRequiredMessage")) {
 +
                message = $this.data("validationRequiredMessage");
 +
              }
 +
              $this.data("validationRequiredMessage", message);
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                    NUMBER
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "number") {
 +
              message = settings.builtInValidators.number.message;
 +
              if ($this.data("validationNumberMessage")) {
 +
                message = $this.data("validationNumberMessage");
 +
              }
 +
              $this.data("validationNumberMessage", message);
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                    EMAIL
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "email") {
 +
              message = "Not a valid email address<!-- data-validator-validemail-message to override -->";
 +
              if ($this.data("validationValidemailMessage")) {
 +
                message = $this.data("validationValidemailMessage");
 +
              } else if ($this.data("validationEmailMessage")) {
 +
                message = $this.data("validationEmailMessage");
 +
              }
 +
              $this.data("validationValidemailMessage", message);
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                MINCHECKED
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("minchecked") !== undefined) {
 +
              message = "Not enough options checked; Minimum of '" + $this.attr("minchecked") + "' required<!-- data-validation-minchecked-message to override -->";
 +
              if ($this.data("validationMincheckedMessage")) {
 +
                message = $this.data("validationMincheckedMessage");
 +
              }
 +
              $this.data("validationMincheckedMessage", message);
 +
              $this.data("validationMincheckedMinchecked", $this.attr("minchecked"));
 +
            }
 +
            // ---------------------------------------------------------
 +
            //                                                MAXCHECKED
 +
            // ---------------------------------------------------------
 +
            if ($this.attr("maxchecked") !== undefined) {
 +
              message = "Too many options checked; Maximum of '" + $this.attr("maxchecked") + "' required<!-- data-validation-maxchecked-message to override -->";
 +
              if ($this.data("validationMaxcheckedMessage")) {
 +
                message = $this.data("validationMaxcheckedMessage");
 +
              }
 +
              $this.data("validationMaxcheckedMessage", message);
 +
              $this.data("validationMaxcheckedMaxchecked", $this.attr("maxchecked"));
 +
            }
 +
          }
 +
 
 +
          // =============================================================
 +
          //                                      COLLECT VALIDATOR NAMES
 +
          // =============================================================
 +
 
 +
          // Get named validators
 +
          if ($this.data("validation") !== undefined) {
 +
            validatorNames = $this.data("validation").split(",");
 +
          }
 +
 
 +
          // Get extra ones defined on the element's data attributes
 +
          $.each($this.data(), function (i, el) {
 +
            var parts = i.replace(/([A-Z])/g, ",$1").split(",");
 +
            if (parts[0] === "validation" && parts[1]) {
 +
              validatorNames.push(parts[1]);
 +
            }
 +
          });
 +
 
 +
          // =============================================================
 +
          //                                    NORMALISE VALIDATOR NAMES
 +
          // =============================================================
 +
 
 +
          var validatorNamesToInspect = validatorNames;
 +
          var newValidatorNamesToInspect = [];
 +
 
 +
          do // repeatedly expand 'shortcut' validators into their real validators
 +
          {
 +
            // Uppercase only the first letter of each name
 +
            $.each(validatorNames, function (i, el) {
 +
              validatorNames[i] = formatValidatorName(el);
 +
            });
 +
 
 +
            // Remove duplicate validator names
 +
            validatorNames = $.unique(validatorNames);
 +
 
 +
            // Pull out the new validator names from each shortcut
 +
            newValidatorNamesToInspect = [];
 +
            $.each(validatorNamesToInspect, function(i, el) {
 +
              if ($this.data("validation" + el + "Shortcut") !== undefined) {
 +
                // Are these custom validators?
 +
                // Pull them out!
 +
                $.each($this.data("validation" + el + "Shortcut").split(","), function(i2, el2) {
 +
                  newValidatorNamesToInspect.push(el2);
 +
                });
 +
              } else if (settings.builtInValidators[el.toLowerCase()]) {
 +
                // Is this a recognised built-in?
 +
                // Pull it out!
 +
                var validator = settings.builtInValidators[el.toLowerCase()];
 +
                if (validator.type.toLowerCase() === "shortcut") {
 +
                  $.each(validator.shortcut.split(","), function (i, el) {
 +
                    el = formatValidatorName(el);
 +
                    newValidatorNamesToInspect.push(el);
 +
                    validatorNames.push(el);
 +
                  });
 +
                }
 +
              }
 +
            });
 +
 
 +
            validatorNamesToInspect = newValidatorNamesToInspect;
 +
 
 +
          } while (validatorNamesToInspect.length > 0)
 +
 
 +
          // =============================================================
 +
          //                                      SET UP VALIDATOR ARRAYS
 +
          // =============================================================
 +
 
 +
          var validators = {};
 +
 
 +
          $.each(validatorNames, function (i, el) {
 +
            // Set up the 'override' message
 +
            var message = $this.data("validation" + el + "Message");
 +
            var hasOverrideMessage = (message !== undefined);
 +
            var foundValidator = false;
 +
            message =
 +
              (
 +
                message
 +
                  ? message
 +
                  : "'" + el + "' validation failed <!-- Add attribute 'data-validation-" + el.toLowerCase() + "-message' to input to change this message -->"
 +
              )
 +
            ;
 +
 
 +
            $.each(
 +
              settings.validatorTypes,
 +
              function (validatorType, validatorTemplate) {
 +
                if (validators[validatorType] === undefined) {
 +
                  validators[validatorType] = [];
 +
                }
 +
                if (!foundValidator && $this.data("validation" + el + formatValidatorName(validatorTemplate.name)) !== undefined) {
 +
                  validators[validatorType].push(
 +
                    $.extend(
 +
                      true,
 +
                      {
 +
                        name: formatValidatorName(validatorTemplate.name),
 +
                        message: message
 +
                      },
 +
                      validatorTemplate.init($this, el)
 +
                    )
 +
                  );
 +
                  foundValidator = true;
 +
                }
 +
              }
 +
            );
 +
 
 +
            if (!foundValidator && settings.builtInValidators[el.toLowerCase()]) {
 +
 
 +
              var validator = $.extend(true, {}, settings.builtInValidators[el.toLowerCase()]);
 +
              if (hasOverrideMessage) {
 +
                validator.message = message;
 +
              }
 +
              var validatorType = validator.type.toLowerCase();
 +
 
 +
              if (validatorType === "shortcut") {
 +
                foundValidator = true;
 +
              } else {
 +
                $.each(
 +
                  settings.validatorTypes,
 +
                  function (validatorTemplateType, validatorTemplate) {
 +
                    if (validators[validatorTemplateType] === undefined) {
 +
                      validators[validatorTemplateType] = [];
 +
                    }
 +
                    if (!foundValidator && validatorType === validatorTemplateType.toLowerCase()) {
 +
                      $this.data("validation" + el + formatValidatorName(validatorTemplate.name), validator[validatorTemplate.name.toLowerCase()]);
 +
                      validators[validatorType].push(
 +
                        $.extend(
 +
                          validator,
 +
                          validatorTemplate.init($this, el)
 +
                        )
 +
                      );
 +
                      foundValidator = true;
 +
                    }
 +
                  }
 +
                );
 +
              }
 +
            }
 +
 
 +
            if (! foundValidator) {
 +
              $.error("Cannot find validation info for '" + el + "'");
 +
            }
 +
          });
 +
 
 +
          // =============================================================
 +
          //                                        STORE FALLBACK VALUES
 +
          // =============================================================
 +
 
 +
          $helpBlock.data(
 +
            "original-contents",
 +
            (
 +
              $helpBlock.data("original-contents")
 +
                ? $helpBlock.data("original-contents")
 +
                : $helpBlock.html()
 +
            )
 +
          );
 +
 
 +
          $helpBlock.data(
 +
            "original-role",
 +
            (
 +
              $helpBlock.data("original-role")
 +
                ? $helpBlock.data("original-role")
 +
                : $helpBlock.attr("role")
 +
            )
 +
          );
 +
 
 +
          $controlGroup.data(
 +
            "original-classes",
 +
            (
 +
              $controlGroup.data("original-clases")
 +
                ? $controlGroup.data("original-classes")
 +
                : $controlGroup.attr("class")
 +
            )
 +
          );
 +
 
 +
          $this.data(
 +
            "original-aria-invalid",
 +
            (
 +
              $this.data("original-aria-invalid")
 +
                ? $this.data("original-aria-invalid")
 +
                : $this.attr("aria-invalid")
 +
            )
 +
          );
 +
 
 +
          // =============================================================
 +
          //                                                    VALIDATION
 +
          // =============================================================
 +
 
 +
          $this.bind(
 +
            "validation.validation",
 +
            function (event, params) {
 +
 
 +
              var value = getValue($this);
 +
 
 +
              // Get a list of the errors to apply
 +
              var errorsFound = [];
 +
 
 +
              $.each(validators, function (validatorType, validatorTypeArray) {
 +
                if (value || value.length || (params && params.includeEmpty) || (!!settings.validatorTypes[validatorType].blockSubmit && params && !!params.submitting)) {
 +
                  $.each(validatorTypeArray, function (i, validator) {
 +
                    if (settings.validatorTypes[validatorType].validate($this, value, validator)) {
 +
                      errorsFound.push(validator.message);
 +
                    }
 +
                  });
 +
                }
 +
              });
 +
 
 +
              return errorsFound;
 +
            }
 +
          );
 +
 
 +
          $this.bind(
 +
            "getValidators.validation",
 +
            function () {
 +
              return validators;
 +
            }
 +
          );
 +
 
 +
          // =============================================================
 +
          //                                            WATCH FOR CHANGES
 +
          // =============================================================
 +
          $this.bind(
 +
            "submit.validation",
 +
            function () {
 +
              return $this.triggerHandler("change.validation", {submitting: true});
 +
            }
 +
          );
 +
          $this.bind(
 +
            [
 +
              "keyup",
 +
              "focus",
 +
              "blur",
 +
              "click",
 +
              "keydown",
 +
              "keypress",
 +
              "change"
 +
            ].join(".validation ") + ".validation",
 +
            function (e, params) {
 +
 
 +
              var value = getValue($this);
 +
 
 +
              var errorsFound = [];
 +
 
 +
              $controlGroup.find("input,textarea,select").each(function (i, el) {
 +
                var oldCount = errorsFound.length;
 +
                $.each($(el).triggerHandler("validation.validation", params), function (j, message) {
 +
                  errorsFound.push(message);
 +
                });
 +
                if (errorsFound.length > oldCount) {
 +
                  $(el).attr("aria-invalid", "true");
 +
                } else {
 +
                  var original = $this.data("original-aria-invalid");
 +
                  $(el).attr("aria-invalid", (original !== undefined ? original : false));
 +
                }
 +
              });
 +
 
 +
              $form.find("input,select,textarea").not($this).not("[name=\"" + $this.attr("name") + "\"]").trigger("validationLostFocus.validation");
 +
 
 +
              errorsFound = $.unique(errorsFound.sort());
 +
 
 +
              // Were there any errors?
 +
              if (errorsFound.length) {
 +
                // Better flag it up as a warning.
 +
                $controlGroup.removeClass("success error").addClass("warning");
 +
 
 +
                // How many errors did we find?
 +
                if (settings.options.semanticallyStrict && errorsFound.length === 1) {
 +
                  // Only one? Being strict? Just output it.
 +
                  $helpBlock.html(errorsFound[0] +
 +
                    ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" ));
 +
                } else {
 +
                  // Multiple? Being sloppy? Glue them together into an UL.
 +
                  $helpBlock.html("<ul role=\"alert\"><li>" + errorsFound.join("</li><li>") + "</li></ul>" +
 +
                    ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" ));
 +
                }
 +
              } else {
 +
                $controlGroup.removeClass("warning error success");
 +
                if (value.length > 0) {
 +
                  $controlGroup.addClass("success");
 +
                }
 +
                $helpBlock.html($helpBlock.data("original-contents"));
 +
              }
 +
 
 +
              if (e.type === "blur") {
 +
                $controlGroup.removeClass("success");
 +
              }
 +
            }
 +
          );
 +
          $this.bind("validationLostFocus.validation", function () {
 +
            $controlGroup.removeClass("success");
 +
          });
 +
        });
 +
      },
 +
      destroy : function( ) {
 +
 
 +
        return this.each(
 +
          function() {
 +
 
 +
            var
 +
              $this = $(this),
 +
              $controlGroup = $this.parents(".form-group").first(),
 +
              $helpBlock = $controlGroup.find(".help-block").first();
 +
 
 +
            // remove our events
 +
            $this.unbind('.validation'); // events are namespaced.
 +
            // reset help text
 +
            $helpBlock.html($helpBlock.data("original-contents"));
 +
            // reset classes
 +
            $controlGroup.attr("class", $controlGroup.data("original-classes"));
 +
            // reset aria
 +
            $this.attr("aria-invalid", $this.data("original-aria-invalid"));
 +
            // reset role
 +
            $helpBlock.attr("role", $this.data("original-role"));
 +
// remove all elements we created
 +
if (createdElements.indexOf($helpBlock[0]) > -1) {
 +
$helpBlock.remove();
 +
}
 +
 
 +
          }
 +
        );
 +
 
 +
      },
 +
      collectErrors : function(includeEmpty) {
 +
 
 +
        var errorMessages = {};
 +
        this.each(function (i, el) {
 +
          var $el = $(el);
 +
          var name = $el.attr("name");
 +
          var errors = $el.triggerHandler("validation.validation", {includeEmpty: true});
 +
          errorMessages[name] = $.extend(true, errors, errorMessages[name]);
 +
        });
 +
 
 +
        $.each(errorMessages, function (i, el) {
 +
          if (el.length === 0) {
 +
            delete errorMessages[i];
 +
          }
 +
        });
 +
 
 +
        return errorMessages;
 +
 
 +
      },
 +
      hasErrors: function() {
 +
 
 +
        var errorMessages = [];
 +
 
 +
        this.each(function (i, el) {
 +
          errorMessages = errorMessages.concat(
 +
 
 +
            $(el).triggerHandler("getValidators.validation") ? $(el).triggerHandler("validation.validation", {submitting: true}) : []
 +
          );
 +
        });
 +
 
 +
        return (errorMessages.length > 0);
 +
      },
 +
      override : function (newDefaults) {
 +
        defaults = $.extend(true, defaults, newDefaults);
 +
      }
 +
     },
 +
validatorTypes: {
 +
      callback: {
 +
        name: "callback",
 +
        init: function ($this, name) {
 +
          return {
 +
            validatorName: name,
 +
            callback: $this.data("validation" + name + "Callback"),
 +
            lastValue: $this.val(),
 +
            lastValid: true,
 +
            lastFinished: true
 +
          };
 +
        },
 +
        validate: function ($this, value, validator) {
 +
          if (validator.lastValue === value && validator.lastFinished) {
 +
            return !validator.lastValid;
 +
          }
 +
 
 +
          if (validator.lastFinished === true)
 +
          {
 +
            validator.lastValue = value;
 +
            validator.lastValid = true;
 +
            validator.lastFinished = false;
 +
 
 +
            var rrjqbvValidator = validator;
 +
            var rrjqbvThis = $this;
 +
            executeFunctionByName(
 +
              validator.callback,
 +
              window,
 +
              $this,
 +
              value,
 +
              function (data) {
 +
                if (rrjqbvValidator.lastValue === data.value) {
 +
                  rrjqbvValidator.lastValid = data.valid;
 +
                  if (data.message) {
 +
                    rrjqbvValidator.message = data.message;
 +
                  }
 +
                  rrjqbvValidator.lastFinished = true;
 +
                  rrjqbvThis.data("validation" + rrjqbvValidator.validatorName + "Message", rrjqbvValidator.message);
 +
                  // Timeout is set to avoid problems with the events being considered 'already fired'
 +
                  setTimeout(function () {
 +
                    rrjqbvThis.trigger("change.validation");
 +
                  }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst
 +
                }
 +
              }
 +
            );
 +
          }
 +
 
 +
          return false;
 +
 
 +
        }
 +
      },
 +
      ajax: {
 +
        name: "ajax",
 +
        init: function ($this, name) {
 +
          return {
 +
            validatorName: name,
 +
            url: $this.data("validation" + name + "Ajax"),
 +
            lastValue: $this.val(),
 +
            lastValid: true,
 +
            lastFinished: true
 +
          };
 +
        },
 +
        validate: function ($this, value, validator) {
 +
          if (""+validator.lastValue === ""+value && validator.lastFinished === true) {
 +
            return validator.lastValid === false;
 +
          }
 +
 
 +
          if (validator.lastFinished === true)
 +
          {
 +
            validator.lastValue = value;
 +
            validator.lastValid = true;
 +
            validator.lastFinished = false;
 +
            $.ajax({
 +
              url: validator.url,
 +
              data: "value=" + value + "&field=" + $this.attr("name"),
 +
              dataType: "json",
 +
              success: function (data) {
 +
                if (""+validator.lastValue === ""+data.value) {
 +
                  validator.lastValid = !!(data.valid);
 +
                  if (data.message) {
 +
                    validator.message = data.message;
 +
                  }
 +
                  validator.lastFinished = true;
 +
                  $this.data("validation" + validator.validatorName + "Message", validator.message);
 +
                  // Timeout is set to avoid problems with the events being considered 'already fired'
 +
                  setTimeout(function () {
 +
                    $this.trigger("change.validation");
 +
                  }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst
 +
                }
 +
              },
 +
              failure: function () {
 +
                validator.lastValid = true;
 +
                validator.message = "ajax call failed";
 +
                validator.lastFinished = true;
 +
                $this.data("validation" + validator.validatorName + "Message", validator.message);
 +
                // Timeout is set to avoid problems with the events being considered 'already fired'
 +
                setTimeout(function () {
 +
                  $this.trigger("change.validation");
 +
                }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst
 +
              }
 +
            });
 +
          }
 +
 
 +
          return false;
 +
 
 +
        }
 +
      },
 +
regex: {
 +
name: "regex",
 +
init: function ($this, name) {
 +
return {regex: regexFromString($this.data("validation" + name + "Regex"))};
 +
},
 +
validate: function ($this, value, validator) {
 +
return (!validator.regex.test(value) && ! validator.negative)
 +
|| (validator.regex.test(value) && validator.negative);
 +
}
 +
},
 +
required: {
 +
name: "required",
 +
init: function ($this, name) {
 +
return {};
 +
},
 +
validate: function ($this, value, validator) {
 +
return !!(value.length === 0  && ! validator.negative)
 +
|| !!(value.length > 0 && validator.negative);
 +
},
 +
        blockSubmit: true
 +
},
 +
match: {
 +
name: "match",
 +
init: function ($this, name) {
 +
var element = $this.parents("form").first().find("[name=\"" + $this.data("validation" + name + "Match") + "\"]").first();
 +
element.bind("validation.validation", function () {
 +
$this.trigger("change.validation", {submitting: true});
 +
});
 +
return {"element": element};
 +
},
 +
validate: function ($this, value, validator) {
 +
return (value !== validator.element.val() && ! validator.negative)
 +
|| (value === validator.element.val() && validator.negative);
 +
},
 +
        blockSubmit: true
 +
},
 +
max: {
 +
name: "max",
 +
init: function ($this, name) {
 +
return {max: $this.data("validation" + name + "Max")};
 +
},
 +
validate: function ($this, value, validator) {
 +
return (parseFloat(value, 10) > parseFloat(validator.max, 10) && ! validator.negative)
 +
|| (parseFloat(value, 10) <= parseFloat(validator.max, 10) && validator.negative);
 +
}
 +
},
 +
min: {
 +
name: "min",
 +
init: function ($this, name) {
 +
return {min: $this.data("validation" + name + "Min")};
 +
},
 +
validate: function ($this, value, validator) {
 +
return (parseFloat(value) < parseFloat(validator.min) && ! validator.negative)
 +
|| (parseFloat(value) >= parseFloat(validator.min) && validator.negative);
 +
}
 +
},
 +
maxlength: {
 +
name: "maxlength",
 +
init: function ($this, name) {
 +
return {maxlength: $this.data("validation" + name + "Maxlength")};
 +
},
 +
validate: function ($this, value, validator) {
 +
return ((value.length > validator.maxlength) && ! validator.negative)
 +
|| ((value.length <= validator.maxlength) && validator.negative);
 +
}
 +
},
 +
minlength: {
 +
name: "minlength",
 +
init: function ($this, name) {
 +
return {minlength: $this.data("validation" + name + "Minlength")};
 +
},
 +
validate: function ($this, value, validator) {
 +
return ((value.length < validator.minlength) && ! validator.negative)
 +
|| ((value.length >= validator.minlength) && validator.negative);
 +
}
 +
},
 +
maxchecked: {
 +
name: "maxchecked",
 +
init: function ($this, name) {
 +
var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]");
 +
elements.bind("click.validation", function () {
 +
$this.trigger("change.validation", {includeEmpty: true});
 +
});
 +
return {maxchecked: $this.data("validation" + name + "Maxchecked"), elements: elements};
 +
},
 +
validate: function ($this, value, validator) {
 +
return (validator.elements.filter(":checked").length > validator.maxchecked && ! validator.negative)
 +
|| (validator.elements.filter(":checked").length <= validator.maxchecked && validator.negative);
 +
},
 +
        blockSubmit: true
 +
},
 +
minchecked: {
 +
name: "minchecked",
 +
init: function ($this, name) {
 +
var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]");
 +
elements.bind("click.validation", function () {
 +
$this.trigger("change.validation", {includeEmpty: true});
 +
});
 +
return {minchecked: $this.data("validation" + name + "Minchecked"), elements: elements};
 +
},
 +
validate: function ($this, value, validator) {
 +
return (validator.elements.filter(":checked").length < validator.minchecked && ! validator.negative)
 +
|| (validator.elements.filter(":checked").length >= validator.minchecked && validator.negative);
 +
},
 +
        blockSubmit: true
 +
}
 +
},
 +
builtInValidators: {
 +
email: {
 +
name: "Email",
 +
type: "shortcut",
 +
shortcut: "validemail"
 +
},
 +
validemail: {
 +
name: "Validemail",
 +
type: "regex",
 +
regex: "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\\.[A-Za-z]{2,4}",
 +
message: "Not a valid email address<!-- data-validator-validemail-message to override -->"
 +
},
 +
passwordagain: {
 +
name: "Passwordagain",
 +
type: "match",
 +
match: "password",
 +
message: "Does not match the given password<!-- data-validator-paswordagain-message to override -->"
 +
},
 +
positive: {
 +
name: "Positive",
 +
type: "shortcut",
 +
shortcut: "number,positivenumber"
 +
},
 +
negative: {
 +
name: "Negative",
 +
type: "shortcut",
 +
shortcut: "number,negativenumber"
 +
},
 +
number: {
 +
name: "Number",
 +
type: "regex",
 +
regex: "([+-]?\\\d+(\\\.\\\d*)?([eE][+-]?[0-9]+)?)?",
 +
message: "Must be a number<!-- data-validator-number-message to override -->"
 +
},
 +
integer: {
 +
name: "Integer",
 +
type: "regex",
 +
regex: "[+-]?\\\d+",
 +
message: "No decimal places allowed<!-- data-validator-integer-message to override -->"
 +
},
 +
positivenumber: {
 +
name: "Positivenumber",
 +
type: "min",
 +
min: 0,
 +
message: "Must be a positive number<!-- data-validator-positivenumber-message to override -->"
 +
},
 +
negativenumber: {
 +
name: "Negativenumber",
 +
type: "max",
 +
max: 0,
 +
message: "Must be a negative number<!-- data-validator-negativenumber-message to override -->"
 +
},
 +
required: {
 +
name: "Required",
 +
type: "required",
 +
message: "This is required<!-- data-validator-required-message to override -->"
 +
},
 +
checkone: {
 +
name: "Checkone",
 +
type: "minchecked",
 +
minchecked: 1,
 +
message: "Check at least one option<!-- data-validation-checkone-message to override -->"
 +
}
 +
}
 +
};
 +
 
 +
var formatValidatorName = function (name) {
 +
return name
 +
.toLowerCase()
 +
.replace(
 +
/(^|\s)([a-z])/g ,
 +
function(m,p1,p2) {
 +
return p1+p2.toUpperCase();
 +
}
 +
)
 +
;
 +
};
 +
 
 +
var getValue = function ($this) {
 +
// Extract the value we're talking about
 +
var value = $this.val();
 +
var type = $this.attr("type");
 +
if (type === "checkbox") {
 +
value = ($this.is(":checked") ? value : "");
 +
}
 +
if (type === "radio") {
 +
value = ($('input[name="' + $this.attr("name") + '"]:checked').length > 0 ? value : "");
 +
}
 +
return value;
 +
};
 +
 
 +
  function regexFromString(inputstring) {
 +
return new RegExp("^" + inputstring + "$");
 +
}
 +
 
 +
  /**
 +
  * Thanks to Jason Bunting via StackOverflow.com
 +
  *
 +
  * http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string#answer-359910
 +
  * Short link: http://tinyurl.com/executeFunctionByName
 +
  **/
 +
  function executeFunctionByName(functionName, context /*, args*/) {
 +
    var args = Array.prototype.slice.call(arguments).splice(2);
 +
    var namespaces = functionName.split(".");
 +
    var func = namespaces.pop();
 +
    for(var i = 0; i < namespaces.length; i++) {
 +
      context = context[namespaces[i]];
 +
    }
 +
    return context[func].apply(this, args);
 +
  }
 +
 
 +
$.fn.jqBootstrapValidation = function( method ) {
 +
 
 +
if ( defaults.methods[method] ) {
 +
return defaults.methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
 +
} else if ( typeof method === 'object' || ! method ) {
 +
return defaults.methods.init.apply( this, arguments );
 +
} else {
 +
$.error( 'Method ' +  method + ' does not exist on jQuery.jqBootstrapValidation' );
 +
return null;
 +
}
 +
 
 +
};
 +
 
 +
  $.jqBootstrapValidation = function (options) {
 +
    $(":input").not("[type=image],[type=submit]").jqBootstrapValidation.apply(this,arguments);
 +
  };
 +
 
 +
})( jQuery );
 +
</script>
 +
<script type="text/javascript">$(function() {
 +
 
 +
    $("input,textarea").jqBootstrapValidation({
 +
        preventSubmit: true,
 +
        submitError: function($form, event, errors) {
 +
            // additional error messages or events
 +
        },
 +
        submitSuccess: function($form, event) {
 +
            event.preventDefault(); // prevent default submit behaviour
 +
            // get values from FORM
 +
            var name = $("input#name").val();
 +
            var email = $("input#email").val();
 +
            var phone = $("input#phone").val();
 +
            var message = $("textarea#message").val();
 +
            var firstName = name; // For Success/Failure Message
 +
            // Check for white space in name for Success/Fail message
 +
            if (firstName.indexOf(' ') >= 0) {
 +
                firstName = name.split(' ').slice(0, -1).join(' ');
 +
            }
 +
            $.ajax({
 +
                url: "../submit.php",
 +
                type: "POST",
 +
                data: {
 +
                    name: name,
 +
                    phone: phone,
 +
                    email: email,
 +
                    message: message
 +
                },
 +
                cache: false,
 +
                success: function() {
 +
                    // Success message
 +
                    $('#success').html("<div class='alert alert-success'>");
 +
                    $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
 +
                        .append("</button>");
 +
                    $('#success > .alert-success')
 +
                        .append("<strong>Your message has been sent. </strong>");
 +
                    $('#success > .alert-success')
 +
                        .append('</div>');
 +
 
 +
                    //clear all fields
 +
                    $('#contact-form').trigger("reset");
 +
                },
 +
                error: function() {
 +
                    // Fail message
 +
                    $('#success').html("<div class='alert alert-danger'>");
 +
                    $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
 +
                        .append("</button>");
 +
                    $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!");
 +
                    $('#success > .alert-danger').append('</div>');
 +
                    //clear all fields
 +
                    $('#contact-form').trigger("reset");
 +
                },
 +
            })
 +
        },
 +
        filter: function() {
 +
            return $(this).is(":visible");
 +
        },
 +
    });
 +
 
 +
    $("a[data-toggle=\"tab\"]").click(function(e) {
 +
        e.preventDefault();
 +
        $(this).tab("show");
 +
    });
 +
});
 +
 
 +
 
 +
/*When clicking on Full hide fail/success boxes */
 +
$('#name').focus(function() {
 +
    $('#success').html('');
 +
});
 +
</script>
  
 
     <!-- Javascripts
 
     <!-- Javascripts
 
     ================================================== -->
 
     ================================================== -->
    <script type="text/javascript" src="js/main.js"></script>
+
<script type="text/javascript">// Hello.
 +
//
 +
// This is The Scripts used for ___________ Theme
 +
//
 +
//
 +
 
 +
function main() {
 +
 
 +
(function () {
 +
  'use strict';
 +
 
 +
   
 +
// Smooth Scrolling
 +
    //==========================================
 +
    $(function() {
 +
      $('a.scroll').click(function() {
 +
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
 +
          var target = $(this.hash);
 +
          target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
 +
          if (target.length) {
 +
            $('html,body').animate({
 +
              scrollTop: target.offset().top -50
 +
            }, 1000);
 +
            return false;
 +
          }
 +
        }
 +
      });
 +
    });
 +
 
 +
    /*====================================
 +
    Script for the Counters for Facts Section
 +
    ======================================*/
 +
    $('.count').each(function() {
 +
        var $this = $(this);
 +
        $this.data('target', parseInt($this.html()));
 +
        $this.data('counted', false);
 +
        $this.html('0');
 +
    });
 +
    $(window).bind('scroll', function() {
 +
        var speed = 3000;
 +
        $('.count').each(function() {
 +
            var $this = $(this);
 +
            if (!$this.data('counted') && $(window).scrollTop() +
 +
                $(window).height() >= $this.offset().top) {
 +
                $this.data('counted', true);
 +
                $this.animate({
 +
                    dummy: 1
 +
                }, {
 +
                    duration: speed,
 +
                    step: function(now) {
 +
                        var $this = $(this);
 +
                        var val = Math.round(
 +
                            $this.data(
 +
                                'target') *
 +
                            now);
 +
                        $this.html(val);
 +
                        if (0 < $this.parent(
 +
                            '.value').length) {
 +
                            $this.parent(
 +
                                '.value').css(
 +
                                'width',
 +
                                val + '%');
 +
                        }
 +
                    }
 +
                });
 +
            }
 +
        });
 +
    }).triggerHandler('scroll');
 +
 
 +
    /*====================================
 +
    Portfolio Carousel
 +
    ======================================*/
 +
  $(document).ready(function() {
 +
    var owl = $("#team");
 +
    owl.owlCarousel({
 +
     
 +
        itemsCustom : [
 +
          [0, 1],
 +
          [450, 1],
 +
          [660, 2],
 +
          [700, 2],
 +
          [1200, 3],
 +
          [1600, 3]
 +
        ],
 +
        navigation : false,
 +
        pagination: true,
 +
    });
 +
 
 +
  });
 +
 
 +
    /*====================================
 +
    Portfolio Isotope Filter
 +
    ======================================*/
 +
    $(window).load(function() {
 +
        var $container = $('#itemsWork , #itemsWorkTwo, #itemsWorkThree');
 +
        $container.isotope({
 +
            filter: '* , all',
 +
            animationOptions: {
 +
                duration: 750,
 +
                easing: 'linear',
 +
                queue: false
 +
            }
 +
        });
 +
        $('.cat a').click(function() {
 +
            $('.cat .active').removeClass('active');
 +
            $(this).addClass('active');
 +
            var selector = $(this).attr('data-filter');
 +
            $container.isotope({
 +
                filter: selector,
 +
                animationOptions: {
 +
                    duration: 750,
 +
                    easing: 'linear',
 +
                    queue: false
 +
                }
 +
            });
 +
            return false;
 +
        });
 +
 
 +
    });
 +
 
 +
    /*====================================
 +
    Nivo Lightbox
 +
    ======================================*/
 +
    // Agency Portfolio Popup
 +
    $('#itemsWork a , #itemsWorkTwo a , #itemsWorkThree a , #popup a').nivoLightbox({
 +
            effect: 'slideDown', 
 +
            keyboardNav: true,                           
 +
        });
 +
 
 +
    $(document).ready(function() {
 +
 +
  $("#owl-demo").owlCarousel({
 +
 +
      navigation : false, // Show next and prev buttons
 +
      slideSpeed : 300,
 +
      paginationSpeed : 400,
 +
      singleItem:true
 +
 +
      // "singleItem:true" is a shortcut for:
 +
      // items : 1,
 +
      // itemsDesktop : false,
 +
      // itemsDesktopSmall : false,
 +
      // itemsTablet: false,
 +
      // itemsMobile : false
 +
 +
  });
 +
 +
});
 +
 
 +
 +
 
 +
 
 +
}());
 +
 
 +
 
 +
}
 +
main();</script>
 +
   
  
 
   </body>
 
   </body>
 
</html>
 
</html>

Revision as of 16:10, 15 September 2015

<!DOCTYPE html> 2015_IGEM_H14Zteam_Wiki

The best way ever to preserve lithic relics

an innovative biochemical method to resolve erosion.

View Our Works


The inscriptions on Precipice are one of the most common and fundamental forms of traditional Chinese relics. Due to having been carved in open areas plus the exposure to sunshine and raindrops, which is often the case for most of them,the Inscriptions are weathered readily. Currently, there are quite a few methods to resolve this phenomenon but some of them are not used properly which occasionally cause the damage for the Inscriptions. Our research project aims at using microorganism method, which is to put a plasmid with the ability to convert bio-oriented oxaloacetic acid to oxalate acid into the cell of E.coil, inducing the cell and the product will react with one component of the Inscriptions-- calcium carbonate-- to generate nearly insoluble calcium oxalate monohydrate to adhere to the Inscriptions for protection. Another E.coil with the ablility to secrete lipase has also been constructed; we aim to add this cell when we are cleansing the Inscriptions to resolve the oil substances on the surface of them. By constructing these products, we are able to protect the relics either from human errors as cleaning and protecting or from natural damnification.

some &nbsp destroyed &nbsp inscriptions &nbsp on  &nbsp Precipice

photos were took within Hangzhou
...

Project's  Presentation

photoes were took within Hangzhou
...

Project's background part I

       The area near Qiantang River has a profound history of wealth. Hangzhou, in the heart of this area, situated many astonishing lithic cultural relics. Most of them were made during The Ten Kingdoms (A.D. 891-A.D. 979) and Song Dynasty (A.D. 960- A.D. 1279). Not only do those lithic relics represent the cutting edge of stone carving technology in contemporary time, but also they provide historians and archaeologists with solid historical evidence.

        There are three main types of lithic relics in Hangzhou; they are stone sculptures, stone towers also known as Dhavaja, and stone inscriptions. The stone sculptures are primarily represented by Feilai Peak (飞来峰), Ciyun Ridge (慈云岭), and Statue of Mahakala in Baocheng Temple (宝成寺麻曷葛剌). Stone Towers are primarily represented by White Tower (白塔). Stone inscriptions are primarily represented by Hetingwuhe Fubei on Lonely Mountain (孤山放鹤亭舞鹤赋碑).

        Plus, Feilai Peak and White Tower are National Key Historical Relics. Most lithic relics encounter physical, chemical and biological interaction, resulting in weathering corrosion, pulverisation lesion, cracking, contamination, and colour mottling. Those phenomena jeopardise the value of lithic relics and even lithic relics themselves, and the lithic relics in Hangzhou are not of exceptions.

        In 2002, some of the classic lithic relics were inspected and it was found that the surface of Feilai Peak Sculpture was greatly ruined (Figure 1), and there is leaking on Ciyun Ridge Sculpture (Figure 2)..

    Meanwhile, Cultural Relics Department of China has been trying to maintain and recover the lithic relics. Since 2002, Cultural Relics Department of China mainly has been removing surface deposit, depleting pounding, strengthening crag, and changing flora; the government washed Feilai Peak Sculpture for many times (Figure 3).Government built a top above the Ciyun Peak Sculpture, this relic no longer had to expose to sun and rain henceforward (Figure 4).

    White Tower was comprehensively cleaned and strengthened by silicone by Zhejiang University of Technology (Figure 5).

Project's background part II

     The power plants and railways were removed. During the washing, the staff intentionally left part of this tower intact, and made an contrast for further research of anti-contamination and anti-weathering (Figure 5-3, 5-4)

    However, 2015 field research shows most external lithic murals, statue, and towers still suffer from damage. Some even have distraction in main stone body. Meanwhile, there grows moss. Indoor stone inscriptions though are visible; there are obvious and irremovable cracks.

     Today, most preservation of lithic relics employ physical, chemical, or engineer approaches no matter where. It has been proven by reality that each of those approaches has fatal disadvantages for long-standing preservation of lithic relics, and those disadvantages would even lead to the ruin of lithic relics.

    Since forever, there are two categories of methods to preserve-- organic and inorganic. Organic materials cannot reach the standard of time to preserve relics such as epoxy resin, acrylic resin, silicone, etc.; inorganic materials would form hard shell that is not compatible or even react with the lithic relics, such as lime, barium hydroxide, and sulphuric acid.

     In conclusion, finding a long-standing, inexpensive, and efficient method to preserve lithic relics is an impending issue.

Principles of experiments

    The documents cited shows that even after natural weathering, biological decomposition, and acid rain erosion for a time period of time, some stone inscriptions, which are on rock surface containing calcium, remain in good condition because there is a thin layer of naturally formed semitransparent mineralised film that is hydrophilic and compact on such rock surface.

     In some part under the fine film, knife scratches on the stone from over a thousand years ago are still visible indistinctly. According to solid analysis, natural mineralised film is primarily composed of calcium oxalate monohydrate [Ca(COO)2·H2O] whose process of composition is interfered by microorganism.

     There are some advantages of calcium oxalate being a film as follows,

        1) In water, especially in acidulous water, the solubility of calcium oxalate is one order of magnitude smaller than normal calcium carbonate.

        2) Organically oriented calcium oxalate crystal's particles are fine and compact, which prevent the infiltration of toxic and harmful materials.

        3) The system can't be easily broken by external forces in that there is no distinct boundary between calcium carbonate rock and calcium oxalate film.

        So, this research project has chosen E. coli that has been transcribed with lipase to clean some stone relics that are covered with oil; then, we use E. coli, with transcription, that can secrete oxalate acid upon the stone relics. Therefore, there forms calcium oxalate to be protection film in order to preserve lithic relics.

        If we use chemical methods to generate calcium oxalate, we have to immerse the lithic relics in the chemical liquid; however, it is not suitable for the preservation of large-scale outdoor lithic relics. In fact, the natural existing calcium oxalate comes from the reaction of oxalate acid generated by microorganism and calcium compound on the surface of stone. This research project will utilise genetic engineering methods to "graft" the gene that generates calcium oxalate into Escherichia coli (E. coil).

    Then oxalate acid reacts with calcium lithic relics to generate calcium oxalate, which stimulates its natural formation process. Finally, there forms a fine layer to protect the lithic relics.

Procedures in detail

1.1 Experiment reagents and equipment

    1.1.1 Target genes

        (1) Lipase: lipase is the target gene segment of this experiment, and the gene sequence is synthesised by IDT Inc.

        (2) Oxaloacetate acetylhydrolase, abbreviation OAH, is the target gene segment of these experiments. The main function of OAH is to transfer oxaloacetic acid to oxalate acid; thus the oxalate acid reacts with the calcium ion to form calcium oxalate that preserves the relics. The target gene segment is synthesised by IDT Inc. after found in gene pool.

    1.1.2 Strain and Plasmid This experiment uses plasmid pET-28a, and the E. coli is TOP-10 competent cell, provided by TIANGEN Biotech CO., LTD.

    1.1.3 Enzyme and Reagents This experiment uses restriction enzyme provided by NEB; T4 DNA Ligase, TIANprep Mini Plasmid Kit, and TIANquick Midi Purification Kit are provided by Tiangen Biotech CO., LTD.

    1.1.4 PCR Primer

        (1) Lipase: According to the sequences and the MCS (multiple cloning sites) to the destination vector of the Lipase, XhoI and NcoI are chosen to be the enzyme cutting cites for the inserting enzyme cutting cites. There form the following primers:

    Sense primer: 5’-AAGCAAGCCCATGGAATTTGTAA-3’ (Underlined proportion is Ncoi enzyme cutting cite)

    Anti-sense primer: 5’-TTTTGTTGCTCGAGTTAATTCG-3’ (Underlined proportion is Xhoi enzyme cutting cite)

         (2) OAH: According to the sequence detected by OAH, the primer is synthesised by the Invireogen:

        Sense primer: 5’-ATCATCTTGCATATGGCGTCCACCATTGCTGTT-3’ (Underlined proportion is Ndei enzyme cutting cite)

         Anti-sense primer: 5’-TTTCCTTTTGCGGCCGCTTAG-3’ (Underlined proportion is Noti enzyme cutting cite)

    1.1.5 Substrate Medium

        (1) The experiment contains LB substrate media. Take the example of confecting 200mL; the materials needed are 2g of tryptone, 1g of yeast extract, 4g of sodium chloride, and 200mL of water with 1000× ratio of chloramphenicol.

        (2) The experiment contains LB substrate media. Take the example of confecting 200mL; the materials needed are 2g of tryptone, 1g of yeast extract, 4g of sodium chloride, and 200mL of water with 1000× ratio of Kanamycin Sulfate.

        (3) The experiment contains Kanamycin Sulfate substrate media. Take the example of confecting 400mL; the materials needed are 4g of tryptone, 2g of yeast extract, 4g of sodium chloride, 6g AGAR powder and 1.2mL

Procedures in detail

1.2 Procedures of Experiments

     1.2.1 PCR Proliferation

        Due to high content of G-C base-pairs in target gene segments, GC Buffer is required in PCR proliferation. Refer to Takara's protocols to prepare 200μL of system: 100μL of GC Buffer, 16μL of dntp mixture, 4μL of sense primer, 4μL of anti-sense primer, 4μL of DNA templet, 2μL of Taq, and 70μL of H2O. 60°C-70°C is used for Gradient PCR, the sixth bad is the brightest (Figure 9) thus the temperature of such is best for annealing. In new system, PCR is proceeded in that temperature; finally we get the gene segments with gene linkers.

    1.2.2 Gel electrophoresis, purification

    1.2.3 Digestion

        Put NotI and NdeI restriction endonuclease in gene segment and vector pET-28a respectively.

    1.2.4

         Linking and setting the groups Experimental group:plasmid after digestion + target gene + T4 DNA Ligase + buffer Control group: plasmid after digestion *Experiment conducted under 16°C

    1.2.5

        Use DNA purification kit to extract product after linking; transcribe in TOP-10 competent cell, put on Kanamycin Sulfate substrate media and then culture under 37°C.

    1.2.6

        According to the growth of strains, bacterium plasmid is extracted with digesting with two enzymes above. Recheck the correctness of position and size to assure that it has been linked.

    1.2.7 Sequencing by Sangon Shanghai, China

    1.2.8 Functional Test of Lipase

        (1) Fasten the AGAR Plane: 2.5g of AGAR powder, 6.25mL of tributyrin, 18.75mL 3g/dL of polyvinyl alcohol, 2.5mL 1g/dL Victorian Blue, 225mL of H2O. Heat and resolve the AGAR powder, pure into substrate media, chilling. IPTG solution: weigh 1.2g of IPTG and put it into centrifugal tubes. Add 40mL of H2O, resolve, then to the constant volume of 50mL. Use 0.22μm strainer to filter out the other bacteria, then put into refrigerator of -20°C.

        (2) Transcribe the lipase enzyme plasmid into BL-21 competent cell of E. coli, culture.

        (3) Pick bacteria into small colonies from growing strains on the cultivation board, which has been configured with a medium, Kanamycin, and join the 0.1 mmol/L IPTG solution to carry on the induction, six hours later to take on the culture medium centrifugal supernatant, get with lipase protein nutrient solution.

        (4) From fixed AGAR plate with holes, pick bacteria. Burn alcohol burner against the bottom of AGAR to assure it is stick. Put 30μL into the holes, lie horizontally in 30°C incubator for a while and then observe the change of colour.

iNFO   ABOUT   Team   MEMBER

suspend your mouse above each images to learn more about our team member.
...

Zhengdong Chen

Image

Yue Wu

Image

Shuyang Zhou

Image

Haobo Shao

Image

Yunfeng Guo

Image

Minxing Chen

Image

Jingcheng Shi

Image

Juncheng Luo

Image

Wei He

Image

Yuning Gu

Image

Xiaomei Tang

Image

Jie Zheng

Image

Policy   &  Human practices

We design and build functional and beautiful websites
...

The  Support  of our team and project

This investigative project is supported by various well-known institutes, universities and corporations
...